L p##in_zu // Pointer auf Variable laden
LAR1 // Pointer ins AR1-Register
Ich schätze das ich einen "U" oder "UN" abruf von ein pointer bit nicht machen kann...
L p##in_zu
LAR1
U [COLOR=red]in_zu[/COLOR][AR1,P#0.0] //oder wie auch immer deine [COLOR=red]IN [/COLOR]Variable auch heißt
UN [COLOR=red]i[/COLOR][COLOR=red]n_zu[/COLOR][AR1,P#1.0] //die IN deines Bausteines
IN:
EB1 Byte
EB2 Byte
Bitpos1 Byte
Bitpos2 Byte
//Status Bit x aus Eingangsbyte 1 lesen
L #Bitpos1 //Bitposition zwischen 0 und 7
L 1
SLW //Zahl 1 um Bitposition nach links verschieben Ergibt Zahlen 1,2,4,8,16,32,64,128
L EB1
UW //UND-WORT mit der entsprechenden Zahl mit dem Eingangsbyte
L 0
>I //Wenn die Enstehende Zahl größer null dann Bit = 1
= #Status_Bitaus_EB1
wenn weder zu noch offen ist soll halt durch ein merker byte bei mir mb3 (in der normalen version) das dazugehörige bit gesetzt werden
L EB0
L EB1
OW
INVI
T MB3 //Schon steht in MB3 welches Ventil weder offen noch zu ist
L P##zustand_zu
LAR1 //*1 Jetzt hast du die Adresse von zustand_zu im AR1
L 8
next: T #zaehler
// Schleife
L #zaehler //Hier schreibst du den Zählerstand in AR1
L 1
-I
LAR1
//Überprüfen ob der Sperrhahn offen ist
L P##zustand_zu //Hier überschreibst du den Inhalt von AR1 wieder mit der Adresse von zustand zu
LAR1
U [AR1,P#0.0] //Bitoperation
UN [AR1,P#1.0] //Bitoperation
T #merker_auf //Wortoperation (kann nicht hinhauen oder)
SPB ende
usw....
IN: zustand_auf Type: Byte
IN: zustand_zu Type: Byte
OUT: merker_auf Type: Byte
merker_zu Type: Byte
merker stoe Type: Byte
Temp: zust_auf_temp Type: Byte
Temp: zust_zu_temp Type: Byte
Temp: merk_auf_temp Type: Byte
Temp: merk_zu_temp Type: Byte
L zustand_auf
T zust_auf_temp
L zustand_zu
zust_zu_temp
U L0.0
UN L1.0
= L3.0
U L0.1
UN L1.1
= L3.1
usw...
L merk_auf_temp
T merker_auf
L merk_zu_temp
T merker_zu
FUNCTION_BLOCK FB 1
TITLE =
AUTHOR : Micha
VERSION : 0.1
VAR_INPUT
ZUSTAND_AUF : BYTE ;
ZUSTAND_ZU : BYTE ;
END_VAR
VAR_OUTPUT
QOFFEN : BYTE ;
QZU : BYTE ;
QSTO : BYTE ;
END_VAR
VAR_TEMP
tiLC : INT ;
END_VAR
BEGIN
NETWORK
TITLE =
LAR1 AR2;
L P##ZUSTAND_AUF;
+AR1 ;
L 8;
L1: U DIX [AR1,P#0.0];
UN DIX [AR1,P#1.0];
= DIX [AR1,P#2.0]; //RM Auf
UN DIX [AR1,P#0.0];
U DIX [AR1,P#1.0];
= DIX [AR1,P#3.0]; //RM Zu
UN DIX [AR1,P#0.0];
UN DIX [AR1,P#1.0];
= DIX [AR1,P#4.0]; //Störung
+AR1 P#0.1;
LOOP L1;
END_FUNCTION_BLOCK
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?