收藏 分享(赏)

Modbus高级通讯教程.pdf

上传人:HR专家 文档编号:6225687 上传时间:2019-04-03 格式:PDF 页数:189 大小:4.59MB
下载 相关 举报
Modbus高级通讯教程.pdf_第1页
第1页 / 共189页
Modbus高级通讯教程.pdf_第2页
第2页 / 共189页
Modbus高级通讯教程.pdf_第3页
第3页 / 共189页
Modbus高级通讯教程.pdf_第4页
第4页 / 共189页
Modbus高级通讯教程.pdf_第5页
第5页 / 共189页
点击查看更多>>
资源描述

1、第一章: 控制设备通信慨况 1 慨念说明 于自动控制系统的各种设备,相互之间的通信及资料交换是非常重要 的基本功能之一。早期通信方式是使用串行式硬件架构,然后定义通信步 骤及资料格式等基本通信规格,也就是通信协议(Communication Protocol) 。外部计算机依据此通信协议即可与该自控设备读取或写入资 料。也可以看做读取该控制设备所控制的结果,写入一些控制命令要求该 控制设备执行所指定的功能。 PLC(Programmable Logical Controller)是自动控制系统的核心设备, 肩负着主要的控制功能,所以 PLC 对外通信能力也是格外的重要。各种厂 牌的 PLC 都

2、会制定自有的通信协议接口标准。其中 Modbus 通信协议是 Modicon PLC所定义的通信协议。因为 Modicon是最早开发出 PLC的设 备,故其所制定的通信协议,也广泛被其它厂商所接受,无形中成为自控 界主流的通信协议。 2 通信硬件 两种设备之间的通信及资料交换处理,首先经由通信硬件传送信号, 此基本模式如下图所示: 图(1-1):通信硬件系统基本模式 两端设备都配置接/发收器将数据转换成电器信号往外传送或接收 外部传来的信号。以信号的传输处理来看,早期的系统当然遵循电信系统 的规格最为方便,所以 RS232C 的规格,基本上是电信系统的规格,也就 是非同步串行式。此规格只是提供

3、一对一的通信,而无法一对多或者多对 多的通信,所以后来才发展出同步串行式及 Ethernet 网络通信。 以下各点试着以简单方式,说明通信硬件运作的基本慨念。因为本书 是以软件设计者为主要对象,但是对于硬件必须有一个清晰的认识,才能 设计完美的通信应用系统。 接/发送器 传送媒体 接/发送器 控制设备 计算机设备 2.1 异步串行式通信方式 异步串行式传输信号,基本上是一次一个基本单位,包含起始位(Start Bit) 、资料位(Data Bit) 、同位位(Parity Bit)及停止位(Stop Bit)等组 成。也就是资料的每一个字符(Byte)都整理成上述的格式,然后传送出 去。于硬设

4、备上传送信号时必须做到下列三件事: 位(Bit)同步:认出每个位的开始及结束。 字符(Byte)的同步:认出每个字符的开始及结束。 一个段落或讯息的同步:认出大单元数据的开头。 图(1-2):信号传送示意图 解决同步问题的一个方法是:每次传送一小段的位后,马上寻求同步, 最早使用的方法是起止法(Start - Stop) 或称做异步传输法 。也就 是通信双方的接/发送器随时检查起始位,然后才认定此字符的资料已 经进来,再检查停止位后才认定此字符的资料结束,最后再依据同步位作 资料的检查以排除噪声的干扰。 当每次有字符传送时,其信号是位于一个闲置状态,为二进制的 1,也 就是有电压及电流的存在

5、。当字符的开头的起始位,其值为二进制的 0, 所以当接/发送器可以检查到起始位,然后接下来为正式资料位、同位 位等,最后检查停止位后,该字符(Byte)接收正式完成。停止位与闲置 都为二进制的 1,所以发送器会不断地发送停止位直到准备发送下一个字 符为止。 由以上的叙述可以明白有几个通信硬件的系数非常重要,必须于通信 前将双方的系数设定为一样,才能于位传送及接收间,依据一样的规格区 分每个位的状态为二进制的 0或 1。 第一字符 1111001 起始位 第二字符 闲置状态 每个字符按顺 序传送之 同步位 停止位 传送速度(Baud Rate) :以此速度切割一个位电位的维持时间,然 后断定为二

