[WinCC OA 学习分享][四]WinCC OA 软件架构

已锁定

OAplayer

  • 帖子

    9
  • 精华

    1
  • 被关注

    26

论坛等级:游民

注册时间:2018-06-14

普通 普通 如何晋级?

[WinCC OA 学习分享][四]WinCC OA 软件架构

1296

1

2021-05-08 13:39:21

整理一篇之前 在博客园发表的文章

也欢迎大家关注我的博客园 


WinCC OA 是一个由模块组建的系统,这里引用官方手册里一张非常重要的图

在WinCC OA中每个模块都单独负责一项业务,

具体到软件上每个模块为一个单独的管理器(manager)

下面我们对这个图进行详细的拆解

 

分层

按图示 将这些模块的归属分为四个层级

 

UI层(User Interface)  -> 负责与用户进行交互

处理/控制层               -> 主要为我们在OA立写的脚本,扩展程序等

消息层                        -> 主要处理多个系统(分布式/冗余)之前的消息交互,系统配置数据归档等

驱动层                        -> PLC 各类现场总线的驱动

 

 

下面我们由下向上分层讲解

驱动层

驱动层我们工控的小伙伴们应该都好了解,针对现场设备采集数据的一层

具体到WinccOA里面可以映射为各驱动(Modbus S7...)模块

如上图示,截取了部分WinCC OA中的驱动Manager

改层模块的作用主要就是负责将现场总线数据采集到OA系统

 

消息层

消息层是整个OA系统里面最为重要的一层 我们看到架构图里有三个成员 EV DB CON

 

EV

EventManager(事件管理器) 我们看到EV位于整个架构的核心位置,它负责整个系统的消息分发,

WinccOA是一个消息驱动型系统

比如说驱动层采集来一个重要的数据,第一时间他会把数据通知EV,

EV拿到数据之后,首先检索下谁对这个消息感兴趣(感兴趣指的是 数据存储模块要存储这个数据,显示界面要显示这个数据,报警模块可能要分析这个数据等)

OA系统根据模块的优先顺序向相应模块发送数据消息,相应模块接到消息后处理数据


DB

数据库管理器 主要负责系统中数据解析的配置,数据的归档等

 

CON

连接管理器(connect to other system) 负责与其他系统/节点的通讯,其他系统主要指分布式 系统,冗余系统


控制层

本层主要两个成员 CTRL 跟 API

 

CTRL

ctrl为WinccOA内置的脚本语言,我们在用OA做业务的时候 不是组态的过程就是在写脚本,

OA之所以要实现自己的脚本语言就是要实现在线开发的概念,我们知道WinccOA是基于Qt开发的图形界面,

而Qt是C++的一个图形界面库,正常写完一个C++程序需要编译才能跑起来,如果项目很大的话,编译的时间将会很长.

这样很不便于修改,尤其是SCADA系统,我们经常要调节一些小的参数,因此WinccOA实现了一个自己的虚拟机,

用于运行自己的脚本语言,这样不仅能简化开发OA的难度,还能实现在线开发的效果.

API

OA提供了丰富的API接口 如果懂IT的小伙伴可以通过这些接口用C#/C++...写自己的控制程序

 

视图层

这一层的内容 主要是跟我们的视觉打交道的,比如我们能看到的产品界面,组态界面 ,甚至手机App等等 人机交互的的都称之为UI(user interface)

 

总结下:

WinCC OA 是一个模块化系统,大家可以根据需求添加自己业务用到的模块,每个模块在OA的控制台里可以理解为一个Manager,每个模块可以由单独一个进程管理.

WinCC OA 是一个事件驱动型系统,OA 各个模块/各个系统之间的交互都通过EventManager 这个模块



[WinCC OA 学习分享][四]WinCC OA 软件架构 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC OA (原PVSS)

共有342条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。