辅助学习课件_S7-200可编程控制器指令系统.ppt

上传人:大张伟 文档编号:9050093 上传时间:2021-01-31 格式:PPT 页数:174 大小:3.15MB
返回 下载 相关 举报
辅助学习课件_S7-200可编程控制器指令系统.ppt_第1页
第1页 / 共174页
辅助学习课件_S7-200可编程控制器指令系统.ppt_第2页
第2页 / 共174页
辅助学习课件_S7-200可编程控制器指令系统.ppt_第3页
第3页 / 共174页
辅助学习课件_S7-200可编程控制器指令系统.ppt_第4页
第4页 / 共174页
辅助学习课件_S7-200可编程控制器指令系统.ppt_第5页
第5页 / 共174页
点击查看更多>>
资源描述

《辅助学习课件_S7-200可编程控制器指令系统.ppt》由会员分享,可在线阅读,更多相关《辅助学习课件_S7-200可编程控制器指令系统.ppt(174页珍藏版)》请在三一文库上搜索。

1、31.01.2021,PLC指令集,1,S7-200可编程控制器 指令集 PLC 课程组,31.01.2021,PLC指令集,2,主要内容,6.1用于描述指令的习惯用语 6.2S7-200存储器范围及特性 6.3位逻辑指令 6.4时钟指令 6.5通讯指令 6.6比较指令 6.7转换指令 6.8计数器指令 6.9高速计数器指令,31.01.2021,PLC指令集,3,6.10脉冲输出指令 6.11数字运算指令 6.12比例/积分/微分(PID)回路控制指令 6.13中断指令 6.14逻辑操作指令 6.15传送指令 6.16程序控制指令 6.17移位和循环指令 6.18字符串指令,31.01.20

2、21,PLC指令集,4,6.19表指令 6.20定时器指令 6.21子程序指令,31.01.2021,PLC指令集,5,6.1用于描述指令的习惯用语,图6-1给出了对一条指令的典型描述,并指出了用于描述指令及其操作的不同区域。指令说明包括LAD、FBD和STL三种格式。操作数表列出了指令的操作数,并给出每个操作数的有效数据类型,存储区的区域及长度。 EN/ENO操作数和数据类型没有在指令操作数表中列出,因为这些操作数对于所有的LAD和FBD指令来说都是一样的。 对于LAD:EN和ENO是能流,为布尔数据类型。 对于FBD:EN和ENO是I、Q、V、M、SM、S、T、C、L或者能流,为布尔数据类

3、型。,31.01.2021,PLC指令集,6,31.01.2021,PLC指令集,7,6.2S7-200存储器范围及特性,31.01.2021,PLC指令集,8,31.01.2021,PLC指令集,9,6.3位逻辑指令,触点 标准触点 常开触点指令(LD、A和O)与常闭触点指令(LDN、AN和ON)从存储器或者过程映象寄存器中得到参考值。标准触点指令从存储器中得到参考值。(如果数据类型是I或Q,则也可从过程映象寄存器中得到参考值。) 当位值为1时,常开触点闭合;当位值为0时,常闭触点闭合。 在FBD中,与和或操作的输入可以最多扩展到32个。在STL中,常开指令LD、AND或OR或将相应地址位的

4、位值存入栈顶;而常闭指令 LD、AND或OR则将相应地址位的位值取反,再存入栈顶。,31.01.2021,PLC指令集,10,31.01.2021,PLC指令集,11,31.01.2021,PLC指令集,12,立即触点 立即触点并不依赖于S7-200的扫描周期刷新,它会立即刷新。常开立即触点指令(LDI、AI和OI)和常闭立即触点指令(LDNI、ANI和ONI)在指令执行时得到物理输入值,但过程映像寄存器并不刷新。 当物理输入点状态为1时,常开立即触点闭合;当物理输入点状态为0时,常闭立即触点闭合。常开立即指令LD、AND或OR将物理输入值存入栈顶,而常闭立即指令LD、AND或OR将物理输入的

5、值取反,再存入栈顶。,31.01.2021,PLC指令集,13,取反指令(NOT) 取反指令(NOT)改变能流输入的状态(也就是说,它将栈顶值由0变为1,由1变为0)。 正、负跳变指令(EU、ED) 正跳变触点指令(EU)检测到每一次正跳变(由0到1),让能流接通一个扫描周期。负跳变触点指令(ED)检测到每一次负跳变(由1到0),让能流接通一个扫描周期。对于正跳变指令,一旦发现有正跳变发生(由0到1),该栈顶值被置为1,否则置0。对于负跳变指令,一旦发现有负跳变发生(由1到0),该栈顶值被置为1,否则置0。 对于运行模式下编辑(在RUN模式下编辑应用程序),必须为正跳变指令和负跳变指令输入参数

