libmodbus学习(一)之Modbus RTU-master

本文介绍了Modbus协议的三种类型:Modbus-RTU、Modbus-ASCII、Modbus-TCP,重点讲解了Modbus RTU的特点和应用。详细阐述了libmodbus库的安装、API使用,特别是读取和写入操作。同时,通过主从站通信流程和RTU测试程序,解析了功能码03(读多个保持寄存器)的报文分析。
摘要由CSDN通过智能技术生成

一、Modbus 协议

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

三者报文格式的区别如下:
image.png
RTU相比较ASCII具备更紧凑的报文流,传输效率更高,目前MODBUS-ASCII已经应用较少。

Modbus的操作对象有4种:线圈、离散输入、保持寄存器、输入寄存器
image.png
常用功能码如下:
image.png

二、安装移植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实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值