Gast
#3132494
Hallo, ich bin immernoch dabei, das Konzept der Prozesssteuerung für eine Produktionsanlage zu überarbeiten. In einem anderen Thread wurde mir hier schon gut weiter geholfen, jetzt bitte ich noch einmal um Eure Meinungen ;-) Hier erstmal ein paar Daten: - weniger als 100 Digitale I/O (Taster, Lampen, Ventile, Auslösesignale, Näherungsschalter, Lichtschranken etc.) - Vernetzung der I/O-Module über CAN-Bus - Prozesssteuerung ist eine Ablaufsteuerung, die im "Dauerlauf" läuft und z.B. 10000 Teile am Stück produziert - Bis jetzt Programmierung in C unter Windows (Ereignisorientiert, keine zyklischen Abfragen) nach dem Prinzip, wie es dem Bild zu entnehmen ist - Windows-Programm enthält auch die Visualisierung, die Möglichkeit alle Ausgänge von Hand per Button zu setzen (Manuellbetrieb), Parametereingabe, Messystem ni Das ganze soll jetzt etwas unabhängiger vom Windows-PC laufen und in einen kleinen Realtime Linux-PC integriert werden. Das Programm soll weiterhin in C geschrieben werden. Wie seht ihr das? "Muss" man sowas heutzutage in IEC 61131-3 programmieren? Wenn ich es unter Linux weiterhin in C programmiere, werden die Funktionen zur Ablaufsteuerung sicherlich ähnlich sein. Die Frage ist aber auch, ob es Sinn machen würde, bzw. (programmier)technisch sinnvoll und umsetzbar ist, einige Teile doch zyklisch auszuwerten: Beispiel Grundstellung: Zum Anlauf müssen 4 Aktoren in der Grundstellung sein, d.h. es müssen 4 Eingänge gesetzt sein. Bis jetzt rufe ich beim Zustandswechsel von jedem Eingang die Funktion "Grundstellung prüfen" auf, die eine if-Anweisung enthält (if (e1==1 && e2==1 && e3==1 && e4==1) grundstellung=1;) Könnte man soetwas neben meinen ereignisorientierten Funktionen in einem Thread in einer while(1)-Schleife durchlaufen lassen? Dann würde die if-Abfrage ständig abgearbeitet werden, und ich spare mir ein paar Funktionen.... Könntet Ihr dieses Vorgehen generell nachvollziehen, oder sollte man soetwas lieber garnicht erst neu aufbauen?