6、进制值 0或 1。 同位位(Parity) :None、Odd、Even等三种检测错误位方式。 资料位数(Data Bits) :所要传送的一个字符内的位数 5、6、7、8 等四种。 停止位(Stop Bits) :规定最小长度有 1、1.5、2等位长度三种。 也就是表示超过此长度就是接到停止位。 举例说明: 如果设定停止位为 1位、 资料位为 7位、 同位位为 None (也 就是不做同位检查) 、传送速度 9600 bps 等通信系数。传送 ABC 三个英文 字母的 ASCII Code,首先起始位(0)激活以下 8个单位的时序,这 8个单 位包含 7个位的 ASCII 码,以及 1个停止

7、位。在闲置状态时,接收器利用 观察从 1变成 0的这种转变来作为接收字符的开始,然后去取样输入的信 号,每一个位一个区间,共 7个位代表一个 ASCII 码。这种设计的时序简 单且便宜, 但是每一字符须有两个或三个的虚耗位, 整体的通信效率较差, 所以就有同步串行通信的发展,以克服此问题。 2.2 同步串行式通信方式 这种模式中,字符或位的传输段落没有起始及终止位,而且每一种位 的发出及到达的确切时间都可以预见,也就是为了防止发送器及接收器之 间的时间偏移,所以必须采用某种方法的同步。可能的方法之一就是提供 单独一个时钟线,否则就必须将同步时钟的信息插在资料信号当中。除了 基本的同步传输外,还

8、需要另一个阶层的同步,使得接收器能够决定一个 数据段落的开头及结尾。所以每一个段落的开头,须有一个开头序幕的位 型式,最后亦以结尾位型式作为结束。同时于数据链中还要包含一些控制 信息且有一定的格式,用来做为接收或传送的真正资料的控制用。故所制 定格式的不同,代表不同通信规格接口,一般常用的有 SDLC, HDLC 等, 在此不做此格式的细部说明,不过以简单方式来叙述一些基本慨念。 图(1-3):字符取向同步传输示意图 图(1-4):位取向同步传输示意图 在字符取向的传输中,资料的段落是以一个字符(一般为 8位的字符) 来处理。同步字符通常为 SYN(16进位的 0x16) ,用来告知接收器这是

9、一 个段落开头的信号。然后于控制字符中规定将整个传送资料的长度存入, 如此接收器就读进所指示的长度, 就是实际资料部份。 再等待另一个 SYN, 以开始另一个资料的读取。另外一个方式为结尾为另一个型式位,以作为 数据段落结束。 以位取向的传输,数据段落是当作一序列的位来处理。有一个特殊位 型式 8 位的旗号作为资料开头,再结尾也采用同样旗号。接收器等待旗号SYN SYN 1 个或多个同 步字符 控制字符 数据字符 控制字符 F F 8 位旗 号 控制域 数据域 控制域 8 位旗 号 的到来代表传输的开始,随后跟着某些数量的控制栏,然后是可变长度的 数据域,然后又再度是控制栏,最后重复开头旗号

10、作为结尾。这种方法与 字符取向方法的差别,决定于资料格式的细节以及控制字段的定义。对于 可订定大小的数据段落,同步传输要比异步传输有更高的效率,一般异步 传输至少超过 20%的虚耗位。以 HDLC来看,此为位取向设计中被广泛使 用的一种,包含 48个位的控制信息(包含旗号) ,因此对于一个 1000位 的讯息,其虚耗只有 48 / 1048 * 100% = 4.6%。 Modbus 是使用异步传输的方式, 但是由于速度较慢, 应用上有其限制, 尤其当两台 PLC要互相交换资料,其传输资料量大,异步方式已经无法满 足整体系统反应时间的要求。所以就有 Modbus Plus 出现,使用同步传输

11、的技术,但是资料格式与 Modbus 一样。对于软件设计者来看,是相同的 设计方式,所以下面章节以 Modbus 说明为主。 2.3 Ethernet 网络通信方式 Ethernet 是一种共享式总线技术,支持广播(Broadcast)所有的网络上 主机都可以接到传输资料,因此一次可以传送一个封包资料至多台主机。 当主机有封包资料要传送时,会先监听网络是否有资料正在传送,如果无 就开始传送。 每一个 Ethernet硬件都有唯一的 48位的地址。 Ethernet Frame 为硬件间的连接层,其长度可变,最小 64位,最大 1518字节(包含标头、 资料及 CRC Check 等) ,如下图

12、所示: 图(1-5):Ethernet Frame format 由目的地址,可使得网络硬件判定取入传给它的封包资料,由来源地 址可以得知哪一个网址传来的资料。Frame type可区分何种型式的数据, 例如:TCP、UDP .等等。以 CRC侦测传输的资料错误,发送端先计算 CRC值写入 Frame内,接收端再重新计算一次比对 CRC是否相同。 由以上的简单描述,可知基本的通信慨念,其实与串行式一样的。 Ethernet IP Address等于串行式的 Station No.。 CRC检查用法一至。串行式 资料 Frame 依设计自行规定,Ethernet则为标准规格。于 Ethernet

13、 以上各 点的处理,已经由网络硬件或操作系统处理完成。由应用系统设计者观点 来看,只要依照操作系统所提供的 API,就很容易将网络资料取入或传出。 例如:TCP/IP通信协议,只要使用 socket 方式,就可以达到此目的,而且 无论于 Windows、Unix、DOS 等操作系统,其设计方式都一样,反而比串 行式通信容易设计。 8 字节 6 字节 6 字节 2 字节 46 - 1500 字节 CRC Data Frame type 来源地址 目的地址 前置 4 字节 以 Modbus/TCP 的通信协议资料格式,除了再加上前面 6 byte 做网络 用资料,其后面的资料与 Modbus/2

14、32 完全一样,设计 TCP 应用程序,反 而依照 socket 方式就可以收送资料, 不像 RS232应用程序必须处理所有步 骤,例如:CRC计算,Frame自行规定,每一位都要处理.等等工作。 3 通信协议: 通信协议(Communication Protocol)是为资料交换所制定的一种接口 标准及程序。外部计算机的通信软件只要依据此接口标准设计,就可以达 到双方互相通信的目的。通信协议除了规定所要使用的通信硬设备外,就 是规定两种标准:一是资料互相传送的程序步骤,也就是规定开始通信、 通信中及结束通信等通信流程中所要遵循的步骤。好象人们相互交谈时必 须先确定当一方要求被接受处理后,再响

15、应所处理的结果。以电话系统为 比喻,可以将通信硬件视为电话设备,通讯协议为双方所用的语言,双方 所谈论的语言内容就是通信协议内的资料格式。 3.1 主要 PLC 厂牌的通信协议 各种厂牌的 PLC 因为所定义的资料内容格式都有所不同,所以都制定 自有厂牌使用的通信协议,兹将主要通信协议列于下表: PLC 通信协议 硬件规格 Modicon Modbus/232 异步串行 Modbus Plus 同步串行 Modbus/TCP Ethernet TCP/IP Allen-Brandley DF1 异步串行 EtherentIP Ethernet Simatic(Siemens) Profibus

16、 异步串行及 Ethernet M P I 异步串行 Simatic TI PLC Task Code 异步串行 GE SNP 异步串行及 Ethernet Mitsubishi MelsecA PC-Link 异步串行及 Ethernet Mitsubishi FX2 PC-Link 异步串行 OMRON HostLink 异步串行 FINS Ethernet Koyo U-01DM/G-01DM 异步串行 图(1-6):主要厂牌通信协议表 3.2 Modbus 通信协议的由来 Modbus 通信协议,是 Modicon PLC 所制定的资料交换通信接口标准, 于 1979 年首先制定串行通

