(8)程序控制指令 程序控制指令包含循环指令、跳转指令、顺序控制指令及看门狗复位指令和停止指令 是对程序执行期间的循环操作,通常来说,程序的扫描是整个程序从头至尾的过程,而为了解决重复执行相同功能的程序段,尤其需要大量的相同功能的计算或逻辑运算时,这时我们可以使用循环指令 循环指令的执行次数并非无限制的,它受CPU的扫描时间影响;循环次数越多,扫描时间就会越长,而200SMART最长的扫描时间是500MS,当超过这个时间后CPU则会报错,报看门狗出错并停止运行CPU;所以循环次数的扫描时间不能超过500MS 循环指令由FOR及NEXT组成,在实际应用需要配套一起使用;FOR....NEXT指令中间的程序称为循环体,CPU每次扫描到此处时会循环执行的程序。 FOR....NEXT可循环嵌套,最多嵌套8层。每次重新执行该指令时,CPU会自动复位各参数,在使用过程中无需对参数进行清零的操作 INIT:循环的起始值;FINAL:需要执行循环的总次数;当INDX的值大于FINAL的值时,循环结束,循环指令不再执行,设置结束次数时不能大于起始值。INDX端只能使用16位的存储空间 跳转指令的使用可提高编程的灵活性,使主机可以针对不同条件的判断执行对应的程序。比如在一段程序中,正常是从头至尾都会执行扫描,但使用跳转指令后,PLC不会对JMP...LBL之间的程序执行,当跳转指令不满足时PLC则会继续扫描该段程序 跳转指令JMP及跳转指令标签LBL指令一起组成,使用时也需要一起配套出现;在使用的过程种,跳转指令的数字需要和标签指令的数字对应一致 在执行跳转指令执行之前,JMP...LBL之间的程序如果正在运行,接着此时跳转指令满足跳过该段程序后,只是不再扫描而不是不执行,所以该程序段会保持在跳转指令执行之前的结果。 1、跳转指令及标签指令需要配合一起使用,且只能在同一POU内使用 2、执行跳转后,被跳转的程序段不再扫描,其对应一些元件的状态会保持在跳转前的状态3、对于计数器而言,计数器会停止工作但当前值会保持在跳转前的计数不会被丢失4、对于定时器而言,因不同的分辨率刷新方式也不一样,在跳转期间,1MS和10MS的定时器会继续定时;到设定值后,定时器的相关触点也会发生变化;直到32767后才会停止。在跳转期间,100MS的定时器和计数器是一样的5、跳转指令只能在本POU中跳转,不能从主程序跳转到子程序或子程序到另一子程序中6、跳转指令可以由下往上跳,但要注意避免出现看门狗出错 顺控指令在SMART PLC的梯形图程序下有三种状态:指定需要执行的状态步SCR;用于转移状态步的SCRT;表示对上一状态步结束的SCRE 顺控指令主要用于具有明显动作的设计(如单机设备),这种情况下使用顺控指令编程能使程序结构清晰明了;顺控指令在使用的过程需要配合状态继电器(S)使用 在使用顺控指令设计程序时,根据程序执行的动作顺序可分为单流程控制结构、选择性流程控制、并行分支流程控制结构三种 单流程结构:当顺序功能图只有一个通道时称为单流程结构,主要特点为从初始状态开始,每个状态后面只有一个转移,每个转移后面只有一个状态(如下图所示) 顺序功能流程图一般有:状态、转移条件及状态的动作三部分组成
选择性分支结构:当单流程向分支转移时,根据转转条件是否成立只能向其中一个流程进行转移,是一种多选一的过程结构。 并行性分支结构:当单流程向多个流程转移时,多个分支的转移条件均相同,只要转移条件成立,则同时激活各个分支流程1、SCR段程序段是否执行,取决于状态继电器S是否为ON2、顺控指令只能状态继电器S有用,不能用其他内部存储器,空间大小和位存储器M一样,为32个字节大小3、不能把同一个S状态位用于不同的POU中,比如在主程序中用了就不能在子程序中使用。6、不同的SCR段中,不得使用跳转指令,但如果在同一个SCR段中可使用跳转指令 STOP指令可将CPU从run模式切换到STOP模式来终止程序的执行,比如I/O出现错误时(SM5.0会为ON)可把PLC切换到STOP模式 看门狗复位指令的使用可使程序的扫描时间延长500MS。如循环次数的扫描时间过长导致CPU报错并停机,且会发出非致命错误扫描看门狗超时的代码(001AH) 而如果在适当位置使用看门狗指令(WDR)的话能延长扫描时间防止报错停机 每次执行 WDR 指令时,扫描看门狗超时时间都会复位为 500 毫秒。 但是,主扫描的最大绝对持续时间为 5 秒。如果当前扫描持续时间达到 5 秒,CPU 会无条件地切换为 STOP 模式。 GET_ERROR(获取非致命错误代码) 获取非致命错误代码指令将 CPU 的当前非致命错误代码存储在分配给 ECODE 的位置。而 CPU 中的非致命错误代码将在存储后清除。用于CPU报错显示的情况下可使用该指令
|