1、 前言git
在园子潜水也七八年了。说来惭愧,这么多年虽然一直自称.NET铁杆粉丝,然仅限于回几个不痛不痒的贴,既没有发布过代码,也没有写过文章。github
看着.NET和C#在国外风生水起,国内却日趋没落,我也早以为有写一点东西的必要了。数据库
2、 为何要开源,它能作什么编程
如今已经不是兜售软件光盘卖受权的时代了。我本身开发这套系统也得益于开源。安全
原由是由于看到单位用的组态软件被版权问题困扰,同时系统十分庞大,动辄几个G,安装部署调试都不方便,同时脚本功能和扩展能力也有限。服务器
开始就是本身研发,同事广泛反对,都认为组态软件是大公司玩的东西,我靠一人一枪,图样图森破。架构
然而我是个狂热分子,参考了几百篇国内论文,下载过几十上百个开源类库,反复研究,常常熬夜。工具
一段时间以后,拿出来一套半成品,也逐渐为你们所接受,并一发不可收,陆续作了很多工程,逐步取代了原有的组态软件,系统也不断成熟、壮大。动画
但限于精力和水平,系统完善的空间还很大,能够改进的功能还不少,与其敝帚自珍,不如交给社区,共同完善。spa
这套系统只是提供了一套组件和工具,并无给出具体的行业解决方案和控制逻辑(这属于不能开源的部分)。
从一开始设计目标就很明确,取代单位现有组态软件。实现“多快好省”。
系统架构图以下:
分为网关驱动层、平台服务层、应用层。
网关负责转换各类工业以太网协议,统一接口。
平台服务层负责轮询、储存、推送数据。提供各类查询、读写接口。
应用层主要是人机界面(HMI)和各类可视化功能组件,如报警界面、趋势图、报表、图表、下订单、改参数、查日志等。
多:就是适应面广,好比工控网关能支持多种工业以太网、PLC,普适性强,可应用于多个行业。
目前已经支持:
快:这里包含三个意思,设计效率高、安装部署快、运行速度快。
有方便的设计工具。驱动、变量、报警、归档管理器,对,就这样一个简单的配置器,支持各类格式导入导出。
接下来是宇宙第一IDE,Visual Studio,做为组态设计器。组态设计器原本是最难实现的部分,如今VS一出,秒杀一片。
速度按我本身,作一套多工段上位机的画面,快则一天内,慢也就两三天。
运行速度:按批量读写方式+订阅-推送模式,几千个变量,几百个显示单元,含动画,通信周期500毫秒,很流畅。
好:就是界面美观、功能齐全、易用性好,扩展性好。
目前已完成的功能包括:
工业网关:支持多种协议。若有新驱动加入,接口实现很是简便。
实时数据引擎:实时推送变化的数据,支持远程服务器+N个客户端。
历史数据归档引擎:支持N变量快速归档,可为数据分析和数据挖掘提供支持。归档文件很小,自带索引,查询快速。
人机界面:能够充分利用VS设计器的强大功能,辅之以强大的插件(自吹一下),彻底能够把VS设计器当作组态设计器来用。
扩展性:加入新功能很快,由于接口很简单。可是功能却不简单。
省:顾名思义,就是省钱省时间啦。
首先系统环境简单,就是装个.NET(由于只要求4.0,WIN7自带),数据库可用SQL EXPRESS,没有采用任何第三方收费组件(开源组件在github列了清单,感谢做者)。
VS做为设计器,强大又好用,可用社区免费版(我的用用不要紧,企业的话最好联系微软买正版受权)。
支持各类PLC,单位老组态软件不少PLC不支持,在这里加入一个新的设备驱动很方便。
3、 三个为何
考虑到吹了半天牛B,你们也许会问如下三个问题:
为何要用.NET 平台?
第一,本人是微软粉丝,.NET忠实码农,用了十多年了,无往不利。不管是一心为公,仍是私活利器。首先.NET自己就是一个多快好省的平台,配合宇宙第一IDE,开发效率极高。
其二微软也愈来愈开放,.NET跨平台能力也愈来愈强。至于被不少喷子狂喷的所谓.NET工资低,那是由于国内特殊缘由形成JAVA码农已先入为主。
本人这行业目前没有公司政治的问题,所以也历来没考虑转型(曾经为安卓APP写过JAVA,也很简单,可是我要吐槽一下,一样功能,JAVA实现起来太啰嗦)。
为何要用WPF?
WPF是一种声明式编程方式(XAML语言),很是适合工控界面设计。同时微软提供了Blend设计器,实际上画这些控件的都是不会写代码的机械工程师。
实现了先后台分离的协做方式。加上有宇宙第一IDE的配合,能够作的很是炫。
为何要用Visual Studio?
很简单,宇宙第一IDE不是盖的。我见过不少家的组态画面设计器。不管效果仍是易用性仍是扩展性,和VS无法比。VS同时还集成了项目管理和编译器。
关于VS扩展性你们不多用到,本人也填过不少坑,找了不少资料,实现以后你才知道它的强大。
4、 下面的计划
在社区的协助下,修补Bug,加强安全性稳定性。能用起来就是胜利。而后追求更加“多快好省”。
提纲和目录也拟好了。大体以下:
github地址:https://github.com/GavinYellow/SharpSCADA。
github上面有说明书。下载包里还包括如何安装部署、如何用来设计的Word文档。比较粗略,欢迎提问。