Step 7 Timer / S5T

Tom_Tom

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
bin recht neu im Forum und das ist meine erste Frage :smile:

Habe heute ein Programm abgeändert, wollte dort eine Zeit einfügen und mal was anderes Probieren.
Mein erster "Versuch" war dieser:

UN M 20.0
L T#25M
SE T 51
BLD 130
U T 51
BLD 130
R "Startmerker Z10.1"


Leider ist mir dabei die CPU auf Störung gegangen, da diese den Baustein nicht mehr laden konnnte.:???:
Wenn die Zeit unter 32s lag wurde es in den Akku geladen, ab 33s nicht mehr.:confused:

Ich habe dann einfach den Timer mit einer S5-Zeit ersetzt, so wie ich es sonst immer mache und dann ging es:

UN M 20.0
L S5T#25M
SE T 51
BLD 130
U T 51
BLD 130
R "Startmerker Z10.1"

Meine Frage ist jetzt, was ist der Unterschied zwischen dem Timer (T) und dem S5-Timer (S5T), ich dachte das diese von der Funktion her gleich wären.
Die CPU ist eine 313C.

Danke schon mal im vorraus, konnte auch über die SuFu nicht's passendes Finden.

Tom_Tom
 
Hallo,
du "schmeisst" hier zunächst gleich ein paar Dinge durcheinander.
Das Erste ist der Datentyp. Es gibt da TIME (Datenbreite 32 Bit - ist in Millisekunden skaliert), der NICHT zu einem S5Timer passt/dazugehört. Dann gibt es noch den Datentyp S5Time oder S5T (Datenbreite 16 Bit - ist BCD-Codiert + Multiplikator), der zu einem S5Timer gehört.

Dann gibt es die S5Timer, den du ja schon kennst und einsetzt. Darüber hinaus aber auch die IEC-Timer (SFB3 - 5), die mit dem Datentyp TIME arbeiten.
Vielleicht einfach dazu auch mal die Step7-Hilfe bemühen ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für deine schnelle Antwort Larry :D

Gut, dass "Time" etwas anderes als ein "S5-Timer" ist, hatte ich schon verstanden. Habe mich vielleicht etwas schlecht ausgedrückt :ROFLMAO:
Das eingentlich Problem war ja, ob ich diesen genau so verwenden kann, wie die S5Time.
Ich dachte nur, dass die Funktion komplett die gleiche wäre, ich also die Zeit wie beim S5 Timer einfach rein Schreiben kann, so wie ich es oben im Programm als Beispiel vorgezeigt hatte.
Da die Skalierung jedoch bei "Time" in Milisekunden ist und ich somit bei ca. 32s begrenz bin (habe ich das so richtig verstanden? Was mir mein Problem somit auch erklärt), ist er also für meine Zwecke leider nutzlos, zumindest an der Stelle.
Genau darum ging es mir ja. (Die Step7-Hilfe hatte mich da schon nicht so wirklich weiter gebracht, deswegen habe ich es ja hier versucht)

Grüße
Tom :)
 
