RS232的modbus程序和RS485的modbus程序有什么区别啊

RS232的modbus程序和RS485的modbus程序有什么区别啊,第1张

MOBUS只是一种软件协议,协议就是规定了一种"暗语",让主从站之间可以"通话"。也就是把0和1翻译成双方都明白的命令。

这很类似于你在不同品牌的电脑上,装什么软件系统。

而RS232和RS485相当于这个电脑硬件。

他们只是硬件接口。在这个硬件上,也不只能跑MODBUS协议,还能跑其他自拟协议。

同样,MODBUS也不光可以用于RS232和RS485,还可以用于POWERBUS,MBUS,等其他硬件之上。

例如这张图,上面的波形是来自MCU的原始数据接口UART

下面是RS485差分线波形。RS485只不过把来自MCU的UART的0-5V或者0-33V的电平,转换为翻转颠倒的5V压差电平并扩流驱动线缆。这就是硬件接口做的事情。

MODBUS只是一种软件。

但要注意,RS232是全双工通讯的,RS482是半双工通讯的。

施工布线差别就更大了,RS232只能一对一,最远通讯距离15米。而RS485支持一对多大网络通讯。

布线复杂度也不同

C#写了一款上位机监控软件,基于MODBUS_RTU协议。 软件的基本结构:

采用定时器(Timer控件)为时间片。

串口采用serialPort1_DataReceived中断接收,并进行MODBUS格式判断。

把正确接收的数据取出,转换为有特定的结构体中。

数据通过时间片实时刷新。

MODBUS协议(这里不介绍了,网上有很多的权威资料)。

Modbus只是一种协议,首先实现类似串口助手的功能,再根据Modbus协议构造数据帧进行收发即可,可以使用一些测试软件辅助设计,例如格西烽火通信软件等,可以自定义协议,有Modbus的测试。

网上有很多说明,我到现在也没看明白他们说了些什么,自己都不明白还能说明白?

Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。

Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。

下面我来简单的给大家介绍一下,对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。所以我们普通使用的是Modbus的ASCII和RTU协议。

详细协议加分。传给你

如果用C语言编程实现MODBUS通讯,难度还是很大的。首先需要实现TCP通讯,这里面涉及到TCP侦听模块、TCP数据收发模块、断线重连模块、如果是多信道连接,还需要处理多信道并行通讯等。在实现了TCP通讯核心程序的基础上,通过数据发送程序模块,按照MODBUS指令格式,向前端设备发出正确的MODBUS指令(RTU或ASCII)即可,然后就是通过数据接收模块等待接收前端返回的MODBUS数据包,这就还要编写MODBUS指令生成模块,MODBUS数据解析模块。

上述只是一个大致的思路,里面涉及的编程技术很多,有的技术环节还是很有挑战性的,比如大规模多信道并行通讯。

以上就是关于RS232的modbus程序和RS485的modbus程序有什么区别啊全部的内容,包括:RS232的modbus程序和RS485的modbus程序有什么区别啊、上位机c#modbus串行通讯协议怎么用、如何用VB实现Modbus串行通讯等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9851577.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存