使用Modbus将LabVIEW连接到任何PLC

简介: 使用Modbus将LabVIEW连接到任何PLC

使用Modbus将LabVIEW连接到任何PLC

NI LabVIEW软件可以通过多种方式与可编程逻辑控制器(PLC)通信。 Modbus是Modicon于1979年发布的用于与PLC进行通信的串行通信协议,后来被扩展为TCP协议。 Modbus由于其可用性而成为业界事实上的标准通信协议之一。这里介绍如何使用LabVIEW通过Modbus与联网的PLC通信。

使用LabVIEW数据记录和监控(DSC)模块。该模块包括用于将数据记录到联网的历史数据库,实时和历史趋势,管理警报和事件,将LabVIEW Real-Time目标和Modbus设备联网到一个完整系统中以及为用户界面增加安全性的工具。凭借这些功能,LabVIEW成为用于工业控制应用程序的功能强大的HMI / SCADA软件包。

创建一个Modbus主I / O服务器

在本节中,您将创建一个到Modbus地址的LabVIEW接口,称为I / O服务器。 I / O服务器会使用当前值自动更新LabVIEW。

在LabVIEW入门窗口中,单击文件»新建项目。这将打开一个新的LabVIEW项目。

如果“上下文帮助”窗口不可见,请按Ctrl + H以显示该窗口。使此窗口保持打开状态,以获取有关光标下方项目的有用信息。

在LabVIEW Project窗口中,右键单击My Computer,然后选择New»I / O Server ,如图1所示。

236bc97c94374deaa48a97e73bb30a3e.png

图1:通过LabVIEW项目创建新的I / O服务器

在“创建新的I / O服务器”窗口中选择Modbus ,然后单击“继续” 。

从型号下拉菜单中选择Modbus以太网。

 


图2:配置Modbus主I / O服务器

在IP地址字段中输入目标Modbus从站的IP地址。如果您不知道如何确定计算机的IP地址,请参考以下网页:外部链接:如何查找IP信息。在此示例中,我们将Modbus从站与主站运行在同一台计算机上,因此我们使用本地主机IP地址127.0.0.1。

选择确定。在“项目资源管理器”窗口中会自动创建一个库来管理I / O服务器。

通过从项目浏览器窗口中选择文件»全部保存,将项目另存为ModbusDemoProject,将库另存为ModbusDemoLibrary。

通过I / O服务器将共享变量绑定到Modbus地址

在本节中,您将学习创建绑定到Modbus地址的共享变量,使您可以在LabVIEW中对PLC数据进行本地访问。使用共享变量,您可以在一台计算机或网络上的LabVIEW应用程序之间共享数据。

创建绑定到Modbus地址的新共享变量。

右键单击新创建的ModbusDemoLibrary,然后选择“创建绑定变量” 。

在“创建绑定变量”窗口中,将树向下扩展到Modbus1 ,以选择所需的地址范围。

然后选择000001-065535 ,然后单击添加范围。将“数据项”的默认值保留为000001,将“项目数”保留为1。单击确定。

图3:选择要绑定到共享变量的Modbus地址

现在,您的配置窗口在“已添加变量”部分中应具有变量000001。

单击确定。这将创建一个绑定到Modbus地址的共享变量,并将其加载到多变量编辑器中。

在“多变量编辑器”中,选择“完成” 。这会将新的共享变量添加到之前创建的库中。

在项目资源管理器中,右键单击000001,然后选择“重命名” 。将变量重命名为Coil1。

注意:LabVIEW DSC模块通过添加将数据,警报和事件直接记录到数据库的功能来增强共享变量,而无需编写LabVIEW应用程序。

通过右键单击ModbusDemoLibrary并选择Deploy All来部署共享变量。这将发布共享变量,使它们在网络上可用于其他计算机。

现在,您可以通过共享变量在LabVIEW中本地访问Modbus数据

在LabVIEW中写入Modbus地址

在项目浏览器中,右键单击我的电脑,然后选择新建»VI 。这将创建一个新的虚拟仪器或VI。 VI用于创建用户界面和可执行的图形代码。

