【欧姆龙案例】CP1系列做无协议通讯
实验设备:电脑一台WindowXP系统,CX-Programmer Ver9.4,USB电缆,CP1H-XA40DR-A一台,CP1E-N30SDR-D一台,XW2Z-200S-V,CP1W-CIF01一个。COMMIX软件。
实验目的:用无协议通讯,交换电脑和PLC之间的数据。
①用USB电缆将电脑与PLC相连。
图1-1
②用三芯线将PLC和电脑相连。
图1-2
①设置COMMIX软件:
图1-3
②打开CX-Programmer软件,点击新建,弹出以下窗口,设备类型选择CP1E。
图1-4
选择N30型。
图1-5
③双击设置,按如下设置:
图1-6
①TXD指令:
图1-7
图1-8
无协议的时候,4~7位设置为0。
②程序如下:
图1-9
其中A392.05是内置232口发送准备标志位,A392.05为ON则可以发送无协议命令。
当CPU型号不是带S的,而是可以扩展通讯口的型号是,此时可以将A392.13作为扩展口的发送准备标志位。
①当触发W0.00时,可以看到Commix软件中填入相应数值:
图1-10
图1-11
①RXD指令:
图1-12
图1-13
②程序如下:
图1-14
A393作为缓存区,A392.06是接收完成标志位。
当Commix软件向电脑发送数据,可以看到缓存区的数值是接收数据个数,A392.06是1。
图1-15
图1-16
触发W0.01,可以看到接收地址中得到相应的接收数值:
图1-17
当将PLC换成CP1H时,设置如下:
图1-18
可以看到Commix软件发送的字节数是6个字节,大于设置中的接收字节,当缓存区数据A393个数等于设置中的接收字节数时,A392.06置1。表示接收完成。
图1-19
图1-20
程序中将接收字节设为4个,触发W0.01,接收数据,可以看到程序先接受了4个字节。程序用的是CP1H的串口1,缓存区A394变为2.
图1-21
触发一次W0.00,可以看到剩下的两个字节被接收了,此时缓存区变为0。
图1-22
实验总结:
1. CP1H和CP1E做无协议,当发送字节数大于RXD接收字节数时,执行程序的结果是不一样的。CP1H会将数据存在缓存区,比如发送6个数据,RXD接收数据是4个,那么先接收4个,再触发RXD指令会再接收2个字节。而CP1E在接收的时候就将缓存区清零了。
2. 错误代码在A528里面查看。
3. A526是重启端口。
4. 当缓存区数据A393个数等于设置中的接收字节数时,A392.06置1。
来源:技成——杨存世