Deklaration und Implementierung einer POU auslesen und setzen

Jede POU mit einem Deklarations- und Implementierungsbereich stellt diese über die Interfaces ITcPlcDeclaration und ITcPlcImplementation bereit. Über die Eigenschaften DeclarationText und ImplementationText lassen sich beide Bereiche lesen und setzen. ImplementationXml liefert die Implementierung im PLCopen-XML-Format.

Voraussetzungen

Deklaration und Implementierung setzen

Das Tree-Item der POU wird per Cast auf ITcPlcDeclaration und ITcPlcImplementation umgewandelt. Über die Eigenschaften DeclarationText und ImplementationText wird der jeweilige Inhalt gesetzt.

// Cast directly to declaration and implementation interfaces
ITcSmTreeItem method = sysManager.LookupTreeItem(@"TIPC^PLC1^PLC1 Project^POUs^MyFB^MyMethod");
ITcPlcDeclaration decl = method as ITcPlcDeclaration;
decl.DeclarationText = "VAR_INPUT\n    nValue : INT;\nEND_VAR";

ITcPlcImplementation impl = method as ITcPlcImplementation;
impl.ImplementationText = "MyMethod := nValue > 0;";

Deklaration und Implementierung auslesen

Dieselben Eigenschaften lassen sich auch lesen. Das folgende Beispiel legt einen Funktionsbaustein an und liest anschließend Deklaration, Implementierung und Implementierungs-XML aus.

$plcPousItem = $systemManager.LookupTreeItem("TIPC^PlcGenerated^PlcGenerated Project^POUs")
$newFb = $plcPousItem.CreateChild("FB_TEST", 604, "", 6)

$decl = $newFb.DeclarationText
$impl = $newFb.ImplementationText
$implXml = $newFb.ImplementationXml

POU-Typen mit Deklarations- und Implementierungsbereich

Nicht jeder POU-Typ besitzt beide Bereiche. Die folgende Tabelle zeigt, welche Typen einen Deklarations- und welche einen Implementierungsbereich haben.

Tree Item

Typ

Deklarationsbereich

Implementierungsbereich

Program

POU

Ja

Ja

Function

POU

Ja

Ja

Function Block

POU

Ja

Ja

Action

POU

Nein

Ja

Method

POU

Ja

Ja

Property (Get/Set)

POU

Ja

Ja

Transition

POU

Nein

Ja

Enum

DUT

Ja

Nein

Struct

DUT

Ja

Nein

Union

DUT

Ja

Nein

Alias

DUT

Ja

Nein

Interface

Interface

Ja

Nein

Property (Get/Set)

Interface

Ja

Ja

Global variables

GVL

Ja

Nein

Deklaration und Implementierung einer POU auslesen und setzen 1:

Das Anlegen von POUs und weiteren PLC-Objekten ist in PLC-Objekte anlegen beschrieben.