Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Homeplc: Eventi? - HomePLC... eventi in modbus rtu come in XComm... ??


Messaggi consigliati

Inserito:

Ciao a tutti... io sono uno sviluppatore software, ma premetto che sono nuovo nel mondo della domotica e mi sto affacciando adesso per la prima volta a questo pazzo pazzo mondo...

sto leggendo a destra e a manca per cercare di farmi un'idea quanto più simile possibile al mondo reale...

ma veniamo al dunque... ho scritto un software di supervisione (una bozza... chiaramente perfettibile in molti punti) interfacciandolo, in prima battuta, con un emulatore plc gratuito (tra l'altro molto valido) pilotandolo con modbus sia in rtu che in tcp... poi ho attaccato homePLC e, dopo qualche ora di frustrazione per comprendere come convertire gli indirizzi, sono riuscito a pilotarne igressi, uscite e registri dal mio programma (ovviamente via rtu)... (anche se persiste qualche antipatico problema nella lettura massiva... da approfondire - mannaggia)

si si, lo so che esiste anche xcomm... ma io vorrei realizzare un qualcosa che (mi) costi poco e, soprattutto, sia cross-platform...

dopo questo lungo seppur necessario preambolo, espongo il mio problema...

sto implementando una (im)probabile gestione degli eventi nel mio strato software di interfacciamento verso il plc, attualmente messo in piedi mediante (chiaramente) un polling (il quale provoca la fibrillazione dei led dell'adattatore usb-rs458 attaccato al plc e un thread parallelo che impazzisce per fare solo quello), un polling che, come sappiamo, come quasi tutti i polling del mondo sarà inutile per 99,9 periodico % delle volte...

al ché, leggendo della documentazione qua e là, ho visto che l'xcomm gestisce qualche evento (!), e ho letto che l'homeplc, a differenza di quasi tutti gli altri plc, è stato progettato per inviare eventi all'host (!!)... chiaramente non so quanto di questo sia vero, ma non ho motivazione alcuna per dubitarne, pertanto procedo...

1. ho letto che sui plc è possibile far girare dei task (dal manuale del LadderHome > Introduzione al HomePLC > Note sugli Standard di Programmazione CEI/IEC1131 - parte 3) e mi domandavo, intanto, se fosse possibile anche sull'HomePLC (presumo e spero di si)

2. ho letto che xcomm può gestire un certo numero di eventi (dal suddetto manuale > Supervisione con ABS-XComm > Event on change) pertanto presumo che l'homeplc possa iniziare *lui* una comunicazione verso l'host (evitando dunque il polling) e, sempre presumo, che ciò avvenga all'interno di un task che gira in background sull'homeplc verificando che qualcosa sia accaduto per comunicarlo all'host

a questo punto, le domande che porgo a voi guru sono:

1. come faccio a scrivere un task che giri in background sull'homeplc? e per farlo posso utilizzare solo ladderHome o esistono anche altre strade (magari opensource) ?

2. come faccio da suddetto task ad iniziare una comunicazione verso l'host per passargli dati scaturiti dalla mia fantasia malata?

3. secondo voi, la cosa può funzionare (o se - già lo sapete - funziona) in maniera diversa da come l'ho descritta io?

sono pronto al dibattito... postate suggerimenti, critiche, insulti, saluti...

a presto (spero)... un abbraccio a tutti


del_user_56966
Inserita:
Ciao a tutti... io sono uno sviluppatore software, ma premetto che sono nuovo nel mondo della domotica e mi sto affacciando adesso per la prima volta a questo pazzo pazzo mondo...

Questa l'appoggio sicuramente... :lol:

del_user_56966
Inserita:
sto leggendo a destra e a manca per cercare di farmi un'idea quanto più simile possibile al mondo reale...

ma veniamo al dunque... ho scritto un software di supervisione (una bozza... chiaramente perfettibile in molti punti) interfacciandolo, in prima battuta, con un emulatore plc gratuito (tra l'altro molto valido) pilotandolo con modbus sia in rtu che in tcp... poi ho attaccato homePLC e, dopo qualche ora di frustrazione per comprendere come convertire gli indirizzi, sono riuscito a pilotarne igressi, uscite e registri dal mio programma (ovviamente via rtu)... (anche se persiste qualche antipatico problema nella lettura massiva... da approfondire - mannaggia)

si si, lo so che esiste anche xComm... ma io vorrei realizzare un qualcosa che (mi) costi poco e, soprattutto, sia cross-platform...

Sicuramente qualche tempo fa ti averi detto che la linea è corretta... ma ultimamente so che molti sviluppatori in Modbus si stanno avvicinando al mondo

XComm anche perché è vero il concetto del multi-piattaforma ma è anche vero che XComm è 10 volte più performante del Modbus e del resto dei protocolli...

quindi nel mondo pazzo pazzo della Domotica come dici tu mancare di performance è visto come Obsolescenza e non come Innovazione...

diciamo che XComm da questo lato è indubbiamente innovativo...

Poi considera anche che con HomePLC la scelta tra i due è più semplice proprio perché sono sempre presenti entrambi quindi

diventa solo una scelta legata al progetto se usare l'uno più che l'altro... :)

del_user_56966
Inserita:
dopo questo lungo seppur necessario preambolo, espongo il mio problema...

sto implementando una (im)probabile gestione degli eventi nel mio strato software di interfacciamento verso il plc, attualmente messo in piedi mediante (chiaramente) un polling (il quale provoca la fibrillazione dei led dell'adattatore usb-rs458 attaccato al plc e un thread parallelo che impazzisce per fare solo quello), un polling che, come sappiamo, come quasi tutti i polling del mondo sarà inutile per 99,9 periodico % delle volte...

In pratica questo è il difetto più grande dei protocolli ad eventi...

tanti dati da scaricare e da dover analizzare senza motivo... ma ci sono anche dei vantaggi rispetto alle soluzioni ad eventi..

per esempio non esiste disallineamento tra hardware e Supervisione che è il difetto tipico dei sistemi ad eventi... :rolleyes:

del_user_56966
Inserita:
al ché, leggendo della documentazione qua e là, ho visto che l'xcomm gestisce qualche evento (!), e ho letto che l'homeplc, a differenza di quasi tutti gli altri plc, è stato progettato per inviare eventi all'host (!!)... chiaramente non so quanto di questo sia vero, ma non ho motivazione alcuna per dubitarne, pertanto procedo...

si è vero!HomePLC è anche un PLC che può operare ad eventi questo è molto utile per esempio nel caso di

impianti su grandi Strutture abitative... :lol:

1. come faccio a scrivere un task che giri in background sull'homeplc? e per farlo posso utilizzare solo ladderHome o esistono anche altre strade (magari opensource) ?

Per prima cosa considera che di HomePLC ad oggi ne esiste almeno due tipologie e più modelli...

la prima tipologia lavora su standard EN61131-3 e quindi con linguaggi grafici standard, questi però non sono adatti a fare quello che ti serve...

la seconda tipologia è su Architettura combinata tra Linux e integrata con Tecnologia HomePLC e viene identificato come HomePLC OPEN...

quindi ci possono girare vari linguaggi come C/C++, Java, Python ecc..

qui un programmatore secondo me si può sbizzarrire come meglio crede visto che a loro è dedicato quest'oggetto...

Inserita:

Ciao a tutti,

ovviamente non vi è un sw open che intercetti il protocollo XComm dei messaggi provenienti dal HomePLC, giusto?

:senzasperanza:

del_user_56966
Inserita:
ovviamente non vi è un sw open che intercetti il protocollo XComm dei messaggi provenienti dal HomePLC, giusto?

HomePLC ha due protocolli esattamente per questo motivo...

Il Modbus RTU che è libero, scaricabile da Internet, tutto sommato semplice e trasparente oltre che di uso standard...

poi ha XComm non libero, classificato come Protocollo di sicurezza e perciò ne semplice ne trasparente...

sicuramente ci sono pregi e difetti in entrami i concetti ma ben appunto sono presenti entrambi... ;)

Inserita:
sicuramente ci sono pregi e difetti in entrami i concetti ma ben appunto sono presenti entrambi...

Perciò cosa consiglieresti al ns. amico programmatore?

- Perpetrare per la sua strada modbus con oneri ed onori (protocollo libero e spesa ridotta all'osso)

- Passare al XComm con l'aggravio della licenza ABS (1.000€, 1.500€ non so )

- Passare all'open PLC appena verrà rilasciato dalla NET ( come sarà ? )

Grazie mille :) :) :)

