请问用1200上的以太网口控制其他公司的带以太网口的驱动器,打算使用MB_SERVER块,但是对方的通讯协议我看不懂,比如说功能代码、查询寄存器个数、每帧数据前加入16个字节的GUID帧标志都是干什么的啊?
直接说,我想要读取寄存器地址512H:故障状态信息,517H:直流母线电压Ua(V);518H:直流母线电流Idc(A),请问在MB_SERVER里我该如何做啊?
这是对方给的协议:
"03 读多个寄存器"
查询 QUERY Field Name Example(Hex 32bit)
Slave Address从机地址 0000 0001
Function功能代码 0000 0003
Starting Address开始地址 0000 0000
No of Register查询寄存器个数 0000 0005
Error Check ( CRC32) (非MODBUS-TCP时使用)
响应 RESPONSE Field Name Example(Hex 32bit)
Slave Address从机地址 0000 0001
Function功能代码 0000 0003
No of Bity查询寄存器数量(No of Register) 0000 0005
Data 1 0000 0004
Data 2 1000 5000
Data 3 2000 2555
Error Check ( CRC32) (非MODBUS-TCP时使用)
"03 读多个寄存器"
查询 QUERY Field Name Example(Hex 32bit)
Slave Address从机地址 0000 0001
Function功能代码 0000 0003
Starting Address开始地址 0000 0000
No of Register查询寄存器个数 0000 0005
Error Check ( CRC32) (非MODBUS-TCP时使用)
响应 RESPONSE Field Name Example(Hex 32bit)
Slave Address从机地址 0000 0001
Function功能代码 0000 0003
No of Bity查询寄存器数量(No of Register) 0000 0005
Data 1 0000 0004
Data 2 1000 5000
Data 3 2000 2555
Error Check ( CRC32) (非MODBUS-TCP时使用)
1、本规约以以太网为主,兼容SCI通信。 本身协议不区分LAN、SCI,硬件不同,通过硬件抽象层修改、调整,独立应用协议本身
2、本规约不做数据结构内部预留,可以在地址任意部位插入新的数据,被查地址被占用,后续地址重新排位。
3、在以太网时每帧数据前加入16个字节的GUID帧标志。
地址:0x0000 0200-0x0000 02FF(寄存器数量256,支持功能码03)
寄存器地址H 数据类型(32位) 数据格式 数据范围 功能说明
512 Uint32 见注释0 见注释0 故障状态信息
513 float x 0无效数据/1停机/2待机/3运行 运行状态信息
514 float x 0无效数据/1实验停止/2实验中 实验状态信息
515 float 见注释1 见注释1 未用
516 float xx.xxxxx 0-100 电源内阻(Ω)
517 float xxxx.xx 0-10000 直流母线电压Ua(V)
518 float xxxx.xx 0-10000 直流母线电流Idc(A)
519 float xxxx.xx 0-10000 输出电压直流部分(V)
520 float xxxx.xx 0-10000 输出电压谐波部分(V)
521 float xxxx.xx 0-10000 输出电流直流部分(A)
522 float xxxx.xx 0-10000 输出电流谐波部分(A)
523 float xxxx.xx 0-10000 输出功率(kW)