本人曾使用OMRON PLC CQM1H-CPU51作主站,和几台CPM1A-40CDR-A PLC(作从站)通过compobus/s协议进行通讯,实现分散式控制。主站上通讯模组为CQM1-SRT21-V1;从站上通讯模组为CPM1A-SRT21,但该从站上通讯模组最多只有8入/8出的通讯量。
为实现通讯量的扩充,本人利用状态编码的方法可最多实现128入/128出的通讯量。也就是在每次传送的8位数据中用低几位作状态编码,余下的几位才是数据位,在接收时根据接收到的不同的状态把接收的数据装入各自的缓冲区中。
这样若取低3位作状态,高5位作数据,可有23=8种状态,通过8次传送便得8X5=40位数据,即可得40入/40出通讯方式。若取低7位作状态,高1位作数据,可有27=128种状态,通过128次传送便得128X1=128位数据,即可得128入/128出通讯方式。当然状态位越多编程越复杂,就不如其他的通讯方式。
现以低2位作状态,高6位作数据,作一个编程举例,说明如何实现数据发送、接收。
设主站通讯缓冲区为CH01...04,CH100...103,从站通讯缓冲区为CH04,CH14。
设主站发送数据、从站接收数据,且16,17,18,19四个通道的高6位(共24位)均装好要发送的数据位
发送数据程序:
LD P_On
ADB(50) 200 #1 200 ;产生状态编码
ANDW(34) 200 #3 201 ;形成状态循环
LD P_On
ORW(35) 16 201 206 ;形成含低2位状态的8位数据
ORW(35) 17 201 207
ORW(35) 18 201 208
ORW(35) 19 201 209
LDNOT 201.00 ;根据不同的2位状态分别把含状态
ANDNOT 201.01 ;的8位 数据装入发送缓冲
MOV(21) 206 101 ;区(通道101)
LD 201.00
ANDNOT 201.01
MOV(21) 207 101
LDNOT 201.00
AND 201.01
MOV(21) 208 101
LD 201.00
AND 201.01
MOV(21) 209 101
接收数据程序:
LDNOT 4.00 ;根据接收到的不同的2位状态分别保存入
ANDNOT 4.01 ;接收缓冲区216,217,218,219中,
MOV(21) 4 216 ;(接收通道101)它们的高6位即为
LD 4.00 ;接收到的数据位(共24位)
ANDNOT 4.01
MOV(21) 4 217
LDNOT 4.00
AND 4.01
MOV(21) 4 218
LD 4.00
AND 4.01
MOV(21) 4 219
这样就可以实现24入/24出的数据通讯。
这种方式即经济,又可实现省配线的分散控制,各远程站(从站)与主站间只需一根电源线和一根2芯通讯线即可。
这种配置在我厂已有三台自制脱脂酸洗生产线使用,维修方便,效果很好,并可代替进口酸洗生产线电气控制部分,达到与进口设备同样的控制效果,并节省了大量设备成本。
本文关键字:暂无联系方式PLC入门,plc技术 - PLC入门