del_user_56966
Inserita:
Perciò cosa consiglieresti al ns. amico programmatore?

- Perpetrare per la sua strada modbus con oneri ed onori (protocollo libero e spesa ridotta all'osso)

- Passare al XComm con l'aggravio della licenza ABS (1.000€, 1.500€ non so )

Leggende metropolitane... ABS XComm legato agli HomePLC è GRATUITO e di libero utilizzo...

non so chi semina tali notizie ma sono del tutto false.. almeno per quel che so io e di sicuro qualche altro centinaio di programmatori... :lol:

- Passare all'open PLC appena verrà rilasciato dalla NET ( come sarà ? )

HomePLC Open è già stato rilasciato anzi direi che è già esaurito... sembra che siano già alla seconda produzione... :lol:

solo che è un oggetto per programmatori quindi segue una via commerciale diversa da quella del distributore classico...

Inserita:
HomePLC Open è già stato rilasciato anzi direi che è già esaurito... sembra che siano già alla seconda produzione...

Perdonami solo una precisazione per onor di cronaca. La settimana scorsa ero in NetBA, il loro dir. comm mi parlava di gennaio/febbraio per l'inizio della commercializzazione dell'open. :)

Inserita:

mentre per la fase di test, alcuni Open erano stati già dati agli sviluppatori più stretti.

