浅谈PDMS二次开发语言PML与.NET(C#)的对比

(整期优先)网络出版时间:2022-11-17
/ 2

浅谈PDMS二次开发语言PML与.NET(C#)的对比

王婕

摘要:PDMS是AVEVA公司的一款三维建模软件,在石油化工装置设计过程中被广泛应用。PDMS支持二次开发,其中二次开发包括.NET及自带的ProgrammableMacroLanguage编程语言(简称PML)。通过对比不同环境和需求下.NET和PML的优劣,选择适合自己的编程语言。

关键词:PDMS二次开发语言PML;NET对比

  1. PML开发介绍

1.1PML语言简介

PML语言为PDMS公司开发的可编程宏语言,是一种解释型的脚本语言,其只能在PDMS软件中被解释执行。自PDMS发布以来便应用于PDMS二次开发。PML开发可以使用PDMS大部分资源,对PDMS版本的敏感度不会特别高,无需进行编译即可在PDMS上执行。比如,使用PML基于11.5开发通过简单的匹配即可以在12.1上完美使用。PDMS软件命令功能模块大部分模块基于PML开发,同时伴随PDMS发展,大量的培训资料、开发实例等为开发者提供了大量的学习资料。PML语言仅应用于PDMS软件,初学者无论是否学习过其它开发语言,都可以根据开发说明进行二次开发。

脚本语言的显著优势就是将常用的命令封装出来,这样在测试程序的新功能时,不再需要编译源码,只需编写程序脚本,能有效提高软件开发的效率。

1.2PML开发环境

PML语言可以直接使用文本编辑器进行编程,或者采用部分人员开发的PML界面设计器进行编程。对于初学者,可以通过在PDMS命令栏中输入常用的PML语句进行设计工作进行简单的PML学习,再通过《Software Customisation Guide》学习窗体(Forms)、功能(Objects)、函数(Function)、工具(Gadgets)。

①窗体(Forms)

窗体是创建一个操作窗口,便于用户进行可视化操作。在该窗口下,可以创建列表、文本框、功能性按钮等可视化接口。

②功能(Objects)

创建一个功能区,该功能区可以包含多个按钮,每个按钮可以指定一个操作窗口。该功能区可以直接进行调用。

③函数(Function)

在软件设计时,通过将所有的函数或者功能进行定制,然后在窗体中进行引用。这样做的目的是,便于设计者进行调试、归类管理等。

④工具(Gadgets)

在进行软件设计时,可以设计一个窗体和基于该窗体的若干个工具。为了便于在窗体中进行不同类别的归纳整理,引用该功能。

1.3PML开发的缺点

因为PML仅仅服务于PDMS的二次开发,所以与其他软件进行数据交互时,只能将数据转化导出为表格(XLS,CSV)、文本(TXT)型式,然后再进行数据转化存储至其他软件。无形中增加了多个使用步骤哦,增加了操作难度。目前在各个设计公司均在大量的使用各种类型的设计软件工作;需要进行大量的数据交互。基于当前PDMS的发展轨迹来说,从12.0开始逐步支持.NET二次开发,逐步使用.NET构架替换PML也可以说明.NET构架也是该软件发展的主流。再者,PML编程目前仍然非常小众,没有比较好用的开发平台。虽然有部分设计人员,基于自身的开发经验创建了部分平台,但仍处于小范围使用阶段;对于扩大PML的影响力毫无用处。再者对于复杂算法,PML执行效率较低,PML命令执行时间过长时,PDMS往往会进入一种假死状态,导致软件崩溃。在小范围内测试,.NET的执行效率约为PML的10倍左右。

  1. NET开发介绍

2.1NET开发简介

AVEVA.NET是AVEVA推出的一种更方便的开发方式。结合C#丰富的库及相对于PML而言更高的效率,可以使用C#在AVEVA上快速的开发出应用程序。+C#是由C和C++衍生出来的面向对象编程语言。它在继承C和C++强大功能的同时,减少了一些它们的复杂特性。C#是一种面向对象的编程语言,这样就使得设计人员可以快速、高效地开发各种基于MICROSOFT.NET平台的程序软件,同时还可以采用VSTO开放平台。

2.2NET开发环境

基于.NET(C#)进行PDMS二次开发可以使用Visual Studio Toolsfor Office开发平台进行软件设计。VSTO是一套用于创建自定义应用程序的Visual Studio工具包,被程序员广泛采用。VSTO使你可以用VisualC#扩展PDMS应用程序(生成DLL文件被PDMS调用)。可以使用强大的Visual Studio开发环境来开发PDMS应用程序。无论你是创建一个Forms控件,还是创建各种复杂的函数以便于进行数据处理,VSTO都可以实质变得非常容易。在添加对PDMS提供的命名空间后,我们可以轻易的使用.NET(C#)从PDMS获取各种想要的信息。基于VSTO的可视化开发平台和丰富的.NET控间资源,开发可以变得非常简单、高效。

使用.NET(C#)进行PDMS开发时,需要引用以下几个命名空间:

①命名空间:Aveva.Application Framework

插件管理器:这个类提供属性和方法来管理应用程序框架插件。服务管理器:这个类定义一个接口,应用程序框架中的各种组件可以通过它发布服务。这个服务管理器本身作为一个服务提供者,也可以响应服务的请求,它还可以被应用程序和应用程序插件用于发布额外的服务。设置管理器:这个类提供属性和方法管理应用程序设置,这些设置保存在设置组中,用于在不同的任务中保持一致。

②命名空间:Aveva.Application Framework.Presentation

命令条管理器:提供使用基于应用程序框架程序的菜单和命令条,也提供方法加载用户接口定制(UIC)文件中定义的菜单和命令条。命令管理器:这个类定义一个接口来提供一种机制管理命令对象可以关联到工具栏和其他用户界面对象,当激活一个工具(比如点击一个按钮)将执行相应的命令对象。一些不同的用户界面对象可以关联相同的命令对象,因此可以在命令中集中控制那些用户界面对象的功能,命令的这种状态属性(例如可用/选中)将可以影响关联这个命令的所有用户界面对象,例如,命令设置为不可用后将导致所有关联的用户界面对象不可用,用户界面对象通过Command Executor派生类关联命令。资源管理器:这个类定义一个接口给插件提供一种简单的机制来存取本地资源。资源管理器提供一些方法允许插件存取资源文件包含的各种形式的资源(字符串,图像,光标,图标等)。窗口管理器:提供存取主程序窗口,状态栏,多文档界面集合和可停靠窗口,也给开发者提供方法生成多文档界面和可停靠窗口来包含控件。

结语:

在实现简单功能的二次开发中,需要根据不同项目的需求选择相应的开发语言进行软件开发。从数据来源的角度来说,如果仅仅对PDMS内部数据处理,不需要与其他软件进行数据交互;则直接采用PML语言进行设计较为简单高效;反之则应使用.NET(C#)平台。

参考文献:

[1]魏恒.PDMS二次开发语言PML与.NET(C#)的对比[J].电子世界,2021.

[2]江保军; 鲍景明; 翟家海; 杨明伟.二次开发在PDMS设备建模中的应用[J].数字技术与应用,2020.