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




Plc E Visual Basic


Messaggi consigliati

Inserito:

Salve a tutti..

Premessa: Per favore abbiate tanta pazienza.. :)

Di nuovo saluti a tutti, ho molte anzi moltissime domande da fare..

Vi spiego subito il mio problema ed il mio livello di istruzione..

Sono all'inizio ma proprio all'inizio.. Ho delle basi più che buone di visual basic e c... Quando ho saputo da un mio amico che era possibile unire PLC e VB e farli interagire tra loro ho subito cercato di informarmi il più possibile.. ma più mi informo più mi incasino ecco perchè chiedo aiuto a voi..

Ora, per la programmazione del plc non ci sono grossi problemi anche perchè non devo fare niente di speciale.. Il problema è che non so proprio come fare per trasferire dati e acquisire dati usando visual basic...

In casa ho trovato un PLC della Crouzet.. Millenium II, è piccolo, ha solo 8 entrate e 4 uscite ma per quello che voglio fare va più che bene..

Domade:

1) E' possibile far interagire questo mio PLC con Visual basic??

se non è possibile mi potete consigliare un PLC (a basso costo, sono ancora uno studente) per fare questo tipo di lavoro.. Mi bastano 8 entrate e 4 uscite.. Non cose grandi..

2)IMPORTANTISSIMO!!!!!!! Come faccio ad acquisire dati e mandare dati con visual basic??

cosa devo conoscere per far questo

3) Sapete consigliarmi una guida, magari anche online per fare tutto ciò!?

Vi ringrazio in anticipo per tutto quello che scriverete..

GRAZIE MILLE!!!

Dimenticavo.. Avrò cercato per più di un'oretta nel forum per cercare domande simili.. le ho trovate ma non è erano molto chiare e non rispondevano alle mie esigenze..

Grazie ancora..


Inserita:

Prima di tutto necessiti del software di programmazione del tuo PLC e dei relativi manuali di istruzione.

Cerco di spegarmi meglio. Il tuo PLC ha, come tutti i PLC, almeno una linea seriale che funziona da porta di programazzione. Per prima cosa devi reperire le informazioni se e come si può usare la porta di programamzione del tipo PLC (io non conosco questo PLC e non so risponderti).

Poi dovrai fare un programma applicativo per il PLC. In altri termini se, p.e., volessi leggere sul PC lo stato degli ingressi e pilotare le uscite del PLC, dovrai fare un programma che legge gli ingressi e li copia in byte di memoria, poi copia quattro bits di un altro byte di memoria sulle uscite. Poi dipende tutto da come funziona la porta del tuo PLC. Su alcuni PLC è possibile inviare degli specifici comandi, tramite seriale, per leggere e scrivere aree di memoria. Su altri, come il Siemens S7-2xx, è necessario scrivere un programmino che invia i dati alla linea seriale in un modo simile alla programamzione di un USART di micro.

Poi se, come scrivi, padroneggi discretamente il VB non hai problemi per la aprte su PC.

ifachsoftware
Inserita: (modificato)

La porta seriale , chiamala RS232 o RS485 o RS422 a seconda dei modelli utilizzati.

Ciao :)

Modificato: da ifachsoftware
Inserita:

AH, perfetto..

Per iniziare a provare a far qualcosina... che consigliate?

Io adesso a casa un crouzet millenium II, magari prendendomi un siemens s7-200 trovo anche più materiale in internet e magari più gente che sa come programmmarlo con VB..

che mi consigliate?

(quanto costa un s7-200??)

Grazie ancora di tutto

Inserita:

Dunque S7-2xx ==> si va da una CPU 222 fino alla CPU 226-XM i costi vanno da poco più di 200€ fino ad oltre 800€. Se fai una ricerca sul forum, credo nel forum PLC e Didattica, trovi una discussione recente con consigli, indirizzi e costi per lo starter kit dello S7-200.

