DTU、RTU、智能网关,就是这样的“关口”。 DTU是串口数据与IP数据相互转化的装置,RTU是在DTU的基础上,具备控制功能,能够采集模拟量和开关量的输入与输出入你要知道与PLC通迅的对话协议,但多数PLC的对话协议是不公开的,
公开的有:欧姆龙,西门子S7-200
还有就是通用的对话协议如: 485/MODBUS,TCP/MODBUS
有的PLC有通用OPC接口。
JAVA是解释性的语言,速度太慢,不太适合做工控,最好的工控语言是
DELPHI/C++BUILDER, 其次是VC++/VBModbus RTU Over TCP指的是在TCP上使用MODBUS RTU,与MODBUS TCP是一个概念,并无区别。当然在TCP底层的通讯协议当中,的确会在MODBUS数据包前后自动增加TCP包头包尾,这是为了确定数据包的出发点和目标点,经过自动解析后,提供给最终用户的还是纯粹的MODBUS数据包。而在串口信道中使用MODBUS是不需要包头和包尾的,直接发MODBUS数据包即可。RTU指的是二进制方式,此外MODBUS还有ASCII方式。MODBUS TCP默认使用RTU方式。
串口是数据透传接口,一般使用串口调试软件的默认 8n11模式就可以,高能的来了:第一点:modbus就是一次用串口连续发多个字节!!!!!就这么简单!!!!
如果想在深入一些,那我再告诉你,第二点:连续发出的多个字节是按顺序排好的就可以了
如果想要完成一个双向通信,那你还要再了解一点就是第三点:发多少个字节?字节顺序如何排列?
本篇只讲主站读,子站发,看明白之后,再点击我的用户名,查看主站写,子站接的经验
先说一下DTU RTU区别:modbus dtu是数字数据传输协议,gsm ,gps可以用,但是如果需要采集模拟量,比如我要询问gsm设备的电池电压,那就要用rtu,,他可以采集模拟量信息,其实对于自己做产品,你都用rtu也可以。也就是说就这点儿区别
知道了dtu rtu的区别,可以尝试分析和编写通信协议了,不需要了解太多,你只需要知道上面提到的第三点就可以了!
先说第三点,从机应该发多少数据给主机?答案是:主机请求N个寄存器,从站就发2N个字节(特别注意,一个寄存器是16位的,而且这个数据长度是不算报文头,不算crc,不算功能码的,下面有图说明)下面看一下真实的通信情况此处主机请求一个寄存器,主机发出10 03 00 00 00 02 c7 4a 注意数据高位在前,crc是低位在前
这是一条完整的从机正常相应命令
返回一个寄存器的数据
好了,通信协议,就这样的,你可以使用modscan和usb转串口设备测试一下
modscan设置如下
现在开始实测一下,先确定电脑至少有两个串口,一个串口作为modscan的发送,一个串口用串口调试助手发数据
波特率都一样就可以,其他默认
然后modscan 点击连接后,自动下发数据
串口调试软件,收到数据后,点一下发送就可以了,可以观看到modscan已经成功收到并显示数据了
END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)