Moin,
Ich hab leider gerade nicht wirklich Zeit das in Kinco zusammen zu klicken. Aber frag doch mal eine der gängigen KI Modelle nach KOP / Ladder Beispielen. Die Erklären das eigentlich sehr gut, also wie man einen Zustandsautomaten baut. Man kann die Erklärungen nur hier nicht so gut rein kopieren.
Wenn man es geschickt macht, brauchst du nur EINEN TON Timer. Es ist wie du sagst, die Instruktionen für den Programmierer sind mehr, aber wesentlich übersichtlicher zu lesen, und vor allem robust und klar von der Logik.
Es gibt bei Kinco kein Tool glaube ich. Du kannst theoretisch auch mit Sprung Marken und der gleichen arbeiten. Was Kinco ja auch kann. Ich würde aber wohl bei vergleichen bleiben und der Move instruction.
Am Ende hast du einfach einen Wertebereich, bei mir nicht so fein granular wie vom User HMI. Den Wertebereich ordnest du dann mit "oder/und" Funktionen oder vergleichen den "Aktoren" zu. Du kannst für die Absaugung dann meinen Zustand 10-30nehmen. oder vom User HMI die S1 "oder" S2 "oder" S3... schreiben. Aber eben auch, da den Zuständen zahlen zugeordnet sind, das ungleich verwenden, oder einen Bereich definieren. Absaugung soll ja immer laufen wenn S1 bis S7, oder wenn die Zustände "ungleich" 0 oder "ungleich" 99. 99 als Nothalt, ist üblicher als meine 100 oben.
Innerhalb der Schrittkette definierst du dein Transitionen. Also die Bedingungen wann weiter gesprungen wird. In deinem Fall ist das ja, stand jetzt, nur der Zeitablauf. Aber der Clew ist eben das man die Schrittketten super einfach erweitern kann. Deshalb auch meine 10er Schritte. Damit hat man weitere Transitionen für Aktionen. Und wenn man mit vergleichen arbeitet muss ich nicht viel anpassen wenn ich was dazwischen schiebe. Da deine Absaugung immer von 10-30 läuft 😉.
Bei der Absaugung haben wir eine andere Startphase. Wir starten die Positionierung von Klappen und die Abluft Motorn gleichzeitig mit einem Timer. Erst wenn die Klappe in Initialposition "und" Unterdruck geht's in Zustand 20. Wenn ich in Zustand 10 bin und T20>15s dann Wechsel ich in einen Fehlerzustand 99 und schreibe vorher den Wert meines Zustandsautomaten in eine Fehler Variabele. Der Trick, wenn jetzt mein Motorschutz auslöst vom Lüfter, kann ich den Automaten sehr einfach in die Stopp Phase schicken, also die Klappen zufahren.
Und stoppt meine Anlage weiß ich das der Fehler in der Startphase passiert ist.
Vor einigen Monaten hatte wir eine Erweiterung wo sich die externe Firma etwas verlaufen hat bei dem "Timer Spiel", von einem mehrstufigen "Abwurf System" mit klappen. Ich fragt dann warum sie nicht einfach das Konzept der andern 30 Zustands Automaten nutzen ist doch alles fertig 😄. Das Konzept stammt noch aus S5 Zeiten.
In machen Anlagen nimmt die Fehlerdiagnose 2/3 des Programms ein. Ein Zustandsautomat ermöglicht da eine sehr gute Diagnose Möglichkeit. Man kann sich zum Beispiel einfach anschauen was die Zustandsvariablen der einzelnen Ketten gerade machen und entsprechend Visualisieren oder global auswerten.



Mal schnell zusammen geklickt eine Idee. Das sieht natürlich erstmal "Wild" aus in KOP, in ST sieht das halt strukturierter aus. Wenn das Konzept aber klar ist hat man da eine recht simple Copy and Paste Struktur bei der Erweiterung 😉.