windows使用modbus开源纯C库通过TCP 读写寄存器的值
1.先下载 modbusPoll 和 modbusSlave 调试软件 (我的百度网盘有)
2.打开从站软件 modbusSlave
Ip 就用127.0.0.1 port 都用默认就是
用 Qt 写了个主站 测试 纯c的modbus库怎么样 怎么编译这个库 在上一节有说到
modbus_t *m;
//存放读取出来的寄存器的值
uint16_t tab_reg[32] = {0};
// m = modbus_new_rtu("COM1",9600,'N',8,1);
//从站的ip
m = modbus_new_tcp("127.0.0.1",502);
modbus_set_slave(m,1);
modbus_connect(m);
struct timeval t;
t.tv_sec = 0;
t.tv_usec = 1000000;
modbus_set_response_timeout(m,t.tv_sec,t.tv_usec);
int regs = -1;
// 给从站 地址为2 的写值 为100
regs = modbus_write_register(m,2,100);
//读从站 从0 开始 读3个偏移量的 值 (就是读0-3)放到 tab_reg 数组中
regs = modbus_read_registers(m,0,3,tab_reg);
qDebug()<<"registers num:"<<regs;
开始测试
这是 我提前设置好的 从站的值
运行 qt程序
寄存器 读取和 写入都成功了
用 串口的方式也一样