Probleme mit dem SFB4

Beiträge
21
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo an alle zusammen, ich habe ein kleines Problem und hoffe ihr könnt
mir helfen.
Ich habe folgendes Szenario, über ein Bedienpanel wird eine Zahl für eine Heizzeit eingeben (Zahl = Doppelwort), dieser Wert wird in einen DP geschrieben (auf einer 315 2DP) .Die Variable auf die dieser Wert abgelegt wird, ist vom Datentyp TIME. So weit so gut. Also ich gebe nun am Panel die Zeit 30 Sekunden vor --> in dem DP wird die 30 aber nicht als Sekunde sondern als Millisekunde angenommen --> also wenn ich 30 Sekunden haben möchte, müsste ich demnach 30000 eintragen. Das wäre auch nicht das Problem. Das Problem entsteht aber dann, wenn ich die Zeit auf dem PT Eingang des SFB4 lege. Dieser Eingang, kann mit Daten bis zu 65536 ms umgehen. Meine Frage jetzt wie bekomme ich es hin, das der Wert den ich im Panel eingebe, sofort als Sekunde angenommen wird und nicht als Millisekunde. Habe schon versucht den Anfangswert auf T#1s, und den Aktualwert auf T#1s einzustellen, aber dennoch wird der Wert als Millisekunden eingelesen.:confused:

Bin für jeden Tipp dankbar
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Eingang TIME ist 32 Bit kann also deutlich mehr als 65000 ms


Die Quick Variante:

Lokalvariable vom Typ TIME anlegen


L Wert_Panel
L 1000
*D
T TIME_SFB4

CALL SFB4, DB4
IN:
PT TIME_SFB4

Andere Möglichkeit die Eingabe im Panel entsprechen skalieren.
Wert Panel 0-1, Wert Steuerung 0-1000

Mfg
Manuel
 
OK stimmt

Sorry ich habe festgestellt, dass ich mein Problem anders hätte beschreiben sollen. Wie wandelt man ein Doppelwort in Time um, damit am Schluss T in Sekunden rauskommt
 
L "80Rezept-Aktuell-St1".Sollwert_Heizzeit // Doppelwort
T #Sollwert_in_Millisekunden

CALL #Heizzeit_St1
IN:="I301"
PT:=#Sollwert_in_Millisekunden
Q :=
ET:=#Restwert_t

L #Sollwert_in_Sekunden
L #Restwert_t
-I
T "80Rezept-Aktuell-St1".Restwert_Heizzeit

--> Wenn der Sollwert 65000 überschreitet, dann bekomme ich einen Überlauf.
Hab aber den Fehler gefunden, bei der Berechnung von "80Rezept-Aktuell-St1".Restwert_Heizzeit, muss ich -D machen und nicht -I. Sorry tut mir echt leid, aber manchmal sieht man das Bit vor lauter Siemens nicht
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hier steht es doch:

Der Eingang TIME ist 32 Bit kann also deutlich mehr als 65000 ms


Die Quick Variante:

Lokalvariable vom Typ TIME anlegen


L Wert_Panel
L 1000
*D

T TIME_SFB4

CALL SFB4, DB4
IN:
PT TIME_SFB4

Andere Möglichkeit die Eingabe im Panel entsprechen skalieren.
Wert Panel 0-1, Wert Steuerung 0-1000

Mfg
Manuel

Nachsatz aus der Siemens-OH:

Der Datentyp TIME wird als Ganzzahl mit Vorzeichen in Millisekunden als Zweierkomplement gespeichert.
 
Zurück
Oben