使用Modbuspoll控制下位机的一点经验

上位机:Modbuspoll-64Bit,Version 9.5.0,Build 1507

下位机:Robotiq夹爪

通信协议:Modbus RTU

物理连接:RS485转USB线

 1、首先、我们要打开夹爪原来的上位机软件(Robotiq User Interface)来确定下位机的ModbusRTU参数。

 2、然后,我们要在上位机里设置一下Slave ID也就是我们从机夹爪的地址:Setup->Read/Write Definition

将Slave ID更改成与下位机的地址一致即可:function有多个模式,这里我们只用到了两个一个是03:读取多个寄存器,另一个是16:写多个寄存器;address mode这里建议选择16进制模式即HEX(因为,说明书上给的报文就是16进制的);address这里填的是首个寄存器的地址,按说明书填写即可(我这里是03E8);quantity代表的是操作的寄存器的数量,这个也按需求更改即可;scan rate代表的是扫描率也就是发送速率,我这里设置为5ms,个人建议不要高于10ms,不然的话,指示灯会红蓝交替闪烁。到这里,上位机的环境就基本配置好了。

3、接下来就是实现上下位机通信连接了,先找到夹爪连接pc的串口,这里我的串口是COM5

4、打开Modbuspoll-> Connection->Connection Setup->Connection:Serial Port->Serial Settings:这里要选择刚才我们查找到的串口(我的是COM5,所以我选择的是COM5)

5、打开Robotiq User Interface软件->Modbus RTU Parameters,来保证上下位机的参数是一样的。

 
 

6、做好以上的工作之后,我们就可以向下位机发送报文了:Functions->Test Center->Send即可

成功后的上位机下位机效果如下图 :

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt是一种跨平台的C++应用程序开发框架,可以用于开发图形用户界面和网络应用。而Modbus协议是一种常用于工业自动化领域的通信协议,可以实现设备之间的数据传输。在Qt中使用Modbus协议读取下位机数据并显示数值,可以通过以下几个步骤实现。 首先,需要使用Qt的相关库函数来建立Modbus通信连接。可以使用QModbusDevice类来创建一个Modbus从设备对象,并指定通信参数和通信方式。然后,使用connectToSlave函数连接到实际的下位机设备。 接下来,需要使用Modbus协议的相关函数来读取下位机的数据。常用的读取函数有readInputRegisters和readHoldingRegisters,可以根据需要选择使用。这些函数可以指定读取的寄存器地址、长度和数据类型等参数,并通过返回值获取下位机返回的数据。 读取到下位机的数据后,可以通过Qt的图形界面框架来显示数值。可以使用QLabel、QTextEdit或QTableView等控件来显示数据。将读取到的数值赋值给相应的控件的text或data属性,并在显示界面上实时更新数值。 在进行数据读取和显示时,可以使用Qt的信号与槽机制实现异步操作。可以使用QModbusDevice类的readyRead信号来实现当有数据到达时的处理函数,这样可以避免阻塞主线程。 最后,在读取和显示完数据后,需要记得关闭Modbus通信连接,释放资源,以确保程序的稳定性和正确性。 总之,通过使用Qt的相关库函数和Modbus协议的函数,结合Qt的图形界面框架,可以实现在Qt应用程序中读取下位机数据并显示数值的功能。这样可以方便地监控和控制下位机设备,实现工业自动化控制

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值