ModBusRTU通讯协议与ModBus通讯协议有什么区别_第1页
ModBusRTU通讯协议与ModBus通讯协议有什么区别_第2页
ModBusRTU通讯协议与ModBus通讯协议有什么区别_第3页
ModBusRTU通讯协议与ModBus通讯协议有什么区别_第4页
ModBusRTU通讯协议与ModBus通讯协议有什么区别_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/常见问题汇总1、通讯协议及通讯协议有什么区别?

协议是应用层报文传输协议(模型第7层),它定义了一个及通信层无关的协议数据单元(),即功能码+数据域。

协议能够应用在不同类型的总线或网络。对应不同的总线或网络,协议引入一些附加域映射成应用数据单元(),即附加域。目前,""有下列三种通信方式:

1.以太网,对应的通信模式是。

2.异步串行传输(各种介质如有线232422/485/;光纤、无线等),对应的通信模式是""或。

3.高速令牌传递网络,对应的通信模式是。

2、关于通讯协议的提问?

主要由站地址(一个字节)+功能码(一个字节)+首地址(两个字节)+访问字数(两个字节)+校验码(16或两个字节)总共8个字节组成。其实中编程很简单从组建添加组建就行了,难的是校验,

3、、、分别是什么?

协议是工控行业的标准协议,前身为莫迪康所写,现已被施奈德收购

而分为两种协议:即串口协议()和网口协议()协议,一般的工控机只支持232或者485的串口模式,这个时候工控机的协议栈里就只有""协议,当他从串口接收到数据时,会直接根据报文中的数据进行控制,如果需要用协议进行传输,则需要使用带有网口的

具体的帧格式如下

地址域功能码数据差错校验

目的地址协议长度单元号功能码数据

简单的说是由加工而来的而则是另外一种概念,不包含在协议内是工控行业对监控设备的简称。

4、关于协议主机发送的命令的一些问题•01读保持线圈状态()•02读输入线圈状态()•03读保持寄存器()•04读输入寄存器()•05写单个线圈()•06写单个寄存器()•15写多个线圈()•16写多个寄存器()这些都是什么意思

答:01读取逻辑线圈组状态02读取离散量线圈组状态03读取一个或多个保持寄存器的二进制值04读取一个或多个输入寄存器的二进制值05改变逻辑线圈状态06改变单个寄存器的二进制值15改变多个寄存器的二进制值16指定多个操持寄存器的二进制值

5、转方式我现在有一个服务器,里面很多,是里出来的,怎么将连到?

、、、等等是各中硬件支持的通讯协议,这个是各厂商的硬件属性一样.只是现在计算机组态软件都支持很多种协议的.你理解反了.

、、、这些协议,是一种通讯协议,一般不需要你去编程,就好象你使用计算机,你不需要编写协议一样,只是要遵循它.

遵循的意思就是,你必须按照该厂家所支持的协议在或者硬件组态的时候按照该通讯协议设置硬件.其实这个很简单.这里简单指的是,你学编程,重点是编写执行控制的动作的程序,硬件通讯协议不需要你自己动手写。

6、什么是?就是选模式,因为分为模式和模式,就是设置为主站,一般为端,变频器设为从站,还要注意主站和从站地址的设置。

7、为什么没有开始和结束标记?

由于帧的每个字节是16进制数,数值范围在00,若像那样用02、03表示开始和结束标记,则及数值2、3发生冲突,无法判断其是标记还是数值,无法数据解包。

8、到的转换?请仔细查看帧格式,

地址域功能码数据差错校验

目的地址协议长度单元号功能码数据写一个转的程序放到设备里做网桥即可

9、通讯线被烧?

用万用表量一下出来的通讯线,电压不超过5V应该没问题,一般不会烧东西,接的时候区分正和负。很多产品B是正,量一下看看。

10、触摸屏怎么设置?

一般是通过宏指令自己编程实现,当然也有支持的,在通讯类型菜单

