AVEVA PML Quick Start Guide

简介: AVEVA PML Quick Start GuideAVEVA PML 快速入门引导 eryar@163.com 一、引言 近来网上有些朋友通过Email和QQ联系到我,和我聊他们公司中AVEVA Marine/Plant(PDMS)的使用情况和有关二次开发的问题。

AVEVA PML Quick Start Guide
AVEVA PML 快速入门引导

eryar@163.com

一、引言

近来网上有些朋友通过Email和QQ联系到我,和我聊他们公司中AVEVA Marine/Plant(PDMS)的使用情况和有关二次开发的问题。有的公司也许是由于船东或业主的要求不得已才用,也只是建模型,做碰撞检查之用,没有充分发挥AVEVA软件的作用,没有理解生产工具这个概念,没有使之转化为生产力,提高生产效率。觉得很好玩,从政治书中摘出以下内容:

生产力与生产关系矛盾运动的规律,是人类社会发展的基本规律。生产力是人类在生产实践中形成的改造自然和影响自然以使其适应社会需要的物质力量。生产力的基本要素有:

l 劳动资料:也称劳动手段,是人们在劳动过程中所运用的物质资料或物质条件,其中最重要的就是生产工具。

l 劳动对象:一切自然物质都是可能的劳动对象,其中引入生产过程的部分是现实的劳动对象,包括生产深度加工的对象。劳动对象是现实生产的必要前提,它从一个侧面反映和体现生产力发展水平;

l 劳动者:劳动者是具有一定生产经验、劳动技能和知识,能够运用一定劳动资料作用于劳动对象、从事生产实践活动的人。一般包括体力劳动者和脑力劳动者。劳动者是生产中最活跃的因素,人类智慧和能力的发展决定着对物质资源开发的深度和广度。劳动资料和劳动对象只有与劳动者的创造活动结合起来,才能变为现实的生产力。所以,人才资源是第一资源。

l 生产力中还包含着科学技术。科学技术是先进生产力的集中体现和主要标志,是第一生产力。科学技术能够应用于生产过程、渗透在生产力诸要素之中而转化为实际生产能力。科学技术上的发明创造,会引起劳动资料、劳动对象和劳动者素质的深刻变革和巨大进步。科学应用于生产的组织管理,能够大幅提高管理效率。科学技术为劳动者所掌握,可以极大提高劳动生产率。在现代,科学技术发展日益成为生产发展的决定性因素。

AVEVA公司的软件只是个生产工具,但是国内许多公司没有使其与劳动者结合,未能转化为现实的生产力。原因当然是多方面的,但归根到底还是由于AVEVA太贵。衷心希望国产三维CAD/CAM软件能够发展起来,不能让钱都给老外赚去,这也许是“落后就要挨打”的一种体现。

二、PML介绍

PML是指the AVEVA Programmable Macro Language。使用PML可以根据需要灵活开发出自己的程序。PML功能强大,简单易学,与PDMS无缝连接,简化用户界面(GUI)的开发。包括管子创建、部件创建修改等许多程序都是用PML写的,且AVEVA的这些源代码也是可以查看的。当理解PML后,可以查看这些源码,加深对AVEVA软件的理解。

PML2是基于面向对象的解释型语言,而不是面向对象的语言。因为面向对象的语言支持类、继承、多态的概念,而PML不支持继承,但是可以对象组合。这倒也符合GoF的《Design Pattern》中的一个建议:Favor object composition over class inheritance.优先使用对象组合而不是继承。

PML中的对象(Objects)有成员变量和成员函数,即属性和方法。没有私有的概念(private),即所有的成员变量和函数都是公有的(public)。所有变量的作用域只有两种:全局变量和局部变量(Global and Local)。PML函数参数都是传引用的(passed-by-reference)而不是传值的方式(passed-by-value),所以可以通过参数返回改变的值。在C/C++语言中,这两种方式都可以使用。

在学习过程中,若你会使用C/C++Java,则通过对比会更快的掌握PML

