1前言
从2001年进入工控领域以来,前后7年多的时间开发了诸如二型计量监控系统、焦炉四大机车自动化系统、烧结配水监控系统、隧道广告影像系统、通用组态软件、嵌入式系统组态软件(基于WINCE系统)、LED视频影像系统和ICU病室输液管理等系统。其中焦炉四大机车自动化系统获得了国家专利,而隧道广告影像系统目前发展势头良好,在北京地铁(2号线、4号线),深圳地铁(罗宝线)都已实施安装,未来上海和国外也将安装该系统。
工控相关开发历程,请参见我以前写的博文《叶帆工控自动化一览》。
开发这些系统最大的感触就是,初次开发相对比较容易,但是后续系统扩展,维护相对较难,在系统架构设计不好的情况下,非常依赖团队的稳定性和技术能力。并且系统一旦开发完毕,如果有多套差别不大,相对重复的系统实施,将大大降低开发人员的兴致,因为很少有开发人员喜欢做重复的工作,并且针对每个现场修改代码,虽然修改的代码量不一定多,但是给系统的稳定性,还有后续代码的版本维护,都带来重重问题(这还不算能修改系统代码的人员成本和一个只需会配置的工程人员成本差别)。
在初入工控的前几年中,我大部分时间都是在工业现场度过的,一般一个现场项目,从实施到系统基本完成,至少大概一个月的时间,并且后续还要听从客户的召唤,一遍遍去现场修改代码的BUG。当有几个现场项目同时需要维护的时候,时间和人力已经很难调配开了。
最初也考虑用传统组态软件搭建系统,优点是一些PLC和通信模块可以直接进行通信。不过组态画面的构建还是不太方便,每个现场还需要重新组态,所以上层界面需要自己自行用VB或VC开发界面,通过控件+配置的方式,完成界面设计。但是如果仅仅使用组态软件的IO组态部分,那使用组态软件的价值就不大了,所以从2005年开始自行设计组态软件后台(参见博文:组态软件开发(仅限后台部分)),并以此为基础构建了一套工控项目开发框架(参见博文:工控项目开发框架介绍)。
使用这套系统的优点是非常明显的,焦炉四大机车项目由最初实施的一个多月,变成最长一个礼拜,并且后续除了PC本身的问题外,基本上没有什么软件问题。
有了组态后台的开发经验,然后根据公司的战略,开始为触摸屏开发嵌入式组态项目。数据组态、画面组态是一个组态软件的基本组成部分,但是更重要的是,组态软件还要有一套自己的脚本系统,有了脚本才能把IO数据、各种图元有机的联系在一起。最初YFIOServer后台组态系统采用是微软的VBScript脚本引擎,在Windows平台上可以使用,但是在WinCE平台却很难支持,也曾考虑过购买嵌入式脚本引擎(自行开发的脚本引擎,功能和能力是比较弱的),但考虑到脚本本身的跨平台特性、扩展能力和宿主语言交互的能力等因素,最后还是放弃了。
2007年开始接触和了解.NETMicro Framework系统,我意识到.NETMicro Framework系统就是我所要寻找的大脚本系统,其框架特性,可以支持跨平台运行;其标准、稳定、完善的TinyCLR保证了C#强大的应用开发能力,以此为基础可以构建任何复杂的系统。出于对.NET Micro Framework喜爱,所以在2008年加入微软.NET MicroFramework项目组,开始了为期四年的.NETMicro Framework学习和研发过程。
7年工控经验的积淀加上四年.NETMicro Framework的潜心研发,由此在YFIOServer和YFEIOServer的基础上,推出了.NETMicro Framework平台的YFIOs系统,在EasyHMI的基础上,推出了.NETMicro Framework平台上的YFHMI系统。
下面我将一一介绍YFIOs和YFHMI系统的技术演进过程。
2 YFIOs物联网中间件平台简介
2.1 YFIOs技术演进图
2.2 YFIOServer
查看了我在2005年1月份写的《研发部总结及计划(0501)》,其中有这么一项(如下图),可见组态软件后台程序的研发应该始于2005年1月份。
不过从2004年10月份写的一篇博文《