libmodbus--使用记录

这篇博客详细介绍了libmodbus库的使用,包括官方主页、基本使用顺序、RTU和TCP模式的配置,以及各种功能码的寄存器操作。重点讲解了RTU模式的RTS设置和TCP模式的客户端连接。还提供了读取和写入位、寄存器的函数及操作示例。
摘要由CSDN通过智能技术生成

1、官方主页

主页
手册

2、基本使用顺序

(1)初始化指针;
(2)建立连接;
(3)设置从站ID;
(4)读取保持寄存器/读取输入寄存器/读取位;
(5)写单寄存器/写多寄存器/写多位数据;
(6)关闭连接;

3、RTU模式

(1)初始化RTU指针—串口

modbus_t* modbus_new_rtu(const char *device, 
int baud, 
char parity,                                   
int data_bit, 
int stop_bit);

(2)设值串口模式

#define MODBUS_RTU_RS232 0
#define MODBUS_RTU_RS485 1
MODBUS_API int modbus_rtu_set_serial_mode(modbus_t *ctx, int mode);//设值
MODBUS_API int modbus_rtu_get_serial_mode(modbus_t *ctx);//获取

(3)设值RTS模式

#define MODBUS_RTU_RTS_NONE   0
#define MODBUS_RTU_RTS_UP     1
#define MODBUS_RTU_RTS_DOWN   2

MODBUS_API int modbus_rtu_set_rts(modbus_t *ctx, int mode);
MODBUS_API int modbus_rtu_get_rts(modbus_t *ctx);

说明:
设置发送模式的请求,以便在RS 485串行总线上进行通信。默认情况下,模式设置为Modbus_RTU_RTS_NONE,在将数据写入线路之前不发出信号。要启用RTS模式,必须使用MODBUS_RTU_RTS_UUP或MODBUS_RTU_RTS_down值,这些模式启用RTS模式并同时设置极性。当使用Modbus_RTU_RTS_UP时,在启用RTS标志的情况下进行ioctl调用,然后在延迟1ms后将数据写入总线上,然后在禁用RTS标志的情况下进行另一个ioctl调用,并再次发生1ms的延迟。Modbus_RTU_RTS_down模式应用相同的过程,但使用反转的RTS标志。
(4)设值RTS模式的延时

MODBUS_API int modbus_rtu_set_rts_delay(modbus_t *ctx, int us);
MODBUS_API int modbus_rtu_get_rts_delay(modbus_t *ctx);

使用例子:

modbus_t *ctx;
uint16_t tab_reg[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值