Wie ein PLC-Projekt angelegt wird

Ein neues PLC-Projekt wird über CreateChild auf dem PLC-Knoten TIPC angelegt. Dabei kann entweder ein Standard-Template oder eine eigene .plcproj-Vorlagendatei verwendet werden.

Voraussetzungen

C# Beispiel

ITcSmTreeItem plcNode = sysManager.LookupTreeItem("TIPC");

// Simple: use standard template
ITcSmTreeItem plcProject = plcNode.CreateChild("PLC1", 0, "", "Standard PLC Template");

// Explicit path — named form (object[]):
object[] vInfoNamed = new object[] {
    new string[] { "path", @"C:\tmp\Template.plcproj" },
    new string[] { "pathType", "template" }   // "template" or "existing"
};
ITcSmTreeItem plcProjectFromTemplate = plcNode.CreateChild("NewPlcFromTmplt", 0, "", vInfoNamed);

// Explicit path — positional form (string[]):
string[] vInfoPositional = new string[] { @"C:\tmp\ExistingProject.plcproj", "existing" };
ITcSmTreeItem plcExisting = plcNode.CreateChild("ExistingPLC", 0, "", vInfoPositional);

PowerShell Beispiel

$plcNode = $sysManager.LookupTreeItem("TIPC")

# Standard template
$plcProject = $plcNode.CreateChild("PLC1", 0, "", "Standard PLC Template")
Wie ein PLC-Projekt angelegt wird 1:

Der vInfo-Parameter unterscheidet "template" für eine neue PLC aus Vorlage und "existing" für das Einfügen eines vorhandenen Projekts. Bei "template" wird eine Kopie der Vorlage im Projektordner erzeugt. Bei "existing" wird das Projekt referenziert. Die benannte und die positionale Form sind gleichwertig.

Standard-Template-Pfade

TwinCAT enthält zwei Standardvorlagen. Beide werden jeweils durch eine Vorlagendatei im TwinCAT-Verzeichnis repräsentiert.

Bis TwinCAT 3.1 4024

Vorlagenname

Vorlagendatei

Standard PLC template

C:/TwinCAT3/.xComponents/Plc/PlcTemplate/Plc TemplatesStandard/PLC Template.plcproj

Empty PLC template

C:/TwinCAT3/.xComponents/Plc/PlcTemplate/Plc TemplatesEmpty/PLC Template.plcproj

Ab TwinCAT 4026

Vorlagenname

Vorlagendatei

Standard PLC template

C:/ProgramData/Beckhoff/TwinCAT/PlcEngineering/PlcTemplates/1.1.0.1/Standard PLC Template/Standard PLC Template.plcproj

Empty PLC template

C:/ProgramData/Beckhoff/TwinCAT/PlcEngineering/PlcTemplates/1.1.0.1/Empty PLC Template/Empty PLC Template.plcproj

Wie ein PLC-Projekt angelegt wird 2:

Bei Standard-SPS-Vorlagen von Beckhoff sollte nur der Vorlagenname verwendet werden, z. B. "Standard PLC Template", nicht der vollständige Pfad.

Zugriff auf Nested Project und Project Instance

TwinCAT-SPS-Projekte bestehen aus zwei Bereichen: dem Nested Project und der Project Instance. Das Nested Project hat den Tree-Item-Subtyp 56 und enthält den Quellcode des SPS-Programms, während die Project Instance die deklarierten Ein- und Ausgangsvariablen des SPS-Programms enthält. Der Zugriff auf beide Bereiche erfordert unterschiedliche Methoden.

C#:

ITcSmTreeItem plcProject = sysManager.LookupTreeItem("TIPC^PLC1");
ITcProjectRoot projectRoot = (ITcProjectRoot)plcProject;
ITcSmTreeItem nestedProject = projectRoot.NestedProject;
ITcSmTreeItem projectInstance = plcProject.childitems[1];

PowerShell:

$plcProject = $sysManager.LookupTreeItem("TIPC^PLC1")
$nestedProject = $plcProject.NestedProject
$projectInstance = $plcProject.childitems.item(1)
Wie ein PLC-Projekt angelegt wird 3:

Für den Zugriff auf die Schnittstelle ITcProjectRoot ist mindestens TwinCAT 3.1 Build 4018 erforderlich.

Nach dem Erstellen des SPS-Projekts kann es durch Umwandlung in die Schnittstelle ITcPlcIECProject weiterbearbeitet werden, die zusätzliche Funktionen und Zugriff auf projektspezifische Attribute bietet:

C#:

ITcSmTreeItem plcProject = sysManager.LookupTreeItem("TIPC^NameOfProject^NameOfProject Project");
ITcPlcIECProject iecProject = (ITcPlcIECProject) plcProject;

PowerShell:

$plcProject = $systemManager.LookupTreeItem("TIPC^NameOfProject^NameOfProject Project")