Waelder
Level-2
- Beiträge
- 964
- Reaktionspunkte
- 117
-> Hier kostenlos registrieren
Morgen miteinander,
ich hab ein Baustein (FB) gemacht, der eine Statusanzeiger liefern soll. Die Statusanzeige ist ein Integer.
Die Werte des Integers sind 0 1 2 4 8 16 32 64 128 usw. D.h. Je 1 bit = ein Status usw.
Nun habe ich mir gedacht wenn ich den Integer Indirekt im FB aufrufe kann ich die Bits einzeln im FB ansprechen. Beim aufruf des FBs als Multiinstanz geht das beim ersten Baustein aber alle anderen haben "0" als Status . Das geht mir nicht in den Kopf. Was habe ich da übersehn ?
PS: die verknüfpungen sind in dem Beispiel uninteressant.......
ich hab ein Baustein (FB) gemacht, der eine Statusanzeiger liefern soll. Die Statusanzeige ist ein Integer.
Die Werte des Integers sind 0 1 2 4 8 16 32 64 128 usw. D.h. Je 1 bit = ein Status usw.
Nun habe ich mir gedacht wenn ich den Integer Indirekt im FB aufrufe kann ich die Bits einzeln im FB ansprechen. Beim aufruf des FBs als Multiinstanz geht das beim ersten Baustein aber alle anderen haben "0" als Status . Das geht mir nicht in den Kopf. Was habe ich da übersehn ?
PS: die verknüfpungen sind in dem Beispiel uninteressant.......
Code:
L P##Status //Integer aus Stat variable
LAR1
U #DRIVE_ON
= [AR1,P#1.0] //1 grün
U #LOCAL_HAND_SW
UN #REMOTE_AUTO_SW
UN [AR1,P#1.0] //1 grün
UN [AR1,P#1.6] //lila
UN [AR1,P#1.7]
UN [AR1,P#1.3]
= [AR1,P#1.2] //4 gelb
U #ErrorField
UN [AR1,P#1.6] //lila
UN [AR1,P#1.7]
= [AR1,P#1.3] //8 grau
UN #INTERLOCK
UN [AR1,P#1.7]
= [AR1,P#1.6] //64 lila
O #ErrorDrive
O #ErrorMMC
= [AR1,P#1.7] //128 rot