Sonstiges Problem Mit Udf

Zuviel Werbung?
-> Hier kostenlos registrieren
30 mal das gleiche um 30 Sessel markieren zu können
Ich kenne mich mit der Logo jetzt nicht aus ... aber sind die einzelnen UDF's denn eigenständige und unabhängige Instanzen ?
Oder werden die "Merker" beim zweiten und folgenden Aufruf weiter mitbenutzt ?
 
Zuletzt bearbeitet:
Falls meine Annahme zutrifft und die einzelnen UDF-Aufrufe immer denselben Merkerbereich verwenden dann kann ich mir das nur so erklären, dass es irgendwann einmal funktioniert hat :
das Zeitverhalten der Zähler-Weiterschaltung (also des Multiplexers) hat sich geändert und es können sich zeitlich Aufrufe ganz kurz überlappen ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kenne mich mit der Logo jetzt nicht aus ... aber sind die einzelnen UDF's denn eigenständige und unabhängige Instanzen ?
Oder werden die "Merker" beim zweiten und folgenden Aufruf weiter mitbenutzt ?
Wenn in der Logo eine UDF erneut aufgerufen wird, wird jedesmal nur eine Kopie des Inhalts aufgerufen und die Blöcke erhalten neue, freie Blocknummern.
Beispiel: Die UDF enhält 6 AND-Blöcke, 3 RS-Glieder und 3 Merker. Dann wären dies die Blocknummern B001 bis B009 sowie M1 bis M3.
Das gilt dann für den ersten UDF-Aufruf.
Wird jetzt die selbe UDF zum zweiten im Diagram eingefügt, dann hat dieses die Blocknummern B010 bis B018 sowie M4 bis M6.
Wird sie selbe UDF zum dritten Mal im Diagramm eingefügt, dann hat dieses die Blocknummern B019 bis B027 sowie M7, M9 und M10. M8 wird in diesem Fall nicht vergeben, da M8 eine Sonderfunktion hat.
Das eigentliche Problem bei der vom Themenstarter erstellte UDF ist das Rückführen der UDF-Ausgänge in die UDF. Das ist nicht zulässig und funktioniert nur in der Simulation und nicht in einer realen Logo.
 
Wenn in der Logo eine UDF erneut aufgerufen wird, wird jedesmal nur eine Kopie des Inhalts aufgerufen und die Blöcke erhalten neue, freie Blocknummern.
Beispiel: Die UDF enhält 6 AND-Blöcke, 3 RS-Glieder und 3 Merker. Dann wären dies die Blocknummern B001 bis B009 sowie M1 bis M3.
Das gilt dann für den ersten UDF-Aufruf.
Wird jetzt die selbe UDF zum zweiten im Diagram eingefügt, dann hat dieses die Blocknummern B010 bis B018 sowie M4 bis M6.
Wird sie selbe UDF zum dritten Mal im Diagramm eingefügt, dann hat dieses die Blocknummern B019 bis B027 sowie M7, M9 und M10. M8 wird in diesem Fall nicht vergeben, da M8 eine Sonderfunktion hat.
Das eigentliche Problem bei der vom Themenstarter erstellte UDF ist das Rückführen der UDF-Ausgänge in die UDF. Das ist nicht zulässig und funktioniert nur in der Simulation und nicht in einer realen Logo.
Ahh ok wir arbeiten an einer lösung danke an alle!!
 
Das eigentliche Problem bei der vom Themenstarter erstellte UDF ist das Rückführen der UDF-Ausgänge in die UDF. Das ist nicht zulässig und funktioniert nur in der Simulation und nicht in einer realen Logo.
Also dann hier doch, wie von mir vorgeschlagen, mit zusätzlichen Merkern arbeiten ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also dann hier doch, wie von mir vorgeschlagen, mit zusätzlichen Merkern arbeiten ...
Nein, dass wird nicht reichen.
Bei 30 UDF Aufrufen würden 90 Merker gebraucht. Die Logo hat aber nur 64 Merker und von denen können nur 56 frei verwendet werden, da 8 Merker Sonderfunktionen haben (farbige Hintergrundbeleuchtung, Zeichensatzumschaltung, Anlaufmerker).
 
Ja, die UDF-Ausgänge außer der jeweiligen UDF mittels Netzwerkausgänge und dann über Netzwerkeingänge in die UDF über die UDF-Eingänge wieder rückkoppeln.
Das passt gerade so, weil eine UDF 8 Eingänge hat.

Aber auch von Netzwerkein-/-ausgängen gibt es leider nur. Also müsste ein Teil über Merker rückgekoppelt werden, ein Teil über NI/NQ.
 
Zuletzt bearbeitet:
Ne, das ist schon machbar.
Aber dann darf nicht mehr viel dazu kommen.
Das Problem ist halt bei dieser grafischen Programmierung das Problem der Rekursion. Diese lässt sich sich nur durch Merker, digitale Ausgänge und einige anderer Tricks realisieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mehr Sorgen machen mir da schon die Anzahl der digitalen Ein-/ und Ausgänge. Eine Logo kann mit digitalen Erweiterungsmodulen maximal 24 DI und 20 DO verwalten. Braucht man mehr, dass muss man die entsprechende Anzahl an Basis- und Erweiterungsmodulen dazu nehmen und die Basismodule untereinander vernetzen.

