LOGO logo!soft 8.2.1 UDF simulieren, unerklärliches Verhalten

Rumklicker

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich habe einen einfachen UDF zum Aufbau eines Schrittwerkes geschrieben, den ich in meinem Projekt mehrfach einsetzen möchte. Wenn ich diesen allein im Diagramm-Modus simuliere, verhält er sich wie gewünscht, ich sehe ja auch alle Verbindungen und Blöcke in diesem UDF. Die Ausgänge schalten nacheinander, wenn die Eingangsbedingungen nacheinander erfüllt sind, jedoch ist immer nur ein Ausgang aktiv.
Ziehe ich diesen aber in einem Netzwerkprojekt in mein Diagramm, beschalte ihn mit Ein- und Ausgängen, verhält er sich plötzlich anders, nacheinander werden alle Ausgänge aktiv, obwohl ich eigentlich dasselbe Eingangsmuster anlege.
Muss ich bei einer Simulation eines UDF etwas beachten ?
Gruß
 

Anhänge

Hallo,
ich habe selbst einen Tip hier gefunden. Der UDF bekommt es wohl nicht mit, wenn seine Ausgänge rückgekoppelt werden :sad:. Jetztn habe ich einen Merker verschwenden müssen, aber es tut jetzt. Vielleicht hat trotzdem jemand eine Idee/Tip/Anregung ?
Gruß
 
Hallo Hucki,
da sich die Weiterschaltbedingungen für jeden Schritt ändern und ich insgesamt 20 Schritte habe, bin ich doch auf die alte SR-Methode mit der Rückkopplung über Merker gegangen. Und wenn alles funktioniert, entferne ich die Merker im UDF und probiere es nochmal an der Maschine. Siemens fordert halt die volle Kreativität seiner Kunden....:wink:
Gruß
 
Und wenn alles funktioniert, entferne ich die Merker im UDF und probiere es nochmal an der Maschine.
Merker im UDF? Das könnte doch schon die Erklärung sein. Wenn die LOGO! so konsequent ist, die im UDF projektierten Merker auch bei jedem Aufruf des UDF zu benutzen - statt für jeden Aufruf andere noch freie zu belegen - dann dürfte das doch schon unbeabsichtigte Effekte erklären.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
da sich die Weiterschaltbedingungen für jeden Schritt ändern und ich insgesamt 20 Schritte habe,
Und wo ist das Problem?
Jeder Schritt bekommt doch ein UND mit Schrittnummer und Erfüllung der Transition.

PS: Vielleicht kann man das im oben verlinkten Beispiel nicht so gut sehen, daher hänge ich mal noch das Grundmodell einer 10er Zähler-Schrittkette an.


bin ich doch auf die alte SR-Methode mit der Rückkopplung über Merker gegangen.
Vor allem dafür sorgen, dass die Kette nicht ein 2. Mal startet, während sie noch bei der Abarbeitung des 1. Starts ist!


Und wenn alles funktioniert, entferne ich die Merker im UDF und probiere es nochmal an der Maschine.
:confused:
Egal, ob die Merker im oder außerhalb der UDF sind, Rekursionen sind nur über diese bzw. Ausgänge möglich.
Ansonsten können höchstens noch Analog-Referenzen Rekursionen unterbrechen.

Wenn man die Sondermerker vor dem Einfügen der UDF temporär ins Programm einfügt, können diese auch nicht für Merker in der UDF verwendet werden.
Hinterher kann man die Sondermerker dann wieder löschen, sofern man sie nicht anderweitig benötigt.
 

Anhänge

Zuletzt bearbeitet:
Hallo Hucki,
hm, deine Lösung hätte den Charme, dass ich den aktueller Zählerstand im TDE anzeigen könnte:cool: . Der Bediener könnte also immer sehen, welche Bedingung grade fehlt. Ich glaube, ich sollte mein Projekt nochmal umbauen. Mit UDFs wird es dann halt schwierig, weil ich feste Vergleichswerte in den analogen Schwellwertschaltern habe. Da werde ich wohl jeweils einen eigenen UDF definieren für Schritt 1-4, Schritt 5-8 etc.
Danke für deinen Tip.

Hallo Heinileini,
bei jedem Aufruf eines UDFs wird unter 'LOGO! bestimmen' die entsprechende Anzahl Merker abgezogen. Also gehe ich davon aus, dass Siemens schon so schlau ist, nicht jedes mal die gleichen Merker zu nehmen. Denke ich jedenfalls:rolleyes:, angezeigt bekomme ich die aktueller Werte nicht, oder geht das irgendwie ?

Gruß
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
bei jedem Aufruf eines UDFs wird unter 'LOGO! bestimmen' die entsprechende Anzahl Merker abgezogen. Also gehe ich davon aus, dass Siemens schon so schlau ist, nicht jedes mal die gleichen Merker zu nehmen.
Die UDF sind im Prinzip Kopiervorlagen.

Beim Hineinkopieren in den Schaltplan können die originalen Bausteine nur verwendet werden, sofern sie in der Schaltung noch nicht vorhanden sind.
Spätestens beim 2. Einfügen müssen somit andere Nummern verwendet werden.
 
Ein UDF hat bis zu 8 Eingänge und 4 Ausgänge, sollte klappen. Aber einen numerischen Wert als Parameter übergeben ? Muss ich dafür einen Vorwärts-Rückwärtszähler mit Vorbelegung nehmen oder gibt es was Einfacheres ?
 
Aber einen numerischen Wert als Parameter übergeben ? Muss ich dafür einen Vorwärts-Rückwärtszähler mit Vorbelegung nehmen oder gibt es was Einfacheres ?
Nein.
Wenn Du die Eigenschaften der UDF aufrufst (z.B. über Doppelklick auf den Namen der UDF), findest Du im 2. Reiter im unteren Bereich alle Parameter der in der UDF vorhandenen Bausteine.
Durch Hinzufügen werden diese zu Parametern der UDF. Diese bekommt dann beim Einfügen in Deinen Schaltplan auch einen solchen aufklappbaren Parameterblock, wie Timer, Analogbausteine u.ä.
Und genau wie bei diesen können die Parameter dann per Hand eingestellt oder referenziert werden.

Man kann dann also die gleiche UDF mit verschiedenen Parametern nutzen.


PS:
Noch ein Beispiel mit UDF-Parametern

attachment.php


attachment.php
 

Anhänge

  • UDF mit Parametern 2.jpg
    UDF mit Parametern 2.jpg
    9,6 KB · Aufrufe: 33
  • UDF mit Parametern 3.jpg
    UDF mit Parametern 3.jpg
    149,6 KB · Aufrufe: 33
Zuletzt bearbeitet:
Dafür gibt es links unter jedem Beitrag, von dem Du meinst, dass er Dir geholfen hat, so einen netten kleinen Button.
Außerdem kannst Du als Threadersteller diesen auch als erfolgreich beendet erklären, wenn Du den Beitrag zum hilfreichsten deklarierst, der Dein Problem am Besten behoben hat.
Damit hilfst Du auch anderen Suchenden mit ähnlichen Problemen bei der Lösungsfindung.
;)
 
Zuletzt bearbeitet:
Zurück
Oben