11、协议中浮点数是如何存储,读到浮点数寄存器的数值如何转换成所需的浮点数?浮点数保存的字节格式如下:地址

+0

+1

+2

+3内容

这里S代表符号位,1是负,0是正E偏移127的幂,二进制阶码=()-127。M24位的尾数保存在23位中,只存储23位,最高位固定为1。此方法用最较少的位数实现了较高的有效位数,提高了精度。零是一个特定值,幂是0尾数也是0。浮点数-12.5作为一个十六进制数01480000保存在存储区中,这个值如下:地址+0

+1

+2

+3内容01

0x48

0x00

0x00浮点数和十六进制等效保存值之间的转换相当简单。下面的例子说明上面的值-12.5如何转换。浮点保存值不是一个直接的格式,要转换为一个浮点数,位必须按上面的浮点数保存格式表所列的那样分开,例如:

地址

+0

+1

+2

+3格式

二进制

11000001

01001000

00000000

十六进制

C1

48

00

00

从这个例子可以得到下面的信息:

符号位是1表示一个负数

幂是二进制10000010或十进制130,130减去127是3,就是实际的幂。

尾数是后面的二进制数1在尾数的左边有一个省略的小数点和1,这个1在浮点数的保存中经常省略,加上一个1和小数点到尾数的开头,得到尾数值如下:

1.1

接着,根据指数调整尾数.一个负的指数向左移动小数点.一个正的指数向右移动小数点.因为指数是3,尾数调整如下:1100.100000000

结果是一个二进制浮点数,小数点左边的二进制数代表所处位置的2的幂,例如:1100表示

(1*2^3)+(1*2^2)+(0*2^1)+(0*2^0)=12。小数点的右边也代表所处位置的2的幂,只是幂是负的。例如:.100...表示(1*2^(-1))+(0*2^(-2))+(0*2^(-2))0.5。这些值的和是12.5。因为设置的符号位表示这数是负的,因此十六进制值01480000表示-12.5。

12、485的设备,遵守协议。怎样用的电脑读取信息?

用电脑的串口,接个485转换器,接到设备的485接口,再找个串口软件,根据设备资料上的寄存器地址发送报文,报文通过串口软件发送啊,报文格式:010300000001840A读寄存器命令。

13、给32发送数据应该怎么写?

确定两个软件哪个是主,哪个是从。然后再确定通讯协议是、还是。如果是,就用控件。\就用控件。然后给对应的口按照协议收发数并解析就可以了。

14、通讯协议及通讯协议有什么区别?协议包括了

15、通讯协议如何判断超时?

设置一个标志量用来表示是否超时;再用一个定时器,定时时长为发送3.5个字符的时间(当然为了保险时间可以长一些);在定时器中置超时标志;在串口中断中每收到一个字节时定时器清零;主程序中根据超时标志做相应处理。

16、如何理解协议模式中的1.5和3.5字符间隔?

发送两帧数据之间要有一定的时间间隔,以保证接收方能够区分。这个时间间隔在""模式中要求是1.5和3.5字符间隔,也即是传输1.5和3.5个字符的时间,它及设置的通信参数有关,计算为:若串口通信参数设置为(注:开始位固定为1):数据位8,奇偶校验位1,停止位1,波特率9600,则传输一个字符(即1个字节)的时间为:(1+8+1+1)/9600=0.001145831.14545831.5字符间隔=1.5x1.14545831.718187453.5字符间隔=3.5x1.14545834.00910405

17、测试软件?推荐:32

18、协议,上位机及仪表通信,读写数据都正确,为什么仪表掉电,写入的参数又丢失了?怎么保存?两种可能:如果在仪表上设置参数掉电后都保存不了的话,基本可以确定是仪表问题;有些仪表写入参数后还需要向固定的寄存器写入确认参数,为了保证写入参数真确,需要检查仪表通信部分说明书。结论总结2012年04月20日10:22

协议最初由公司开发出来,现在已经是工业领域全球最流行的协议。支持传统的232、422、485和以太网设备。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。当在网络上通信时,协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用协议发送给询问方。