默认情况下,您会看到前面板,这是VI的用户界面。 LabVIEW具有许多内置的UI组件,例如图形,图表,刻度盘等,可用于构建功能强大,直观的UI。选择查看»控件面板,或右键单击前面板上的任意位置以调出控件面板。将鼠标悬停在各个类别上,以探索LabVIEW中的UI组件。

通过选择Express»Button&Switches»Push Button从Controls面板中选择一个按钮,并将其放置在前面板上,

在VI中,选择窗口»显示程序框图或按Ctrl + E以显示程序框图。框图是您构建应用程序行为的地方。注意程序框图上的图标,该图标代表前面板上的按钮。通过按前面板上的按钮,可以更改从框图上的图标端子传递的布尔值。

在项目资源管理器中,展开ModbusDemoLibrary库,然后选择Coil1共享变量。

将Coil1共享变量从项目浏览器拖放至VI的程序框图。共享变量充当程序框图上其他端子的数据源。

右键单击新放置的Coil1共享变量,然后选择访问模式»写入。这使您可以写入共享变量,而不是从共享变量中读取

使用连线工具到接线COIL1共享变量为布尔按钮通过点击COIL1共享变量,然后在布尔按钮,如图6。

现在,VI运行时,数据从布尔按钮流向共享变量。

通过选择视图»功能面板或在程序框图上的任意位置单击鼠标右键,打开“功能”面板。 “功能”选板包含数百个分析功能,控制功能和图形化编程结构。

导航到“编程”»“结构”»“循环”,从“功能”选项板中选择一个while循环。一旦选择了while循环,就会出现光标,如图7所示。这使您可以将while循环包装在一段代码中。

使用while循环光标,通过单击并拖动光标在共享变量和波形图周围放置while循环。现在,通过右键单击“循环条件”并选择“创建控件”,在while循环中创建一个Stop控件。这会在前面板上放置一个“停止”按钮,允许用户停止VI。

图9:在共享变量和控件周围放置While循环

while循环使其中的代码连续执行,直到被用户或VI中的其他逻辑停止。

由于while循环是现在,它将尽可能快地运行。等待直到下一个ms多个VI应添加到循环中,以使循环每隔设置的秒数执行一次,在这种情况下为100ms。

通过选择窗口»显示前面板或按Ctrl + E返回前面板。

单击工具栏上的运行按钮以执行VI。

部署完成后,单击Deploy …窗口上的Close 。当应用程序开始执行时,您现在可以将按钮切换为true和false。这将使用True或False更新共享变量引擎中Modbus绑定的共享变量

恭喜你!您已在LabVIEW应用程序中成功访问了PLC数据,因此可以在解决方案中合并强大的分析和控制功能。

使用分布式系统管理器查看共享变量

在项目资源管理器窗口中,选择工具»分布式系统管理器。这将打开一个窗口,您可以使用该窗口以各种方式(查看,部署,取消部署等)来管理共享变量。

在“变量管理器”的“树”窗格中,展开“我的系统”类别下的localhost项目。找到并展开ModbusDemoLibrary库,然后选择Coil1以在窗口右侧显示自动视图。

现在,您可以在前面板上切换布尔按钮,并在分布式系统管理器中查看结果,如图13所示。

7f19c4995ad54390b73b4181f5a653cc.png

图13:在分布式系统管理器中查看Coil1的值

注:分布式系统管理器已随LabVIEW 8.6一起提供。 LabVIEW的早期版本通过转到工具»共享变量»变量管理器并将共享变量拖到“监视的变量:”窗口中来完成此操作。

使用Modbus从站查看线圈值

在文档的第一部分中,我们创建了一个Modbus主站,该主站将布尔值写入Modbus线圈。该线圈值存储在共享变量中,然后我们可以在分布式系统管理器中看到该变量。在下一节中,我们将展示Modbus从站如何读取主站正在更新的线圈值。我们在第一部分中创建的Modbus主站正在寻找IP地址为127.0.0.1(localhost)的Modbus从站。因此,如果我们想通过Modbus与Modbus主站通信,我们需要在本地计算机上创建一个Modbus从站。

在LabVIEW中,通过单击帮助»查找示例打开NI示例查找器。

