step7编程知识
- 格式:doc
- 大小:109.50 KB
- 文档页数:10
STEP7编程方法编程方法是指编写和组织代码的一套规则和方法论,以便更高效地开发和维护软件。
在软件开发过程中,合适的编程方法可以提高代码的可读性和可维护性,减少代码错误,并且提供更好的代码重用性和扩展性。
下面将介绍几种常见的编程方法。
1.模块化:模块化是将软件系统划分为多个独立的功能模块的过程。
每个模块都有自己的输入和输出,可以独立地测试和调试。
模块化使得代码更加可读和可维护,并且可以提高代码的重用性。
2.面向对象编程(OOP):面向对象编程是一种编程范式,通过将数据和操作封装为对象,实现了数据和行为的内聚性。
OOP可以提高代码的可读性和可维护性,以及代码的重用性和扩展性。
3.设计模式:设计模式是在软件设计过程中,经过反复验证的解决特定问题的方法。
常见的设计模式包括单例模式、工厂模式、观察者模式等。
使用设计模式可以提高代码的可维护性和可扩展性,减少代码的重复。
4.测试驱动开发(TDD):TDD是一种开发方法,先编写测试代码来验证需求,然后再编写能够通过测试的业务代码。
TDD可以提高代码的质量和可靠性,减少代码错误,并且可以使开发人员集中在实现需求上。
5.代码重构:代码重构是对已有代码进行修改,目的是提高代码的可读性、可维护性和性能。
通过代码重构,可以减少冗余代码,提取通用代码,优化算法等。
代码重构一般不改变代码的外部行为,但可以极大地改善代码的结构和效率。
6. 版本控制:版本控制是记录和管理代码的变化的系统。
通过版本控制,可以方便地追踪代码的修改历史,协同开发,回滚代码等。
常见的版本控制工具有Git和SVN等。
7.文档化:编写良好的文档是一个好的编程习惯。
文档可以帮助他人理解代码的功能和使用方法,也可以作为开发人员自己的备忘录。
良好的文档可以提高代码的可读性和可维护性,并且可以促进团队协作。
8.性能优化:在优化代码性能时,需要根据具体情况进行不同层面的优化。
从算法上优化,可以减少不必要的计算;从数据结构上优化,可以提高数据的访问效率;从代码实现上优化,可以减少不必要的资源消耗。
STEP 7的介绍
图1-1 间隙
使用单机架或多机架
是使用一个机架还是使用多个机架,取决于具体情况。
在下面的情况下应该使用单机架:
∙结构紧凑、需要节约空间
∙ CPU312、312 IFM、312C和CPU 313只能用单机架
∙所需处理的信号量少
在下面的情况下应该使用多机架:
机架3(ER)
连接电缆368
连接电缆368
机架2(ER)
连接电缆368
机架1(ER)
图1-2:安装举例
主机架配置方法
STEP7中,通过简单的拖放操作就可以完成主机架的配置。
配置过程中,添加到主机架中的模板的订货号(在硬件目录中选中一个模板,目录下方的窗口会显示该模板的订货号以及描述)应该与实际硬件一致。
先直接新建一个项目,在项目中插入一个SIMATIC 300 Station,双击Hardware图标,打开硬件组态程序。
在硬件目
录中找到S7-300机架,拖拽到左上方的视图中,即可添加一个
主机架。
STEP7使用方法对于STEP7的使用方法,我将分为以下几个方面进行详细介绍:基本概念、编程语言、硬件配置和调试工具。
一、基本概念:二、编程语言:STEP7支持多种编程语言,包括梯形图、功能块图、指令表和结构化文本。
梯形图是一种图形化的编程语言,用于逻辑控制和循环控制。
功能块图是基于块的图形化编程语言,用于组织和管理程序模块。
指令表是一种文本化的编程语言,用于编写低级控制指令。
结构化文本是一种高级编程语言,类似于传统的编程语言,可以实现复杂的逻辑和算法。
三、硬件配置:使用STEP7之前,我们需要对硬件进行配置。
首先,我们需要选择适合应用需求的PLC型号和数量。
然后,我们需要选择适合的输入和输出模块,用于接收和输出信号。
接下来,我们需要通过网络或总线连接PLC和外部设备,如传感器、执行器和人机界面。
四、调试工具:在使用STEP7编写和测试PLC程序时,我们可以使用一些调试工具来帮助我们定位和解决问题。
首先,我们可以使用在线监视器来查看PLC的运行状态和信号值。
其次,我们可以使用断点和触发器来调试程序的执行过程。
还可以使用模拟器来模拟外部设备的输入和输出,以验证程序的正确性。
最后,我们可以使用追溯记录器来记录PLC的运行日志,以便后续分析和故障排除。
总结:通过以上对STEP7使用方法的介绍,我们可以了解到,STEP7是一款强大的PLC编程软件,它可以帮助我们开发和管理PLC应用程序。
在使用STEP7之前,我们需要掌握基本的概念,并了解不同的编程语言。
同时,我们还需要对硬件进行适当的配置,并使用调试工具来帮助我们定位和解决问题。
只有熟练掌握STEP7的使用方法,我们才能更好地应用它来实现工业过程和机器的控制。
一、词汇Actual Parameter(实际参数)在用户程序调用一个功能块(FB)或功能(FC)时,实际参数代替形式参数。
例如,形式参数“REQ”被实际参数“I3.6”代替。
Address(地址)地址是一个操作对象或操作区域的标识符。
例如,输入I12.1;存贮字MW25;数据块DB3等等。
Addressing(编址)在用户程序中分配一个地址。
此地址被分配给一个操作对象或操作区域(例如,输入I12.1;存贮字MW25),它准确地指向它们的存贮位置。
Baud rate(波特率)数据传输速度。
波特率是1秒种内传输的位(bit)数(波特率=位(bit)速率)。
PROFIBUS-DP允许的波特率范围:9.6k bit/s~12 M bit/s。
BUS(总线)公共传输路经(传输介质),它把节点或站连接成网络。
在PROFIBUS网络中,总线是双绞线或光纤电缆。
Bus Plug Connector(总线插头连接器)站(也称“节点”)与总线导线的物理连接元件。
在PROFIBUS网络中,总线插头连接器可能是带或不带与PG编程装置的连接,可以用于防护等级IP20和IP65。
Bus Segment(总线段)由于网络的物理性质,PROFIBUS网络只能构造到它的最大长度和最大的连接站数,如果把它分成若干个总线段,则总线段之间必须通过中继器彼此连接。
Bus System(总线系统)通过总线电缆相互物理连接的所有站形成一个总线系统。
Chassis ground(机壳接地)电子装备部件的所有固定部分全体,即使在故障事件的情况下,它不导传有害的波动电压。
Cless 1 Master(1类主站)Cless 2 Master(2类主站)它是处理网络控制、调试投运和组态功能的DP主站设备。
CLEAR(清除)DP主站的运行模式。
在此模式下,DP主站循环地读输入数据,而输出仍然设置在“0”状态。
Clear/Reset(清除/复位)清除或复位SIMATIC S7可编程控制器的CPU,该命令使CPU主存储器、装载存储器的读/写区域和系统存储器复位。
1.打开SIMATIC STEP7。
2.新建一个工程项目3.项目定义名字后,点击OK4.硬件配置,(以CPU为S7-400为例)5.打开硬件组态6.根据实际基架型号选择基架,并双击7.选择电源:8.选择CPU9.选择数字量输入模板:10.选择数字量输出模板11.选择模拟量输入模板12.选择模拟量输出模板13.硬件配置保存并编译这样就完成了硬件配置。
配置完成后回到主界面,就可以在CPU中的BLOCK进行软件编程了。
14.根据需要插入中断组织块:在属性窗口中可以定义OB的绝对地址以及符号地址,还可以对组织块的功能加以简单注释等。
也可以在此处选择该OB所用编程语言的种类。
15.新建数据块:16.打开DB,定义该数据块的地址结构:在数据块中可以定义数据的符号名,定义数据类型,定义数据注释。
17.建立符号表18.新建功能:在下面的FC属性窗口中可以定义FC的绝对地址以及符号地址,还可以对功能块的功能加以简单注释等。
也可以在此处选择该功能所用编程语言的种类。
19在FC中进行软件编程:根据功能需要插入常开常闭触点,整/实型运算函数,延时器等。
新建NETWORK:20.保存FC100并在OB1中调用。
21.启动S7-PLCSIM进行仿真测试:22.将所有程序块下载到仿真器中:23.将仿真器CPU从STOP位置变换到RUN-P位置:24.打开OB1 进行监视。
25.打开FC100 进行监视。
26.强制信号:27.另外还可以通过变量表监视系统数据:输入要监视变量的绝对地址:。
STEP7编程基础_1 状态字的作用可用RLO触发跳转指令。
(3)状态位(STA)状态字的位2称为状态位。
状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。
如果一条指令是对存储区操作的位逻辑指令,则无论是对该位的读或写操作,STA总是与该位的值取得一致;对不访问存储区的位逻辑指令来说,STA位没有意义,此时它总被置为1。
(4)或位(OR)状态字的位3称为或位(OR)。
在先逻辑“与”后逻辑“或”的逻辑串中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。
其它指令将OR位清0。
(5)溢出位(OV)状态字的位4称为溢出位。
溢出位被置1,表明一个算术运算或浮点数比较指令执行时出现错误(错误:溢出、非法操作、不规范格式)。
后面的算术运算或浮点数比较指令执行结果正常的话OV位就被清0。
(6)溢出状态保持位(OS)状态字的位5称为溢出状态保持位(或称为存储溢出位)。
OV被置1时OS 也被置1;OV被清0时OS仍保持。
所以它保存了OV位,可用于指明在先前的一些指令执行中是否产生过错误。
只有下面的指令才能复位OS位:JOS(OS=1时(8)二进制结果位(BR)状态字的位8称为二进制结果位。
它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确(异常)。
将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。
在LAD 的方块指令中,BR位与ENO有对应关系,用于表明方块指令是否被正确执行:如果执行出现了错误,BR位为0,ENO也为0;如果功能被正确执行,BR位为1,ENO也为1。
在用户编写的FB和FC程序中,必须对BR位进行管理,当功能块正确运行后使BR位为1,否则使其为0。
使用STL指令SAVE或LAD指令——(SAVE),可将RLO存入BR中,从而达到管理BR位的目的。
当FB或FC执行无错误时,使RLO 为1并存入BR,否则,在BR中存入0。
STEP7基本指令 - 西门子plc1、位逻辑指令STEP 7位逻辑指令可以分为位逻辑运算指令、定时器指令、计数器指令、位测试指令。
(1)位逻辑运算指令位逻辑运算指令是对“0”和“1”的布尔操作数进行扫描,经过相应的位逻辑运算,将逻辑运算结果“0”和“1”送到状态字的RLO位,包括AND、OR、RS触发器等与S7-200基本类似。
(2)定时器指令定时器可以提供等待时间控制,还可产生一定宽度的脉冲,也可以测量时间。
它是一种由位和字组成的复合单元,定时器的触点由位表示,其定时时间值存储在字存储器中。
STEP 7定时器可分为以下5种,如表3-4所示。
S7定时器可以用以下任一格式预装入时间值:◆W#16#wxyz,其中w = 时间基准(即时间间隔或分辨率);此处xyz = 以二进制编码的十进制格式表示的时间值◆S5T#aH_bM_cS_dMS,其中H = 小时,M = 分钟,S = 秒,MS = 毫秒;a、b、c、d由用户定义。
如自动选择时间基准,其值舍入为具有该时间基准的下一个较小的数字。
S7定时器可以输入的最大时间值是9990s或2H_46M_30S,具体如: S5TIME#4S = 4秒 s5t#2h_15m = 2小时15分钟 S5T#1H_12M_18S =1小时12分钟18秒(3)计数器指令S7计数器用于对RLO正跳沿计数,计数器字中的0至11位包含二进制代码形式的计数值,当设置某个计数器时,计数值移至计数器字,计数值的范围为0至999,如图1所示。
图1 计数器的组成可使用三种计数器指令在此范围内改变计数值:S_CUD为双向计数器;S_CD为降值计数器;S_CU为升值计数器。
2、数据指令对于复杂的开关量控制,尤其是点数多、过程复杂的项目来说,还必须了解STEP 7数据指令。
STEP 7位数据指令可以分为装载与传送指令、比较指令、算术运算指令、数据逻辑运算指令、移位和循环移位指令、数据块指令。
第一章符号表在STEP7中,用户可以直接使用的变量包括PLC的输入/输出地址、M存储区地址、数据DB块名、功能块名和系统已经在组织块和逻辑块中定义的变量等。
如果能在STEP7中将变量用具有实际意义的符号名字代替,那么用户程序的可读性就会更好。
1.全局符号和局部符号STEP7中可以定义两类符合:全局符号和局部符号,与其它编程语言的定义一样,全局符号是在整个用户程序范围内有效;局部符号是仅仅在定义的块内部有效。
2.符号的定义符号名的长度不能多于24个字符,而且定义时不区分大小写字符。
数据块中的地址(DBD,DBW,DBB,DBX)不能在符号表中定义,而应在数据声明表中定义。
组织块(OB)、某些系统功能块(SFB)以及系统功能(SFC)已被系统根据块的功能预先赋予了符号名。
在符号表中可以定义全局符号,需要注意的是,并不需要下载符号表。
编辑符号后并保持符号表,这时符号表就生效了。
3.符号表的导入导出功能在符号表编辑器中,可以通过导入导出功能。
用户可以导出当前的符号表到一个文本文件,这样就可以用文本编辑器对符号进行编辑,还可以将文本编辑器中的符号表导入到用户程序中。
导出符号表时,用户可以选择文件格式为“*.DIF”,则可以在Excel中打开、编辑并存储DIF文件;也可以选择文件格式为“*.SDF”在Access中打开、编辑并存储SDF文件。
第二章组织块OB组织块(Organization Block),STEP7提供了大量的组织块用于执行用户程序,OB是CPU操作系统与用户程序间的接口。
OB被嵌在用户程序中,根据某个事件的发生,执行相应的中断,自动调用相应的OB。
1.OB1工作原理:CPU启动完毕后,操作系统就调用OB1,并且循环执行OB1的程序,读取当前输入模块的信号状态,刷新输入映像区并接收全局数据。
每一次OB1程序执行完后,操作系统发送全局数据,传送输出映像区数据到输出模块。
循环处理的主程序OB1的优先级最低,除OB90(背景组织块)外,其他所有的OB块均可以中断OB1的执行。
2.OB10~OB17:时间日期中断组织块,这8个OB的默认优先级相同,都没有指定默认时间。
但是,只有S7-400系统的高级CPU才可以使用全部8个OB,S7-300系列只能使用OB10。
3.OB20~0B23:延时中断组织块,S7-300系列只能使用OB20。
4.OB30~OB38:循环中断组织块,它们经过一段固定的时间间隔中断用户的程序。
循环中断组织块每一次运行的时间一定要短于中断的间隔。
如果一个循环中断组织块没有执行完,循环中断时间到,又要求循环中断组织块运行,则时间故障组织块OB80启动。
反复的循环中断导致了故障程序的运行。
5.OB40~OB47硬件中断组织块,用于快速响应信号模块SM、通信处理模块CP和功能模块FM的信号变化。
6.OB80:时间错误处理组织块,OB执行出现故障,操作系统调用OB80。
这样的故障包括:循环时间超出、执行OB时应答故障、向前移动时间以至于跃过了OB的启动时间。
例如,当循环中断组织块仍在执行前一次调用时,该组织块的启动事件发生,操作系统调用OB80。
如果OB80未编程,则CPU变为STOP方式。
7.OB81:电源故障处理组织块,电源故障包括后备电池失效或未安装电池,电源故障出现和消失时操作系统都要调用该块。
8.OB82:诊断中断组织块用于检查和评估诊断中断。
如果模块具有诊断能力而且激活了诊断中断,当它检测到故障时,输出一个诊断中断请求给CPU,操作系统将调用OB82。
故障包括:有诊断功能的模块的断线故障,模拟输入模块的电源故障,输入信号超过模拟量模块的测量范围。
9.OB86:机架故障组织块,当扩展机架、DP主站系统或分布式I/O中从站故障时(到来和离去事件),CPU操作系统将调用OB86。
10.OB87:通信错误组织块,在使用通信功能块或全局数据(GD)通信进行数据交换时,若出现以下几种错误,系统将调用OB87。
一是接收全局数据时,检测到不正确的帧标识符。
二是全局数据通信的状态信息数据块不存在或太短。
三是接收到非法的全局数据包编号。
11.OB100~OB102:启动组织块,OB100(暖启动)OB101(热启动)和OB102(冷启动)。
对于大多数的S7-300CPU来说,启动类型为暖启动,启动时过程映像和不保持的定时器、计数器以及标志存储器被清除,然后程序从OB1的第一条指令开始执行。
S7-400还支持热启动组织块0B101.在热启动时,所有数据(过程映像、定时器、计数器以及标志存储器)被保持,程序从断点处恢复执行。
12.OB121:编程故障组织块,当有关程序处理的故障事件发生时,CPU的操作系统调用OB121,OB121与被中断的块在同一优先级中执行。
13.OB122:I/O访问故障组织块,当对模块的数据访问出现故障时CPU的操作系统调用I/O访问故障组织块OB122。
例如,直接访问I/O错误(模块损坏或找不到),或访问一个CPU不能识别的I/O 地址。
第三章功能块FB功能块是用户编写的有固定存储区的块。
FB为带“记忆”的逻辑块。
它有一个数据结构与功能块参数表完全相同的数据块(DB),该数据块称之为背景数据块(Instance Data Block),当功能块被执行时,数据块被调用。
功能块结束,调用随之结束。
存放在背景数据块中的数据在FB块结束后,仍能继续使用,具有“记忆”功能。
本工程涉及到的功能块主要包括以下几个:1.连续PID调节功能块——FB41焦炉的加热过程是个单各燃烧室间歇、全炉连续的过程。
加热用介质――煤气的流量调节控制直接影响着焦炉的温度加热。
在绝大部分焦炉的控制系统中,主要包括:煤气流量调节、煤气管道压力调节(实质也时通过调节压力来达到控制煤气流量)、焦炉机/焦侧分烟道吸力调节、焦炉上升管压力调节等一些调节系统。
PID工作原理PID模块的功能是将PID调节的输入物理量(设定值和测量值的偏差值)转换为0~100之间的数,然后再进行PID调节,调节完后再将0~100之间的数转换为输出对象的实际量程范围。
将输入物理量进行这种标准化变化的目的是为了使所有的PID调节都在同一基准下,调节的速度一致,以使整个系统的物理量工作比较协调。
FB41管脚说明:2.1PID调节公式:PID_OUTV(t)=Kc×ER(t)×[1+t/Ti+(Td/Tm_lag) ×e-t/Tm_lag]2.2 调节选择开关:P_SEL:P_SEL=1时,GAIN增益起作用。
I_SEL:I_SEL=1时,TI积分起作用。
D_SEL:D_SEL=1时,TD微分起作用。
2.3 手自动切换开关:MAN_ON:MAN_ON=1时,表示调节回路处于“手动”;MAN_ON=0时,表示调节回路处于“自动”。
MAN为手动输出值:MAN_ON=1时,MAN中的数值送给相应的模拟量输出通道。
MAN_ON=0时,PID算法计算值送给相应的模拟量输出通道。
2.4 量程说明:LMNLIMT为经过限位后的PID算法输出值。
LMN_HLM为输出上限。
LMN_LLM为输出下限。
LMN计算:✧LMN=LMNLIMT×LMN_FAC+LMN_OFF✧LMN_FAC=1✧LMN_OFF=0CRP_OUT计算:CRP_OUT=LMN×27648÷100%2.5 其它说明:COM_RST:再启动位,需在OB100~OB102中的一个OB块中将一变量位置“1”后,将该位传给“COM_RST”。
表1第四章功能FC功能是用户所编写的无固定存储区的块,它为不带“记忆”的逻辑块。
所谓不带“记忆”表示没有背景数据块。
当完成操作后,数据不能保持。
这些数据为临时数据,对于那些需要保持的数据只能通过共享数据块(Share Data)来存储。
本工程涉及的功能FC包括以下一些主要的功能FC:1.基本线形标定功能——FC91:基本线形标定块,把4~20mA的信号转换为规定量程上下限的显示值。
主要是处理压力(包括吸力)、氧含量信号、线性流量信号、液位显示信号以及阀位反馈信号等。
IN:符号地址或绝对地址HI_LIM:量程上限LO_LIM:量程下限OUT:经过线性转换后的显示FAULT:故障管脚图32.温度线性标定功能——FC96:由于焦炉检测信号中,温度信号占据了很大的一部分,而温度信号(热电偶信号和热电阻信号)经过转换后除以10直接得到的数值就是温度显示信号。
IN:符号地址或绝对地址OUT:显示地址FAIL:故障管脚图43.换向保持程序——FC41:焦炉交换过程实际是一个停止加热的过程,在交换过程中,管网压力波动比较大,因此在交换时刻需引入交换信号作为判断来保持20~50秒左右时间的流量控制系统输出值不变。
图5图6程序说明:●2P1为交换信号●DB41.DBD72为经过限位后的PID算法输出值?●DB41.DBD16为手动输出值●T1为时间延时器。