17、信标准(含 Modbus 异步及 Modbus Plus 同步) , 于 1997 年制定网络通信标准(Modbus/TCP) 。是属于 OSI 所定义的通信层 次的第七层应用层次(Application Layer) 。是为 Client/Server 或称为 Master/Slave 型式的通信协议。由于 Modbus 的通信协议简单容易设计,结 果广被许多控制设备或外围信号设备所采用, 因此无形中成为自控业界的 标准。Modbus 异步的硬件架构简单,被使用的比率最高。Modbus Plus 同 步的协议可以提供高速的通信速度,适合主控制设备间大量资料交换。 Modbus/TCP则是因应

18、 Ethernet网络的架构, 近年来被大量使用的通信协议, 也因为其速度及资料传送量远比 Modbus Plus 更快更大,所以已渐渐取代 其功能。本书内容就 Modbus 及 Modbus/TCP 两种通信协议,说明其架构 及应用例。 第二章:Modbus 通信协议说明 Modbus 通信协议基本上是遵循 Master and Slave 的通信步骤, 有一方扮 演 Master 角色采取主动询问方式, 送出 Query Message 给 Slave 方, 然后由 Slave 方依据接到的 Query Message 内容准备 Response Message 回传给 Master 。

19、即使目前硬件通信已经可以达到双方互相主动通信的能力,但是 于 Modbus 通信协议的规定, 必须一方为 Master , 另一方为 Slave 不能互换 角色。 一般使用上, 监控系统(HMI) 都为 Master ,PLC 、 电表、 仪表等都为 Slave ,HMI 系统一直 Polling Slave 的各种 relay and register 最新数值, 然后 做显示及各种逻辑计算及控制调整等处理。 1 共享的通信协议 1.1 Query and Response Cycle 图(2-1) :Master / Slave and Query / Response Cycle Dev

20、ice Address :表示该设备的编号,于同一个串行式网络上此为唯一 的号码。于 TCP/IP 上可以使用 IP Address 区分之,所以该 Device Address 保留此字段可以使用或不使用。 Function Code :表示要求 Slave 处理各种不同资料或程序的 Command , 以不同的 Function Number 来区分之。 Eight-Bit Data Bytes : 依据 Function Code 而有不同的详细资料定义, Slave 设备依据此两字段资料,做各种处理。 Error Check :当通信传送资料时,因考虑信号可能会受外界干扰,所 以必须加

21、上 Error Check Code,使 得 message 接收方可以就接到的资料再计 算一次 Code ,如果正确则做正常处理,不正确则不做处理。于串行式通 信规定有 CRC and LRC 等两种方式。 于 TCP/IP 通信, 因为通信 Error Check 已经被 TCP/IP 的阶层处理掉, 所以于 Modbus/TCP 通信协议上不用此字段。 Device Address Function code Eight-Bit Data Bytes Error Check Device AddressFunction code Eight-Bit Data Bytes Error Ch

22、eck Query message from Master Response message from Slave Master Slave 1.2 基本资料格式(Data Format)说明 以上 Query and Response Message 基本格式如下图所示。所有资料格式 最大长度为 256 字符。 RTU 格式: 图(2-2) :RTU data format 开始间隔 Device Address Function Code Data CRC check T1-T2-T3-T4 结束间隔 16 Bits Number of 8 Bits 8 Bits 8 Bits T1-T

23、2-T3-T4 T1-T2-T3-T4 :RTU 规定每次 Query 或 Response Message 的结束, 是以未再接到下一个字符间隔时间来判断。其规定为 3.5 字符的 通信时间,举例来说:通信速率为 9600 bps 、每个字符含 8 bits 再加上 1 start bit 及 1 stop bit 后,一个字符为 10 bits 。计算 3.5 字符的通信时间为 (3.5 * 10) / 9600 = 0.00365 秒。 于通信协议的文 件上以 T1-T2-T3-T4 来表示此数值。 所有传送的字符都是照原值 8 Bits 传送,不做任何处理加工。 Data :Numbe

