Benutzer-Werkzeuge

Webseiten-Werkzeuge


grundlage_makro

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
grundlage_makro [2016/08/23 09:33] akuhtzgrundlage_makro [2024/01/13 08:36] (aktuell) – [Und warum ist das so gebaut?] akuhtz
Zeile 1: Zeile 1:
 ====== Was sind Makros und Accessories? ====== ====== Was sind Makros und Accessories? ======
  
-**Das Prinzip könnte man in die Legowelt transportieren und sich damit vorstellen:**+Das Prinzip könnte man in die Legowelt transportieren und sich damit vorstellen: 
 + 
 +<WRAP group> 
 +<WRAP third column>
 {{:allgemein:makro_legobaustein.jpg?300 |}} {{:allgemein:makro_legobaustein.jpg?300 |}}
 +</WRAP>
  
-Die Portaktionen (Eingänge, Schaltausgänge, GPIOs, LED-Ausgänge oder auch Servo-Ports) sind die einfachen Legobausteine. Die Makros sind quasi die Grundplatte, auf die man die Legobausteine draufbauen kann+<WRAP twothirds column> 
 +Die **Port-Aktionen** (Eingänge, Schaltausgänge, GPIOs, LED-Ausgänge oder auch Servo-Ports) sind die einfachen Legobausteine welche auf einen einzelnen Port wirken:
  
-** +  Die Port-Aktion eines Servo-Port lässt den Servo an eine bestimmte Position fahren. \\ 
-Zuerst einen Ausgang schalten, dann warten, dann Servo bewegen, dann anderen Ausgang einschalten, ...** +  Die Port-Aktion eines Schaltausgang lässt den Ausgang ein- oder ausschalten.
  
 +Die **Makros** sind quasi die Grundplatte, auf die man die Legobausteine draufbauen kann um eine oder mehrere Port-Aktionen auszuführen:
  
-Ein Makro ist eine Zusammenfassung von Aktionen. Normalerweise steckt man hier alles reinwas auch zusammengehört und das ist dann in der Legodenke schon ein Art „Funktionsbaustein“. Im realen Betrieb ist es oft sinnvoll den Ablauf in einzelne Makros aufzuteilen und diese von einem übergeordneten Makro auszuführen. Damit verschafft man sich einen Überblick und eine ordentliche Struktur. Die Makros sind toll für Dinge „neben“ der Bahnalso Häuser beleuchten, Spielplatz bewegen usw.+//Zuerst einen Ausgang schalten, dann wartendann Servo bewegen, dann anderen Ausgang einschalten, ...// 
  
-Die Dinge „auf der Bahn“ haben aber noch weitergehende Ansprüche: Ein Signal zeigt einen Begriff, eine Weiche steht irgendwie. Manchmal ist das direkt ein Schaltausgang (dann ist der ganze Klapperatismus eigentlich überflüssig), aber oft sind das kombinierte Abläufe „Signal umstellen“: +</WRAP> 
 +</WRAP>
  
-Rotes Licht abblenden, bisschen warten, grünes und gelbes Licht aufblenden.  + 
-Genau für diesen Ablauf verwendet man die Makros. Da kann man diese Sachen schön unterbringen. + 
 + 
 + 
 +Ein Makro ist also eine Zusammenfassung des sequentiellen Ablauf von Aktionen. \\ 
 +Normalerweise steckt man hier alles rein, was auch zusammengehört und das ist dann in der Legodenke schon ein Art „Funktionsbaustein“. Im realen Betrieb ist es oft sinnvoll den Ablauf in einzelne Makros aufzuteilen und diese von einem übergeordneten Makro auszuführen. Damit verschafft man sich einen Überblick und eine ordentliche Struktur. \\ 
 +Die Makros sind toll für Dinge „neben“ der Bahn, also Häuser beleuchten, Spielplatz bewegen usw. die //einfach laufen// sollen. 
 + 
 +Die Dinge „auf der Bahn“ haben aber noch weitergehende Ansprüche: \\ 
 +Ein Signal zeigt einen Begriff oder eine Weiche steht in einer bestimmten Stellung. \\ 
 +Manchmal ist das direkt ein Schaltausgang (dann ist der ganze Klapperatismus eigentlich überflüssig), aber oft sind das kombinierte Abläufe „Signal umstellen“:  
 +  * Rotes Licht abblenden,  
 +  * bisschen warten,  
 +  * grünes und gelbes Licht aufblenden.  
 +Genau für diesen Ablauf verwendet man die Makros, da kann man diese Sachen schön unterbringen. 
  
  
 {{ :allgemein:accessory_doku.jpg?600 |}} {{ :allgemein:accessory_doku.jpg?600 |}}
  
