TIA Unterschied zwischen FB Aufruf im OB1 zu IEC61131-3

baba_gump

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ihr Spezialisten,

ich hätte eine Frage, die ich mir leider nicht selbst beantworten kann und zu der ich auch keine "gute'" Antwort bei Google finden konnte.

Situation ist das wir im TIA V11 einen FB erstellt, in SCL programmiert haben und diesen im OB1 aufrufen. Jetzt gehört zur Ausarbeitung dieser Aufgabenstellung die Frage "Beschreiben Sie den Unterschied des Aufrufs im OB1 zu einem entsprechenden Aufruf gemäß IEC61131-3".

Meine Frage wäre, was ist denn der Unterschied? :confused:

Danke im Vorraus für eure Antworten.
 
Was soll denn ein "Aufruf gemäß IEC61131-3" sein und wird da der OB1 dann nicht benutzt?

Laut Wikipedia definiert diese Norm die 5 gültigen Programmiersprachen, von denen eine z.B. ST bzw. bei Siemens dann SCL ist, aber nicht wo welcher Programmteil wie aufgerufen wird.

Das bedeutet für mich, Euer jetziger Aufruf ist schon ein Aufruf in einer Programmiersprache nach IEC61131-3. Egal ob Ihr AWL, SCL, KOP oder FUP verwendet. Und wo der FB aufgerufen wird, hat dann mit der Norm gar nichts zu tun.

:confused:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi

wer stellt hier welche Fragen? Sollen wir wohl deine Hausi machen ;)

Die IEC61131 kennt keine OB. Das ist eine Siemens-Erfindung, die vermutlich älter ist als die Norm (oder ich).
Siemens definiert einen Sack voll OB und lässt das Betriebssystem der PLC diese nach vom Siemens-Himmel gefallenen Regeln aufrufen.
In der Hardwarekonfiguration hat der Anwender die Möglichkeit diese Regeln zu beeinflussen. Je nachdem wieviele k€ du für die CPU spendiert hast, hast du mehr oder weniger Möglichkeiten.
Die zyklischen OB (bei der 300/400 die 30er) werden in einem durch den Anwender definierten Zeitraster aufgerufen.
Die Interrupt OB (bei der 300/400 die 40er) werden durch vom Anwender definierte Hardwareereignisse, die wiederum bestimmte Interruptfähige Module voraussetzen, aufgerufen.
Dann gibt es noch Weckalarme (20er) die Aufgrund der Uhrzeit, des Datums, ... was waren noch mal die 10er? Bei den T-CPU gibt es für die Antriebe noch 60er.

Und dann gibt es noch den OB1. Der läuft wenn sonst nix läuft.

Bei der Norm gibt es keine OB. Du deklarierst Tasks und definierst welchen Baustein welche Task ausführt.
Bei den Tasks kannst du nun festlegen in welchem Zeitraster, zu welchem Zeitpunkt zu welchem Ereignis dieser Task begonnen wird.
Soweit ich mich erinnern kann, hat die Norm kein Ereignis für das was dem OB1 entspricht. Verschiedene Hersteller bieten jedoch einen Hintergrundtask an, der keine weitere Parametrierung hat, damit bist du faktisch wieder beim OB1.

Siemens regelt klar welches Modul/Peripherie wann gelesen/geschrieben wird. Bei neueren PLCs gibt es für alle Module auch ein Prozessabbild.
Die Norm verlagert das auf die Tasks. Die eine Task kann schlecht auf Eingänge der anderen Task zugreifen. Prozessabbild ist nicht.

Bei Siemens hängt die Parametrierung am OB, die Schnittstelle zum Ablaufsystem passt. Die Zahl deiner OB ist bei 300/400 sehr begrenzt. Du brauchst einen Baustein mehr -- den OB.
Bei der Norm hängt die Parametrierung an der Task, die Schnittstelle zum Ablaufsystem ist nicht geregelt. Die Zahl der Tasks ist theoretisch unbegrenzt. Du brauchst einen Baustein weniger -- den OB.

Siemens macht mehr Vorgaben, die gängeln einen mehr ;) Dafür kann man weniger Fehler machen.

Damit hast du in der Praxis mit der Norm genausoviel Ärger wie bei Siemens. Denn je nach Ereignis muss du ja die entsprechenden Vorgaben machen und deine Funktion eine bestimmte Schnittstelle erfüllen.
Bei real existierenden Systemen ist die Zahl der Tasks trotzdem begrenzt. Irgendwann macht jeder Prozessor schlapp. Ich habe eigentlich keinen praktischen Unterschied zwischen den beiden Welten gefunden.

Das war das an was ich mich ohne doppelten Boden oder Handbuch erinnere.
 
Will zwar nicht baba_gump's HA machen, aber auch nicht auf dessen Schlüsse warten.

Für mich heißt das eigentlich nur, das Siemens mit fest vorprogrammierten Tasks (den OBs) arbeitet und man über die Auswahl des OBs festlegt, wann der FB gestartet wird. Mit dem OB1 eben z.B. zyklisch. Bei normgerechten CPUen müsste man das selbst parametrieren.

Was mich verwundert, warum wird in der Frage auf die IEC61131-3 verwiesen, in der (zumindest lt. Wikipedia) nur von Programmiersprachen die Rede ist?
 
Hi again

hatte ein bischen Urlaub, deswegen kommt die Antwort etwas später.

Die 61131-3 kümert sich nicht nur um Programmiersprachen. Sie beschreibt auch was Tasks sind. OB kennt sie nicht.

Siemens geht wie andere Großfirmen gerne etwas andere Wege. Manchmal, weil sie Sachen schon haben bevor die Norm da ist - vermutlich so bei den OB, den "alten" Timern und ihrer Form von STL. Manchmal weil sie der Meinung sind die Norm taugt nix. Siehe SCL und die darin vorhandenen implizieten Konvertierungen, siehe http://www.sps-forum.de/simatic/63492-tia-portal-v12-update-3-verfuegbar-new-post.html. Dabei kann man, wie man an dem Thread sieht, ganz böse daneben langen.
 
Zurück
Oben