基于Excel VBA功能的上位控制系统开发

《工业控制计算机》2020年第33卷第12期39基于Excel VBA功能的上位控制系统开发神州奥美
程亮(上汽通用(沈阳)北盛汽车有限公司,辽宁沈阳110044)
一水硫酸镁摘要:当前工控领域上位机的开发组态软件种类较多遥虽然组态软件能提供专业和灵活的技术手段来满足不同工控需求,但多数情况下,组态软件较大、安装过程繁琐、多数软件需要授权管理,用户熟悉和掌握软件需要一段时间,这些都导致软件使用门槛较高,比如FactoryTalk、W i nCC flexb i le和C i mpl i c i t y等。而有时我们只是想使用其中的一小部分功能,那么有没有简洁的方法来满足我们的需求?基于这个背景,探索一种基于Excel VBA功能的上位控制系统开发方法。
关键词:Excel VBA;上位控制系统;开发
1使用的软件
本公司车身塔灯监控系统界面如图1所示。
图1
首先,介绍一下该方法使用到的工具:
RSLi nx:罗克韦尔自动化的一款通信工具软件,其作用是集成了许多硬件间连接和网络间通信的软件协议,是该公司硬件产品之间的通信桥梁和纽带,除Lite版本外均支持OPC和DDE功能。
Excel:微软公司的一款办公自动化软件,自带DDE功能。
波诺波黑猩猩DDE:—种动态数据交换机制(Dynam i c Data Exchange)。简单说来,DDE通过使用共享内存的方法在应用程序之间传输数据,完成应用程序之间的数据交换,实时性比较好,适合用于构建小型系统的数据交换。
VBA:(V i sual Bas i c for Appl i cat i ons)是Vi sual Bas i c的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Mi crosoft Offi ce软件。它也可说是一种应用程式视觉化的Bas i c脚本[1]遥
以下介绍如何通过Excel与RSLi nx开发简易上位控制系统。2通过RSLinx软件建立与PLC的通信通道
1)在RSl i nx软件窗口中点击"conf i gure dr i v ers"按钮;
2)在弹岀窗口中,通信驱动类别选择Ethernet Dev i ces(这个根据现场的实际通信协议进行选择,本例中采用工业以太网通信协议);
3)点击“Add New冶按钮,在弹岀窗口中输入通信通道名称,然后点击“OK”按钮;
4)在弹岀窗口中输入目标PLC的IP地址,然后点击“确定”按钮。
3通过Excel实时监控PLC程序内标签的变化情况1)在RSl i nx软件窗口中点击“DEC/OPC”选项,然后点击"Top i c Conf i gurat i o n”选项;
2)在弹岀窗口中点击“NEW”按钮,创建NEW_TOPIC(默认名称为“NEW赃TOPIC”,可根据实际需求更改);
武汉十五中张飞跃事件3)在右侧窗口中选择要和NEW_TOPIC关联的PLC,然后点击"Apply冶按钮,在弹岀对话框中点击“yes”,最后点击"Do n e”按钮;红丝带网
4)在RSl i nx软件窗口中点击“Ed it”选项,然后点击“COPY DDE/OPC LINK”选项;
5)选择所要监控的PLC;
6)在Onl i ne选项中选择需要监控的PLC内的标签,然后点击“OK”按钮;
7)在Excel表格单元格中右键选择粘贴链接,然后点击“OK”按钮,单元格内会实时动态显示PLC内标签数值。
4通过Excel对所监控的PLC内标签数值进行处理由于Excel具有很强的数据处理功能,可以将从PLC采集过来的数据进行一些美化,比如单元格、字体颜变化、曲线图或柱状图的展示等,这样会更加直观。如图2所示。
图2
5
,.':*--'.1F.~.
J二«-!□—1J
r,"
Ifa-W lAUi■ aaMB.IBWi Ba■M4W IW1kBA II KB■■
5通过Excel VBA功能写数据到PLC标签
如果所监控系统中,需要给PLC标签赋值,则可以利用Ex­cel本身自带的VBA功能编写脚本程序,然后通过调用脚本程序将指定单元格中的数据写到PLC对应标签中。比如利用VBA 代码实现单击按钮赋值给PLC对应变量的功能,实现方法如下:1)在Excel软件窗口打开VBA编程器,如图3所示。
2)在编辑器中编写如下代码,保存后关闭编辑器(此段程序功能:实现将Excel"开关代码”Sheet中a2单元格的值赋值给PLC的MDA[7].16标签)。
Sub DDE_Write_RSLinx_CV8_LED()
DDEChannel=Appl i c at i o n.DDEIn i t i ate(app:="RSLi n x",top i c:="CV8") DDEItem="MDA[7].16"
黄纪宪Set RangeToPoke=Worksheets("开关代码"雪.Range("a2")
Appl i cat ion.DDEPoke DDEChannel,DDEItem,RangeToPoke
Appl i cat ion.DDETerm inate
DDEChannel

本文发布于:2024-09-23 07:18:12,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/532305.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:软件   功能   点击   标签   选择   应用程序
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议