GEIO控制包分布式控制系统控制器
-
¥40000.00
启动 MODBUS 事务处理的客户机创建 MODBUS 应用数据单元。功能码向服务器指示将执行哪种操作。
MODBUS 协议建立了客户机启动的请求格式。
用一个字节编码 MODBUS 数据单元的功能码域。有效的码字范围是十进制 1-255(128-255 为异常响应保留)。当从客户机向服务器设备发送报文时,功能码域通知服务器执行哪种操作。
向一些功能码加入子功能码来定义多项操作。
从客户机向服务器设备发送的报文数据域包括附加信息,服务器使用这个信息执行功能码定义的操作。这个域还包括离散项目和寄存器地址、处理的项目数量以及域中的实际数据字节数。
在某种请求中,数据域可以是不存在的(0长度),在此情况下服务器不需要任何附加信息。功能码仅说明操作。
如果在一个正确接收的 MODBUS ADU 中,不出现与请求 MODBUS 功能有关的差错,那么服务器至客户机的响应数据域包括请求数据。如果出现与请求 MODBUS 功能有关的差错,那么域包括一个异常码,服务器应用能够使用这个域确定下一个执行的操作。
例如,客户机能够读一组离散量输出或输入的开/关状态,或者客户机能够读/写一组寄存器的数据内容。
当服务器对客户机响应时,它使用功能码域来指示正常(无差错)响应或者出现某种差错(称为异常响应)。对于一个正常响应来说,服务器仅对原始功能码响应。
输入与输出之间以及比特寻址的和字寻址的数据项之间的区别并没有暗示任何应用操作。如果这是对可疑对象核心部分自然的解释,那么这种区别是可完全接受的,而且很普通,以便认为四个表格全部覆盖了另外一个表格。
对于基本表格中任何一项,协议都允许单个地选择 65536 个数据项,而且设计那些项的读写操作可以越过多个连续数据项直到数据大小规格限制,这个数据大小规格限制与事务处理功能码有关。很显然,将通过 MODBUS 处理的所有数据放置在设备应用存储器中。但是,存储器的物理地址不应该与数据参考混淆。要求仅仅是数据参考与物理地址的链接。
MODBUS 功能码中使用的 MODBUS 逻辑参考数字是以 0 开始的无符号整数索引。
MODBUS 模型实现的实例
下例实例示出了两种在设备中构造数据的方法。可能有不同的结构,这个文件中没有全部描述出来。每个设备根据其应用都有它自己的数据结构。
实例 1:有 4 个立块的设备
下例实例示出了设备中的数据结构,这个设备含有数字量和模拟量、输入量和输出量。由于不同块中的数据不相关,每个块是相互立。按不同MODBUS 功能码访问每个块。
请求参数描述:
指配号为14的MODBUS封装接口识别读识别码请求。定义四种访问类型:
01:请求获得基本设备识别码(流访问)
02:请求获得正常设备识别码(流访问)
03:请求获得扩展设备识别码(流访问)
04:请求获得特定识别码对象(访问)
在识别码数据不适合单响应的情况下,可以需要几个请求/响应事务处理。对象id字节给出了获得的个对象识别码。对于个事物处理来说,客户机设置对象id为0,以便获得设备识别码数据的开始。对于下列事务来说,客户机设置对象id为前面响应中服务器的返回值。
如果对象id不符合任何已知对象,那么服务器象指向对象0那样响应(从头开始)。
在单个访问的情况下:ReadDevId代码04,请求中的对象id给出了获得的对象识别码。
如果对象id不符合任何已知对象,那么服务器返回一个异常码=02(非法数据地址)的异常响应。
响应参数描述:
功能码: 功能码 43(十进制)0x2B (十六进制)
MEI 类型: 为设备识别码接口指配号的 14 (0x0E) MEI 类型
ReadDevId 码: 与请求 ReadDevId 码相同:01、02、03 或 04
一致性等级: 设备的识别码一致性等级和支持访问的类型
01:基本识别码(仅流访问)
02:正常识别码(仅流访问)
03:扩展识别码(仅流访问)
81:基本识别码(流访问和单个访问)
82:正常识别码(流访问和单个访问)
83:扩展识别码(流访问和单个访问)
随后更多: 在 ReadDevId 码 01、02或03(流访问)的情况下,
如果识别码数据不符合单个响应,那么需要几个请求/响应事务处理。
00:对象不再是可利用的
FF:其它识别码对象是可利用的,并且需要更多 MODBUS 事务处理
在 ReadDevId码04(单个访问)的情况下,
设置这个域为00。
下一个对象 Id: 如果“随后更多=FF”,那么请求下一个对象的识别码
如果“随后更多=00”,那么设置为00(无用的)对象号
在响应中返回的对象识别码号
(对于单个访问,对象号码= 1)
对象 0.id: PDU 中返回的个对象识别码(流访问)或请求对象的识别码(单个访问)
Object0.长度: 个对象的字节长度
Object0.值: 个对象的值(对象0.长度字节)
…
ObjectN.id: 后对象的识别码(在响应中)
ObjectN.长度: 后对象的字节长度
ObjectN.值: 后对象的值(对象N.长度字节)
“基本设备识别码”的读设备识别码请求的实例:在这个实例中,一个响应PDU中发送所有的报文。