跨平台SCADA系统(组态软件)开发1

一、系统概述

我在上年做了一些工控软件开发的介绍(可参考我之前发过的博文),解决了两个主要问题:

1、无需修改代码,简单配置,即可支持几十上百种不同通讯协议的仪器。

2、开发了类似组态软件的功能,像画图软件一样编辑一个流程图,图像元素能够根据仪器数据和状态进行实时变化。

当然还有其他解决的问题,但比较突出的是上面两点。

(组态)

(设备配置)

(设备面板)

(数据图表)

 

今年接触到几位同行的朋友,他们提出了能不能提供在Web上运行的组态图的想法。确实,Web早已大行其道,之前只是因为觉得Web实时性不够而没有往这方面考虑。要真论起桌面软件和Web的实时性哪个好,结论当然是桌面软件要好一些,毕竟Web还有一个跟服务器交互的过程,这是毋庸置疑的。但这个延时真的不能接受吗?如果桌面软件是1秒,Web是1.01秒,那又有什么关系呢?

本人之前所开发的工控软件,使用的技术是C#/WPF,只能运行在Windows系统下。一不做二不休,本次所开发的SCADA系统,能够运行在Windows和Linux系统下,能够以桌面软件的形式展现,也能以网页的形式展现。

 

SCADA系统的功能可以分为几大块:数据采集、数据展现、报表、数据存储、反控、组态和上传数据。其中,报表和组态其实都是数据展现的一种形式,因为它们比较重要,所以单列出来。在仪器多种多样的场合下,设备配置也是系统中很重要的一个模块。

根据应用场景,SCADA系统的部署架构可能是以下几种情况:

 

仪器-工控机

 

仪器-工控机-服务器-客户端

这是最常见的一种模式。功能模块在各端中的分布可能会有些差异,例如,工控机端一般也会保存一份数据。

 

仪器-服务器-客户端

 

考虑到开发成本和维护成本,我们肯定希望系统只有一套代码。借助.NET技术,我所开发的SCADA系统做到了这一点。在不同的系统、不同的平台下,只有一套代码。大致的实现方法是:

1、类库的目标框架同时包含.NET Framework和.NET Core。

2、服务端使用.NET Core开发。

3、界面主要使用Web去做,在桌面版中使用容器。

 

具体的开发细节在后续的文章中讲述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章