Bits kopieren mit SFC 20

Grisu88

Well-known member
Beiträge
61
Punkte Reaktionen
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?
 

Rio

Member
Beiträge
6
Punkte Reaktionen
2
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
 

PN/DP

User des Jahres 2011-2013; 2015-2017; 2020-2022
Power-User
Beiträge
20.011
Punkte Reaktionen
6.055
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
 
OP
G

Grisu88

Well-known member
Beiträge
61
Punkte Reaktionen
1
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
 

MSB

Well-known member
Beiträge
7.150
Punkte Reaktionen
1.625
Ich sach mal so:
Ein Byte sind auch nur 8 Bit ... die du auch Abfragen/Setzen kannst wie du willst, ganz ohne SFC20.
 
OP
G

Grisu88

Well-known member
Beiträge
61
Punkte Reaktionen
1
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
 

PN/DP

User des Jahres 2011-2013; 2015-2017; 2020-2022
Power-User
Beiträge
20.011
Punkte Reaktionen
6.055
Variable Zieladresse ohne SFC20: Schau mal in der AWL-Hilfe nach speicherindirekter Adressierung und registerindirekter Adressierung.

Harald
 

Ralle

Supermoderator
Teammitglied
Beiträge
15.254
Punkte Reaktionen
3.910
Kleinste Einheit beim SFC20 ist ein Byte. Du mußt das indirekt adressieren, siehe PN/DP, Post#7.
 
Oben