Ausgänge über Array ansprechen

cali
2015-10-01
2015-12-10
  • cali - 2015-10-01

    Hallo,

    ich möchte mittels eines Kommandos über UDP meine Ausgänge schalten können.
    Doch wie kann ich die Ausgänge adressieren? Mir schwebt vor den Empfangenen Text in eine Zahl umzuwandeln und damit den Ausgang über seine Position in einem Array anzusprechen.

    Nach meinen Recherchen sollte es möglich sein die Ausgänge in ein Array zu schreiben:
    Outputs AT %Q*:ARRAY[0..7] OF BOOL;

    Definiere ich die Outputs in den globalen_Variablen bekomme ich beim komplieren den Fehler: 3500: Kein VAR_Config für Outputs.
    Definiere ich die Outputs in der VAR_CONFIG bekomme ich beim komplieren den Fehler: 3505: Outputs ist kein gültiger Instanzpfad

    Was mache ich falsch? Danke für die Hilfe.

     
  • HeHo - 2015-10-03

    hallo cali

    !!! ich vermute !!!
    BOOL wird steuerungsintern als BYTE behandelt!
    also hat "ARRAY[0..7] OF BOOL" eine größe von 8 BYTE
    somit ist es für deinen zweck nicht sinnvoll nutzbar

    gruß heho

     
  • Anonymous - 2015-12-10

    Originally created by: Eckhard

    Hallo Cali
    HeHo hat recht. Ein BOOL wird intern in einem Byte gespeichert. Aber es gibt in der util.lib (im Codesys Ordner library) die Bausteine PACK und UNPACK. Die schieben Dir 8 Bits in ein Byte zusammen, das Du dann direkt auf einen Ausgang schieben kannst, bzw. pflücken ein Eingangsbyte in 8 Bits auseinander.
    Gruß Ecki

     

Log in to post a comment.