6、。 关于在RUN模式下编辑程序的更多信息参见SIEMENS的详细资料。,31.01.2021,PLC指令集,14,31.01.2021,PLC指令集,15,如图6-2中所示,S7-200用逻辑堆栈来决定控制逻辑。在本例中,“iv0”到“iv7”表示逻辑堆栈的初始值,“nv”表示指令提供的一个新值,S0表示逻辑堆栈中存储的计算值。,31.01.2021,PLC指令集,16,31.01.2021,PLC指令集,17,31.01.2021,PLC指令集,18,31.01.2021,PLC指令集,19,线圈 输出(=) 输出指令(=)将新值写入输出点的过程映象寄存器。当输出指令执行时,S7-200将输

7、出过程映象寄存器中的位接通或者断开。在LAD和FBD中,指定点的值等于能流。在STL中,栈顶的值复制到指定位。 立即输出(=I) 当指令执行时,立即输出指令(=I)将新值同时写到物理输出点和相应的过程映象寄存器中。,31.01.2021,PLC指令集,20,31.01.2021,PLC指令集,21,31.01.2021,PLC指令集,22,当立即输出指令执行时,物理输出点立即被置为能流值。在STL中,立即指令将栈顶的值立即复制到物理输出点的指定位上。“I”表示立即,当指令执行时,新值会同时被写到物理输出和相应的过程映象寄存器。这一点不同于非立即指令,只把新值写入过程映象寄存器。 置位(S)和复

8、位(R) 置位(S)和复位(R)指令将从指定地址开始的N个点置位或者复位。可以一次置位或者复位1-255个点。,31.01.2021,PLC指令集,23,如果复位指令指定的是一个定时器位(T)或计数器位(C),指令不但复位定时器或计数器位,而且清除定时器或计数器的当前值。,31.01.2021,PLC指令集,24,立即置位和立即复位 立即置位和立即复位指令将从指定地址开始的N个点立即置位或者立即复位。可以一次置位或复位1到128个点。 “I”表示立即,当指令执行时,新值会同时被写到物理输出和相应的过程映象寄存器。这一点不同于非立即指令,只把新值写入过程映像寄存器。,31.01.2021,PLC

9、指令集,25,31.01.2021,PLC指令集,26,31.01.2021,PLC指令集,27,31.01.2021,PLC指令集,28,逻辑堆栈指令 栈装载与(ALD) 栈装载与指令(ALD)对堆栈中第一层和第二层的值进行逻辑与操作,结果放入栈顶。执行完栈装载与指令之后,栈深度减1。 栈装载或(OLD) 栈装载或指令(OLD)对堆栈中第一层和第二层的值进行逻辑或操作,结果放入栈顶。执行完栈装载或指令之后,栈深度减1。,31.01.2021,PLC指令集,29,逻辑推入栈(LPS) 逻辑推入栈指令(LPS)复制栈顶的值,并将这个值推入栈。栈底的值被推出并消失。 逻辑读栈(LRD) 逻辑读栈指

10、令(LRD)复制堆栈中的第二个值到栈顶。堆栈没有推入栈或者弹出栈操作,但旧的栈顶值被新的复制值取代。 逻辑弹出栈(LPP) 逻辑弹出栈指令(LPP)弹出栈顶的值,堆栈的第二个栈值成为新的栈顶值。,31.01.2021,PLC指令集,30,ENO与(AENO) ENO与指令(AENO)对ENO位和栈顶的值进行逻辑与操作,其产生的效果与LAD或者FBD中盒指令的ENO位相同。与操作结果成为新的栈顶。 ENO是LAD和FBD中盒指令的布尔输出。如果盒指令的EN输入有能流并且执行没有错误,则ENO将能流传递给下一元素。您可以把ENO作为指令成功完成的使能标志位。ENO位被用作栈顶,影响能流和后续指令的

11、执行。STL中没有EN输入。条件指令要想执行,栈顶值必须为逻辑1。在STL中也没有ENO输出。但是在STL中,那些与LAD和FBD中具有ENO输出的指令相应的指令,存在一个特殊的ENO位。它可以被AENO指令访问。 装入堆栈(LDS) 装入堆栈指令(LDS)复制堆栈中的第N个值到栈顶。栈底的值被推出并消失。,31.01.2021,PLC指令集,31,如图6-3中所示,S7-200用逻辑堆栈来决定控制逻辑。在本例中,“iv0”到“iv7”表示逻辑堆栈的初始值,“nv”表示指令提供的一个新值,而“S0”表示逻辑堆栈中存储的计算值。,31.01.2021,PLC指令集,32,31.01.2021,P

12、LC指令集,33,31.01.2021,PLC指令集,34,RS触发器指令 置位优先触发器是一个置位优先的锁存器。当置位信号(S1)和复位信号(R)都为真时,输出为真。 复位优先触发器是一个复位优先的锁存器。当置位信号(S)和复位信号(R1)都为真时,输出为假。 Bit参数用于指定被置位或者复位的布尔参数。可选的输出反映Bit参数的信号状态。 表6-7中给出了例子程序的真值表。,31.01.2021,PLC指令集,35,31.01.2021,PLC指令集,36,31.01.2021,PLC指令集,37,6.4时钟指令,读实时时钟(TODR)和写实时时钟(TODW) 读实时时钟(TODR)指令从

13、硬件时钟中读当前时间和日期,并把它装载到一个8字节,起始地址为T的时间缓冲区中。 写实时时钟(TODW)指令将当前时间和日期写入硬件时钟,当前时钟存储在以地址T开始的8字节时间缓冲区中。 您必须按照BCD码的格式编码所有的日期和时间值(例如:用1697表示1997年)。图6-4给出了时间缓冲区(T)的格式。,31.01.2021,PLC指令集,38,时间日期(TOD)时钟在电源掉电或内存丢失后,初始化为下列日期和时间: 日期: 01-Jan-90 时间: 00:00:00 星期: 星期日,31.01.2021,PLC指令集,39,31.01.2021,PLC指令集,40,扩展读实时时钟(TOD

14、RX) 扩展读实时时钟(TODRX)指令从PLC中读取当前时间、日期和夏令时组态 ,并装载到从由T指定的地址开始的19字节缓冲区内。 扩展写实时时钟(TODWX) 扩展读实时时钟(TODWX)指令写当前时间、日期和夏令时组态到PLC中由T指定的地址开始的19字节缓冲区内。必须按照BCD码的格式编码所有的日期和时间值(例如:用1602表示2002年)。表6-9给出了19字节时间缓冲区(T)的格式。 时间日期时钟在电源掉电或内存丢失后,初始化下列日期和时间:,31.01.2021,PLC指令集,41,日期: 01-Jan-90 时间: 00:00:00 星期: 星期日,31.01.2021,PLC

15、指令集,42,31.01.2021,PLC指令集,43,6.5通讯指令,通讯指令 网络读写指令 网络读指令(NETR)初始化一个通讯操作,根据表(TBL)的定义,通过指定端口从远程设备上采集数据。 网络写指令(NETW)初始化一个通讯操作,根据表(TBL)的定义,通过指定端口向远程设备写数据。 网络读指令可以从远程站点读取最多16个字节的信息,网络写指令可以向远程站点写最多16个字节的信息。 在程序中,可以使用任意条网络读写指令,但是在同一时间,最多只能有8条网络读写指令被激活。例如,在所给的S7-200 CPU中,可以有4条网络读指令和4条网络写指令,或者2条网络读指令和6条网络写指令在同一

16、时间被激活。 可以使用网络读写向导程序。要启动网络读写向导程序,在命令菜单中选择Tools InstructionWizard,并且在指令向导窗口中选择网络读写。,31.01.2021,PLC指令集,44,31.01.2021,PLC指令集,45,31.01.2021,PLC指令集,46,发送(XMT)和接收(RCV)指令 发送指令(XMT)用于在自由口模式下依靠通讯口发送数据。 接收指令(RCV)启动或者终止接收信息功能。必须为接收操作指定开始和结束条件。从指定的通讯口接收到的信息被存储在数据缓冲区(TBL)中。数据缓冲区的第一个数据指明了接收到的字节数。,31.01.2021,PLC指令集

17、,47,31.01.2021,PLC指令集,48,使用自由口模式控制串行通讯口 通过编程,可以选择自由口模式来控制S7-200的串行通讯口。当选择了自由口模式,用户程序通过使用接收中断、发送中断、发送指令和接收指令来控制通讯口的操作。当处于自由口模式时,通讯协议完全由梯形图程序控制。SMB30(对于端口0)和SMB130(对于端口1,如果您的S7-200有两个端口的话)被用于选择波特率和校验类型。 当S7-200处于STOP模式时,自由口模式被禁止,重新建立正常的通讯(例如:编程设备的访问)。,31.01.2021,PLC指令集,49,在最简单的情况下,可以只用发送指令(XMT)向打印机或者显

