Uebung_009_AUDI: Ticker (AX-Adapter basiert)¶
Einleitung¶
Diese Übung demonstriert die Realisierung eines Tickers auf Basis von AX-Adaptern (Adapter-Ereignis-Schnittstellen) in der 4diac-IDE.
Ziel ist es, einen Zähler (up/down) zu implementieren, der über einen Schalter (AX_SWITCH), ein Set-Reset-Glied (AX_SR) und ein Erlaubnissignal (AX_PERMIT) gesteuert wird. Der aktuelle Zählerstand wird auf einem digitalen Ausgang und einem numerischen Anzeigeblock ausgegeben.
Die Übung ist Teil der Uebungen-Bibliothek und nutzt vordefinierte Adapterbausteine sowie einen CTUD-Zähler. Sie eignet sich für Fortgeschrittene, die das Zusammenspiel von Ereignissen und Adaptern verstehen möchten.
Verwendete Funktionsbausteine (FBs)¶
Die Übung besteht aus einer SubApp (Uebung_009_AUDI), die mehrere interne Funktionsbausteine enthält. Die SubApp selbst hat keine eigenen Ein-/Ausgangsschnittstellen; alle Signale werden über interne Verbindungen verarbeitet.
Sub-Bausteine: Uebung_009_AUDI (SubApp)¶
- Typ: SubAppType
- Verwendete interne FBs:
- DigitalOutput_Q1:
logiBUS::io::DQ::logiBUS_QXA- Parameter:
QI=TRUE,Output=Output_Q1 - Funktion: Stellt den digitalen Ausgang
Output_Q1auf dem logiBUS bereit.
- Parameter:
- AE_CYCLE:
adapter::events::unidirectional::timers::AE_CYCLE- Parameter:
DT=T#1s - Funktion: Erzeugt zyklisch alle 1 Sekunde ein Ereignis an seinem Ausgang
EO.
- Parameter:
- AX_SWITCH:
adapter::events::unidirectional::AX_SWITCH- Parameter: keine
- Funktion: Ein AX-Adapter-Schalter, der zwei Ereignisausgänge (
EO0,EO1) besitzt. Welcher Ausgang aktiv wird, hängt vom eingehenden Adapter-Ereignis ab (Toggle-Funktion).
- AX_SR:
adapter::events::unidirectional::AX_SR- Parameter: keine
- Funktion: Set-Reset-Speicher mit AX-Adapter-Schnittstelle. Die Eingänge
SundRsetzen bzw. rücksetzen den AusgangQ.
- AX_PERMIT:
adapter::events::unidirectional::AX_PERMIT- Parameter: keine
- Funktion: Ein Erlaubnis-Glied: Nur wenn am Eingang
PERMITein Ereignis eintrifft, wird das anINanliegende Ereignis an den AusgangEOweitergeleitet.
- AUDI_CTUD_UDINT:
adapter::events::unidirectional::AUDI_CTUD_UDINT- Parameter: keine
- Funktion: Zähler mit Vorwärtszählen (CU) und optionale Zählrichtung. Liefert den aktuellen Zählerwert als
UDINTanCV.
- Q_NumericValue_AUDI:
isobus::UT::Q::Q_NumericValue_AUDI- Parameter:
u16ObjId=OutputNumber_N1 - Funktion: Gibt den übergebenen Zahlenwert (
u32NewValue) in ein isobus-Netzwerk aus (Objekt-IDOutputNumber_N1).
- Parameter:
- AX_SPLIT_3:
adapter::events::unidirectional::AX_SPLIT_3- Parameter: keine
- Funktion: Verteilt ein eingehendes AX-Ereignis an drei Ausgänge (
OUT1,OUT2,OUT3).
- AX_AE_MERGE:
adapter::events::unidirectional::AX_AE_MERGE- Parameter: keine
- Funktion: Vereinigt zwei Ereigniseingänge: einen AX-Adapter (
IN_AX) und einen reinen Ereigniseingang (IN_AE). Das kombinierte Signal wird am AusgangOUTausgegeben.
Programmablauf und Verbindungen¶
Der Ablauf der Übung lässt sich wie folgt beschreiben:
-
Taktgenerierung
AE_CYCLEerzeugt alle 1 Sekunde ein Ereignis (EO). -
Ereignisvereinigung
Dieses Ereignis wird zusammen mit dem Signal vonAX_SPLIT_3.OUT1(siehe Schritt 4) überAX_AE_MERGEzusammengeführt. Das Ergebnis wird anAX_SWITCH.G(Gate-Eingang) weitergeleitet. -
Schalterbetrieb
AX_SWITCHreagiert auf das eingehende Ereignis und schaltet zwischen seinen beiden AusgängenEO0undEO1um. Dies simuliert ein manuelles oder logisches Umschalten. -
Set-Reset-Glied
EO0geht anAX_SR.S(Set),EO1anAX_SR.R(Reset). Der AusgangQdes SR-Glieds wird aktiv, solange gesetzt, und deaktiviert bei Reset. -
Signalverteilung
Das Signal vonAX_SR.Qwird aufAX_SPLIT_3.INgegeben und auf drei Ausgänge verteilt: OUT1→ zurück zur EreignisvereinigungAX_AE_MERGE.IN_AX.OUT2→ an den digitalen AusgangDigitalOutput_Q1.OUT. Damit wird der AusgangOutput_Q1gesetzt, solange das SR-Glied gesetzt ist.-
OUT3→ anAX_PERMIT.PERMIT. -
Erlaubnis und Zähler
AX_PERMITgibt das Ereignis nur dann anEOweiter, wenn amPERMIT-Eingang ein Ereignis anliegt. Dieses wird an den ZählerAUDI_CTUD_UDINT.CUgesendet. Der Zähler erhöht seinen Wert bei jedem Ereignis. -
Numerische Ausgabe
Der aktuelle Zählerstand (CV) wird an denQ_NumericValue_AUDI-Block übergeben und als numerischer Wert auf dem isobus-Netzwerk (Objekt-IDOutputNumber_N1) ausgegeben.
Lernziele:
- Verständnis von AX- und AE-Adaptern (Ereignis- und Adapter-Schnittstellen)
- Anwendung eines SR-Speichers, eines Schalters und eines Erlaubnisglieds
- Verknüpfung von zyklischen Ereignissen mit manueller Steuerung
- Ausgabe auf digitalen und numerischen Kanälen
Schwierigkeitsgrad: Fortgeschritten
Vorkenntnisse: Grundlagen der 4diac-IDE, Ereignisgesteuerte Abläufe, Arbeit mit Adaptern
Zusammenfassung¶
Die Übung Uebung_009_AUDI implementiert einen tickergesteuerten Zähler mit Hilfe von AX-Adapter-Bausteinen.
Ein zyklischer Timer (AE_CYCLE) liefert den Takt, der über einen Schalter (AX_SWITCH) und ein Set-Reset-Glied (AX_SR) den Zähler freigibt. Der Zählerstand wird gleichzeitig als digitales Signal auf einem logiBUS-Ausgang und als numerischer Wert auf einem isobus-Netzwerk ausgegeben.
Die Verwendung von Adaptern erlaubt eine flexible, ereignisorientierte Verkettung und demonstriert die modulare Struktur der 4diac-IDE.