Tieni presente che per programmare interfaccie con VB per S7-200 è necessario un pachetto Siemens piuttosto costoso (sempre con la funzione "cerca" torvi molto materiale sul forum PLC Siemns).

C'è anche la possibilità di programmare il PLC costruendo un programmino che tratta la porta di programmazione in modo "free port", mentre per le CPU S7-226 e S7-226XM è disponibile una seconda porta usabile direttamente in free port.

Non vorrei ingenerare confusione con il termine programmare. IN VB non si programma il PLC, si può solo visualizzare i dati da PLC o inviare dati al PLC. In altre parole si può implementare quello che viene definito un supervisore od uno SCADA.

A questo proposito, come puoi vedere nella Home page del forum, è in atto un progetto on line di SCADA programmato in VB

Inserita:

sei stato chiaro...

Ok, faccio prima a spiegarti quello che avevo in mente di fare..

Praticamente con visual basic gestisco un database di es 100 elementi..

Appllicando una funzione cerca in questo database volevo fare in modo che mi mandasse un segnale al plc con la posizione del mio elemento..

Esempio pratico che vi chiarisce:

Cerco un elemento che nel mio database che è alla posizione 50 e volevo che per esempio un motore mi facesse 50 giri.. (non giri/min)

Questo è quello che vorrei fare ma è solo "un'esperimento" per capire un pò come funziona il meccanismo PLC Visual basic..

Inserita:

In efetti puoi realizzare la parte di interfaccia umana in VB su PC, poi il PLC, ricevuto il dato, programmerà il numero di giri del motore (secondo il tuo esempio). Per far si che il tuo motore ruoti per 50 giri, nel PLC deve essere implementata una funzione di posizionamento. In altri termini necessiti di un motore di un encoder o altro dispsoitivo che permetta al PLC di contare i giri e/o frazioni di giro, una funzione PLC dovrà poi far partire il motore, acceleralo fino alla velocità prevista, rallentarlo fino alla frmata alla quota prevista (50 giri secondo il tuo esempio). La funzione PLC non la puoi scrivere in VB, almeno con i normali PLC di uso comune. Non so se esisto soft PLC programmabili in VB, ma ne dubito

Inserita:

Infatti per il conteggio dei giri volevo usare un micron che mi veniva azionato ad ogni giro del motore..

Ma se esiste un OCX per i siemens S7 da interfacciarli con VB dovra' esserci un modo per programmare (a me interessa leggere gli input e dare degli output) al PLC da visual basic..

Tutto questo e' a scopo di mio studio personale per imparare cose nuove per piccole prove che voglio fare che magari in futuro mi possa anche servire a lavoro visto che ora sono ancora studente..

Grazie a tutti!!! :lol:

Inserita:

Dimenticavo, tornando a quello che dicevi prima su quello che mi serve...

Te vuoi usare VB come input sul plc che poi lui usera' una funzione (al suo interno creata da me) per farmi fare uno certo spostamento...

Io volevo fare in modo d'avere questa funzione in VB (con una interfaccia umana) in modo da passare al plc il numero di giri che deve fare.. Praticamente volevo elaborare tutti i dati con visual basic e passare solo degli input (tramite l'rs-232) al plc che mi facesse uno spostamento e sempre con una funzione da visual basic leggere gli input dei giri che ha fatto il motore da plc per poi dirgli quando fermarsi..

Tutto questo e' realizzabile secondo voi??

Per me si.. Conosco gente che per esempio per il controllo qualita' fa un lavoro simile al mio che ho proposto sopra..

Grazie ancora..

Inserita:

Mandare dati ad un PLC tramite PC o altro è prassi normale. Rimane il fatto che, come nel caso che proponi, il controllo della machina lo fa il PLC. Cerco di spiegarmi meglio. Tu dici voglio che il mio motore faccia 15 giri, ammettiamo che sia un asincrono comandato da un semplice relè, con un micro che dia un inpulso al giro. Se tu pensi che il PLC si limiti a leggere gli impulsi ed a comandare la chiusura ed apertura del relè sarà un po' difficile (per non dire impossibili) che il tutto funzioni. Il PLC legge lo stato degli ingressoi ad ogni scansione di programma (ciclo), a meno che siano input speciali. Poi, comunque li deve trasmettere via seriale, al PC il quale elabora i dati ed invia i comandi, sempre per via seriale, Un po' lungo vero?

Se invece passi al PLC il solo dato del numero di giri da compiere, la cosa funziona, però il PLC necessita di un programma applicativo per realizzare questa funzione: conteggio e fermata a quota raggiunta (tralascio i problemi di rallentamento)

Inserita:

Se ho capito bene la funzione e tutto lo devo fare programmando il plc e al massimo passo al plc, tramite seriale, il numero di giri che deve fare..

Comunque il tutto viene gestito dal plc ed io mi creo una interfaccia umana in visual basic che in definitiva mi serve solo per dargli un numero.. Quindi non posso elaborare niente con visual basic ma solo passare questo input..