18、示器发送信息。其它例子包括与条码阅读器、称重计和焊机的连接。在每种情况下,您都必须编写程序,来支持在自由口模式下与S7-200通讯的设备所使用的协议。 只有当S7-200处于RUN模式时,才能进行自由口通讯。要使能自由口模式,应该在SMB30(端口0)或者SMB130(端口1)的协议选择区中设置01。处于自由口通讯模式时,不能与编程设备通讯。,31.01.2021,PLC指令集,50,将PPI通讯转变为自由口模式,31.01.2021,PLC指令集,51,发送数据 发送指令使您能够发送一个字节或多个字节的缓冲区,最多为255个。 接收数据 接收指令使您能够接收一个字节或多个字节的缓冲区,最多为

19、255个。 接收指令的启动和结束条件 接收指令使用接收信息控制字节(SMB87或SMB187)中的位来定义信息起始和结束条件。,31.01.2021,PLC指令集,52,使用字符中断控制接收数据 为了完全适应对各种协议的支持,也可以使用字符中断控制的方式接收数据。接收每个字符时都会产生中断。在执行与接收字符事件相连的中断服务程序之前,接收到的字符存入SMB2中,校验状态(如果使能的话)存入SM3.0。SMB2是自由口接收字符缓冲区。在自由口模式下,每一个接收到的字符都会存放到这一位置,便于用户程序访问。SMB3用于自由口模式。它包含一个校验错误标志位。当接收字符的同时检测到校验错误时,该位被置

20、位。该字节的其它位被保留。利用校验位去丢弃信息或向该信息发送否定应答。,31.01.2021,PLC指令集,53,31.01.2021,PLC指令集,54,31.01.2021,PLC指令集,55,6.6比较指令,数值比较 比较指令用于比较两个数值: IN1 = IN2 IN1 = IN2 IN1 IN2 IN1 IN2 字节比较操作是无符号的。 整数比较操作是有符号的。 双字比较操作是有符号的。 实数比较操作是有符号的。,31.01.2021,PLC指令集,56,对于LAD和 FBD:当比较结果为真时,比较指令使触点闭合(LAD)或者输出接通(FBD)。 对于STL:当比较结果为真时,对1进

21、行LD,A或O操作,并置入栈顶。,31.01.2021,PLC指令集,57,31.01.2021,PLC指令集,58,31.01.2021,PLC指令集,59,字符串比较 字符串比较指令比较两个字符串的ASCII码字符: IN1=IN2 IN1IN2 当比较结果为真时,比较指令使触点闭合(LAD)或者输出接通(FBD),或者对1进行LD,A或O操作,并置入栈顶(STL)。,31.01.2021,PLC指令集,60,6.7转换指令,标准转换指令 数字转换 字节转为整数(BTI)、整数转为字节(ITB)、整数转为双整数(ITD)、双整数转为整数(DTI)、双整数转为实数(DTR)、BCD码转为整数

22、(BCDI)和整数转为BCD码(IBCD)。以上指令将输入值IN转换为指定的格式并存储到由OUT指定的输出值存储区中。例如:可以将双整数值转为实数值;也可以在整数和BCD码格式之间相互转换。,31.01.2021,PLC指令集,61,四舍五入(ROUND)和取整(TRUNC) 四舍五入指令(ROUND)将一个实数转为一个双整数值,并将四舍五入的结果存入OUT指定的变量中。 取整指令(TRUNC)将一个实数转为一个双整数值,并将实数的整数部分作为结果存入OUT指定的变量中。 包络段数 段码指令(SEG)允许您产生一个点阵,用于点亮七段码显示器的各个段。,31.01.2021,PLC指令集,62,

23、31.01.2021,PLC指令集,63,ASCII码转换指令 有效的ASCII码字符为十六进制的30到39和41到46。 在ASCII码和十六进制数之间相互转换 ASCII码转十六进制数指令(ATH)将一个长度为LEN从IN开始的ASCII码字符串转换成从OUT开始的十六进制数。十六进制数转ASCII码指令(HTA)将从输入字节IN开始的十六进制数,转换成从OUT开始的ASCII码字符串。被转换的十六进制数的位数由长度LEN给出。 能够被转换的ASCII码字符串或者十六进制数的最大数量为255。有效ASCII码输入 有效的ASCII码输入字符是0到9的十六进制数代码值30到39,和大写字符A

24、到F的十六进制数代码值41到46这些字母数字字符。,31.01.2021,PLC指令集,64,将数值转为ASCII码 整数转ASCII码(ITA)、双整数转ASCII码(DTA)和实数转ASCII码(RTA)指令,分别将整数、双整数或实数值转换成ASCII码字符。,31.01.2021,PLC指令集,65,31.01.2021,PLC指令集,66,31.01.2021,PLC指令集,67,字符串转换指令 将数值转换为字符串 整数转字符串(ITS)、双整数转字符串(DTS)和实数转字符串(RTS)指令,将整数、双整数或实数值(IN)转换成ASCII码字符串(OUT)。,31.01.2021,PL

25、C指令集,68,将子字符串转换为数字值 子字符串转整数(STI)、子字符串转双整数(STD)和子字符串转实数(STR)指令,将从偏移量INDX开始的字符串值IN转换成整数/双整数或实数值OUT。,31.01.2021,PLC指令集,69,31.01.2021,PLC指令集,70,编码和解码指令 编码 编码指令(ENCO)将输入字IN的最低有效位的位号写入输出字节OUT的最低有效“半字节”(4位)中。 译码 译码指令(DECO)根据输入字节(IN)的低四位所表示的位号置输出字(OUT)的相应位为1,输出字的所有其他位都清0。,31.01.2021,PLC指令集,71,31.01.2021,PLC

26、指令集,72,6.8计数器指令,SIMATIC计数器指令 增计数器 增计数指令(CTU)从当前计数值开始,在每一个(CU)输入状态从低到高时递增计数。当CXX的当前值大于等于预置值PV时,计数器位CXX置位。当复位端(R)接通或者执行复位指令后,计数器被复位。当它达到最大值(32,767)后,计数器停止计数。 STL操作: H 复位输入:栈顶 H 计数输入:其值被装载在第二个堆栈中。,31.01.2021,PLC指令集,73,减计数器 减计数指令(CTD)从当前计数值开始,在每一个(CD)输入状态的低到高时递减计数。当CXX的当前值等于0时,计数器位CXX置位。当装载输入端(LD)接通时,计数

27、器位被复位,并将计数器的当前值设为预置值PV。当计数值到0时,计数器停止计数,计数器位CXX接通。 STL操作: H 装载输入:栈顶 H 计数输入:其值被装载在第二个堆栈中。,31.01.2021,PLC指令集,74,增/减计数器 增/减计数指令(CTUD),在每一个增计数输入(CU)的低到高时增计数,在每一个减计数输入(CD)的低到高时减计数。计数器的当前值CXX保存当前计数值。在每一次计数器执行时,预置值PV与当前值作比较。 当达到最大值(32767)时,在增计数输入处的下一个上升沿导致当前计数值变为最小值(-32768)。当达到最小值(-32768)时,在减计数输入端的下一个上升沿导致当

28、前计数值变为最大值(32767)。 当CXX的当前值大于等于预置值PV时,计数器位CXX置位。否则,计数器位关断。当复位端(R)接通或者执行复位指令后,计数器被复位。当达到预置值PV时,CTUD计数器停止计数。,31.01.2021,PLC指令集,75,STL操作: H 复位输入:栈顶 H 减计数输入:其值被装载在第二栈位中。 H 增计数输入:其值被装载在第三栈位中。,31.01.2021,PLC指令集,76,31.01.2021,PLC指令集,77,31.01.2021,PLC指令集,78,6.9高速计数器指令,定义高速计数器 定义高速计数器指令(HDEF)为指定的高速计数器(HSCx)选择

29、操作模式。模块的选择决定了高速计数器的时钟、方向、启动和复位功能。 对于每一个高速计数器使用一条定义高速计数器指令。 高速计数器 高速计数器指令(HSC)在HSC特殊存储器位状态的基础上配置和控制高速计数器。参数N指定高速计数器的标号。,31.01.2021,PLC指令集,79,高速计数器可以被配置为12种模式中的任意一种,详细情况可参考SIEMENS S7-200系统手册。 每一个计数器都有时钟、方向控制、复位、启动的特定输入。对于双相计数器,两个时钟都可以运行在最高频率。在正交模式下,您可以选择一倍速(1x)或者四倍速(4x)计数速率。所有计数器都可以运行在最高频率下而互不影响。,31.0

30、1.2021,PLC指令集,80,高速计数器编程 可以使用指令向导来配置计数器。向导程序使用下列信息:计数器的类型和模式、计数器的预置值、计数器的初始值和计数的初始方向。要启动HSC指令向导,可以在命令菜单窗口中选择Tools Instruction Wizard ,然后在向导窗口中选择HSC指令。,31.01.2021,PLC指令集,81,对高速计数器编程,必须完成下列基本操 定义计数器和模式 设置控制字节 设置初始值 设置预置值 指定并使能中断服务程序 激活高速计数器 高速计数器的编程示例省略。,31.01.2021,PLC指令集,82,6.10脉冲输出指令,脉冲输出指令(PLS)用于在高

