Modbus RTU通信应用

一、功能概述

1.1 概述

        Modbus串行通信协议是Modicon公司在1970年开发的。

        Modbus串行通信协议有Modbus ASCII和Modbus RTU两种模式,Modbus RTU协议通信效率较高,应用更加广泛。

        Modbus RTU协议是基于RS232和RS485串行通信的一种协议,数据通信采用主从方式进行传送,主站发出具有从站地址的数据报文,从站接收到报文后发送相应报文到主站进行应答。

        Modbus RTU协议网络上只能存在一个主站,主站在Modbus RTU网络上没有地址。每次从站必须有唯一的地址,从站地址为0-247,其中0为广播地址。

1.2 报文结构

        Modbus RTU协议报文结构:

        一个报文就是一帧数据,一个数据帧就一个报文: 指的是一串完整的指令数据,就像上面的一串数据。(CRC校验L和CRC校验H属于错误校验码,占2个字节)

        报文举例:

从站地址码功能码数据地址数据区错误校验码
0106000100179804

        这一串数据的作用是把数据H0017(十进制数为23)写入01号从站的地址H0001中。

1.3 功能码及数据地址 

        Modbus 设备之间的数据交换是通过功能码实现的,功能码有按位操作的,也有按字操作的。

        在S7-1200 PLC的Modbus RTU协议通信中,不同的Modbus RTU协议数据地址区对应不同的S7-1200 PLC数据区。

功能码描述/字操作Modbus数据地址S7-1200PLC数据地址区
01读取输出位00 001-09 999Q0.0-Q1023.7
02读取输入位10 001-19 999I0.0-I1023.7
03读取保持寄存器40 001-49 999DB数据块、M位存储区
04读取输入字30 001-39 999IW0-IW1022
05写一个输出位00 001-09 999Q0.0-Q1023.7
06写一个保持寄存器40 001-49 999DB数据块、M位存储区
15写多个输出位00 001-09 999Q0.0-Q1023.7
16写多个保持寄存器40 001-49 999DB数据块、M位存储区

二、指令说明 

        在“指令”窗格中依次选择“通信”→“通信处理器”→“MODBUS(RTU)”选项,出现MODBUS RTU指令列表。

         Modbus RTU指令主要包括3个指令:“Modbus_Comm_Load”(通信参数装载)指令、“Modbus_Master”(主站通信)指令和“Modbus_Slave”(从站通信)指令。

        早期版本的Modbus RTU指令( MODBUS (V2.2))仅可通过CM1241通信模块或CB1241通信板进行Modbus RTU通信。

        新版本的 Modbus RTU指令(MODBUS(RTU) V3.0)扩展了Modbus RTU的功能,该指令除了支持CM1241通信模块、CB1241通信板,还支持 PROFINET 或 PROFIBUS 分布式 I/O 机架上的PTP通信模块实现Modbus RTU通信。

2.1 Modbus_Comm_Load 指令

        该指令用于组态RS232和RS485通信模块端口的通信参数,以便进行Modbus RTU协议通信。每个Modbus RTU通信的端口,都必须执行一次“Modbus_Comm_Load”指令来组态。各引脚含义如下:

         ①在进行Modbus RTU通信前,必须执行该指令组态模块端口通信,然后才能使用通信指令进行Modbus RTU通信。在启动OB中调用该指令或者在OB1中使用“FirstScan”调用执行一次。

        ②当“Modbus_Master”(主站通信)和“Modbus_Slave”(从站通信)指令被拖拽到用户程序时,将为其分配背景数据块,“Modbus_Comm_Load”指令的MB_DB参数将引用该背景数据块。

2.2 Modbus_Master 指令

        “Modbus_Master”指令可通过由“Modbus_Comm_Load”指令组态的端口作为Modbus RTU主站进行通信。

         ①同一串行通信接口只能作为Modbus RTU主站或从站。

        ②当同一串行通信接口使用多个“Modbus_Master”指令时,“Modbus_Master”指令必须使用同一个背景数据块,用户程序必须使用轮询方式执行指令。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值