辅助学习课件S7200可编程控制器指令系统

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

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

1、S7-200可编程控制器可编程控制器指令集指令集PLC 课程组 9/1/20241PLC指令集指令集主要内容主要内容u6.1用于描述指令的习惯用语用于描述指令的习惯用语 u6.2S7-200存储器范围及特性存储器范围及特性u6.3位逻辑指令位逻辑指令 u6.4时钟指令时钟指令u6.5通讯指令通讯指令u6.6比较指令比较指令u6.7转换指令转换指令u6.8计数器指令计数器指令u6.9高速计数器指令高速计数器指令9/1/20242PLC指令集指令集u6.10脉冲输出指令脉冲输出指令 u6.11数字运算指令数字运算指令 u6.12比例比例/积分积分/微分(微分(PID)回路控制指令)回路控制指令u6

2、.13中断指令中断指令 u6.14逻辑操作指令逻辑操作指令 u6.15传送指令传送指令u6.16程序控制指令程序控制指令u6.17移位和循环指令移位和循环指令u6.18字符串指令字符串指令9/1/20243PLC指令集指令集u6.19表指令表指令 u6.20定时器指令定时器指令u6.21子程序指令子程序指令9/1/20244PLC指令集指令集6.1用于描述指令的习惯用语用于描述指令的习惯用语 u图图6-1给出了对一条指令的典型描述,并指出了用给出了对一条指令的典型描述,并指出了用于描述指令及其操作的不同区域。指令说明包括于描述指令及其操作的不同区域。指令说明包括LAD、FBD和和STL三种格式

3、。操作数表列出了指三种格式。操作数表列出了指令的操作数,并给出每个操作数的有效数据类型,令的操作数,并给出每个操作数的有效数据类型,存储区的区域及长度。存储区的区域及长度。uEN/ENO操作数和数据类型没有在指令操作数表操作数和数据类型没有在指令操作数表中列出,因为这些操作数对于所有的中列出,因为这些操作数对于所有的LAD和和FBD指令来说都是一样的。指令来说都是一样的。n对于对于LAD:EN和和ENO是能流,为布尔数据类型。是能流,为布尔数据类型。n对于对于FBD:EN和和ENO是是I、Q、V、M、SM、S、T、C、L或者能流,为布尔数据类型。或者能流,为布尔数据类型。9/1/20245PL

4、C指令集指令集9/1/20246PLC指令集指令集6.2S7-200存储器范围及特性存储器范围及特性9/1/20247PLC指令集指令集9/1/20248PLC指令集指令集6.3位逻辑指令位逻辑指令 u触点触点n标准触点标准触点l常开触点指令(常开触点指令(LD、A和和O)与常闭触点指令)与常闭触点指令(LDN、AN和和ON)从存储器或者过程映象寄存器)从存储器或者过程映象寄存器中得到参考值。标准触点指令从存储器中得到参考中得到参考值。标准触点指令从存储器中得到参考值。(如果数据类型是值。(如果数据类型是I或或Q,则也可从过程映象寄,则也可从过程映象寄存器中得到参考值。)存器中得到参考值。)l

5、当位值为当位值为1时,常开触点闭合;当位值为时,常开触点闭合;当位值为0时,常闭时,常闭触点闭合。触点闭合。l在在FBD中,与和或操作的输入可以最多扩展到中,与和或操作的输入可以最多扩展到32个。个。在在STL中,常开指令中,常开指令LD、AND或或OR或将相应地址或将相应地址位的位值存入栈顶;而常闭指令位的位值存入栈顶;而常闭指令 LD、AND或或OR则则将相应地址位的位值取反,再存入栈顶。将相应地址位的位值取反,再存入栈顶。9/1/20249PLC指令集指令集9/1/202410PLC指令集指令集9/1/202411PLC指令集指令集n立即触点立即触点l立即触点并不依赖于立即触点并不依赖于

6、S7-200的扫描周期刷新,它会的扫描周期刷新,它会立即刷新。常开立即触点指令(立即刷新。常开立即触点指令(LDI、AI和和OI)和)和常闭立即触点指令(常闭立即触点指令(LDNI、ANI和和ONI)在指令执)在指令执行时得到物理输入值,但过程映像寄存器并不刷新。行时得到物理输入值,但过程映像寄存器并不刷新。l当物理输入点状态为当物理输入点状态为1时,常开立即触点闭合;当物时,常开立即触点闭合;当物理输入点状态为理输入点状态为0时,常闭立即触点闭合。常开立即时,常闭立即触点闭合。常开立即指令指令LD、AND或或OR将物理输入值存入栈顶,而常将物理输入值存入栈顶,而常闭立即指令闭立即指令LD、A

