Beitragstyp: FAQ, Beitrags-ID: 9125571, Beitragsdatum: 29.08.2002
(0)
Bewerten

Eingabe einer S5TIME" -Variablen in ProTool/Pro für die Versorgung eines Timers in der SIMATIC-Steuerung

  • Beitrag
  • Betrifft Produkt(e)

FRAGE:
Wie kann ich in Protool/Pro eine Variable vom Typ "S5TIME" eingeben, um damit in der SIMATIC-Steuerung einen Timer zu versorgen?

ANTWORT:
Weitere Informationen zum Thema S5-Timer und Verwendung von Skripten finden Sie auch in folgenden Beiträgen:

  • "Darstellung einer S5TIME-Variable mit ProTool/Pro", Beitrags-ID 9123496 
  • "Direkteingabe von ProTool/Pro  S5 Timerwerte", Beitrags-ID 947095.

Der Datentyp "S5TIME" besteht aus einer Zeitbasis und einem Zeitwert im Bereich von 0 bis 999 (siehe Beitrags-ID 56243). In Protool /Pro soll die Eingabe in Stunden, Minuten, Sekunden und Millisekunden erfolgen. Diese Eingabe muss anschließend gewandelt werden, so dass der Wert als "S5TIME" zur Versorgung eines Timers in der Steuerung verwendet werden kann.

Im beigefügten Projekt ist ein Skript enthalten, welches als Eingangsparameter Stunde, Minute, Sekunde und Millisekunde einliest. Der Rückgabewert der Funktion ist ein Datenwort vom Type "S5TIME".

Die Verwendung dieses Skriptes sollte folgendermaßen erfolgen:

  1. Sie definieren sich 4 Variablen (z.B. "HH", "MM", "SS" und "MS").
  2. Sie verknüpfen diese Variablen mit 4 Eingabefeldern, in die Sie die Werte für Stunden, Minuten, Sekunden bzw. Millisekunden eingeben können.
  3. Sie definieren eine Variable vom Typ "WORD"(z.B. "S5T"). Dies ist der "S5TIME"-Wert zur Versorgung des Timers in der Steuerung
  4. Jetzt definieren Sie einen Button, der das Skript aufruft. Sie übergeben an die Funktionsparameter die definierten Variablen (wobei der Rückgabewert in "S5T" geschrieben wird).

Das Script prüft den eingegebenen Wert und passt die Zeitbasis an. Der Wert wird auf den maximal möglichen Wert von 9990s oder 2h46m30s begrenzt.

Funktionsweise des Skriptes:
Der eingegebene Wert wird zunächst in Millisekunden umgerechnet. Dann wird er auf 9990s begrenzt.
Im Anschluss daran wird geprüft, welche Zeitbasis zu verwenden ist. Diese wird in Bit12 und 13 des Ergebniswortes geschrieben.
Im Skript wird anschließend der Zeitwert ermittelt. Dieser Zeitwert wird in Bit 0-11 des Ergebniswortes BCD-codiert abgelegt.

Quelltext des Skriptes:
Dim Gesamtzeit, Ergebnis
Dim Stelle1, Stelle2, Stelle3

Gesamtzeit = Millisekunde + 1000*Sekunde + 60000*Minute + 3600000*Stunde

If Gesamtzeit > 9990000 Then Gesamtzeit = 9990000

If Gesamtzeit > 999000 Then
Ergebnis = 12288
Stelle1 = Fix(Gesamtzeit/1000000)
Gesamtzeit = Gesamtzeit - Stelle1*1000000
Stelle2 = Fix(Gesamtzeit/100000)
Gesamtzeit = Gesamtzeit - Stelle2*100000
Stelle3 = Fix(Gesamtzeit/10000)
Gesamtzeit = Gesamtzeit - Stelle3*10000
ElseIf Gesamtzeit > 99900 Then
Ergebnis = 8192
Stelle1 = Fix(Gesamtzeit/100000)
Gesamtzeit = Gesamtzeit - Stelle1*100000
Stelle2 = Fix(Gesamtzeit/10000)
Gesamtzeit = Gesamtzeit - Stelle2*10000
Stelle3 = Fix(Gesamtzeit/1000)
Gesamtzeit = Gesamtzeit - Stelle3*1000
ElseIf Gesamtzeit > 9990 Then
Ergebnis = 4096
Stelle1 = Fix(Gesamtzeit/10000)
Gesamtzeit = Gesamtzeit - Stelle1*10000
Stelle2 = Fix(Gesamtzeit/1000)
Gesamtzeit = Gesamtzeit - Stelle2*1000
Stelle3 = Fix(Gesamtzeit/100)
Gesamtzeit = Gesamtzeit - Stelle3*100
Else
Ergebnis = 0
Stelle1 = Fix(Gesamtzeit/1000)
Gesamtzeit = Gesamtzeit - Stelle1*1000
Stelle2 = Fix(Gesamtzeit/100)
Gesamtzeit = Gesamtzeit - Stelle2*100
Stelle3 = Fix(Gesamtzeit/10)
Gesamtzeit = Gesamtzeit - Stelle3*10
End If

Ergebnis = Ergebnis + Stelle1*256
Ergebnis = Ergebnis + Stelle2*16
Ergebnis = Ergebnis + Stelle3

S5Time = Ergebnis

Das Skript als Download:
Der Download enthält das oben beschriebene Skript. Kopieren Sie die Datei " pro___0l.exe" in ein separates Verzeichnis und starten Sie die Datei anschließend per Doppelklick.

  pro___0l.exe ( 39 KB )  

Wichtig:
Bei den Programmbeispielen handelt es sich um ausgewählte Lösungsvorschläge zu Anfragen mit komplexen Aufgaben, die im Customer Support erarbeitet wurden. Wir weisen außerdem darauf hin, dass es nach dem Stand der Technik nicht möglich ist, Fehler in Softwareprogrammen unter allen Anwendungsbedingungen auszuschließen. Die Programmbeispiele wurde nach bestem Wissen erstellt. Eine Haftung die über die übliche Gewährleistung für Software der Klasse C entsprechend unseren "Allgemeinen Bedingungen für die Überlassung von Softwareprodukten für Automatisierungs- und Antriebstechnik" hinaus geht, können wir jedoch nicht übernehmen.

Suchbegriffe:
Objektorientierte Programmierung, Zeitumrechnung, Timerversorgung