PML调用PDMS内核命令研究
一、 概述
本文介绍通过PMLNET包装PDMS的内核命令, 实现pml调用常用的内置Command命令。
二、 实现方法
写一个PMLNET的dll, 开放一个callback(string commandKey)函数给pml。代码如下:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Reflection; 6 7 using Aveva.ApplicationFramework; 8 using Aveva.ApplicationFramework.Presentation; 9 using Aveva.Pdms.Presentation; 10 using Aveva.PDMS.PMLNet; 11 12 [assembly: PMLNetCallable()] 13 namespace wttech 14 { 15 [PMLNetCallable()] 16 public class PmlCoreCall 17 { 18 [PMLNetCallable()] 19 public PmlCoreCall(){ } 20 [PMLNetCallable()] 21 public void Assign(PmlCoreCall that) { } 22 [PMLNetCallable()] 23 public void callback(string commandKey) 24 { 25 CommandManager.Instance.Commands[commandKey].Execute(); 26 } 27 } 28 }
三、 PML调用实例
1 import 'PmlCoreCall' 2 handle any 3 endhandle 4 using namespace 'wttech' 5 !corecall = object PmlCoreCall() 6 !corecall.callback('AVEVA.View.WalkTo.DrawList')
AVEVA.View.WalkTo.DrawList为PDMS的内核命令, 在这里PmlCoreCall对象为PMLNET对象, 用其callback函数将Command的key传递进去,执行内核命令。
四、 总结
通过上面的实例我们看到PML可以通过PMLNET调用C#代码的形式对他进行扩展。实现了PML调用内核命令的需求。
dll下载链接: https://files.cnblogs.com/files/jevon1982/PmlCoreCall.zip
电话 18502742902
QQ 280187392