协议包括、、等,并没有规定物理层。协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的控制器使用232C实现串行的。的、协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用方式,端发出数据请求消息,端接收到正确消息后就可以

发送数据到端以响应请求;端也可以直接发消息修改端的数据,实现双向读写。

协议需要对数据进行校验,另外,采用主从方式定时收发数据,在实际使用中如果某站点断开后(如故障或关机),端可以诊断出来,而当故障修复后,网络又可自动接通。因此,""协议的可靠性较好。

协议和协议进行的比较:协议开始标记结束标记校验传输效率程序处理:(冒号)低直观,简单,易调试无无高不直观,稍复杂

校验域是一个包含一个8位二进制值的字节。值由传输设备来计算并放到消息帧中,接收设备在接收消息的过程中计算,并将它和接收到消息中域中的值比较,如果两值不等,说明有错误。校验比较简单,它在协议中使用,检测了消息域中除开始的冒号及结束的回车换行号外的内容。它仅仅是把每一个需要传输的数据按字节叠加后取反加1即可。

校验:域是两个字节,包含一16位的二进制值。它由传输设备计算后加入到消息中。接收设备重新计算收到消息的,并及接收到的域中的值比较,如果两值不同,则有误。

1、读可读写数字量寄存器(线圈状态):计算机发送命令:[设备地址][命令号01][起始寄存器地址高8位][低8位][读取的寄存器数高8位][低8位][校验的低8位][校验的高8位]

例:[10][01][00][13][00][25][低][高]

意义如下:<1>设备地址:在一个485总线上可以挂接多个设备,此处的设备地址表示想和哪一个设备通讯。例子中为想和16号(十进制的16是十六进制的10)通讯。

<2>命令号01:读取数字量的命令号固定为01。

<3>起始地址高8位、低8位:表示想读取的开关量的起始地址(起始地址为0)。比如例子中的起始地址为19。

<4>寄存器数高8位、低8位:表示从起始地址开始读多少个开关量。例子中为37个开关量。

<5>校验:是从开头一直校验到此之前。在此协议的最后再作介绍。此处需要注意,校验在命令中的高低字节的顺序和其他的相反。

设备响应:[设备地址]

[命令号01]

[返回的字节个数][数据1][数据2]...[数据n][校验的低8位]

[校验的高8位]

例:[10][01][05][][6B][B2][0E][1B][低][高]

意义如下:

<1>设备地址和命令号和上面的相同。

<2>返回的字节个数:表示数据的字节个数,也就是数据1,2中的n的值。

<3>数据1:由于每一个数据是一个8位的数,所以每一个数据表示8个开关量的值,每一位为0表示对应的开关断开,为1表示闭合。比如例子中,表示20号(索引号为19)开关闭合,21号断开,22闭合,23闭合,24断开,25断开,26闭合,27闭合...如果询问的开关量不是8的整倍数,那么最后一个字节的高位部分无意义,置为0。

<4>校验同上。

2、读只可读数字量寄存器(输入状态):

和读取线圈状态类似,只是第二个字节的命令号不再是1而是2。

3、写数字量(线圈状态):

计算机发送命令:[设备地址]

[命令号05]

[需下置的寄存器地址高8位]

[低8位]

[下置的数据高8位]

[低8位]

[校验的低8位]

[校验的高8位]

例:[10][05][00][][][00][低][高]

意义如下:

<1>设备地址和上面的相同。

<2>命令号:写数字量的命令号固定为05。

<3>需下置的寄存器地址高8位,低8位:表明了需要下置的开关的地址。

<4>下置的数据高8位,低8位:表明需要下置的开关量的状态。例子中为把该开关闭合。注意,此处只可以是[][00]表示闭合[00][00]表示断开,其他数值非法。

<5>注意此命令一条只能下置一个开关量的状态。

设备响应:如果成功把计算机发送的命令原样返回,否则不响应。

4、读可读写模拟量寄存器(保持寄存器):