31、速输出(Q0.0和Q0.1)上控制脉冲串输出(PTO)和脉宽调制(PWM)功能。 请参阅资料光盘上应用示例中使用PLS指令进行PTO/PWM操作的程序。见应用示例7、22、23、30和50。,31.01.2021,PLC指令集,83,6.11数字运算指令,加、减、乘、除指令 加法 减法 IN1+IN2=OUT IN1-IN2=OUT LAD和FBD IN1+OUT=OUT OUT-IN1=OUT STL 整数加法(+I)或者整数减法(-I)指令,将两个16位整数相加或者相减,产生一个16位结果。双整数加法(+D)或者双整数减法(-D)指令,将两个32位整数相加或者相减,产生一个32位结果。实数

32、加法(+R)和实数减法(-R)指令,将两个32位实数相加或相减,产生一个32位实数结果。,31.01.2021,PLC指令集,84,乘法 除法 IN1*IN2=OUT IN1/IN2=OUT LAD和FBD IN1*OUT=OUT OUT/IN1=OUT STL 整数乘法(*I)或者整数除法(/I)指令,将两个16位整数相乘或者相除,产生一个16位结果。(对于除法,余数不被保留。)双整数乘法(*D)或者双整数除法(/D)指令,将两个32位整数相乘或者相除,产生一个32位结果。(对于除法,余数不被保留。)实数乘法(*R)或实数除法(/R)指令,将两个32位实数相乘或相除,产生一个32位实数结果。

33、,31.01.2021,PLC指令集,85,31.01.2021,PLC指令集,86,31.01.2021,PLC指令集,87,31.01.2021,PLC指令集,88,31.01.2021,PLC指令集,89,31.01.2021,PLC指令集,90,数学功能指令 正弦、余弦和正切 正弦(SIN)、余弦(COS)和正切(TAN)指令计算角度值IN的三角函数值,并将结果存放在OUT中。输入角度值是弧度值。 SIN(IN)= OUT COS(IN)=OUT TAN(IN) =OUT 要将角度从度数变为弧度,可以使用MUL_R(*R)指令,将度数乘以1.745329E-2(接近/180)即可。,3

34、1.01.2021,PLC指令集,91,自然对数和自然指数 自然对数指令(LN)计算输入值IN的自然对数,并将结果存放到OUT中。 自然指数指令(EXP)计算输入值IN的自然指数值,并将结果存放到OUT中。 LN (IN) = OUT EXP (IN)=OUT 平方根 平方根指令(SQRT)计算实数(IN)的平方根 ,并将结果存放到OUT中。 SQRT(IN)=OUT,31.01.2021,PLC指令集,92,递增和递减指令 递增 IN+1=OUT LAD和 FBD OUT+1=OUT STL 递减 IN - 1=OUT LAD和 FBD OUT - 1=OUT STL 递增或者递减指令将输入

35、IN加1或者减1,并将结果存放在OUT中。 字节递增(INCB)和字节递减(DECB)操作是无符号的。 字递增(INCW)和字递减(DECW)操作是有符号的。 双字递增(INCD)和双字递减(DECD)操作是有符号的。,31.01.2021,PLC指令集,93,31.01.2021,PLC指令集,94,6.12比例/积分/微分(PID)回路控制指令,PID回路控制指令(PID)根据输入和表(TBL)中的配置信息,对相应的LOOP执行PID回路计算。,31.01.2021,PLC指令集,95,6.13中断指令,中断允许(ENI)和中断禁止(DISI) 中断允许指令(ENI)全局地允许所有被连接的

36、中断事件。中断禁止指令(DISI)全局地禁止处理所有中断事件。 当进入RUN模式时,初始状态为禁止中断。在RUN模式,您可以执行全局中断允许指令(ENI)允许所有中断。全局中断禁止指令 (DISI)不允许处理中断服务程序,但中断事件仍然会排队等候。,31.01.2021,PLC指令集,96,中断条件返回(CRETI) 中断条件返回指令(CRETI)用于根据前面的逻辑操作的条件,从中断服务程序中返回。 中断连接(ATCH) 中断连接指令(ATCH)将中断事件EVNT与中断服务程序号INT相关联,并使能该中断事件。 中断分离(DTCH) 中断分离指令(DTCH)将中断事件EVNT与中断服务程序之间

37、的关联切断,并禁止该中断事件。,31.01.2021,PLC指令集,97,清除中断事件(CLREVENT) S7-200支持的中断类型 S7-200支持下列类型的中断服务程序: 通讯口中断:S7-200生成使程序可以控制通讯口的事件。 I/O中断:S7-200对I/O点状态的各种变化产生中断事件。这些事件可以对高速计数器、脉冲输出或输入的上升或下降状态做出响应。 时基中断:S7-200产生使程序在指定的间隔上起作用的事件。,31.01.2021,PLC指令集,98,中断优先级和中断队列 在各个指定的优先级之内,CPU按先来先服务的原则处理中断。任何时间点上,只有一个用户中断程序正在执行。一旦中

