![ModBusRTU通讯协议与ModBus通讯协议有什么区别_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/26/016a40c6-10bc-4066-be1e-11bf0ec67bd4/016a40c6-10bc-4066-be1e-11bf0ec67bd41.gif)
![ModBusRTU通讯协议与ModBus通讯协议有什么区别_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/26/016a40c6-10bc-4066-be1e-11bf0ec67bd4/016a40c6-10bc-4066-be1e-11bf0ec67bd42.gif)
![ModBusRTU通讯协议与ModBus通讯协议有什么区别_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/26/016a40c6-10bc-4066-be1e-11bf0ec67bd4/016a40c6-10bc-4066-be1e-11bf0ec67bd43.gif)
![ModBusRTU通讯协议与ModBus通讯协议有什么区别_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/26/016a40c6-10bc-4066-be1e-11bf0ec67bd4/016a40c6-10bc-4066-be1e-11bf0ec67bd44.gif)
![ModBusRTU通讯协议与ModBus通讯协议有什么区别_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/26/016a40c6-10bc-4066-be1e-11bf0ec67bd4/016a40c6-10bc-4066-be1e-11bf0ec67bd45.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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有下列三种通信方式:1 .以太网,对应的通信模式是 MODB
2、US TCP 。2 .异步串行传输(各种介质如有线 RS-232-/422/485/;光纤、无线等),对应的通信模式是 MO DBUS RT U 或 MODBUS ASCII 。3 .高速令牌传递网络,对应的通信模式是Modbus PLUS 。2、关于MODBUS RTU 通讯协议的提问?modbus主要由站地址(一个字节)+功能码(一个字节)+首地址(两个字节)+访问字数(两个字节)+校验码(CRC16或LRC两个字节)总共 8个字节组成。其实 VB中编程很简单从组建添加 MSComm组 建就行了,难的是校验,3、 modbus、 rtu、 modbus rtu 分另Ll是什么?modbus
3、协议是工控行业的标准协议,前身为莫迪康所写,现已被施奈德收购而modbus分为两种协议:即串口协议 (modbus rtu)和网口协议(modbus tcp)协议,一般的工控机只支持 rs232或者RS485的串口模式,这个时候工控机的协议栈里就只有modbusRTU协议,当他从串口接收到数据时,会直接根据报文中的数据进行控制,如果需要用modbusTCP协议进行传输,则需要使用带有网口的PLC具体的帧格式如下modbus RTU地址域功能码数据差错校验modbus TCP目的地址协议id长度单元号功能码数据简单的说tcp是由RTU加工而来的而RTU则是另外一种概念,不包含在modbus协议内
4、是工控行业对监控设备的简称。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 写多个寄存器(Preset multiple register
5、s)这些都是什么意思答:01读取逻辑线圈组状态02读取离散量线圈组状态03读取一个或多个保持寄存器的二进制值04读取一个或多个输入寄存器的二进制值05改变逻辑线圈状态06改变单个寄存器的二进制值15改变多个寄存器的二进制值16指定多个操持寄存器的二进制值5、OPC转modbus RTU方式我现在有一个 OPC服务器,里面很多tag, tag是AB里出来的,怎么将 tag 连至U modbus ?Profibus、Fielbus、Modbus、CC-link等等是各中PLC硬件支持的通讯协议,这个是各厂商的硬件属性 一样.只是现在计算机组态软件都支持很多种协议的PLC.你理解反了.Profibu
6、s、Fielbus、Modbus、CC-link这些协议,是一种通讯协议,一般不需要你去编程,就好象你使 用计算机,你不需要编写IP协议一样,只是要遵循它.遵循的意思就是,你必须按照该厂家所支持的协议在PLC或者DCS硬件组态的时候按照该通讯协议设置硬件.其实这个很简单.这里简单指的是,你学编程,重点是编写执行控制的动作的程序,硬件通讯协议不需要你自己动手写。6、什么是 modbus rtu master ?就是选RTU模式,因为 MODBUS分为ASCII模式和RTU模式,MASER就是设置为主站,一般为 PLC 端,变频器设为从站,还要注意主站和从站地址的设置。7、Modbus rtu 为
7、什么没有开始和结束标记?由于Modbus rtu帧的每个字节是16进制数,数值范围在 00FF,若像Modbus ASCII那样用02、03表示 开始和结束标记,则与数值 2、3发生冲突,无法判断其是标记还是数值,无法数据解包。8、modbus tcp 至U rtu 的转换?请仔细查看帧格式,modbus RTU地址域功能码数据差错校验modbus TCP目的地址协议id长度单元号功能码数据 写一个TCP转RTU的程序放到设备里做 modbus网桥即可9、MODBUS RTU通讯线被烧?用万用表量一下出来的通讯线,电压不超过5V应该没问题,一般不会烧东西,接的时候区分正和负。很多产品B是正,量
8、一下看看。10、触摸屏modbus rtu怎么设置?一般是通过宏指令自己编程实现,当然也有支持RTU的,在通讯类型菜单11、MODBUS RTU协议中浮点数是如何存储,读到浮点数寄存器的数值如何转换成所需的浮点数?浮点数保存的字节格式如下:地址 +0+1+2+3内容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM这里S代表符号位,1是负,0是正E偏移127的第二进制阶码 =(EEEEEEEE)-127。M 24位的尾数保存在23位中,只存储23位,最高位固定为1。此方法用最较少的位数实现了较高的有效位数,提高了精度。零是一个特定值,嘉是 0尾数也是0。浮点数-1
9、2.5作为一个十六进制数 0XC1480000保存在存储区中,这个值如下:地址 +0+1+2+3内容 0xC1 0x480x000x00浮点数和十六进制等效保存值之间的转换相当简单。下面的例子说明上面的值-12.5如何转换。浮点保存值不是一个直接的格式,要转换为一个浮点数,位必须按上面的浮点数保存格式表所列的那样分开,例如:地址 +0格式 SEEE EEEE+1+2EMMM MMMM+3MMMM MMMMMMMM MMMM.00000000000000000000二进制 1100000101001000十六进制 C148从这个例子可以得到下面的信息:符号位是1表示一个负数嘉是二进制100000
10、10或十进制130, 130减去127是3,就是实际的嘉。尾数是后面的二进制数 10010000000000000000000在尾数的左边有一个省略的小数点和1,这个1在浮点数的保存中经常省略,加上一个1和小数点到尾数的开头,得到尾数值如下:1.10010000000000000000000接着,根据指数调整尾数.一个负的指数向左移动小数点.一个正的指数向右移动小数点.因为指数是3,尾数调 整如下:1100.10000000000000000000结果是一个二进制浮点数,小数点左边的二进制数代表所处位置的2的嘉,例如:1100表示(1*2A3)+(1*2A2)+(0*2A1)+(0*2A0)=
11、12。小数点的右边也代表所处位置的2的嘉,只是嘉是负的。例如:.100表示(1*2A(-1)+(0*2A(-2)+(0*2A(-2)=0.5。这些值的和是12.5。因为设置的符号位表示这数是负的,因此十六进制值0xC1480000表示-12.5。12、RS-485的设备,遵守 MODBUS-RTU 协议。怎样用的电脑读取信息?用电脑的串口,接个 485转换器,接到设备的485接口,再找个串口软件,根据设备资料上的寄存器地址发送modbus报文,modbus报文通过串口软件发送啊,报文格式:01 03 00 00 00 01 84 0A读寄存器命令。13、vb modbus给modScan32
12、rtu 发送数据应该怎么写?确定两个软件哪个是主,哪个是从。然后再确定通讯协议是RTU、ASCII还是TCP。如果是TCP,就用socket控件。RTUASCII就用COM控件。然后给对应的口按照协议收发数并解析就可以了。14、ModBus RTU 通讯协议与 ModBus通讯协议有什么区别?modbus 协议包括了 MODBUS RTU15、modbus rtu通讯协议 如何判断超时?设置一个标志量用来表示是否超时;再用一个定时器,定时时长为发送3.5个字符的时间(当然为了保险时 间可以长一些);在定时器中置超时标志;在串口中断中每收到一个字节时定时器清零;主程序中根据超时标志做相应处理。1
13、6、如何理解MODBUS协议RTU模式中的1.5和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.1454583ms1.5 字符间隔=1.5x1.1454583ms=1.71818745ms3.5 字符间隔=3.5x1.14
14、54583ms=4.00910405ms17、MODBUS RTU 测试软件?推荐:modscan3218、MODBUS RTU协议,上位机与仪表通信,读写数据都正确,为什么仪表掉电,写入的参数又丢失 了?怎么保存?两种可能:如果在仪表上设置参数掉电后都保存不了的话,基本可以确定是仪表问题;有些仪表写入参数后还需要向固定的寄存器写入确认参数,为了保证写入参数真确,需要检查仪表通信部 分说明书。MODBUS结论总结2012 年 04 月 20 日 10:22Modbus协议最初由 Modicon公司开发出来,现在 Modbus已经是工业领域全球最流行的 协议。支持传统的 RS-232、RS-42
15、2、RS-485和以太网设备。有了它,不同厂商生产的控制 设备可以连成工业网络,进行集中监控。当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的 Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、 命令和就答的方式,数据通讯采用Maser/Sla
16、ve方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。Modbus协议需要对数据进行校验,另外, Modbus采用主从方式定时收发数据,在实际 使用中如果某 Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复 后,网络又可自动接通。因此, Modbus协议白可靠性较好。ASCII协议和RTU协议进行的比较:协议开始标记结束标记校验传输效率程序处理ASCII:(冒号)CR,LFLRC低直观,简单,易调试RTU无无CRC高不直观,稍复杂LRC校验
17、:LRC域是一个包含一个 8位二进制值的字节。LRC值由传输设备来计算并放 到消息帧中,接收设备在接收消息的过程中计算LRC,并将它和接收到消息中LRC域中的值比较,如果两值不等,说明有错误。 LRC校验比较简单,它在 ASCII协议中使用,检测 了消息域中除开始的冒号及结束的回车换行号外的内容。它仅仅是把每一个需要传输的数据按字节叠加后取反加 1即可。CRC校验:CRC域是两个字节,包含一 16位的二进制值。它由传输设备计算后加入到 消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。1、读可读写数字量寄存器(线圈状态):计算机发送命令:设备地址命
18、令号01起始寄存器地址高 8位低8位读取的寄存器 数高8位低8位CRC校验的低8位CRC校验的高8位 例:100100130025CRC 低CRC 高意义如下:< 1>设备地址:在一个 485总线上可以挂接多个设备,此处的设备地址表示想和哪一个设备 通讯。例子中为想和 16号(十进制的16是十六进制的10)通讯。< 2>命令号01:读取数字量的命令号固定为01。< 3>起始地址高8位、低8位:表示想读取的开关量的起始地址(起始地址为0)。比如例子中 的起始地址为19。< 4>寄存器数高8位、低8位:表示从起始地址开始读多少个开关量。例子中为 37
19、个开关 量。< 5>CRC校验:是从开头一直校验到此之前。在此协议的最后再作介绍。此处需要注意,CRC 校验在命令中的高低字节的顺序和其他的相反。设备响应:设备地址命令号01返回的字节个数数据1数据2.数据nCRC校验的 低8位CRC校验的高8位 例:100105CD6BB20E1BCRC低CRC 高意义如下:< 1>设备地址和命令号和上面的相同。<2>返回的字节个数:表示数据的字节个数,也就是数据1, 2n中的n的值。;.<3>数据1n:由于每一个数据是一个 8位的数,所以每一个数据表示8个开关量的值,每一位为0表示对应的开关断开,为 1表示闭
20、合。比如例子中,表示 20号(索引号为19)开关 闭合,21号断开,22闭合,23闭合,24断开,25断开,26闭合,27闭合如果询问的开 关量不是8的整倍数,那么最后一个字节的高位部分无意义,置为 0。<4>CRC校验同上。2、读只可读数字量寄存器(输入状态):和读取线圈状态类似,只是第二个字节的命令号不再是1而是2。3、写数字量(线圈状态):计算机发送命令:设备地址命令号05需下置的寄存器地址高8位低8位下置的数据高8位低8位CRC校验的低8位CRC校验的高8位例:100500ACFF00CRC低CRC 高意义如下:<1>设备地址和上面的相同。<2>命令
21、号:写数字量的命令号固定为05。<3>需下置的寄存器地址高 8位,低8位:表明了需要下置的开关的地址。<4>下置的数据高8位,低8位:表明需要下置的开关量的状态。例子中为把该开关闭合。注意,此处只可以是FF00表示闭合0000表示断开,其他数值非法。<5>注意此命令一条只能下置一个开关量的状态。设备响应:如果成功把计算机发送的命令原样返回,否则不响应。4、读可读写模拟量寄存器(保持寄存器):计算机发送命令:设备地址命令号03起始寄存器地址高 8位低8位读取的寄存器 数高8位低8位CRC校验的低8位CRC校验的高8位例:1003006B0003CRC低CRC
22、高意义如下:<1>设备地址和上面的相同。<2>命令号:读模拟量的命令号固定为03。<3>起始地址高8位、低8位:表示想读取的模拟量的起始地址(起始地址为0)。比如例子中的起始地址为107。<4>寄存器数高8位、低8位:表示从起始地址开始读多少个模拟量。例子中为3个模拟量。注意,在返回的信息中一个模拟量需要返回两个字节。设备响应:设备地址命令号03返回的字节个数数据1数据2.数据nCRC校验的 低8位CRC校验的高8位例:100306022B00000064CRC低CRC 高意义如下:<1>设备地址和命令号和上面的相同。<2>
23、;返回的字节个数:表示数据的字节个数,也就是数据1, 2.n中的n的值。例子中返回了3个模拟量的数据,因为一个模拟量需要2个字节所以共6个字节。<3>数据1n:其中数据1数据2分别是第1个模拟量的高8位和低8位,数据3数据 4是第2个模拟量的高8位和低8位,以此类推。例子中返回的值分别是555, 0, 100。<4>CRC校验同上。5、读只可读模拟量寄存器(输入寄存器):和读取保存寄存器类似,只是第二个字节的命令号不再是2而是4。6、写单个模拟量寄存器(保持寄存器):计算机发送命令:设备地址命令号06需下置的寄存器地址高 8位低8位下置的数据高8位低8位CRC校验的低8
24、位CRC校验的高8位例:100600010003CRC 低CRC 高意义如下:<1>设备地址和上面的相同。<2>命令号:写模拟量的命令号固定为06。<3>需下置的寄存器地址高 8位,低8位:表明了需要下置的模拟量寄存器的地址。<4>下置的数据高8位,低8位:表明需要下置的模拟量数据。比如例子中就把1号寄存器的值设为3。<5>注意此命令一条只能下置一个模拟量的状态。设备响应:如果成功把计算机发送的命令原样返回,否则不响应。modbus通讯协议与R485通讯协议的区别?可以通用吗?strura 3 级 被浏览 269 次 2013.07.
25、12检举LongTech采纳率:54% 4 级 2013.07.13RS485是接线口 modbus是协议。他是建立在 RS485是接线口的基础上进行通讯的。所以modbus离不开485, 485也离不开 MODBUS 前半部分说的基本正确,(RS485是接线口)与( 485也离不开MODBUS)回答错误 RS485不不完全是接线口,它是一种电气标准, 包含机械特性,电气特性等特点,可以找一些通信书籍看看,描述有很多特点;485也离不开MODBUS ,理解也狭隘了,用485通信的规约很多,modbus只是其中比较常用的有一 种规约,如IEC103 , CDT等全是RS485通信方式,还有一点
26、modbus不完全在 RS485通信 方式,还有TCP方式,modbus plus有详细介绍,很简单Modbus通讯协议 通讯格式及模式区别的疑问 lnn0032 3 级 被浏览 20 次 2013.11.21 检举资料上都是说:“ASCII模式:一个信息中的每 8位字节作为2个ASCII字符传输的,这 种模式的主要优点是允许字符之间的时间间隔长达IS,也不会出现错误。RTU模式:,信息中的每8位字节分成2个4位16进制的字符,该模式的主要优点是在相同波特率下其传 输的字符的密度高于 ASCII模式,每个信息必须连续传输。“能否各据一个实例。另外,两种模式传输的一个字节的格式:“起始位,7位数
27、据,奇/偶校验时1位;无奇偶校验时0位,(LRC) 1位,带校验1停止位;无校验2止位”总长度超过了一个字节 8位的 长度,是不是数据位是软件给定,其他是在传输中由硬件根据设定自动产生。QQ124914603采纳率:51% 4 级 2013.11.21回答第一个问题:ASCII协议的起始和结束有固定字符表示,比如收到":"就认为报文开始,收到回车就认为报文结束。其报文均为 ASCII码可见字符,因此较 16进制字节使用效率较低。RTU协议使用数据传输的间隔表示数据的起始和结束,报文前有大于3.5个字节的空闲那么认为报文开始,报文后有3.5以上个字节的间隔就认为报文结束。第二
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度数据中心运维服务劳务承包合同
- 2025年度国际知识产权交易支付条款合同
- 2025年度建筑施工单位管材环保认证销售合同
- 2025年度建筑工地临时设施搭建与拆除劳务服务合同集
- 2025年度新型环保材料购销合同绿色创新
- 2025年度市政道路土方工程合同书标准版
- 2025年度会议费预算编制与监控服务合同
- 2025年合同能源管理节能改造工程合作协议
- 2025年度古建筑修复与设计合同范本
- 2025年度卫星遥感数据获取与处理测绘合同
- 华为携手深圳国际会展中心创建世界一流展馆
- 2023版思想道德与法治专题2 领悟人生真谛 把握人生方向 第3讲 创造有意义的人生
- 全过程工程咨询服务技术方案
- 小报:人工智能科技科学小报手抄报电子小报word小报
- GB/T 41509-2022绿色制造干式切削工艺性能评价规范
- 企业生产现场6S管理知识培训课件
- 五年级下册数学课件 第10课时 练习课 苏教版(共11张PPT)
- 三年级道德与法治下册我是独特的
- 土木工程毕业设计(论文)-五层宿舍楼建筑结构设计
- 青年卒中 幻灯
- 典型倒闸操作票
评论
0/150
提交评论