24、r of 8 Bits 是表示每个 Function Code 有不同数目的详 细资料规定。 通信资料的 Error Check 采用 CRC 计算方式,于串行式通信协 议小节内说明。 ASCII 格式: 图(2-3) :ASCII data format 起始字符 Device Address Function Code Data LRC check 2 字符 结束字符 2 字符 数个字符 2 字符 2 字符 : 起始字符及结束字符: 因为所传送资料都是为 ASCII 码, 以十六 进制表示, 也即是一定为 0123456789ABCDEF 等 16 个 ASCII 码。 所以用特殊的字符规

25、定开始或结束。 由 Device Address 至 Data 等资料,都是将 8 bits 原始值转换为两 码的十六进制 ASCII 码, 所以其实际传送的字符数约为 RTU 格式 的两倍。 Data : 数个字符是表示每个 Function Code 有不同数目的详细资料 规定。 通信资料的 Error Check 采用 LRC 计算方式,于串行式通信协 议小节内说明。 TCP/IP 格式: 图(2-4) :TCP/IP data format 起始字符 组 Device Address Function Code Number of 8 Bits Error check Data 不使

26、用 结束规定 不使用 8 Bits 8 Bits 6 个 起始字 符 起始字符组: 于前面再多加 6 个字符, 以定义一些 TCP/IP 的需要 系数。说明如下: Byte 0 :本次通信 Message 的编号以 2 bytes 整数(Byte 0 、1 )表 示, 此 byte 为上字符, 一般是由 Master 编号之, 以区分 每次 Message 。如果是 Slave 则将 Master 传来的 Query Message 照转至 Response Message 。 Byte 1 :本次通信 Message 的编号下字符。 Byte 2 : 通信协议识别号码以 2 bytes 整数

27、 (Byte 2 、 3 ) 表示, 此 byte 为上字符,于此处为零。 Byte 3 :通信协议识别号码下字符,于此处为零。 Byte 4 :Message 长度以 2 bytes 整数(Byte 4 、5 )表示,此 byte 为上字符 (由 Device Address 至 Data 为止) , 因为长度不 能超过 256 位,所以此位永远为零。 Byte 5 :Message 长度下字符(由 Device Address 至 Data 为止) 。 由 Device Address 至 Data 内容同 RTU 格式。 Modbus 规定 IP Port No. 为 502 。 举例说

28、明三种格式: Function Code-3 读取 Output Register 数值为例。 Device address : 6 。 Start Address : 40123 (Modbus 规定 Output Register 由 40001 开始) 。 通信协议内则将 40001 去 除,以 122 表示也就是十六进制 0x007A 、读取点数:3 。 Query Message 通信内容 十六进制 ASCII Code RTU 8-bits field 二进制 TCP 8-bits field 二进制 TCP Byte-0 0000 0000 TCP Byte-1 0000 000

29、1 TCP Byte-2 0000 0000 TCP Byte-3 0000 0000 TCP Byte-4 0000 0000 TCP Byte-5 0000 0110 ASCII 起始字符 : Device Address 06 0 6 0000 0110 0000 0110 Function Code 03 0 3 0000 0011 0000 0011 Start Address (Hi byte) 00 0 0 0000 0000 0000 0000 Start Address (Lo byte) 7A 7 A 0111 1010 0111 1010 No. of register

30、s (Hi byte) 00 0 0 0000 0000 0000 0000 No. of register (Lo byte) 03 0 3 0000 0011 0000 0011 Error Check Byte-0 Error Check Byte-1 结束字符 图(2-5) :Example of Query Message 回传的 3 点 register 数值为 789 、 12345 、 -567 也就是十六进制 0x0315 、 0x3039 、 0xFDC9 等 Response Message 通信内容 十六进制 ASCII Code RTU 8-bits field 二进

31、制 TCP 8-bits field 二进制 TCP Byte-0 0000 0000 TCP Byte-1 0000 0001 TCP Byte-2 0000 0000 TCP Byte-3 0000 0000 TCP Byte-4 0000 0000 TCP Byte-5 0000 1001 ASCII 起始字符 : Device Address 06 0 6 0000 0110 0000 0110 Function Code 03 0 3 0000 0011 0000 0011 Byte count 06 0 6 0000 0110 0000 0110 Data-1 (Hi byte)

