TIA Baustein Aufrufe im OB1

MatthiasNm

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

ich arbeite mit dem TIA Portal V17. Die Anweisungen im OB1 sind bei mir in AWL programmiert. Ich habe einen neuen FB erstellt und möchte diesen im OB1 aufrufen. Es gibt hierfür 2 verschiedene Möglichkeiten. Man kann entweder UC FB1 schreiben oder Call FB1. Ist es egal, wie ich den Baustein aufrufe? Und ... was muss ich bei den Eigenschaften des FB1 ändern, wenn ich die Anweisung UC FB1 verwenden möchte?

Ich hoffe, dass ich es gut erklärt habe.

Gruß
 
Moin MatthiasNm,

zunächst einmal ist angeraten von AWL abstand zu nehmen. Es ist nur noch nachträglich auf den 1500er Steuerungen implementiert und eigentlich nicht mehr "state of the art". Besonders, da Du anscheinend ein Programm neu erstellen möchtest, wäre es vielleicht DIE Gelegenheit, sich in eine andere Programmiersprache einzuarbeiten.

Ansonsten:
In AWL gibt es neben den Bausteinaufrufen call (mit Parameterübergabe), UC (unconditional call) => unbedingter Aufruf auch noch CC (conditional call) => bedingter Aufruf, abhängig vom VKE.
Am FB1 musst Du eigentlich erstmal nichts ändern. Allerdings beeinflusst die Art des Aufrufs die Möglichkeiten, was Du mit dem aufzurufenden Baustein machen kannst.

VG

MFreiberger
 
Hat Dein FB gar keine Übergabeparameter und keine Static-Variablen?
Bei UC kann dem FB kein Instanz-DB mitgegeben werden. Das würde ich als völlig veralteten "üblen" Programmiertrick einstufen.
Was sagt die TIA Hilfe zu "UC":
UC: Baustein unbedingt aufrufen

Hinweis

Die Anweisung "Baustein unbedingt aufrufen" kann nur dann verwendet werden, wenn die Bausteineigenschaft "Parameterversorgung über Register" aktiviert ist. Dadurch sinkt aber die Performance.

Harald
 
Vielen Dank für die Antworten. Das ist ein super Forum :)

Ja, das was du schreibst MFreiberger stimmt, klar. Ich versuche das Programm neu zu schreiben, deswegen verwende ich auch KOP und Graph ab und zu mal awl aber eher selten wirklich selten. Deswegen auch die "Anfängerfrage" zu awl.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich versuche das Programm neu zu schreiben, deswegen verwende ich auch KOP und Graph ab und zu mal awl aber eher selten wirklich selten. Deswegen auch die "Anfängerfrage" zu awl.
Bevor Du "selten" AWL benutzt, setze Dich mit SCL auseinander. Gar nicht so schwer. Und: Du arbeitest Dich nicht in eine "tote" Sprache ein.

Bausteinaufruf in SCL (ohne Parameter):
"Baustein"();

Bei einem FB-Aufruf gibt man quasi nur den Instanz-DB an:
"BausteinIDB"();

Parameter würden bei Bedarf innerhalb der Klammern versorgt:
"Baustein"(IN1 := Wert1, IN2 := Wert2, OUT => Ergebnis);


VG

MFreiberger
 
Zuletzt bearbeitet:
Wollte jetzt keine Diskussion zu dem Thema "Was ist schneller/besser" auslösen. (hier mal Aussagen #1 , #2 von Kollegen)
Lt. Siemens ist AWL langsamer, irgendwo im Forum hatte auch mal jemand getestet.
Ganz sicher auch eine Frage von optimierten und nicht optimierten Bausteinen.
 
Zuletzt bearbeitet:
Faktor 42 bzw. 24 langsamer als AWL/SCL. Das ist schon ordentlich. Vor allem wundert es mich, dass dort fast 3ms Zykluszeit verbraten werden für 8 einfache Vergleicher.
Der Code wird laut Dokument 30000 mal aufgerufen. Ich denke da gibt es noch mnidestens einen zusätzlichen Zähler und Vergleicher im OB1.
Ist aber trotzdem übel langsam.
 
Zurück
Oben