TIA S7-1517F - Hauptprogramm in Weckalarm - Prioritäten

Mecha2211

Level-2
Beiträge
254
Reaktionspunkte
54
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe folgende Überlegung und würde mich über Eure Einschätzungen freuen, ob das sinnvoll ist:

- Steuerungsprogramm für Anlagenautomatisierung soll möglichst schnell und gleichmäßig laufen, Zykluszeit liegt zwischen 9 und 12 ms
- Datenhandling und Zusatzfunktionen sind umfangreich aber absolut Zeitunkritisch (Aufrufzeit von 2 s völlig ausreichend)
- OB1 hat fix die Priorität 1, wird also von allem unterbrochen


Ich habe überlegt, OB1 leer zu lassen und stattdessen die Anlagensteuerung in einen Cyclic interrupt (OB32) mit 12..15 ms zu verpacken, diesem z.b. die Priorität 5 zu geben
und meine Zusatzfunktionen, Datenhandling, Visu-Kopplung in weitere Cyclic interrupts (1s, 2s, je nach bedarf) mit niedrigerer Prio einzugliedern.

So kann mein OB32 die anderen OBs kurz unterbrechen, dann können die wieder ein bisschen rechnen, dann kann OB32 wieder, etc.

Hätte ich meine Anlagensteuerung in OB1 würde ggf. bei ungünstigem Timing mein Datenhandling den OB1 unterbrechen.

Was meint Ihr? Hab ich was übersehen, gibt es gravierende Nachteile, muss ich zusätzlich was beachten?

Bin dankbar für Anregungen.
 
Sowas habe ich mit einer S7-300 schon gemacht. Ich habe aber das 'schnelle' Programm im 10ms-OB35 laufen und den Rest einfach im OB1 gelassen.

Im schnellen OB habe ich direkt von der Peripherie gelesen bzw. auch dorthin geschrieben. Und man darf natürlich keine Schmiermerker oder Baustein-Instanzen in beiden Bereichen parallel benutzen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sowas habe ich mit einer S7-300 schon gemacht. Ich habe aber das 'schnelle' Programm im 10ms-OB35 laufen und den Rest einfach im OB1 gelassen.

Im schnellen OB habe ich direkt von der Peripherie gelesen bzw. auch dorthin geschrieben. Und man darf natürlich keine Schmiermerker oder Baustein-Instanzen in beiden Bereichen parallel benutzen.

jo, man kann bei 400er bzw. 1500er auch für den Weckalarm Teilprozessabbilder TPA nutzen... dann spart man sich das "direkte" lesen der Peripherie und kann auch boolsche DI einfach so lesen...

ps: grundsätzlich würd ich ja an den Prioritäten nur im Notfall rumfummeln. Erstens soll da ja auch in 10 Jahren jemand an der Anlage durchblicken. Und zweitens gabts da gerne mal Bugs vom Siemens, umsomehr je mehr msn vom Standard verstellt... :)
 
Zuletzt bearbeitet:
Ich habe überlegt, OB1 leer zu lassen und stattdessen die Anlagensteuerung in einen Cyclic interrupt (OB32) mit 12..15 ms zu verpacken, diesem z.b. die Priorität 5 zu geben
und meine Zusatzfunktionen, Datenhandling, Visu-Kopplung in weitere Cyclic interrupts (1s, 2s, je nach bedarf) mit niedrigerer Prio einzugliedern.

So kann mein OB32 die anderen OBs kurz unterbrechen, dann können die wieder ein bisschen rechnen, dann kann OB32 wieder, etc.

Hätte ich meine Anlagensteuerung in OB1 würde ggf. bei ungünstigem Timing mein Datenhandling den OB1 unterbrechen.

Es ist eigentlich nicht nötig den OB1 leer zu lassen. Lass das Datenhandling und alles war Zeitunkritisch ist da drin laufen, der wird eh von allem anderen unterbrochen. Und die Zeitkritischen Sachen baust du dir in den OB32. Mach nicht unnötige Interrupts auf, in 10 Jahren versteht keiner mehr welcher OB welchen OB unterbricht.
 
hallo zusammen,

Danke für Eure Antworten. Den OB1 leer zu lassen hatte ich nur gedacht, um nicht unnötig häufig durch die Schleifen zu laufen, ob sie nun unterbrochen werden oder nicht.
Aber stimmt schon, auf die Prioritäten schaut man nur wenn man gerade konkret drüber nachgrübelt.

Der Hinweis mit dem TPA war gut, ich lese zwar fast alle IOs per Peripheriezugriff, einige jedoch nicht :)
Kann man dies nur für jedes EA-Modul einstellen oder geht das auch irgendwie global oder tabellarisch?
 
Zurück
Oben