创建插件的程序代码
使用 C# 和 TIA Portal Openness API 为插件创建程序代码。确保所有必要的引用和使用指令均存在。基本上可为插件使用 TIA Portal Openness API 的全部功能。但需要注意以下两个功能的一些特性:
使用插件启动其它进程:
除了创建连接的程序代码之外,还必须允许在组态文件中启动新进程。
创建与其它 TIA Portal 实例的连接:
需要对程序集“Siemens.Engineering.AddIn.dll”进行下述引用以创建插件。要启动其它 TIA Portal 实例,需要额外引用“Siemens.Engineering.dll”程序集。但这两个程序集包含一些相同的完全限定类型名称。可使用外部程序集别名来通知编译器要使用的类型所来自的程序集。此过程与命名空间类似。如果不使用别名,用户将收到编译错误。
使用插件启动其它进程
要使用插件启动其它进程,请按以下步骤操作:
打开组态文件。
添加以下代码作为“SecurityPermissions”变量的内容:
<Siemens.Engineering.AddIn.Permissions.ProcessStartPermission>
<Comment> 任意注释</Comment>
</Siemens.Engineering.AddIn.Permissions.ProcessStartPermission>
如果尚未创建对“Siemens.Engineering.AddIn.Utilities.dll”文件的引用,请立即添加此引用。
创建启动进程所需的程序代码。
下表列出了“Siemens.Engineering.AddIn.Utilities.Process”类的属性:
名称 | 类型 |
---|---|
StartInfo | ProcessStartInfo |
HasExited | bool |
ExitCode | int |
Responding | bool |
Id | int |
StartTime | DateTime |
ExitTime | DateTime |
ProcessName | String |
StandardOutput | StreamReader |
StandardError | StreamReader |
StandardInput | StreamWriter |
EnableRaisingEvents | bool |
下表列出了“Siemens.Engineering.AddIn.Utilities.Process”类的方法:
public bool Start ()
public static Siemens.Engineering.AddIn.Utilities.Process Start (Siemens.Engineering.AddIn.Utilities.ProcessStartInfo startInfo)
public static Siemens.Engineering.AddIn.Utilities.Process Start (string fileName)
public static Siemens.Engineering.AddIn.Utilities.Process Start (string fileName, string arguments)
public static Process Start(string fileName, string userName, System.Security.SecureString password, string domain)
public static Process Start(string fileName, string arguments, string userName, System.Security.SecureString password, string domain)
public void Close()
public void Kill()
public void Refresh()
public bool WaitForExit()
public bool WaitForExit(int milliseconds)
public void BeginErrorReadLine()
public void BeginOutputReadLine()
public void CancelErrorRead()
public void CancelOutputRead()
public bool CloseMainWindow ()
下表列出了“Siemens.Engineering.AddIn.Utilities.Process”类的事件:
ErrorDataReceived
OutputDataReceived
Exited
请注意,可按照 .NET 中惯用的方式使用这些属性、方法和事件。
不含参数的简单进程调用示例:
创建与其它 TIA Portal 实例的连接
要与其它 TIA Portal 实例建立连接,请按以下步骤操作:
打开 C# 项目。
选择对文件“Siemens.Engineering.dll”的引用并打开属性。
在“别名”(Aliases) 字段中输入别名,例如“OpnsAPI”。别名可以是任何文本。
选择对文件“Siemens.Engineering.AddIn.dll”的引用并打开属性。
在“别名”(Aliases) 字段中输入别名,例如“AddInAPI”。别名可以是任何文本。
在指令中输入以下两个别名指令:
- extern alias <Openness API 的别名>
- extern alias <插件 API 的别名>
对与新 TIA Portal 实例的连接进行编程时,请使用别名作为前缀。示例:
OpnsApi::Siemens.Engineering.TiaPortal newTiaPortalInstance = new OpnsApi::Siemens.Engineering.TiaPortal();
尝试通过 TIA Portal Openness 与运行的 TIA Portal 建立连接时,如果尚未创建相应的白名单条目,TIA Portal 会提示用户接受或拒绝连接。更多信息,请参见 Openness 文档中的“TIA Portal Openness 防火墙”部分。出于安全原因,请勿单击“全部选是”(Yes to all)。
shtxjd.cn.b2b168.com/m/