-**Diese Makros werden aber bei den Bahnbetriebsabläufen einem Accessory zugeordnet.** Nur dann wird der letzte Zustand gespeichert und bei einem Spannungsreset wieder ausgeführt oder eine Rückmeldung an das PC-System zurückgemeldet „Servo hat Position erreicht“!+Bei Bahnbetriebsabläufen ist die korrekte und überwachte Ausführung von Makros gefordert. Dazu wird eine weitere Ebene der **Accessory** eingeführt. \\ 
 +Dazu werden Makros einem **Accessory** zugeordnet, welches einen oder mehrere Zustände (Aspekte) haben kann.  
 +Bei einem Accessory besteht zudem die Möglichkeit, dass der letzte Zustand gespeichert und bei einem Einschalten der Anlage wieder ausgeführt wird. \\ 
 +Des weiteren erfolgt beim Ausführen des Accessory eine Rückmeldung an das PC-System, z.B. „Servo hat Position erreicht“ oder "Fehler aufgetreten"!
  
 ====== Mein erstes Makro ====== ====== Mein erstes Makro ======
Zeile 39: Zeile 62:
 Dazu erstellt man ein Makro Weiche //geradeaus// mit folgenden Schritten: Dazu erstellt man ein Makro Weiche //geradeaus// mit folgenden Schritten:
  
-  * Makro "Weiche abzweigend" stoppen +  * Makro "Weiche abzweig" stoppen 
-  * Ausgang X einschalten+  * (Schaltpaar-) Ausgang X einschalten
   * Wartezeit 20 Ticks   * Wartezeit 20 Ticks
  
 Die Liste mit den Schritten ist am Anfang leer. Über das Kontextmenü (rechte Maustaste) kannt man mit //Danach einfügen// einen leeren Schritt einfügen und konfigurieren. Die Liste mit den Schritten ist am Anfang leer. Über das Kontextmenü (rechte Maustaste) kannt man mit //Danach einfügen// einen leeren Schritt einfügen und konfigurieren.
  
-Anschliessend muss das Makro mit Klick auf den Schreiben-Button auf die OneControl übertragen werden. Das Icon in der Makroliste wechselt dadurch zu einem Schloss mit grünem Haken.+==== Schaltausgang oder Schaltpaar-Ausgang verwenden? ==== 
 + 
 +Bei der OneControl gibt es ab FW-Version 3.x den neuen Port-Typ Schaltpaar-Ausgang.  
 + 
 +Dieser Typ kombiniert 2 "normale" Schaltausgänge zu einem Ausgang, bei dem immer nur 1 der beiden Ausgänge aktiviert ist. D.h. wenn der Schaltpaar-Ausgang eingeschaltet ist, dann liegt am ersten Ausgang eine Spannung an, während der 2. Ausgang keine Spannung hat. Wird dieser Schaltpaar-Ausgang ausgeschaltet, dann liegt am ersten Ausgang keine Spannung an und am 2. Ausgang liegt Spannung an. 
 + 
 +Man kann beim Schaltpaar-Ausgang also nie beide Ausgänge gleichzeitig einschalten, während dies beim Schaltausgang möglich ist, auch unbeabsichtigt ... 
 + 
 +Durch die Verwendung des Schaltpaar-Ausgang muss man in den Makros den anderen Port nicht erst ausschalten, bevor man den eigentlichen Port einschaltet, sondern man schaltet einfach den Schaltpaar-Ausgang ein oder aus.  
 + 
 +==== Makro mit Schaltausgang ==== 
 + 
 +Anschliessend muss das Makro mit Klick auf den **Schreiben**-Button auf die OneControl übertragen werden. Das Icon in der Makroliste wechselt dadurch zu einem Schloss mit grünem Haken. 
 + 
 + 
 +{{:wizard:makro_weiche_gerade_switchpair.png|}} 
 + 
 +Wenn das gleiche Makro mit einzelnen Schaltausgängen statt dem Schaltpaar-Ausgang erzeugt worden wäre, würde es so (kompliziert) aussehen:
  
 {{ :wizard:makro_weiche_gerade.png |}} {{ :wizard:makro_weiche_gerade.png |}}
Zeile 53: Zeile 93:
 Danach wird ein Makro Weiche //abzweigend// erstellt mit folgenden Schritten: Danach wird ein Makro Weiche //abzweigend// erstellt mit folgenden Schritten:
  
-  * Makro "Weiche geradeaus" stoppen +  * Makro "Weiche gerade" stoppen 
-  * Ausgang Y einschalten+  * (Schaltpaar-) Ausgang Y einschalten
   * Wartezeit 20 Ticks   * Wartezeit 20 Ticks
  
-Anschliessend muss auch dieses Makro mit Klick auf den *Schreiben*-Button auf die OneControl übertragen werden.+Anschliessend muss auch dieses Makro mit Klick auf den **Schreiben**-Button auf die OneControl übertragen werden. 
 + 
 +{{:wizard:makro_weiche_abzweig_switchpair.png|}} 
 + 
 +Wenn auch hier das gleiche Makro mit einzelnen Schaltausgängen statt dem Schaltpaar-Ausgang erzeugt worden wäre, würde es so (kompliziert) aussehen:
  
 {{ :wizard:makro_weiche_abzweig.png |}} {{ :wizard:makro_weiche_abzweig.png |}}
  