7、ND或或OR将物理输入的值取反,将物理输入的值取反,再存入栈顶。再存入栈顶。9/1/202412PLC指令集指令集n取反指令(取反指令(NOT)l取反指令(取反指令(NOT)改变能流输入的状态(也就是说,它将栈顶)改变能流输入的状态(也就是说,它将栈顶值由值由0变为变为1,由,由1变为变为0)。)。n正、负跳变指令(正、负跳变指令(EU、ED)l正跳变触点指令(正跳变触点指令(EU)检测到每一次正跳变(由)检测到每一次正跳变(由0到到1),让),让能流接通一个扫描周期。负跳变触点指令(能流接通一个扫描周期。负跳变触点指令(ED)检测到每一)检测到每一次负跳变(由次负跳变(由1到到0),让能流接

8、通一个扫描周期。对于正跳变),让能流接通一个扫描周期。对于正跳变指令,一旦发现有正跳变发生(由指令,一旦发现有正跳变发生(由0到到1),该栈顶值被置为),该栈顶值被置为1,否则置,否则置0。对于负跳变指令,一旦发现有负跳变发生(由。对于负跳变指令,一旦发现有负跳变发生(由1到到0),该栈顶值被置为),该栈顶值被置为1,否则置,否则置0。l对于运行模式下编辑(在对于运行模式下编辑(在RUN模式下编辑应用程序),必须为模式下编辑应用程序),必须为正跳变指令和负跳变指令输入参数。正跳变指令和负跳变指令输入参数。l关于在关于在RUN模式下编辑程序的更多信息参见模式下编辑程序的更多信息参见SIEMENS

9、的详细的详细资料。资料。9/1/202413PLC指令集指令集9/1/202414PLC指令集指令集u如图如图6-2中所示,中所示,S7-200用逻辑堆栈来决用逻辑堆栈来决定控制逻辑。在本例中,定控制逻辑。在本例中,“iv0”到到“iv7”表示表示逻辑堆栈的初始值,逻辑堆栈的初始值,“nv”表示指令提供的表示指令提供的一个新值,一个新值,S0表示逻辑堆栈中存储的计算表示逻辑堆栈中存储的计算值。值。9/1/202415PLC指令集指令集9/1/202416PLC指令集指令集9/1/202417PLC指令集指令集9/1/202418PLC指令集指令集u线圈线圈n输出(输出(=)l输出指令(输出指令

10、(=)将新值写入输出点的过程映象寄存)将新值写入输出点的过程映象寄存器。当输出指令执行时,器。当输出指令执行时,S7-200将输出过程映象将输出过程映象寄存器中的位接通或者断开。在寄存器中的位接通或者断开。在LAD和和FBD中,指中,指定点的值等于能流。在定点的值等于能流。在STL中,栈顶的值复制到指中,栈顶的值复制到指定位。定位。n立即输出(立即输出(=I)l当指令执行时,立即输出指令(当指令执行时,立即输出指令(=I)将新值同时写)将新值同时写到物理输出点和相应的过程映象寄存器中。到物理输出点和相应的过程映象寄存器中。9/1/202419PLC指令集指令集9/1/202420PLC指令集指

11、令集9/1/202421PLC指令集指令集l当立即输出指令执行时,物理输出点立即被置为能当立即输出指令执行时,物理输出点立即被置为能流值。在流值。在STL中,立即指令将栈顶的值立即复制到中,立即指令将栈顶的值立即复制到物理输出点的指定位上。物理输出点的指定位上。“I”表示立即,当指令执行表示立即,当指令执行时,新值会同时被写到物理输出和相应的过程映象时,新值会同时被写到物理输出和相应的过程映象寄存器。这一点不同于非立即指令,只把新值写入寄存器。这一点不同于非立即指令,只把新值写入过程映象寄存器。过程映象寄存器。n置位(置位(S)和复位()和复位(R)l置位(置位(S)和复位()和复位(R)指令

12、将从指定地址开始的)指令将从指定地址开始的N个点置位或者复位。可以一次置位或者复位个点置位或者复位。可以一次置位或者复位1-255个点。个点。9/1/202422PLC指令集指令集n如果复位指令指定的是一个定时器位(如果复位指令指定的是一个定时器位(T)或)或计数器位(计数器位(C),指令不但复位定时器或计数),指令不但复位定时器或计数器位,而且清除定时器或计数器的当前值。器位,而且清除定时器或计数器的当前值。9/1/202423PLC指令集指令集n立即置位和立即复位立即置位和立即复位l立即置位和立即复位指令将从指定地址开始的立即置位和立即复位指令将从指定地址开始的N个个点立即置位或者立即复位

13、。可以一次置位或复位点立即置位或者立即复位。可以一次置位或复位1到到128个点。个点。l“I”表示立即,当指令执行时,新值会同时被写到物表示立即,当指令执行时,新值会同时被写到物理输出和相应的过程映象寄存器。这一点不同于非理输出和相应的过程映象寄存器。这一点不同于非立即指令,只把新值写入过程映像寄存器。立即指令,只把新值写入过程映像寄存器。9/1/202424PLC指令集指令集9/1/202425PLC指令集指令集9/1/202426PLC指令集指令集9/1/202427PLC指令集指令集u逻辑堆栈指令逻辑堆栈指令n栈装载与(栈装载与(ALD)l栈装载与指令(栈装载与指令(ALD)对堆栈中第一

14、层和第二层的)对堆栈中第一层和第二层的值进行逻辑与操作,结果放入栈顶。执行完栈装载值进行逻辑与操作,结果放入栈顶。执行完栈装载与指令之后,栈深度减与指令之后,栈深度减1。n栈装载或(栈装载或(OLD)l栈装载或指令(栈装载或指令(OLD)对堆栈中第一层和第二层的)对堆栈中第一层和第二层的值进行逻辑或操作,结果放入栈顶。执行完栈装载值进行逻辑或操作,结果放入栈顶。执行完栈装载或指令之后,栈深度减或指令之后,栈深度减1。9/1/202428PLC指令集指令集n逻辑推入栈(逻辑推入栈(LPS)l逻辑推入栈指令(逻辑推入栈指令(LPS)复制栈顶的值,并将这个)复制栈顶的值,并将这个值推入栈。栈底的值被

15、推出并消失。值推入栈。栈底的值被推出并消失。n逻辑读栈(逻辑读栈(LRD)l逻辑读栈指令(逻辑读栈指令(LRD)复制堆栈中的第二个值到栈)复制堆栈中的第二个值到栈顶。堆栈没有推入栈或者弹出栈操作,但旧的栈顶顶。堆栈没有推入栈或者弹出栈操作,但旧的栈顶值被新的复制值取代。值被新的复制值取代。n逻辑弹出栈(逻辑弹出栈(LPP)l逻辑弹出栈指令(逻辑弹出栈指令(LPP)弹出栈顶的值,堆栈的第)弹出栈顶的值,堆栈的第二个栈值成为新的栈顶值。二个栈值成为新的栈顶值。9/1/202429PLC指令集指令集nENO与(与(AENO)lENO与指令(与指令(AENO)对)对ENO位和栈顶的值进行逻辑与操作,位

16、和栈顶的值进行逻辑与操作,其产生的效果与其产生的效果与LAD或者或者FBD中盒指令的中盒指令的ENO位相同。与操位相同。与操作结果成为新的栈顶。作结果成为新的栈顶。lENO是是LAD和和FBD中盒指令的布尔输出。如果盒指令的中盒指令的布尔输出。如果盒指令的EN输输入有能流并且执行没有错误,则入有能流并且执行没有错误,则ENO将能流传递给下一元素。将能流传递给下一元素。您可以把您可以把ENO作为指令成功完成的使能标志位。作为指令成功完成的使能标志位。ENO位被用位被用作栈顶,影响能流和后续指令的执行。作栈顶,影响能流和后续指令的执行。STL中没有中没有EN输入。输入。条件指令要想执行,栈顶值必须

17、为逻辑条件指令要想执行,栈顶值必须为逻辑1。在。在STL中也没有中也没有ENO输出。但是在输出。但是在STL中,那些与中,那些与LAD和和FBD中具有中具有ENO输输出的指令相应的指令,存在一个特殊的出的指令相应的指令,存在一个特殊的ENO位。它可以被位。它可以被AENO指令访问。指令访问。n装入堆栈(装入堆栈(LDS)l装入堆栈指令(装入堆栈指令(LDS)复制堆栈中的第)复制堆栈中的第N个值到栈顶。栈底的个值到栈顶。栈底的值被推出并消失。值被推出并消失。9/1/202430PLC指令集指令集u如图如图6-3中所示,中所示,S7-200用逻辑堆栈来决用逻辑堆栈来决定控制逻辑。在本例中,定控制逻

18、辑。在本例中,“iv0”到到“iv7”表示表示逻辑堆栈的初始值,逻辑堆栈的初始值,“nv”表示指令提供的表示指令提供的一个新值,而一个新值,而“S0”表示逻辑堆栈中存储的表示逻辑堆栈中存储的计算值。计算值。9/1/202431PLC指令集指令集9/1/202432PLC指令集指令集9/1/202433PLC指令集指令集uRS触发器指令触发器指令n置位优先触发器是一个置位优先的锁存器。当置位优先触发器是一个置位优先的锁存器。当置位信号(置位信号(S1)和复位信号()和复位信号(R)都为真时,)都为真时,输出为真。输出为真。n复位优先触发器是一个复位优先的锁存器。当复位优先触发器是一个复位优先的锁

19、存器。当置位信号(置位信号(S)和复位信号()和复位信号(R1)都为真时,)都为真时,输出为假。输出为假。nBit参数用于指定被置位或者复位的布尔参数。参数用于指定被置位或者复位的布尔参数。可选的输出反映可选的输出反映Bit参数的信号状态。参数的信号状态。n表表6-7中给出了例子程序的真值表。中给出了例子程序的真值表。9/1/202434PLC指令集指令集9/1/202435PLC指令集指令集9/1/202436PLC指令集指令集6.4时钟指令时钟指令u读实时时钟(读实时时钟(TODR)和写实时时钟)和写实时时钟(TODW)n读实时时钟(读实时时钟(TODR)指令从硬件时钟中读当)指令从硬件时

20、钟中读当前时间和日期,并把它装载到一个前时间和日期,并把它装载到一个8字节,起字节,起始地址为始地址为T的时间缓冲区中。的时间缓冲区中。n写实时时钟(写实时时钟(TODW)指令将当前时间和日期)指令将当前时间和日期写入硬件时钟,当前时钟存储在以地址写入硬件时钟,当前时钟存储在以地址T开始开始的的8字节时间缓冲区中。字节时间缓冲区中。n您必须按照您必须按照BCD码的格式编码所有的日期和时码的格式编码所有的日期和时间值(例如:用间值(例如:用1697表示表示1997年)。图年)。图6-4给出了时间缓冲区(给出了时间缓冲区(T)的格式。)的格式。9/1/202437PLC指令集指令集n时间日期(时间

21、日期(TOD)时钟在电源掉电或内存丢失)时钟在电源掉电或内存丢失后,初始化为下列日期和时间:后,初始化为下列日期和时间:n日期:日期: 01-Jan-90n时间:时间: 00:00:00n星期:星期: 星期日星期日9/1/202438PLC指令集指令集9/1/202439PLC指令集指令集u扩展读实时时钟(扩展读实时时钟(TODRX)n扩展读实时时钟(扩展读实时时钟(TODRX)指令从)指令从PLC中读取当前时中读取当前时间、日期和夏令时组态间、日期和夏令时组态 ,并装载到从由,并装载到从由T指定的地址开指定的地址开始的始的19字节缓冲区内。字节缓冲区内。u扩展写实时时钟(扩展写实时时钟(TO

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

23、Jan-90n时间时间: 00:00:00n星期:星期: 星期日星期日9/1/202441PLC指令集指令集9/1/202442PLC指令集指令集6.5通讯指令通讯指令u通讯指令通讯指令n网络读写指令网络读写指令l网络读指令网络读指令(NETR)初始化一个通讯操作,根据表()初始化一个通讯操作,根据表(TBL)的定义,通过指定端口从远程设备上采集数据。的定义,通过指定端口从远程设备上采集数据。l网络写指令网络写指令(NETW)初始化一个通讯操作,根据表()初始化一个通讯操作,根据表(TBL)的定义,通过指定端口向远程设备写数据。的定义,通过指定端口向远程设备写数据。l网络读指令可以从远程站点读

24、取最多网络读指令可以从远程站点读取最多16个字节的信息,网络写个字节的信息,网络写指令可以向远程站点写最多指令可以向远程站点写最多16个字节的信息。个字节的信息。l在程序中,可以使用任意条网络读写指令,但是在同一时间,在程序中,可以使用任意条网络读写指令,但是在同一时间,最多只能有最多只能有8条网络读写指令被激活。例如,在所给的条网络读写指令被激活。例如,在所给的S7-200 CPU中,可以有中,可以有4条网络读指令和条网络读指令和4条网络写指令,或者条网络写指令,或者2条网条网络读指令和络读指令和6条网络写指令在同一时间被激活。条网络写指令在同一时间被激活。l可以使用网络读写向导程序。要启动

25、网络读写向导程序,在命可以使用网络读写向导程序。要启动网络读写向导程序,在命令菜单中选择令菜单中选择Tools InstructionWizard,并且在指令向导窗,并且在指令向导窗口中选择网络读写。口中选择网络读写。9/1/202443PLC指令集指令集9/1/202444PLC指令集指令集9/1/202445PLC指令集指令集u发送(发送(XMT)和接收()和接收(RCV)指令)指令n发送指令(发送指令(XMT)用于在自由口模式下依靠通)用于在自由口模式下依靠通讯口发送数据。讯口发送数据。n接收指令(接收指令(RCV)启动或者终止接收信息功能。)启动或者终止接收信息功能。必须为接收操作指定

26、开始和结束条件。从指定必须为接收操作指定开始和结束条件。从指定的通讯口接收到的信息被存储在数据缓冲区的通讯口接收到的信息被存储在数据缓冲区(TBL)中。数据缓冲区的第一个数据指明了)中。数据缓冲区的第一个数据指明了接收到的字节数。接收到的字节数。9/1/202446PLC指令集指令集9/1/202447PLC指令集指令集u使用自由口模式控制串行通讯口使用自由口模式控制串行通讯口n通过编程,可以选择自由口模式来控制通过编程,可以选择自由口模式来控制S7-200的串行的串行通讯口。当选择了自由口模式,用户程序通过使用接通讯口。当选择了自由口模式,用户程序通过使用接收中断、发送中断、发送指令和接收指

27、令来控制通讯收中断、发送中断、发送指令和接收指令来控制通讯口的操作。当处于自由口模式时,通讯协议完全由梯口的操作。当处于自由口模式时,通讯协议完全由梯形图程序控制。形图程序控制。SMB30(对于端口(对于端口0)和)和SMB130(对(对于端口于端口1,如果您的,如果您的S7-200有两个端口的话)被用于有两个端口的话)被用于选择波特率和校验类型。选择波特率和校验类型。n当当S7-200处于处于STOP模式时,自由口模式被禁止,重模式时,自由口模式被禁止,重新建立正常的通讯(例如:编程设备的访问)。新建立正常的通讯(例如:编程设备的访问)。9/1/202448PLC指令集指令集n在最简单的情况

28、下,可以只用发送指令在最简单的情况下,可以只用发送指令(XMT)向打印机或者显示器发送信息。其它)向打印机或者显示器发送信息。其它例子包括与条码阅读器、称重计和焊机的连接。例子包括与条码阅读器、称重计和焊机的连接。在每种情况下,您都必须编写程序,来支持在在每种情况下,您都必须编写程序,来支持在自由口模式下与自由口模式下与S7-200通讯的设备所使用的通讯的设备所使用的协议。协议。n只有当只有当S7-200处于处于RUN模式时,才能进行自模式时,才能进行自由口通讯。要使能自由口模式,应该在由口通讯。要使能自由口模式,应该在SMB30(端口(端口0)或者)或者SMB130(端口(端口1)的协)的协

29、议选择区中设置议选择区中设置01。处于自由口通讯模式时,。处于自由口通讯模式时,不能与编程设备通讯。不能与编程设备通讯。9/1/202449PLC指令集指令集u将将PPI通讯转变为自由口模式通讯转变为自由口模式9/1/202450PLC指令集指令集n发送数据发送数据l发送指令使您能够发送一个字节或多个字节的缓冲发送指令使您能够发送一个字节或多个字节的缓冲区,最多为区,最多为255个。个。n接收数据接收数据l接收指令使您能够接收一个字节或多个字节的缓冲接收指令使您能够接收一个字节或多个字节的缓冲区,最多为区,最多为255个。个。n接收指令的启动和结束条件接收指令的启动和结束条件l接收指令使用接收

30、信息控制字节(接收指令使用接收信息控制字节(SMB87或或SMB187)中的位来定义信息起始和结束条件。)中的位来定义信息起始和结束条件。9/1/202451PLC指令集指令集u使用字符中断控制接收数据使用字符中断控制接收数据n为了完全适应对各种协议的支持,也可以使用字符中为了完全适应对各种协议的支持,也可以使用字符中断控制的方式接收数据。接收每个字符时都会产生中断控制的方式接收数据。接收每个字符时都会产生中断。在执行与接收字符事件相连的中断服务程序之前,断。在执行与接收字符事件相连的中断服务程序之前,接收到的字符存入接收到的字符存入SMB2中,校验状态(如果使能的话)中,校验状态(如果使能的

31、话)存入存入SM3.0。SMB2是自由口接收字符缓冲区。在自由是自由口接收字符缓冲区。在自由口模式下,每一个接收到的字符都会存放到这一位置,口模式下,每一个接收到的字符都会存放到这一位置,便于用户程序访问。便于用户程序访问。SMB3用于自由口模式。它包含一用于自由口模式。它包含一个校验错误标志位。当接收字符的同时检测到校验错个校验错误标志位。当接收字符的同时检测到校验错误时,该位被置位。该字节的其它位被保留。利用校误时,该位被置位。该字节的其它位被保留。利用校验位去丢弃信息或向该信息发送否定应答。验位去丢弃信息或向该信息发送否定应答。9/1/202452PLC指令集指令集9/1/202453P

32、LC指令集指令集9/1/202454PLC指令集指令集6.6比较指令比较指令u数值比较数值比较n比较指令用于比较两个数值:比较指令用于比较两个数值:nIN1 = IN2 IN1 = IN2 IN1 IN2 IN1 IN2 IN1 IN2n字节比较操作是无符号的。字节比较操作是无符号的。n整数比较操作是有符号的。整数比较操作是有符号的。n双字比较操作是有符号的。双字比较操作是有符号的。n实数比较操作是有符号的。实数比较操作是有符号的。9/1/202455PLC指令集指令集n对于对于LAD和和 FBD:当比较结果为真时,比较指:当比较结果为真时,比较指令使触点闭合(令使触点闭合(LAD)或者输出接

33、通()或者输出接通(FBD)。)。n对于对于STL:当比较结果为真时,对:当比较结果为真时,对1进行进行LD,A或或O操作,并置入栈顶。操作,并置入栈顶。9/1/202456PLC指令集指令集9/1/202457PLC指令集指令集9/1/202458PLC指令集指令集u字符串比较字符串比较n字符串比较指令比较两个字符串的字符串比较指令比较两个字符串的ASCII码字码字符:符:nIN1=IN2 IN1IN2n当比较结果为真时,比较指令使触点闭合当比较结果为真时,比较指令使触点闭合(LAD)或者输出接通()或者输出接通(FBD),或者对),或者对1进进行行LD,A或或O操作,并置入栈顶(操作,并置

34、入栈顶(STL)。)。9/1/202459PLC指令集指令集6.7转换指令转换指令u标准转换指令标准转换指令n数字转换数字转换l字节转为整数(字节转为整数(BTI)、整数转为字节()、整数转为字节(ITB)、整)、整数转为双整数(数转为双整数(ITD)、双整数转为整数()、双整数转为整数(DTI)、)、双整数转为实数(双整数转为实数(DTR)、)、BCD码转为整数码转为整数(BCDI)和整数转为)和整数转为BCD码(码(IBCD)。以上指令)。以上指令将输入值将输入值IN转换为指定的格式并存储到由转换为指定的格式并存储到由OUT指定指定的输出值存储区中。例如:可以将双整数值转为实的输出值存储区

35、中。例如:可以将双整数值转为实数值;也可以在整数和数值;也可以在整数和BCD码格式之间相互转换。码格式之间相互转换。9/1/202460PLC指令集指令集n四舍五入(四舍五入(ROUND)和取整()和取整(TRUNC)l四舍五入指令(四舍五入指令(ROUND)将一个实数转为一个双)将一个实数转为一个双整数值,并将四舍五入的结果存入整数值,并将四舍五入的结果存入OUT指定的变量指定的变量中。中。l取整指令(取整指令(TRUNC)将一个实数转为一个双整数值,)将一个实数转为一个双整数值,并将实数的整数部分作为结果存入并将实数的整数部分作为结果存入OUT指定的变量指定的变量中。中。n包络段数包络段数

36、l段码指令(段码指令(SEG)允许您产生一个点阵,用于点亮)允许您产生一个点阵,用于点亮七段码显示器的各个段。七段码显示器的各个段。9/1/202461PLC指令集指令集9/1/202462PLC指令集指令集uASCII码转换指令码转换指令n有效的有效的ASCII码字符为十六进制的码字符为十六进制的30到到39和和41到到46。n在在ASCII码和十六进制数之间相互转换码和十六进制数之间相互转换nASCII码转十六进制数指令(码转十六进制数指令(ATH)将一个长度为)将一个长度为LEN从从IN开始的开始的ASCII码字符串转换成从码字符串转换成从OUT开始的十六进开始的十六进制数。十六进制数转

37、制数。十六进制数转ASCII码指令(码指令(HTA)将从输入字)将从输入字节节IN开始的十六进制数,转换成从开始的十六进制数,转换成从OUT开始的开始的ASCII码码字符串。被转换的十六进制数的位数由长度字符串。被转换的十六进制数的位数由长度LEN给出。给出。n能够被转换的能够被转换的ASCII码字符串或者十六进制数的最大数码字符串或者十六进制数的最大数量为量为255。有效。有效ASCII码输入码输入n有效的有效的ASCII码输入字符是码输入字符是0到到9的十六进制数代码值的十六进制数代码值30到到39,和大写字符,和大写字符A到到F的十六进制数代码值的十六进制数代码值41到到46这这些字母数

38、字字符。些字母数字字符。9/1/202463PLC指令集指令集n将数值转为将数值转为ASCII码码l整数转整数转ASCII码(码(ITA)、双整数转)、双整数转ASCII码码(DTA)和实数转)和实数转ASCII码(码(RTA)指令,分别将整)指令,分别将整数、双整数或实数值转换成数、双整数或实数值转换成ASCII码字符。码字符。9/1/202464PLC指令集指令集9/1/202465PLC指令集指令集9/1/202466PLC指令集指令集u字符串转换指令字符串转换指令n将数值转换为字符串将数值转换为字符串n整数转字符串(整数转字符串(ITS)、双整数转字符串)、双整数转字符串(DTS)和实

39、数转字符串()和实数转字符串(RTS)指令,将整)指令,将整数、双整数或实数值(数、双整数或实数值(IN)转换成)转换成ASCII码字码字符串(符串(OUT)。)。9/1/202467PLC指令集指令集u将子字符串转换为数字值将子字符串转换为数字值n子字符串转整数(子字符串转整数(STI)、子字符串转双整数)、子字符串转双整数(STD)和子字符串转实数()和子字符串转实数(STR)指令,将)指令,将从偏移量从偏移量INDX开始的字符串值开始的字符串值IN转换成整数转换成整数/双整数或实数值双整数或实数值OUT。9/1/202468PLC指令集指令集9/1/202469PLC指令集指令集u编码和

40、解码指令编码和解码指令n编码编码l编码指令(编码指令(ENCO)将输入字)将输入字IN的最低有效位的位的最低有效位的位号写入输出字节号写入输出字节OUT的最低有效的最低有效“半字节半字节”(4位)位)中。中。n译码译码l译码指令(译码指令(DECO)根据输入字节()根据输入字节(IN)的低四位)的低四位所表示的位号置输出字(所表示的位号置输出字(OUT)的相应位为)的相应位为1,输,输出字的所有其他位都清出字的所有其他位都清0。9/1/202470PLC指令集指令集9/1/202471PLC指令集指令集6.8计数器指令计数器指令uSIMATIC计数器指令计数器指令n增计数器增计数器l增计数指令

41、(增计数指令(CTU)从当前计数值开始,在每一个)从当前计数值开始,在每一个(CU)输入状态从低到高时递增计数。当)输入状态从低到高时递增计数。当CXX的当的当前值大于等于预置值前值大于等于预置值PV时,计数器位时,计数器位CXX置位。当置位。当复位端(复位端(R)接通或者执行复位指令后,计数器被)接通或者执行复位指令后,计数器被复位。当它达到最大值(复位。当它达到最大值(32,767)后,计数器停)后,计数器停止计数。止计数。nSTL操作:操作:nH 复位输入:栈顶复位输入:栈顶nH 计数输入:其值被装载在第二个堆栈中。计数输入:其值被装载在第二个堆栈中。9/1/202472PLC指令集指令

42、集n减计数器减计数器l减计数指令(减计数指令(CTD)从当前计数值开始,在每一个)从当前计数值开始,在每一个(CD)输入状态的低到高时递减计数。当)输入状态的低到高时递减计数。当CXX的当的当前值等于前值等于0时,计数器位时,计数器位CXX置位。当装载输入端置位。当装载输入端(LD)接通时,计数器位被复位,并将计数器的当)接通时,计数器位被复位,并将计数器的当前值设为预置值前值设为预置值PV。当计数值到。当计数值到0时,计数器停止时,计数器停止计数,计数器位计数,计数器位CXX接通。接通。nSTL操作:操作:lH 装载输入:栈顶装载输入:栈顶lH 计数输入:其值被装载在第二个堆栈中。计数输入:

43、其值被装载在第二个堆栈中。9/1/202473PLC指令集指令集n增增/减计数器减计数器l增增/减计数指令(减计数指令(CTUD),在每一个增计数输入),在每一个增计数输入(CU)的低到高时增计数,在每一个减计数输入)的低到高时增计数,在每一个减计数输入(CD)的低到高时减计数。计数器的当前值)的低到高时减计数。计数器的当前值CXX保保存当前计数值。在每一次计数器执行时,预置值存当前计数值。在每一次计数器执行时,预置值PV与当前值作比较。与当前值作比较。l当达到最大值(当达到最大值(32767)时,在增计数输入处的下)时,在增计数输入处的下一个上升沿导致当前计数值变为最小值(一个上升沿导致当前

44、计数值变为最小值(-32768)。)。当达到最小值(当达到最小值(-32768)时,在减计数输入端的下)时,在减计数输入端的下一个上升沿导致当前计数值变为最大值(一个上升沿导致当前计数值变为最大值(32767)。)。l当当CXX的当前值大于等于预置值的当前值大于等于预置值PV时,计数器位时,计数器位CXX置位。否则,计数器位关断。当复位端(置位。否则,计数器位关断。当复位端(R)接通或者执行复位指令后,计数器被复位。当达到接通或者执行复位指令后,计数器被复位。当达到预置值预置值PV时,时,CTUD计数器停止计数。计数器停止计数。9/1/202474PLC指令集指令集nSTL操作:操作:lH 复

45、位输入:栈顶复位输入:栈顶lH 减计数输入:其值被装载在第二栈位中。减计数输入:其值被装载在第二栈位中。lH 增计数输入:其值被装载在第三栈位中。增计数输入:其值被装载在第三栈位中。9/1/202475PLC指令集指令集9/1/202476PLC指令集指令集9/1/202477PLC指令集指令集6.9高速计数器指令高速计数器指令u定义高速计数器定义高速计数器n定义高速计数器指令(定义高速计数器指令(HDEF)为指定的高速)为指定的高速计数器(计数器(HSCx)选择操作模式。模块的选择)选择操作模式。模块的选择决定了高速计数器的时钟、方向、启动和复位决定了高速计数器的时钟、方向、启动和复位功能。

46、功能。n对于每一个高速计数器使用一条定义高速计数对于每一个高速计数器使用一条定义高速计数器指令。器指令。u高速计数器高速计数器n高速计数器指令(高速计数器指令(HSC)在)在HSC特殊存储器位特殊存储器位状态的基础上配置和控制高速计数器。参数状态的基础上配置和控制高速计数器。参数N指定高速计数器的标号。指定高速计数器的标号。9/1/202478PLC指令集指令集n高速计数器可以被配置为高速计数器可以被配置为12种模式中的任意一种模式中的任意一种,详细情况可参考种,详细情况可参考SIEMENS S7-200系统手系统手册。册。n每一个计数器都有时钟、方向控制、复位、启每一个计数器都有时钟、方向控

47、制、复位、启动的特定输入。对于双相计数器,两个时钟都动的特定输入。对于双相计数器,两个时钟都可以运行在最高频率。在正交模式下,您可以可以运行在最高频率。在正交模式下,您可以选择一倍速(选择一倍速(1x)或者四倍速()或者四倍速(4x)计数速率。)计数速率。所有计数器都可以运行在最高频率下而互不影所有计数器都可以运行在最高频率下而互不影响。响。9/1/202479PLC指令集指令集u高速计数器编程高速计数器编程n可以使用指令向导来配置计数器。向导程序使可以使用指令向导来配置计数器。向导程序使用下列信息:计数器的类型和模式、计数器的用下列信息:计数器的类型和模式、计数器的预置值、计数器的初始值和计

48、数的初始方向。预置值、计数器的初始值和计数的初始方向。要启动要启动HSC指令向导,可以在命令菜单窗口中指令向导,可以在命令菜单窗口中选择选择Tools Instruction Wizard ,然后在向导,然后在向导窗口中选择窗口中选择HSC指令。指令。9/1/202480PLC指令集指令集n对高速计数器编程,必须完成下列基本操对高速计数器编程,必须完成下列基本操l 定义计数器和模式定义计数器和模式l 设置控制字节设置控制字节l 设置初始值设置初始值l 设置预置值设置预置值l 指定并使能中断服务程序指定并使能中断服务程序l 激活高速计数器激活高速计数器n高速计数器的编程示例省略。高速计数器的编程

49、示例省略。9/1/202481PLC指令集指令集6.10脉冲输出指令脉冲输出指令 u脉冲输出指令(脉冲输出指令(PLS)用于在高速输出)用于在高速输出(Q0.0和和Q0.1)上控制脉冲串输出)上控制脉冲串输出(PTO)和脉宽调制()和脉宽调制(PWM)功能。)功能。u请参阅资料光盘上应用示例中使用请参阅资料光盘上应用示例中使用PLS指指令进行令进行PTO/PWM操作的程序。见应用示例操作的程序。见应用示例7、22、23、30和和50。9/1/202482PLC指令集指令集6.11数字运算指令数字运算指令 u加、减、乘、除指令加、减、乘、除指令n加法加法 减法减法lIN1+IN2=OUT IN1

50、-IN2=OUT LAD和和FBDlIN1+OUT=OUT OUT-IN1=OUT STLl整数加法(整数加法(+I)或者整数减法()或者整数减法(-I)指令,将两个)指令,将两个16位整数相加或者相减,产生一个位整数相加或者相减,产生一个16位结果。双整位结果。双整数加法(数加法(+D)或者双整数减法()或者双整数减法(-D)指令,将两)指令,将两个个32位整数相加或者相减,产生一个位整数相加或者相减,产生一个32位结果。实位结果。实数加法(数加法(+R)和实数减法()和实数减法(-R)指令,将两个)指令,将两个32位实数相加或相减,产生一个位实数相加或相减,产生一个32位实数结果。位实数结

51、果。9/1/202483PLC指令集指令集n乘法乘法 除法除法lIN1*IN2=OUT IN1/IN2=OUT LAD和和FBDlIN1*OUT=OUT OUT/IN1=OUT STLl整数乘法(整数乘法(*I)或者整数除法()或者整数除法(/I)指令,将两个)指令,将两个16位整数相乘或者相除,产生一个位整数相乘或者相除,产生一个16位结果。(对于位结果。(对于除法,余数不被保留。)双整数乘法(除法,余数不被保留。)双整数乘法(*D)或者双)或者双整数除法(整数除法(/D)指令,将两个)指令,将两个32位整数相乘或者相位整数相乘或者相除,产生一个除,产生一个32位结果。(对于除法,余数不被保

52、位结果。(对于除法,余数不被保留。)实数乘法(留。)实数乘法(*R)或实数除法()或实数除法(/R)指令,将)指令,将两个两个32位实数相乘或相除,产生一个位实数相乘或相除,产生一个32位实数结果。位实数结果。9/1/202484PLC指令集指令集9/1/202485PLC指令集指令集9/1/202486PLC指令集指令集9/1/202487PLC指令集指令集9/1/202488PLC指令集指令集9/1/202489PLC指令集指令集u数学功能指令数学功能指令n正弦、余弦和正切正弦、余弦和正切l正弦(正弦(SIN)、余弦()、余弦(COS)和正切()和正切(TAN)指令)指令计算角度值计算角度

53、值IN的三角函数值,并将结果存放在的三角函数值,并将结果存放在OUT中。输入角度值是弧度值。中。输入角度值是弧度值。lSIN(IN)= OUT lCOS(IN)=OUT lTAN(IN) =OUTl要将角度从度数变为弧度,可以使用要将角度从度数变为弧度,可以使用MUL_R(*R)指令,将度数乘以指令,将度数乘以1.745329E-2(接近(接近/180)即)即可。可。9/1/202490PLC指令集指令集n自然对数和自然指数自然对数和自然指数l自然对数指令(自然对数指令(LN)计算输入值)计算输入值IN的自然对数,并的自然对数,并将结果存放到将结果存放到OUT中。中。l自然指数指令(自然指数指

54、令(EXP)计算输入值)计算输入值IN的自然指数值,的自然指数值,并将结果存放到并将结果存放到OUT中。中。lLN (IN) = OUT EXP (IN)=OUTn平方根平方根l平方根指令(平方根指令(SQRT)计算实数()计算实数(IN)的平方根)的平方根 ,并将结果存放到并将结果存放到OUT中。中。lSQRT(IN)=OUT9/1/202491PLC指令集指令集n递增和递减指令递增和递减指令l递增递增IN+1=OUT LAD和和 FBDOUT+1=OUT STLl递减递减IN - 1=OUT LAD和和 FBDOUT - 1=OUT STLl递增或者递减指令将输入递增或者递减指令将输入IN

55、加加1或者减或者减1,并将结果存放在,并将结果存放在OUT中。中。l字节递增(字节递增(INCB)和字节递减()和字节递减(DECB)操作是无符号的。)操作是无符号的。l字递增(字递增(INCW)和字递减()和字递减(DECW)操作是有符号的。)操作是有符号的。l双字递增(双字递增(INCD)和双字递减()和双字递减(DECD)操作是有符号的。)操作是有符号的。9/1/202492PLC指令集指令集9/1/202493PLC指令集指令集6.12比例比例/积分积分/微分(微分(PID)回路控制指令)回路控制指令uPID回路控制指令(回路控制指令(PID)根据输入和表)根据输入和表(TBL)中的配

56、置信息,对相应的)中的配置信息,对相应的LOOP执执行行PID回路计算。回路计算。9/1/202494PLC指令集指令集6.13中断指令中断指令 u中断允许(中断允许(ENI)和中断禁止()和中断禁止(DISI)n中断允许指令(中断允许指令(ENI)全局地允许所有被连接)全局地允许所有被连接的中断事件。中断禁止指令(的中断事件。中断禁止指令(DISI)全局地禁)全局地禁止处理所有中断事件。止处理所有中断事件。n当进入当进入RUN模式时,初始状态为禁止中断。在模式时,初始状态为禁止中断。在RUN模式,您可以执行全局中断允许指令模式,您可以执行全局中断允许指令(ENI)允许所有中断。全局中断禁止指

57、令)允许所有中断。全局中断禁止指令n(DISI)不允许处理中断服务程序,但中断事)不允许处理中断服务程序,但中断事件仍然会排队等候。件仍然会排队等候。9/1/202495PLC指令集指令集u中断条件返回(中断条件返回(CRETI)n中断条件返回指令(中断条件返回指令(CRETI)用于根据前面的)用于根据前面的逻辑操作的条件,从中断服务程序中返回。逻辑操作的条件,从中断服务程序中返回。u中断连接(中断连接(ATCH)n中断连接指令(中断连接指令(ATCH)将中断事件)将中断事件EVNT与中与中断服务程序号断服务程序号INT相关联,并使能该中断事件。相关联,并使能该中断事件。u中断分离(中断分离(

58、DTCH)n中断分离指令(中断分离指令(DTCH)将中断事件)将中断事件EVNT与中与中断服务程序之间的关联切断,并禁止该中断事断服务程序之间的关联切断,并禁止该中断事件。件。9/1/202496PLC指令集指令集u清除中断事件(清除中断事件(CLREVENT)uS7-200支持的中断类型支持的中断类型nS7-200支持下列类型的中断服务程序:支持下列类型的中断服务程序:l 通讯口中断:通讯口中断:S7-200生成使程序可以控制通讯口生成使程序可以控制通讯口的事件。的事件。l I/O中断:中断:S7-200对对I/O点状态的各种变化产生中断点状态的各种变化产生中断事件。这些事件可以对高速计数器

59、、脉冲输出或输事件。这些事件可以对高速计数器、脉冲输出或输入的上升或下降状态做出响应。入的上升或下降状态做出响应。l 时基中断:时基中断:S7-200产生使程序在指定的间隔上起产生使程序在指定的间隔上起作用的事件。作用的事件。9/1/202497PLC指令集指令集u中断优先级和中断队列中断优先级和中断队列n在各个指定的优先级之内,在各个指定的优先级之内,CPU按先来先服务按先来先服务的原则处理中断。任何时间点上,只有一个用的原则处理中断。任何时间点上,只有一个用户中断程序正在执行。一旦中断程序开始执行,户中断程序正在执行。一旦中断程序开始执行,它要一直执行到结束。而且不会被别的中断程它要一直执

60、行到结束。而且不会被别的中断程序,甚至是更高优先级的中断程序所打断。当序,甚至是更高优先级的中断程序所打断。当另一个中断正在处理中,新出现的中断需要排另一个中断正在处理中,新出现的中断需要排队,等待处理。队,等待处理。9/1/202498PLC指令集指令集9/1/202499PLC指令集指令集9/1/2024100PLC指令集指令集9/1/2024101PLC指令集指令集6.14逻辑操作指令逻辑操作指令 u取反指令取反指令n字节、字和双字取反字节、字和双字取反l字节取反(字节取反(INVB)、字取反()、字取反(INVW)和双字取反)和双字取反(INVD)指令将输入)指令将输入IN取反的结果存

61、入取反的结果存入OUT中。中。n使使ENO=0的错误条件:的错误条件:lH 0006(间接寻址)(间接寻址)n受影响的受影响的SM标志位:标志位:lH SM1.0(结果为(结果为0)9/1/2024102PLC指令集指令集9/1/2024103PLC指令集指令集9/1/2024104PLC指令集指令集9/1/2024105PLC指令集指令集9/1/2024106PLC指令集指令集u与、或和异或指令与、或和异或指令n字节与、字与和双字与字节与、字与和双字与l字节与(字节与(ANDB)、字与()、字与(ANDW)和双字与)和双字与(ANDD)指令将输入值)指令将输入值IN1和和IN2的相应位进行与

62、的相应位进行与操作,将结果存入操作,将结果存入OUT中。中。n字节或、字或和双字或字节或、字或和双字或l字节或(字节或(ORB)、字或指令()、字或指令(ORW)和双字或)和双字或(ORD)指令将两个输入值)指令将两个输入值IN1和和IN2的相应位进行的相应位进行或操作,将结果存入或操作,将结果存入OUT中。中。9/1/2024107PLC指令集指令集n字节异或、字异或和双字异或字节异或、字异或和双字异或l字节异或(字节异或(ROB)、字异或()、字异或(ORW)和双字异或)和双字异或(ORD)指令将两个输入值)指令将两个输入值IN1和和IN2的相应位进行的相应位进行异或操作,将结果存入异或操

63、作,将结果存入OUT中。中。9/1/2024108PLC指令集指令集9/1/2024109PLC指令集指令集6.15传送指令传送指令u字节、字、双字或者实数传送字节、字、双字或者实数传送n字节传送(字节传送(MOVB)、字传送()、字传送(MOVW)、双)、双字传送(字传送(MOVD)和实数传送指令在不改变原)和实数传送指令在不改变原值的情况下将值的情况下将IN中的值(中的值(MOVR)传送到)传送到OUT。9/1/2024110PLC指令集指令集u字节立即传送(读和写)字节立即传送(读和写)n字节立即传送指令允许您在物理字节立即传送指令允许您在物理I/O和存储器之和存储器之间立即传送一个字节

64、数据。间立即传送一个字节数据。n字节立即读(字节立即读(BIR)指令读物理输入()指令读物理输入(IN),),并将结果存入内存地址(并将结果存入内存地址(OUT),但过程映像),但过程映像寄存器并不刷新。寄存器并不刷新。n字节立即写指令(字节立即写指令(BIW)从内存地址()从内存地址(IN)中)中读取数据,写入物理输出(读取数据,写入物理输出(OUT),同时刷新),同时刷新相应的过程映像区。相应的过程映像区。9/1/2024111PLC指令集指令集u块传送指令块传送指令n字节、字、双字的块传送字节、字、双字的块传送l字节块传送(字节块传送(BMB)、字块传送()、字块传送(BMW)和双字)和

65、双字块传送(块传送(BMD)指令传送指定数量的数据到一个新)指令传送指定数量的数据到一个新的存储区,数据的起始地址的存储区,数据的起始地址IN,数据长度为,数据长度为N个字个字节、字或者双字,新块的起始地址为节、字或者双字,新块的起始地址为OUT。nN的范围从的范围从1到到255。9/1/2024112PLC指令集指令集9/1/2024113PLC指令集指令集6.16程序控制指令程序控制指令u条件结束条件结束n条件结束指令(条件结束指令(END)根据前面的逻辑关系终止当前)根据前面的逻辑关系终止当前扫描周期。可以在主程序中使用条件结束指令,但不扫描周期。可以在主程序中使用条件结束指令,但不能在

66、子程序或中断服务程序中使用该命令。能在子程序或中断服务程序中使用该命令。u停止停止n停止指令(停止指令(STOP)导致)导致CPU从从RUN到到STOP模式从而模式从而可以立即终止程序的执行。可以立即终止程序的执行。n如果如果STOP指令在中断程序中执行,那么该中断立即终指令在中断程序中执行,那么该中断立即终止,并且忽略所有挂起的中断,继续扫描程序的剩余止,并且忽略所有挂起的中断,继续扫描程序的剩余部分。完成当前周期的剩余动作,包括主用户程序的部分。完成当前周期的剩余动作,包括主用户程序的执行,并在当前扫描的最后,完成从执行,并在当前扫描的最后,完成从RUN到到STOP模式模式的转变。的转变。

67、9/1/2024114PLC指令集指令集u看门狗复位看门狗复位n看门狗复位指令(看门狗复位指令(WDR)允许)允许S7-200 CPU的的系统看门狗定时器被重新触发,这样可以在不系统看门狗定时器被重新触发,这样可以在不引起看门狗错误的情况下,增加此扫描所允许引起看门狗错误的情况下,增加此扫描所允许的时间。的时间。n使用使用WDR指令时要小心,因为如果您用循环指指令时要小心,因为如果您用循环指令去阻止扫描完成或过度的延迟扫描完成的时令去阻止扫描完成或过度的延迟扫描完成的时间,那么在终止本次扫描之前,下列操作过程间,那么在终止本次扫描之前,下列操作过程将被禁止:将被禁止:9/1/2024115PL

68、C指令集指令集l通讯(自由端口方式除外)通讯(自由端口方式除外)l I/O更新(立即更新(立即I/O除外)除外)l 强制更新强制更新l SM位更新(位更新(SM0,SM5SM29不能被更新)不能被更新)l 运行时间诊断运行时间诊断l 由于扫描时间超过由于扫描时间超过25秒,秒,10ms和和100ms定时器将定时器将不会正确累计时间。不会正确累计时间。l 在中断程序中的在中断程序中的STOP指令指令l 带数字量输出的扩展模块也包含一个看门狗定时器,带数字量输出的扩展模块也包含一个看门狗定时器,如果模块没有被如果模块没有被S7-200写,则此看门狗定时器将关写,则此看门狗定时器将关断输出。在扩展的

69、扫描时间内,对每个带数字量输断输出。在扩展的扫描时间内,对每个带数字量输出的扩展模块进行立即写操作以保持正确的输出。出的扩展模块进行立即写操作以保持正确的输出。请参考这段描述之后的实例。请参考这段描述之后的实例。9/1/2024116PLC指令集指令集9/1/2024117PLC指令集指令集uFor-Next循环指令循环指令nFOR和和NEXT指令可以描述需重复进行一定次指令可以描述需重复进行一定次数的循环体。每条数的循环体。每条FOR指令必须对应一条指令必须对应一条NEXT指令。指令。For-Next循环嵌套(一个循环嵌套(一个For-Next循环在另一个循环在另一个For-Next循环之内

70、)深度循环之内)深度可达可达8层。层。nFOR-NEXT指令执行指令执行FOR指令和指令和NEXT指令之指令之间的指令。必须指定计数值或者当前循环次数间的指令。必须指定计数值或者当前循环次数INDX、初始值(、初始值(INIT)和终止值()和终止值(FINAL)。)。nNEXT指令标志着指令标志着FOR循环的结束。循环的结束。9/1/2024118PLC指令集指令集9/1/2024119PLC指令集指令集u跳转指令跳转指令n跳转到标号指令(跳转到标号指令(JMP)执行程序内标号)执行程序内标号N指指定的程序分支。标号指令标记跳转目的地的位定的程序分支。标号指令标记跳转目的地的位置置N。n可以在

71、主程序、子程序或者中断服务程序中,可以在主程序、子程序或者中断服务程序中,使用跳转指令。跳转和与之相应的标号指令必使用跳转指令。跳转和与之相应的标号指令必须位于同一段程序代码(无论是主程序、子程须位于同一段程序代码(无论是主程序、子程序还是中断服务程序)。序还是中断服务程序)。n不能从主程序跳到子程序或中断程序,同样不不能从主程序跳到子程序或中断程序,同样不能从子程序或中断程序跳出。能从子程序或中断程序跳出。n可以在可以在SCR程序段中使用跳转指令,但相应的程序段中使用跳转指令,但相应的标号指令必须也在同一个标号指令必须也在同一个SCR段中。段中。9/1/2024120PLC指令集指令集9/1

72、/2024121PLC指令集指令集u顺控继电器(顺控继电器(SCR)指令)指令nSCR指令使得能够按照自然工艺段在指令使得能够按照自然工艺段在LAD、FBD或或STL中编制状态控制程序。中编制状态控制程序。n只要应用中包含的一系列操作需要反复执行,就可以只要应用中包含的一系列操作需要反复执行,就可以使用使用SCR使程序更加结构化,以至于直接针对应用。使程序更加结构化,以至于直接针对应用。这样可以使得编程和调试更加快速和简单。这样可以使得编程和调试更加快速和简单。n装载装载SCR指令(指令(LSCR)将)将S位的值装载到位的值装载到SCR和逻辑和逻辑堆栈中。堆栈中。nSCR堆栈的结果值决定是否执

73、行堆栈的结果值决定是否执行SCR程序段。程序段。SCR堆堆栈的值会被复制到逻辑堆栈中,因此可以直接将盒或栈的值会被复制到逻辑堆栈中,因此可以直接将盒或者输出线圈连接到左侧的能流线上而不经过中间触点。者输出线圈连接到左侧的能流线上而不经过中间触点。9/1/2024122PLC指令集指令集9/1/2024123PLC指令集指令集u分支控制分支控制n在许多实例中,一个顺序控制状态流必须分成在许多实例中,一个顺序控制状态流必须分成两个或多个不同分支控制状态流。当一个控制两个或多个不同分支控制状态流。当一个控制状态流分离成多个分支时,所有的分支控制状状态流分离成多个分支时,所有的分支控制状态流必须同时激

74、活,如图态流必须同时激活,如图 6-33所示。所示。n使用多条由相同转移条件激活的使用多条由相同转移条件激活的SCRT指令,指令,可以在一段可以在一段SCR程序中实现控制流的分支,如程序中实现控制流的分支,如下面的实例所示。下面的实例所示。9/1/2024124PLC指令集指令集9/1/2024125PLC指令集指令集9/1/2024126PLC指令集指令集u合并控制合并控制n与分支控制的情况类似,两个或者多个分支状与分支控制的情况类似,两个或者多个分支状态流必须合并为一个状态流。当多个状态流汇态流必须合并为一个状态流。当多个状态流汇集成一个时,我们称之为合并。当控制流合并集成一个时,我们称之

75、为合并。当控制流合并时,所有的控制流必须都完成,才能执行下一时,所有的控制流必须都完成,才能执行下一个状态。图个状态。图 6-34给出了两个控制流合并的示意给出了两个控制流合并的示意图。图。n在在SCR程序中,通过从状态程序中,通过从状态L转到状态转到状态L,以及,以及从状态从状态M转到状态转到状态M的方法实现控制流的合并。的方法实现控制流的合并。当状态当状态L、M的的SCR使能位为真时,即可激活使能位为真时,即可激活状态状态N,如下例所示。,如下例所示。9/1/2024127PLC指令集指令集9/1/2024128PLC指令集指令集9/1/2024129PLC指令集指令集u诊断诊断LED指令

76、(指令( DIAG_LED)n如果输入参数如果输入参数IN的值为零,就将诊断的值为零,就将诊断LED置为置为OFF。如果输入参数如果输入参数IN的值大于零,就将诊断的值大于零,就将诊断LED置为置为ON(黄色)。(黄色)。n当系统块中指定的条件为真或者用非零当系统块中指定的条件为真或者用非零IN参数执行参数执行DIAG_LED指令时,指令时,CPU发光二极管(发光二极管(LED)标注的)标注的SF/DIAG可以被配置用于显示黄色。可以被配置用于显示黄色。n系统块(配置系统块(配置LED)复选框选项:)复选框选项:l 当有一项在当有一项在CPU内被强制时,内被强制时,SF/DIAGLED为为ON

77、(黄色)(黄色)l 当模块有当模块有I/O错误时,错误时,SF/DIAGLED为为ON(黄色)(黄色)l两个配置两个配置LED选项都不选中,将使选项都不选中,将使SF/DIAG黄光只受黄光只受DIAG_LED指令控制。指令控制。CPU系统故障(系统故障(SF)用红光指示。)用红光指示。9/1/2024130PLC指令集指令集9/1/2024131PLC指令集指令集6.17移位和循环指令移位和循环指令u右移(右移(SHR)和左移()和左移(SHL)指令)指令n移位指令将输入值移位指令将输入值IN右移或左移右移或左移N位,并将结位,并将结果装载到输出果装载到输出OUT中。中。n移位指令对移出的位自

78、动补零。如果位数移位指令对移出的位自动补零。如果位数N大大于或等于最大允许值(对于字节操作为于或等于最大允许值(对于字节操作为8,对,对于字操作为于字操作为16,对于双字操作为,对于双字操作为32),那么移),那么移位操作的次数为最大允许值。如果移位次数大位操作的次数为最大允许值。如果移位次数大于于0,溢出标志位(,溢出标志位(SM1.1)上就是最近移出的)上就是最近移出的位值。如果移位操作的结果为位值。如果移位操作的结果为0,零存储器位,零存储器位(SM1.0)置位。)置位。n字节操作是无符号的。对于字和双字操作,当字节操作是无符号的。对于字和双字操作,当使用有符号数据类型时,符号位也被移动

79、。使用有符号数据类型时,符号位也被移动。9/1/2024132PLC指令集指令集u循环右移(循环右移(ROR)和循环左移()和循环左移(ROL)指)指令令n循环移位指令将输入值循环移位指令将输入值IN循环右移或者循环左循环右移或者循环左移移N位,并将输出结果装载到位,并将输出结果装载到OUT中。循环移中。循环移位是圆形的。位是圆形的。n如果位数如果位数N大于或者等于最大允许值(对于字大于或者等于最大允许值(对于字节操作为节操作为8,对于字操作为,对于字操作为16,对于双字操作,对于双字操作为为32),),S7-200在执行循环移位之前,会执在执行循环移位之前,会执行取模操作,得到一个有效的移位

80、次数。移位行取模操作,得到一个有效的移位次数。移位位数的取模操作的结果,对于字节操作是位数的取模操作的结果,对于字节操作是0到到7,对于字操作是,对于字操作是0到到15,而对于双字操作是,而对于双字操作是0到到31。9/1/2024133PLC指令集指令集9/1/2024134PLC指令集指令集u移位寄存器指令(移位寄存器指令(SHRB)n移位寄存器指令将一个数值移入移位寄存器中。移位移位寄存器指令将一个数值移入移位寄存器中。移位寄存器指令提供了一种排列和控制产品流或者数据的寄存器指令提供了一种排列和控制产品流或者数据的简单方法。使用该指令,每个扫描周期,整个移位寄简单方法。使用该指令,每个扫

81、描周期,整个移位寄存器移动一位。存器移动一位。n移位寄存器指令把输入的移位寄存器指令把输入的DATA数值移入移位寄存器。数值移入移位寄存器。其中,其中,S_BIT指定移位寄存器的最低位,指定移位寄存器的最低位,N指定移位寄指定移位寄存器的长度和移位方向(正向移位存器的长度和移位方向(正向移位=N,反向移位,反向移位=-N)。)。nSHRB指令移出的每一位都被放入溢出标志位指令移出的每一位都被放入溢出标志位(SM1.1)。)。n这条指令的执行取决于最低有效位(这条指令的执行取决于最低有效位(S_BIT)和由长度)和由长度(N)指定的位数。)指定的位数。9/1/2024135PLC指令集指令集9/

