网络59的这部分程序主要是为水压和油压所定义的几个变量赋予初值,其中重点在于对传送指令的使用。在语句
之中MOV_D是字传送指令,还有另一种MOV_DW是双字传送指令,它们的含义是当SM0.1闭合后,将源字IN的内容+0传送到OUT的变量VW10之中,在该语句中即就是给VW10赋值+0 。下面的3个也同理,为给VW12赋值+128,VD100赋值+0,VD200赋值+0。最后一部分的含义是调用子程序SBR_0。此网络中SM0.1后的五个传送程序为并行。
4.4 水压和油压的采集程序
初始化(详见上一节中)完成后,开始对水压和油压进行采集,首先是指定数据存储位置:
Network 60
21
// AIW0 水压传感器 AIW2 油压传感器
水压数据存储在VW102,油压数据存储在VW202中。 Network 61
在这两个网络中,分别将采集到的数据VW102,VW202与0进行了比较,即是确定水压和油压是否有数据,当确定数据正在接受采集时,给VW100(VW200)赋值0,当无数据输入时,给VW100(VW200)赋值FFFF(16进制)。 因为VD104,VD204本来值为0,所以网络63是将采集到的数据与VW100,VW200组合后分别放入VD104,VD204,并且对VW10进行了从0开始的自加处理。 程序如下: Network 63 // 采样128次
22
VW10与VW12的存储位置示意图如下: VB10 VB11 VB13 VB14 VW10 VW12 前两格为VW10,后两格为VW12(初始化为128)。 VW100,VW102,VD1O4的存储位置示意图如下: AIW0 VB100 VB101 VB102 VB103 VB104 VB105 VB106 VB107 VW100 VW102 VD100 VD104
VW200,VW202,VD204的存储位置以上面的类似。
采集次数则是由下一网络的第一段语句的第一节所确定的,如下所示:
Network 64
// VD2904 输入管径 (MM) VW2916 壁厚 (MM) VD2948 取管径中值
如图,程序先将VW10与VW12进行了比较,也就是说该网络在VW10大于128以后才开始执行,即就是执行完128次采集以后,接下来的环节才开始动作。
4.5 机架的手动前进后退程序
在某些情况下,机架需要手动运行,所以必须编写机架的手动前进后退程序。如下:
Network 86 // 机架手动前进运行
// I3.0 为手动前进 I3.1 为手动后退 I8.2 为机架前限位 I10.4 为机架自动运行 手动前进运行 i8.0 插销退出标志
接下图
Network 87 // 机架手动后退运行
23
// I3.0 为手动前进 I3.1 为手动后退 I8.3 为机架后限位 I10.4 为机架自动运行 手动 后退运行 i10.7 插销插入标志
接下图
其中AQW0为机架运行比例阀,两个程序的结构基本上类似,都运用了前进与后退的互锁控制,由于前进和后退方向相反,而坐标原点则在机架拉出最大位置,所以两次为AQW0的赋值刚好为两个相反的数:+16000和-16000。
最终使得中间继电器M3.0或者M3.1得电,最终机架移动线圈Q6.7得电,机架移动(M5.0和M5.1为自动运行的中间继电器)。
4.6 本章小结
本章对PLC部分程序中的重点程序进行了介绍,其中包括油水平衡程序部分,还有星三角启动程序部分,水压油压初始化程序和采集程序部分,机架前进后退手动运行部分,其中还参带有有一些PLC存储位置的介绍。
24