:( Pensavo fosse piu' "aperto" il plc :D

Se e' cosi' non mi resta altro che capire come mandare questo dato (numero di giri da fare) al plc..

:D Come si fa'?

Sapresti dirmelo o almeno indicarmi dove posso informarmi??

visto che e' prassi normale..

Un'altra domanda pero' che non capisco bene una cosa..

Ma io con un pc, un plc ed il suo specifico programma riesco a vedere lo stato del plc?? Riesco a monitorare le entrate e uscite?

E se riesco a programmare un plc da pc per forza si potra' programmarlo da visual basic (sempre usando il suo linguaggio o in assembler)

Grazie ancora Livio sei gentilissimo

Inserita:

Parto dall'ultima domanda.

Prima di tutto dovresti sapere come è fatto un PLC. Il PLC può essere paragoano ad un PC, dotato di I/O e con un sistema operativo diverso da quelli che conosci. Questo sistema operativo fa "girare" in back graound tutti i task di sistema, che sono invisibili, poi legge gli ingressi e li mette in una tabella immagine, cede il controllo al programma applicativo (quello che scriveresti tu) e, altermine di questo, copia i registri immagine delle uscite sulle uscite fisiche riprendendo poi con il back graund. Ovviamente quanto esposto è molto semplificato.

Ora VB è un programma specifico per sistema operativo WIN, il suo codice è interpretato, anche se l'interprete è più sofosticato ed efficiente del vecchio Basic.

Per programmare direttamente un PLC (parlo per esperienza diretta perchè l'ho fatto a suo tempo) devi conoscere:

1 - il "motore", ovverossia il processore impiegato.

2 - i legami con l'HW: indirizzi, tipo di connessioni, etc.

3 - come è strutturato il sistema operativo

4 - come "linkare" il programma applicativo con il sistema.

Per comunicare con il PLC dipende dal tipo di PLC. La cosa migliore è consultare il manuale del PLC interessato. Per S7-200 lo trovi sul sito Siemens (nella sezione link dovrebbe esserci il link relativo).

Se guardi nella sezione didattica del forum, c'è un mio tutor sui controlli, negli esempi allegati trovi dei driver per la seriale dello S7-200, in modalità free port. questo potrebbe essere uno spunto su come comunicare con il PLC.

Inserita:

Grazie Livio..

Pensavo anch'io di adottare un siemens S7-200 ma il problema e' che io sono uno studente che voleva provare tutto cio' a scopo educativo.. quindi non ho la disponibilita' di spendere 200 euro per un plc per imparare.. Volevo cercare di far qualcosa con un plc che ho trovato in casa della crouzet il millenium II.. Ora vedo se riesco a procurarmi un siemens.. Fra un po' a mantova c'e' la fiera dell'elettroamatore o raba del genere magari li trovo qualcosa a basso costo..

Grazie ancora...

Comunque mi rifaro' vivo perche' devo riuscirci :D:D:D

Inserita:

Perchè non ti rivolgi alla Crouzet per avere i manuali ed il software di programmazione? Prova sul sito della Crouzet. Spesso i piccoli PLC hanno software gratis o demo temporanee che funzionano in tutto e per tutto

Inserita:

Grazie livio.. sabato in fiera a bologna c 'era uno stand della crouzet ma sfortunatamente mi hanno detto che non posso fare niente.. cioè è un lavoro troppo lungo da fare e non hanno niente da darmi.

Grazie ancora a tutti..

Adesso parlerò con un ingegnere che lavora nel settore che fa apparecchiature di vario genere che riescono ad interagire con vb.. è un pò un casino da spiegare comunque si riesce tramite la com far funzionare un'apparecchiatura che lui si crea..

Mi faccio spiegare (e magari me lo fa) un apparecchio che mi apra un interuttore sotto un mio comando da vb... Soltanto tramite la com senza plc..

Ciao a tutti

Inserita:

CIAO!! ANCHE IO SONO MOLTO INTERESSATO A QUESTA DISCUSSIONE....POTER COMUNICARE ATTRAVERSO LA COM CON VB,CON IL PLC SAREBBE GRANDE.....

A ME PERSONALMENTE CONOSCERE LO STATO DEGLI INGRESSI E USCITE MI AIUTEREBBE A CREARE ATTRAVERSO VB UN SINOTTICO CASALINGO MA INTERESSANTE......

IO PERSONALMENTO RIESCO AD INTERRAGIRE ATTRAVERSO LA COM CON UN INTEGRATO CON VISUAL BASIC,IN MODO DA POTER ATTIVARE DEI RELE' O ALTRO.....

COMUNQUE SE HAI DELLE INFORMAZIONI IN RIFERIMENTO A VISUAL BASIC-PLC SIEMENS MI FARESTI UN GRANDE FAVORE FARMELO SAPERE....GRAZIE

QUESTO E' IL MIO INDIRIZZO nikydibes_at_libero.it

Inserita:

ciao niky..

Da quel che ho capito posso dirti questo:

Da VB posso mandare il valore di una variabile al plc.. Questa variabile poi verra' "usata" attraverso il programma che hai fatto nel plc..

Per poter far questo necessiti di un plc che sia in grado di comunicare con visual basic attraverso l'rs-232 e da quel che ho capito il meno costoso di questo plc si aggira attorno hai 200 euri..

Ora, a gestire gli input ed output ci pensa il programma contenuto nel PLC. Se facessi un sistema del tipo leggi lo stato degli ingressi in rs232, elabori in vb e riscrivi sulla seriale il settaggio delle uscite sarebbe un lavoro lunghissimo ma proprio lungo..

Per interagire con il plc da vb devi avere l'ocx che te lo deve fornire il costruttore dell'hardware del plc.. l'unico a conoscere il firmwere.. o se sei veramente bravo magari riesci a farti qualcosa.. non so

Alla fine utilizzando l'ocx vai a puntare in lettura/scrittura le variabili del plc (che possono essere input,output o variabili generiche). Quello che normalmente si fa è di modificare i valori di alcuni parametri: ad esempio se haiun temporizzatore che mantiene alta l'uscita per un tempo. appoggi questo tempo in una variabile (sempre nel programma plc..) e la puoi leggere da vb o modificarla tramite le funzioni di lettura/scrittura dell'ocx.

Comunque LIVIO ne sa veramente tante ( ;) ) e ti conviene farti spiegare da lui...

IMPORTANTE: te sei solo capace di comandare dei rele' o sei anche in grado anche di fare un conteggio in vb utilizzando quindi leggendo dei segnali che provengono per esempio da rele'..

Sono anch'io interessato a quello che hai detto te..

Mi spighi meglio questo:

[iO PERSONALMENTO RIESCO AD INTERRAGIRE ATTRAVERSO LA COM CON UN INTEGRATO CON VISUAL BASIC,IN MODO DA POTER ATTIVARE DEI RELE' O ALTRO.....]

Cosa mi serve per far quello che fai te (integrati, rele'.)?

Che tipo di rele'?

Comunichi con MSCOMM?

Sai indicarmi qualche sito che parla di questo?

Grazie!!!!!!!!!!!!!!!!!!!!

Inserita:

Fado84, per quello che vuoi fare tu, il PLC è superfluo.

Se vuoi leggere e scrivere ingressi e uscite direttamente dal codice VB, hai semplicemente bisogno di schede di acquisizione dati con un numero opportuno di I/O, come quelle della National Instruments, che vanno inserite direttamente negli slot ISA o PC104 del PC. Insieme alla scheda ti danno anche gli OCX o le DLL per interfacciare il tuo codice con l'hardware.

Dovresti trovare anche qualcosa di più economico, ma magari meno performante, di NI, anche se ultimamente anche loro hanno adottato una politica dei prezzi più ragionevole.

Ciao!

Inserita:

grazie mille trunk..

Dove posso trovarle queste schede????

Mi sai dire +/- quanto costino??

Grazie ancora a tutti...

Inserita:

Concordo con TRUNC, non hai bisogno di un PLC.

Se vai qui http://www.visual-basic.it/ trovi due articoli di Antonio Giuliana che ti spiegano come costruirti un comtrollore di I/O usando VB ed un poco di hardware vario. Si ipotizzano alcune soluzioni di diverso grado di complessità.

Inserita:

Mi sembra di aver visto in rete una applicazione con l'utilizzo della porta parallela

Provo a cercarla di nuovo e vi posto l'indirizzo

  • 5 years later...
Inserita:

Salve a tutti!!

Sono nuovo in questo forum, e mi sono iscritto con l'intento di trovare qualcosa sulla programmazione ad alto livello dei PLC.

Dai miei primi risultati evinco che non ci siano grandi cose su questo argomento, la cosa viene spiegata abbondantemente da un post di LIVIO in questo forum che parla di strategie prettamente aziendali.

Ieri mi sono imbattuto su un PLC di produzione Samsung che si "lascia programmare" in visual basic.

Samsung mette a disposizione un tool per visual basic 6 e nel suo manuale ti istruisce su come configurare la comunicazione PLC-PC con un protocollo di comunicazione RE232.

Vi mando il link: http://www.panasonic-electric-works.it/pewit/it/html/743.php ma cercando ci sono anche altri modelli...

P.S.

Se avete a vostra disposizione dei programmini in VB che pilotino qualsiasi apparecchio automatico (es. un discenzore) mi fareste la cortesia di segnalarmeli? Anche se programmini molto semlpici.

del_user_56966
Inserita:

Fai riferimento a Sansung e poi posti un link Panasonic ? :blink:

Il riferimento di programmazione non è riferito alla programmazione della logica interna ma a quella dell'interfaccia grafica

per questo sia Panasonic che altri produttori mettono a disposizione delle librerie ActiveX per l'implementazione

su Visual Basic oppure VBA e quindi per i più disparati ambienti, bada che mi riferisco solo a ActiveX e non ad altri tipi di librerie in quanto

le librerie che non siano COM compatibili (chiamate anche col loro vecchio nome ActiveX) non supportano questa funzionalità.

In particolare se vuoi fare della programmazione da Visul Basic 6 come da Scada compatibili con controlli ActiveX puoi optare per

l'ambiente ABS-XComm che ti mette a disposizione sia librerie di comunicazione sia quelle grafiche per lo sviluppo e il telecontrollo

distribuito, visto che nella versione base è anche gratuito ti permette di prendere confidenza e creare queste interfacce senza spese accessorie,

nella programmazione da Visual Basic anche i PLC Pansonic sono pienamente supportati!

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