当前位置: 首页 > news >正文

Modbus协议学习第七篇之libmodbus库API介绍(modbus_write_bits等)

写在前面

        在第六篇中我们介绍了基于libmodbus库的演示代码,那本篇博客就详细介绍一下第六篇的代码中使用的基于该库的API函数。另各位读者,Modbus相关知识受众较少,如果觉得我的专栏文章有帮助,请一定点个赞,在此跪谢,这是我能持续更下去的动力!

API介绍

modbus_new_rtu() 

        完整函数签名为:

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

        函数功能介绍(原文):The modbus_new_rtu() function shall allocate and initialize a modbus_t structure to communicate in RTU mode on a serial line.

        翻译一下就是:该方法将会分配并初始化一个modbus_t的结构体,以在串行线上进行RTU模式的通信,即可以理解为建立一个RTU容器。具体的参数含义介绍如下:


modbus_set_slave()

        完整的函数签名为:

int modbus_set_slave(modbus_t *ctx, int slave);

        函数功能介绍(原文):The modbus_set_slave() function shall set the slave number in the libmodbus context.

        翻译一下就是:该方法将会在libmodbus上下文中设置从机号。即先调用modbus_new_rtu()函数来生成一个上下文,然后再在这个上下文中设置你想要进行通讯的从机号,即在modbus slave中设置的Slave ID。具体参数含义介绍如下:


modbus_connect()

         完整的函数签名为:

int modbus_connect(modbus_t *ctx);

        函数功能介绍:The modbus_connect() function shall establish a connection to a Modbus server, a network or a bus using the context information of libmodbus context given in argument.

        翻译一下就是:基于前面给定的libmodbus上下文来建立一个连接,连接正常建立后,即可开始进行通信。参数无需介绍,即libmodbus上下文。


modbus_write_bit()

        完整的函数签名为:

int modbus_write_bit(modbus_t *ctx, int addr, int status);

        函数功能介绍:The modbus_write_bit() function shall write the status of status at the address addr of the remote device. The value must be set to TRUE or FALSE.

        翻译一下就是:该方法将会在远端设备的指定addr处将状态值写入(值为0或1,即TRUE or FALSE),具体参数介绍如下:


modbus_read_bits()

        完整的函数签名为:

int modbus_read_bits(modbus_t *ctx, int addr, int nb, uint8_t *dest);

        函数功能介绍:The modbus_read_bits() function shall read the status of the nb bits (coils) to the address addr of the remote device. The result of reading is stored in dest array as unsigned bytes (8 bits) set to TRUE or FALSE.

        翻译一下就是:该方法将会读取远端设备指定addr地址的nb个bit的状态信息,然后将其值存入到dest数组中。具体参数介绍如下:


modbus_write_bits()

        完整的函数签名为:

int modbus_write_bits(modbus_t *ctx, int addr, int nb, const uint8_t *src);

        与前面介绍的modbus_write_bit()类似,只不过这个是批量对远端设备进行写入,待写入的值存储在src中。src数组中的值必须包含状态值。

        另外还有很多读写方法,类似modbus_write_registers()等等,大家可以去官网进行查阅并理解,传送门:libmodbus reference.

http://www.lryc.cn/news/292929.html

相关文章:

  • 第九节HarmonyOS 常用基础组件13-TimePicker
  • 力扣刷题-55.跳跃游戏
  • Ruby安装演示教程
  • 前端使用vue-simple-uploader进行分片上传
  • Java 源代码中常见的数据类型
  • Web3行业研究逐步加强,“链上数据”缘何成为关注焦点?
  • 逸学区块链【solidity】真随机数
  • 【WPF.NET开发】优化性能:对象行为
  • uniapp中封装一个svg转base64的组件
  • QT播放gstreamer命令(三)---使用QMediaPlayer
  • Ubuntu22扩大分区
  • 数据结构篇-05:哈希表解决字母异位词分组
  • 添加了gateway之后远程调用失败
  • C#,哥伦布数(Golomb Number)的算法与源代码
  • JVM学习
  • Visual Studio 20XX中utf-8中文在控制台显示乱码
  • 拥抱个人成长与社会进步:自我认知与开放心态的相互影响
  • 【PostgreSQL内核学习(二十五) —— (DBMS存储空间管理)】
  • 2024年 复习 HTML5+CSS3+移动web 笔记 之CSS遍 第5天
  • SpringBoot使用Kafka详解含完整代码
  • 解决:java -jar 在cmd中运行 程序卡顿,卡死的 问题。BIO和NIO案例保存
  • LeetCode第824题 - 山羊拉丁文
  • [Python] 什么是逻辑回归模型?使用scikit-learn中的LogisticRegression来解决乳腺癌数据集上的二分类问题
  • 那些不输于乙游男主人设的国漫男主
  • Apache Doris 整合 FLINK CDC + Iceberg 构建实时湖仓一体的联邦查询
  • 关于华为应用市场上架,申请权限未告知目的被驳回问题的简单处理方式
  • 【ElasticSearch】概述
  • 十进制转十六进制 C/C++蓝桥杯基础试题BASIC-10
  • 【LVGL环境搭建】
  • 【c语言】简单贪吃蛇的实现