Vai al contenuto

Accesso da protocollo modbus agli I/O logici

Home Forum Controllori SlimLine e Netsyst (LogicLab) Accesso da protocollo modbus agli I/O logici

  • Questo topic ha 5 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 9 anni, 10 mesi fa da Anonimo.
Stai visualizzando 6 post - dal 1 a 6 (di 6 totali)
  • Autore
    Post
  • #35799
    Enzo
    Partecipante

    Esiste un metodo per accedere direttamente da Modbus a ingressi ed uscite (input e coil) senza utilizzare variabili di appoggio nella memoria ?

    #38938
    Sergio Bertana
    Amministratore del forum

    Non è prevista alcuna mappatura su registri Modbus dello stato degli I/O logici. Per gestirli tramite Modbus occorre forzatamente realizzare un programma che ne appoggia lo stato su area DB 100 che è l’unica area attualmente raggiungibile dal protocollo Modbus gestito dal sistema operativo.

    In questo topic un esempio abbinato alla connessione Modbus da parte di un pannello operatore, cito il topic in quanto disponendo di un modulo CPU SlimLine con il programma EasyBuilder Pro (Scaricabile dal sito) è possibile simulare il funzionamento reale del pannello e testare la comunicazione Modbus.

    #38958
    Anonimo
    Inattivo

    Stò cimentandomi con l’interfacciamento di LabVIEW ad un sistema SlimLine. Utilizzando Toolly ho correttamente modificato l’indirizzo IP della SlimLine, così da consentire una corretta comunicazione. Attraverso LogicLab ho quindi aperto il programma esempio EasyProtocol, ritenendo potesse essere quello relativo alla comunicazione che avevo intenzione di realizzare.

    Provando ad analizzare programma, mi sembra che la sua funzione sia quella di interfacciare le variabili DInputs e DOtputs con gli indirizzi fisici della scheda (ma domando conferma); ho quindi assegnato i seguenti Address: DInputs->%MW100.0 DOutputs->%MW100.2.

    Volendo verificare la possibilità di interagire con il modulo SlimLIne, ho quindi comandato da LabVIEW l’indirizzo relativo a DOutputs, senza però avere alcuna reazione (nessuna accensione di led sulla scheda da 16 I/O collegata). C’è modo di verificare se sto effettivamente scrivendo sull’indirizzo %MW100.2 (così da capire se manca poi la trasmissione del valore agli indirizzi fisici) ?

    #38959
    Sergio Bertana
    Amministratore del forum

    Non sò quale sia il programma EasyProtocol che tu citi ma ritengo possa trattarsi del programma DIOManage (Stampa) riportato in questo topic. In effetti questo programma fà esattamente quello di cui tu hai bisogno infatti come vedi dalla stampa le variabili

    DInputs AT %MW100.16 : UINT; (* Digital inputs *)
    DOutputs AT %MW100.18 : UINT; (* Digital outputs *)

    Contengono lo stato dei 16 I/O digitali di un modulo di epansione con indirizzo 0. Le variabili sono già allocate nella DB100 che è l’area accessibile da Modbus quindi non devi riallocarle (Ma se vuoi spostarle di posizione puoi farlo).

    Ora il concetto più complesso è capire come raggiungere da Modbus queste variabili, come vedi leggendo il topic per acquisire lo stato degli ingressi devi eseguire un comando 03 Read holding registers al registro 40008, per settare le uscite devi eseguire un comando modbus 10 Preset multiple registers al registro 40009. Attenzione, modbus per sua definizione ha offset 1, solitamente i drivers di comunicazione degli SCADA gestiscono questo offset ma non sò se LabVIEW lo gestisce quindi può anche darsi che devi sottrarre 1 all’indirizzo (Quindi avrai 40007 e 40008).

    Per vedere se gli I/O sono gestiti basta utilizzare la finestra di watch di LogicLab e scrivere un valore nella variabile DOutputs e vedrai attivarsi le uscite logiche.

    #38960
    Anonimo
    Inattivo

    Sono riuscito a comandare correttamente le uscite digitali della scheda connessa alla CPU SlimLIne da LabVIEW, aggiungo che LabVIEW è compliant alla specifica Modbus in quanto agisce sulla %MW100.18 definendo l’indirizzo Modbus 40009.

    #38963
    Anonimo
    Inattivo

    Aggiungo come ulteriore informazione, qualora altri utenti abbiano la necessità di adottare LabView, il tutorial di configurazione comunicazione modbus (richiesto modulo DSC):

    http://www.ni.com/tutorial/13911/en/

    Aggiungo che per gli output l’indirizzo va inserito nel range 400001-465535, anteponendo la cifra “4” all’indirizzo dello SlimLine (nell’esempio specifico 440009), mentre per gli input va inserito nel range range 300001-365535, anteponendo la cifra “3” all’indirizzo dello SlimLine (nell’esempio specifico 340008).

    Con l’occasione volevo domandarvi se esiste un analogo programma esempio per quanto riguarda gli ingressi ed uscite analogiche.

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