ModBusRTU通讯协议与ModBus通讯协议有什么区别.pdf
《ModBusRTU通讯协议与ModBus通讯协议有什么区别.pdf》由会员分享,可在线阅读,更多相关《ModBusRTU通讯协议与ModBus通讯协议有什么区别.pdf(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、辅导员职业技能知识基础知识试题库 1 modbus RTU 常见问题汇总 2013 年 04 月 22 日 10:57 注:本资料由网络搜索,答案仅供参考(持续更新中)点击查看MODBUS RTU产品详情 1、ModBus RTU通讯协议与ModBus通讯协议有什么区别?ModBus协议是应用层报文传输协议(OSI模型第7层),它定义了一个与通信层无关的协议数据单元(PDU),即PDU=功能码+数据域。ModBus协议能够应用在不同类型的总线或网络。对应不同的总线或网络,Modbus协议引入一些附加域映射成应用数据单元(ADU),即ADU=附加域+PDU。目前,Modbus有下列三种通信方式:
2、1.以太网,对应的通信模式是MODBUS TCP。2.异步串行传输(各种介质如有线RS-232-/422/485/;光纤、无线等),对应的通信模式是MODBUS RTU或MODBUS ASCII。3.高速令牌传递网络,对应的通信模式是Modbus PLUS。2、关于 MODBUS RTU 通讯协议的提问?modbus 主要由站地址(一个字节)+功能码(一个字节)+首地址(两个字节)+访问字数(两个字节)+校验码(CRC16 或 LRC两个字节)总共 8 个字节组成。其实 VB 中编程很简单从组建添加 MSComm 组建就行了,难的是校验,3、modbus、rtu、modbus rtu 分别是什
3、么?modbus 协议是工控行业的标准协议,前身为莫迪康所写,现已被施奈德收购 而 modbus 分为两种协议:即串口协议(modbus rtu)和网口协议(modbus tcp)协议,一般的工控机只支持 rs232 或者 RS485 的串口模式,这个时候工控机的协议栈里就只有 modbusRTU 协议,当他从串口接收到数据时,会直接根据报文中的数据进行控制,如果需要用 modbusTCP 协议进行传输,则需要使用带有网口的 PLC 具体的帧格式如下 modbus RTU 地址域 功能码 数据 差错校验 modbus TCP 目的地址 协议 id 长度 单元号 功能码 数据 简单的说 tcp
4、是由 RTU 加工而来的 而 RTU 则是另外一种概念,不包含在 modbus 协议内 是工控行业对监控设备的简称。4、关于 modbus_RTU 协议主机发送的命令的一些问题 01 读保持线圈状态(Read coil status)02 读输入线圈状态(Read input status)03 读保持寄存器(Read holding register)04 读输入寄存器(Read input register)05 写单个线圈(Force single coil)06 写单个寄存器(Preset single register)15 写多个线圈(Force multiple coils)16
5、 写多个寄存器(Preset multiple registers)这些都是什么意思 No.:00000000000000028辅导员职业技能知识基础知识试题库 2 答:01 读取逻辑线圈组状态 02 读取离散量线圈组状态 03 读取一个或多个保持寄存器的二进制值 04 读取一个或多个输入寄存器的二进制值 05 改变逻辑线圈状态 06 改变单个寄存器的二进制值 15 改变多个寄存器的二进制值 16 指定多个操持寄存器的二进制值 5、OPC 转 modbus RTU 方式 我现在有一个 OPC 服务器,里面很多 tag,tag 是 AB 里出来的,怎么将 tag 连到 modbus?Profib
6、us、Fielbus、Modbus、CC-link 等等是各中 PLC 硬件支持的通讯协议,这个是各厂商的硬件属性一样只是现在计算机组态软件都支持很多种协议的 PLC你理解反了 Profibus、Fielbus、Modbus、CC-link 这些协议,是一种通讯协议,一般不需要你去编程,就好象你使用计算机,你不需要编写IP 协议一样,只是要遵循它 遵循的意思就是,你必须按照该厂家所支持的协议在 PLC 或者 DCS 硬件组态的时候按照该通讯协议设置硬件其实这个很简单 这里简单指的是,你学编程,重点是编写执行控制的动作的程序,硬件通讯协议不需要你自己动手写。6、什么是 modbus rtu ma
7、ster?就是选 RTU 模式,因为 MODBUS 分为 ASCII 模式和 RTU 模式,MASER 就是设置为主站,一般为 PLC 端,变频器设为从站,还要注意主站和从站地址的设置。7、Modbus rtu 为什么没有开始和结束标记?由于 Modbus rtu 帧的每个字节是 16 进制数,数值范围在 00FF,若像 Modbus ASCII 那样用 02、03 表示开始和结束标记,则与数值 2、3 发生冲突,无法判断其是标记还是数值,无法数据解包。8、modbus tcp 到 rtu 的转换?请仔细查看帧格式,modbus RTU 地址域 功能码 数据 差错校验 modbus TCP 目
8、的地址 协议 id 长度 单元号 功能码 数据 写一个 TCP 转 RTU 的程序放到设备里做 modbus 网桥即可 9、MODBUS RTU 通讯线被烧?用万用表量一下出来的通讯线,电压不超过 5V 应该没问题,一般不会烧东西,接的时候区分正和负。很多产品 B 是正,量一下看看。10、触摸屏 modbus rtu 怎么设置?一般是通过宏指令自己编程实现,当然也有支持RTU 的,在通讯类型菜单 11、MODBUS RTU 协议中浮点数是如何存储,读到浮点数寄存器的数值如何转换成所需的浮点数?浮点数保存的字节格式如下:地址 +0 +1 +2 +3 内容 SEEE EEEE EMMM MMMM
9、MMMM MMMM MMMM MMMM 辅导员职业技能知识基础知识试题库 3 这里 S 代表符号位,1 是负,0 是正 E 偏移 127 的幂,二进制阶码=(EEEEEEEE)-127。M 24 位的尾数保存在 23 位中,只存储 23 位,最高位固定为 1。此方法用最较少的位数实现了较高的有效位数,提高了精度。零是一个特定值,幂是 0 尾数也是 0。浮点数-12.5 作为一个十六进制数 0 xC1480000 保存在存储区中,这个值如下:地址+0 +1 +2 +3 内容 0 xC1 0 x48 0 x00 0 x00 浮点数和十六进制等效保存值之间的转换相当简单。下面的例子说明上面的值-12
10、.5 如何转换。浮点保存值不是一个直接的格式,要转换为一个浮点数,位必须按上面的浮点数保存格式表 所列的那样分开,例如:地址 +0 +1 +2 +3 格式 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM 二进制 11000001 01001000 00000000 00000000 十六进制 C1 48 00 00 从这个例子可以得到下面的信息:符号位是 1 表示一个负数 幂是二进制 10000010 或十进制 130,130 减去 127 是 3,就是实际的幂。尾数是后面的二进制数10010000000000000000000 在尾数的左边有一个省略的小数点和
11、 1,这个 1 在浮点数的保存中经常省略,加上一个 1 和小数点到尾数的开头,得到尾数值如下:1.10010000000000000000000 接着,根据指数调整尾数.一个负的指数向左移动小数点.一个正的指数向右移动小数点.因为指数是 3,尾数调整如下:1100.10000000000000000000 结果是一个二进制浮点数,小数点左边的二进制数代表所处位置的2 的幂,例如:1100 表示(1*23)+(1*22)+(0*21)+(0*20)=12。小数点的右边也代表所处位置的 2 的幂,只是幂是负的。例如:.100.表示(1*2(-1)+(0*2(-2)+(0*2(-2).=0.5。这些
12、值的和是 12.5。因为设置的符号位表示这数是负的,因此十六进制值 0 xC1480000 表示-12.5。12、RS-485 的设备,遵守 MODBUS-RTU 协议。怎样用的电脑读取信息?用电脑的串口,接个 485 转换器,接到设备的 485 接口,再找个串口软件,根据设备资料上的寄存器地址发送 modbus 报文,modbus报文通过串口软件发送啊,报文格式:01 03 00 00 00 01 84 0A 读寄存器命令。13、vb modbus 给 modScan32 rtu 发送数据应该怎么写?确定两个软件哪个是主,哪个是从。然后再确定通讯协议是 RTU、ASCII 还是 TCP。如果
13、是 TCP,就用 socket 控件。RTUASCII就用 COM 控件。然后给对应的口按照协议收发数并解析就可以了。14、ModBus RTU 通讯协议与 ModBus 通讯协议有什么区别?modbus 协议包括了 MODBUS RTU 辅导员职业技能知识基础知识试题库 4 15、modbus rtu 通讯协议 如何判断超时?设置一个标志量用来表示是否超时;再用一个定时器,定时时长为发送 3.5 个字符的时间(当然为了保险时间可以长一些);在定时器中置超时标志;在串口中断中每收到一个字节时定时器清零;主程序中根据超时标志做相应处理。16、如何理解 MODBUS 协议 RTU 模式中的 1.5
14、 和 3.5 字符间隔?发送两帧数据之间要有一定的时间间隔,以保证接收方 UART 能够区分。这个时间间隔在 MODBUS RTU 模式中要求是 1.5 和 3.5字符间隔,也即是传输 1.5 和 3.5 个字符的时间,它与设置的通信参数有关,计算为:若串口通信参数设置为(注:开始位固定为 1):数据位 8,奇偶校验位 1,停止位 1,波特率 9600bps,则传输一个字符(即 1 个字节)的时间为:(1+8+1+1)/9600=0.00114583s=1.1454583ms 1.5 字符间隔=1.5x1.1454583ms=1.71818745ms 3.5 字符间隔=3.5x1.145458
15、3ms=4.00910405ms 17、MODBUS RTU 测试软件?推荐:modscan32 18、MODBUS RTU 协议,上位机与仪表通信,读写数据都正确,为什么仪表掉电,写入的参数又丢失了?怎么保存?两种可能:如果在仪表上设置参数掉电后都保存不了的话,基本可以确定是仪表问题;有些仪表写入参数后还需要向固定的寄存器写入确认参数,为了保证写入参数真确,需要检查仪表通信部分说明书。MODBUS 结论总结 2012 年 04 月 20 日 10:22 Modbus 协议最初由 Modicon 公司开发出来,现在 Modbus 已经是工业领域全球最流行的协议。支持传统的RS-232、RS-4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ModBusRTU 通讯 协议 ModBus 什么 区别
限制150内