模拟量控制的阀门一般是用4-20毫安电流信号控制阀门开度,对应的阀门开度从0%-100%,对应PLC内存的数据大小从6400-32000。换句话说,我们输出一个大小在6400与32000之间的整数,即可传送到阀门一个开度在0到100之间的给定值。根据这个原理,我们设计代码如下:
图17 停止程序
Network 1 // 三通阀阀门设臵 LD SM0.0
MOVW VW900, VW3600 //将数据传如转换数据区,VW900是0-100的整数。
AENO
20
*I +256, VW3600 //数据乘以256 AENO
MOVW VW3600, VW3602 AENO
+I +6400, VW3602 //数据+6400 AENO
MOVW VW3602, AQW0 //输出给定值
(5) 锅炉水泵的控制 水泵分为工频控制和变频控制
工频控制就是启动和停止2个控制点,相对变频控制操作简单。
变频控制需要给定变频器一个频率给定值,一种方式是通信传输,另一种方式给定模拟量值。
我们这里只介绍给定模拟量的控制方式。 Network 1 // 变频器给定 LD SM0.0
MOVW VW940, VW3600 //VW940为频率给定值输入,范围0-50HZ
AENO
*I +256, VW3600 //数据乘以256 AENO
MOVW VW3600, VW3602 AENO
+I +6400, VW3602 //数据+6400 AENO
MOVW VW3602, AQW2 //输出给定值 (6) 循环泵控制
循环泵控制程序主要实现循环泵系统中水泵电机的启/停控制、变频器频率设定、出水压力PID控制等。系统根据出水压力的设定值初步确定启动几台循环泵,每台泵都通过变频启动,切换到工频运行,最后其中一台泵进入变频运行,其它泵工频运行。然后通过压力PID控制调节变频器频率,以稳定出水压力。循环泵控制程序的设计流程图如图18所示。
21
是 是 是开始 否 启动循环泵 4 启动1#变 频器 否 启动2#变频器 频器 启动1#变频器 启动水泵 否 压力不足 切换到工频运行 启动另一台泵 否 压力过大 停止一台泵 另一台切换到变频运行 压力控制PID 确定变频器频率 结束
图18 循环泵控制流程图
(7) 补水泵控制
补水泵控制程序主要实现补水泵系统中水泵电机的启/停控制、变频器频率设定、补水压力PID控制等。补水泵系统用1#变频器拖动1#补水泵,2#变频器
22
拖动3#补水泵。运行时,系统根据回水压力的设定值初步确定启动几台补水泵,若两台泵或者只用一台即可满足回水压力,则只启动1#泵系统或3-4#泵系统(包括2#变频器),若需要两台以上泵才能达到回水压力的设定值,则先用1#变频器(或2#变频器)启动1-2#泵(或3-4#泵),切换到工频运行,然后再用2#变频器(或1#变频器)拖动3-4#泵(或1-2#泵),进入变频器运行。最后通过压力PID控制调节变频器频率,稳定回水压力。补水泵控制程序的设计流程图如图19所示。
(8) PLC模拟量模块转换程序 程序代码
// 采样 :这段代码主要作用是把16位(一个字)的数据转换为实数类型的数据,并且启动计数器和累加器
LD SM0.0
ITD LW0, LD26 //16整数转换为32位整数 DTR LD26, LD30 //32位整数转换为实数 +R LD30, LD12 //启动累加器 INCW LW16 //启动计数器 Network 2
// 滤波与转换:这段代码通过一系列运算进行数据滤波,并且将数值转换为可读性很好
// 同时累加器与计数器归零便于下一次采集使用。
LDW>= LW16, LW6 //比较当前采样次数是否等于预制采样次数
ITD LW6, LD42
DTR LD42, LD46 //将采样次数有16位整数转换位32位实数
MOVR LD12, LD18
/R LD46, LD18 //求出采样平均值 MOVR 0.0, LD12 //清空累加器 MOVW +0, LW16 //清空计数器 -R 6400.0, LD18
*R LD8, LD18 //转换为十进制数值 +R LD2, LD18 //修正 Network 3 LD SM0.0
MOVR LD18, LD22 //输出
23

