plc_tippser
Level-1
- Beiträge
- 2.493
- Reaktionspunkte
- 315
-> Hier kostenlos registrieren
Beitrag von Ralle:
s5t setzt sich aus 4 Werten zusammen
Das ganze steht in einen Wort
Bin : xxxx 3333 2222 1111
xxxx = Faktor 0 = 10 ms 1 = 100 ms 2 = 1s 3 = 10s
3333 3 Stelle vom BCD Code ( 0 - 9 )
2222 2 Stelle vom BCD Code ( 0 - 9 )
1111 1 Stelle vom BCD Code ( 0 - 9 )
das heist wenn du
Bin 0010 0000 0011 0111
x = 2
3 = 0
2 = 3
1 = 7
würde das bedeuten Zahlen wert 37 * Faktor von 1 sek = 37 sekunden
Bsp. 1:
L EW 0
L KH 0FFF <- vierte Tetrade ausblenden
UW
L KH 2000 <- Ziffer 2 speichern (2 = Sekunden)
OW
T MW10
Bsp. 2:
L 120
ITB
L W#16#2000
OW
T MW10
0000hex wären 10ms
1000hex wären 100ms
2000hex wären 1s
3000hex wären 10s
Hier noch ein Baustein von unserem User OHGN:
s5t setzt sich aus 4 Werten zusammen
Das ganze steht in einen Wort
Bin : xxxx 3333 2222 1111
xxxx = Faktor 0 = 10 ms 1 = 100 ms 2 = 1s 3 = 10s
3333 3 Stelle vom BCD Code ( 0 - 9 )
2222 2 Stelle vom BCD Code ( 0 - 9 )
1111 1 Stelle vom BCD Code ( 0 - 9 )
das heist wenn du
Bin 0010 0000 0011 0111
x = 2
3 = 0
2 = 3
1 = 7
würde das bedeuten Zahlen wert 37 * Faktor von 1 sek = 37 sekunden
Bsp. 1:
L EW 0
L KH 0FFF <- vierte Tetrade ausblenden
UW
L KH 2000 <- Ziffer 2 speichern (2 = Sekunden)
OW
T MW10
Bsp. 2:
L 120
ITB
L W#16#2000
OW
T MW10
0000hex wären 10ms
1000hex wären 100ms
2000hex wären 1s
3000hex wären 10s
Hier noch ein Baustein von unserem User OHGN:
Code:
FUNCTION FC 201 : VOID
TITLE =INT_to_S5 Time
//Einheit = 1->ms
//Einheit = 2->sek
//Einheit = 3->min
AUTHOR : Ne
FAMILY : WinCC
NAME : Int_S5T
VERSION : 0.1
VAR_INPUT
Einheit : BYTE ; //1=ms 2=s 3=min
END_VAR
VAR_OUTPUT
S5_Time : S5TIME ;
END_VAR
VAR_IN_OUT
IN : INT ;
END_VAR
BEGIN
NETWORK
TITLE =In- Wert muß im positiven Bereich liegen
//ist dies nicht der Fall, wandle in Pos. Zahl
L #IN;
L 0;
<I ;
SPBN noer;
TAK ;
NEGI ;
T #IN;
BEA ;
NETWORK
TITLE =Umrechnung wählen
//Soll der Integerwert Millisekunden, Sekunden oder Minuten entsprechen?
noer: L #Einheit;
L B#16#1;
==I ;
SPB ms; //springe zur Wandlung in ms
TAK ;
L B#16#2;
==I ;
SPB sek; //springe zur Wandlung in Sekunden
TAK ;
L B#16#3;
==I ;
SPB min; //springe zur Wandlung in Minuten
SPA sek; //bei allen anderen Eingaben in Sekunden wandeln
NETWORK
TITLE =IN- Wert in Millisekunden
ms: L #IN;
L 9990;
>I ;
SPB ms1;
TAK ;
L 10;
/I ;
ITB ;
T #S5_Time; //Zeitbasis 10 ms
BEA ;
ms1: L #IN;
L 100;
/I ;
ITB ;
OW W#16#1000; //Zeitbasis 100ms
T #S5_Time;
BEA ;
NETWORK
TITLE =In- Wert in Sekunden
sek: L #IN;
L 999;
>I ;
SPB sek1;
TAK ;
ITB ;
OW W#16#2000;
T #S5_Time; //Zeitbasis 1s
BEA ;
sek1: L #IN;
L 9990;
>I ;
SPB err1;
TAK ;
L 10;
/I ;
ITB ;
OW W#16#3000;
T #S5_Time; //Zeitbasis 10s
BEA ;
NETWORK
TITLE =In- Wert in Minuten
min: L #IN;
L 166;
>I ;
SPB err2;
TAK ;
L 6;
*I ;
ITB ;
OW W#16#3000;
T #S5_Time; //Zeitbasis 10s
BEA ;
NETWORK
TITLE =Eingabewerte zu groß
err1: L 9990; //größtmöglicher Eingabewert
T #IN; //für S5_Time in sek
BEA ;
err2: L 166; //größtmöglicher Eingabewert
T #IN; //für S5_Time in min
END_FUNCTION
Zuletzt bearbeitet von einem Moderator: