modbus
小鱼仙官
这个作者很懒,什么都没留下…
展开
-
libmodbus 函数对应
modbus_write_bit(); //Fucntion选择为 01 write Coil Status(0x)modbus_write_bits(); //Fucntion选择为 01 write Coils Status(0x)modbus_read_bits(); //Fucntion选择为 01 Read Coil Status(0x)modbus_read_input_bits(); //F.原创 2022-05-20 15:46:00 · 390 阅读 · 0 评论 -
Ubuntu C++ Modbus Tcp 伪代码
数据解析可以参考:Ubuntu C++ Modbus Rtu 伪代码_yuchunhai321的博客-CSDN博客modbus 网络通信(伪代码):void init(std::string ip, uint16_t port){ modbus_t *m_sensor_ctx = modbus_new_tcp(ip.c_str(), port); if(m_sensor_ctx == NULL) { printf("sensor modbus connet ip: %s faild",原创 2021-12-13 16:43:05 · 2831 阅读 · 0 评论 -
Ubuntu C++ Modbus Rtu 伪代码
根据自己实际情况进行修改modbus 串口通信(伪代码)://查表方式实现modbus crcstatic const uint8_t aucCRCHi[] = {0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40.原创 2021-12-13 13:36:27 · 1348 阅读 · 0 评论 -
C++ Modbus RTU 串口通信
Read Write Write Multiple Coil 01 05 15 Registers 03 06 16 串口通信时,写入数据后,modbus会回复数据。所以串口通信时不管读写都要先写入数据,才能读到数据。(好像是这个原理)字符串组成:...原创 2021-11-22 15:37:16 · 4436 阅读 · 0 评论 -
C++ modbus 通信中Long与Float数据解析
如图所示:Long或者Long Inverse接收到的数据解析:showData = array[0] << 16 | array[1];Float或者Float Inverse接收到的数据解析:float SENSOR::modbus_float(uint16_t value1, uint16_t value2){ float temp; char *Modbus_HoldReg[4]; Modbus_HoldReg[0] = ((char*)...原创 2021-08-16 08:58:33 · 4311 阅读 · 0 评论 -
ubuntu modbus 使用
目前使用的是一款测距传感器VL53L1, 再Ubuntu上用串口(usb转ttl)通信获取距离程序如下:#include <iostream>#include <modbus/modbus.h>#include <unistd.h>using namespace std;int main(){ cout << "Hello World!" << endl;// 读取: 50 03 00 34 00 01原创 2020-09-04 16:13:18 · 2070 阅读 · 3 评论