14.01.2021 21:21 | |
Beiträge: 1 Bewertung: (0) |
@ ixo65: Der Ansatz ist einfach genial. Allerdings ist noch ein kleiner Fehler in der Komplettlösung. Wenn man das Doppelwort des Betriebsstundenzählers in einen VM-Parameter schreibt und von dort mittels NAI wieder zurückliest, dann wird das erste Bit des Low-Words vom Analogkomparator als Vorzeichen interpretiert. Sobald einer der beiden Zähler im Low-Word den Wert 32767 (= 546h 7min) übersteigt und der andere Zähler hat diesen Wert noch nicht erreicht, ist der Vergleich durch das unterschiedliche Vorzeichen vertauscht. Diese Vertauschung kann man jedoch ausgleichen indem man dem High-Word Vorrang einräumt und im Low-Word den Vorzeichenunterschied kompensiert. D.h. sobald das High-Word einer der beiden Zähler größer 0 ist, kann das Low-Word ignoriert werden und die Auswertung wird durch das jeweils höhere High-Word gesetzt. Solange das High-Word = 0 ist, muß im Vergleich des Low-Words die Vorzeichengleichheit ausgewertet werden und die Ausgänge der Analogkomparatoren müssen bei Vorzeichendifferenz vertauscht werden. Ich habe das Beispiel mal entsprechend angepasst und in einen UDF-Block gepackt: DateianhangBSZ-Vergleich.zip (68 Downloads) |
14.01.2021 21:52 | |
Beigetreten: 18.12.2014 Letzter Bes: 11.06.2024 Beiträge: 33186 Bewertung: (4103)
|
Hallo T-Moe, ist mir später auch aufgefallen. Daraufhin habe ich mir dann eine UDF erstellt, welche das Vorzeichen im Low Word berücksichtigt. DateianhangVergleichen 2er DInt-Werte.zip (73 Downloads) |
Folgen Sie uns auf