Excel与RSLinx的DDE功能
随着工业自动化水平的迅速提高以及计算机在工业领域的广泛应用,人们对工业自动化的要求越来越高。虽然组态软件提供了很多灵活的技术手段,但是在多数情况下,用户只使用了其中的一小部分,而使用方法的复杂化又给用户熟悉和掌握软件带来了很多不必要的麻烦,比如Winccflexbile和Cimplicity等。结合我公司整车生产运行状况,本文提出了一种新的设计思路,使用现有办公软件方便、快捷地组态简易监控系统,满足生产现场需求,提高效率。
RSLinx是罗克韦尔自动化的一款通信工具软件,其作用是集成了许多硬件间连接和网络间通信的软件协议,是该公司硬件产品之间的通信桥梁和纽带,除Lite版本外均支持OPC和DDE功能。
Excel是微软公司的办公自动化软件,其优秀的电子数据处理功能为人们所熟知,但其具有的DDE功能,却经常被人们忽略。
DDE是一种动态数据交换机制(Dynamic Data Exchange)(见图1)。使用DDE通信需要两个Windows应用程序,其中一个用于服务器处理信息,另外一个用于客户机从服务器获得信息。客户机应用程序向当前所激活的服务器应用程序发送一条请求信息,服务器应用程序根据该信息做出应答,从而实现两个程序之间的数据交换。简单说来,DDE通过使用共享内存的方法在应用程序之间传输数据,完成应用程序之间的数据交换,实时性比较好,适合用于构建小型系统的数据交换。
下面重点介绍如何通过Excel与工业通信软件RSLinx构建简易监控系统。
系统设计
汽车整车厂生产计划管理人员为了更准确地进行生产调度,需要实时掌握四大车间生产情况。如何实现安全、准确和快速地查看现场的生产数据信息,实现办公自动化?最简捷的办法就是把现场生产信息实时显示在生产计划管理人员的办公电脑上。
为了实现这一功能,我们结合现场软件及硬件情况,充分考虑办公软件和工控软件的功能特点,最终方案确定为:运用RSlinx和Excel共有的DDE功能,建立OPC通信;运用RSLinx软件搜集、获取整车四大车间设备PLC内的生产信息;运用Excel的强大数据处理功能,完成一系列的数据统计与处理,从而实现办公软件实时监控现场设备、生产信息的目的。系统原理如图2所示。
系统软件配置
1.RSLinx软件配置
(1)建立通信驱动
第一步,Rslinx软件窗口中点击configure drivers。
第二步,通信驱动类别中选择Ethernet Devices(这个根据现场的通信协议进行对应驱动的选择),点击“Add New”。
第三步,输入通信驱动名称(以Zone12名称为例),点击“OK”。
第四步,输入目标PLC的IP地址,点击“确定”(在这里需要注意的是,在需要监控的区域,载有生产信息的每个PLC必须建立独立的通信驱动)。
(2)建立DDE/OPC通信
第一步,在RSLinx软件窗口中选择DDE/OPC,Topic Configuration。
第二步,点击窗口左下角的“New”按钮,新建一个Topic(所谓Topic,指的是一个路径的集合,一个Topic里存储的信息包括:该Topic对应于哪个CPU、如何指向该CPU)。如图3所示,我们建立了一个名为“PSC_ZONE12”的Topic。
第三步,新建的Topic与对应的PLC建立链接。选中PSC_ZONE12,点击右侧与之对应的CPU(注意,对于RSLogix控制系统,一定要选中CPU),当选中CPU后,“Apply”按钮就由灰色变成黑色。点击“Apply”,弹出窗口中,系统提示用户是否确认该Topic所指向的内容,点击“是”进行确认。回到图3画面后,点击“Done”,完成建立一个DDE/OPC的Topic流程。
(3)复制链接名称,实现Excel读取PLC中的数据
第一步,点击RSlinx软件的Copy DDE Link to clipboard。
第二步,点击刚才建立的DDE/OPC名称(PSC_ZONE12),在Online中直接读取目标PLC中的标签变量,选择程序中对应的标签,然后点击“OK”键,则DDE链接通信路径已经复制到剪切板中,如图4所示(图4中选择目标PLC的局部变量Program:Zone12_BS1.TTT,变量前缀带有Program的统一为局部变量)。
(4)Excel中粘贴链接
第一步,在Excel中选择任意单元格,右击,选择性粘贴。
第二步,粘贴链接,点击“确定”。单元格中会显示如下所有代码{=RSLINX|PSC_ZONE12!'Program:Zone12_BS1.TTT,L1,C1'},上面的信息包含了DDE通信的路径名称、PLC程序中对应的标签以及PLC程序中对应的Program。
重复(3)、(4)两个操作步骤,将需要显示在Excel中的数据变量地址链接,依次粘贴到独立的单元格中。
(5)处理数据
由于Excel具有很强的数据处理功能,可以将PLC采集过来的数据进行一些美化,比如曲线图或柱状图的展示,这样会显得更加直观。简易监控系统的最终效果图如图5所示。生产计划人员可以很直观地查看现场产量等生产信息,从而提高办公效率。
(6)写入数据给PLC
如果监控系统中,需要给PLC反馈某些数据,则可以利用Excel本身自带的VBA脚本编写器,编写部分脚本,将单元格中的数据写进PLC对应标签中。
比如VBA代码主要实现单击按钮赋值给PLC对应变量的功能。主要实现将Excel Sheet1中B1单元格的值赋值给PLC的TTT变量。
第一步,打开VBA编程器(见图6)。
第二步,在编辑器中编写如下代码,保存后关闭编程器。
Sub DDE_Write_RSLinx()
DDEChannel = Application.DDEInitiate(app:="RSLinx", topic:="PSC_ZONE12")
DDEItem = "Program:Zone12_BS1.TTT"
Set RangeToPoke = Worksheets("Sheet1").Range("b1")
Application.DDEPoke DDEChannel, DDEItem, RangeToPoke
Application.DDETerminate DDEChannel
End Sub
注意:Write_RSLinx为此段程序的宏名称。
第三步,按钮调用功能宏。Excel中,绘图软件绘制一个按钮,右击按钮,选择“指定宏”,在弹出窗口,选择对应的宏名称,然后点击“确定”(见图7)。
返回Excel中,按ESC键,让“赋值”按钮退出编辑模式。将鼠标箭头指向“赋值”按钮时,此时指针形状为“手形”,单击此按钮时实现将Excel中的变量赋值给PLC。
总结与展望
1.总结
该系统已在某汽车整车厂使用,效果较好,我们结合使用情况总结了优缺点。
优点:系统实现简单,不需要第三方软件来写复杂的程序代码,只需要Excel和RSLinx软件,节省了开发第三方软件的时间;不需要特殊的软件来开发运行环境,节省了软件成本和项目成本;生产信息直接来源于最底层的设备网,更准确、可靠和实时;可以充分发挥Excel的一些针对数据统计和分析的功能,数据显示更直观。
缺点:考虑到VBA脚本的难易程度,涉及到条件判断和数据运算的许多工作需要在PLC中进行处理,在PLC中将会增加不少程序代码;不能存储大量的历史数据,一定简单量的数据可以存储在PLC中,这必将影响PLC的内存占有量以及运行速度。
基于以上的优点和缺点,当实现小型、成本较低的系统和项目时,该监控系统具有较好的优越性。
2.展望
未来的传感器、数据采集装置和控制器的智能化程度越来越高,实时数据浏览和管理的需求日益高涨。后续可以结合Excel的VBA功能,设计更复杂的系统,而不仅是实现监控的作用,比如设计MES系统实现车体信息跟踪、装配信息更改和现场设备的控制等功能。结合互联网,有的用户甚至可以在自己的办公室里监督定货的制造过程及各项数据。
跟帖
查看更多跟帖 已显示全部跟帖