Aus der Funktionsbeschreibung zur UDF kann man aber nicht erkennen, was er genau braucht.
 
Nur mal so für mich ... um welche LOGO ging es gleich noch mal ?

@giga ohm : Kannst Du wenigstens mal aufnotieren, wie Du die UDF aufrufst ?
Ich komme mit "Zähler Antriebs- Station, Zähler Gegen- Station" (ich vermute mal, dass AST bzw. GST das bedeutet ) noch nicht ganz klar.

z.Bps:
- Es sind 30 Plätze (Sessel ) an einer Seilbahn --> Sessel_1 kommt = Taste "Kinder"
- Sessel_2 kommt --> Taste "Behinderte"
- Sessel_3 kommt --> Taste "Normal"
usw.
Da es eine Seilbahn ist, kann Sessel_1 niemals nach Sessel_3 folgen ("überholen ohne einzuholen" )

Also wird erstmal ein Sessel_Zähler an der Tal- Station bis 30 inkrementiert, bei 30 an der Bergstation rückgesetzt ? (dann wäre die ganze Sache ja einmal rum gelaufen )

Die 3 Eingänge ("Kinder, Behinderte, Normal" ) werden sicher nur an der Talstation gesetzt, da ja meistens keiner mit dem Sessel runter fährt.

Oder wie kann man sich das Ganze vorstellen ?

Mfg mega_ohm
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo @giga ohm,
Ok nochmal die komplette Funktion dieses UDF:
Wir programmieren eine Sesselmarkierung einer Seilbahn, dieses UDF ist für die Weitergabe der verschiedenen Markierungen zuständig! Das heißt wenn einer von den oberen 3 Eingängen und der ZÄHLER GST ausgibt wird ein Impuls auf das zugehörige RS gesetzt, dieses haltet dann so lange an das nächste UND an, bis der 2 Impuls von Eingang ZÄHLER AST kommt und danach schickt es einen Impuls in den weiteren Verlauf des Projektes...gleichzeit ist der Ausgang wie man sieht jeweils mit dem zugehörigen Reset des RS Gliedes verbunden damit dieses wieder für die nächste Markierung bereit ist...
Wie "markiert" ihr die Sessel ?
Was zählt der ZÄHLER GST ? (Wie parametriert, wann gesetzt, wann rückgesetzt ? )

Erst dachte ich, dass wäre mal wieder eine schöne LOGO- Übung.

Nach ein paar Ideen/ Fragen - und immer mehr Fragen meinerseits ... sehr wahrscheinlich, weil nicht zu viele Info's (gegen null gehend ) wegen "Know How"- Schutz veröffentlicht werden dürfen ! :ROFLMAO: --> habe ich keinen Bock mehr.

Mfg mega_ohm
 
Ich denke die bez. AST und GST stehen für Arbeitsstellung und Grundstellung.
Solange der Zähler in GST kann über die Tasten eine Vorwahl getroffen werden. Hat der Zähler die Auswahl übernommen (Zähler in AST) wird die Vorwahl zurückgesetzt.

Gruß Daniel
 
Hallo @giga ohm,

Wie "markiert" ihr die Sessel ?
Was zählt der ZÄHLER GST ? (Wie parametriert, wann gesetzt, wann rückgesetzt ? )

Erst dachte ich, dass wäre mal wieder eine schöne LOGO- Übung.

Nach ein paar Ideen/ Fragen - und immer mehr Fragen meinerseits ... sehr wahrscheinlich, weil nicht zu viele Info's (gegen null gehend ) wegen "Know How"- Schutz veröffentlicht werden dürfen ! :ROFLMAO: --> habe ich keinen Bock mehr.

Mfg mega_ohm
AST = Antriebsstation (Bergstation)
GST = Gegenstation (Talstation)

Die Zähler werden durch induktive Näherungsschalter in der Tal- und Bergstation.
Die „Markierung“ dient im Seilbahnbereich dazu dem Maschinisten in der Bergstation zu signalisieren dass auf dem Sessel Personen sitzen welche beeinträchtigt sind oder noch ungeübte Skifahrer sind welche sich mit dem Ausstieg schwer tun könnten. Daher ist erhöhte Aufmerksamkeit geboten bzw. die Geschwindigkeit zu reduzieren.
Da dieses System bisher nur mit einer Hupe über die Seilbahnsteuerung funktioniert möchten wir ein zweites System parallel einbinden um dem Maschinisten deutlicher zu machen auf wen er Acht geben muss.

An der Bahn sind 59 Sessel welche alle denselben Abstand haben, daher können bergwärts nur 30 Sessel fahren. -> 30 UDF welche eine Markierung speichern.

Zählerschleife zur Ansteuerung der UDF:
Damit immer nur ein UDF angesteuert wird wurde eine Zählerschleife implementiert.
Es gibt einen „Vorzähler“ welcher die „Hauptzähler“ nach einem Durchlauf resettet:
ON 31 OFF 32
Die „Hauptzähler“ (1-30) geben nacheinander aus (Zähler 1: On 1 Off 2 bis Zähler 30: On 30 Off 31)
Dadurch ist sichergestellt, dass immer nur ein UDF angesteuert wird.

