组态软件的脚本程序
组态软件作为通用的监控系统二次开发平台,在各行各业都有广泛应用,因此最终用户的监控需求千变万化,他们需要组态软件含有强有力的工具或方法来实现自己的特殊需求,在组态软件中可以通过编写自己的程序来实现自己的特殊功能和流程控制,组态软件是通过提供“脚本”程序的功能来满足这一需求的。“脚本”是组态软件提供了一种简单的脚本语言,用户可以通过该语言编写脚本程序,来调用组态软件中的一些功能指令和进行流程控制。用户编写的脚本程序嵌入在组态软件之中,由组态软件来解释执行,这极大地增强了组态软件的灵活性,使组态软件能够去适应不同行业、不同用户的需求,让用户可以按照自己的意愿来编写自己的逻辑和控制流程。可以说“脚本”是组态软件最重要的功能之一。
脚本程序所使用的编程语言,开始是组态软件厂商自己定义的语言,其语法类似BASIC语言或C语言,一般称为“类似BASIC”语言或者“类似C语言”的脚本语言。由于这些脚本语言的封闭性和功能局限性,随着时间的推移,一些组态软件采用了通用的脚本语言作为自己的脚本程序语言,比如VBA,JavaScript等,这些通用脚本语言比自定义脚本语言提供了更多的功能和更灵活的程序控制。
随着信息技术的发展,用户对组态软件“脚本程序”的要求越来越高,不管是用自定义脚本语言还是通用脚本语言所编写的脚本程序,其能实现的功能也越来越显示出其局限性。主要体现在脚本语言的简易性,指令和功能的局限性,不能很好利用用户自己或第三方现成的代码,而且解释性的脚本程序的执行效率低下。正是为了解决这些问题,易控推出了自己的“用户程序”,作为“脚本程序”的换代升级。
在易控中,没有了“脚本程序”,取而代之的是“用户程序”。易控的“用户程序”是传统组态软件中“脚本程序”的扩充扩展。
易控直接采用了Microsoft最新专为.NET平台开发而设计的高级语言C#(CSharp)作为自己的“脚本”程序(用户程序)的编程语言,其功能较传统的自定义脚本语言有革命性的提升。C#语言的语法风格源自C/C++家族,融合了Visual Basic的快速程序开发特性和C/C++的强大功能,具有优雅、简单、安全、性能高、面向对象等诸多优点。易控的“脚本”程序因此功能十分强大。在用户程序中,可以直接使用C#语言的丰富指令、.NET Framework框架平台提供的数以万计的类库、易控提供的各种功能指令、易控工程中的变量、图形等对象。另外C#本身是全开放的高级语言,可以方便地利用用户自己或者第三方已经编写好的程序代码,让这些功能代码无缝集成和嵌入到易控中运行,这极大丰富和扩充了组态软件的功能。
易控的“用户程序”和传统的“脚本程序”不同,不再是解释执行的,而是编译成了计算机可以直接执行的二进制代码。这样“用户程序”比“脚本程序”运行的效率更高。这已经超越了“脚本语言”的定义,这也是易控不再继续使用“脚本程序”概念的原因。实际上,用户可以在易控中编写自己真正的计算机程序。将组态软件的功能推向了一个前所未有的新高度。
易控的用户程序功能虽然强大,但掌握和使用却并不困难。用户可能在不知不觉中就已经开发出了功能强大的用户程序片段了。因为易控既考虑到了一些高级语言编程高手希望自由发挥和施展的需要,也考虑到了没有什么高级语言编程经验的工程技术人员的实际情况,让他们都能够得心应手地各取所需,完成自己的工程任务。
易控提供了可视化、图形化的编程模式,使得不需要记忆指令,只要按照简单的逻辑规则就可以开发用户程序,还提供了智能感知、自动代码填充、着色、关键字窗口、命令窗口、工程对象窗口、语法检查等各种手段极大简化了开发用户程序的难度,用户可以更多关注自己工程所要解决的问题,而不是编程语言本身。
另外,易控还在工程中列出了用户最可能需要编写用户程序的地方,按照这些程序执行的触发条件进行了清晰的组织,例如当某一个变量改变的时候、当某一画面打开的时候等等。简化了对用户程序的管理。
总之,用户程序功能虽然强大,但开发使用却并不困难。
和传统的“脚本程序”相比,易控的“用户程序”具有明显的优势:
功能大幅增强:C# 高级语言能更灵活实现脚本语言所不能实现的功能
执行效率大幅提高:易控的用户程序是在工程运行前编译成可执行代码的,而脚本程序是工程运行时逐条解释执行的。
开放性大幅增强:C# 是完全开放的国际标准语言,用户无需专门学习一门语言。
集成能力大幅增强:用户程序中可以直接使用用户以前开发的.NET模块(DLL),可以使用第三方软件供应商提供的成熟代码(DLL)。
用户程序是面向对象的,而脚本程序是面向过程的。