Wieviele max. Bausteinaufrufe pro Netzwerk?

Andreas-

Level-1
Beiträge
84
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo SPS`ler!

Wieviele Bausteinaufrufe kann man pro Netzwerk (in AWL) machen?

Ich nämlich festgestellt, dass wenn ich (in AWL) verschiedenartige Funktionen im selben Netzwerk aufrufe, die nächsten "Typen" nicht abgearbeitet werden.

Beispiel:
Netzwerk 1:
call FC1
call FC1
...
call FC2
call FC2
Netzwerk 2:
...
Hierbei wird FC2 im Netzwerk 1 nicht abgearbeitet, jedoch die FC1 schon.
Gibt es eine maximale Begrenzung pro Netzwerk gleichartiger Funktionsaufrufe?
 
Aufrufe

Hallo Andreas,

wieso rufst du denn FC's ohne Parameter mehrmals nacheinander auf? Und wie kommst du darauf dass die Bausteine nicht abgearbeitet werden? Um wieviele Aufrufe im gleichen Netzwerk handelt es sich? Kann mir nicht vorstellen dass es daran liegen soll.

André
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo André,

nein die FC`s haben Parameter.
Im Test mit dem PLCSIM wurden die FC2 Bausteine aus dem Beispiel nicht im Netzwerk 1 abgearbeitet. Erst als ich die beiden FC2 im Netzwerk 2 aufrief, wurden diese bearbeitet.
Ich rufe ein und die selbe Funktion pro Netzwerk von 6 bis zu 640 Mal auf.
Da aber man pro Baustein maximal nur 999 Netzwerke haben kann, bin ich gezwungen mehrere Funktionen pro Netzwerk aufzurufen. Insgesamt werden ca. 2000 (kleinere Funktionen) in diesem Baustein aufgerufen.

Ich kopiere dabei die Funktionen nur. Die Parameter werden aufaddiert bzw. indirekt addressiert. Wieso, weshalb, warum? Na, weil der Chef ne super flexible Anlage haben will..... und ich würde gerne diesen Teil der Anlage in einen Baustein packen. Deshalb meine Frage.
 
Ich rufe ein und die selbe Funktion pro Netzwerk von 6 bis zu 640 Mal auf.
Hallo Andreas,
Du hast in einem Netzwerk 640 mal die CALL Anweisung stehen? :confused:
Also ich habe auch schon gleiche Bausteine in einem Netzwerk aufgerufen allerdings maximal 5 oder 6.
Für jeden aufgerufenen Baustein wird doch ein L-Stack mit übergeben und wenn der nicht mehr reicht, könnte es schon sein dass die Bausteine nicht mehr aufgerufen werden. Stellt man in der Hardware ein (glaube ich)
Aber ich bin mir jetzt nicht ganz sicher ob das hier so stimmt. ;)

PS:
Die maximale Schachtelungstiefe bei einer 300er sind 8 Bausteine, aber das ist ja nicht Dein Problem.
 
Hallo Paule,

das mit der Schachtelungstiefe ist mir bekannt. Aber ich wüsste jetzt keine andere Lösung für meine Aufgabe.

Kurz zur Steuerung:
Problem ist nämlich das die Anlage flexible und auch ohne PG adressiert werden soll. Wahrscheinlich über ein Touchpanel oder so.
Die Signale zur Abarbeitung der Steuerung können zum einen von DB`s kommen oder aber auch von E/A. Es soll einstellbar sein.
Ich habe einen UDT der meine Schablone zur Erstellung der Datenbereich in einem DB ist. In diesem DB werden dann etliche mehrdimensionale Arrays des UDT aufgerufen.
Meine Funktionen dienen dazu, dass die pro kommendes bzw. gehendes Signal, die eingestellte Addresse mit dem Operanden zusammen schneiden und wieder im DB abspeichern. Alles natürlich indirekt, da es zur Laufzeit erst festgestellt werden soll. Die Zykluszeit ist quasi egal. Die werden nur im Einrichtbetrieb abgearbeitet und dann nie wieder...
Es müssen auch sämtliche Eventualfälle berücksichtigt werden... und da ich bald wechsle soll dieses System frei und einfach parametriert werden können, ohne direkt bei kleineren Änderungen am Programm rumzufuschen.

Ich hoffe ich habs einigermaßen verständlich erklärt. Aber kommen wir bitte wieder zurück zur Frage. ^^
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aufruf

Hallo Andreas,

und deine FC's arbeiten auch korrekt? Oder werden da evtl Temp-Variablen vor Zuweisung abgefragt? Bau doch mal testweise in nen FC nen Rundenzähler ein und sichere den am Ende des OB1 in ein anderes Wort und nulle den Rundenzähler. Dann siehst du wieviele Aufrufe funktioniert haben.

André
 
Das ist ne gute Idee. Das werde ich wohl so testen.
Die FCs funktionieren. Mit der der PLCSIM habe ich 2 Aufrufe (Parametereinstellungen) getestet und es hat prima funktioniert. Es werden vor den Zuweisungen keine Temp-Variablen abgefragt, sondern Werte aus einem zugewiesenem DB (der aus Arrays des UDTs besteht). Die Adressen in dem DB werden dabei immer jeweils aufaddiert und dann über Adressregister angesprochen.

Ich habe 2 verschiedene Funktionen, da ich Bitadressen und Wordadressen verknüpfen muss.
 
Versuch das ganze doch mal mit einer realen cpu
bei plcsim gibt es immer wieder überraschungen, z.B. haben in alten versionen TON und TOF nicht funktioniert.
wenn es auf der richtigen cpu auch nicht läuft, dann fang an, dir gedanken zu machen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Jo, das werde ich dann auch machen, aber ich wollte halt wissen, ob was gegen eine so hohe Anzahl an Aufrufen spricht.
Da steckt halt schon Arbeit hinter und wenn das nachher sowieso nicht klappt, dann kann ich mir die Arbeit auch sparen und ne andere Lösung ausdenken.

Gruß!
 
Zurück
Oben