Auf Bit aus MD input im FB zugreifen

hbck

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

Frage Nr.2 von mir :)

Ich parametriere einen FB von aussen mit einem MD "MD-Input" . Im FB selber will ich nun auf die einzelnen Bits zugreifen. Wie mache ich das, wenn ich jetzt z.B. an Bit 3 rankommen möchte. Muss ich "MD-Input" erst in ein zusätzliches MD laden, wie hier:

L #MD-Input
T MD0

U M0.0
U M0.2
= A0.0


MfG Jan
 
FB/Bits

Hi,
ja, aber nimm Lokaldaten(LD0) anstatt Merker, das ist die richtige
Implementierung.

Vladi
 
Mir persönlich gefällt folgender Programmcode am besten.

Bei einer eventuellen Erweiterung der Lokaldatentabelle muss der Programmcode nicht verändert werden.

Code:
// Netzwerk 1
 
      L     P##IN_DWORD                 // Zeiger mit Bereichskennung
      LAR1  
 
      U      [AR1,P#0.0]                // Bit 0.0
      =     #IN_BIT00
 
      U      [AR1,P#0.7]                // Bit 0.7
      =     #IN_BIT07
 
      U      [AR1,P#1.0]                // Bit 1.0
      =     #IN_BIT10
 
      U      [AR1,P#1.7]                // Bit 1.7
      =     #IN_BIT17
 
      U      [AR1,P#2.0]                // Bit 2.0
      =     #IN_BIT20
 
      U      [AR1,P#2.7]                // Bit 2.7
      =     #IN_BIT27
 
      U      [AR1,P#3.0]                // Bit 3.0
      =     #IN_BIT30
 
      U      [AR1,P#3.7]                // Bit 3.7
      =     #IN_BIT37
 
// Netzwerk 2
 
      U     #IN_BIT00                   // Bit 0.0
      =     #OUT_BIT00
 
      U     #IN_BIT07                   // Bit 0.7
      =     #OUT_BIT07
 
      U     #IN_BIT10                   // Bit 1.0
      =     #OUT_BIT10
 
      U     #IN_BIT17                   // Bit 1.7
      =     #OUT_BIT17
 
      U     #IN_BIT20                   // Bit 2.0
      =     #OUT_BIT20
 
      U     #IN_BIT27                   // Bit 2.7
      =     #OUT_BIT27
 
      U     #IN_BIT30                   // Bit 3.0
      =     #OUT_BIT30
 
      U     #IN_BIT37                   // Bit 3.7
      =     #OUT_BIT37
 
// Netzwerk 3
 
      L     P##OUT_BIT00                // Zeiger mit Bereichskennung
      LAR1  
 
      L     D [AR1,P#0.0]                  // DWORD    
      T     #OUT_DWORD

Gruß Kai
 

Anhänge

  • OB1.pdf
    3,3 KB · Aufrufe: 14
  • FC10.pdf
    6,5 KB · Aufrufe: 15
Ich mache das auch immer so wie Kai mit indirekter Adressierung.
Ich finde das besser und Übersichtlicher als mit den Lokalvariablen und wie gesagt wenn du eine Variable in den Lokaldaten anlegst dann kanns sein das du unabsichtlich den selben Bereich belegst usw..

godi
 
Zurück
Oben