38、断程序开始执行,它要一直执行到结束。而且不会被别的中断程序,甚至是更高优先级的中断程序所打断。当另一个中断正在处理中,新出现的中断需要排队,等待处理。,31.01.2021,PLC指令集,99,31.01.2021,PLC指令集,100,31.01.2021,PLC指令集,101,31.01.2021,PLC指令集,102,6.14逻辑操作指令,取反指令 字节、字和双字取反 字节取反(INVB)、字取反(INVW)和双字取反(INVD)指令将输入IN取反的结果存入OUT中。 使ENO=0的错误条件: H 0006(间接寻址) 受影响的SM标志位: H SM1.0(结果为0),31.01.202

39、1,PLC指令集,103,31.01.2021,PLC指令集,104,31.01.2021,PLC指令集,105,31.01.2021,PLC指令集,106,31.01.2021,PLC指令集,107,与、或和异或指令 字节与、字与和双字与 字节与(ANDB)、字与(ANDW)和双字与(ANDD)指令将输入值IN1和IN2的相应位进行与操作,将结果存入OUT中。 字节或、字或和双字或 字节或(ORB)、字或指令(ORW)和双字或(ORD)指令将两个输入值IN1和IN2的相应位进行或操作,将结果存入OUT中。,31.01.2021,PLC指令集,108,字节异或、字异或和双字异或 字节异或(RO

40、B)、字异或(ORW)和双字异或(ORD)指令将两个输入值IN1和IN2的相应位进行异或操作,将结果存入OUT中。,31.01.2021,PLC指令集,109,31.01.2021,PLC指令集,110,6.15传送指令,字节、字、双字或者实数传送 字节传送(MOVB)、字传送(MOVW)、双字传送(MOVD)和实数传送指令在不改变原值的情况下将IN中的值(MOVR)传送到OUT。,31.01.2021,PLC指令集,111,字节立即传送(读和写) 字节立即传送指令允许您在物理I/O和存储器之间立即传送一个字节数据。 字节立即读(BIR)指令读物理输入(IN),并将结果存入内存地址(OUT),

41、但过程映像寄存器并不刷新。 字节立即写指令(BIW)从内存地址(IN)中读取数据,写入物理输出(OUT),同时刷新相应的过程映像区。,31.01.2021,PLC指令集,112,块传送指令 字节、字、双字的块传送 字节块传送(BMB)、字块传送(BMW)和双字块传送(BMD)指令传送指定数量的数据到一个新的存储区,数据的起始地址IN,数据长度为N个字节、字或者双字,新块的起始地址为OUT。 N的范围从1到255。,31.01.2021,PLC指令集,113,31.01.2021,PLC指令集,114,6.16程序控制指令,条件结束 条件结束指令(END)根据前面的逻辑关系终止当前扫描周期。可以

42、在主程序中使用条件结束指令,但不能在子程序或中断服务程序中使用该命令。 停止 停止指令(STOP)导致CPU从RUN到STOP模式从而可以立即终止程序的执行。 如果STOP指令在中断程序中执行,那么该中断立即终止,并且忽略所有挂起的中断,继续扫描程序的剩余部分。完成当前周期的剩余动作,包括主用户程序的执行,并在当前扫描的最后,完成从RUN到STOP模式的转变。,31.01.2021,PLC指令集,115,看门狗复位 看门狗复位指令(WDR)允许S7-200 CPU的系统看门狗定时器被重新触发,这样可以在不引起看门狗错误的情况下,增加此扫描所允许的时间。 使用WDR指令时要小心,因为如果您用循环

43、指令去阻止扫描完成或过度的延迟扫描完成的时间,那么在终止本次扫描之前,下列操作过程将被禁止:,31.01.2021,PLC指令集,116,通讯(自由端口方式除外) I/O更新(立即I/O除外) 强制更新 SM位更新(SM0,SM5SM29不能被更新) 运行时间诊断 由于扫描时间超过25秒,10ms和100ms定时器将不会正确累计时间。 在中断程序中的STOP指令 带数字量输出的扩展模块也包含一个看门狗定时器,如果模块没有被S7-200写,则此看门狗定时器将关断输出。在扩展的扫描时间内,对每个带数字量输出的扩展模块进行立即写操作以保持正确的输出。请参考这段描述之后的实例。,31.01.2021,

44、PLC指令集,117,31.01.2021,PLC指令集,118,For-Next循环指令 FOR和NEXT指令可以描述需重复进行一定次数的循环体。每条FOR指令必须对应一条NEXT指令。For-Next循环嵌套(一个For-Next循环在另一个For-Next循环之内)深度可达8层。 FOR-NEXT指令执行FOR指令和NEXT指令之间的指令。必须指定计数值或者当前循环次数INDX、初始值(INIT)和终止值(FINAL)。 NEXT指令标志着FOR循环的结束。,31.01.2021,PLC指令集,119,31.01.2021,PLC指令集,120,跳转指令 跳转到标号指令(JMP)执行程序

45、内标号N指定的程序分支。标号指令标记跳转目的地的位置N。 可以在主程序、子程序或者中断服务程序中,使用跳转指令。跳转和与之相应的标号指令必须位于同一段程序代码(无论是主程序、子程序还是中断服务程序)。 不能从主程序跳到子程序或中断程序,同样不能从子程序或中断程序跳出。 可以在SCR程序段中使用跳转指令,但相应的标号指令必须也在同一个SCR段中。,31.01.2021,PLC指令集,121,31.01.2021,PLC指令集,122,顺控继电器(SCR)指令 SCR指令使得能够按照自然工艺段在LAD、FBD或STL中编制状态控制程序。 只要应用中包含的一系列操作需要反复执行,就可以使用SCR使程

46、序更加结构化,以至于直接针对应用。这样可以使得编程和调试更加快速和简单。 装载SCR指令(LSCR)将S位的值装载到SCR和逻辑堆栈中。 SCR堆栈的结果值决定是否执行SCR程序段。SCR堆栈的值会被复制到逻辑堆栈中,因此可以直接将盒或者输出线圈连接到左侧的能流线上而不经过中间触点。,31.01.2021,PLC指令集,123,31.01.2021,PLC指令集,124,分支控制 在许多实例中,一个顺序控制状态流必须分成两个或多个不同分支控制状态流。当一个控制状态流分离成多个分支时,所有的分支控制状态流必须同时激活,如图 6-33所示。 使用多条由相同转移条件激活的SCRT指令,可以在一段SC

47、R程序中实现控制流的分支,如下面的实例所示。,31.01.2021,PLC指令集,125,31.01.2021,PLC指令集,126,31.01.2021,PLC指令集,127,合并控制 与分支控制的情况类似,两个或者多个分支状态流必须合并为一个状态流。当多个状态流汇集成一个时,我们称之为合并。当控制流合并时,所有的控制流必须都完成,才能执行下一个状态。图 6-34给出了两个控制流合并的示意图。 在SCR程序中,通过从状态L转到状态L,以及从状态M转到状态M的方法实现控制流的合并。当状态L、M的SCR使能位为真时,即可激活状态N,如下例所示。,31.01.2021,PLC指令集,128,31.

48、01.2021,PLC指令集,129,31.01.2021,PLC指令集,130,诊断LED指令( DIAG_LED) 如果输入参数IN的值为零,就将诊断LED置为OFF。如果输入参数IN的值大于零,就将诊断LED置为ON(黄色)。 当系统块中指定的条件为真或者用非零IN参数执行DIAG_LED指令时,CPU发光二极管(LED)标注的SF/DIAG可以被配置用于显示黄色。 系统块(配置LED)复选框选项: 当有一项在CPU内被强制时,SF/DIAGLED为ON(黄色) 当模块有I/O错误时,SF/DIAGLED为ON(黄色) 两个配置LED选项都不选中,将使SF/DIAG黄光只受DIAG_LE

49、D指令控制。CPU系统故障(SF)用红光指示。,31.01.2021,PLC指令集,131,31.01.2021,PLC指令集,132,6.17移位和循环指令,右移(SHR)和左移(SHL)指令 移位指令将输入值IN右移或左移N位,并将结果装载到输出OUT中。 移位指令对移出的位自动补零。如果位数N大于或等于最大允许值(对于字节操作为8,对于字操作为16,对于双字操作为32),那么移位操作的次数为最大允许值。如果移位次数大于0,溢出标志位(SM1.1)上就是最近移出的位值。如果移位操作的结果为0,零存储器位(SM1.0)置位。 字节操作是无符号的。对于字和双字操作,当使用有符号数据类型时,符号位也被移动。,31.01.2021,PLC指令集,133,循环右移(ROR)和循环左移(ROL)指令 循环移位指令将输入值IN循环右移或者循环左移N位,并将输出结果装载到OUT中。循环移位是圆形的。 如果位数N大于或者等于最大允许值(对于字节操作为8,对于字操作为16,对于双字操

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1