游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

大神讲解MODBUS标准协议,赶紧收藏!

  一、什么是MODBUS?
  1。基本概念
  MODBUS是MODICON公司(现为施耐德电气公司的一个品牌)最先倡导的一种软的通讯规约,经过大多数公司的实际应用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规约进行数据通讯或传输,不同的系统就可以通讯。目前,在RS232RS485通讯过程中,更是广泛采用这种规约。
  常用的MODBUS通讯规约有两种,一种是MODBUSASCII,一种是MODBUSRTU。一般来说,通讯数据量少而且主要是文本的通讯则采用MODBUSASCII规约,通讯数据数据量大而且是二进制数值时,多采用MODBUSRTU规约。
  在实际的应用过程中,为了解决某一个特殊问题,人们喜欢自己修改MODBUS规约来满足自己的需要(事实上,人们经常使用自己定义的规约来通讯,这样能解决问题,但不太规范)。更为普通的用法是,少量修改规约,但将规约格式附在软件说明书一起,或直接放在帮助中,这样就方便了用户的通讯。
  2。MODBUS协议简述
  ACRXXXE系列仪表使用的是MODBUSRTU通讯协议,MODBUS协议详细定义了校验码、数据序列等,这些都是特定数据交换的必要内容。MODBUS协议在一根通讯线上使用主从应答式连接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。首先,主计算机的信号寻址到一台唯一的终端设备(从机),然后,终端设备发出的应答信号以相反的方向传输给主机。
  MODBUS协议只允许在主机(PC,PLC等)和终端设备之间通讯,而不允许独立的终端设备之间的数据交换,这样各终端设备不会在它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。
  3。查询回应周期
  查询
  查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码03是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。
  回应
  如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据:如寄存器值或状态。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。
  4。传输方式:
  传输方式是指一个数据帧内一系列独立的数据结构以及用于传输数据的有限规则,下面定义了与MODBUS协议RTU方式相兼容的传输方式。
  每个字节的位:
  1个起始位
  8个数据位,最小的有效位先发送
  无奇偶校验位
  1个停止位
  错误检测(Errorchecking):CRC(循环冗余校验)
  5。协议
  当数据帧到达终端设备时,它通过一个简单的端口进入被寻址到的设备,该设备去掉数据帧的信封(数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后,它将自己生成的数据加入到取得的信封中,把数据帧返回给发送者。返回的响应数据中包含了以下内容:终端从机地址(Address)、被执行了的命令(Function)、执行命令生成的被请求数据(Data)和一个校验码(Check)。发生任何错误都不会有成功的响应,或者返回一个错误指示帧。
  6。数据帧格式
  Address
  Function
  Data
  Check
  8Bits
  8Bits
  Nx8Bits
  16Bits
  7。地址(Address)域
  地址域在帧的开始部分,由一个字节(8位二进制码)组成,十进制为0255,在我们的系统中只使用1247,其它地址保留。这些位标明了用户指定的终端设备的地址,该设备将接收来自与之相连的主机数据。每个终端设备的地址必须是唯一的,仅仅被寻址到的终端会响应包含了该地址的查询。当终端发送回一个响应,响应中的从机地址数据便告诉了主机哪台终端正与之进行通信。
  8。功能(Function)域
  功能域代码告诉了被寻址到的终端执行何种功能。下表列出了该系列仪表用到的功能码,以及它们的意义和功能。
  代码
  意义
  行为
  03hr读数据寄存器
  获得一个或多个寄存器的当前二进制值
  16hr预置多寄存器
  设定二进制值到一系列多寄存器中(不对ACRXXXE开放)
  9。数据(Data)域
  数据域包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。这些数据的内容可能是数值、参考地址或者设置值。例如:功能域码告诉终端读取一个寄存器,数据域则需要指明从哪个寄存器开始及读取多少个数据,内嵌的地址和数据依照类型和从机之间的不同内容而有所不同。
  10。错误校验(Check)域
  该域允许主机和终端检查传输过程中的错误。有时,由于电噪声和其它干扰,一组数据在从一个设备传输到另一个设备时在线路上可能会发生一些改变,出错校验能够保证主机或者终端不去响应那些传输过程中发生了改变的数据,这就提高了系统的安全性和效率,错误校验使用了16位循环冗余的方法(CRC16)。
  11。错误检测的方法
  错误校验(CRC)域占用两个字节,包含了一个16位的二进制值。CRC值由传输设备计算出来,然后附加到数据帧上,接收设备在接收数据时重新计算CRC值,然后与接收到的CRC域中的值进行比较,如果这两个值不相等,就发生了错误。
  CRC运算时,首先将一个16位的寄存器预置为全1,然后连续把数据帧中的每个字节中的8位与该寄存器的当前值进行运算,仅仅每个字节的8个数据位参与生成CRC,起始位和终止位以及可能使用的奇偶位都不影响CRC。在生成CRC时,每个字节的8位与寄存器中的内容进行异或,然后将结果向低位移位,高位则用0补充,最低位(LSB)移出并检测,如果是1,该寄存器就与一个预设的固定值(0A001H)进行一次异或运算,如果最低位为0,不作任何处理。
  上述处理重复进行,直到执行完了8次移位操作,当最后一位(第8位)移完以后,下一个8位字节与寄存器的当前值进行异或运算,同样进行上述的另一个8次移位异或操作,当数据帧中的所有字节都作了处理,生成的最终值就是CRC值。
  12。生成一个CRC的流程为:
  预置一个16位寄存器为0FFFFH(全1),称之为CRC寄存器。
  把数据帧中的第一个字节的8位与CRC寄存器中的低字节进行异或运算,结果存回CRC寄存器。
  将CRC寄存器向右移一位,最高位填以0,最低位移出并检测。
  如果最低位为0:重复第三步(下一次移位);如果最低位为1:将CRC寄存器与一个预设的固定值(0A001H)进行异或运算。
  重复第三步和第四步直到8次移位。这样处理完了一个完整的八位。
  重复第2步到第5步来处理下一个八位,直到所有的字节处理结束。
  最终CRC寄存器的值就是CRC的值。
  此外还有一种利用预设的表格计算CRC的方法,它的主要特点是计算速度快,但是表格需要较大的存储空间,该方法此处不再赘述,请参阅相关资料。
  13。通讯应用格式祥解
  本节所举实例将尽可能的使用如图所示的格式,(数字为16进制)。
  Addr
  Fun
  Datastartreghi
  Datastartreglo
  Dataofregshi
  Dataofregslo
  CRC16lo
  CRC16hi
  01H
  03H
  00H
  00H
  00H
  03H
  05H
  CBH
  Addr:从机地址
  Fun:功能码
  Datastartreghi:数据起始地址寄存器高字节
  Datastartreglo:数据起始地址寄存器低字节
  Dataofreghi:数据读取个数寄存器高字节
  Dataofreglo:数据读取个数寄存器低字节
  CRC16Hi:循环冗余校验高字节
  CRC16Lo:循环冗余校验低字节
  14。读数据(功能码03)
  查询数据帧
  此功能允许用户获得设备采集与记录的数据及系统参数。主机一次请求的数据个数没有限制,但不能超出定义的地址范围。下面的例子是从01号从机读3个采集到的基本数据(数据帧中每个地址占用2个字节)UA、UB、UC,其中UA的地址为0025H,UB的地址为0026H,UC的地址为0027H。
  Addr
  FunDatastart
  AddrhiDatastart
  AddrloDataof
  regshiDataof
  regslo
  CRC16lo
  CRC16hi
  01H
  03H
  00H
  25H
  00H
  03H
  14H
  00H
  响应数据帧
  响应包含从机地址、功能码、数据的数量和CRC错误校验。下面的例子是读取UA、UB、UC(UA082CH,UB082AH,UC082CH的响应。
  Addr
  Fun
  Bytecount
  Data1hi
  Data1lo
  Data2hi
  Data2lo
  Data3hi
  Data3lo
  CRC16lo
  CRC16hi
  01H
  03H
  06H
  08H
  2CH
  08H
  2AH
  08H
  2CH
  94H
  4EH
  错误指示码
  如果主机请求的地址不存在则返回错误指示码:FFH。
  二、特点
  Modbus具有以下几个特点
  1、标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。目前,支持Modbus的厂家超过400家,支持Modbus的产品超过600种。
  2、Modbus可以支持多种电气接口,如RS232、RS485等,还可以在各种介质上传送,如双绞线、光纤、无线等。
  3、Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。
  三、功能码定义
  1。ModBus功能码
  01hrREADCOILSTATUS
  02hrREADINPUTSTATUS
  03hrREADHOLDINGREGISTER
  04hrREADINPUTREGISTER
  05hrWRITESINGLECOIL
  06hrWRITESINGLEREGISTER
  15hrWRITEMULTIPLECOIL
  16hrWRITEMULTIPLEREGISTER
  四、传输方式
  在ModBus系统中有2种传输模式可选择。这2种传输模式与从机PC通信的能力是同等的。选择时应视所用ModBus主机而定,每个ModBus系统只能使用一种模式,不允许2种模式混用。一种模式是ASCII(美国信息交换码),另一种模式是RTU(远程终端设备)。
  用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。所选的ASCII或RTU方式仅适用于标准的Modbus网络,它定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码。在其它网络上(像MAP和ModbusPlus)Modbus消息被转成与串行传输无关的帧。
  1。传输模式特性
  ASCII可打印字符便于故障检测,而且对于用高级语言(如Fortran)编程的主计算机及主PC很适宜。RTU则适用于机器语言编程的计算机和PC主机。
  用RTU模式传输的数据是8位二进制字符。如欲转换为ASCII模式,则每个RTU字符首先应分为高位和低位两部分,这两部分各含4位,然后转换成十六进制等量值。用以构成报文的ASCII字符都是十六进制字符。ASCII模式使用的字符虽是RTU模式的两倍,但ASCII数据的译码和处理更为容易一些,此外,用RTU模式时报文字符必须以连续数据流的形式传送,用ASCII模式,字符之间可产生长达1s的间隔,以适应速度较慢的机器。
  控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络通信。
  2。ASCII模式
  当控制器设为在Modbus网络上以ASCII(美国标准信息交换代码)模式通信,一个信息中的每8位字节作为2个ASCII字符传输,如数值63H用ASCII方式时,需发送两个字节,即ASCII6(0110110)和ASCII3(0110011),ASCII字符占用的位数有7位和8位,国际通用7位为多。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误。
  代码系统十六进制,ASCII字符0。。。9,A。。。F消息中的每个ASCII字符都是一个十六进制字符组成每个字节的位1个起始位7个数据位,最小的有效位先发送1个奇偶校验位,无校验则无1个停止位(有校验时),2个Bit(无校验时)错误检测域LRC(纵向冗长检测)
  3。RTU模式
  当控制器设为在Modbus网络上以RTU模式通信,在消息中的每个8Bit字节按照原值传送,不做处理,如63H,RTU将直接发送01100011。这种方式的主要优点是:数据帧传送之间没有间隔,相同波特率下传输数据的密度要比ASCII高,传输速度更快。
  代码系统8位二进制,十六进制数0。。。9,A。。。F消息中的每个8位域都是一或两个十六进制字符组成每个字节的位1个起始位8个数据位,最小的有效位先发送1个奇偶校验位,无校验则无1个停止位(有校验时),2个Bit(无校验时)
  五、数据校验方式
  1。CRC
  CRC域是两个字节,包含一16位的二进制值。它由传输设备计算后加入到消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。
  CRC是先调入一值是全1的16位寄存器,然后调用一过程将消息中连续的8位字节和当前寄存器中的值进行处理。仅每个字符中的8Bit数据对CRC有效,起始位和停止位以及奇偶校验位均无效。
  CRC产生过程中,每个8位字符都单独和寄存器内容相异或(XOR),结果向最低有效位方向移动,最高有效位以0填充。LSB被提取出来检测,如果LSB为1,寄存器单独和预置的值或一下,如果LSB为0,则不进行。整个过程要重复8次。在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相异或(XOR)。最终寄存器中的值,是消息中所有的字节都执行之后的CRC值。
  CRC添加到消息中时,低字节先加入,然后高字节。
  CRC16错误校验程序如下:报文(此处只涉及数据位,不指起始位、停止位和任选的奇偶校验位)被看作是一个连续的二进制,其最高有效位(MSB)首选发送。报文先与X16相乘(左移16位),然后看X16X15X21除,X16X15X21可以表示为二进制数11000,0000,0000,0101。整数商位忽略不记,16位余数加入该报文(MSB先发送),成为2个CRC校验字节。余数中的1全部初始化,以免所有的零成为一条报文被接收。经上述处理而含有CRC字节的报文,若无错误,到接收设备后再被同一多项式(X16X15X21)除,会得到一个零余数(接收设备核验这个CRC字节,并将其与被传送的CRC比较)。全部运算以2为模(无进位)。
  习惯于成串发送数据的设备会首选送出字符的最右位(LSB最低有效位)。而在生成CRC情况下,发送首位应是被除数的最高有效位MSB。由于在运算中不用进位,为便于操作起见,计算CRC时设MSB在最右位。生成多项式的位序也必须反过来,以保持一致。多项式的MSB略去不记,因其只对商有影响而不影响余数。
  生成CRC16校验字节的步骤如下:
  装如一个16位寄存器,所有数位均为1。
  该16位寄存器的高位字节与开始8位字节进行异或运算。运算结果放入这个16位寄存器。
  把这个16寄存器向右移一位。
  若向右(标记位)移出的数位是1,则生成多项式10,1000,000,0000,001和这个寄存器进行异或运算;若向右移出的数位是0,则返回。
  重复和,直至移出8位。
  另外8位与该十六位寄存器进行异或运算。
  重复,直至该报文所有字节均与16位寄存器进行异或运算,并移位8次。
  这个16位寄存器的内容即2字节CRC错误校验,被加到报文的最高有效位。另外,在某些非ModBus通信协议中也经常使用CRC16作为校验手段,而且产生了一些CRC16的变种,他们是使用CRC16多项式X16X15X21,单首次装入的16位寄存器为0000;使用CRC16的反序X16X14X11,首次装入寄存器值为0000或FFFFH。
  2。LRC
  LRC错误校验用于ASCII模式。这个错误校验是一个8位二进制数,可作为2个ASCII十六进制字节传送。把十六进制字符转换成二进制,加上无循环进位的二进制字符和二进制补码结果生成LRC错误校验(参见图)。这个LRC在接收设备进行核验,并与被传送的LRC进行比较,冒号(:)、回车符号(CR)、换行字符(LF)和置入的其他任何非ASCII十六进制字符在运算时忽略不计。
  Modbus与PROFIBUSDP协议比较
  Modbus的协议内容是完全公开的,内容是简单滴,实现起来是非常容易滴,单片机、PLC、DCS统统都能轻易实现。
  Profibus则要复杂一些,关键是需要专用芯片进行二次开发,并且需要得到上级组织的认证,开发成本肯定高不少。
  当然从性能上讲,基于串口的modbusrtuASCII通讯性能肯定比不过profibusdp,但是就一些仪表级的简单通讯或者控制器级别的小数据量通讯,modbus是足以胜任的。说白了,就是modbus是丝,profibus是高富帅!
  Modbus支持的功能码
  功能码
  名称
  作用
  01hr读取线圈状态
  取得一组逻辑线圈的当前状态(ONOFF)
  02hr读取输入状态
  取得一组开关输入的当前状态(ONOFF)
  03hr读取保持寄存器
  在一个或多个保持寄存器中取得当前的二进制值
  04hr读取输入寄存器
  在一个或多个输入寄存器中取得当前的二进制值
  05hr强置单线圈
  强置一个逻辑线圈的通断状态
  06hr预置单寄存器
  把具体二进值装入一个保持寄存器
  07hr读取异常状态
  取得8个内部线圈的通断状态,这8个线圈的地址由控制器决定
  08hr回送诊断校验
  把诊断校验报文送从机,以对通信处理进行评鉴
  09hr编程(只用于484)
  使主机模拟编程器作用,修改PC从机逻辑
  10hr控询(只用于484)
  可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9的报文发送后,本功能码才发送
  11hr读取事件计数
  可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时
  12hr读取通信事件记录
  可是主机检索每台从机的ModBus事务处理通信事件记录。如果某项事务处理完成,记录会给出有关错误
  13hr编程(184384484584)
  可使主机模拟编程器功能修改PC从机逻辑
  14hr探询(184384484584)
  可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作,仅在含有功能13的报文发送后,本功能码才得发送
  15hr强置多线圈
  强置一串连续逻辑线圈的通断
  16hr预置多寄存器
  把具体的二进制值装入一串连续的保持寄存器
  17hr报告从机标识
  可使主机判断编址从机的类型及该从机运行指示灯的状态
  18hr(884和MICRO84)
  可使主机模拟编程功能,修改PC状态逻辑
  19hr重置通信链路
  发生非可修改错误后,是从机复位于已知状态,可重置顺序字节
  20hr读取通用参数(584L)
  显示扩展存储器文件中的数据信息
  21hr写入通用参数(584L)
  把通用参数写入扩展存储文件,或修改之
  2264
  保留作扩展功能备用
  6572
  保留以备用户功能所用
  留作用户功能的扩展编码
  73119
  非法功能
  120127
  保留
  留作内部作用
  128255
  保留
  用于异常应答
  功能码命令详解
  在这些功能码中较长使用的是1、2、3、4、5、6号功能码,使用它们即可实现对下位机的数字量和模拟量的读写操作。
  1、01号命令,读可读写数字量寄存器(线圈状态):
  计算机发送命令:〔设备地址〕〔命令号01〕〔起始寄存器地址高8位〕〔低8位〕〔读取的寄存器数高8位〕〔低8位〕〔CRC校验的低8位〕〔CRC校验的高8位〕
  例:〔11〕〔01〕〔00〕〔13〕〔00〕〔25〕〔CRC低〕〔CRC高〕
  意义如下:
  设备地址:在一个485总线上可以挂接多个设备,此处的设备地址表示想和哪一个设备通讯。例子中为想和17号(十进制的17是十六进制的11)通讯。
  命令号01:读取数字量的命令号固定为01。
  起始地址高8位、低8位:表示想读取的开关量的起始地址(起始地址为0)。比如例子中的起始地址为19。
  寄存器数高8位、低8位:表示从起始地址开始读多少个开关量。例子中为37个开关量。
  CRC校验:是从开头一直校验到此之前。设备响应:〔设备地址〕〔命令号01〕〔返回的字节个数〕〔数据1〕〔数据2〕。。。〔数据n〕〔CRC校验的高8位〕〔CRC校验的低8位〕
  例:〔11〕〔01〕〔05〕〔CD〕〔6B〕〔B2〕〔0E〕〔1B〕〔CRC高〕〔CRC低〕
  意义如下:
  设备地址和命令号和上面的相同。
  返回的字节个数:表示数据的字节个数,也就是数据1,2。。。n中的n的值。
  数据1。。。n:由于每一个数据是一个8位的数,所以每一个数据表示8个开关量的值,每一位为0表示对应的开关断开,为1表示闭合。比如例子中,表示20号(索引号为19)开关闭合,21号断开,22闭合,23闭合,24断开,25断开,26闭合,27闭合。。。如果询问的开关量不是8的整倍数,那么最后一个字节的高位部分无意义,置为0。
  CRC校验同上。
  2、05号命令,写数字量(线圈状态):
  计算机发送命令:〔设备地址〕〔命令号05〕〔需下置的寄存器地址高8位〕〔低8位〕〔下置的数据高8位〕〔低8位〕〔CRC校验的低8位〕〔CRC校验的高8位〕
  例:〔11〕〔05〕〔00〕〔AC〕〔FF〕〔00〕〔CRC高〕〔CRC低〕
  意义如下:
  设备地址和上面的相同。
  命令号:写数字量的命令号固定为05。
  需下置的寄存器地址高8位,低8位:表明了需要下置的开关的地址。
  下置的数据高8位,低8位:表明需要下置的开关量的状态。例子中为把该开关闭合。注意,此处只可以是〔FF〕〔00〕表示闭合〔00〕〔00〕表示断开,其他数值非法。
  注意此命令一条只能下置一个开关量的状态。
  设备响应:如果成功把计算机发送的命令原样返回,否则不响应。
  3、03号命令,读可读写模拟量寄存器(保持寄存器):
  计算机发送命令:〔设备地址〕〔命令号03〕〔起始寄存器地址高8位〕〔低8位〕〔读取的寄存器数高8位〕〔低8位〕〔CRC校验的高8位〕〔CRC校验的低8位〕
  例:〔11〕〔03〕〔00〕〔6B〕〔00〕〔03〕〔CRC高〕〔CRC低〕
  意义如下:
  设备地址和上面的相同。
  命令号:读模拟量的命令号固定为03。
  起始地址高8位、低8位:表示想读取的模拟量的起始地址(起始地址为0)。比如例子中的起始地址为107。
  寄存器数高8位、低8位:表示从起始地址开始读多少个模拟量。例子中为3个模拟量。注意,在返回的信息中一个模拟量需要返回两个字节。
  设备响应:〔设备地址〕〔命令号03〕〔返回的字节个数〕〔数据1〕〔数据2〕。。。〔数据n〕〔CRC校验的高8位〕〔CRC校验的低8位〕
  例:〔11〕〔03〕〔06〕〔02〕〔2B〕〔00〕〔00〕〔00〕〔64〕〔CRC高〕〔CRC低〕
  意义如下:
  设备地址和命令号和上面的相同。
  返回的字节个数:表示数据的字节个数,也就是数据1,2。。。n中的n的值。例子中返回了3个模拟量的数据,因为一个模拟量需要2个字节所以共6个字节。
  数据1。。。n:其中〔数据1〕〔数据2〕分别是第1个模拟量的高8位和低8位,〔数据3〕〔数据4〕是第2个模拟量的高8位和低8位,以此类推。例子中返回的值分别是555,0,100。
  CRC校验同上。
  4、06号命令,写单个模拟量寄存器(保持寄存器)
  计算机发送命令:〔设备地址〕〔命令号06〕〔需下置的寄存器地址高8位〕〔低8位〕〔下置的数据高8位〕〔低8位〕〔CRC校验的高8位〕〔CRC校验的低8位〕
  例:〔11〕〔06〕〔00〕〔01〕〔00〕〔03〕〔CRC高〕〔CRC低〕
  意义如下:
  设备地址和上面的相同。
  命令号:写模拟量的命令号固定为06。
  需下置的寄存器地址高8位,低8位:表明了需要下置的模拟量寄存器的地址。
  下置的数据高8位,低8位:表明需要下置的模拟量数据。比如例子中就把1号寄存器的值设为3。
  注意此命令一条只能下置一个模拟量的状态。
  设备响应:如果成功把计算机发送的命令原样返回,否则不响应。
  5、16号命令,写多个模拟量寄存器(保持寄存器)
  计算机发送命令:〔设备地址〕〔命令号16〕〔需下置的寄存器地址高8位〕〔低8位〕〔数据数量高8位〕〔数据数量低8位〕〔下置的数据高8位〕〔低8位〕〔〕〔〕〔CRC校验的高8位〕〔CRC校验的低8位〕
  例:〔11〕〔16〕〔00〕〔01〕〔00〕〔01〕〔00〕〔05〕〔CRC高〕〔CRC低〕
  意义如下:
  设备地址和上面的相同。
  命令号:写模拟量的命令号固定为16。
  需下置的寄存器地址高8位,低8位:表明了需要下置的模拟量寄存器的地址。
  需下置的数据数量高8位,低8位:表明了需要下置的数据数量,这里为1。
  下置的数据高8位,低8位:表明需要下置的模拟量数据。比如例子中就把1号寄存器的值设为5。
  设备响应:如果成功把计算机返回的如下命令,否则不响应。设备响应:〔设备地址〕〔命令号16〕〔需下置的寄存器地址高8位〕〔低8位〕〔数据数量高8位〕〔数据数量低8位〕〔CRC校验的高8位〕〔CRC校验的低8位〕,如上例返回:〔11〕〔16〕〔00〕〔01〕〔00〕〔01〕〔CRC高〕〔CRC低〕

顶风作案!赵薇罪行远不止亲日辱华,资本嘴脸令人发指顶风作案!赵薇罪行远不止亲日辱华,资本嘴脸令人发指说起来赵薇相信很多的人都不陌生,毕竟这个女演员的很多角色在我们的童年里面留下了浓墨重彩的一笔,很多的人回忆起青春的时候,……妈妈,做什么饭我都爱吃,别急着开心,当心孩子陷入讨好心理文兰妈谈育儿妈妈,你做什么饭我都爱吃相信任何一位母亲听到这句话内心都是满满的感动,自从为人母之后,母爱泛滥的妈妈们仿佛失去了自己,任何事情都习惯以孩子为先,以孩子的……别笑!这家越南的造车新势力想干掉特斯拉!2022年下半年,造车新势力掀起上市潮。零跑汽车在今年9月底冲刺港股IPO成功,威马汽车、哪吒汽车也先后传出上市消息,跑步挤进二级市场。如今,这一股潮流也来到了东南亚。……出入境取消隔离,对旅游免税并不是利好出尽见智研究12月26日,国家卫健委印发对新型冠状病毒感染实施乙类乙管总体方案的通知,通知提及,优化中外人员往来管理,取消入境后核酸检测及隔离政策。来华人员在行前48小时进行核酸检测、健康……外卖平台佣金越来越贵,韩国正在失去外卖幸福【环球时报驻韩国特约记者刘海生】因为内卷严重,韩国外卖的供货商家现在听到下单的声音也高兴不起来。韩国《朝鲜日报》15日报道称,韩国外卖平台的佣金越来越贵,让消费者和相关小企业不……黑龙江的源头额尔古纳河额尔古纳河是蒙古帝国和北元时期中国的一条内陆河。1689年,中俄签署了《中俄尼布楚条约》,成为中俄之间的边界河流。额尔古纳河是一条多山河流,发源于大兴安岭西坡。其上游称为海拉尔……谁能想到,快过年了,曾轶可以这样的方式上热搜,寒了老粉的心《狮子座》、《最天使》就留在09年的夏天吧!那个时候曾轶可凭借这两首歌可以说红遍大江南北,但这些年她并没有什么消息,除了耍大牌就是不重视粉丝。很多人对她都没有好感,……耳鼻咽喉头颈外科1岁孩童误吞管道疏通剂近日,1岁多的俊俊在家独自玩耍,妈妈突然听到俊俊大哭不止,忙上前去查看,只见俊俊身边倒放着一瓶管道疏通剂,嘴巴里面还不停流出大量口水。俊俊爸妈自行给他用漱口水漱口,却不知俊俊哭……曝华为Mate50pro概念渲染图,华为Mate40惊现大米曝光这款华为Mate50概念渲染图是根据过去的泄密和报道制作的。所有这种设计你只能看看而已,以发布会为主。让我们来探索一下华为Mate50pro的概念渲染图。首先是正面设计,左……大鱼大肉太腻,试试这5道家常菜,2分钟做好,清凉解暑又解馋炎炎夏日,又到了厨房热得像蒸笼一样。天一热,再加上胃口不好,做饭成了令人发愁的事情。今儿,给大家分享5道快手菜,比点外卖强多了。下酒又下饭,酸辣开胃,夏天没胃口的朋友,也……电商逻辑发生转变,京东唯品会正瞄准同一方向一直以来总是有人认为,电商和实体是互相对立的两面。电商兴起,那么实体经济必将衰弱,或者实体兴起电商衰落。其实,两者的关系根本不是这么一回事。在当下,电商和实体的关系已经发……苹果也被国产机带坏了?iPhoneSE3涨价200元自从5G到来后,相信众多的网友就一直在吐槽国产机越来越贵。事实也是如此,从2021年的均价大家就可以看出来,小米、OV们相比于2020年,上涨了10以上。为什么要涨……
有关于酒桌上的规矩以下是品学网小编为大家整理的有关于酒桌上的规矩,供大家参考!(一)如果自己真不能喝,就别开第一口,端着饭碗夹了菜一边吃着去。(二)如果确信自己要喝,就别装磨叽,接下……食堂员工工作细则食堂员工是否严格遵守工作细则关乎食品健康问题,那么,以下是品学网小编给大家整理收集的食堂员工工作细则,供大家阅读参考。食堂员工工作细则11、工作衣帽不整齐,不干净一次扣1……五年级语文教学总结范文今学期我仍然担任四年班语文教学。由于教学经验尚浅。因此,我对教学工作不敢怠慢,认真学习,深入研究教法,虚心向前辈学习。经过一个学期的努力,获取了很多宝贵的教学经验。以下是我在本……回隆二中上学期开学工作汇报新学期,为确保各项工作顺利开展,我校结合实际情况,扎实有效地抓开学工作。现将学校开学情况汇报如下:一、开学准备工作情况1、正月11日学校召开校务会、行政会、全体教师……催眠大师相关的经典台词催眠大师经典台词,名言网为给整理编辑,该片将在2014年4月29日上映,我们会为您关注该片的经典台词,及时为您发布。这是由名言为你搜集整理,名言网汇集和分享经典语录、经典台词。……NASA我们的宇宙正在发生奇怪的事情宇宙膨胀示意图。(ShutterStock)美国国家航空航天局(NASA)说,我们的宇宙正在发生一些奇怪的事情,其膨胀速度远远超出预期。科学家们一直在研究哈勃太空望……有走下坡路嫌疑的NBA巨星是的,没人一直处于巅峰,巨星也不例外!是时候让位给众小弟了哈登33岁本赛季22。6810,投篮命中率41。6,三分球命中率33。5,这数据,以及能力在NBA还算可以,但与……久泡的木耳竟然有毒看到这则消息,相信你不寒而栗的同时也会产生疑问,木耳是很常见的食物,基本上家家户户都在吃,它不仅口感好,还富含营养,当然它的做法也是多种多样的,凉拌、炒、涮火锅等等。没想……2022春夏时尚,怎么错过这一抹梦幻贝母?都说潮流趋势是个圈,但万变不离其宗!特别是在如今快节奏的生活之下,让很多时尚设计师开始返璞归真,从原生自然之中汲取灵感,呈现出令人惊艳的美!而在这其中,贝母色可谓是经久不衰,特……让机器活起来智能制造塑造工业新范式来源:人民网原创稿工作人员通过智能终端扫描二维码获得设备信息。受访方供图在山东一家汽车零配件企业的生产车间,工作人员通过智能终端扫描发动机缸体上的二维码,能够准备溯……电竞媒体集团Gamurs收购多个Enthusiast知名游戏根据曾任职Gamurs媒体集团旗下DotEsports网站首席记者的JacobWolf最新报道称,Gamurs集团正在从EnthusiastGaming收购一系列游戏网站。……商家个人请注意,iPhone14系列已有监管机!购买需谨慎iPhone14系列才发布不到一周,想不到市面上就已经有监管机了!现阶段大部分个人用户都在网上抢iPhone14系列,所以碰到iPhone14监管机的概率比较小。但商家最近在大……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网