概述:本文主要介绍了海为PLC与三菱FX2N系列进行通讯的实验情况。
关键字:海为PLC FX2N 自由通讯 CRC校验
第一部分:研究情况简介
2012年的时候,我任某公司技术部部长,期间有个客户需要与公司的某防护装置进行通讯,需要使用海为PLC读取三菱PLC上的某些数据。为此就对海为PLC与三菱PLC通讯问题展开实验研究。
海为PLC通讯特点:Haiwell PLC各种型号的主机都内置Modbus RTU/ASCII协议、自由通讯协议以及海为公司的HaiwellBus高速通讯协议。HaiwellBus高速通讯协议属于海为PLC与海为PLC内部通讯协议,因此不能使用。能应用到对外通讯的是Modbus协议以及自由通讯协议。
三菱PLC通讯特点:三菱PLC对外通讯为无协议自由通讯,用于与计算机,条形码阅读器,打印机等带有RS232接口的设备进行全双工方式的串行数据通讯。下图为通讯接线图:
如上图所示,FX2N通过232IF与海为PLC的通讯扩展模块相连,采用无协议通讯方式,带CRC校验,最多一次发送512字节,接收256字节数据,通讯口资料格式设置为9600,N 8 2 RTU。
具体性能如下:
有效通讯距离:15米,实际试验过。
数据响应时间:传输的数据越多,扫描周期越长,传输相应越慢。当前程序扫描周期为26ms,传送0数据时为17ms,CRC校验用时14ms。传送一个字需要占用2ms。
发送的数据如上图所示,FX2N的D199存放数据D200,D201,D202的CRC校验码,接收端PLC将接收到的D200,D201,202进行CRC校验,若数据一致则说明通讯正常,允许接收数据。若不一致,则认为出现干扰,拒绝接收。D212中存放的是一个以秒为周期进行变化的十进制数据,若接收端PLC在2秒的时间内接收到的D211中的数据没发生变化,则认为通讯中断。
第二部分:FX2N通讯程序介绍
程序说明:该部分设置通讯格式和其他情况,具体情况参照通讯用户手册。本案例中取消发送报文,发送报尾,接收报头,接收报尾,否则海为PLC接收的数据为乱码。
程序说明:激活发送指令,如果设置位M8012,则会发生发送数据响应不及时,部分时刻传输数据丢失的情况。M101继电器用于下文TO指令传送中
程序说明:设置发送字节数,要发送的数据.
程序说明:对D200进行以10ma为周期的数据变化,以模拟数据变化。
程序说明:指令传送
程序说明:以上为CRC校验程序,介绍略。
程序说明:发送数据。
第三部分:海为通讯程序介绍
程序说明:如果1秒接收的数据相同,则认为通讯中断。
第四部分:调试心得
在调试中,最大的困难来源于三菱PLC程序,需要编写相当长的通讯指令以及CRC校验程序,虽然在网络上搜索到了上述程序的实例,但是编写成自己的程序并且调试完毕,仍然花费了很长的时间。别人调试好的程序到你手里不一定能用,需要你再次调试。CRC校验程序到底是怎么回事至今不明白,反正是抄写来了,而且能用,幸好没有抄错。
海为PLC在进行通讯的时候就两条指令,自由通讯指令COMM以及CRC校验指令,简单的不能再简单,其他的程序都是很简单的辅助程序。
在三菱PLC与海为PLC通讯成功的基础上,为公司几款主流安全防护设备用海为PLC增加了Modbus通讯功能。不仅组态王,易控等组态软件可以与公司设备通讯,其他厂家设备中的PLC也可以与公司设备进行通讯,使得公司设备的应用更加灵活,更受用户青睐。
海为PLC在组网通讯上确实是一大亮点,三菱PLC做这个通讯的时候写了233条指令,用了三四天的功夫。海为PLC只用了2个指令。可以说海为PLC的出现让通讯程序不再是难题。