GSV/SSV指令还可以访问控制器任务执行的状态,例如,当控制器设定多个任务时,任务调用有可能出现交迭的情况,这将使得执行代码不能完成,埋下隐患,所以需要对任务交迭状态监控。控制器任务监视页面有一个任务交迭计数器,但是我们不可能时时在线查看,编写梯级逻辑获取当前任务的交迭计数值便可以对当前任务的执行情况及时了解。
于在线帮助文件中,找到如图14-6所示的详细说明,交迭计数对应的是一个双整字,创建双整字标签Task_OverlapCount,交迭计数可以被SSV指令和GSV指令访问,是可设置可读取的访问对象。
图14-6 交迭计数的详细说明
编写的梯级逻辑如图14-7所示。这里编写的两个梯级仅仅是针对交迭计数,GSV指令读取的计数值如果大于0,是应该做相应的处理的,处理完毕的交迭计数需要清除,SSV指令则完成了交迭计数的清除工作。
图14-7 访问任务交迭计数的梯级逻辑
梯级条件Get_Task_OverCounte给定时,使能GSV指令,访问控制器中的任务。THIS被称为关键字,是系统直接访问标签,无须创建,这里THIS指的是执行GSV/SSV指令梯级所在的当前任务。GSV指令的执行获取了监视信息交迭计数的当前值,这个值随着任务出现交迭状态而累加,系统记录的交迭状态计数一旦被设置,是不会随着警告的状态已经消失而消失的,必须执行SSV指令去清除。此处的SSV指令不是用来设定值而是用来清除交迭计数的值,即将0这个特殊的值送到任务迭加计数单元,达到清零的目的。
也可以访问控制器中的程序,例如获取某个程序的最后扫描时间和最大扫描时间。在控制器程序监视页面,这个监视信息也是可以读到的。如果需要提供程序数据,就需要运用GSV指令来访问了。(www.xing528.com)
于在线帮助文件中,找到如图14-8所示的详细说明。最后扫描时间和最大扫描时间对应的都是一个双整字,创建双整字标签Get_LastScanTime和Get_MaxScanTime,扫描时间监视参数可以被SSV指令和GSV指令访问。
图14-8 程序最后扫描时间和最大扫描时间的详细说明
编写的梯级逻辑如图14-9所示。Logix控制器允许将这样的输出指令串联在同一个梯级,常常可以看到将GSV指令或SSV指令串联在一个梯级的做法。这里THIS指的是执行GSV指令梯级所在的当前程序。
图14-9 获取程序扫描时间的梯级逻辑
当使用SSV指令对程序进行最后扫描时间和最大扫描时间操作时,就意味着清除了。对于最大扫描时间的清除,相当于复位的操作,但是最后扫描时间立刻就被新的时间代替,SSV指令的操作几乎没有意义。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。