04 Object(基础对象)
在水处理工艺中,主要的控制对象分为三大类,电机、阀门、仪表。接下来的程序以电机举例说明。
根据实际工艺设计,新建对应数量的电机数据,可以多当备用,不要少。如果设备数量较多有几十台电机,建议使用数据,方便后面写FOR循环遍历,如果数量较少的话可以直接新建不用数组。每个电机需要建两个结构类型(UDT)的数据,分别是"Motor EXT"和"Motor INT"。这两个数据类型要新建到两个DB块中,因为有一个DB块的数据要勾选保持,一个不需要。需要勾选保持的数据就是画面或者上位机需要读写采集的对应点位。
Motor EXT:
此结构里面基本包含了上位系统用到的所有东西(对外的接口),各种运行状态,操作按钮,频率的设定反馈,运行时间、报警信息等。

Motor INT:
此结构中包含了编程时要用到的数据,不需要对外开放的数据,这里面的数据不需要选择保持,甚至连优化访问都可以不用去掉。
每个电机设备的所有硬线信号,上面做的IO映射就是将通道的数据映射到对应的结构数据中,为什么要加这一步种转,直接使用IO通道的数据不好吗?目的就是为了将所有的数据映射到数组中,方便后面使用for遍历执行,针对控制设备很多的情况下,不用一个一个的拖FB块按个的连接引脚了。
除了硬线信号还有自动模式下,其他程序要控制的点位。一个设备它的手动控制在外部的DB块中由上位系统的按钮控制。那么自动控制在程序内部由这个两个自动相关的结构来控制。
其它的就是一些设定频率上下限,电流上下限这些,一般设定好起始值就不需要在管了。

上面时电机设备的结构数据,下面就是每个电机设备的基础控制逻辑和一些其他必要功能。
每个电机设备的实例只需要传入三个东西,每秒脉冲、外部数据EXT和内部数据INT,这样电机就可以被正常控制了。

有了上面电机的FB程序,下面就是对每个电机设备进行实例化操作,让其可以被正常控制。
第一不在静态的储存区中新建好电机FB块的背景数据,数量最好要比实际多一些,防止后面加设备不够用。以数组的方式进行新建,这种方式只有1500的PLC可以,1200的PLC无法在FB块的静态存储区新建其他FB块的背景数据数组。
按照下面的FOR循环写好代码,N的值不要超过背景数据的数量,也不能超过对外和对内数据的数量。如果N的值是0到15,那么这16台泵就都可以被正常控制了。省去了一个个拖连接变量的时间,数量变化的话也只是将后面的15改大一点就行了。
