Sonstiges Problem Mit Udf

Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn Du jetzt noch die Siemens- Bestellnr. der LOGO mit dazu geschrieben hättest, wüsste man, welche Möglichkeiten es gibt.
:unsure:
UDFs gibt es ja erst seit der 0BA7. Da sind die möglichen Differenzen IMHO nicht so riesig.

Die analogen Netzwerkausgänge können dort den VM noch nicht ansprechen, so dass man da mit der Parameter-VM-Zuordnung arbeiten müsste. Und mit der 8.1 haben die Schieberegister einen zusätzlichen Reset-Eingang bekommen.
Ansonsten noch die Meldetexte und Sondermerker (was direkt die Bausteine betrifft).

Rest war IMHO hauptsächlich Ressourcen, Oberfläche und Verbindungsmöglichkeiten.
Und der große Umbruch der 0BA8-Hardware natürlich.
 
Hallo hucki,
Du hast eine sehr schöne Lösung gefunden.
Diese hat mit 64 AM auch noch "viel Luft nach oben" - falls der Sessellift noch mehr Sessel bekommt.
Wenn ich was zu sagen hätte, würde ich Deine Lösung auf die 30 Sessel erweitern und nutzen.
Von den Hardware- Voraussetzungen ist Dein Vorschlag sehr effizient - 1x LOGO + 1 Erweiterungsmodul (wegen der Dig. Ausgänge). Da ist man mit
ca. 230€ für die Steuerung (wenn man alles neu kauft ) locker dabei.
(Wo Du die Ideen immer her nimmst ... (y) )

Ich werde aber mal schauen, wie es mit UDF ausschaut.

P.S.: Warum hast Du Q9- Q16 verwendet ? (statt Q1 - Q8 )
Weil Dir einfach so war und Du es kannst - oder hat das einen tieferen Sinn ?

Mfg mega_ohm
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo hucki,
...
P.S.: Warum hast Du Q9- Q16 verwendet ? (statt Q1 - Q8 )
Weil Dir einfach so war und Du es kannst - oder hat das einen tieferen Sinn ?

Mfg mega_ohm
Fehler in meinem System (und war auch schon spät).
😁


Ist beim Copy/Paste passiert, ich hab's glatt übersehen und Du mich "erwischt".
:oops:🤷‍♂️
 
Von den Hardware- Voraussetzungen ist Dein Vorschlag sehr effizient - 1x LOGO + 1 Erweiterungsmodul (wegen der Dig. Ausgänge).
Ich tippe eher auf 2 LOGOs, eine in der Tal- und eine in der Bergstation (zumal auch von einem Netzwerkprojekt die Rede ist).
Zwischen beiden liegen ja sicher ein paar Meter und da ist die Übertragung per Netzwerk dann IMHO doch etwas einfacher/sicherer.

🤔
Ich würde als Erweiterung die 3 Belegungs-Bits vermutlich ins HIGH-Byte verlegen und im LOW-Byte die Sitznummer mit durchs FIFO jagen, um auf der Gegenseite eine bessere Kontrolle zu haben. Ggf. kann man auch per Parameter-VM-Zuordnung den ganzen FIFO im VM (oder einen größeren Teil davon) übertragen.
 
Dankle für den zahlreichen Input von euch!

Die Logos sind 6ED1052-1MD08-0BA1 und befinden sich je eine in der Tal- und eine in der Bergstation. Die Kommunikation findet über eigene LWL-Fasern mit Medienconvertern statt. In der Bergstation befindet sich noch ein Switch für das HMI.
@hucki Danke für die mega Hilfe!
100% haben wir die Variante noch nicht verstanden aber da werden wir uns die nächsten Stunden reinarbeiten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@hucki Danke für die mega Hilfe!
100% haben wir die Variante noch nicht verstanden aber da werden wir uns die nächsten Stunden reinarbeiten.
Eure Seilbahn schiebt (oder zieht) die Sessel doch eigentlich immer nur eine Position weiter und genau so macht es der FIFO dann parallel dazu auch.
Unten steigt jemand ein, oben wird er nach 30 Positionen wieder "ausgespuckt".
Unten wird die Belegung in den FIFO eingespeichert, oben wird sie 30 Positionen später wieder ausgegegeben.

Bis B007 ist nur zur eindeutigen Auswahl der Sesselbelegung.
Da gäbe es sicherlich auch einige andere Varianten, solche "Radiobutton" zu erzeugen.
IMHO sollte die Belegung nur eindeutig sein. Euer UDF lässt bis dato auch doppelte Belegung zu.

Theoretisch könntet Ihr das so auch in 2 Richtungen machen, falls doch mal wer wieder mit runter fährt.
 
