作为自动化专业人员,你可能需要使用Excel电子表格中的工厂数据进行监视,控制或测试。此数据对于需要实时数据进行决策的管理人员,研究人员和其他部门人员也可能会有所帮助。我们将向你展示如何使用Microsoft Excel和动态数据交换( DDE)和Visual Basic for Applications(VBA)的通信来实现此目标以及更多内容。


将使用哪种软件?

我们将使用Microsoft Excel通过RSLinx ClassicStudio 5000 Logix Emulate软件将数据写入Rockwell Automation Studio 5000


程序如何互连的总体框图如下所示。

什么是DDE?

让我们回顾一下什么是DDE?DDE是一种Windows机制,使应用程序可以相互通信。DDE通信被称为启动对话的客户端和响应请求的服务器之间的通讯。

要启动DDE对话,客户端需要指定以下三个项目:


Studio 5000 Logix设计器

Logix Designer示例程序

因此,让我们从上一个示例PLC程序开始。我们已经创建了一个称为RealPars_ExcelStudio 5000 Logix Designer程序。


REAL和DINT数组

在上一篇文章中,我们打开了Controller Tags文件夹,以创建两个名为DINT_array和REAL_array的标签数组。

因此,当我们在Excel中选择“读取”和“写入”操作时,便可以在Excel中看到这些值。我们将在REAL和DINT数组中设置值。

在DINT_array和REAL_array标签旁边,选择标签旁边的+号。

一旦选择了+号,标签数组将展开以显示该数组中的所有元素。


DINT _阵列REAL_array,他们每个人有10个元素

DINT是整数类型值,而REAL是浮点类型值。

现在,保存Studio 5000程序。

运行Studio 5000 Logix仿真软件

现在启动Studio 5000 Logix Emulate软件。该仿真软件将在个人计算机上仿真虚拟的Rockwell Software PLC。

通过选择Windows“开始”菜单找到Studio 5000 Logix Emulate图标,然后键入Emulate以从列表中查找Studio 5000 Logix Emulate软件应用程序。

设置仿真器模块

我们已经设置了仿真器,在插槽2中安装了Emulator 5570控制器,在插槽0和1中安装了RSLinx,在插槽3中安装了1789-Sim 32点I / O模块

运行RSLinx Classic通讯软件

现在,让我们再次选择Windows“开始”按钮以启动RSLinx Classic通信软件。

选择Windows“开始”菜单按钮,然后键入RSLinx以查找RSLinx Classic桌面应用程序。

从列表中选择RSLinx Classic应用程序。

RSLinx将启动。

Studio 5000 Logix Emulator的通信驱动程序需要配置。

选择“通讯”菜单,然后选择“配置驱动程序”

在上一篇文章中,我们创建了一个名为RealPars_VBP-1的虚拟驱动程序,它具有“运行”状态。

现在,如果我们选择DDE / OPC菜单,然后从下拉列表中选择“主题配置”,则会看到我们在上一篇文章中创建的主题,称为RealParsExcel

好的,到目前为止,我们已经完成了RSLinx Classic

我们将Studio 5000 Logix Designer程序下载到虚拟PLC。

Studio 5000 Logix Designer软件中,从“通讯”菜单中,选择“谁是活跃用户”

将显示Who Active窗口,其中显示所有已配置的驱动程序,在本例中为Realpars_VBP-1驱动程序。

从列表中选择Studio 5000 Logix Emulate,然后按Go Online按钮。

将程序下载到模拟器

要将程序下载到仿真器,请在“已连接到联机”窗口中,按“下载”

将显示下载警告弹出窗口;再次选择下载以开始下载过程。

下载后,进度条将完成为100%。

现在,返回Studio 5000 Logix Designer程序。

请注意,该控制器位于“远程程序”中,这意味着该控制器未运行。

将“远程程序”状态更改为“远程运行”

选择“远程程序”指示器旁边的图标,然后从列表中选择“运行模式”

出现一个配置窗口,询问确认将控制器置于“远程运行”状态,然后选择“是”

现在,让我们看一下之前添加的Controller标记DINT_arrayREAL_array,并准备对其进行可视化监视,以了解Excel的读写操作。

现在,我们准备为Excel中的READ和WRITE Control按钮设置DDE Poke VBA(应用程序的Visual Basic)脚本。

打开 Microsoft Excel项目

