Step 7 Verknüpfungsoperationen

Kay1981

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo alle zusammen,

hätte mal fragen zu den verknüpfungsoperationen, insbesondere maskieren von werten. ich weiss wie das alles funktioniert. aber ich hab ein riesenproblem und weiss nicht, ob dieses problem jeder bei einer fortbildung, weiterbildung usw hat. ich verstehe meistens wie die dinge funktionieren, weiss aber nie, wann ich solche funktionen mal in der realität benutzen soll.

kann mir bitte jemand ein beispiel aus der realität nennen, wann ich werte maskiere. vor welcher anlage oder welcher aufgabe stehe ich, wenn ich sowas mal machen will.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ein direktes beispiel habe ich grad nicht parat. aber zum beispiel WAND verknüpfung. da gibt es einen ersten dualwert, der mit einem zweiten dualwert verknüpft wird. der zweite operand dient als maske. 1 erhält den wert, den wir sehen wollen und 0 erhält den wert, der nicht dargestellt wird. zum beispiel 0110 0111. nun wollen wir nur die letzten vier stellen haben, dann nehmen wir als zweiten operand 1111 0000 und somit haben wir nur die stellen vom ersten operanden, die wir sehen wollen. in der theorie für mich verständlich, nur weiss ich zum teufel nicht, was ich mit sowas anfangen soll in der realität.
 
Naja, wenn du ein Byte aus einer anderen Steuerung bekommst und in deinem Beispiel die letzten 4 Stellen eben bei einer 1 einen Alarm darstellen, kannst du hiermit mit einem Befehl alle "nicht alarme" eben Maskieren für das weitere Programm :)

In der µC-Programmierung ist das absoluter Standart. Beispiel:
Lade Adressregister XY, maskiere alle Bits außer den letzten beiden und setzte diese danach auf 0, dann schreibe das Adressregister wieder...

Dann hast du sehr einfach nur bestimmte Stellen geändert und alles anderen so gelassen wie es war ;)

MfG Fabsi
 
hallo fabpicard. deine antwort leuchtet mir ein, aber so ist es mit den ganzen sps weiterbildungen, man kriegt nie ein beispiel aus einer praxis relevanten sache. ich weiss, dass man maskiert und nur bestimmte stellen erhält und so weiter, aber mir fehlt die praxisanwendung. wenn jemand mir das an einem beispiel erklärt, zum beispiel, es gibt drei motoren, die alle an und aus gehen und drei stunden arbeiten, wenn der motor dies macht, der andere aber dies machen soll, dann soll dies und jenes passieren und dann kommt die maskierung ins spiel. aber ohne ein praxisbeispiel werde ich in der praxis niemals wissen, wann ich eine maskierung einsetzen soll. auch im gesamten internet findet man nur theorie, nirgends was praktisches. ich kann mir echt vorstellen, dass siemens alle praxisbeispiele aus dem gesamten internet löscht, damit man immer an ihre weiterbildungen gebunden ist ;) loooooooooool.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also hier hätte ich ein Praxisbeispiel.
Ich benutze das maskieren z.B. bei einem Baustein für Störungsauswertungen. Angenommen ich habe ein Störwort das aus einem Maschinenbaustein kommt und Störmeldungen auf der Visu triggern soll. In dem Wort sind, mal angenommen die Bits 10111011 für Störungen aktiv. Der Baustein prüft nun ob das Störwort ungleich 0 ist und gibt im Fall dessen ein Störungsbit raus, welches ich im Rest des Programms benutzen kann.
Aber z.B. sollen die Bits 7 und 8 das Störungsbit nicht setzen, weil sie nur für Warnungen stehen die auf der Visu getriggert werden sollen, aber die Warnungen natürlich das Störungsbit nicht setzen sollen. Also maskiert man in der Auswertung die beiden Bits.
 
Bits eines Words abfragen
Code:
L #MyWord
UW W#16#80 //Bit .7 maskieren
U <>0
= #MyBit
Bits in ein Word kopieren
Code:
      L 0
      U #I0
      SPBN Bit1
      OW W#16#01
Bit1: U #I1
      SPBN Bit2 
      OW W#16#02
... 
Bit7: U #I7 
      SPBN OutB 
      OW W#16#80
OutB: T #RET_VAL

Harald
 
Zurück
Oben