Jump to content
  • Sign in to follow this  

    Bitregister verschieben in SPS

       (0 reviews)

    leikang

    Es gibt viele Anweisungen in SPS, die dabei helfen, die Logik auf vereinfachte Weise auszuführen. Anweisungen gibt es in verschiedenen Kategorien wie Arithmetik, Vergleich, Logik, Controller usw. Beispielsweise fällt eine einfache Additionsanweisung zum Addieren von zwei Variablen in die Kategorie Arithmetik. In ähnlicher Weise sind in einer SPS-Logik viele Arten von Anweisungen verfügbar.

    Eine solche Anweisung, die in der SPS-Programmierung weit verbreitet ist, ist die Verschiebungsanweisung. Sie fällt in die Kategorie der numerischen Verarbeitung.

    In diesem Artikel lernen wir das Konzept der Verschiebungsanweisung in der SPS-Programmierung kennen.

    Bitregister verschieben in SPS

    Wie der Name schon sagt, ist eine Verschiebungsanweisung ein Befehl zum Verschieben von Bits eines Worts um eine vordefinierte Position.

    Nehmen wir beispielsweise ein Wort mit 16 Bits an. Sie möchten Bit Nummer 3 von seiner aktuellen vierten Position an die siebte Position verschieben. Wenn also ein Verschiebungsbefehlsimpuls gegeben wird, wird das Bit bei jedem Trigger von der vierten Position an die siebte Position verschoben.

    In dieser Kontinuität wird das Bit an der fünften Position an die achte Position verschoben; und das Bit an der dritten Position wird an die sechste Position verschoben. Hier verschieben Sie also die Bits in einer Gruppe um die von Ihnen definierte Anzahl von Positionen.

    Verschiebeanweisung

    Verschiebeanweisungen gibt es in zwei Arten – Verschieben und Drehen. Sehen wir uns die Drehanweisung an. Betrachten wir eine Syntax – %MW10:= SHL (%MW12, 4). %MW10 ist das Zielspeicherwort und %MW12 ist das Quellspeicherwort.

    Siehe das folgende Bild. In %MW10 wird, wenn ein erster Trigger für die Verschiebung nach links gegeben wird, Bit0 zu Bit1 verschoben und so weiter. Dieses Ergebnis wird in %MW12 gespeichert. Wenn solche Trigger viermal gegeben werden, wird Bit 0 schließlich zu Bit 4 verschoben und so weiter.

    Das Endergebnis wird sowieso in %MW12 gespeichert und Sie erhalten eine endgültige Antwort der Bits, die vom Quellwort um vier Positionen verschoben wurden. Man sollte jedoch bedenken, dass bei jeder Verschiebung das vorhergehende Bit mit dem Wert 0 gefüllt wird. Dies ist im Bild deutlich zu erkennen.

    Nach der ersten Verschiebung ist das erste Bit in %MW12 0. Das Endergebnis nach vier Verschiebungen ist also – 0000 1101 1100 0000. Diese Verschiebung kann also entweder nach rechts oder nach links erfolgen.

    135-1.gif

    In der SPS gibt es noch eine weitere Art der Verschiebung; die frühere fügte Nullen von der vorhergehenden Position hinzu, aber diese zweite Art behält den Wert des ersten Bits (MSB für rechts und LSB für links) bei. Dies wird als arithmetisches Verschieben bezeichnet.

    Wenn also der Wert des ersten Bits (MSB für rechts und LSB für links) vor der Verschiebung anfangs 1 war, bleibt das letzte Bit nur 1 und die Nullen werden vom zweiten vorhergehenden Bit hinzugefügt, bis der Verschiebebefehl gegeben wird. Es ist zu beachten, dass das letzte verschobene Bit immer in einem Übertragsbit gespeichert wird.

    Rotationsanweisung

    Der zweite Typ ist die Rotationsanweisung. Beachten Sie die Syntax – %MW10:= ROL (%MW12, 4). %MW10 ist das Zielspeicherwort und %MW12 ist das Quellspeicherwort. Wir verwenden dasselbe Bild wie oben als Referenz. Die Rotationsanweisung rotiert, wie der Name schon sagt, die Bits einfach um die von Ihnen definierten Positionen.

    Im Vergleich zur Verschiebungsanweisung, bei der nach jedem vorhergehenden Bit eine Null hinzugefügt wurde, werden die Bits hier einfach in derselben Reihenfolge verschoben wie in der linken Richtung. Nehmen wir also an, Sie haben ein Quellwort von – 1100 1010 1100 0101; dann ist das Endergebnis nach einem Trigger von 4 Positionen – 1010 1100 0101 1100. Die gleiche Logik funktioniert in die richtige Richtung. Das letzte verschobene Bit wird ebenfalls in einem Übertragsbit gespeichert.

    Ein weiterer Typ ist in der Kategorie „Rotieren“ zu finden. Hier wird nicht nur 16 Bits verschoben, sondern das Übertragsbit wird überrollt. Das heißt, das letzte Bit wird in das Übertragsbit verschoben, und das Übertragsbit wird dann in das erste Bit verschoben und so weiter. Beim vorherigen Typ wurde das letzte Bit nur im Übertragsbit gespeichert.

    Sign in to follow this  


    User Feedback

    Recommended Comments

    There are no comments to display.



    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

Apply for friendship links:WhatsApp or E-mail: admin@plchmis.com
×
×
  • Create New...