现在打开我们已经创建的Microsoft Excel项目。

你可以在此处下载此Excel文件。

从工作表1开始,我们将工作表重命名为READ WRITE PLC


我们将DE 列命名为READ,将GH列命名为WRITE,以标识将在何处显示数据。

DE列将是READ Real和Integer数据,GH列将是WRITE Real和Integer数据。

请记住,我们的PLC变量数组已分配了10个元素(DINT_array [0]至[9]和REAL_array [0]至[9])。

在WRITE REAL CLX值G列中,我们输入了要写入PLC的浮点值,在WRITE INTEGER CLX值H列中,输入了要写入PLC的整数值。


VBA脚本

在接下来的几个步骤中,我们将使用VBA开发模式并使用VBA脚本执行写入操作。

为了将命令按钮对象放置在Excel工作表上,我们将进入开发人员模式。

创建表单控件按钮对象

为此,选择“开发人员”选项卡,然后选择“设计模式”按钮,这将使你可以将控制对象放置在图纸上。

这些控制对象实质上使我们 能够创建HMI(或人机界面)。

接下来,让我们选择“插入”按钮。

此按钮为我的Excel工作表提供了各种控件。

从菜单中按“插入”按钮将显示“表单控件”下拉菜单。从此下拉菜单选择中,选择“表单控件-按钮”对象。

选择命令按钮后,在GH列下的数据下方绘制一个矩形。

将出现“分配宏”窗口,选择“新建”按钮以创建一个新按钮。

现在,将出现新按钮。让我们给按钮起一个新的名字。

右键点击按钮,然后选择编辑文本。然后输入WRITE CLX ARRAYS作为新名称。

完成后,将显示Write CLX Arrays按钮,并输入新名称。

Visual Basics for Applications(VBA)窗口

好的,这就是乐趣的开始。

右键单击WRITE CLX Arrays按钮,将在命令按钮周围显示把手。

在Excel Developer菜单区域中,选择“查看代码”项。

将出现“ Visual Basics for Applications”窗口。

VBA RSLinx连接

为了简化本文,我们将编写将执行大部分VBA RSLinx连接的VBA代码,并将操作写入PLC,并部分解释VBA代码。

在“模块”文件夹下,双击“模块1”,然后编写RSLinx“打开并连接”代码。

DDE戳写命令脚本

接下来,我们将在WRITE CLX ARRAYS按钮事件区域中编写DDE Poke Write Command脚本。

此WRITE CLX Button事件的脚本是CLICK,它执行到RSLinx的连接以及通过RSLinx DDE与PLC的通信,最后,当单击按钮时,DDE Poke功能用于执行实际的写命令。

脚本rslinx = OpenRSlinx() 将使用DDE打开与RSLINX的连接。

FOR / NEXT 循环通过每个使用FOR NEXT指令,并且如果存在一个错误显示错误消息框中的Excel单元的脚本将循环。

两条DDEPoke rslinx指令将获取数据并将数据写入PLC。

第一个将在G列的3 + i行中获取REAL数据,并将浮点数据写入PLC。 在此循环中,I = 0到9,数字7代表G列。

第二个将在H列的3 + i行中获取INTEGER数据,并将整数数据写入PLC。 在此循环中,i = 0到9,数字8代表H列。

指令 DDETerminate rslinx将终止RSLINX连接

让我们测试“写入CLX阵列”按钮。

通过PLC在线,我们可以在Studio Logix Designer控制器标签窗口中将所有值都设置为零。

现在,返回到Excel Write Command按钮。

然后,左键单击命令按钮。该操作将在按钮后面运行脚本,并将值写入PLC。

现在,让我们返回Studio 5000 PLC程序。

现在,DINT和REAL数组标记中提供了G列和H列中的Excel值。几乎像魔术。

VBA可以非常强大并且可以执行许多操作。

DDE请求命令脚本

我们执行了与“写入CLX数组”命令按钮相同的操作,以创建“读取CLX数组”命令按钮。

右键单击READ CLX ARRAY命令按钮后,从“开发人员”选项卡中选择视图代码。

在READ命令按钮事件下编写代码。

与DDE Poke命令类似,我们将使用DDE Request方法从RSLinx DDE主题读取数据。

返回到Excel电子表格。

左键单击READ CLX ARRAY按钮。该脚本将执行并从PLC控制器变量中读取值。