前言
大家好!我是付工!
前面写了一篇关于基于Modbus读取运动控制卡的文章,发现很多小伙伴对Modbus的实时性比较感兴趣,想知道上位机开发种Modbus通信能达到多快的速度。
首先,我们要明确一点,Modbus本身只是一个应用层的协议规约,意思就是Modbus本身是没有速度一说的,当运行在传输层以太网或者串口介质上的时候,才会存在实时性的说法。
那么至于Modbus通信速度到底是多少,本文以ModbusTCP为例,配合西门子200Smart PLC、西门子1200 PLC、西门子1500 PLC、三菱FX5U、台达DVP-ES3以及正运动的运动控制卡,来做一个通信测试,测试结果仅表示当前环境、当前电脑配置、当前网络环境下的结果,仅供参考。
测试程序
这里采用的通信库是我们自己开发的通信库xktComm,不同的通信库测试结果可能有所不同。
首先设计界面如下所示:
不同设备都使用默认端口502,所以仅仅只是IP地址不同而已,为了增加数据的准确性,我们使用循环读取的方式,默认是循环1000次,同时为了证明实时通信的过程,增加了显示报文的选择,可以将实时通信的报文显示出来。
同时,我们读取的存储区也是一样的,读取4区从0开始的100个寄存器。
西门子200Smart
西门子200Smart PLC,我们采用的是CP