2024年3月27日发(作者:)

工业控制计算机

2020

年第

33

卷第

12

39

基于

Excel

VBA

功能的上位控制系统开发

上汽通用

沈阳

北盛汽车有限公司

辽宁沈阳

110044

摘要

当前工控领域上位机的开发组态软件种类较多

虽然组态软件能提供专业和灵活的技术手段来满足不同工控需

但多数情况下

组态软件较大

安装过程繁琐

多数软件需要授权管理

用户熟悉和掌握软件需要一段时间

这些都导致

软件使用门槛较高

比如

FactoryTalk

Wi

nCC

flexb

i

le

C

i

mpl

i

c

i

ty

而有时我们只是想使用其中的一小部分功能

那么

有没有简洁的方法来满足我们的需求

基于这个背景

,探索一种基于

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

ions

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

vers

"按钮;

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

on

”选项

2

在弹岀窗口中点击

NEW

按钮

创建

NEW_TOPIC

默认

名称为

NEW

TOPIC

,

可根据实际需求更改

3

在右侧窗口中选择要和

NEW_TOPIC

关联的

PLC

然后

点击

"Apply

冶按钮

在弹岀对话框中点击

yes”

最后点击

"

Do

ne

按钮

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

所示

5

,

J

.':*--'.

«-!□

1

F

.~.

1

J

r,

"

Ifa-W

lAUi

aaMB.

IBWi

Ba

M4W

IW

1

kBA

II

KB

■■

2

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

cat

i

i

t

i

ate(app:="RSLi

nx",top

i

c:="CV8")

DDEItem

=

"MDA[7].16"

Set

RangeToPoke

=

