Hallo Easy-Gemeinde,
eventuell ist dieser Baustein (die Namensgebung ist eine Ableitung von E(x)tended (Time)r and (Count)er) hilfreich für eure Vorhaben.
Zur Realisierung:
Der Baustein nutzt einen Timer(T32), 6 logische Verknüpfungen (BV27 - BV32) und ein wenig ST-Code.
Ich ersuche um Verständnis dass der lauffähige Baustein nur mit Knowhow-Schutz veröffentlicht wird.
Bei Interesse stelle ich aber gerne Ausschnitte als Codeschnipsel zur Verfügung.
Die Eingänge I02, I03, I04 sowie der Ausgang QA03 sind derzeit ohne Funktion "for later use".
Für entsprechende Ideen und Anregungen bin ich jederzeit empfänglich.
ENABLE:
I01 aktiviert, deaktiviert (alle Ausgänge "0" bzw. "FALSE") den Baustein und wird an Q01 weitergegeben
TAKTMEKER:
Jedes Bit ändert in Abhängigkeit vom Basistakt den Zustand. (In Anlehnung an den Si...ns-Taktmerker)
Die Berechnung erfolgt nach Basistakt * Multiplikator (welcher 1, 2, 4, 5, 8, 10, 16, 20 ist)
Beispiel 1: Basistakt 100ms, Bit 4 ändert alle (Basistakt 100ms * Multiplikator 5) 500ms den Zustand.
Beispiel 2: Basistakt 50ms, Bit 7 ändert alle (Basistakt 50ms * Multiplikator 5) 800ms den Zustand.
Der Basistakt ist intern mit 100ms definiert und kann bei Bedarf an IA01 überschrieben werden.
Gültige Werte sind 50ms bis 250ms und werden nur bei Signalwechsel an I01 (enable) übernommen.
Mit 50ms Basistakt entspricht das Verhalten dem Si...ns-Taktmerker.
TAKTMERKER FLANKE:
Dieser Taktmerker gibt bei jeder Signaländerung von Taktmerker 1 eine positive Flanke aus.
Beispiel 1: Basistakt 100ms, Bit 4 (Basistakt 100ms * Multiplikator 5) alle 500ms eine Flanke.
Beispiel 2: Basistakt 50ms, Bit 7 (Basistakt 50ms * Multiplikator 5) alle 800ms eine Flanke.
SONDERTAKT FLANKE:
Der Baustein liefert den schnellstmöglichen Systemtakt und weitere 7 Sondertimer (IA02 - IA08).
Die Taktsignale erfolgen in Form einer positiven Flanke und werden in einem Byte zur Verfügung gestellt.
Bit1 = Systemtakt, Bit2 - Bit8 = Sondertakt. Die Zeitangabe erfolgt in millisekunden an IA02 bis IA08.
Die ersten 4 Sondertimer (IA02 bis IA05) werden an Q02 bis Q05 und der Systemtakt an Q06 ausgegeben.
Beispiel 1: ein Wert von 4500 an IA02 gibt an Q2 sowie Bit2 alle 4,5 sek. eine positive Flanke aus.
Beispiel 2: ein Wert von 3.600.000 an IA03 gibt an Q3 jede Stunde eine positive Flanke aus.
SONDERTAKT BLINKER:
Bei jeder SONDERTAKT FLANKE wechselt das jeweilige Bit den Zustand.
Beispiel 1: ein Wert von 4500 an IA02 ergibt an Bit 2 ein Blinken mit 4,5 sek. EIN / 4,5 sek. AUS
BITZÄHLER:
Der Baustein stellt 4 Bitzähler IA05 bis IA08 zur Verfügung.
Beispiel 1: ein Wert von 1485 an IA05 gibt den Wert 7 am zugehörigen Summenbyte aus
Beispiel 2: ein Wert von -1 an IA08 gibt den Wert 32 am zugehörigen Summenbyte aus
ZYKLUSZEIT:
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 |
BAUSTEINBELEGUNG:
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 |