Wenn jetzt ein Sessel markiert wird gibt einer der Hauptzähler eine 1 aus und in dem UDF des Zählers ist durch den Tasterdruck z.B Kind die Und Bedingung erfüllt. Das RS Glied wird gesetzt.
Der Zähler im UDF wird von der Antriebsstation getriggert und gibt nach 2 Impulsen aus wodurch die Und Bedingung nach dem RS Glied erfüllt wird.
Danach soll die Markierung aus dem UDF ausgegeben werden und an die Ausgabefunktionen weitergegeben werden sowie das RS Glied im UDF zurückgesetzt werden.

In der Ausgabefunktion wird noch ausgewertet wie viele Sessel die Markierung von der Bergstation entfernt ist und über den Zählwert an das HMI weitergegeben.
 
@giga ohm,
hast Du (bzw. habt Ihr) schon mal überlegt, statt 3 "Merkern" (die in dem jetzigen UDF ggf. auch gleichzeitig EIN sein können, ist das erlaubt?) einen eindeutigen Analogwert (z.B. 0=Empty, 1=Adult, 2= Child, 4=Handicapped) in einem FIFO aus MIN/Max-Bausteinen entsprechend Eurem Seilbahnaufbau durchzuschieben?

Hier ein mögliches Grundprinzip mit 6 Plätzen (die restlichen sind dann lediglich Fleißarbeit) zum Testen:
PS: Das (erweiterte) Beispiel ist jetzt in diesem Beitrag zu finden...

Solange der Sensor unten einen neuen Sitz detektiert, kann man die (neue) Belegung auswählen.
Wenn der Sitz raus geht (= negative Flanke), wird diese Belegung im FIFO hinten angefügt, während alle anderen Werte eins weiter geschoben werden.
Meinem Verständnis nach sollte das auch in etwa dem Zeitrahmen des obigen Entnehmen der Leute entsprechen.
(AM6 bräuchte es dort natürlich nicht unbedingt, ist nur zum Kopieren für's Weiterzeichnen.)
Ggf. kann man am Ausgang des FIFOs auch noch eine Verzögerung für die Anzeige einfügen, um die Ausgabe der Wirklichkeit besser anzupassen.
 
Zuletzt bearbeitet:
Hallo giga_ohm,
AST = Antriebsstation (Bergstation)
GST = Gegenstation (Talstation)

Die Zähler werden durch induktive Näherungsschalter in der Tal- und Bergstation.
Die „Markierung“ dient im Seilbahnbereich dazu dem Maschinisten in der Bergstation zu signalisieren dass auf dem Sessel Personen sitzen welche beeinträchtigt sind oder noch ungeübte Skifahrer sind welche sich mit dem Ausstieg schwer tun könnten. Daher ist erhöhte Aufmerksamkeit geboten bzw. die Geschwindigkeit zu reduzieren.
Da dieses System bisher nur mit einer Hupe über die Seilbahnsteuerung funktioniert möchten wir ein zweites System parallel einbinden um dem Maschinisten deutlicher zu machen auf wen er Acht geben muss.

An der Bahn sind 59 Sessel welche alle denselben Abstand haben, daher können bergwärts nur 30 Sessel fahren. -> 30 UDF welche eine Markierung speichern.

Zählerschleife zur Ansteuerung der UDF:
Damit immer nur ein UDF angesteuert wird wurde eine Zählerschleife implementiert.
Es gibt einen „Vorzähler“ welcher die „Hauptzähler“ nach einem Durchlauf resettet:
ON 31 OFF 32
Die „Hauptzähler“ (1-30) geben nacheinander aus (Zähler 1: On 1 Off 2 bis Zähler 30: On 30 Off 31)
Dadurch ist sichergestellt, dass immer nur ein UDF angesteuert wird.

Wenn jetzt ein Sessel markiert wird gibt einer der Hauptzähler eine 1 aus und in dem UDF des Zählers ist durch den Tasterdruck z.B Kind die Und Bedingung erfüllt. Das RS Glied wird gesetzt.
Der Zähler im UDF wird von der Antriebsstation getriggert und gibt nach 2 Impulsen aus wodurch die Und Bedingung nach dem RS Glied erfüllt wird.
Danach soll die Markierung aus dem UDF ausgegeben werden und an die Ausgabefunktionen weitergegeben werden sowie das RS Glied im UDF zurückgesetzt werden.

In der Ausgabefunktion wird noch ausgewertet wie viele Sessel die Markierung von der Bergstation entfernt ist und über den Zählwert an das HMI weitergegeben.
Damit kann man ja schon mal was anfangen. Wenn Du jetzt noch die Siemens- Bestellnr. der LOGO mit dazu geschrieben hättest, wüsste man, welche Möglichkeiten es gibt. Von einem Neukauf der LOGO und damit z.B. einer 6ED1052-1CC08-0BA1 habe ich nichts gelesen.

Mfg mega_ohm
 
Zurück
Oben