在NI Example Finder中,浏览至工具箱和模块»数据记录和监控»I / O服务器,双击Modbus Simulator.lvproj 。参见图16。

图14:NI Example Finder中的Modus Simulator

从项目中打开ModbusSimulator.vi,然后运行它。

如果您的Modbus Master VI当前未运行,请运行它。两者同时运行时,您会看到Modbus Simulator上的Digital 1 LED亮起,如图15所示。

图15:运行并显示Coil1真实值的Modbus Simulator

单击Modbus Simulator上的“退出”,然后按Ctrl + E切换到框图。

在程序框图上,注意正在使用共享变量读取Modbus地址000001。该共享变量连接到Modbus主站的Coil1值。

图16:Modbus Simulator框图

为了更好地理解Modbus主站和从站之间的关系,一个有意思的挑战是修改Modbus主站程序以读取和控制Modbus Simulator中的其余值。您将需要在ModDemoProject中将绑定的共享变量添加到Modbus I / O服务器。


程序如下附件所示。

相关资料说明,如下所示。

LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序

文字内容均在附件Word中,同时上文中提到的例子和资料,均在word中的附件里,可点击下载。登录www.bjcyck.com可以查看更多详细信息。这里只是简略的介绍,有任何关于LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序相关问题,请与我们联系。

相关文章
|
8月前
|
API UED 开发者
Labview串口通信VISA实现串口收发
Labview串口通信VISA实现串口收发
81 0
|
8天前
|
存储 传感器 数据采集
LabVIEW与Modbus协议的多点温度监控系统
LabVIEW与Modbus协议的多点温度监控系统
19 6
|
8天前
|
存储 监控 网络协议
LabVIEW中的数据通信方法
LabVIEW中的数据通信方法
13 0
|
8天前
|
网络协议 API Windows
LabVIEW以太网仪器控制
LabVIEW以太网仪器控制
14 0
|
8天前
|
Java
java实现上位机与西门子PLC的通讯设置
这段代码创建了一个ZCAN_Transmit_Data数组,初始化并设置了数组中的第一个元素,包括写入数据、传输类型为1。然后,创建了一个ZCAN_CAN_FRAME对象,指定了CAN_ID和数据长度为8,并将十六进制字符串转换为字节数组填充到数据字段。将这个帧赋值给ZCAN_Transmit_Data对象。最后通过ZLGCAN接口发送数据,如果返回值不等于1,则抛出异常,否则返回发送结果。
|
8月前
|
Windows 容器
Labview串口通信MSComm实现串口收发
Labview串口通信MSComm实现串口收发
81 0
|
9月前
|
监控 网络协议 测试技术
优秀的 Modbus 从站(从机、服务端)仿真器、串口调试工具
- 监视串行线路或以太网上的通信数据 - 支持多达 28 种数据格式,包括:Signed、Unsigned、Hex、Binary、Long、Float、Double等 - 支持 Modbus 协议地址和 PLC 地址相互切换 - 对任意数量寄存器中的数据绘制实时图表,监控数据的变化趋势 - 支持同时创建多个连接网络和大量从站设备 - 通过多个标签页进行管理,快速在从站设备之间进行切换 - 通过表格的形式管理寄存器,支持添加变量名和注释,支持切换背景与前景颜色 - 导出/导出从站设备寄存器数据到Excel - 内置字节转换工具,方便将Long、Float、Double类型数据转换为寄存器中的数据
232 0
优秀的 Modbus 从站(从机、服务端)仿真器、串口调试工具
|
11月前
|
监控
LabVIEW实现Modbus通信
Modbus只是工业控制中常用的一种协议方式,本篇博文依旧是通过串口通信的方式实现基本的Mosbus操作。
|
11月前
|
缓存
LabVIEW串口通信
串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节的通信方式。在LabVIEW中串口通信使用范围非常广泛,例如,通过串口使用ModBus协议驱动仪器、串口驱动PLC设备等。
|
传感器 算法 数据可视化
倍福(Beckhoff)嵌入式控制器PLC
倍福(Beckhoff)嵌入式控制器PLC
699 0
倍福(Beckhoff)嵌入式控制器PLC

热门文章

最新文章