上面我们学习编写了一些梯级逻辑,都是直接引用数据标签。在Logix控制器中一个最大的优势就是用户自定义数据结构标签可以围绕一个控制对象,将不同类型的数据集合在一起,建立相应的结构数据标签。特定的结构数据标签,不管是编程还是监视数据,都非常的方便,这正是Logix控制器的一大特色。我们来尝试一下,仍然是有关计时器的指令编写梯级逻辑,但使用用户自定义数据结构标签来编写。
实例:有一个延时启动控制的需求,当开关启动时,第一个电动机起动,延时3s后,第二个电动机起动,延时5s后,第三个电动机起动。开关关闭时,所有电动机复位,起动尚未完毕,开关关闭,所有电动机亦复位。编写梯级逻辑来完成这个过程,并使用用户自定义结构数据标签。
创建名为MOTOR的用户自定义结构数据,如图5-43所示,围绕电动机这个控制对象,创建相关的子元素,并给予说明。我们分别为3个电动机创建了M1、M2和M3的3个布尔量标签;为启动和停止创建了Start和Stop的两个布尔量标签;创建Timer1和Timer2的两个计时器结构数据标签,以及用于ONS指令存储位的两个布尔量标签,内嵌在用户自定义结构数据中的ONS存储位,紧凑地利用了现有的空间。在编程过程中,如需要添加新的子元素,可以为结构数据添加新的元素定义,创建的标签也会随之跟着添加。
图5-43 创建用户自定义结构数据MOTOR
在标签数据库创建结构数据标签MotorStart,如图5-44所示,其数据类型选择MOTOR。可以看到,结构数据子元素的说明关联到了新建的数据标签中,以浅色显示。用户自定义结构数据定义中的说明是可以延伸到每一个标签的,这无疑节省了内存,如果标签中对个别子元素要额外地予以说明,这个说明是可以覆盖原结构数据子元素说明的,不过是另外消耗内存而已,其显现的是重色而不是浅色。
根据电动机启动的需求,编写梯级逻辑如图5-45所示,并运行测试。
图5-44 在数据库创建标签MotorStart(www.xing528.com)
图5-45 电动机启动过程的梯级逻辑
电动机启动开关MotorStart.Start和停止开关MotorStart.Stop是分别独立工作的,ONS指令限制了梯级条件一次操作有效,运行位MotorStart_Run用来控制整个延时启动过程,当启动开始,运行位提供了计时器MotorStart.Timer1的梯级条件并启动1号电动机Mo-torStart.M1,3s之后计时器MotorStart.Timer1完成计时,MotorStart.Timer1.DN位为计时器MotorStart.Timer2提供了梯级条件,同时启动2号电动机MotorStart.M2,5s后,3号电动机MotorStart.M3启动。
在启动的过程中,假如尚未完成便停止启动,可以看到所有的梯级条件随之消失,消失的梯级条件帮助计时器复位,启动不会终止在起动中途的状态,而是处于复位状态,为下次启动作准备,从而回到了原点。
用户自定义结构数据给我们带来的好处之一是可以在一个结构数据标签中,看到一个控制对象所有的相关数据,一目了然。用户自定义结构数据,往往是出于不同的目的创建,有时为了同一控制对象,有时为了通信数据传送,有时为了组态数据模块,总是将有关联的数据集合在一起,使得应用更为方便或获得更好的系统性能。如图5-46所示的数据,就是我们刚才的梯形图例程中使用数据的监视页面,是针对一个同一控制对象而创建的,相关的计时器和输出都集合在一起。
图5-46 结构数据标签Motor Start的数据监视
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。