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)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2022-09-21 Qt视觉软件开发过程中,问题记录与思考
2022-09-21 QPixmap::fromImage(img)访问冲突