guter Programmierstil

JüKo

Level-2
Beiträge
111
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum,
bin ja relativ neu mit SPS und Codesys unterwegs (macht aber riesig Spass) daher die Frage zu dem Programmierstil.
Hab ein Programm in ST geschrieben und funktioniert auch, ist aber (selbst aus meiner Sicht) unelegant programmiert.
Immer wenn ein Signal kommt dann wird ein Zähler CTU von 0 bis 9 hochgezählt. Danach fängt der Zähler wieder bei Null an usw.
Mit dem Wert .CV starte ich dann nacheinander 10 verschiedene Timer. Die Werte der Timer schreib ich in ein Array.
Also was mir nicht gefällt ist, dass ich im Programmcode den Timer 0, Timer 1, ... ,Timer 9 hab. Also ein langer Code mit großer Fehleranfälligkeit.
Das geht doch auch besser. Kann ich dem Timer nicht so eine Art Index verpassen und den nur 1x im Programm einsetzen.
Danke und freundliche Grüße,
Jürgen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Screenshot oder den Code hier in Textform zu sehen wäre von Vorteil. Bilder sagen mehr als Worte :p
*ACK*


Mal so aus den bisherigen Informationen eine Idee:

Code:
MyTimer : Array[1..10] of TON;
ActivateTimer : Array[1..10] of Bool;
MyCounter : CTU;
x : INT;


for x := 1 to 10 do
 MyTimer[x](IN := ActivateTimer[x], PT:= t#1s);
end_for

// Hier sicherstellen, daß CV immer innerhalb der Array-Grenzen liegt
ActivateTimer[MyCounter.CV] := True;

// irgendwie wieder die Aktivierungs-Bits zurücksetzen ...
 
Hallo JSEngineering, deinen Code probier ich mal aus. Wenn die Variable x von 1 nach 10 läuft, laufen dann die schon gestarteten Timer weiter oder brechen die ab wenn X nicht mehr zu dem entsprechenden Timer passt?
 
Zurück
Oben