联系我们  |  网站地图  |  加入收藏  |  
> 新闻与动态 > 新闻 >  
新闻
SCADA开放扩展之下篇——二次编程

作者:admin     发布时间:2019-11-29 15:23     信息来源:未知     浏览:    

 

摘要

        在高要求的SCADA应用场合,软件的开放扩展性至关重要,我们认为软件良好的架构设计和足够强大的二次编程功能是实现开放扩展的主要手段,本文介绍SCADA开放扩展之下篇——二次编程。

        作为一家软件公司,最近两年尤为敏感耳边充斥的各种强化软件之重要性的呼声!
        “软件定义硬件”、“软件定义系统“、“软件定义网络”,甚至”软件定义世界”、“软件定义一切”!
        看来有限的硬件能力和迟缓的更新速度与无限的人类需求之间的矛盾是愈来愈突出了!

        “欲戴王冠 必承其重”,作为系统中体现思想体现灵魂的软件毋庸置疑至关重要,这也是越来越多的公司组建自己的软件研发团队,希望能在“软件决定”时代拥有更多的话语权。抛开得失成败个中心酸不说,如果有一个好的产品,不用组建专业软件研发团队,少量编程工作亦能实现同样效果,你会怎么选择呢?

        希望本文的内容能给你带来一些启发。

        本文内容也是接上篇《SCADA开放扩展之上篇——架构设计》,由于通用SCADA软件在高要求的应用场合必须灵活,满足用户个性化的需求,良好的架构设计是重点之一,二次编程同样也是SCADA软件作为增强开放扩展性而提供给客户的重要功能,也可供非专业软件团队用户在其上组建自己专业的系统平台。

一、通用SCADA软件中提供二次编程能力的必要性
        由于通用SCADA软件的应用场景多变,既有智能制造业的装备、产线、工厂,智慧城市领域的建筑、交通、能源、环境,还可以应用在生产和应急领域的指挥控制,因此,用户的监控需求千变万化,用户需要一种按照自己的意愿来实现某些特殊需求的方法和手段,一般是通过软件提供的“脚本”功能来实现二次编程。SCADA软件的“脚本”功能是指通过其提供的一种嵌入到其自身内部的简单编程语言实现基本的程序流程控制手段(比如条件语句和可执行指令)。 “脚本”极大地增强了SCADA软件的灵活性,使其能够去适应不同行业、不同用户的千变万化的需求,让用户可以按照自己的意愿来编写自己的逻辑和控制流程。
脚本中的编程内容或者可访问的资源包含几类:
 使用脚本语言本身提供的功能
 访问应用工程中的各种资源
 访问软件提供的各种功能
 将应用工程中的功能联结为一个有机整体

二、二次编程工具的三个发展阶段
        第一阶段,类C或类Basic脚本。厂商自己定义的类似高级语言,是C或Basic的一种简化脚本。脚本语言是完全由厂家自定义的语言、语法,是不通用的,非开放性的,用户需要记住和不断翻阅厚厚的指令手册来编写程序,而且无论厂家如何去扩充其指令,特别是实现其它一些通用功能的指令,总是有限的,不可能满足用户的复杂需求,目前国内大部分SCADA软件和一部分国外SCADA软件都采用这一“脚本”方式。
        第二阶段,通用脚本语言。厂商采用了一些通用的脚本语言作为自己的脚本语言,比如VBA,JavaScript等,这些通用脚本提供的功能相对自定义脚本来说要强得多,这也是目前主流SCADA软件的做法,属于“脚本”发展的第二个阶段。但整体讲也存在访问外部代码困难、功能不够强大、解释执行效率低等问题。
        第三阶段,标准高级语言编程。SCADA软件中直接嵌入功能强大的标准高级语言,并在工程运行前,直接将用户编写的“脚本”程序,编译成计算机可以执行的代码,将“脚本”程序执行的解释过程在运行之前进行,从而提高“脚本”程序的执行效率。可以看出,新的“脚本”程序,已经在逐渐脱离“脚本”的定义(注:“脚本”语言的定义就是在运行时需要另外一个程序来解释执行,而不是像其它高级语言程序一样,直接被编译成计算机处理器可执行的代码的一类高级语言)。因此,内嵌标准C#编程的易控天地将传统的脚本编程定义为了“用户程序”,即用户可以在易控天地中编写自己的真正的计算机程序。

三、易控天地C#用户程序
        易控天地将C#高级语言嵌入到产品中,除了提供访问其本身功能所必须的“方法”,用户可以使用标准C#语言提供的所有功能,使用.net Framework提供的数以千计的庞大类库,以及第三方软件提供商提供的类库,即大量已经被其它厂家编写完成并经过其它用户使用的代码都可以直接使用,从而使用户在有特别需求的情况下,可以利用这些成熟代码来编程实现,并将自己的程序嵌入到易控天地中运行。实际上,利用易控天地的C#二次编程,其功能扩充是没有限制的。

高效的统一开发环境
        易控天地中提供标准的C#编辑器,对不同的用户程序片段进行了非常好的组织管理,用户也能够自己组织程序片段的结构,比如按照用户程序执行的触发条件来进行组织,结构清晰,同时简化了对用户程序的管理工作,在查找和修改时十分方便。

本身提供的强大的功能和无限扩展的外部资源
        易控天地的用户程序采用C#编程语言,所有C#的指令都可以使用;
将一些用户使用频率高的功能封装成为函数提供给用户使用(如配方、安全、语言切换等功能封装成为指令,并且有提示信息,方便用户使用);
可以灵活控制开发工程中的任何对象,从IO通信下的设备到画面上绘制的所有对象等;
可以使用微软提供的数以万计的类库;
用户已有的程序可以无缝的结合进来,访问第三方代码;
通过自定义方法功能对重复的代码实现高效管理。
通过自定义类功能使得软件的功能得到了无限的扩充,也使得易控天地既可以是一个SCADA平台,同时也是一款编程软件,自定义类的编写符合标准,有开发经验的用户能够很轻松的使用,并且允许自定义类跨工程使用,最大限度的发挥类的功能。
以下各种合作开发模式都是在易控天地产品的用户中经常出现的方式。

精心设计易学易用
        为了避免因为功能的扩充而造成用户编写程序困难,易控天地SCADA软件中大量地采用了可视化编程等精心的人性化设计,极大简化了开发用户程序的难度,尽可能让用户更多关注其所要解决的问题,而不是语言本身,例如:
用户程序代码编辑器提供了工程命令、用户程序可以引用的工程对象、关键字和运算符等窗口用于可视化选择;
实现图形化编程,零代码编程;
代码的不同部分采用不同颜色显示;
提供智能感知,自动提示用户可选的方法(命令)和属性;
提供导入和导出、语法检查、错误提示等。

        “工欲善其事,必先利其器”,C#二次编程功能作为易控天地SCADA软件中的核武器,在众多高级用户的复杂应用场景中发挥了至关重要的作用,也是软件决定时代帮助用户打造自属利器的好选择!


更多易控天地新功能,请持续关注:
网站:www.controlease.com
微信公众号:自动化监控和信息化

 

 

EDM和订阅

 
010-82867550
010-82863904
Service@controlease.com
 

北京九思易自动化软件有限公司 版权所有 京公网安备11010802039233号京 ICP 备 18000243号
电话:010-82867550 82863904  传真:010-82865781  E-Mail: support@controlease.com
公司地址 :北京海淀区华清商务会馆1001室  邮编 :100083