| 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;