Gibt es einen Vergleicher ob in einen Byte mehr als 1 Bit 1 ist?

maxi

Level-2
Beiträge
2.834
Reaktionspunkte
127
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo alle,

Gibt es einen einfachen Vergleicher ob in einen Bit oder Bye nicht mehr als 1 bit auf 1 Steht?

Möchte mir das Programm nicht mit Abfragen etc. zumüllen.

Grüsse
 
Hallo,
in Step7 unter "TI-S7 Converting Blocks" den FC 99 (Anzahl der gesetzten Bits zählen) benutzen. Der sollte helfen.
Mfg Rayk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich wollte diesen Baustein auch einmal benutzen. Mir ist aufgefallen, das das erste Bit nicht mit erfasst wird. Wird z.B. MB10 gescannt und ist M10.0 auf 1, gibt der Baustein trotzdem eine 0 aus. Erst alle Bits ab M10.1 werden erfasst und gezählt. Ich habe mir dann einen eigenen Baustein geschrieben. Habt ihr die gleichen Erfahrungen gemacht?
Gruß Andre
 
Also ich habe das gerade mal probiert,
das Byte in eine Temporäre DWORD Variable,
da hat das ganze in PLC-Sim richtig funktioniert, auch bei M0.0.

Mfg
Manuel
 
Hallo,
ich hatte das damals mit TrySim getestet. Ich hatte auch das Byte in das DWORD transferiert. Wenn ich das ganze DWORD belege z.B. mit 32 Eingängen, wird das erste Bit nicht mitgezählt (ED 0 -> ED 3.0 wird nicht gezählt). Zudem zeigt mir das INT am Ausgang nicht die Anzahl der gesetzten Bits an, sondern ihre Wertigkeit.
Welche Bausteinversion hast du? Ich habe hier V 2.0, vielleicht liegt es auch an TrySim?
Gruß Andre
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Meine Version ist auch 2.0
Ich habe gerade mal ED0 an den Baustein,
und auch da war es mit allen von mir getesteten Werten korrekt.
 
Hallo,
das macht mich nun doch sehr neugierig. Da ich PLC-Sim nicht zur Verfügung habe sondern nur TrySim (Demo), werde ich das mal an einer leibhaftigen CPU testen. Ist das letzte Änderungsdatum des Bausteins bei dir auch der 11.04.2000?
Gruß Andre
 
Schnittstellenänderung 14.10.1996 13:44:31
Änderungsdatum 11.04.2000 10:16:18

Mfg
Manuel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kannst das auch so machen:

1. Zu testendes Wort am Anfang des Programms auf Backup schieben.
2. Am Ende des Programms Backup und aktuelles Wort mit Exklusiv-oder verknüpfen
3. Backup Wort und Ergebnis verunden. Das Ergebnis zeigt an welches Bit auf Null gesetzt wurde. Aktuelles Wort und Ergebnis verunden. Ergebnis zeigt an welches Bit gesetzt wurde. Und das ganze dann in Loop laufen lassen. Dann hast Du einen DB alte Werte, einen DB neue Werte, einen DB Änderungen auf 1, einen DB Änderungen auf Null...und gegangen ....und gekommen.
 
Kannst das auch so machen:

1. Zu testendes Wort am Anfang des Programms auf Backup schieben.
2. Am Ende des Programms Backup und aktuelles Wort mit Exklusiv-oder verknüpfen
3. Backup Wort und Ergebnis verunden. Das Ergebnis zeigt an welches Bit auf Null gesetzt wurde. Aktuelles Wort und Ergebnis verunden. Ergebnis zeigt an welches Bit gesetzt wurde. Und das ganze dann in Loop laufen lassen. Dann hast Du einen DB alte Werte, einen DB neue Werte, einen DB Änderungen auf 1, einen DB Änderungen auf Null...und gegangen ....und gekommen.
 
Zurück
Oben