Maschinenvarianten konfigurieren / programmieren

roha
2015-10-08
2015-10-27
  • roha - 2015-10-08

    Hallo,
    ich suche nach Informationen, Beispielen und Möglichkeiten, wie man mehrere Maschinen-Varianten (Optionen, I/O, Antriebe) einer Maschine in CODESYS optimal konfigurieren / programmieren kann?

     
  • RolandWagner

    RolandWagner - 2015-10-27

    Folgende Möglichkeiten sind denkbar:
    Bedingte Code-Generierung mit Pragmas wie { IF expr }, { ELSIF expr }, { ELSE }, { END_IF}
    Damit kann man wie in Hochsprachen über Compiler-Definitionen festlegen, welcher Code in welcher Maschinenkonfiguration übersetzt wird. Letztlich unterstützt diese Methode den Programmierer, wenn man ein einziges Projekt pflegen möchte, in dem alle Produktvarianten / -Optionen enthalten sind, man die aber nicht in jede Maschine herunterladen möchte.
    Die Möglichkeit in CODESYS objektorientiert zu programmieren und dabei z.B. allgemeingültige Schnittstellen einzubinden, die pro Maschinen-Variante dann anders implementiert werden, unterstützt dabei natürlich. Außerdem sollte man in jedem Fall Gebrauch von der Möglichkeit machen, allgemeingültigen Code in Bibliotheken zu packen.
    Verwendung des CODESYS Application Composer.
    https://de.codesys.com/produkte/codesys-engineering/application-composer.html

    Ich hoffe, ich konnte ein wenig helfen

     
  • roha - 2015-10-27

    Hallo Herr Wagner,

    danke für die Informationen. Daraus ergibt sich für mich eine ergänzende Frage:

    Kann die Konfiguration von Devices im Objektbaum auch zur Laufzeit (während Startup) aus dem Programm heraus vorgenommen / angepasst werden?
    Beispiel wäre etwa, abhängig von einem Optionsschalter (z.B. aus einer Ini-Datei) ein Modul mit ServoDrives und I/O-Modulen im Objektbaum zu definieren und dann im Programm zu verwenden.

    Da stellt sich mir dann noch die Frage der eindeutigen Adressierung dieser optionalen Slaves (mal drin im Baum, mal nicht)...über Alias-Adressierung?

     
  • RolandWagner

    RolandWagner - 2015-10-27

    Die vorher erwähnten Möglichkeiten für Maschinenvarianten beziehen sich allesamt auf einen neuerlichen Login und Download der Applikation sowie der Konfigurationsdaten.

    Man kann in einigen Feldbussen (bekannt ist mir CANopen und EtherCAT) so genannte optionale Komponenten anlegen.

    Was auch möglich ist: Mehrere Ausgänge auf die gleiche Variable zu mappen (das geht allerdings nicht durch Angabe des gleichen Variablennamens in verschiedenen Ausgangsmodulen, sondern nur, in dem man mehrere Ausgänge auf ein und dieselbe verfügabre Variable mappt, die in einem Programmbaustein oder einer globalen Variablenliste angelegt wurde). Dabei werden die Werte auf sämtliche gemappten Variablen kopiert. Bei den Eingängen wird es da schon viel schwieriger: das Mapping geht zwar genauso - aber welcher Eingang gewinnt, sprich welcher Wert letztlich in die Variable geschrieben wird ist Glückssache . Vermutlich wird der im Baum zuletzt aufgelistete Eingang als letztes in die Variable schreiben und damit "gewinnen".

    Zusätzlich gibt es einen Diagnose-Baustein (CAA Device Diagnose), mit denen man zur Laufzeit eine Rekonfiguration vornehmen kann. Da hängt es dann wieder vom Bussystem und der Implementierung des Geräteherstellers ab, wie gut das in der Praxis funktioniert.

     

Log in to post a comment.