Hallo Tom_Tom, willkommen hier. :p
Da die Skalierung jedoch bei "Time" in Milisekunden ist und ich somit bei ca. 32s begrenz bin (habe ich das so richtig verstanden?
Nein, TIME ist ein DINT-DatenTyp

Grundkurs Anwendung S7-Hilfe:
  1. Öffne deinen Baustein im KOP/FUP-Editor
  2. Setzte deinen Cursor auf irgendeinen AWL-Codeteil oder markiere irgendeinen KOP-FUP-Block (Dann wir die Hilfe spezifischer)
  3. F1 drücken
  4. In der Hilfe den Button "Index" drücken
  5. In der Suchzeile das Wort "Datentyp" eingeben, dann kommen die Hilfe-Einträge für die einzelnen Datentypen.
  6. Lies den Eintrag "Datentyp S5TIME"
  7. Lies den Eintrag "Datentyp TIME"

Das erklärt mehr als hier in 1000 Worte passt.
 
Meine Frage ist jetzt, was ist der Unterschied zwischen dem Timer (T) und dem S5-Timer (S5T), ich dachte das diese von der Funktion her gleich wären.
Die Timer SFB3 - 5 (TP, TON, TOF) sind Softwaretimer, die über einen System-Funktionsbaustein zur Verfügung gestellt werden. Diese Funktionsbausteine sind zum Einen multiinstanzfähig bzw. mehrfach mit verschiedenen Parametern aufrufbar und zum Anderen werden (wie bei jedem anderen FC/FB) die Ausgänge nur verändert, wenn der Timer aufgerufen wird.
Die Zeit wird, wie bereits angegeben, im Format TIME mit der Bit-Anzahl eines DWORDs angegeben. Die Zeitbasis ist immer 1ms.

Die S5Timer sind Hardwaretimer. Die Timer selbst sind nicht multiinstanzfähig bzw. mehrfach mit verschiedenen Parametern aufrufbar. (Man kann als Kompromiss die Timer-Nummer über die Bausteinschnittstelle übergeben, um so den FC/FB einigermaßen MI-fähig bzw. mehrfach aufrufbar zu halten, in dem man je Aufruf einen anderen Timer verwendet. Bei größeren Schachtelungstiefen gibt es da aber trotzdem schnell Probleme.)
Die Timer werden zwar (meist) über den Zyklus gestartet, laufen dann aber asynchron zu diesem. Sie können daher den Zustand ihrer Ausgänge irgendwo im Zyklus ändern und nicht nur an der Aufrufstelle. In der Praxis gibt dies oft Probleme, wenn die Ausgänge der Timer mehrfach direkt im Zyklus abgefragt werden. Wenn diese Asysnchronität nicht erwünscht ist, kann man diese umgehen, in dem man den Timer-Zustand an der Aufrufstelle an eine Variable übergibt und im restlichen Zyklus nur diese Variable abfragt.
Die Zeit wird im Format S5Time in der Bitanzahl eines WORDs angegeben. Im ersten Halbbyte steht die Zeitbasis und in den anderen 3 Halbbytes der Zeitfaktor von 0 bis 999. Je nach Zeitangabe entstehen unterschiedliche Zeitbasen und ermöglichen somit andere Zeitspannen und Zeitgenauigkeiten. Bei einer großen Zeitbasis kann man z.B. die Zeit nicht mehr millisekundengenau angeben.
S5timer sind nicht IEC-konform. Sie sind nicht mehr in allen neuen SPSen von Siemens (z.B. der S7-1200) enthalten.
 
was willst du daran kalibrieren?
wenn dir der timer nicht genau genug ist käme evtl ob35 in betracht
 
Hi Volker,
Habe ein Prüfgerät mit ner S7 darin.
nun soll das Prüfgerät Kalibriert werden. Nachweislich auch die Zeit laut Auditor.
In meinem Fall sind es S5-Timer.

Gruß Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie soll man ein Timer kalibrieren ?
Egal ob S5-Timer, oder IEC-Timer, dann läuft der Zeit ohne das man was justieren kann.

Man kann den verlaufene Zeit in ein zwischen-Variabel kopieren, und dann mit ein kalibrier-Faktor multipliziren.
Ich wurde aber nicht ein S5-Timer dafür verwenden, da den verlaufene Zeit nur 3-stellig ist.
Mit ein IEC-Timer hat man ein 32-bit TIME Wert womit man eine bessere Genauigkeit hat.

Aber irgendwie hört es sich verdächtig an.
 
Wenn es gibt ein Signal oder ein Bewegung das man mit ein Sensor abtasten kann, dann diesen Signal mit ein separaten (kalibrierten) Timer registrieren.
Dann mit der Timerwert von das SPS Program vergleichen.
Und dann stimmen sie hoffentlich miteinander überein !
:rolleyes:

Oder wenn du den Möglichkeit hast, den start und stop von das Prüfgerät durch ein eksternen und kalibrierten Timer steuern.
 
also die s5-timer laufen unabhängig vom zyklus. es wird also passieren, dass ein s5-timer seinen zustand 0/1 irgendwo im zyklus wechselt.
wenn du die zykluszeit vernachlässigen kannst, kann ich sagen die s5t sind schon recht genau.
geht es hier um milisekunden?

du könntest probieren.
mit pos-flanke start des s5t speicherst du die systemzeit. wenn s5t abgelaufen speicherst du die systemzeit.
differenz bilden und gucken. wie lange die zeit war.
ACHTUNG. hier ist die zykluszeit relevant wenn es in normalen programm läuft
 
Es ist alles eine Frage der geforderten Genauigkeit. Wie genau soll es denn werden (für den Auditor) ?
Du hast bei JEDER im Zyklus verwendeten Verzögerung (ob nun S5Timer oder IEC-Timer) immer die Zykluszeit als unkontrollierbare Variable mit darin - das macht das Ganze schon mal ungenau. Willst du aus der Nummer raus dann ginge das (mit entsprechender Disziplin beim Programmieren) mittels der Zeit-OB's (z.B. OB35).

Vielleicht schreibst du doch mal "etwas" mehr zu deinem "Projekt" ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gibt's eigentlich irgendwo Angaben wie viel ein S5-Timer zb. über seine max. Laufzeit von 2h+ typischerweise abweicht, bzw. wieviel der TIME-Ticker so über 24h abweicht.
Bei den CPU-Daten gibts eigentlich nur die Angabe für die Systemzeit: typ: 2s/Tag max. 10s/Tag.

Wäre mal interessant.
 
@Ronin:
ich denke mal, das die Timer aus dem gleichen Zeit-Modul kommen - also auch die gleichen Abweichungen haben können (+/- Bearbeitungszeit und drum-herum)
 
Zurück
Oben