对于从站模式(服务器模式),每一个TCP请求连接对应一组状态图,把这些状态归纳入一个结构体,然后再创建结构体链表,系统程序通过维护监测链表,可以实现多客户端同时请求通讯。
4.3 Modbus TCP和Modbus RTU协议开发
参考Modbus TCP和Modbus RTU协议标准,不难实现PLC与本模块的Modbus RTU以及本模块与外部以太网设备的Modbus TCP数据通讯。然后在本模块程序内部完成数据包的Modbus TCP和Modbus RTU之间数据转换,采用透明传输方式,即把从一个端口接收出来的数据转换后立即从另一个端口输出去。Modbus TCP相比Modbus RTU报文格式,多了六个字节的前缀,少了后面的CRC校验,它是采用TCP/IP 和链路层(以太网)校验和机制来校验分组交换的准确性。
4.4 模块状态监测
模块状态监测包括:系统运行状态,Modbus RTU通讯状态,Modbus TCP连接状态、通讯状态,以及通讯异常报警。
4.5 通讯测试
实验平台采用
NA200 PLC挂载本模块,然后通过网络交叉线和PC电脑相连,利用网上免费网络调试工具SocketTool2进行通讯测试。先在SocketTool2建立客户端,然后连接,发送测试通讯数据十六进制000000000006500600C90055,查看是否有数据返回。
五、结束语
本文设计的Modbus TCP通讯模块,能和现有PLC稳定连接,从成本、性能上都将是个比较好的选择。前文介绍的是以从站模式为例,对于主站模式,可以PLC利用串口对通讯模块设置通讯请求的从站信息(IP地址等)。在不改变硬件的基础之上,通过软件升级,可以把模块功能更加完善。比如:满足通讯模式一主多从、一从多主、以及自定义通讯的现场应用需求。同时本文提出的思路也可以作为一种通用方案,推广到类似的产品开发中。
参考文献
(2)宋鑫,郭勇,谢兴红 RMII模式以太网PHY芯片DP83848C的应用.单片机与嵌入式系统应用,2010年第8期
李广勇,1982年9月22日出生,30岁,男,汉族,硕士学位,中级工程师,研究方向嵌入式系统及应用开发,目前工作于南京南大傲拓科技有限公司,具体地址:南京市江宁区清水亭西路199号一号楼。邮政编码:210012,联系电话:13675186185