TIA SCL : Bits to Byte

Sickone4

Level-2
Beiträge
68
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich benutze das Tia Portal V12 und soll einen kleinen Baustein schrieben, um einen Codestecker einzulesen. Das ist soweit auch garkein Problem. allerdings soll dies in SCL geschehen. Und das kann ich leider nicht so gut, bzw meine Kentnisse beschränken sich auf Step7 SCL.

Ich habe die folgenden Eingänge

50.0, 50.1, 50.2, 50.4
51.0, 51.1
Dies sind 6 Eingänge von zwei 4DI Baugruppen.

Diese möchte ich gerne in einen Hilfsmerker schrieben -> hMCodestecker.

Kann ich irgendwie auf die einzelnen Bits in dem Byte zugreifen?
z.B.:

hMCodestecker.0:=%i50.0;
(dies funktioniert nicht!)


Vielen Dank für eure Hilfe!

Sven
 
Hallo,

suche mal nach dem AT-Befehl / Deklaration hier im Forum.
Für S7-1500 musst du nach dem SLICE Befehl suchen.

Mit diesen kannst du dann auf einzelne Bits zugreifen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi, hab dazu heute Mittag schonmal was gesucht. Allerdings war das in dem Format:

b : Byte
a_b AT b Array of Byte

in V12 ist das mit dem Doppelpunkt aber doch nichtmehr drin!?

Ich weiß noch nicht recht wie ich dann das Array Ansprechen soll.
Ist mein hMCodestecker das Array?
 
Hi nochmal!

ich habe mir den Siemens Artikel nochmal genauer angeschaut.

Nur zum Verständnis:
Funktioniert das wenn ich Schreibe?

hMCodestecker.x1:=%i50.0;

kann es leider zur zeit nicht testen, erst morgen wieder auf der Arbeit.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ja so kannst du auf einzelne bits von einem Wort oder Byte zugreifen. Oder du machst es halt klassisch, definiere eine Variable als Merkerwort und deine nötigen Bit Variablen im selben Merkerbereich wie dein Merkerwort, dann kannst du auch Bitorientiert und Wortorientiert zugreifen.
TIA legt dir halt automatisch einen symbolischen Namen an wenn du auf ein Bit über die absolute Adresse Probierst zuzugreifen die du als Merkerwort oder Merkerbyte angelegt hast.
Slice funktioniert aber auch bei Merkerwort oder Merkerbyte

MW_Eingänge %MW100
hMCoderstecker1 %M100.0 := %I50.0
hMCoderstecker2 %M100.1 := %I52.3
etc
 
So das funktionierte wunderbar! Danke an die Helfer!!!

Zum mitschreiben:

SCL

byte.X0 - byte.X7 := bit_xyz
word.b0 - word.b1 := byte_xyz
dword.w0 - dword.w1 := word_xyz

Vielen Dank!
 
Zurück
Oben