plc控制指令有哪些(plc控制程序是什么意思)
导语:最全的PLC的程序控制类指令,快收藏着等待以后方便使用吧
编写PLC程序时,为了方便我们对程序整体的控制与监控需要使用程序控制类指令。今天我们来谈一谈S7-200的程序控制指令
有条件结束指令:
有条件结束指令(END),可以根据前面的逻辑关系终止当前扫描周期。此指令只能用在主程序中使用,一般PLC程序自动加(三菱除外)。
停止指令:
停止指令(STOP)导致CPU从RUN模式到STOP模式,从而可以立即终止程序的执行,如果STOP在中断程序中执行,中断程序立即终止并忽略全部等待,执行的中断,继续执行主程序的剩余部分,并在主程序的结束出完成从运行方式至停止方式的转换。
看门狗复位:
看门狗复位(Watchdog )指令(WDR),允许CPU的看门狗定时器重新被触发,在没有看门狗错误的情况下,这样可以增加一次扫描所允许得时间。为防止在正常情况下监控定时器动作,可将监控复位(WRD)指令插入到程序中适当的地方,使监控定时器复位。
如果FOR/NEXT循环程序的执行时间可能超过监控定时器的定时时间,可将WDP指令插入到循环程序当中。
条件跳转指令JMP若在它对应的符号之后(即程序往回跳)可能因连续反复跳步使他们之间的程序被反复执行,超过监控带那个时期的定时器定时时间,为避免出现这样的情况。可在JMP指令和对应的符号间插入WDR指令。
使用WDR指令后,在终止本次扫描之前,下列操作将被禁止:
(1)通信(自由口模式除外)
(2)I/O更新(立即I/O除外)
(3)强制更新
(4)SM位更新(不能更新SM0和SM5-SM29)
(5)运行时间诊断
(6)在中断程序中的STOP指令
(7)如果扫描时间超过25s,10ms和100ms定时器将不能正确累计时间,如果将CPU的方式开关切换到STOP位置1.4秒内CPU转到停止模式。
要注意的是带数字量输出的扩展模块也包含一个监视狗定时器,如果模块没有被S7-200写,则此看门狗定时器将关断输出。在扩展的扫描时间内,对每个带数字量输出的扩展模块进行立即写操作,以保持正确的输出。
跳转指令:
跳转到标号指令(JMP)执行程序内标号N指定的程序分支。标号指令标识跳转目的地的位置N。您可以在主程序、子程序或者中断程序中,使用跳转指令。跳转和与之相应的标号指令必须位于同一段程序代码(无论是主程序、子程序还是中断程序)。不能从主程序跳到子程序或中断程序, 同样不能从子程序或中断程序跳出。可以在SCR程序段中使用跳转指令,但相应的标号指令必须也在同一个SCR段中。
JMP跳转指令,跳转到n。LBL标号n跳转目的地。For--Next循环指令:
FOR和NEXT指令可以描述需重复进行一定次数的循环体。每条FOR指令必须对应一条NEXT指令。For--Next循环嵌套(一个For--Next循环在另一个For--Next循环之内)深度可达8层。FOR--NEXT指令执行FOR指令和NEXT指令之间的指令。必须指定计数值或者当前循环次数(INDX)、初始值(INIT)和终止值(FINAL)。FOR标志着FOR循环的开始。NEXT指令标志着FOR循环的结束。如果允许FOR/NEXT循环,除非在循环内部修改了终值,循环体就一直循环执行直到循环结束。当FOR/NEXT循环执行的过程中可以修改这些值。当循环再次允许时,它把初始值拷贝到INDX中(当前循环次数)。当下一次允许时,FOR/NEXT指令复位它自己。例如,给定1的INIT值和10的FINAL值,随着INDX数值增加:1、2、3、 ...10,在For指令和Next指令之间的指令被执行。
如果初值大于终值,那么循环体不被执行。每执行一次循环体,当前计数值增加1,并且将其结果同终值作比较, 如果大于终值,那么终止循环。如果程序进入FOR--NEXT循环时,栈顶值为1,则当程序退出FOR--NEXT循环时,栈顶值也将为1。
顺控继电器(SCR)指令:
SCR指令使您能够按照自然工艺段在LAD、FBD或STL中编制状态控制程序。只要您的应用中包含的一系列操作需要反复执行,就可以使用SCR使程序更加结构化,以至于直接针对应用。这样可以使得编程和调试更加快速和简单。
装载SCR指令(LSCR)将S位的值装载到SCR和逻辑堆栈中。SCR堆栈的结果值决定是否执行SCR程序段。SCR堆栈的值会被复制到逻辑堆栈中,因此可以直接将盒或者输出线圈连接到左侧的功率流线上而不经过中间触点。限定当使用SCR时,请注意下面的限定:
不能把同一个S位用于不同程序中。例如:如果在主程序中用了S0.1,在子程序中就不能再使用它。无法跳转入或跳转出SCR段;然而,可以使用Jump和Label指令在SCR段附近跳转,或在SCR段内跳转。在SCR段中不能使用END指令。给出了S堆栈和逻辑堆栈以及执行LSCR指令产生的影响。以下是对顺控继电器指令的正确理解:
装载SCR指令(LSCR)标志着SCR段的开始,SCR结束指令则标志着SCR段的结束。在装载SCR指令与SCR结束指令之间的所有逻辑操作的执行取决于S堆栈的值。而在SCR结束指令和下一条装载SCR指令之间的逻辑操作则不依赖于S堆栈值。SCR传输指令(SCRT)将程序控制权从一个激活的SCR段传递到另一个SCR段。执行SCRT指令可以使当前激活的程序段的S位复位,同时使下一个将要执行的程序段的S位置位。在SCRT指令指行时,复位当前激活的程序段的S位并不会影响S堆栈。SCR段会一直保持功率流直到退出。SCR条件结束指令(CSCRE)可以使程序退出一个激活的程序段而不执行CSCRE与SCRE之间的指令。CSCRE指令不影响任何S位 也不S堆栈逻辑堆栈S位前 后装载Sx.y的值到SCR和逻辑堆栈。CSCRE指令不影响任何S位,也不影响S堆栈。分支控制:
在许多实例中,一个顺序控制状态流必须分成两个或多个不同分支控制状态流。当一个控制状态流分离成多个分支时,所有的分支控制状态流必须同时激活。
使用多条由相同转移条件激活的SCRT指令,可以在一段SCR程序中实现控制流的分支,如下面的实例所示。
合并控制:
与分支控制的情况类似,两个或者多个分支状态流必须合并为一个状态流。当多个状态流汇集成一个时,我们称之为合并。当控制流合并时,所有的控制流必须都完成,才能执行下一个状态。在SCR程序中,通过从状态L转到状态L,以及从状态M转到状态M的方法实现控制流的合并。当状态L、M的SCR使能位为真时,即可激活状态N,如下例所示。
在有些情况下,一个控制流可能转入多个可能的控制流中的某一个。到底进入哪一个,取决于控制流前面的转移条件,哪一个首先为真。
以上就是几个典型的程序控制类指令的用法及其注意事项,如果感觉文章还不错欢迎点赞关注评论转发。
免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请与我联系,一经查实立刻删除内容。本文内容由快快网络小葵创作整理编辑!