三、推荐编程工具

推荐一个替代记事本的强大的编辑工具:EditPlus。主要是因为EditPlus可以基于自定义语法文件为其他编程语言的语法高亮。

EditPlus

可以为编辑PML设置语法高亮及自动完成功能。EditPlus不是免费的,但可以从其官方网站上下载试用版:http://www.editplus.com/

若需要PML的语法高亮及自动完成的配置文件或其配置方法,都可以与我联系。

当然,还有许多这种文本编辑工具,若可以语法高亮,编写代码时要舒服很多,可根据实际情况选用。

四、第一个程序:Hello World!

程序员喜欢的一本书《The C Programming Language》中以一个显示“Hello World”的程序已经成为程序设计书中的经典。这里也以显示一个“Hello World!”为例开始PML的学习。程序代码如下所示:

Hello World Program

运行成功后,将会出现如下的程序界面:

A Simple Form

为了运行成功,需要了解以下内容:

1. PML程序文件存放位置:PML程序文件的位置由evars.bat文件中设置的,也可以根据实际情况设置成别的路径,默认设置路径为:

Set PMLLIB Path

一般默认的设置为:X:\AVEVA\Marine\OH12.0.SP6\PMLLIB

2. 规范的文件扩展名:

l .pmlfnc —— PML Function definition files 函数定义文件;

l .pmlobj —— PML object type definition files 对象定义文件;

l .pmlfrm —— PML Form definition files 对话框定义文件;

Note: All filename extensions must be entered in lower case.

注:所有文件的后缀名必须是小写字母。

3. 文件夹命名约定:将以上三种文件分别放在三个不同的文件夹中,这三个文件夹分别是:forms,functions,objects,如下图所示。

File Directories

当然,这只是个约定,也可以将所有类型的文件都放在一个文件夹中。

4. PML索引文件:pml.index。所有的PML程序文件都可以在这PMLLIB目录下的这个文件中找到。如果这个文件中没有那个文件,则该文件就无法被识别。把PML程序文件加入到这个文件也是通过命令自动完成的,命令为:pml rehash all

了解以上内容后,我们来具体实现一下:

首先:将语法高亮显示的程序代码保存为Hello.pmlfrm

其次:在路径:X:\AVEVA\Marine\OH12.0.SP6\PMLLIB 下新建一个文件夹名为:AddIns,以后做的PML都放在这个文件夹中。按照约定,在AddIns文件夹中再新建三个文件夹:forms,functions,objects,并把Hello.pmlfrm放到forms文件夹中。如图所示:

PML File Directories

然后:进入Outfitting模块或Design模块,在命令窗口中输入命令:pml rehash all

最后:也是在命令窗口中输入命令show !!Hello来显示出对话框。如图所示:

Command Window

应该已经可以显示出下图中的对话框啦。如果没有显示或有什么问题,可以与我联系。

A Simple Form

五、结束,也是开始……

希望以上内容对你学习PML有所帮助。但是,作为快速入门引导,不可能涵盖所有的PML内容。这里介绍一些附加的资源信息,也是我学习的信息来源。若有任何问题,总可以从这些资源中找到答案。

l PML基础,王元 2005.11.19。好像是AVEVA中国的官方培训资料,可以从网上轻松下载得到。我当时也就是看了一遍就入门了,也许是会C/C++,其实本质上还是因为PML很简单易学。

l AVEVA的帮助文档:Software Customisation Guide。看了这个以后,你就会觉得上面那本书里面的内容就是这个文档的简单翻译。这个Guide更全面,推荐看一下,也顺便学习一下英文。

l AVEVA的帮助文档:Software Customisation Reference Manual。本文档主要为PML内置对象的属性和方法说明。

l 源代码。在AVEVA安装目录的PMLLIB目录下面有很多源代码,这些代码编写规范,可作为学习对象。如通过在管路上添加部件功能源代码的学习,可以学到很多有用的东西。

利用这些资源,学习PML应该已经足够。希望通过学习,可以开发出一些符合公司要求的高效的程序,提高工作效率。

 

若有任何问题或建议,可以与我取得联系,电子邮箱为:eryar@163.com

 

eryar

Pudong Shanghai

2012-01-01

PDF文件下载:

 

AVEVA PML 快速入门引导 AVEVA PML Quick Start Guide

目录
相关文章
|
C# C++ Windows
PDMS call Operating System Command
PDMS call Operating System Command eryar@163.com 1.Introduction AVEVA提供了三种二次开发的方式:DARs, PML和AVEVA .Net(C#)。
2397 0
|
数据可视化 搜索推荐 JavaScript
数据可视化大屏百度地图区域掩膜MapMask实现地图指定区域非省市县行政区显示的实战案例解析(JavaScript API GL、个性化地图定制、指定区域经纬度拾取转化)
数据可视化大屏百度地图区域掩膜MapMask实现地图指定区域非省市县行政区显示的实战案例解析(JavaScript API GL、个性化地图定制、指定区域经纬度拾取转化)
1585 0
|
消息中间件 安全 API
C#实现操作Windows窗口句柄:SendMessage/PostMessage发送系统消息、事件和数据【窗口句柄总结之二】
SendMessage/PostMessage API 可以实现发送系统消息,这些消息可以定义为常见的鼠标或键盘事件、数据的发送等各种系统操作......
8005 1
C#实现操作Windows窗口句柄:SendMessage/PostMessage发送系统消息、事件和数据【窗口句柄总结之二】
|
9月前
|
安全 Unix Linux
VMware Workstation 17.6.3 发布下载,现在完全免费无论个人还是商业用途
VMware Workstation 17.6.3 发布下载,现在完全免费无论个人还是商业用途
84458 65
|
8月前
|
机器学习/深度学习 JSON 监控
国内最大的MCP中文社区来了,4000多个服务等你体验
国内最大的MCP中文社区MCPServers来了!平台汇聚4000多个服务资源,涵盖娱乐、监控、云平台等多个领域,为开发者提供一站式技术支持。不仅有丰富的中文学习资料,还有详细的实战教程,如一键接入MCP天气服务等。MCPServers专注模块稳定性和实用性,经过99.99% SLA认证,是高效开发的理想选择。立即访问mcpservers.cn,开启你的开发之旅!
12111 16
|
分布式计算 并行计算 数据处理
大规模数据处理的最佳实践:使用 Dask 进行高效并行计算
【8月更文第29天】在大数据时代,高效地处理大规模数据集是至关重要的。Python 社区提供了一些强大的工具来帮助开发者进行并行和分布式计算,其中之一就是 Dask。本文将详细介绍如何使用 Dask 来优化大规模数据集的处理效率,并提供一些实用的代码示例。
2090 3
|
C++
3D模型在线转换工具
NSDT 3Dconvert是一个可以进行3D模型格式转换的在线工具,并支持GLTF、GLB、OBJ、STL、STP、IGS、FBX、IFC、DXF等3D模型在线预览和转换成果下载。
2698 1
3D模型在线转换工具
|
程序员 编译器
计算机语言分为三种:机器语言、汇编语言和高级语言
计算机语言分为三种:机器语言、汇编语言和高级语言
3365 0
|
数据库 项目管理 安全
AVEVA Plant(PDMS)数据库的保护
AVEVA Plant(PDMS)数据库的保护 eryar@163.com   以下内容摘自一网友邮件: ----- Original Message ----- Sent: Tuesday, September 25, 2012 9:46 PM Subject: PDMS项目管理 你好,看了你写的很多文章,大部分都是关于程序出图的设置,我想咨询你一个关于PDMS项目管理的问题,希望能够赐教。
2440 0
|
存储 前端开发 安全
pikachu靶场通关之暴力破解
pikachu靶场通关之暴力破解
681 0
pikachu靶场通关之暴力破解

热门文章

最新文章