libmodbus学习(一)之Modbus RTU-master

一、Modbus 协议

Modbus簇主要有三种协议:Modbus-RTU、Modbus-ASCII、Modbus-TCP
工控行业通常的设备组网看,三者应用的范围如下:
libmodbus学习(一)之Modbus RTU-master_第1张图片
三者模型区别如下:
libmodbus学习(一)之Modbus RTU-master_第2张图片
如上图所示,串行传输的物理层是RS-485或RS-232,数据链路层是Modbus的串行传输协议;Modbus TCP传输的1、2、3、4层实现和日常所见的以太网、因特网一样,Modbus默认采用的TCP端口号是502。

三者报文格式的区别如下:
libmodbus学习(一)之Modbus RTU-master_第3张图片
RTU相比较ASCII具备更紧凑的报文流,传输效率更高,目前MODBUS-ASCII已经应用较少。

Modbus的操作对象有4种:线圈、离散输入、保持寄存器、输入寄存器
libmodbus学习(一)之Modbus RTU-master_第4张图片
常用功能码如下:
libmodbus学习(一)之Modbus RTU-master_第5张图片

二、安装移植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);

/* 
  以串口的方式创建libmobu

你可能感兴趣的:(Modbus,modbus)