Zuletzt bearbeitet:
Ich würde als Erweiterung die 3 Belegungs-Bits vermutlich ins HIGH-Byte verlegen und im LOW-Byte die Sitznummer mit durchs FIFO jagen, um auf der Gegenseite eine bessere Kontrolle zu haben. Ggf. kann man auch per Parameter-VM-Zuordnung den ganzen FIFO im VM (oder einen größeren Teil davon) übertragen.
Hab' das mal in das Beispiel noch mit rein gebastelt (und natürlich auf @mega_ohm gehört):

1697737551437.png

(Netzwerkprojekt hatte ich momentan keine Lust zu. 🤷‍♂️)
Den Sitz 1 würde ich noch extra markieren, damit sich der Zähler nach spätestens einem Durchlauf von selbst auf den Beginn initialisiert und ggf. später auch immer wieder von selbst korrigiert.
 

Anhänge

Zuletzt bearbeitet:
Diese hat mit 64 AM auch noch "viel Luft nach oben" - falls der Sessellift noch mehr Sessel bekommt.
Offenbar doch nicht, denn die LOGO! kann anscheinend nur bis zu 34 remanente! Min/Max-Bausteine (und Remanenz hat IMHO hier schon Sinn).
Das war mir bis dato auch noch nicht bewußt.
😱


PS:
Man kann bei mehr Bedarf (z.B. für die Talfahrt) natürlich noch einen Teil der Remanenz in die 2. LOGO! verlagern.
🤷‍♂️😁
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Offenbar doch nicht, denn die LOGO! kann anscheinend nur bis zu 34 remanente! Min/Max-Bausteine (und Remanenz hat IMHO hier schon Sinn).
Kleiner Einspruch: 35 remanente Max/Min - Blöcke. Beim Versuch, den 36. remanenten Max/Min-Block ein zu fügen, kommt eine Fehlermeldung.
1697970627734.png
 
Zuletzt bearbeitet:
Hab' das mal in das Beispiel noch mit rein gebastelt (und natürlich auf @mega_ohm gehört):

Anhang anzeigen 72284

(Netzwerkprojekt hatte ich momentan keine Lust zu. 🤷‍♂️)
Den Sitz 1 würde ich noch extra markieren, damit sich der Zähler nach spätestens einem Durchlauf von selbst auf den Beginn initialisiert und ggf. später auch immer wieder von selbst korrigiert.
Ein paar Fragen dazu @Hucki, weil wir analog nocht nie etwas getan haben...

1 Frage: wie werden bei Entry und Exit die Netzwerkeingänge betätigt? Sind ja nicht mit einen Block verbunden oder so...


2 Frage: kannst du bitte genau erklären was beim " Byte splitting" passiert?


Würden uns sehr auf eine Antwort bzw Erklärung freuen!

Ps: die Bahn ist eine reine Sportbahn und darf nicht von Talfahrern benutzt werden, deswegen wird das Exit denke ich nicht benötigt🙋
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ein paar Fragen dazu @Hucki, weil wir analog nocht nie etwas getan haben...

1 Frage: wie werden bei Entry und Exit die Netzwerkeingänge betätigt? Sind ja nicht mit einen Block verbunden oder so...


2 Frage: kannst du bitte genau erklären was beim " Byte splitting" passiert?

Ps: die Bahn ist eine reine Sportbahn und darf nicht von Talfahrern benutzt werden, deswegen wird das Exit denke ich nicht benötigt🙋
Zu erst einmal:
Das Exit wird auf jeden Fall benötigt, denn das ist der Belegungsspeicher für das Aussteigen auf dem Berg!
(Es ist also gar kein Speicher für eine eventuelle Talfahrt im Beispiel.)
;)



Zu 1.:
Das hat mit dem Aufbau des Speichers (hier der lokale Variablenspeicher VM) zu tun.
Das WORD VW0 besteht aus 2 BYTEs, dem VB0 und VB1, und diese wiederum aus 16 BITs, V0.0-V0.7 bzw. V1.0-V1.7.
Wenn man den Analogwert 256 in das VW0 speichert (= analoger Netzwerkausgang NAQ1, Übernahme von B009) wird in diesem WORD das V0.0 gesetzt und alle anderen BITs zurückgesetzt. Bei 512 nur das V0.1 und bei 1024 das V0.2
Ob eines und und wenn ja, welches BIT dieser 3 gesetzt ist, lässt sich einfach mit den digitalen Netzwerkeingängen wieder (getrennt) einlesen.
Deswegen habe ich für diese Speicherung auch den VW gewählt.
Edit:
1698089133739.png
In der Simulation gibt es unten einen Button Datentabelle.
Dort könnt Ihr z.B. auch ein VW einmal als Analog- und einmal als Binärwert beobachten und seht dann, was ich gerade versucht habe zu erklären.
/Edit

