一、Modbus 协议
Modbus簇主要有三种协议:Modbus-RTU、Modbus-ASCII、Modbus-TCP
工控行业通常的设备组网看,三者应用的范围如下:
三者模型区别如下:
如上图所示,串行传输的物理层是RS-485或RS-232,数据链路层是Modbus的串行传输协议;Modbus TCP传输的1、2、3、4层实现和日常所见的以太网、因特网一样,Modbus默认采用的TCP端口号是502。
三者报文格式的区别如下:
RTU相比较ASCII具备更紧凑的报文流,传输效率更高,目前MODBUS-ASCII已经应用较少。
Modbus的操作对象有4种:线圈、离散输入、保持寄存器、输入寄存器。
常用功能码如下:
二、安装移植libmodbus
libmodbus安装编译见:
https://www.cnblogs.com/bliss-/p/12376424.html
##三、libmodbus API
#####1 .初始化
/*
以TCP的方式创建libmobus实例
char *ip:连接的IP地址
int port: 连接的IP端口
*/
modbus_t *modbus_new_tcp(const char *ip, int port);
/*
以串口的方式创建libmobus实例