Zählerzeit extern

SPS_NEU

Level-2
Beiträge
567
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe einen Timer auf meiner S7 und will die Zeit durch einen Datenbaustein ändern. Dort gebe ich als Variable das Format TIME an. Sobald die Zeit großer als 0 wird gibts einen SF auf der SPS. Wo liegt mein Fehler?

Die Daten im Datenbaustein werden durch einen OPC-Server geändert. Dort hat die Variable das Format INT32
 
Timer

dann wähle das passende Datenformat. Wenns dein OPC-Server nicht kann musste in der SPS wandeln oder nen anderen Timer nehmen.

Nachtrag: S7 Timer = IEC-Timer?

André
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich die Werte Online im Datenbaustein sehe, steht dort schon richtig "T#500ms"

Ich lade die Zeit dann mit "L db1.dbd4"

Ist das so richtig?


Ich sehe gerade: ES IST S5-Timer (z.B.: S5T#500)
 
Zuletzt bearbeitet:
Hallo,

ich vermute mal Dein Code sieht so aus:
Code:
L db1.dbd4
SE T1

Das wird nicht funktionieren. Du musst entweder den Zeitwert mit dem FC 40 wandeln,
Oder Du arbeitest mit den SFB 3, 4, 5

Grüße
Gebs
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nochn Tip:

1. Timer arbeiten bei S7 nur mit 16 Bit also: L ... DBW 4 statt DBD.
2. Solche Fehler bekommt man über Zielsystem -> Diagnose-> Baugruppenzustand -> Diagnosepuffer-> Hilfe zu Ereignis raus.

 
Zuletzt bearbeitet:
Code:
Call FC 40
  IN: #Variable1 // als TIME deklariert
  Ret_Val: #Variable2 // als S5Time deklariert

L #Variable2
SE T1

Der FC 40 ist in der Standard-Bibliothek bei den IEC-Funktions.

Grüße
Gebs
 
Also Fehler kommen nicht mehr. Aber der FC40 gibt immer 0 aus. Ich gebe im TIME-Format T#2S rein und nur 0 kommt wieder raus
 
TIME und S5Time werden jeweils nur WORD-weise von den Timern verarbeitet, da sie nur bis 999 (12Bit) als Zahlwert im BCD haben.
 
Zuletzt bearbeitet:
Zurück
Oben