第一范文网 - 专业文章范例文档资料分享平台

基于Modbus - RTU - RS485的通信实现

来源:用户分享 时间:2025/8/21 11:36:41 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

/*********************************************************************************************************************

单片机

通信波特率:9600

字符数据格式:1位起始位 8位数据 1位偶校验 1位停止位 帧间最小间隔:3.5个字符 RTU报文帧格式:

编程思路:

1.当单片机接收到来自PC机的数据后,进入串口中断,缓存接收到的数据,同时开启并刷新定时器。当没有接收到数据(或者接收完毕)后,跳出串口中断,同时定时器开始计时:若超过3.5个字符时间单片机仍没有接收到新数据,则认为本次接收完成,将接收完成标志置1;若在3.5个字符时间内又接收到新数据,则再次进入串口中断,重复上述操作。

2.当接收完成标志置1进入接收数据处理: (1)首先判断接收的第1个数据(1个字节)与本机地址是否相同,如果不相

同不发送任何信息; (2)如果接收的第1个数据与本机地址相同,则对接收缓存中的数据进行crc16

校验,如果接收的校验数据与本校验结果不相同,同样不发送任何信息; (3)如果crc16校验正确则根据数据串中的功能码进行相应的处理。

2.1 基本参数概述

基本参数列表

2.2 重要参数说明 2.2.1 Command参数

该参数的16个为位用于设置通讯口的不同工作方式

Bit1-Bit4: 使用Modem时需设定的相关参数

Bit5: 是否使用XON/XOFF流控制。设为1时表示使用XON/XOFF流控制 Bit6: 是否使用RTS/CTS握手信号。设为1时表示允许使用RTS/CTS信号 Bit7: 是否清除“Back Space”字符。设为1时表示在“Simple ASCII Input”和“Terminated

ASCII Input”模式下,清除MsgIn中的“Back Space”字符

Bit8: 是否接管通讯口FIFO缓冲区。设为1时表示XXMIT指令接管通讯口FIFO缓冲区的控制

Bit9: 是否启用Modbus模式。设为1时表示通讯口工作在Modbus Master模式下 Bit10: 是否启用标准串口模式。设我1时表示通讯口工作在标准串口模式下 注:Bit9,Bit10不能同时设为1

Bit11: 是否启用“Simple ASCII Input”模式,设为1时表示启用 Bit12: 是否启用“Terminated ASCII Input”模式,设为1时表示启用 Bit13: 不用

Bit14: 是否启用RS485模式。设为1时表示启用。只有在使用Modicon Momentum系列PLC时,该位才设为1

Bit15: 是否启用RTS/CTS Modem控制。设为1时表示启用 Bit16: 不用 2.2.2 Msgout参数

该参数中存放需发送的字符或数据。通常在Concept中用一个WORD型数组来给该参数赋值。当通讯口工作在Modbus Master模式下时,需按Modbus RTU的格式来给该参数赋值,但不含CRC校验值,具体的格式见下表

2.2.3 Port参数

只要使用Modicon Momentum系列PLC时,该参数才被设为2,否则该参数的值都被设定为1,表示用Port1进行通讯。

搜索更多关于: 基于Modbus - RTU - RS485的通信实现 的文档
基于Modbus - RTU - RS485的通信实现.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c98xg800zsa83uyx977b5_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top