Worksheets("

开关代码

"雪

.Range("a2")

Appl

i

cat

e

DDEChannel,

DDEItem,

RangeToPoke

Appl

i

cat

m

inate

DDEChannel

40

基于

Excel

VBA

功能的上位控制系统开发

3

End

Sub

备注

DDE_Write_RSLinx_CV8_LED

为此段脚本程序的名

各指令含义请参考

VBA

指令集

[

2

]

3

按钮调用脚本程序

Excel

绘制一个按钮,右击按

钮,选择

指定宏

,在弹出窗口中选择对应的宏名称

然后点击

4

5

由于

Excel

没有数据库功能

所以不能存储大量的历史

数据

少量的数据可以存储在

PLC

但这将影响

PLC

的内存

占有量以及运行速度

基于以上的优缺点

当实现小型

成本较低的系统和项目

确定

按钮

将鼠标箭头指向

“赋值

按钮时

此时指针形状变为

手形

单击此按钮时实现将

Excel

中的变量赋值给

PLC

如图

4

所示

6

结束语

该监控系统具有一定的优越性

将来传感器

数据采集装置

和控制器的智能化程度越来越高

实时数据浏览和管理的需求

1

系统实现简单

不需要拥有和熟练掌握第三方软件来编

写复杂的程序代码

只需要

Excel

RSLinx

软件

,

降低开发门

,

节省软件成本和开发时间

也日益高涨,后续可以结合

Excel

VBA

功能

,

设计更复杂的

系统

而不仅是实现简易监控的功能

[

3

]

参考文献

[

1

]

杨洋

.

深入浅出

Excel

VBA

[

M

]

.

北京

电子工业出版社

,

2019

[

2

]

剑指工控

.Excel

如何通过

DDE

控制

PLC

[

EB/OL

]

.

2014-08-08

[2020-1

0-07

]

/node/291

2

监控信息直接来源于最底层的设备网

更准确、

可靠

3

可以充分发挥

Excel自带的一些针对数据统计和分析的

强大功能

数据显示更直观

4

VBA

脚本开发所涉及的难易程度不同

涉及到条件判断

和数据运算的许多工作需要在

PLC

中进行处理

致使

PLC

加额外程序代码

增加

PLC

负担

上接第

38

[

3

]

周树海

邹林君

.

使用

Excel

RSLinx

构建简易车间监控系统

[

J

]

汽车制造业

,

2016

2

47-49

[

收稿日期

2020.10.29

]

1

实验结果

数据集

1

A

模式

训练精度和验证精度相比于前两次实验都要更接近于

1

,

对数

据集

2

采用迁移学习模式B

的训练

用时

22

33

秒,最大精

数据集

2

度为

0.997785

,

在训练过程中的训练精度和验证精度也都趋近

B

模式

B

模式

14

39

A

模式

实验耗时

0

1

2

3

4

5

6

7

8

29

7

0.8634

0.9295

0.9416

38

6

0.8403

0.9867

22

33

0.8095

Epoch

训练精度验证精度训练精度验证精度训练精度验证精度训练精度验证精度

[

而且比之前的实验更加稳定

4

结束语

0.9902

0.9935

0.9967

0.8315

0.9218

0.9339

0.9548

0.9641

0.9967

0.9967

0.9902

0.9967

0.9347

0.9889

0.9922

0.9945

0.9482

0.9581

0.9703

0.9703

0.9515

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

1.0000

0.9900

0.9911

0.9867

0.9967

0.9317

0.9229

0.9615

本研究基于

Resnet152

模型的水果分类识别方法

将预训

练好的

Resnet152

模型迁移到实验数据集中进行训练

保持卷积

层结构不变

对全连接层进行替换和训练

利用迁移学习的

0.9714

0.9846

0.9725

0.9438

0.9515

0.9581

0.9659

0.9626

0.9780

0.9714

0.9935

0.9967

0.9967

0.9967

0.9967

0.9967

0.9967

0.9935

0.9956

0.9945

0.9967

0.9438

0.9405

0.9416

0.9648

0.9515

0.9934

0.9967

0.9934

0.9934

0.9934

0.9911

0.9934

0.9857

0.9824

0.9879

0.9890

0.9934

0.9857

0.9857

0.9890

0.9890

0.9846

0.9835

0.9626

0.9769

0.9835

0.9868

0.9989

0.9978

Resnet152

模型与其他模型相比水果识别准确率明显提升

。所设

计的分类算法

可用于苹果

香蕉

橙子的准确识别

也可应用于

9

0.9581

0.9526

0.9526

10

11

0.9769

0.9780

0.9758

0.9890

0.9879

0.9868

0.9912

0.9824

0.9835

0.9879

0.9791

0.9846

0.9967

0.9890

0.9835

0.9956

0.9978

0.9978

0.9978

0.9978

0.9967

0.9978

0.9978

0.9537

0.9537

0.9559

0.9659

水果采摘与配送等物流环节以及智慧农业的研究

而从实验结果

可以看出

进行迁移学习的训练用时必进行深度学习训练的用时

更多,准确率也更高

但是存在花了更多时间

准确率的提升却没

0.9978

0.9956

0.9945

12

13

14

15

16

17

0.9581

0.9637

0.9581

0.9471

0.9659

0.9967

0.9967

0.9967

0.9967

0.9935

0.9967

0.9967

0.9967

0.9967

0.9967

0.9967

0.9967

0.9559

0.9615

0.9515

0.9350

0.9615

0.9934

0.9945

0.9967

0.9900

0.9934

有很大的问题

这是因为数据集内样本数量的局限性

本研究中

训练集和测试集采用了三种水果

每类水果

600

张图片

后续的

研究可以通过增加水果种类和扩大数据集来对模型进行训练

参考文献

[

1

]

贺智超

.

基于深度学习和迁移学习的多任务图像分类

[

D

]

.

广州

华南

18

19

20

21

22

23

24

0.9857

0.9934

0.9857

0.9879

0.9879

0.9835

0.9559

0.9526

0.9504

0.9416

0.9956

0.9989

0.9978

0.9967

0.9615

0.9604

0.9526

0.9934

0.9967

0.9922

0.9967

0.9681

0.9604

0.9659

0.9626

0.9659

0.9504

0.9956

0.9967

0.9967

0.9626

0.9681

0.9967

0.9967

理工大学

,

2017

[

2

]

He

K,Zhang

X,Ren

S,et

residual

learning

for

image

训练

用时

29

7

秒,经过几次迭代

训练精度和验证精度接近

1

;对数据集

1

采用迁移学习模式

B

的训练

用时

14

39

recognition

[C]

Proceedings

of

the

IEEE

Conference

on

Computer

Vision

and

Pattern

Recognition,201

6:770-778

[

收稿日期

2020.10.8

]

最大精度能达到

0.996732

虽然训练过程中精度在

0.95

波动,验证精度仍然接近于

1

对数据集

2

进行迁移学习模式

A

的训练

用时38

6

最大精度有

0.99889

在训练过程中的