Forum: PC-Programmierung Prozessautomatisierung in C unter Linux


von hansi (Gast)


Angehängte Dateien:

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?

von hansi (Gast)


Lesenswert?

ist die Frage zu doof gestellt?

von Andreas B. (andreasb)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.