Prozessautomatisierung in C unter Linux

Gast #3132494
Lesenswert?

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?
Angehängte Dateien:
#3139265
Lesenswert?

hansi schrieb:
> ist die Frage zu doof gestellt?

Da du noch immer keine Antwort bekommen hast: Ja.

Deine Frage hat ein viel zu grossen Umfang, versuchs doch mal mit 
einzelnen Fragen für einzelne Themen... Ist etwas unstrukturiert... IMHO


> 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:

...

> Thread in einer while(1)-Schleife durchlaufen lassen?

Soetwas macht vor allem CPU Last... Für mich als Informatiker klingt es 
aber als ziemlich schlechter / falscher Ansatz. Aber genau sagen kann 
das wohl nimand anhand deiner Fragenstellung.


Viel Erfolg beim Nachfragen!;-)


mfg Andreas

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren