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.
-
AutorePost
-
Maggio 31, 2015 alle 6:08 am #35799
Enzo
PartecipanteEsiste un metodo per accedere direttamente da Modbus a ingressi ed uscite (input e coil) senza utilizzare variabili di appoggio nella memoria ?
Giugno 1, 2015 alle 9:17 am #38938Sergio Bertana
Amministratore del forumNon è 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.
Giugno 12, 2015 alle 12:44 pm #38958Anonimo
InattivoStò 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) ?
Giugno 12, 2015 alle 12:55 pm #38959Sergio Bertana
Amministratore del forumNon 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.
Giugno 12, 2015 alle 3:09 pm #38960Anonimo
InattivoSono 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.
Giugno 15, 2015 alle 10:45 am #38963Anonimo
InattivoAggiungo 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.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.