-Jetzt hat man 2 Makro um die Weiche hin- und herstellen zu können, wenn das jeweilige Makro mit Klick auf den *Testen*-Button gestartet wird.+Jetzt hat man 2 Makro um die Weiche hin- und herstellen zu können, wenn das jeweilige Makro mit Klick auf den **Testen**-Button gestartet wird. 
 + 
 +==== Accessory erstellen ====
  
 Anschliessend muss das Accessory Weiche X erstellt werden mit den 2 Aspekten: Anschliessend muss das Accessory Weiche X erstellt werden mit den 2 Aspekten:
  
-  * Geradeaus --> Schaltet Makro "Weiche geradeaus+  * Geradeaus --> Schaltet Makro "Weiche_X_gerade
-  * Abzweigend --> Schaltet Makro "Weiche abzweigend"+  * Abzweigend --> Schaltet Makro "Weiche_X_abzweig"
  
-Nachdem die beiden Aspekte angelegt sind, muss das Accessory mit Klick auf den *Speichern*-Button auf die OneControl übertragen werden. Danach wird das Icon in der Liste der Accessory auch wieder zum Schloss mit dem grünen Haken.+Nachdem die beiden Aspekte angelegt sind, muss das Accessory mit Klick auf den **Speichern**-Button auf die OneControl übertragen werden. Danach wird das Icon in der Liste der Accessory auch wieder zum Schloss mit dem grünen Haken.
  
 {{ :wizard:accessory_weiche_x.png |}} {{ :wizard:accessory_weiche_x.png |}}
Zeile 75: Zeile 121:
  
 Anschliessend im Wizard die Verbindung zum Master trennen, weil die Schnittstelle jetzt vom Steuerungsprogramm (Rocrail, iTrain, WDP o.ä.) benötigt wird. Anschliessend im Wizard die Verbindung zum Master trennen, weil die Schnittstelle jetzt vom Steuerungsprogramm (Rocrail, iTrain, WDP o.ä.) benötigt wird.
 +
 +====== Wo gibt es fertige Makros? ======
 +
 +Oben haben wir gesehen, wie das im Prinzip funktioniert. Mag ja ganz toll sein, aber muß man das jetzt immer wieder machen? Nein, für viele, viele Standardfälle gibt es einen [[tools:node-script-wizard|Baukasten mit vorgefertigten Makros]]!
 +
 +Das oben abgebildete Makro kann über den Knoten-Konfigurator mit dem Skript "Weichenantrieb (Doppelspulen) an OneControl mit Schaltausgangs-Paar" erstellt werden.
 +
 +====== Und warum ist das so gebaut? ======
 +
 +Ein Steuerungsprogramm will ein Signal (wir nennen das Accessory) auf ein bestimmtes Signalbild (=Aspect) stellen. Dabei ist es dem Steuerungsprogramm egal, wie dieses Signalbild dargestellt wird: das kann ein Flügelsignal sein, ein Ks-Signal oder irgendetwas anderes. Und genau auf dieser Ebene spricht das Steuerprogramm auch die Baugruppe an: Accessory 'abc' soll Aspect '123' zeigen. Wie das die Baugruppe dann konkret macht, ist alleinig Sache der Baugruppe.
 +
 +Es gibt BiDiB-Baugruppen, die manchen z.B. nur eine Weiche. Aspect 1 ist eine Spule, Aspect 2 ist die andere Spule. Fertig. Nichts umzustellen, keine Makros o.ä.
 +
 +Oft reicht die einfache Ansteuerung, aber gerade bei Signalen ist es umfangreicher und recht stark von Bahnverwaltung / Epoche und Ausbauzustand des Vorbildes abhängig. Manchmal blinkt es auch. Wie bringt man das hin?
 +
 +Bei OpenDCC-Baugruppen (und davon abgeleiteten, lizenzierten Baugruppen) gibt es eine flexible Konfiguration: Die Idee: bei jedem Begriff eines Accessory statt eines festen Musters eine Art Schrittkettensteuerung auszuführen. Diese Schrittketten nennen wir Makro.
 +
 +Von oben rein ist der Weg also:
 +
 +    PC stellt Aspect beim Accessory ein.
 +    Aspect startet eine Schrittkette (Makro)
 +    Im Makro sind dann die An- Ausknipser fürs Licht.
 +
 +Damit ist man voll flexibel und kann auch besondere Signalbilder darstellen - bis hin zum Lauflicht eines Baustellenblitzers. Und für Standardfälle (z.B. Blocksignal) gibt es den [[tools:node-script-wizard|Zauberstab]]!
 +
 +
 +
 +Weitere Informationen zu Makros und Accessories findet man auch unter:
 +  * [[advanced_macro_de|Mehr zu Makro und Accessory]]
 +
 +
grundlage_makro.1471937619.txt.gz · Zuletzt geändert: 2016/08/23 09:33 von akuhtz

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki