200的模拟modbus通讯时,用串口接收到得数据室什么

200做主站和模拟的模拟从站通讯,显示commucation traffic时会显示一串数据;关掉从站开串口调试工具,也会接收到得数据,不知道是什么数据?不是我对寄存器写的数据

问题补充:

开串口调试软件时,接收到的
一直是这样的数据01 03 00 00 00 08 44 0C

最佳答案

01 03 00 00 00 08 44 0C
就是modbus的报文


01- 地址
03-功能码(读取保持寄存器)
00-寄存器高位地址 (0 )
00-寄存器低位地址 (0 )
00-寄存器的数量的高位(0)
08-寄存器的数量的低位(8个数据)
44-数据校验高位
0C-数据校验低位

modbus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。下表1是modbus的功能码定义。 
表1 modbus功能码 
功能码 名称 作用
01 读取线圈状态 取得一组逻辑线圈的当前状态(ON/OFF)
02 读取输入状态 取得一组开关输入的当前状态(ON/OFF)
03 读取保持寄存器 在一个或多个保持寄存器中取得当前的二进制值
04 读取输入寄存器 在一个或多个输入寄存器中取得当前的二进制值
05 强置单线圈 强置一个逻辑线圈的通断状态
06 预置单寄存器 把具体二进值装入一个保持寄存器
07 读取异常状态 取得8个内部线圈的通断状态,这8个线圈的地址由控制器决定,用户逻辑可以将这些线圈定义,以说明从机状态,短报文适宜于迅速读取状态
08 回送诊断校验 把诊断校验报文送从机,以对通信处理进行评鉴
09 编程(只用于484) 使主机模拟编程器作用,修改PC从机逻辑
10 控询(只用于484) 可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9的报文发送后,本功能码才发送
11 读取事件计数 可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时
12 读取通信事件记录 可是主机检索每台从机的modbus事务处理通信事件记录。如果某项事务处理完成,记录会给出有关错误
13 编程(184/384 484 584) 可使主机模拟编程器功能修改PC从机逻辑
14 探询(184/384 484 584) 可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作,仅在含有功能13的报文发送后,本功能码才得发送
15 强置多线圈 强置一串连续逻辑线圈的通断
16 预置多寄存器 把具体的二进制值装入一串连续的保持寄存器
17 报告从机标识 可使主机判断编址从机的类型及该从机运行指示灯的状态
18 (884和MICRO 84) 可使主机模拟编程功能,修改PC状态逻辑
19 重置通信链路 发生非可修改错误后,是从机复位于已知状态,可重置顺序字节
20 读取通用参数(584L) 显示扩展存储器文件中的数据信息
21 写入通用参数(584L) 把通用参数写入扩展存储文件,或修改之
22~64 保留作扩展功能备用  
65~72 保留以备用户功能所用 留作用户功能的扩展编码
73~119 非法功能  
120~127 保留 留作内部作用
128~255 保留 用于异常应答
modbus网络只是一个主机,所有通信都由他发出。网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。表2是modbus各功能码对应的数据类型。 
表2 modbus功能码与数据类型对应表 
代码 功能 数据类型
01 读 位
02 读 位
03 读 整型、字符型、状态字、浮点型
04 读 整型、状态字、浮点型
05 写 位
06 写 整型、字符型、状态字、浮点型
08 N/A 重复“回路反馈”信息
15 写 位
16 写 整型、字符型、状态字、浮点型
17 读 字符型
(1)modbus的传输方式 
 在modbus系统中有2种传输模式可选择。这2种传输模式与从机PC通信的能力是同等的。选择时应视所用modbus主机而定,每个modbus系统只能使用一种模式,不允许2种模式混用。一种模式是ASCII(美国信息交换码),另一种模式是RTU(远程终端设备)这两种模式的定义见表3 
表3 ASCII和RTU传输模式的特性 
特性   ASCII(7位) RTU(8位)
编码系统   十六进制(使用ASCII可打印字符:0~9,A~F) 二进制
每一个字符的位数  开始位 1位 1位
 数据位(最低有效位第一位) 7位 8位
 奇偶校验(任选) 1位(此位用于奇偶校验,无校应则无该位) 1位(此位用于奇偶校验,无校应则无该位)
 停止位 1或2位 1或2位
 错误校验 LRC(即纵向冗余校验) CRC(即循环冗余校验)
ASCII可打印字符便于故障检测,而且对于用高级语言(如Fortan)编程的主计算机及主PC很适宜。RTU则适用于机器语言编程的计算机和PC主机。 
用RTU模式传输的数据是8位二进制字符。如欲转换为ASCII模式,则每个RTU字符首先应分为高位和低位两部分,这两部分各含4位,然后转换成十六进制等量值。用以构成报文的ASCII字符都是十六进制字符。ASCII模式使用的字符虽是RTU模式的两倍,但ASCII数据的译玛和处理更为容易一些,此外,用RTU模式时报文字符必须以连续数据流的形式传送,用ASCII模式,字符之间可产生长达1s的间隔,以适应速度较快的机器。 
表4给出了以RTU方式读取整数据的例子 
以RTU方式读取整数据的例子 
主机请求
地址 功能码 第一个寄存器的高位地址 第一个寄存器的低位地址 寄存器的数量的高位 寄存器的数量的底位 错误校验
01 03 00 38 00 01 XX
从机应答
地址 功能码 字节数 数据高字节 数据低字节 错误校验
01 03 2 41 24 XX
十六进制数4124表示的十进制整数为16676,错误校验值要根据传输方式而定。

表5给出了以RTU方式写数据的例子 
以RTU方式写数据的例子 

提问者对于答案的评价:
看起来很专业

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc320766.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日
下一篇 2020年11月1日

相关推荐

  • s7-200模拟量处理

    现在要用s7-214作一个系统,加了一个231-0hc22模拟量扩展模块,所用信号为4-20mA,对应量程为0-800,请问在程序中如何处理。谢谢! 最佳答案 转载 阿鸣…

    SIMATIC S7-200 2020年11月1日
  • S7-200 CPU224电源

    把226的程序提出来 再把输入和输出修改了一下放到224里面 上电运行了大概一小时 电源板坏了 请问电源板坏和程序有关系吗? 问题补充:把2…

    SIMATIC S7-200 2020年11月1日
  • PPI-RS485电缆

    PPI-RS485电缆在XP系统里面连接PLC S7-200 CPU通信正常,为什么用在win7 64位系统里面通信连不上? 问题补充:我从官网下载了…

    SIMATIC S7-200 2021年7月5日
  • S7200 EM277通讯问题

    例如10个CPU226+10个EM277+CP5611通过opc方式,通讯线用紫色电缆,组态软件用组态王,电脑做主站,是否可行 效果怎样? 最佳答案 参考最佳答案:htt…

    SIMATIC S7-200 2020年11月1日
  • S7-200短信发送问题

    现在利用这个小程序通过短信模块发送短信,中断自加一执行了但是收不到手机短信 问题补充:请问 可能的原因 图片说明:       &…

    2017年11月16日
  • 触摸屏时间和plc时间同步

    tp277-6触摸屏和s7-200 224xp相连,触摸屏显示时间可以通过read_rtc同步显示,可是报警记录的时间是触摸屏自身系统的时间,不是plc的时间,这个怎么办…

    SIMATIC S7-200 2021年7月5日
  • S7-200程序注解拷贝

    怎样把西门子S7-200软件中的注解复制到另外一个程序中 最佳答案 选择 注释部分 复制 粘贴  提问者对于答案的评价:ok

    SIMATIC S7-200 2021年7月4日
  • em222和em223 是怎样模块

    em222和em223  是怎样模块 两者的作用是什么!用途是什么? 最佳答案 1.em222和em223  两者的作用是什么?&…

    SIMATIC S7-200 2021年7月4日
  • MCGS与S7-200

    我编写了一个采集温度的程序,同时程序中有点控之类的问题描述:1、在触摸上可以执行点控之类的控制,但是不能读取温度,读取温度的地址和数据类型都是正确的但是就是显示不了2、重新单独做一…

    SIMATIC S7-200 2021年7月5日
  • s7-200PLC采用MODBUS通信问题

    s7-200PLC采用MODBUS通信读取电子称重量信号,通过触摸屏显示,编写好程序下载后能正常工作。但是每次断电后,就无法读取数据,仪表通信灯也不亮,重新下载程序又能正常工作,而…

    2021年7月5日