Bits kopieren mit SFC 20

Grisu88

Level-1
Beiträge
61
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte gerne ein Bit mit dem SFC 20 kopieren. Jedoch ist die Quelle ein Byte und ich brauche von diesem Byte nur ein Bit. Die Quelle kann ich nicht verändern. Als Quelle wird ein das Byte B#16#01 übergeben und ich möchte nur von diesem Byte das bit, welches auf TRUE ist auf ein beliebiges Bit in einem beliebigen DB speichern. Jedoch schaffe ich es nur das Byte komplett zu kopieren. Also erhalte ich immer das Bit an der x.0 stelle. Kann mir da jemand einen Tipp geben?
 
Hallo,
wenn ich das richtig verstehe moechtest du einfach nur schauen ob ein bit in der Quelle gesetzt ist oder nicht. Die kleinste Einheit des SFC20 (SIEMENS S7) ist ein Byte.
Mein Vorschalg:
L Quelle
L 0
<>I
= ZielByte.ZielBit

Hoffe es konnte helfen.
Gruss Rio
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Deine Aufgabenstellung klingt für mich ziemlich inkonsistent ...
Nach Deiner Beschreibung Deiner gewünschten Funktion brauchst Du nur prüfen, ob in Deinem Quell-Byte irgendein Bit gesetzt ist (also ob der Inhalt des Byte <> 0 ist) und wenn ja, dann Dein Ziel-Bit auf 1 setzen. Dafür brauchts keinen SFC20.

Vielleicht formulierst Du Deine Aufgabenstellung nochmal deutlicher?

Harald
 
ja sowas brauch ich, jedoch muss das

S ZielByte.ZielBit

variable sein. Dieser sfc 20 wird in verschiedenen Sprungverteilern angewendet und je nach dem wo man sich befindet muss ein anderes Bit gesetzt werden
 
Ich sach mal so:
Ein Byte sind auch nur 8 Bit ... die du auch Abfragen/Setzen kannst wie du willst, ganz ohne SFC20.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
also:

ich habe einen Funktionsbaustein erstellt der eine Kommunikation mittels SNMP ermöglicht. Dieser Funktionsbaustein überführt alle empfangenen Daten mit SFC 20 an irgendeinen Speicherbereich. Ich bekomme als SNMP Antwort immer Bytes (in diesem Fall einen Status, welcher entweder B#16#0 oder B#16#1 ist). Ich möchte jetzt verschiedene Stauts abfragen und alle in einem Byte abspeichern also

x.0
x.1
x.2

und so weiter

bekomme jedeoch immer nur Bytes mit dem SFC 20 überführt
 
Variable Zieladresse ohne SFC20: Schau mal in der AWL-Hilfe nach speicherindirekter Adressierung und registerindirekter Adressierung.

Harald
 
Kleinste Einheit beim SFC20 ist ein Byte. Du mußt das indirekt adressieren, siehe PN/DP, Post#7.
 
Zurück
Oben