del_user_56966
Inserita:
il loro dir. comm mi parlava di gennaio/febbraio per l'inizio della commercializzazione dell'open.

probabilmente parlava di commercializzazione ma come dici tu il rilascio per gli sviluppatori è già in corso...

ne ho già uno qui... ;)

Inserita:
ne ho già uno qui... ;-)

allora potrai togliermi una curiosità...nel sistema HomePLC Open cambia solo il plc, i master/slave/moduli speciali rimangono gli stessi?

del_user_56966
Inserita:
allora potrai togliermi una curiosità...nel sistema HomePLC Open cambia solo il plc, i master/slave/moduli speciali rimangono gli stessi?

si tutti gli HomePLC per standard sono intercambiabili tra loro... :)

Inserita:

Ciao aleandro ... Intanto ti ringrazio per le risposte che finora mi hai dato... Le ho apprezzate molto... Purtroppo in questo momento sono in treno... Ma volevo almeno per adesso ringraziarti ...

Di mondi pazzi pazzi sono avvezzo ... Non é certo il primo in cui mi imbatto ... Anche se devo ammettere essere un tantino insolito per me... Grazie anche per i suggerimenti di passare a xcomm o alla versione open di homeplc... Ma non sono tipo da arrendersi alle prime difficoltà ... Quindi se hai un po' di pazienza e voglia di starci dietro ...

Mi sa che mi conviene aspettare di arrivare a casa prima di continuare a scrivere perché mi sta venendo il mal di mare ... :)

Ma intanto ti lascio con una domanda ... Perché dici che xcomm è più performante di modbus ? Forse ti riferisci unicamente alla gestione degli eventi? O anche nella gestione del protocollo stesso? Perché xcomm non lo conosco ma modbus non lo trovo particolarmente prolisso ...

A presto

Nicolacontrolli
Inserita: (modificato)

