【Pmac】PMAC QT联合开发中各种可能遇到的坑

使用QT编写PMAC上位机程序时,利用QT中的dump工具可以将pcommserver.exe转化为pcommserverlib.h和pcommserverlib.cpp文件,然后将这两个文件添加到工程目录中就可以调用其中的函数了。具体可以看我之前的文章。

1. 错误 C2027 使用了未定义类型“PCOMMSERVERLib::DEVUPLOAD”

首先遇到第一个坑,将pcommserverlib.h和pcommserverlib.cpp文件添加并运行会提示如下错误。

错误 C2027 使用了未定义类型“PCOMMSERVERLib::DEVUPLOAD” (编译源文件 qtpmaccommunicate.cpp)

在这里插入图片描述
(在图片中我将pcommserverlib.h重命名为pcommdevice.h。.cpp同样进行重命名)

解决办法!
将pcommserverlib.h文件中9915行和11720行的Upload函数注释掉。这样程序就可以正常运行了,但缺点是不能在上位机软件中使用upload功能,因为我们把这个函数的定义给注释掉了。
我的QT版本是5.12.2,不知道是不是因为QT版本的问题导致的。有大神能完美解决的话要给我留言一下呀!
在这里插入图片描述

2. 输入了正确的pmac的ip地址,没有显示可选的pmac设备

第二个坑
在调用SelectDevice函数选取pmac设备时总是显示PMAC devices not registered,就算是你输入了正确的pmac的ip地址,test也成功,但就是没有显示可选的pmac设备。
在这里插入图片描述
解决办法:
将VS或QT或者你的EXE文件已管理员模式运行就可以了!!!

3. Pmac DTC-28B无读数

第三个坑
PMAC模数转换板DTC-28B的接线问题。在我的项目中使用到了力传感器,输出±5V模拟量信号。之前发现不论怎么按压力传感器,clipper中m105的读数不会变化。经检查发现,接线人员将28B引脚定义整反了!注意,从28B有缺口的一侧开始是1号引脚。
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
PComm 库函数 PComm 库函数是台湾MOXA公司提供的,他为用户提供了基于win32 api的开发接口。 PComm库函数分为7大类 控制函数、数据输入函数、数据输出函数、状态函数、事件驱动函数、传输文件函数、特殊设定函数 上述函数均返回int型数据,若函数调用成功则返回0,否则返回一个负整数。 控制函数主要包括 sio_open(PortNum) 打开串口 sio_close(PortNum) 关闭串口 sio_ioctl(PortNum, baud, mode)设置串口的工作模式,包括 波特率,数据位元,停止位,效验等 sio_flush(portNum,func)清除发送、接收缓冲区 其func 为0清空输入 ,为1清空输出,为2清空输入输出 sio_SetWriteTimeouts(int port,DWORD TotalTimeouts):设置串口写操作的超时。 sio_lctrl(Portnum,mode) 设置串口RTS/DTS。 待定 数据输入函数主要包括 sio_getch(PortNum) 从输入缓冲区读一个字符 sio_read(PortNum,buf,len) 从输入缓冲区读指定个数的字符 sio_iqueue(Portnum)读取输入缓冲区的字符长度 数据输出函数主要包括 sio_putch(PortNum) 写一个字符到输出缓冲区 sio_write(PortNum,buf,len)写指定个数的字符到输出缓冲区 状态函数主要包括 sio_lstatus(portNum)获取串口的CTS,DSR,DCD,RI线的状态 sio_getbaud(portNum)获取串口的波特率 sio_getmode(portNum)获取串口的工作模式。对应sio_ioct函数 事件函数主要包括 sio_term_irq(portNum,func,code) 当接收到指定字符时响应事件,func为回调函数名,code为指定的字符 sio_cnt_irq(PortNum,func,count) 当接收到指定个数字元时响应事件,func为回调函数名,count接收的个数 传输文件函数主要包括 sio_FtASCIITx(portNum,fname,func,key)发送一个文本文件 sio_FtASCIIRx(portNum,fname,func,Key,sec)接收一个文本文件 int i,Ret,DataLen; FILE *fp1; uchar RetDataC[30],WriteData[24],PSC[5]; Ret = sio_open(port); if (Ret != SIO_OK ) return(-1);//打开串口错误 Ret = sio_ioctl (port, B9600, P_NONE | BIT_8 | STOP_1 ); if (Ret != SIO_OK) { sio_close(port); return(-2);//设置串口参数失败 } /*Ret = sio_lctrl (port, C_DTR | C_RTS ); if (Ret != SIO_OK) { sio_close(port); return(-2);//设置串口参数失败 }*/ /*Ret = sio_flush(port,2); if (Ret != SIO_OK){ sio_close(port); return(-3);//清空 输入和输出缓冲区的数据 }*/
Power PMAC是一种先进的运动控制器。它是由美国公司Delta Tau Data Systems开发的,旨在提供高性能的运动控制能力。Power PMAC具有强大的处理能力和灵活的编程环境,可以实现高速、精确的运动控制。 Power PMAC采用了先进的数字信号处理技术和实时控制算法,可以实现对多个轴的同步运动控制。它支持各种运动控制模式,如点位、插补、跟踪等,并具有良好的运动平滑性和稳定性。Power PMAC还通过内置的伺服控制器和编码器接口,实现对伺服电机的闭环控制,提高运动精度和稳定性。 另外,Power PMAC具有丰富的通信接口,可以与其他设备进行高效的数据交换和通信。它支持以太网、USB、串口等多种通信协议,并提供了简单易用的编程接口和命令集。这使得Power PMAC与其他设备的集成变得更加便捷,可以方便地实现数据传输、监控和报警功能。 值得一提的是,Power PMAC还提供了强大的软件开发平台和开发工具。它支持多种编程语言,如C、C++和MATLAB,开发人员可以根据自己的需求选择最合适的编程方式。同时,Power PMAC提供了完善的调试和测试工具,可以方便地进行程序调试和运行状态监测。 总之,Power PMAC是一种功能强大、可靠性高的运动控制器。它具有高性能的运动控制能力、丰富的通信接口和灵活的软件开发平台,适用于各种工业自动化领域,包括机械加工、自动化生产线等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天才小小傲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值