S7-300 Variable Zeit programmieren

Gerhard-Sauter

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
SPS S7-300/CPU313
STEP 7 V5.1 + SP6

Hallo zusammen,

ich habe über das Programm eine Variable berechnet, die ich nun als Wert einem Timer, z.B.: Einschalt-Verzögerung, übergeben will, wie realisiere ich dies?
 
Hallo,

welches Format hat denn die Variable?

Der Tatentyp S5Time ist ja als BCD Zahlenwert zu sehen.
Der Aufbau des Datentyp S5Time in der S7 ist gleich wie in S5, nur die darstellung als Anweisung hat sich geändert.
S5Time belegt 16 Bit. Diese 16 Bit werden in 4 BCD Dekaden zerlegt.
Jede Dekade besteht aus 4 Bits.
Die ersten 3 Dekaden geben den Zeitwert an.Die letzte Dekade gibt das Zeitraster an.Zeitraster mal Zeitwert=Zeitdauer
Beispiel 350ms

Aufbau 4 Dekaden
0000 0000 0000 0000

L S5T#350ms
0000 0000 0011 0101 oder als Hex W#16#0035 oder
als 16 Bit Festpunktzahl 53
0000=Zeitraster 10ms
0000=3.Dekade Wert 0
0011=2.Dekade Wert 3
0101=1.Dekade Wert 5
==>10ms*35=350ms

Zeitrastercodiereungen:
0000=10ms
0001=100ms
0010=1s
0011=10s

Der Datentyp S5Time kann einen Wert bis 999*10S annehmen.
=>9990s==>2h46m30s==>W#16#3999==>14745==>0011 1001 1001 1001

Jetzt mußt du nur noch deinen Wert der Variable so umwandeln, bis du die gewünschte Zeitdauer erhällst.

Gruß
Christian
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
wenn du das wa sdu berechnet hast in z.B MW100 reinschreibst musst du M100.5 auf 1 setzen und M100.4 auf 0 damit du als Zeitbasis 1 s hast ein

für ein SE würde es dann so aussehen

U E0.0
L MW 100
SE T1


mehr infos findest du in der hilfe wenn du nach S5Time suchst
 
Zuletzt bearbeitet:
Zurück
Oben