Ich habe da ein paar Verständnisschwierigkeiten u.A. bezüglich einiger Zeiteinstellungen und in TC2 und hoffe meine verschiedenen Anliegen irgendwie verständlich machen zu können.
In der PLC kann ich in der Taskkonfiguration eine Zykluszeit einstellen, bis zu 1ms klein. Das ist die Zeit in der meine Anweisungen im MAIN zyklisch abgearbeitet werden. Also Prozessabbild der Eingänge lesen, Anweisungen der PLC abbarbeiten und nach 1ms das Prozessabbild der Ausgänge beschreiben.
Die Zeit die benötigt wird um alle Anweisungen abzuarbeiten hängt vom Umfang des Programms ab, muss aber insgesamt unter 1ms liegen (was passiert wenn das Programm so umfangreich ist, dass die Zykluszeit nicht ausreicht?)
Nachfolgender Code erläutert mein Verständnisproblem:
Zyklisch nach Ablauf des 10 ms Timers soll über die Funktion F_Trace ein Ausgabe in der Loggeransicht des TC System Managers erfolgen, parallel dazu wird ein Zähler i hochgezählt.
Die Ausgabe erfolgt allerdings alle 12ms:
...
Hint TCPLC.PlcAuxTask (801) 05.02.2018 14:36:09 859 ms 72 Hallo
Hint TCPLC.PlcAuxTask (801) 05.02.2018 14:36:09 847 ms 60 Hallo
Hint TCPLC.PlcAuxTask (801) 05.02.2018 14:36:09 835 ms 48 Hallo
Hint TCPLC.PlcAuxTask (801) 05.02.2018 14:36:09 823 ms 36 Hallo
Hint TCPLC.PlcAuxTask (801) 05.02.2018 14:36:09 811 ms 24 Hallo
Hint TCPLC.PlcAuxTask (801) 05.02.2018 14:36:09 799 ms 12 Hallo
...
Jetzt dachte ich, dass das eventuell etwas damit zu tun haben könnte, dass der ADSLOGSTR Befehl über eine Funktion aufgerufen wurde aber selbst wenn ich den Befehl direkt im MAIN aufrufe dauert es 12 ms. Wo kommen die 2ms, also noch die 2 zusätzlichen Zyklen her? Das würde zudem bedeuten, dass die Befehle nicht alle im selben Zyklus ausgeführt werden, da der i Zähler ja weiter hochzählt wird während die Ausgabe noch nicht erfolgt ist :confused:
Die Wandlungszeit einer el3164 Klemme beträgt laut Datenblatt 100µs. Mit einer minimalen PLC Zykluszeit von 1ms kann ich nur jeden 10. Wert einlesen, wozu der Aufwand bei der Schaltungsentwicklung bei den Klemmen wenn die PLC nur im 1ms Zyklus die Eingänge einlesen kann:confused:
Vielleicht hat das ja was mit der Basiszeit von bis zu 50µs im TC System-Manger zu tun? Auf die PLC Zykluszeit besitzt diese keinen Einfluss, wird damit die Zykluszeit eingestellt mit der die Beckhoff Serverprogramme für z.B. NC etc. die im TC System-Manger miteinander verknüpft werden untereinander kommunizieren?
Was nütz mir eine Basiszeit von 50µs im TC System Manager sonst wenn meine Zykluszeit der PLC wiederum 1ms beträgt:confused:
Das ganze ist vielleicht etwas sprunghaft und verworren aber so sieht es leider gerade in meinem Kopf aus :confused::confused::confused:
Ich hoffe auf hilfreiche Antworten, gerne auch weiterführende Links!
In der PLC kann ich in der Taskkonfiguration eine Zykluszeit einstellen, bis zu 1ms klein. Das ist die Zeit in der meine Anweisungen im MAIN zyklisch abgearbeitet werden. Also Prozessabbild der Eingänge lesen, Anweisungen der PLC abbarbeiten und nach 1ms das Prozessabbild der Ausgänge beschreiben.
Die Zeit die benötigt wird um alle Anweisungen abzuarbeiten hängt vom Umfang des Programms ab, muss aber insgesamt unter 1ms liegen (was passiert wenn das Programm so umfangreich ist, dass die Zykluszeit nicht ausreicht?)
Nachfolgender Code erläutert mein Verständnisproblem:
Code:
PROGRAM MAIN
...
i := i+1;
Flanke.IN := TRUE;
FLanke.PT := T#10ms;
IF Flanke.Q THEN
Flanke.IN := FALSE;
Text :=CONCAT(INT_TO_STRING(i),' Hallo');
F_Trace(Text);
END_IF
Flanke();
...
Code:
FUNCTION F_Trace
...
ADSLOGSTR( msgCtrlMask := ADSLOG_MSGTYPE_HINT OR ADSLOG_MSGTYPE_LOG, msgFmtStr := '%s', strArg := Trace_Msg);
...
Die Ausgabe erfolgt allerdings alle 12ms:
Zitat:
...
Hint TCPLC.PlcAuxTask (801) 05.02.2018 14:36:09 859 ms 72 Hallo
Hint TCPLC.PlcAuxTask (801) 05.02.2018 14:36:09 847 ms 60 Hallo
Hint TCPLC.PlcAuxTask (801) 05.02.2018 14:36:09 835 ms 48 Hallo
Hint TCPLC.PlcAuxTask (801) 05.02.2018 14:36:09 823 ms 36 Hallo
Hint TCPLC.PlcAuxTask (801) 05.02.2018 14:36:09 811 ms 24 Hallo
Hint TCPLC.PlcAuxTask (801) 05.02.2018 14:36:09 799 ms 12 Hallo
...
Die Wandlungszeit einer el3164 Klemme beträgt laut Datenblatt 100µs. Mit einer minimalen PLC Zykluszeit von 1ms kann ich nur jeden 10. Wert einlesen, wozu der Aufwand bei der Schaltungsentwicklung bei den Klemmen wenn die PLC nur im 1ms Zyklus die Eingänge einlesen kann:confused:
Vielleicht hat das ja was mit der Basiszeit von bis zu 50µs im TC System-Manger zu tun? Auf die PLC Zykluszeit besitzt diese keinen Einfluss, wird damit die Zykluszeit eingestellt mit der die Beckhoff Serverprogramme für z.B. NC etc. die im TC System-Manger miteinander verknüpft werden untereinander kommunizieren?
Was nütz mir eine Basiszeit von 50µs im TC System Manager sonst wenn meine Zykluszeit der PLC wiederum 1ms beträgt:confused:
Das ganze ist vielleicht etwas sprunghaft und verworren aber so sieht es leider gerade in meinem Kopf aus :confused::confused::confused:
Ich hoffe auf hilfreiche Antworten, gerne auch weiterführende Links!