Vai al contenuto
PLC Forum


Zelio E Vba Di Excel - Possono comunicare?


Reverendo bit

Messaggi consigliati

Reverendo bit

Salve a tutti!

Vorrei capire se ce la possibilità di far comunicare uno zelio con un'applicazione di Excel programmata in VBA, e se conviene mettere sullo zelio una porta seriale,

o una porta con protocollo Modbus

Ciao e grazie

Link al commento
Condividi su altri siti


del_user_56966
Vorrei capire se ce la possibilità di far comunicare uno zelio con un'applicazione di Excel programmata in VBA

Si lo puoi fare sia da Excel che da Visual Basic ecc.. ti serve il framework ABS-XComm, puoi importare una libreria Modbus RTU in Excel

e tramite VBA leggere e scrivere tutti i registri che ti servono... ;)

Link al commento
Condividi su altri siti

Reverendo bit

Ciao Alen

Grazie per la dritta, ma vorrei chiederti qualche chiarimento su questo framework ABS Xcomm, e su come devo impostare il codice di vba e se

I blocchi dello zelio per la comunicazione sono gli "SL_IN" "SL_OUT" o cos'altro?

Sono alle prime armi con questo tipo di applicazione con VBA, quindi mi trovo un po disorientato.

Ciao e Grazie da Reverendo bit

Link al commento
Condividi su altri siti

del_user_56966

Ciao

Il framework ABS-XComm è un insieme di drive e server per uso mirato alla domotica, all'automazione di Alberghi, al Building Automation ec..

qualche volta viene anche utilizzato nel terziario e nell'Industriale specialmente per abbattere di netto i costi del software..

nel tuo caso specifico non utilizzi molto del pacchetto ma in particolare una libreria che si occupa di comunicazione con apparati Modbus RTU oppure TCP

sei anche fortunato perché fino a 10 apparati la licenza è completamente gratuita!

Per quanto riguarda lo Zelio non ti so aiutare ma essendo che utilizza il Modubus RTU che è uno standard "di facto" non dovresti avere problemi a comunicare

in lettura e scrittura con questo PLC o altri..

La libreria si può importare direttamente in VBA di Excel come di altri programmi e ti porta le variabili direttamente nel tuo programma... poi da li tocca

a te metterle nelle giuste caselle e comunque farci quello che desideri.. :)

Link al commento
Condividi su altri siti

Reverendo bit

Ciao Alen

Innanzitutto grazie delle informazioni molto preziose per me per inquadrare la situazione.

L'unica cosa che devo fare adesso e provare e vedere cosa viene fuori

Ciao da Reverendo bit

Link al commento
Condividi su altri siti

Ma visto che lo Zelio e solamente uno slave, può scrivere sul software scritto in VBA?

Non propio, in sostanza lo Zelio e' solo uno slave e sia con l'estensione Modbus sia con l'estensione Ethernet e' un po' limitato.

In sostanza puoi leggere e scrivere solamente quattro word, ma comunque il modulo non ti invia in autonomo nulla sul bus, devi perforza interrogarlo dall'esterno.

Inoltre ti mette a disposizione anche altre quattro word, di cui tre che sono per la lettura/scrittura dell'orologio datario e una che

e' un riassunto degli allarmi interni dello zelio, tipo controllo watchdog, errore memoria, stato run o stop ecc..

ciao... :)

Link al commento
Condividi su altri siti

del_user_56966
devi perforza interrogarlo dall'esterno.

in effetti la libreria di cui parlavo è una libraria come si intravede come Modbus RTU Master idem se utilizzi il Modbus TCP.. :)

In sostanza puoi leggere e scrivere solamente quattro word,

si in effetti non hanno abbondato un granché .... :lol:

Link al commento
Condividi su altri siti

Reverendo bit

Quindi nelle quattro Word che ho a disposizione per leggere e scrivere,(oltre a quelle per orologio e lo stato del modulo) posso leggere lo stato degli ingressi fisici del modulo ed utilizzarli nell`applicazione in VBA o inviare dall`applicazione VBA dei bit per farli entrare in logica?

Link al commento
Condividi su altri siti

