screwdriver Inserito: 13 novembre 2005 Segnala Share Inserito: 13 novembre 2005 Sto realizzando un driver Host Link per PLC Omron scritto in Java. In questo momento sto lavorando ad una versione da utilizzare per motivi personali, ma credo di poter dire che potrebbe essere di utilità anche per altri.L' idea di scrivere un driver da zero mi è venuta dopo aver visto diversi programmi scritti in visual basic che, pur comunicando con il PLC, inevitabilmente bloccavano l' interfaccia utente (la classica clessidra) fintanto che tutti i comandi non fossero stati eseguiti (alcuni secondi). A questo punto mi sono chiesto :"Ma come potrebbero mai questi programmi effettuare una lettura ininterrotta di alcuni dati sensibili e, in base al loro risultato, effettuare immediatamente altre operazioni?". Mi spiego meglio: immaginate di dover monitorare ininterrottamente alcuni bit e DM sensibili e, in base al loro valore, settare altri bit ed impostare altre DM, e già che ci siamo anche aggiornare questi dati in un database. Non che adesso sia impossibile, ma i programmi che ho visto si bloccano ongi qualvolta incominciano ad eseguire un polling continuo con la porta seriale rs232 (quindi addio interfaccia utente, aggiornamento database etc.). Quindi parte della programmazione della comunicazione viene eseguita nel lato PLC usando il comando TXD ad intervalli regolari, ma non effetuano sicuramente un polling (cioè in continuazione).Il driver che mi sto accingendo a scrivere invece gestisce il multithreading (che è parte integrante del linguaggio Java), e questo permette di effettuare il polling verso il PLC ininterrottamente e allo stesso tempo l' interfaccia grafica non si blocca ed è possibile gestire contemporaneamente altre attività come, ad esempio, l' aggiornamento di un database; tutto all' interno dello stesso programma. Inoltre questo non richiede nessuna programmazione lato PLC, la cui introspezione è garantita appunto grazie al protocollo Host Link.Inoltre il mio driver gestisce una lista di piorità, utile in quei casi in cui c'è la necessità di spedire immediatamente un comando al PLC senza che questo venga accodato agli altri.Lo stesso driver potrebbe essere utilizzato per realizzare un bridge (cioè un ponte) tra il PLC (o più PLCs) e le applicazioni che girano nel PC collegato o addirittura ovunque in internet. Potrebbe essere possibile monitorare un PLC via internet, comandare lo stesso PLC, magari volendo sognare ci si potrebbe collegare ad un PLC Omron via internet con il Cx-Programmer (cosa che in questo momento non mi risulta in quanto è possibile collegarsi solo con modem, ma correggetemi per favore se sto sbagliando!!!). Questo bridge, tra l' altro, permetterebbe almeno in teoria di poter accedere al PLC anche attraverso altri linguaggi come VB, C, C++, Delphi, ecc (premetto che ci vorrà del tempo).Un' altra cosa non secondaria è la mia volontà di fornire una documentazione facile ed accessibile ai più, che vorrei si complementi con il driver stesso.L' altra questione che sto valutando è come distribuire questo driver: a pagamento, shareware, freeware o magari open-source con licenza GPL. Quest' ultima formula è quella che preferisco per diversi motivi: innanzitutto perchè credo che gli utenti si sentano più sicuri nel sapere di avere accesso anche al codice sorgente, secondo perchè io stesso non ho la pretesa di aver fatto il miglior driver possibile (anche se sto dedicando molto impegno alla fase di test) e quindi non disdegnerei l'aiuto di qualcun' altro. E' anche vero però che se il driver funzionasse a dovere sicuramente centinaia di persone (ma si, abbondiamo, migliaia) lo utilizzerebbero nel loro lavoro che gli da diversi soldini, e quindi non mi sentirei assolutamente male se qualcuno in cambio mi riconoscesse magari 5, 10 o magari venti euro ogni tanto per il mio contributo, tramite quei sistemi di donazioni tipo paypal. Tra l' altro questo sarebbe per me, oltre ai commenti degli utilizzatori, il vero termometro del gradimento del lavoro e, nel caso che queste donazioni raggiungano una quota non irrilevante (sono proprio un' ottimista), anche il segnale di quanto tempo/risorse dedicare al suo miglioramento ed ampliamento (aggiunta di manuali, ampliamento dei comandi, risoluzione di eventuali errori etc. etc.). In caso contrario, se di donazioni ne arrivano poche, allora il driver sarà pur sempre disponibile (almeno lo spero) ma invece di migliorarlo mi dedicherei a fare dell'altro e se poi gli utenti non potrebbero utilizzarlo perchè manca la funzionalità XYZ, vorrà dire che tireranno fuori 699 dollari per comprarlo da chi gliela fornisce (per non avere donato 10 euro quando era ora). Fatemi pure causa, ma questa è una tendenza che secondo me andrà affermandosi nell' open-source. Se poi lo utilizzate per motivi hobbistici e senza fini di lucro oppure siete studenti, utilizzate pure senza farvi scrupoli.Premetto subito che benchè sia scritto in Java per il momento il driver è disponibile solo per piattaforma Windows. Concludo chiedendovi che cosa ne pensate. Siete interessati, almeno in linea di principio, a questo tipo di driver? Cosa ne pensate sul fatto che sia open-source? Ammesso e concesso che vedrà la luce e che mantenga le promesse, sareste disposti a tirare fuori 5, 10 o 20 euro ogni tanto (diciamo una volta all' anno tenendo conto che il suo utilizzo da parte vostra in progetti commerciali sia costante e comunque se il progetto è da 100000 euro, dai ragazzi che potete arrivare anche a 50 euro)? Avete altri consigli da darmi? Link al commento Condividi su altri siti More sharing options...
lfcc Inserita: 1 gennaio 2006 Segnala Share Inserita: 1 gennaio 2006 potresti rilasciare due driver uno per HostLink e uno per FINS protocol. Il primo lo potresti rendere disponibile liberament visto che e' limitato alla sola connessione seriale, mentre per il secondo potresti prevedere diverse opzioni di sviluppo e di acquisto. Quanto alle aspettative di possibile guadagno potresti prevedere una attivita' di sviluppo software su misura usando il driver che ti sei creato.Alcuni siti che propongono software opensource:driver per S7-200, Thomas Hergenhanh SCADA opesource, Thomas Hergenhahndriver per vari PLC in VisualBasic, l'autore fornisce i sorgenti a richiesta Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora