Vai al contenuto

Lettura bitwise di varaibile WORD da CODESYS v3

Home Forum Terminali operatore (Weintek) Lettura bitwise di varaibile WORD da CODESYS v3

Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Autore
    Post
  • #70493
    Manuel
    Partecipante

    Mi trovo per la prima volta a far dialogare un pannello MT8073iE e un PLC PM5032-T-ETH – ABB. In passato mi sono interfacciato diverse volte con un PM564-TP-ETH – ABB (protocollo CODESYS v2 symbolic addressing ethernet) e al momento di selezionare una variabile di tipo BOOL avevo la possibilità di scegliere i bit all’interno delle tag di tipo INT o WORD. Adesso con il nuovo PLC (protocollo CODESYS v3 ethernet) sembra che non abbia più questa possibilità (Screenshot).

    • E’  una limitazione del protocollo di comunicazione?
    • C’è un modo per ovviare al problema?

    Grazie per l’aiuto.

    #70514
    Sergio Bertana
    Amministratore del forum

    Il protocollo CODESYS v2 era completamente assoluto quindi immagino avessi definito tu le TAGs simboliche nel progetto EasyBuilder. Come quasi tutti i protocolli simbolici si può puntare ai bits di una WORD.

    Il CODESYS v3 lavora in simbolico, ed in simbolico (tranne pochissimi) l’accesso alla variabile è come la si crea nel programma PLC quindi se la TAG è a word non si può puntare ai suoi bit.

    Come workaround puoi configurare un Data Transfer su variabili LW locali del pannello su cui puoi accedere con operandi LW_Bit.

    #70543
    Manuel
    Partecipante

    Per la celere risposta…

    Ho impostato il data transfer su word LW10 del pannello ed il trasferimento avviene senza problemi. Però nel momento in cui vado a leggere i LW_bit (attraverso una lampada a bit) questi mi risultano tutti a 0.

    Ad esempio nella simulazione Screenshot mi aspetterei di trovare l’index della LW10 acceso. Cosa sto sbagliando?

    #70547
    Sergio Bertana
    Amministratore del forum

    Nella definizione di variabili LW_Bit devi indicare indirizzo LW e 2 cifre per il bit (Da 00 a 15). Quindi il bit 0 della LW10 si indicherà con LW 1000, il bit 1 LW 1001

    Il registro indice serve per indicizzare l’indirizzo della variabile con il valore del registro indice e non per testare i bit della WORD.

Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Devi essere connesso per rispondere a questo topic.