32、03 0 3 0000 0011 0000 0011 Data-1 (Lo byte) 15 1 5 0001 0101 0001 0101 Data-2 (Hi byte) 30 3 0 0011 0000 0011 0000 Data-2 (Lo byte) 39 3 9 0011 1001 0011 1001 Data-3 (Hi byte) FD F D 1111 1101 1111 1101 Data-3 (Lo byte) C9 C 9 1100 1001 1100 1001 Error Check Byte-0 Error Check Byte-1 结束字符 图(2-6) :Ex

33、ample of Response Message 1.3 Function Code 说明 Function Code 有二十几种,但是一般使用上都以 1 、2 、3 、4 、5 、6 、 15 、16 等八种最为常用, 以及另外特殊使用的 20 、21 两种, 此为 General Reference Register , 绝 大部份的 Modbus 设备并不会提供此 Register。于 PLC 上主要的控制数据有下列四种型式。 此八种 Function Code 就是处理这些控 制资料,详细说明如下各点: 控制数据四种型式: DI :Digital Input ,以一个 bit 表示

34、 On/Off ,用来记录控制信号的 状态输入, 例如: 开关, 接触点, 马达运转, 超限 switch 等等。 于 PLC 上被称为 Input relay 、input coil 等。 DO :Digital Output , 以一个 bit 表示 On/Off , 用来输出控制信号, 以激活或停止马达,警铃,灯光等等。于 PLC 上被称为 Output relay 、Output coil 等。 AI :Analog Input ,以 16 bits integer 表示一个数值,用来记录控制 信号的数值输入,例如:温度、流量、料量、速度、转速、文件 板开度、液位、重量等等。于 PLC

35、 上被称为 Input register 。 AO :Analog Output ,以 16 bits integer 表示一个数值,用来输出控 制信号的数值,例如:温度、流量、速度、转速、文件板开度、 饲料量等等设定值。于 PLC 上被称为 Output register 、Holding register 。 Modbus Function Code 说明 01 Read Coil Status (output relay) 02 Read Input Status (input relay) 03 Read Holding Registers (output register) 04 R

36、ead Input Registers 05 Force Single Coil 06 Preset Single Register 07 Read Exception Status 08 Diagnostics 09 Program 484 10 Poll 484 11 Fetch Comm. Event Ctr. 12 Fetch Comm. Event Log 13 Program Controller 14 Poll Controller 15 Force Multiple Coils 16 Preset Multiple Registers 17 Report Slave ID 18

37、 Program 884/M84 19 Reset Comm. Link 20 Read General Reference 21 Write General Reference 22 Mask Write 4x Register 23 Read/Write 4x Register 24 Read FIFO Queue 43 Read Device Identication 65 to 72 开放给一般使用者定义 100 to 110 开放给一般使用者定义 图(2-7) :Modbus Function Code 一览表 以下说明常用 10 种 Function Code:每 种 Funct

38、ion Code 以举例说明其中 间 Message 的格式至于前面的 TCP Byte , ASCII 起始字符及后面的 Error Check 、结束字符等都是一样规定,参考前一节内容即可。 Function Code-1 :读取 DI 资料,于 Modbus 规定 Relay Address 由 00001 开始。但是通信协议内取后面四位数,且由零起算,例 如:于文件上 Relay Address 为 00345 ,其通信协议内转 换的 Address 为 344 。 由 Device Address 17 读取 Relay Address 20 32 的 DI 资料,通信协议 内 St

39、art Address 为 19 ,读取点数 13 。 Query Message 通信内容 十六进制 Device Address 11 Function Code 01 Start Address (Hi byte) 00 Start Address (Lo byte) 13 No. of points (Hi byte) 00 No. of points (Lo byte) 0D 回传资料以一个 Byte 即 8 bits 为一组, 每一个 Bit 表示一点 Relay On/Off 状态。例如下表 Data(Relay 27 20) 的状态为 ON-ON-OFF-ON-OFF-OFF-