计算机发送命令:[设备地址]

[命令号03]

[起始寄存器地址高8位]

[低8位]

[读取的寄存器数高8位]

[低8位]

[校验的低8位]

[校验的高8位]

例:[10][03][00][6B][00][03][低][高]

意义如下:

<1>设备地址和上面的相同。

<2>命令号:读模拟量的命令号固定为03。

<3>起始地址高8位、低8位:表示想读取的模拟量的起始地址(起始地址为0)。比如例子中的起始地址为107。

<4>寄存器数高8位、低8位:表示从起始地址开始读多少个模拟量。例子中为3个模拟量。注意,在返回的信息中一个模拟量需要返回两个字节。

设备响应:[设备地址]

[命令号03]

[返回的字节个数][数据1][数据2]...[数据n][校验的低8位]

[校验的高8位]

例:[10][03][06][02][2B][00][00][00][64][低][高]

意义如下:

<1>设备地址和命令号和上面的相同。

<2>返回的字节个数:表示数据的字节个数,也就是数据1,2中的n的值。例子中返回了3个模拟量的数据,因为一个模拟量需要2个字节所以共6个字节。

<3>数据1:其中[数据1][数据2]分别是第1个模拟量的高8位和低8位,[数据3][数据4]是第2个模拟量的高8位和低8位,以此类推。例子中返回的值分别是555,0,100。

<4>校验同上。

5、读只可读模拟量寄存器(输入寄存器):

和读取保存寄存器类似,只是第二个字节的命令号不再是2而是4。

6、写单个模拟量寄存器(保持寄存器):

计算机发送命令:[设备地址]

[命令号06]

[需下置的寄存器地址高8位]

[低8位]

[下置的数据高8位]

[低8位]

[校验的低8位]

[校验的高8位]

例:[10][06][00][01][00][03][低][高]

意义如下:

<1>设备地址和上面的相同。

<2>命令号:写模拟量的命令号固定为06。

<3>需下置的寄存器地址高8位,低8位:表明了需要下置的模拟量寄存器的地址。

<4>下置的数据高8位,低8位:表明需要下置的模拟量数据。比如例子中就把1号寄存器的值设为3。

<5>注意此命令一条只能下置一个模拟量的状态。

设备响应:如果成功把计算机发送的命令原样返回,否则不响应。通讯协议及R485通讯协议的区别?可以通用吗?""

3级

被浏览269次

2013.07.12":;"检举""采纳率:54%

4级

2013.07.13485是接线口是协议。他是建立在""485是接线口的基础上进行通讯的。所以离不开485,485也离不开前半部分说的基本正确,(485是接线口)及(485也离不开)回答错误485不不完全是接线口,它是一种电气标准,包含""机械特性,电气特性等特点,可以找一些通信书籍看看,描述有很多特点;485也离不开,理解也狭隘了,用485通信的规约很多,只是其中比较常用的有一种规约,如103,等全是485通信方式,还有一点不完全在485通信方式,还有方式,有详细介绍,很简单通讯协议通讯格式及模式区别的疑问""0032

3级

被浏览20次

2013.11.21":;"检举资料上都是说:“模式:一个信息中的每8位字节作为2个字符传输的,这种模式的主要优点是允许字符之间的时间间隔长达,也不会出现错误。模式:,信息中的每8位字节分成2个4位16进制的字符,该模式的主要优点是在相同波特率下其传输的字符的密度高于模式,每个信息必须连续传输。“能否各据一个实例。另外,两种模式传输的一个字节的格式:“1起始位,7位数据,,奇/偶校验时1位;无奇偶校验时0位,()1位,带校验1停止位;无校验2止位”总长度超过了一个字节8位的长度,是不是数据位是软件给定,其他是在传输中由硬件根据设定自动产生。""124914603采纳率:51%

4级

2013.11.21回答第一个问题:协议的起始和结束有固定字符表示,比如收到":"就认为报文开始,收到回车就认为报文结束。其报文均为码可见字符,因此较16进制字节

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论