In der 1. Variante hatte ich ja noch 1, 2 und 4 als Werte genommen, dadurch waren die Bits V1.0 - V1.2 für die Speicherung der Sitzbelegung zuständig. Mit den jetzigen Werten bleibt das VB1 frei.

Stattdessen kommt jetzt die aktuelle Sitzplatznummer von 1 (in BITS = 0000 0000 0000 0001) bis 59 (in BITS = 0000 0000 0011 1011) ins Spiel. Alle diese Zahlen (sogar bis 255) passen komplett nur in das VB1.
Durch die Addition in B013 kommen also Sitznummer (= LOW BYTE) und Sitzbelegung (= HIGH BYTE) zusammen in ein WORD/Analogwert, ohne sich gegenseitig zu beeinflussen.

Dieser Analogwert wird dann mit jedem Sitz eins weiter geschoben, bis er an der Bergstation nach im Beispiel 6 in Echt dann 30 Sitze später als Exit im VW2 ankommt.


Zu 2.:
Wie vorher das VW0 (Talstation) besteht auch das VW2 aus 2 BYTEs: VB2 und VB3.
Das VB2 enthält wie vorher das VB0 die Sitzbelegung, welche sich wieder mit 3 einzelnen Netzwerkeingängen einfacher auslesen lässt, ohne dass die im VB3 stehende Sitznummer dabei "reinfunkt".

VB3 lässt sich so leider nicht direkt auslesen, da die Analogwerte der LOGO! immer mit ganzen WORDs arbeitet.
Verwendet man für die Anzeige das VW2, wird ja die Summe aus Sitzbelegung + Sitznummer angezeigt.
Und verwendet man das VW3 (VB3+VB4), wird die Sitznummer als Wert zwischen 256 (in BITS = 0000 0001 0000 0000) und 15.104 (in BITs 0011 1011 0000 0000) interpretiert, weil sich so die BITs im HIGH BYTE statt im LOW BYTE befinden.

Daher kopiere ich das VW3 (VB3 = Sitznummer + VB4 = leer) in das das VW5 (VB5= Sitznummer + VB6) und lese anschließend das VW4 (VB4 = leer + VB5= Sitznummer) als Analogwert aus. Jetzt befindet sich die Nummer wieder im LOW BYTE (HIGH BYTE ist leer) und wird so wieder als korrekte Sitznummer zwischen 1 und 59 erkannt.

Es wird also das VB3 aus dem VW2 herausgetrennt in ein separates BYTE des VW4.



PS:
Beim ersten Befüllen des FIFOs (nach Updates des Sesselliftprogrammes in der LOGO!) steht noch keine Sitznummer in den jeweiligen Speichern, daher wird da immer noch die 0 als Sitznummer angezeigt.
Es wird also normalerweise eine Ini-Fahrt benötigt. Auch um dann mit I1 den Sitzplatz 1 zwischen Realität und LOGO! abzugleichen.

Ist der FIFO dann gefüllt, sollten Sitznummer und- belegung aller 30 Plätze im FIFO durch die Remanenz der Min/Max-Bausteine auch bei einem Stromausfall erhalten bleiben, so dass nach dem Wiedereinschalten beides noch zur Verfügung steht.


Und keine Ahnung, ob Ihr überhaupt Sitzplatznummern habt.
Mein Gedanke war halt, dass so das Personal oben leichter kontrollieren kann, ob bei der Software auch wirklich nix schief gegangen ist (Murphys Gesetz ;) ). Man sieht die Sitznummer, die aus dem FIFO-Exit kommt und kann sie mit der realen Sitznummer vergleichen. Ihr habt ja in der Bergstation ein HMI, dass sicher gut zur Anzeige dafür geeignet ist.
Ggf. könnte man so auch eine Korrektur der FIFO-Positionen sogar von der Bergstation aus antriggern. Das sind aber Sachen, die ihr vor Ort checken müsst, ob man sowas benötigt.
 
Zuletzt bearbeitet:
... die LOGO! kann anscheinend nur bis zu 34 remanente! Min/Max-Bausteine
Kleiner Einspruch: 35 remanente Max/Min - Blöcke.
Sorry, hab' ich mich wohl vor Schock verguckt. 🫣
Hab' jetzt mitbekommen, warum es bei mir nur (noch) 34 Stück waren:
Ich hatte mit 'nem Zähler schon einen remanenten Block im Programm.
Ohne diesen Zähler werden es dann auch bei mir 35 Max/Min-Blöcke.

Btw: remanente Zähler (alleinig) sind bis zu 50 Stück möglich.
 
Zurück
Oben