PLC-Code im PLCopen-Format exportieren

Mit ITcPlcOpenImportExport2.PlcOpenExport2 lassen sich einzelne POUs oder ganze Teilbäume eines PLC-Projekts als PLCopen-XML exportieren. Das Interface ITcPlcOpenImportExport2 wird durch einen Cast des PLC-Projekt-Tree-Items gewonnen. Die zu exportierenden Elemente werden über einen projektrelativen Selektor adressiert. Der bSubTree-Parameter steuert, ob nur die genannten Elemente oder zusätzlich alle Unterelemente exportiert werden.

Voraussetzungen

C# Beispiel

Der Selektor ist projektrelativ und verwendet ; als Trennzeichen, etwa "POUs.fb1;POUs.fb2". Mit bSubTree = true werden alle Unterelemente des gewählten Elements mitexportiert, darunter Methoden, Actions, Transitionen und Properties. Ohne dieses Flag werden nur die direkt genannten Elemente exportiert.

ITcSmTreeItem plcProject = sysManager.LookupTreeItem(@"TIPC^PLC1^PLC1 Project");
ITcPlcOpenImportExport2 exportInterface = (ITcPlcOpenImportExport2)plcProject;

// Export a single POU
exportInterface.PlcOpenExport2(
    @"C:\Export\MyProg.xml",   // output file
    "POUs.MyProg",             // selection (project-relative, ';' as separator)
    false                       // false = only listed elements, not recursive
);

// Export selected POUs
exportInterface.PlcOpenExport2(
    @"C:\Export\MyProg.xml",   // output file
    "POUs.MyProg;DUTs.MyDUT",  // selection (project-relative, ';' as separator)
    false                       // false = only listed elements, not recursive
);

// Export entire POUs folder recursively
exportInterface.PlcOpenExport2(
    @"C:\Export\AllPOUs.xml",
    "POUs",
    true    // true = entire subtree including methods, actions, transitions, properties
);

PowerShell Beispiel

Das PowerShell-Beispiel ruft PlcOpenExport2 mit denselben drei Parametern auf wie das C#-Beispiel.

$plcProject = $sysManager.LookupTreeItem(@"TIPC^PLC1^PLC1 Project");

# Export a single POU
$plcProject.PlcOpenExport2(
    'C:\Export\MyProg.xml', # output file
    'POUs.MyProg', # selection (project-relative,';' as separator)
    $false   # false = only listed elements, not recursive
);

# Export selected POUs
$plcProject.PlcOpenExport2(
    'C:\Export\MyProg.xml',# output file
    'POUs.MyProg;DUTs.MyDUT',# selection (project-relative,';' as separator)
    $false # false = only listed elements, not recursive
);

# Export entire POUs folder recursively
$plcProject.PlcOpenExport2(
    'C:\Export\AllPOUs.xml',
    'POUs',
    $true # true = entire subtree including methods, actions, transitions, properties
);