z.B. DB10.DBX100.0
Du machst aber vorne ? und nach dem "." DB[100+I] ? Das passt nicht zu der Adressierung!
Problem: Siemens addressiert byteweise, sprich Bit 0-7 und dann wieder beginnend mit 0
Du musst also bei erreichen von Bit 7 anschließen bei 0 wieder starten (quasi Deinen Zähler umrechen!)
Wie wäre es mit nem Schiebebefehl? Nimm ein Wort / Doppelwort
1. setzt Bit 0 auf True,
2. schiebe Dein Wort um eine Stelle,
3. wiederhole die Schleife bis 10
oder
falls das Wort bereit auf den letzten Bit's belegt ist, nutze einfach die "ODERWORT"-Verknüpfung
@MCerv
ne, mich würde es schon interessieren wie es bitweise geht, einfach so ein "genulltes" Word drüberbügeln, würde mich jetzt nicht so glücklich machen..irgendwie muss es ja gehen. ich kanns nur nicht.
Hallo Limette,
um in SCL Bitweise zu Adressieren musst du ein Komma hinter deine Byteadresse setzen:
Code:
FOR I := 0 TO [COLOR=#ff0000]10[/COLOR] DO
DB_NR.DX[I_WX_Adresse,I_X_Adresse] := TRUE;
END_FOR
Wobei du dann das Byte auch mit hochzählen musst wenn dein Bit auf 7 ist.
Der DB wurde als Block_DB angegeben, danach DX für Bitweise adressierung, in die eckige Klammer die Byte und die Bitadresse durch komma getrennt.
Hallo Limette,
um in SCL Bitweise zu Adressieren musst du ein Komma hinter deine Byteadresse setzen:
Code:
FOR I := 0 TO [COLOR=#ff0000]10[/COLOR] DO
DB_NR.DX[I_WX_Adresse,I_X_Adresse] := TRUE;
END_FOR
Wobei du dann das Byte auch mit hochzählen musst wenn dein Bit auf 7 ist.
Der DB wurde als Block_DB angegeben, danach DX für Bitweise adressierung, in die eckige Klammer die Byte und die Bitadresse durch komma getrennt.
Beide haben recht.
Allerdings kann man die DB Nummer als Integer Wert übergeben und dann intern als Block_DB weiter verwenden.
Ist geschmacksache, mir persönlich gefällt es besser ohne ständige umwandlung ala word_to_block_db.