nelle applicazioni in cui si usa xcomm pur essendo su bus si ha invece la sensazione che tutto avvenga in modo parallelo, arrivano eventi di controllo accessi,

termoregolazione, controllo del dmx ecc... assieme alla diagnostica,

l'effetto è quello di immediatezza cosa che col Polling classico non si ha!

Modificato: da Nicolacontrolli
Inserita:

rieccomi qua a macinare idee...

torniamo a bomba su una nuova (??) (im)probabile gestione di eventi sul homeplc...

in questo momento non ho a disposizione sotto mano la documentazione... però se non ricordo male mi pare di aver visto che con LH è possibile scrivere sul plc un watchdog (che per definizione nel mio mondo è un qualcosa che gira in background e che osserva il variare di qualcos'altro... sbaglio? me lo immagino come una sorta di programmino residente sul plc che in qualche modo gira parallelamente al progamma principale... mi pare un po' troppo ambizioso pensare ai thread in questo contesto... magari più una sorta di TSR del buon caro vecchio DOS)

presupposto che ciò sia vero... mi occorre sapere se sia possibile (e la risposta credo proprio che sia affermativa) e come programmare l'homeplc tramite un linguaggio strutturato (non grafico) e se è possibile (e anche qui credo che la risposta sia affermativa) costruirsi delle proprie librerie di funzioni da caricare sul plc...

infine, presupposto (sempre) che *tutto* questo sia vero, mi serve sapere se è possibile tramite linguaggio strutturato (o anche tramite quello grafico in prima battuta) pilotare la seriale e inviare messaggi personalizzati via seriale indirizzati all'host... oppure, visto che tutto è mappato nei registri, se esistono registri che mappano direttamente la comunicazione seriale... del tipo "metto una word in un determinato registro e me lo ritrovo in qualche modo sull'host" (anche se questa cosa la vedo possibile ma piu' improbabile)

a questo punto... brancolando nel buio, attendo qualche lume (sperando di non averli persi tutti nel frattempo) :)

e intanto auguro una buona serata

del_user_56966
Inserita:

Se ci spieghi cosa devi fare si fa sicuramente prima!! ;)

del_user_56966
Inserita:
si si, lo so che esiste anche xcomm... ma io vorrei realizzare un qualcosa che (mi) costi poco e, soprattutto, sia cross-platform...

se è questo il fondamento va premesso che nel senso di costare poco sicuramente è meglio XComm

è gratuito è già tutto pronto quindi oltre al non costare nulla come licenza non costa neppure di sviluppo (le ore di sviluppo sono un costo da valutare)

inoltre il risultato finale è n... volte più potente visto che sfrutta funzioni native e eventi oltre chiaramente la diagnostica...

L'altro modo è il Modbus RTU ma questo per quanto standard non credo ci sia molto da aggiungere...

se poi prendi in considerazione HomePLC OPEN allora non vedo limiti di sviluppo qualsiasi cosa ci passi per la testa si può fare grazie a C++ oppure Java

come PHP ecc.. e anche con uso parallelo dei vari linguaggi... :)

Inserita:
è gratuito è già tutto pronto quindi oltre al non costare nulla come licenza non costa neppure di sviluppo (le ore di sviluppo sono un costo da valutare)

ti chiedo conferma se ho capito bene, ma per quel che mi hanno detto ABS XComm è gratuito fino a 10 nodi di progetto poi la licenza ha un suo costo....aggiungo un costo rilevante.

grazie

Inserita:
Se ci spieghi cosa devi fare si fa sicuramente prima!!

beh... presto detto... desidero realizzare un software di supervisione programmabile... :lol:

e diciamo che sono all'incirca al 90%... solo che attualmente la gestione degli eventi è realizzata mediante polling sul plc... mentre vorrei che la gestione fosse piu' simile ad interrupt... ovvero che sia il plc che, quando accade qualcosa di quelle tenute sotto controllo, avvii una comunicazione verso l'host...

