S7 Zeit 1ms Schritte realisieren

S

Straumann

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
:?: Hallo Zusammen

Wie kann ich bei der S7, bei einem Zeitbaustein einelne Millisekunden Schritte realisieren. Wenn ich S5T#28MS eingebe, rundet es das Programm auf den nächsten 10er Schritt, also 30 MS. Was muss ich eingeben um Millisekunden Schritte zu erreichen. ??

Daten zur CPU: Siemens CPU 416-2DP von dort aus mit Profibus zu WAGO-I0-Klemmen.
 
hallöchen

mal erstens eine dumme frage kommst du mit deiner zykluszeit unter 28 ms ???? denn sonst hast du schon mal ein erstes problem

da unsere liebe s7 noch immer mit bcd code ( s5time ) arbeitet rechnet sich die s7 ihre zeit selbst aus wie es ihr am besten gefällt

zusammensezung uhrzeit

dein Wort setzt sich so zusammen
BCD Code

FFFF 3333 2222 1111

1111 = 1 Stelle
2222 = 2 Stelle
3333 = 3 Stelle
FFFF = Faktor

1 - 3 gehen zahlen von 0 - 9
F setzt sich so zusammen

wenn 3 = 10 sek 2 = 1 sek 1 = 0,1 sek 0 = 0,01sek

zusammen rechnen von denn ganzen murks

Zahlenwert * Faktor und du hast deine zeit


zb

0000 0000 0000 0011

Faktor von 0 also 10 ms * 3 = 30 ms

also entweder du nimmst längere zahlen und du programmierst dir einen interrupt der genau nach 28 ms dein programm anhält und deine funktion aufruft


aber noch mal zum anfang ich glaub nicht das du mit der zykluszeit zurecht kommst bei 28 ms wenn schon ist deine cpu unterlastet
 
Zuviel Werbung?
-> Hier kostenlos registrieren
eine Alternative ist die Verwendung eines ZeitOB's. Dort das Prg realisieren...

Dadurch geht aber deine Gesamtzykluszeit zwar hoch, aber der Teil läuft mit 28 ms.
 
Hallo,
erst einmal würde ich die o.g. Aspekte wie Zykluszeit usw. berücksichtigen aber es gibt eine Möglichkeit einen Timer mit "Millisekunden Schritte" zu starten. Benutze einfach die IEC-Timer welche in jeder CPU als SFB3 (TP), SFB4 (TON) und SFB5 (TOF) hinterlegt sind. Diese Timer kannst du mit dem Datentyp Time mit einer Auflösung von einer ms starten.

MfG. Rayk :wink:
 
IEC-Timer:
Das nützt nicht viel, da das Programm den Timer in einem Zyklus z.B. noch nicht abgelaufen vorfindet. Wenn die Restzeit z.B 2ms wäre und die Zykluszeit 25 ms, wäre der Timer im nächsten Zyklus seit 23ms abgelaufen und die Gesamtzeit 28+23=51ms.
Da ist der zeitgetriggerte OB schon besser.
 
Hallo zusammen,

solche kurzen Zeiten lassen sich wunderschön mit unserer VIPA Speed7 realisieren. Da ist erstens mal die Zykluszeit viel kürzer, außerdem werden die IEC-Timer sehr schnell abgearbeitet. Für diesen Zweck kann auch der SFC64 Time_Tick (read ms Ticker) gut verwendet werden. Evtl. könnte auch der OB35 mit 1ms getriggert werden. Das würde die CPU aber belasten.

mfg. vipaner_112
 
Zurück
Oben