40、ON-ON 。 Data(Relay 32 28) 的状态为 OFF-ON-OFF-ON-ON-ON 。 (前面 3 bit 不 算,因为只到 Relay 32 为止) 其个别 Relay 状态,举例: Relay 27 为 ON 、Relay 31 为 ON 、Relay 23 为 OFF 。 Response Message 通信内容 十六进制 Device Address 11 Function Code 01 Byte count 02 Data (Relay 27 20) D3 Data (Relay 32 28) 17 图(2-8) :Example of Function Cod

41、e - 1 Message Function Code-2 :读取 DO 资料,于 Modbus 规定 Relay Address 由 10001 开始。 但是通信协议内取后面四位数, 且由零起算, 例如: 于文件上 Relay Address 为 10678 ,其通信协议内转换的 Address 为 677 。 由 Device Address 23 读取 Relay Address 10102 10134 的 D0 资料,通 信协议内 Start Address 为 101 ,读取点数 33 。 Query Message 通信内容 十六进制 Device Address 17 Func

42、tion Code 02 Start Address (Hi byte) 00 Start Address (Lo byte) 65 No. of points (Hi byte) 00 No. of points (Lo byte) 21 回传资料以一个 Byte 即 8 bits 为一组, 每一个 Bit 表示一点 Relay On/Off 状态。例如下表 Data(Relay 109 102) 的状态为 ON-OFF-ON-OFF-ON-OFF-ON-OFF 。 Data(Relay 117 110) 的状态为 OFF-ON-OFF-OFF-OFF-ON-OFF-ON 。 Data(Re

43、lay 125 118) 的状态为 OFF-OFF-ON-OFF-OFF-ON-ON-ON 。 Data(Relay 133 126) 的状态为 ON-OFF-OFF-OFF-OFF-OFF-ON-ON 。 Data(Relay 134 134) 的状态为 ON 。 (前面 7 bit 不算, 因为只到 Relay 134 为止) Response Message 通信内容 十六进制 Device Address 17 Function Code 02 Byte count 05 Data (Relay 109 102) AA Data (Relay 117 110) 45 Data (Rel

44、ay 125 118) 27 Data (Relay 133 126) 83 Data (Relay 134 134) 01 图(2-9) :Example of Function Code - 2 Message Function Code-3 : 读取 AO 资料, 于 Modbus 规定 Register Address 由 40001 开始。但是通信协议内取后面四位数,且由零起算,例 如:于文件上 Register Address 为 44321 ,其通信协议内 转换的 Address 为 4320 。 由 Device Address 41 读取 Register Address

45、40765 40770 的 A0 资料, 通信协议内 Start Address 为 764 ,读取点数 6 。 Query Message 通信内容 十六进制 Device Address 29 Function Code 03 Start Address (Hi byte) 02 Start Address (Lo byte) FC No. of registers (Hi byte) 00 No. of registers (Lo byte) 06 回传资料以两个 Bytes 表示 16 bits 整数值。例如下表 Register 40765 整数值:99 Register 40766

46、 整数值:12336 Register 40767 整数值:1417 Register 40768 整数值:789 Register 40769 整数值:767 Register 40770 整数值:1 Response Message 通信内容 十六进制 Device Address 29 Function Code 03 Byte count 0C Data-1 (Hi byte) 00 Data-1 (Lo byte) 63 Data-2 (Hi byte) 30 Data-2 (Lo byte) 30 Data-3 (Hi byte) FA Data-3 (Lo byte) 77 Da

47、ta-4 (Hi byte) 03 Data-4 (Lo byte) 15 Data-5 (Hi byte) 02 Data-5 (Lo byte) FF Data-6 (Hi byte) 00 Data-6 (Lo byte) 01 图(2-10) :Example of Function Code - 3 Message Function Code-4 : 读取 AI 资料, 于 Modbus 规定 Register Address 由 30001 开始。但是通信协议内取后面四位数,且由零起算,例 如:于文件上 Relay Address 为 30988 ,其通信协议内转 换的 Address 为 987 。 由 Device Address 30 读取 Register Address 30123 30127 的 AI 资料, 通信协议内 Start Address 为 122 ,读取点数 5 。 Query Message 通信内容

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报