ora... dato che la libreria di comunicazione via modbus rtu l'ho scritta io... non mi costa niente discostarmi leggermente dallo standard per gestire qualche messaggio in piu'... che però chiaramente deve partire dal plc (ecco il perchè di tutte le domande di cui sopra...)

pertanto mi occorre la possibilità di poter dire al plc "ok... adesso manda questo messaggio all'host" dove ovviamente devo poter decidere io il messaggio o anche appoggiarmi a qualcosa di eventualmente esistente ben definito...

utopia? beh... mi sembra tutto fattibile (e visto che xcomm lo fà è fattibile sicuramente visto che il plc in questione è lo stesso!)

una bella sfida, eh? :lol:

lo so, sono fuori di testa... ma se qualcuno ogni tanto non sbatte la testa da qualche parte fino a rompersela saremo costretti sempre ad andare tutti con la stessa roba... meglio per tutti un mondo dove ci sa piu' concorrenza, no? :lol:

Inserita:
ti chiedo conferma se ho capito bene, ma per quel che mi hanno detto ABS XComm è gratuito fino a 10 nodi di progetto poi la licenza ha un suo costo....aggiungo un costo rilevante.

Fino a 10 nodi si intende fino a 10 HomePLC (o altro) tutto ciò che c'è sotto il nodo supervisionato è ininfluente.... :)

Quindi è gratuito nella stragrande maggioranza di impianti supervisionati.

Per impianti con oltre 10 HomePLC, diventa comunque gratuito, in quanto il peso commerciale dell'hardware di questa tipologia di impianti è enormemente superiore al costo di licenza.... :thumb_yello:

Dove non è gratuito (oltre 10 nodi di camere d'albergo, o controlli accessi o termoregolatori o contabilizzatori consumi, ecc) ci sono 2 tipi di licenza:

1. Building - quando supervisiona solo apparati "NetBA"

2. FULL - quando oltre agli apparati NetBA deve gestire anche centrali antincendio, PLC industriali, analizzatori di rete, sistemi gestione luci di emergenza, ecc

I costi di queste licenze comunque, per quello che fanno e danno, sono molto competitivi.... :superlol:

del_user_56966
Inserita:
ti chiedo conferma se ho capito bene, ma per quel che mi hanno detto ABS XComm è gratuito fino a 10 nodi di progetto poi la licenza ha un suo costo....aggiungo un costo rilevante.

Visto che c'è già abbastanza confusione diciamo cosi...

Utilizzando gli HomePLC (era questo il contesto attuale) ABS XComm è sempre gratuito fino a 999 HomePLC... :thumb_yello:

l'unica attenzione è che dopo i 10 HomePLC va comunque abilitato per l'uso di 50, 100, 150... e cosi via HomePLC....

è più chiaro?.. ;)

del_user_56966
Inserita:

per Abilitare gratuitamente un Framework per utilizzare 40-50 HomePLC o più...

richiede solo l'invio del codice fornito dal Framweork stesso... nulla di complicato!... :lol:

del_user_56966
Inserita:
utopia? beh... mi sembra tutto fattibile (e visto che xcomm lo fà è fattibile sicuramente visto che il plc in questione è lo stesso!)

sicuramente non è Utopia!

ma dovresti conoscere a fondo l'architettura della tecnologia che per quanto considerata di sicurezza non è pubblica...

anche sniffando il protocollo (qualcuno mi diceva che ci ha provato varie volte...) il risultato è che non si riesce a comprenderne il meccanismo a fondo...

nessun altro protocollo che conosca assomiglia neppure lontanamente all'XComm se non per la forma classica di tutti i protocolli....

ora... dato che la libreria di comunicazione via modbus rtu l'ho scritta io...

il problema nell'uso del Modbus RTU è che essendo uno standard se lo modifichi non è più il Modbus originale... :)

se devi fare qualcosa su questi sistemi l'unica alternativa valida se ti conoscono è che ne parli col gruppo di sviluppo!.... ;)

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...