Quindi nelle quattro Word che ho a disposizione per leggere e scrivere,(oltre a quelle per orologio e lo stato del modulo) posso leggere lo stato degli ingressi fisici del modulo ed utilizzarli nell`applicazione in VBA o inviare dall`applicazione VBA dei bit per farli entrare in logica?

ciao, scusami, in realta' non mi sono spiegato molto bene...

Lo Zelio mette a disposizione sull'estensione di comunicazione le seguenti word che sono identificate dal protocollo modbus/tcp-ip come segue:

mw 20, 21, 22, 23 accessibili solo in lettura e sono associabili alle uscite dello zelio

mw 16,17,18,19 accessibili in lettura e scrittura e sono associabili agli ingressi dello Zelio

mw 32,33,34,35 accessibili in lettura e scrittura e sono l'orologio datario dello Zelio (a mio avviso abbinate un po' in modo confuso)

mw 48 accessibile solo in lettura ed e' la parola di stato e allarmi dello Zelio

comunque se vuoi approfondire la cosa su internet trovi il manuale di programmazione Zelio, li' trovi quasi tutto .. :)

si in effetti non hanno abbondato un granché ....

concordo pienamente Alen....

in alcuni casi infatti ho dovuto rinunciare all'utilizzo di questo prodotto a causa di queste limitazioni.... :(

a mio avviso se avessero aggiunto almeno la possibilita' di interagire con il programmatore orario interno....non sarebbe stato male....

ciao a tutti.... :)

Link al commento
Condividi su altri siti

del_user_56966
concordo pienamente Alen....

in alcuni casi infatti ho dovuto rinunciare all'utilizzo di questo prodotto a causa di queste limitazioni...

se poi consideri che solo negli HomePLC che sono per Domotica di registri Modbus penso ve ne siamo più di 6000!... :blink:

Link al commento
Condividi su altri siti

Reverendo bit

;) Grazie ragazzi

Siete stati molto esaurienti............

e comunque anche io ha avuto modo di imbattermi sulle limitazioni dello zelio

Ciao Reverendo bit

Link al commento
Condividi su altri siti

guarda che su questo sito, esiste un esauriente tutorial sull'utilizzo della libreria (FREE!!!) nModbus con VBnet 2008. Il documento lo ha realizzato Stefano Sormanni e si trova nella sezione UP/DOWNLOAD del sito e precisamente su protocolli di comunicazione. Ho testato quanto scrive Stefano e ti posso confermare che funziona egregiamente. Lascia perdere ABS-XComm, e per domotica, anche se è una buona soluzione.

Link al commento
Condividi su altri siti

del_user_56966
Lascia perdere ABS-XComm, e per domotica, anche se è una buona soluzione.

Non confondere il fatto che se ne senta parlare spesso per via degli HomePLC, XComm possiede librerie specifiche per vari settori

che vanno dalla domotica, al Building Automation fino all'antincendio e all'industriale come per esempio è molto spinto nell'uso dei PLC Industriali Panasonic,

e per l'uso che serve in questo caso è anche libero da licenza e quindi FREE!

Forse la differenza sta proprio nel fatto che puoi importare semplicemente un oggetto COM in VBA è sei subito pronto per gestire i dati... ;)

si trova nella sezione UP/DOWNLOAD del sito e precisamente su protocolli di comunicazione.

ho visitato il punto di cui parli ma c'è solo un PDF la libreria dove...? :blink:

Link al commento
Condividi su altri siti

La libreria NMODBUS la scarichi dal sito NMODBUS, ripeto, è più gestibile, dal mio punto di vista, la libreria la quale contiene anche funzioni "complesse" già integrate.

Auguri a tutti

Link al commento
Condividi su altri siti

io penso che tu non conosca bene questo protocollo che non ha niente di complesso, ma in alcuni casi, a seconda delle apparecchiature presenta molte eccezioni;

ti faccio un esempio:

può succedere che ti arrivino dati in formato "double", quindi residenti su due registri consecutivi;

bene, la libreria citata, contiene anche una funzione "GetUInt32" che si occupa di rendere leggibili questi dati che altrimenti andrebbero raggruppati.

In riguardo alle modalità di collegamento con i vari device, funziona in:

MODBUS TCP ETHERNET - USB

