回复: QT中实现modbus,使用libmodbus-master库,怎么实现
#6 回 5楼(feixiangxtu) 的帖子 [心雨星晴jay 07-29 16:38]
我调用了,界面是两个lineEdit,一个输入请求帧,一个输出响应帧。但是出错了
int rc;
int raw_req_length=0,req_length=0;
QString in,out;
QByteArray ba;
const uint8_t *req=0;
uint8_t *raw_req=0;
ctx=modbus_new_rtu("COM4",19200,'N',8,1);
in=ui->sendlineEdit->text();
ba=in.toLocal8Bit();
raw_req=(unsigned char*)ba.data();
rc=modbus_send_raw_request( ctx,raw_req,raw_req_length);//发送的请求帧
uint8_t *msg=0;
modbus_mapping_t *mb_mapping=0;
rc = modbus_reply(ctx,req,req_length,mb_mapping); //响应帧
out=QString::fromUtf8((const char *)msg);
ui->respondlineEdit->setText(out);
这样的话,运行起来,一输入请求帧点确定就出错,程序有问题。帮忙看看吧?
#7 [心雨星晴jay 07-30 13:59]
是用哪个函数调哪个呢,还是调一个解决所有问题?
#8 [feixiangxtu 07-31 10:15]
你可以下载一个modbus的master或者slave工具跟你的测试程序联调。确保你发送的数据的正确性。
#9 [心雨星晴jay 08-07 14:39]
解决了,正在逐个实现modbus中的功能
#10 回 心雨星晴jay 的帖子 [johnnyqin 07-16 10:47]
心雨星晴jay:解决了,正在逐个实现modbus中的功能 (2013-08-07 14:39)
楼主是怎么解决的,跪求分享啊,如果价格合理也是可以付费的