Instanziierung von Funktionsbausteinen
Gemäß IEC 61131-3 werden Funktionsbausteine in EcoStruxure Machine Expert - Safety instanziiert. Instanziieren bedeutet, dass ein Funktionsbaustein einmal definiert wird und dann mehrfach verwendet (instanziiert) werden kann. Dies gilt gleichermaßen für alle FBs (anwenderdefinierte POEs sowie FBs in Bibliotheken, wie z.B. IEC 61131-Basis-FBs).
Warum Instanziierung? Ein Funktionsbaustein hat einen internen Speicher, wo er seine eigenen Arbeitsdaten (lokale Variablen) ablegt. Folglich hängen die Ausgangswerte, die ein FB berechnet, von den intern gespeicherten Werten ab. Dieselben Eingangswerte bewirken deshalb bei verschiedenen FB-Instanzen nicht zwingend gleiche Ausgangswerte. Aus diesem Grund müssen die internen Daten eines FB für jeden Aufruf, d.h. für jede FB-Instanz, in einem eigenen, getrennten Speicherbereich gehalten werden. Um jede FB-Instanz eindeutig identifizieren und ihren Speicherbereich separat halten zu können, werden Instanznamen verwendet. Der Instanzname des Funktionsbausteins muss im Variablen-Arbeitsblatt der POE deklariert werden, in der der Funktionsbaustein verwendet werden soll.
Funktionsbausteine können in einem anderen Funktionsbaustein oder im Programm 'Main' instanziiert werden.
Beispiel
Der Bibliotheken-Funktionsbaustein SF_EmergencyStop soll zwei Mal im Programm 'Main' aufgerufen werden, um zwei sicherheitsbezogene NOT-HALT-Befehlsgeräte auszuwerten, die an verschiedene sicherheitsbezogene Eingangs-/Ausgangssignale angeschlossen sind. Deshalb werden zwei Instanzen des Funktionsbausteins im lokalen Variablen-Arbeitsblatt der POE 'Main' deklariert. Im Code kann der FB-Aufruf nun zwei Mal eingefügt werden, wobei jede Instanz mit verschiedenen Variablen und Eingangs-/Ausgangssignalen verbunden ist.
Das gleiche würde für einen anwenderdefinierten Funktionsbaustein gelten, dessen Code in einer FB-POE des Projekts definiert ist.
HINWEIS:
Wie IEC 61131-definierte und steuerungsspezifische FBs (aus einer Bibliothek), stehen auch anwenderdefinierte FB-POEs im Editor-Assistenten zur Verfügung, nachdem ihre Arbeitsblätter bearbeitet, gespeichert und kompiliert wurden. So kann der Aufruf eines anwenderdefinierten FB einfach per Drag & Drop in den Code der aufrufenden POE eingefügt und der Instanzname deklariert werden. Lesen Sie dazu das Thema "Einfügen von Funktionsbausteinen mit dem Editor-Assistenten".
Funktionen (die im Editor-Assistenten zur Verfügung stehen) können ohne Instanziierung aufgerufen werden, da sie über keinen internen Speicher verfügen.