Zykluszeit: | aktuelle Zykluszeit in millisekunden |
Zykluszeit max: | maximale ermittelte Zykluszeit im millisekunden |
Zykluszeit µsec: | gemittelte Zykluszeit in microsekunden, Aktualisierungszeit ca. 3,5 sek. |
Zykluszeit Summe: | Zeit in millisekunden seit Programmstart |
I01 | enable IN | ||
I02 bis I04 | for later use | ||
IA01 | Basistakt für Taktmerker, bei 100ms (default) keine Eingabe erforderlich | ||
IA02 bis IA08 | Zeitvorgabe in ms für Sondertakt | ||
IA05 bis IA08 | Werte für Bitzähler (Doppelbelegung mit Sondertakt) | ||
Q01 | enable OUT | ||
Q02 bis Q05 | Sondertakt FLANKE (IA02 bis IA05) | ||
Q06 | Systemtakt | ||
QA01 | Byte01 | Bit01 bis Bit08 | Taktmerker BLINKER |
Byte02 | Bit01 bis Bit08 | Taktmerker FLANKE | |
Byte03 | Bit01 bis Bit08 | Sondertakt BLINKER (IA02 bis IA08) | |
Byte04 | Bit01 bis Bit08 | Sondertakt FLANKE (IA02 bis IA08) | |
QA02 | Byte01 | Bitsumme von IA05 | |
Byte02 | Bitsumme von IA06 | ||
Byte03 | Bitsumme von IA07 | ||
Byte04 | Bitsumme von IA08 | ||
QA03 | for later use | ||
QA04 | Word01 | aktuelle Zykluszeit in ms | |
Word02 | maximale Zykluszeit in ms | ||
QA05 | DWord | Zykluszeit in µsekunden (aktualisierungszeit ca. 3500ms) | |
QA06 | DWord | gibt die Zeit in ms seit Programmstart an. Erster Überlauf nach ca. 24 Tagen |
MW31 := MW31 + MW09; // summieren der Zykluszeit für den Taktmerker
while MW31 >= MB53 do // durlaufe die Schleife solange wie MW31 größer als die Vorgabe MB53
MW31 := MW31 - MB53; // subtrahiere den Vorgabewert von MW31
M36 := true; // MerkerByte 5 Bit 4 setzen damit die Frequenzposition beim Zählen übersprungen wird
M38 := true; // MerkerByte 5 Bit 6 setzen damit die Frequenzposition beim Zählen übersprungen wird
MB05 := MB05 + 1; // MerkerByte 5 um 1 erhöhen
if M425 or M426 or M427 then // Prüfen ob im MB54 ein überlauf der ersten 3 Stellen stattgefunden hat
MB54 := MB54 + 1; // wenn nein dann erhöhe MB54 um 1
else
M 427 := true; // wenn Überlauf, dann sind 5 Takte vergangen, setze das 3. Bit (Wert 4)
end_if;
M36 := M428; // kopiere das Bit (Basistakt* 5) von MB54 nach MB05
M38 := M429; // kopiere das Bit (Basistakt*10) von MB54 nach MB05
M40 := M430; // kopiere das Bit (Basistakt*20) von MB54 nach MB05
end_while;
// Taktmerker als Taktflanke implementieren
BV32 ( EN := , I1 := MB05, I2 := MB55, ZE => , QV => MB06 );
MB55 := MB05;