LabView尝试modbus通讯
最近课题需要用LabView实现modbus通讯,写下本篇文章的目的主要为了记录这一过程。文章写的不是很规范但完整记录了整个过程,希望能给看到的朋友们提供帮助。
-
电脑最开始labview程序面板中 函数-数据通信-中没有modbus模块。经过网上查资料,需要特意安装modbus库。具体操作如下:
-
打开VI Package Manager 软件,搜索modbus安装。
-
或者,是打开NI package Manager(NI package Manager下载地址 ),搜索modbus下载。
-
-
在搜索资料的过程中,发现可能会存在找不到com口的情况,资料显示是因为没有下载visa。NI VISA下载地址。
-
labview modbus 目前的想法是控制器是主机,被控对象(也就是返回数据的对象,作者这里电机驱动器是被控对象)是从机。主机通过发送指令来获取或者修改从机(被控对象)的数据。由于硬件没有真正连接,这里采用的是从机模拟软件Modbus Slave和虚拟端口软件 VSPD进行模拟调试。
-
首先先配置从机。左图配置从机线圈、寄存器对应值。右图打开连接,配置从机对应的com口,波特率,奇偶校验等参数。
-
然后在labview中配置主机。注意:主机的com口和从机不是一个,是配对的另一个,比如从机对应com8,主机应该配置为com7。(这个小问题,困扰了我好几个小时,曾一直以为是调用库调用的不对。会弹出“资源合法但VISA当前无法对其进行访问。”的错误)。
-
上图通过labview的modbus库中的vi实现了从初始化com口,和从该com口中读取保持寄存器连续值,并输出到register values数组中。当寄存器中数据改变时,数组中的值也会更新。因此可以认为程序已经基本实现了。那么写寄存器操作只是调用不同vi而已。
-
-
相关参考文章。
https://blog.csdn.net/qq_60183616/article/details/124253507 基于labview的modbus上位机程序-读写寄存器-避坑指南;
http://www.360doc.com/content/22/0629/10/71430804_1037837083.shtml LabVIEW实现Modbus通信;
https://mp.weixin.qq.com/s/Mi8bUTutuktfTIzZ9-hhYg LabVIEW实现Modbus通信