组态软件原理与实现

     组态软件对很多朋友来说可能比较陌生,不知道何谓组态软件,组态软件是做什么的,用于哪方面的?不急,听我慢慢道来...

     对于程序员来说,我想自己的吃饭家伙总不会再陌生了,现在的开发工具实在是太多了,VC,VB,C#,Java等等,我就不再一一道来,拿VC来说吧,说白了,VC其实也是一种组态软件,一种可视化编程工具,用户需要什么样的界面,需要什么样的功能,通过可视化编程方式,拖几个控件,几个按钮,搭建自己所需要的功能,实现自己所需要的控制逻辑,最后编译成可执行程序,完成用户的功能。对于程序员来说,这些工作很简单,用户提的需求基本通过代码,基本都能实现,无非就是工作量与时间的问题。如果有一天,你写的程序交付给用户,用户说:“你这个界面的颜色可不可以是这种颜色?这个字体能不能大一点?这个按钮能不能做得好看一点,按钮上的文字我能不能修改?这个窗口位置能不能让我指定?这个按钮点下去,能不能先弹一个用户验证保护才能执行功能?.....”。当然,你肯定会说:“能,当然能,你要什么样的,我帮你改,要什么功能,我给你加好”。OK,这个客户你搞定了,换了一个客户,同样也用你的软件,他的要求又不一样,他觉得,这个字体对我来说好一点,这个颜色应该是红色,这个窗口我想放某某的旁边...,好吧,那你照他的要求再改一下代码吧,如果1000个客户,客户要求都不一样,你就想骂人了,真TMD改得累,你要这样,人家觉得这样不好,那我怎么改?一个客户一个版本?要抓狂了!!! 这就是定制软件的特点,很难满足客户的要求。那么你肯定会想办法,我把这些参数暴露出来,做成配置文件,你想要什么自己改去,你要实现什么功能,你自己去,这就是一种组态方式,用户需要的功能,自己组态完成,不再由程序员通过改代码实现。因此这种组态的软件架构模式由此而产生,用户需要什么功能,由用户自己通过二次开发,搭建自己的控制系统。

    组态软件的实现比较复杂,一个界面的组态比较容易,用户需要的无非就是修改相关的风格,只要组态软件这些参数做成可配置的,那么就能满足不同客户的需求。软件功能的组态就比较复杂了,有些用户需要这功能,但有些用户不需要这功能,比如制造同样的设备,不同厂家的工艺参数都不一样,A厂的温度需要控制在100度左右,大于100度需要报警,低于80度也要报警,但B厂的是高于120度才报警,低于60度才报警,同样的软件用在不同的厂家,参数是不一样的,如果在程序中把这些参数写死,那么两家就需要两个软件版本,如果客户更多,那软件的维护就越来越难,只有把这些功能做成可配置的,那么一个软件就能满足不同的客户需求,只是不同的客户配置参数不同而已。

   对于不同客户的配置参数差异,从而引伸为不同的项目,这里所谓的“项目”指由组态软件开发出来的项目,其实就是根据用户需求,配置他们所需要的参数而已,不同的客户,就有不同的项目,但组态软件只有一个。既然项目只是指配置的相关工艺参数,那么如何实现功能呢?由此组态软件引伸为“开发器”与“运行器”之分,所谓“开发器”指用户通过配置参数,搭建他们自己所需要的项目,而“运行器”则是解析配置参数具体实现用户控制逻辑的软件。有跟VC有点不一样,VC编译环境也是搭建自己的软件,程序员配置好界面,为每个界面编写代码实面功能,一个软件由很多个dll组成,这些源代码就是工程,相当于组态软件“开发器”开发出来的项目,因为VC是编译型的系统软件,编译出来的exe就可以直接运行,实现控制逻辑,但组态软件是属性于解析型的软件,无法做到编译成exe,因此需要一个“运行器”来执行所配置的项目。目前应该还没有一家组态软件能做编译成exe的。很多朋友对于组态软件分“开发器”与"运行器“不太明白,这就是这个原因,可以这样去理解它,跟VC一样,你写程序,配置界面,这就是做配置,这就是组态软件”开发器“的功能,VC编译生成exe,然后直接调用exe就能实现功能,这就是组态软件”运行器“要完成的功能,运行器通过解析配置参数,实现功能。

   

你可能感兴趣的:(PMSOFT二次开发平台)