Schrittkette, aber wie?

andretus

Level-1
Beiträge
22
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen.

Ich möchte eine einfache Schrittkette mit setzen/ rücksetzen zum befüllen und leeren einer Tankanlage mit 7 Schritten machen. Da ich den jeweiligen Schritt auf einem OP anzeigen will muß ich den jeweiligen Schritt für das OP als decimal Codiert im Merkerbyte ablegen. Die schritte werden aber ja nur durch das Merkerbyte durchgereicht. wie wandele ich dann diese Information um ???
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo andretus

hatte das "Problem" auch schon mal nur mit 30 Schritten hab den Baustein einwenig gekürzt !


FUNCTION_BLOCK FB 2
TITLE =Schrittanzeiger für max. 7 Schritte

AUTHOR : Perdun
FAMILY : Tool
NAME : Schritta
VERSION : 0.1


VAR_INPUT
Schritt1 : BOOL ;
Schritt2 : BOOL ;
Schritt3 : BOOL ;
Schritt4 : BOOL ;
Schritt5 : BOOL ;
Schritt6 : BOOL ;
Schritt7 : BOOL ;

END_VAR
VAR_OUTPUT
Schrittnummer : BYTE ;
END_VAR
BEGIN
NETWORK
TITLE =
//Ist kein Schritt angewählt, so wird Nr. 0 ausgegeben.
L 0;
T #Schrittnummer;

U #Schritt1; // Schritt1
SPBN ma1;
L 1;
T #Schrittnummer;
ma1: U #Schritt1;
SPB fert;

U #Schritt2; // Schritt2
SPBN ma2;
L 2;
T #Schrittnummer;
ma2: U #Schritt2;
SPB fert;

U #Schritt3; // Schritt3
SPBN ma3;
L 3;
T #Schrittnummer;
ma3: U #Schritt3;
SPB fert;

U #Schritt4; // Schritt4
SPBN ma4;
L 4;
T #Schrittnummer;
ma4: U #Schritt4;
SPB fert;

U #Schritt5; // Schritt5
SPBN ma5;
L 5;
T #Schrittnummer;
ma5: U #Schritt5;
SPB fert;

U #Schritt6; // Schritt6
SPBN ma6;
L 6;
T #Schrittnummer;
ma6: U #Schritt6;
SPB fert;

U #Schritt7; // Schritt7
SPBN ma7;
L 7;
T #Schrittnummer;
ma7: U #Schritt7;
SPB fert;


fert: NOP 0;
BE ;


END_FUNCTION_BLOCK



Gruß Guido
 
andretus schrieb:
Hallo zusammen.

Ich möchte eine einfache Schrittkette mit setzen/ rücksetzen zum befüllen und leeren einer Tankanlage mit 7 Schritten machen. Da ich den jeweiligen Schritt auf einem OP anzeigen will muß ich den jeweiligen Schritt für das OP als decimal Codiert im Merkerbyte ablegen. Die schritte werden aber ja nur durch das Merkerbyte durchgereicht. wie wandele ich dann diese Information um ???

Wieso änderst Du die nicht auf INT? Kann das OP denn keine Bytezugriffe? Wenn nicht, dann kopier doch den Bytewert in eine INT.

Oder bin ich auf dem total falschen Dampfer?

pt
 
Einfach so

// Schritt 0
l 0
l #Schrittzähler
==I

//Bedinungen

spb sch1
spa nex1

sch1: // Ausführung

l1
t #Schrittzähler
nex1:nop 0

// Schritt 1
l 1
l #Schrittzähler
==I

//Bedinungen

spb sch2
spa nex2

sch2: // Ausführung

l2
t #Schrittzähler
nex2:nop 0
 
Zurück
Oben