MODBUS RTU RS232 - RS485

MODBUS RTU RADIO - GSM - MODEM

comunque, io non ho detto che ABS-X Comm non funziona o altre cose simili, io ho detto solamente che preferisco NMODBUS per tanti validi motivi, tra i quali anche quelli che ti ho citato sopra.

La stò testando su WIN MOBILE, ovvio che va ricompilata, su piattaforma adeguata, ma c'è di più, di NMODBUS viene messo a disposizione anche il codice sorgente che è realizzato in C# e quindi, se si è in grado, la si può adattare alle proprie esigenze.

Dimenticavo...........è molto FREEE, ABS-X Comm non lo è altrettanto

;)

Link al commento
Condividi su altri siti

del_user_56966
io penso che tu non conosca bene questo protocollo che non ha niente di complesso, ma in alcuni casi, a seconda delle apparecchiature presenta molte eccezioni;

Vedi almeno io non faccio confusione tra il protocollo in se, e codifica dei dati quello che tu chiami "Double" è utilizzato

in vari apparati quando si gestiscono dati in virgola mobile, nella libreria di comunicazione del framework esiste una Funzione

per la conversione diretta in formato IEEE, tu passi i dati e lei ti restituisce direttamente il valore in virgola mobile...

Dimenticavo...........è molto FREEE, ABS-X Comm non lo è altrettanto

Io non sto discutendo la migliore o la peggiore delle soluzioni, ognuno al suo modo di operare anche a secondo del caso,

quello che per te è valutato positivamente, potrebbe risultare più complesso, oppure anche non necessario

per dei tecnici che non vogliono perdere tempo e cercano una soluzione COM Standard da installare e utilizzare in 1 minuto....

Riguardo al FREE io intendo che per l'applicazione fino a 10 Nodi (e senza limiti di variabili) la licenza è libera,

tu al contrario stai parlando di una libreria Open Source in C#

però queste sono cose diverse, scusa della precisione è colpa del DNA... :lol:

Una cosa che però va saputa, è che grazie al framework puoi utilizzare in rete LAN anche normali apparati Modbus RTU

provvisti di seriali RS485 e RS232 perchè il framework gestisce direttamente

il Modbus Over IP, e un altra cosa interessante e sempre libera da licenza

sta nel fatto che i dati sono direttamente trasportabili su altre postazioni di rete senza ulteriori tempi di sviluppo,

chiaro che se uno ha tempo e capacità si può scrivere un software da zero oppure prendendo per base qualche libreria,

tipo quella descritta, su questo chiaramente concordo pienamente!..

e quello che i primi tempi si doveva fare anche con DotNET visto che la gestione della seriale non esisteva...

In ogni caso anche la tua attività conferma solo la grande flessibilità che il protocollo Modbus e che come dico sempre

è sicuramente uno degli standard più utilizzati, come vedi nei più disparati modi... ;)

Link al commento
Condividi su altri siti

permettimi di precisare che i dati in formato doppio intero (Double Int - Dint) non sempre sono in virgola mobile (REAL) vale a dire:

REAL :

Il formato Real (virgola mobile nello standard ANSI/IEEE) è codificato in formato a 32 bit, corrispondente ai numeri in virgola mobile con un solo decimale.

I 32 bit che rappresentano il valore in virgola mobile sono organizzati in tre campi distinti. Si tratta dei seguenti campi:

il bit del segno che può avere come valore:

0, per un numero a virgola mobile positivo,

1, per un numero a virgola mobile negativo.

l'esponente codificato in un campo a 8 bit; la parte a virgola fissa codificata in un campo a 23 bit.

Tipo intero doppio (DINT)

Tipo con segno con formato a 32 bit.

In questa tabella è indicato l'intervallo in ogni base.

Base Da: A:

Decimale -2147483648 - 2147483647

Binario 2#10000000000000000000000000000000 2#01111111111111111111111111111111

Ottale 8#20000000000 8#17777777777

Esadecimale 16#80000000 16#7FFFFFFF

Comunque..............

Se avrò bisogno di . su ABS-X, ti farò sapere...........sono a tua disposizione per qualsiasi cosa tu vorrai rendermi partecipe

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...