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
- TwinCAT XAE ist installiert und gestartet.
- Eine DTE-Verbindung zur Zielinstanz ist aktiv.
-
ITcSysManagerist in einem STA-Thread initialisiert. - Die Ziel-POU ist im PLC-Projekt vorhanden.
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 |
![]() | Das Anlegen von POUs und weiteren PLC-Objekten ist in PLC-Objekte anlegen beschrieben. |
