0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RS485接口、Modbus RTU协议与BT119P通讯实例

CHANBAEK 来源:伯特自动化 作者:伯特 2023-05-18 14:57 次阅读

RS485接口、Modbus RTU协议与BT119P通讯实例

RS485是一种通用的通讯接口,采用主从通讯方式,即一个主机带多个从机,很多情况下,通讯链路采用一对双绞线将各个接口的“A”、“B”端并联起来。数据信号采用差分传输方式,逻辑“1”以两线间的电压差+(2~6)V表示;逻辑“0”以两线间的电压差为-(2~6)V表示。RS485通讯数据最高传输速率为10Mbps,最大距离可以到1200米,最大支持256个结点。

Modbus是一主多从的通讯协议,需要一个设备充当主机(比如电脑PLC、触摸屏等),从机是可以是各种测量仪表、模块。主机在同一时间内只能向一个从机发送命令,总线上每次只有一个数据进行传输,即主机发送,从机返回,主机不发送,总线就没有数据流。

Modbus的传输模式也分三种:ASCII、RTU、TCP。以常见的Modbus-RTU为例。数据格式如下:

wKgZomRlytGAAHm7AABMV46cy9g447.jpg

从机地址 :每个从机都有唯一地址,占用一个字节,范围0~255

命令码: 占用一个地址。

常用命令码介绍:

命令码 功能说明
01H 读输出线圈状态
02H 读入出线圈状态
03H 读保持寄存器
04H 读输入寄存器
06H 写单个寄存器
10H 写多个寄存器

数据: 根据命令码不同,有不同数据。

校验: 在数据传输过程中可能数据会发生错误,CRC检验接收数据是否正确。

分析一下发送和接收的内容:

1:主机对从机读数据

主机发送的数据格式如下:

从机地址 0x01
命令码 0x03
寄存器地址(高) 0x00
寄存器地址(低) 0x01
数量(高) 0x00
数量(低) 0x01
校验 0xD5 0xCA

含义:

0x01:从机地址

0x03:命令码。读从机寄存器地址

0x00 0x01:表示读的寄存器地址从0x0001开始

0x00 0x01;表示连续读取的寄存器数量

0xD5 0xCA:CRC校验码

2:主机对从机写数据

从机地址 0x01
命令码 0x06
寄存器地址(高) 0x00
寄存器地址(低) 0x01
数量(高 0x00
数量(低) 0x64
校验 0xD9 0xE1

含义:

0x01:从机地址

0x06:命令码。写单个寄存器

0x00 0x01:修改的寄存器地址

0x00 0x64:修改的值

0xD9 0xE1:CRC校验码

从机返回数据格式如下:

从机地址 0x01
命令码 0x06
寄存器地址(高) 0x00
寄存器地址(低) 0x01
数量(高 0x00
数量(低) 0x64
校验 0xD9 0xE1

含义:

0x01:从机地址

0x06:命令码。写单个寄存器

0x00 0x01:修改的寄存器地址

0x00 0x64:修改的值

0xD9 0xE1:CRC校验码

从机返回的数据是和主机发送的数据一致,说明写入正确,否则表示出错了。可再写一次。

伯特仪表大部分产品,可以配置RS485通讯模块接口,并支持标准Modbus-RTU通讯协议,下面我们用一台BT119P的温控表作为从机,电脑端利用组态王软件作为主机,来进行二者ModbusRTU通讯的演示案例。

1、电脑端打开组态王KyingView软件,然后新建工程

wKgaomRlytGAZPtCAAG9jNjP_mA110.jpg

2、双击设备COM1,配置串口信息,我们配置为:波特率9600,8为数据位,无校验,1个停止位。

wKgZomRlytGAbpZ4AADkef94xJw897.jpg

3、接下来双击“新建”选项,选择对应设备驱动。这里我们依次选择:设备驱动 -> PLC -> 莫迪康 -> ModbusRTU -> COM。

wKgaomRlytGAXgNRAAJaOiTh0qo189.jpg

4、然后根据实际情况,选择对应的串口号,这里我们选择COM3;下一步,设置需要与下位机通讯的地址号,这里我们选择1。之后就直接下一步完成就可以。

wKgaomRlytGAUE9NAAAmC2YQ8Ek745.jpg

wKgZomRlytGAPREpAAAjLufcR5Q913.jpg

5、然后就在软件左侧数据库栏,点击数据词典,双击“新建”,弹出“定义变量”对话框,依次填入对应变量要求。比如我们要读取BT119仪表的测量值,那根据仪表对应的通讯协议地址表可知,测量值的寄存器地址为“30001”,数据变量选择“I/O整型”,数据类型选择“SHORT”,连接设备就选择前面我们建立的设备号“Bt119”。

wKgaomRlytGAd0wVAAH75svgQ_0678.jpg

6、设备和变量都新建完成,接下来我们就要新建画面了。点击左侧文件栏的画面,然后双击“新建”;弹出对话框,画面名称命令为“测量值”,然后下一步就进入组态画面。

wKgZomRlytGAXbjRAAHC_jWDt-U498.jpg

wKgZomRlytGAKD-TAADpeEe7sHg864.jpg

7、在工具箱中选择文本,鼠标按住不放,拖入组态画面中,然后双击定义该文本信息。点击“模拟量输出”,然后选择前面我们定义的变量“测量值”,点击确认完成。

wKgZomRlytGAAFC3AAAnXJ78jA0276.jpg

wKgaomRlytGAcRfwAAAS_GFZYtk606.jpg

8、上位机的配置工作完成后,仪表参数也要相应设置;Add设置为1,表示仪表的从机地址,Baud设置为4,表示采用ModbusRTU通讯协议,波特率为9600,8个数据位,1个停止位,无校验。

9、连接好485通讯线。因为普通电脑没有专门的485接口,这里我们通过485转USB转换器,来进行电脑与仪表的通讯连接。

10、完成硬件连接和软件的配置之后,通讯准备工作就基本完成,点击电脑端组态王组态界面上的“文件”->”切换的View”之后,主机就以每500ms时间间隔读取仪表的测量值了。由于仪表返回整型数,如果是热电偶、热电阻类非线性测量,分辨率固定为0.1℃,将返回数据除以10即可。如果是线性信号测量,则按仪表dP参数设置,分别除以10(dP=1)、100(dP=2)、1000(dP=3)就可以了。

wKgaomRlytGAVqfPAAAO0kN4Abs692.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RS485
    +关注

    关注

    39

    文章

    1135

    浏览量

    82066
  • MODBUS
    +关注

    关注

    28

    文章

    1757

    浏览量

    76757
  • 通讯协议
    +关注

    关注

    10

    文章

    265

    浏览量

    20309
  • 通讯接口
    +关注

    关注

    2

    文章

    80

    浏览量

    16164
  • RTU
    RTU
    +关注

    关注

    0

    文章

    403

    浏览量

    28596
收藏 人收藏

    评论

    相关推荐

    嫌布线太麻烦,不妨考虑"RS485总线+无线+Modbus RTU协议" ?

    增加了更多的成本。"RS485总线+无线+Modbus RTU协议"既兼容了"RS485总线",又兼容了"无线",还兼容全世界公认
    发表于 02-19 13:41

    请问RS485Modbus RTU协议用在wifi传服务器上适合吗?

    准备用wifi模块,把一些传感器的实时数据上传到服务器,在制定数据通讯协议,我只做过RS485Modbus RTU
    发表于 06-24 04:36

    怎么实现基于RS485接口Modbus协议的PLC与多机通讯的设计?

    怎么实现基于RS485接口Modbus协议的PLC与多机通讯的设计?
    发表于 06-03 06:14

    串行口RS485通讯协议概述

    第九章串行口RS485通讯协议 9.1通讯概述本公司系列变频器向用户提供工业控制中通用的RS485通讯
    发表于 09-09 07:24

    请问MODBUS通讯协议及PLC编程通讯实例有哪些

    请问MODBUS通讯协议及PLC编程通讯实例有哪些?
    发表于 09-29 08:45

    RS485通信与Modbus协议的相关资料分享

    文章目录RS485 通信与 Modbus 协议单片机 RS485 通信接口、控制线、原理图及程序实例
    发表于 11-30 07:31

    MODBUS协议RS485硬件电路两者之间的联系

    MODBUS-RTU协议最常用,比较简单,在32上很容易实现。就目前来说,作者在实际应用中只接触到了这种,所以以下的讲解也是根据MODBUS-RTU协议来说的,下面我会附上介绍及代码供
    发表于 11-30 07:41

    RS485Modbus通信协议让工业自动化更高效

    电路的可靠性和稳定性。   【RS485通讯协议】   实际应用中,RS485接口还需要进行协议
    发表于 05-05 16:25

    rs485通讯协议

    rs485通讯协议是本技术频道的核心内容,介绍了rs485通讯协议原理,
    发表于 08-13 17:21
    <b class='flag-5'>rs485</b><b class='flag-5'>通讯</b><b class='flag-5'>协议</b>

    MODBUS通讯协议RS485介面的PIC单片机通讯程式

    MODBUS通讯协议RS485介面的PIC单片机通讯程式.zip
    发表于 07-12 10:42 64次下载

    modbusrs485的关系_modbusrs485的区别和联系

    RS485是一个物理接口,简单的说是硬件;MODBUS是一种国际标准的通讯协议,用于不同厂商之间的设备交换数据,简单的说是软件。
    发表于 01-03 18:36 11.4w次阅读
    <b class='flag-5'>modbus</b>与<b class='flag-5'>rs485</b>的关系_<b class='flag-5'>modbus</b>与<b class='flag-5'>rs485</b>的区别和联系

    RS485 MODBUS转PROFINET网关配置步骤

    RS485 MODBUS转PROFINET网关配置步骤,该PLC系统使用的是西门子S7-1200 PLC,支持 PROFINET 工业以太网协议;马达保护器提供 RS485 串口,支持
    的头像 发表于 10-15 18:54 2501次阅读
    <b class='flag-5'>RS485</b> <b class='flag-5'>MODBUS</b>转PROFINET网关配置步骤

    RS485MODBUS RTU的区别 如何选择合适的通信技术?

    RS485MODBUS RTU的区别 如何选择合适的通信技术? RS485是一种通信总线标准,而MODBUS
    的头像 发表于 02-01 10:27 8807次阅读

    ProfiNet转RS485/Modbus Rtu协议网关

    网关实现PN转rs485、profinet转RS485Modbus转profinet、RS485转PN、profinet转Modbus
    的头像 发表于 06-13 08:55 573次阅读
    ProfiNet转<b class='flag-5'>RS485</b>/<b class='flag-5'>Modbus</b> <b class='flag-5'>Rtu</b><b class='flag-5'>协议</b>网关

    PN转RS485 Modbus RTU协议网关通讯优势分析

    Modbus RTU协议网关,它更像是一个连接不同世界桥梁,让Profinet的高速和RS485的稳定完美结合,实现数据的高效流转。
    的头像 发表于 06-17 08:46 780次阅读
    PN转<b class='flag-5'>RS485</b> <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b><b class='flag-5'>协议</b>网关<b class='flag-5'>通讯</b>优势分析