libmodbus库

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-tcp进行数据传输 - wangxiaobei2019 - 博客园 (cnblogs.com)

posted @   夕西行  阅读(458)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2022-09-21 Qt视觉软件开发过程中,问题记录与思考
2022-09-21 QPixmap::fromImage(img)访问冲突
点击右上角即可分享
微信分享提示