Sorry aber ich habe nicht verstanden.
wann macht Sinn einen Aktion zu benutzen, Programm, oder FC.
ich komme leider nicht so klar, danke für deine Mühe
und wenn ich bei FC aufrufen kann was macht PRG dann
Wie gesagt, du solltest Dir schleunigst ein geeignetes Buch schnappen und dieses durcharbeiten.
Es gibt verschiedene Objekte die Befehle ausführen.
Die oberste Ebene im
Codesys Universum ist dabei ein Programm, dieses wird von einer Task zyklisch, also wiederholt, aufgerufen. Dieser zyklische Aufruf ist übrigens die Besonderheit bei einer SPS gegenüber einem PC-Programm, dass nur einmal gestartet wird und dann bis zum Ende durchläuft. Ein SPS Programm wird gestartet, läuft bis zum Ende durch und wird dann, basierend auf der Taskkonfiguration erneut gestartet. Dieses verhalten ist auch der Grund dafür, warum man in SPS-Programmen mit Schleifen vorsichtig sein muss.
Ein Programm kann verschiedene Arten von Variablen enthalten, wie lokale Variablen, Eingangs- und Ausgangsvariablen, wobei letztere beiden nur Sinn machen, wenn ein Programm von einem anderen Programm, einem Funktionsbaustein oder einer Funktion aufgerufen wird. Die Variablen eines Programms behalten Ihre Werte auch nach Beendigung der Ausführung. Der Aufruf eines Programms aus anderen Objekten erfolgt direkt über seinen Namen.
Ein Funktionsbaustein (FB) ist im gewissen Rahmen ähnlich wie ein Programm, auch ein Funktionsbaustein kann verschiedene Arten von Variablen enthalten, wie lokale Variablen, Eingangs- und Ausgangsvariablen, deren Werte auch nach Beendigung der Ausführung des ihren Wert behalten.
Ein Funktionsbaustein muss aber vor der Nutzung instanziiert werden, ein Instanziierung kann mit der Deklaration einer Variablen verglichen werden. Von einem Variablentyp können auch mehrere gleichzeitig existieren, genauso können auch von einem FB mehrere Instanzen existieren, die jeweils einen eigenen Speicherbereich haben und sich so nicht beeinflussen.
Im Codesys Universum kann innerhalb eines FBs eine oder mehrere Aktionen angelegt werden. Diese können innerhalb des FBs aufgerufen werden aber auch von außerhalb, wobei dies eingeschränkt werden kann. Eine Aktion kann dazu genutzt werden um den Code eines FBs etwas zu verschlanken und Teile in eben diese Aktion auszulagern.
Außerdem können in einem FB noch Methoden angelegt werden und von innerhalb und außerhalb des FBs aufgerufen werden, wobei dies auch wieder eingeschränkt werden kann. Mit Methoden kann man etwas in Richtung Objektorientierung gehen.
Ein weiteres Objekt das in FBs eingefügt werden kann und auch in Richtung Objektorientierung geht, sind Parameter. Mit diesen können Variablen nach außen hin gekapselt werden, da auf die Werte dieser Variablen nur indirekt über die Parameter zugegriffen werden kann.
Bei Transition muss ich im Moment passen, diese kenne ich nur von der Ablaufsprache.
Eine Aktion und eine Methode existiert also nicht einzeln, sondern ist Bestandteil eines FBs.
Der Zugriff auf die Ein- und Ausgangsvariablen muss bei einem FB nicht während der Ausführung erfolgen, sondern kann, da diese sich die Werte ja merken auch außerhalb erfolgen.
Ein weiteres Objekt sind Funktionen. auch diese können lokale Variablen, Eingangs- und Ausgangsvariablen enthalten, zusätzlich können sie einen sogenannten Rückgabewert besitzen.
Bei Funktionen bleiben die Werte der Variablen nicht nach der Abarbeitung erhalten, es kann also auf die Variablen einer Funktion nur während des Aufrufes zugegriffen werden. Auch innerhalb einer Funktion deklarierte und benutzte Funktionsbausteine verhalten sich bei jedem neuen Aufruf der Funktion, als wären Sie noch nie aufgerufen worden, was zum Beispiel bei Flankenbausteinen zu fatalen Fehlern führen kann.
Funktionen dürfen also nicht für Aufgaben eingesetzt werden deren Abarbeitung nicht innerhalb eines Zyklus abgeschlossen ist.