首页 > 其他分享 >libmodbus库

libmodbus库

时间:2023-09-21 18:24:20浏览次数:35  
标签:libmodbus int ip nb mapping tcp modbus

Modbus设备可分为主站(poll)和从站(slave)。主站只有一个,从站有多个,主站向各从站发送请求帧,从站给予响应。在使用TCP通信时,主站为client端,主动建立连接;从站为server端,等待连接。

所需的libmobus API(server端)

1、使用modbus_new_tcp创建一个modbus的上下文,ip地址为开发板自身的ip

modbus_t *ctx = modbus_new_tcp(const char *ip_address, int port); //开发板ip自行修改,port常用502

2、地址映射,其中 nb_registers 寄存器存储传输的数据

modbus_mapping_t* modbus_mapping_new(int nb_bits, int nb_input_bits, int nb_registers, int nb_input_registers);

3、监听连接

int socket = modbus_tcp_listen(modbus_t *ctx, int nb_connection);
modbus_tcp_accept(modbus_t *ctx, int *s);

4、阻塞接收数据

modbus_reply会自动解析modbus请求并做响应

modbus_reply(modbus_t *ctx, const uint8_t *req,int req_length, modbus_mapping_t *mb_mapping);

【参考】libmodbus学习(二)之Modbus TCP (betheme.net)

下载编译参考 使用libmodbus-tcp进行数据传输 - wangxiaobei2019 - 博客园 (cnblogs.com)

标签:libmodbus,int,ip,nb,mapping,tcp,modbus
From: https://www.cnblogs.com/xixixing/p/17720629.html

相关文章