TIA SSi Befehl in TIA

C7633

Level-1
Beiträge
224
Reaktionspunkte
14
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen

In AWL gibt es den SSI Befehl, der vorzeichenrichtig schiebt.
So wie ich das sehe, gibt es diesen Befehl in SCL nicht.

Wenn man mit SRW x schiebt, wird das Vorzeichen nicht beachtet, sondern alles mit Nullen aufgefüllt.

Gibt es, außer den Wert durch 4 zu teilen, wenn man um zwei Stellen schieben will, noch einen anderen, eleganteren Weg in SCL?

Vielen Dank.
 
In AWL gibt es den SSI Befehl, der vorzeichenrichtig schiebt.
So wie ich das sehe, gibt es diesen Befehl in SCL nicht.
Das stimmt so nicht. Wenn die SCL-Anweisung SHR das Schieben von Ganzzahlen zulässt dann wird auch Typ-richtig geschoben.
SCL (S7-1200, S7-1500) / SHR: Rechts schieben (S7-1200, S7-1500)
...
Bei Werten ohne Vorzeichen werden die beim Schieben frei werdenden Bitstellen im linken Bereich des Operanden mit Nullen aufgefüllt. Wenn der angegebene Wert ein Vorzeichen aufweist, werden die freien Bitstellen mit dem Signalzustand des Vorzeichenbits belegt.
Gemeint ist:
Wenn man in SCL einen vorzeichenbehafteten Datentyp (INT, DINT, ..) rechts schiebt mit der SHR-Anweisung, dann wird vorzeichenrichtig geschoben wie SSI/SSD.
Wenn man in SCL einen vorzeichenlosen Datentyp (UINT, UDINT, WORD, DWORD,...) rechts schiebt mit der SHR-Anweisung, dann werden Nullen eingeschoben wie SRW/SRD.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald

Vielen Dank
Der Klassiker: Wer lesen kann ist klar im Vorteil.

Da ist aber auch das Handbuch Mist: Wenn man nur die Grafik anschaut, werden nur Nullen aufgefüllt.
 
Zurück
Oben