加载中...

ModBus功能码异常和功能码错误代码

前言

仅供自己学习记录

Modbus功能码异常功能码错误码

  • Modbus协议主要构成是地址码/标识码,功能码,寄存器地址,数据报文等内容。由于modbus协议是请求/应答通信协议,其其中功能码
    主要用于表述该数据报文执行的功能,当服务器对客户机进行响应时,它使用功能码域来指示正常响应(无差错)或者异常响应(即出现某
    种差错),其中的modbus协议的功能码众多,在此我们一-列出与大家分享。
    功能码表

  • 其中物理离散量输入和输入寄存器只能有I/O系统提供的数据类型,即只能是由I/0系统改变离散量输入和输入寄存器的数值,而上位机程序
    不能改变的数据类型,在数据读写上表现为只读,而内部比特或者物理线圈和内部寄存器或物理输出寄存器(保持寄存器)则是上位机应用
    程序可以改变的数据类型,在数据读写上表现为可读可写。
    错误代码表

  • 我们以Modbus RTU协议为例,地址码为0x01, 写操作0x 10,寄存器地址为0x018E,CRC校验。如寄存器可读写的话,返回正常,如寄
    存器只读,返回异常。
    下发指令: 01 1001 8E 0001 02 00 00 69 BE (向寄存器0x018E写入一个数值为0的数据)
    正确回应指令: 01 10 01 8E 000160 1 E(向寄存器地址0x018E写操作-一个寄存器)
    错误回应指令: 01 90 01 8D C0 (写操作非法功能,可能是向输入寄存器写数据)

posted @ 2022-05-25 11:04  迪丽甜粑  阅读(2473)  评论(0编辑  收藏  举报