LabVIEW实现Modbus通信


Modbus通信协议是仪器控制中常用的通信协议之一,基于Modbus协议可实现数据的读、写操作。

Modbus只是工业控制中常用的一种协议方式,本篇博文依旧是通过串口通信的方式实现基本的Mosbus操作。

Modbus协议常用功能主要包括四部分:读写线圈、读取离散输入、读取输入寄存器和读写保持寄存器,具体基础知识可参见上文发的基础知识链接。


使用LabVIEW实现Modbus协议通信有两种方式:Modbus库函数实现和VISA串口实现。下面分别介绍这两种方式。

1


Modbus库

Modbus库主要是依托封装好的LabVIEW VI库,直接调用就可以实现Modbus通信。使用Modbus库之前需要使用NI Package Manager进行安装。

最简单的方式就是直接搜索Modbus,这里我们选择:LabVIEW NXG GModBus Over SerialLine工具包,串行通信就可以,如下图所示:


还有一种方式安装Modbus库,搜索下载:LabVIEW数据记录与监控模块,如下图所示:


这两种方式下载的ModBus库均位于:函数数据通信,如下图所示:


本篇博文将以LabVIEW数据记录与监控模块下载方式的库为例进行讲解,主要原因是使用范围广泛,而且说明文档详实。


下面分享一下ModBus库的使用代码。

1.1、线圈操作

1.1.1、读取线圈

以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,从起始地址0读取8个数量长度的寄存器数值。


1.1.2、写入单线圈

以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,从起始地址2写入1个数量线圈寄存器(数值为:TRUE)。


1.1.3、写入多线圈

以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,从起始地址0写入5个数量线圈寄存器(数值均为:TRUE)。


1.2、保持寄存器操作

1.2.1、读取保持寄存器

以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,从起始地址0读取4个数量长度的寄存器数值。


1.2.2、写入单个保持寄存器

以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,将保持寄存器地址0写入数值33。


1.2.3、写入多个保持寄存器

以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,从起始地址0写入4个数量保持寄存器(数值为:1、4、6和8)。

1.3、读取离散输入

以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,从起始地址0读取10个数量长度的寄存器数值。


1.4、读取输入寄存器

以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,从起始地址1读取4个数量长度的寄存器数值。


2


VISA串口

VISA串口方式实现Modbus协议,本质上就是自己手写协议帧,每一类帧格式都需要自己来编写。

这里可以再回顾一下LabVIEW串口通信的基础知识:LabVIEW串口通信_不脱发的程序猿的博客-CSDN博客_labview 串口通信

2.1、线圈操作

2.1.1、读取线圈

以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为01,ID号为1,从起始地址0读取8个数量长度的寄存器数值。


2.1.2、写入单线圈

以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为05,ID号为1,从起始地址0写入数值0。


2.1.3、写入多线圈

以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为0F,ID号为1,从起始地址0写入8个数量线圈寄存器,字节数为1,数值为0。


2.2、保持寄存器操作

2.2.1、读取保持寄存器

以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为03,ID号为1,从起始地址0读取4个数量寄存器。

2.2.2、写入单个保持寄存器

以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为06,ID号为1,从起始地址1写入数值0X0099。


2.2.3、写入多个保持寄存器

以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为10,ID号为1,从起始地址0写入4个寄存器,字节数为8,数值分别为:0X00、0X11、0X00、0X22、0X00、0X33、0X00、0X44。


2.3、读取离散输入

以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为02,ID号为1,从起始地址0读取8个数量长度的寄存器数值。




2.4、读取输入寄存器

以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为04,ID号为1,从起始地址1读取4个数量长度的寄存器数值。


↓↓↓↓点击阅读原文,查看更多新闻

为坚决落实党中央、国务院关于“外防输入、内防反弹”总策略和“动态清零”总方针,支撑高效统筹疫情防控和经济社会发展,方便广大用户出行,即日起取消通信行程卡“星号”..

为坚决落实党中央、国务院关于“外防输入、内防反弹”总策略和“动态清零”总方针,支撑高效统筹疫情防控和经济社会发展,方便广大用户出行,即日起取消通信行程卡“星号”..

我党第一座无线电台遗址图源:IT时报这里,研制出我党第一台收发报机,建立第一座秘密电台。这里,创办我党第一所无线电培训班,编写出第一本密码。上海是红色通信的起源之..

大家好,关于通信大数据行程卡很多朋友都还不太明白,今天小编就来为大家分享关于通信大数据行程卡怎么更换手机号的知识,希望对各位有所帮助!通信行程卡是什么 通信行程卡简介1、通信大数据行程卡,是由中国信通院联合中国电信、中国移动、中国联通三家基础电信企业利用手机“信令数据”,通过..

今日2022年《财富》世界500强排行榜揭晓啦~中国通信圈有多家企业上榜!三大运营商成功会师,但排名较上年相比均有所下降。其中,中国移动排名第57位,中国电信排名第131位..

几十年来,通信网络服务体验之所以越来越好,一个重要的原因是——有一套衡量网络质量的性能指标体系。因为有了统一的性能指标体系,运营商才能更好对网络进行评估,发现网..

当地时间7月8日凌晨,加拿大运营商Rogers发生重大网络故障,导致全网无线、有线互联网服务中断。直到7月9日下午,Rogers才宣布网络和系统已接近全面恢复。路由器升级导致BG..

来源:雷科技互联网组编辑:失魂引2022年6月29日15:00,工信部信息通信管理局发布通知,为坚决落实“外防输入、内防反弹”总策略和“动态清零”总方针,同时支持国内疫情防..

VR/AR和元宇宙的“火”,烧的是人们在虚拟空间中放飞自我的曼妙想像。早在几十年前的科幻电影中,全息通信就是未来科技的代表,是将虚拟与现实结合的一种科技。今年,曾经..

本篇博文将实现一款基于串口通信的数码管显示屏软件,通过上位机可以控制数码管显示屏的显示内容和亮度,实物如下所示:项目中实现了数码管显示屏显示数值内容、亮度控制和..

自华为芯片被美桎梏,海思麒麟芯片绝版,其5G手机也成为国民心中“意难平“,而市场上围绕华为5G手机的话题更是层出不穷。近日,中国联通在线上渠道正式开售了一款能将4G手..

P50系列发布于去年7月,配置均衡受到很多人的喜爱,但是作为旗舰没有5G是一大遗憾,在P50系列发布一年之后,这个问题有了一个很好的解决方案,那就是5G通信壳,5G手机壳推..

对于很多人来说,通信是一个非常笼统的概念。从字面上看,通信,就是通联信息——我把信息发给你,你把信息发给我,这就是通信。更严谨一点,我们可以这么定义:人与人,或..

此前就有传闻称华为将会推出5G手机壳,从而给自家不支持5G的手机带来5G网络,而在今日,这款支持双模 5G 的“5G 通信壳”正式官宣发布。据悉,这款产品通过..

中国通信企业协会:当前,世纪疫情同百年变局叠加共振,新一轮科技革命和产业变革深入发展,5G、物联网、人工智能、云计算等数字技术正在对人类社会发展产生深远影响。其中..

本文由 电子产品世界 来源发布

LabVIEW实现Modbus通信

评论问答