82、1/2024136PLC指令集指令集9/1/2024137PLC指令集指令集u字节交换指令(字节交换指令(SWAP)n字节交换指令用来交换输入字字节交换指令用来交换输入字IN的高字节和低的高字节和低字节。字节。9/1/2024138PLC指令集指令集6.18字符串指令字符串指令u字符串指令字符串指令n字符串长度字符串长度l字符串长度指令(字符串长度指令(SLEN)返回)返回IN中指定的字符串中指定的字符串的长度值。的长度值。n字符串复制字符串复制l字符串复制指令(字符串复制指令(SCPY)将)将IN中指定的字符串复中指定的字符串复制到制到OUT中。中。n字符串连接字符串连接l字符串连接指令(字

83、符串连接指令(SCAT)将)将IN中指定的字符串连接中指定的字符串连接到到OUT中指定字符串的后面。中指定字符串的后面。9/1/2024139PLC指令集指令集9/1/2024140PLC指令集指令集u从字符串中复制子字符串从字符串中复制子字符串n从字符串中复制子字符串指令(从字符串中复制子字符串指令(SSCPY)从)从INDX指定的字符号开始,将指定的字符号开始,将IN中存储的字符串中存储的字符串中的中的N个字符复制到个字符复制到OUT中。中。9/1/2024141PLC指令集指令集u字符串搜索字符串搜索n字符串搜索指令(字符串搜索指令(SFND)在)在IN1字符串中寻找字符串中寻找IN2字

84、符串。由字符串。由OUT指定搜索的起始位置。如指定搜索的起始位置。如果在果在IN1中找到了与中找到了与IN2中字符串相匹配的一段中字符串相匹配的一段字符,则字符,则OUT中会存入这段字符中首个字符的中会存入这段字符中首个字符的位置。如果没有找到,位置。如果没有找到,OUT被清被清0。u字符搜索字符搜索n字符搜索指令(字符搜索指令(CFND)在)在IN1字符串中寻找字符串中寻找IN2字符串中的任意字符。由字符串中的任意字符。由OUT指定搜索的指定搜索的起始位置。如果找到了匹配的字符,字符的位起始位置。如果找到了匹配的字符,字符的位置被写入置被写入OUT中。如果没有找到,中。如果没有找到,OUT被

85、清被清0。9/1/2024142PLC指令集指令集9/1/2024143PLC指令集指令集9/1/2024144PLC指令集指令集6.19表指令表指令 u填表填表nATT指令向表(指令向表(TBL)中增加一个数值)中增加一个数值(DATA)。表中第一个数是最大填表数)。表中第一个数是最大填表数(TL),第二个数是实际填表数(),第二个数是实际填表数(EC),指),指出已填入表的数据个数。新的数据填加在表中出已填入表的数据个数。新的数据填加在表中上一个数据的后面。每向表中填加一个新的数上一个数据的后面。每向表中填加一个新的数据,据,EC会自动加会自动加1。n一个表最多可以有一个表最多可以有100

86、条数据。条数据。9/1/2024145PLC指令集指令集9/1/2024146PLC指令集指令集9/1/2024147PLC指令集指令集u先进先出和后进先出先进先出和后进先出n一个表可以有最多一个表可以有最多100条数据。条数据。n先进先出先进先出(FIFO)l先进先出(先进先出(FIFO)指令从表()指令从表(TBL)中移走第一个)中移走第一个数据,并将此数输出到数据,并将此数输出到DATA。剩余数据依次上移一。剩余数据依次上移一个位置。每执行一条本指令,表中的数据数减个位置。每执行一条本指令,表中的数据数减1。n后进先出(后进先出(LIFO)l后进先出(后进先出(LIFO)指令从表()指令

87、从表(TBL)中移走最后一)中移走最后一个数据,并将此数输出到个数据,并将此数输出到DATA。每执行一条本指令,。每执行一条本指令,表中的数据数减表中的数据数减1。9/1/2024148PLC指令集指令集9/1/2024149PLC指令集指令集9/1/2024150PLC指令集指令集9/1/2024151PLC指令集指令集u内存填充(内存填充(FILL)n存储器填充指令(存储器填充指令(FILL)用输入值()用输入值(IN)填充)填充从输出(从输出(OUT)开始的)开始的N个字的内容。个字的内容。nN的范围从的范围从1到到255。9/1/2024152PLC指令集指令集9/1/2024153P

88、LC指令集指令集u查表(查表(FND)n查表指令(查表指令(FND)搜索表,以查找符合一定规则的数)搜索表,以查找符合一定规则的数据。查表指令从据。查表指令从INDX开始搜索表(开始搜索表(TBL),寻找符合),寻找符合PTN和条件(和条件(=、)的数据。命令参数)的数据。命令参数CMD是一个是一个14的数值,分别代表的数值,分别代表=、。n如果发现了一个符合条件的数据,那么如果发现了一个符合条件的数据,那么INDX指向表中指向表中该数的位置。为了查找下一个符合条件的数据,在激该数的位置。为了查找下一个符合条件的数据,在激活查表指令前,必须先对活查表指令前,必须先对INDX加加1。如果没有发现

89、符合。如果没有发现符合条件的数据,那么条件的数据,那么INDX等于等于EC。n一个表可以有最多一个表可以有最多100条数据。数据条标号从条数据。数据条标号从0到到99。9/1/2024154PLC指令集指令集9/1/2024155PLC指令集指令集9/1/2024156PLC指令集指令集9/1/2024157PLC指令集指令集6.20定时器指令定时器指令uSIMATIC定时器指令定时器指令n接通延时定时器(接通延时定时器(TON)n有记忆的接通延时定时器有记忆的接通延时定时器(TORN)l接通延时定时器(接通延时定时器(TON)和有记忆的接通延时定时)和有记忆的接通延时定时器器(TONR)在使

90、能输入接通时记时。定时器号在使能输入接通时记时。定时器号(Txx)决定了定时器的分辨率,并且分辨率现在)决定了定时器的分辨率,并且分辨率现在已经在指令盒上标出了。已经在指令盒上标出了。n断开延时定时器断开延时定时器(TOF)l断开延时定时器用于在输入断开后延时一段时间断断开延时定时器用于在输入断开后延时一段时间断开输出。定时器号(开输出。定时器号(Txx)决定了定时器的分辨率,)决定了定时器的分辨率,并且分辨率现在已经在指令盒上标出了。并且分辨率现在已经在指令盒上标出了。9/1/2024158PLC指令集指令集9/1/2024159PLC指令集指令集9/1/2024160PLC指令集指令集9/

91、1/2024161PLC指令集指令集9/1/2024162PLC指令集指令集9/1/2024163PLC指令集指令集u时间间隔定时器时间间隔定时器n触发时间间隔(触发时间间隔(BITIM)l触发时间间隔(触发时间间隔(BITIM)指令读内置的)指令读内置的1毫秒计数器毫秒计数器的当前值,并将此值存储到的当前值,并将此值存储到OUT中。双字毫秒值的中。双字毫秒值的最大定时间隔是最大定时间隔是2的的32次幂或次幂或49.7天。天。n计算时间间隔(计算时间间隔(CITIM)l计算时间间隔(计算时间间隔(CITIM)指令计算当前时间和)指令计算当前时间和IN提提供的值之间的时间差。时间差被存储在供的值

92、之间的时间差。时间差被存储在OUT中。双中。双字毫秒值的最大定时间隔是字毫秒值的最大定时间隔是2的的32次幂或次幂或49.7天。依天。依据于据于BITIM指令执行的时间,指令执行的时间,nCITIM自动处理在最大间隔内发生的自动处理在最大间隔内发生的1毫秒定时毫秒定时器翻转。器翻转。9/1/2024164PLC指令集指令集9/1/2024165PLC指令集指令集9/1/2024166PLC指令集指令集9/1/2024167PLC指令集指令集6.21子程序指令子程序指令u子程序调用指令(子程序调用指令(CALL)将程序控制权交)将程序控制权交给子程序给子程序SBR_N。n调用子程序时可以带参数也

93、可以不带参数。子调用子程序时可以带参数也可以不带参数。子程序执行完成后,控制权返回到调用子程序的程序执行完成后,控制权返回到调用子程序的指令的下一条指令。指令的下一条指令。u子程序条件返回指令(子程序条件返回指令(CRET)根据它前面)根据它前面的逻辑决定是否终止子程序。的逻辑决定是否终止子程序。u要添加一个子程序可以在命令菜单中选择:要添加一个子程序可以在命令菜单中选择:Edit Insert Subroutine。9/1/2024168PLC指令集指令集9/1/2024169PLC指令集指令集u在主程序中,可以嵌套调用子程序(在子在主程序中,可以嵌套调用子程序(在子程序中调用子程序),最多

94、嵌套程序中调用子程序),最多嵌套8层。在中层。在中断服务程序中,不能嵌套调用子程序。断服务程序中,不能嵌套调用子程序。u在被中断服务程序调用的子程序中不能再在被中断服务程序调用的子程序中不能再出现子程序调用。不禁止递归调用(子程出现子程序调用。不禁止递归调用(子程序调用自己),但是当使用带子程序的递序调用自己),但是当使用带子程序的递归调用时应慎重。归调用时应慎重。9/1/2024170PLC指令集指令集9/1/2024171PLC指令集指令集9/1/2024172PLC指令集指令集9/1/2024173PLC指令集指令集u谢谢,欢迎指正!谢谢,欢迎指正!9/1/2024174PLC指令集指令集

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号