modbustcp通讯协议是以太网协议吗?
ModBus是一种请求-应答协议,它采用了一个主从式的实现。在主仆关系中,交流通常是两两进行的。装置必须开始一个请求,并且等待一个响应,开始装置(主要装置)负责每一个相互作用的开始。一般情况下,主机是 HMI (Human Interface, HMI)或者 SCADA (Control and Data Digital Automatic Control, SCADA),从机是 PLC (Programmable Logic Control, PLC)或者 PAC (Programmable Automatic Control, PAC)。在不同的协议层中,要求与应答的内容与传送信息的网路层。
乐发∨IlModBus通讯协定是一种包含 RTU, ASCII, TCP的应用层报文传送协定。标准模块总线协议的物理层接口有RS232,RS485, Ethernet等。
模块化的 RTU和 ASCII模块都采用了串口方式。其中,以二进制为代表的 ModbusRTU具有数据结构紧凑、通讯高效等优点,因而得到了广泛的应用。ModbusASCII通过 ASCII代码进行传送,并且在字节的开头和结尾都有特定的字符。它的传输效率比 ModbusRTU要低得多。ModBusTCP是一种 ModBus通讯,它在工业以太网路上的 TCP/IP网路上传送。ModBus资料传送为客户机与以太网 TCP/IP网路相连的伺服器提供了一种即时通讯。
乐发∨Il2.Modbus协议层
乐发∨Il在原方案中, MODBUS是一种以串口为基础的单一通信协议,无法进行分层。在此过程中,为了改变串行通讯所采用的报文格式,以及支持 TCP/IP与 UDP (User Datapacitation Protocol, UDP)等多种应用。这使得核心协议(digital protocol data, PDU)与网络层(application data unit, ADU)相分离。
ModBus 协议是一种与基础通讯层无关的简易协议数据单位(PDU).通过具体的总线或者网络的 ModBus协议图可以将一些额外的领域引入到应用数据单位(Application Data Unit, ADU)上。
协议数据单元(PDU)
乐发∨IlPDU和它的处理程序组成了 ModBus应用程序协议的核心.在此基础上,给出了协议数据单元的格式,协议中所用到的数据概念,如何使用函数码来存取数据,并给出了函数码的实现方法和约束条件。modbusPDU格式是指函数编码,后面是一套相应的数据。资料的尺寸及内容是以函数码来规定的,并且所有的 PDU (函数码及资料)的尺寸不得大于253个字节。每一种函数编码都有一种具体的动作,这些动作可以通过从机来灵活地执行。
一般而言, MODBUS所能存取的资料储存在四种资料库中的一种:线圈状态,分立输入,保持寄存器,以及输入寄存器。这些资料库会定义所包含之资料的型别与存取。由于该装置在本机存放,因此可以从该装置直接存取该资料。取而代之的是, ModBus的宿主需要使用不同的函数代码来存取这个数据。每一个模块的表现如表1所示。
乐发∨Il应用数据单元(ADU)
许多网络协议都是可用的,而不只是 PDU内核所定义的那些功能。最常用的通讯协定是串口通讯、 TCP/IP通讯协定,但是其它通讯协定,例如 UDP,也可以被使用。为了在 MODBUS的各个层次间进行资料的传送, MODBUS含有一套适合每一网路协定的 ADU。
Adu有三个标准格式,即 TCP,远程终端单元(Telecommunicational-terminal unit, RTU)和 ASCII。传统的串行线一般采用 RTU、 ASCIIAdu等,传统的 TCP/IP、 UDP/IP等都采用了 TCP。
乐发∨Il3.Modbus数据帧结构
3.1ModbusRTU数据帧结构
乐发∨IlModbusRTU协议在主机查询中放置从装置(或广播)地址,定义所请求的动作的函数代码,待发送的数据,以及 CRC确认,从而建立一个查询信息;从机的应答信息包同样使用了 ModbusRTU的信息结构,其中包含了从机的地址,请求操作的函数代码,待发送的数据,以及 CRC检验;如果收到讯息时出现了一个错误,或是从机不能完成要求的动作,那么从机就会发出一个例外讯息来回应。ModbusRTU的数据框架是这样的:
modbus RTU通讯协议
ModbusRTU因其二进制表达方式、数据结构紧凑、通讯效率高而被广泛采用。
通讯传送模式:
乐发∨Il通讯传送被分成两部分,分别是单独的报头和已编码的资料传送。还符合 ModbusRTU通讯协议的下列通讯传送模式定义:二位元组检错码。
通讯规约
将通讯指令发送给仪表后,与对应的通讯指令一致的仪表接受通讯指令,删除通讯指令,读出资讯,若无差错,仪表完成工作;然后向发送者返回执行结果。其中包含了地址码,操作函数码,操作后的结果资料,以及错误校验码。如果出错,就没有信息被发送。
位址代码
乐发∨Il位址代码是讯息框架从0至255的第壹个字节(8比特)。这个位元组代表了使用者设定位址的从机,会从主机上接收到其所传送的资讯。每台从机都必须拥有唯壹的位址编码,而唯有符合位址编码的从机,才可以回应回路。在从属设备发送回来的信息中,一个等价的地址码表明了该信息的来源。
函数码
乐发∨Il由主设备发出的函数码,告知从设备将执行哪些工作。函数代码列在表4中,它们有具体的意义,也有具体的动作。
重置单片机
向单一寄存器中写入已设定的贰进制值
数据区
乐发∨Il数据区中含有来自内部的返回信息,或者是来自内部的操作,或者是来自内部的。这个资讯可以是数字,参考位址等等。举例来说,若函数程式码指示从属程式读出该寄存器值,资料区段就必须包含该寄存器所要读出的开始位址及读出的长度。地址和数据信息因从机而异。
差错校验码
乐发∨Il主从机可以通过校验码来确定所收到的消息是否有差错。在传递的过程中,可能会受到电子噪音等因素的影响而产生细微的变化。错误校正码保证了主机和从机在传送时不会出现错误。这使得整个系统更加安全,更加高效。利用CRC-16进行了误差检验。
乐发∨Il注意:所有的信息框架都采用同样的格式:地址代码,功能代码,数据区域,错误检测代码。
乐发∨Il与其它通讯协议相比, MODBUS的应用更为广泛,其主要理由有:
1) ModBus能够支持工业水利遥测终端机RTU支持的RS-23285 (串行)等许多电子接口,并且能够通过双绞线,光纤,无线等不同的媒体进行通信。
2)模总线框架结构简洁,容易理解,便于研制。
3)具有良好的可靠性。ModBus协议要求对数据进行检查。在 ASCII方式和 RTU方式分别采用了 LRC和16比特的 CRC两种方式。另外, MODBUS系统还采用了主从式的定时收发方式。在实际应用中,若从站发生故障、停电等情况,则由主端来判断是否发生故障,并在故障排除后,再由主端自动恢复。