sergio.marcianelli Inserito: 10 novembre 2009 Segnala Inserito: 10 novembre 2009 Buona sera a tutti, sto cecando di supervisionare il piccolo impiantino fatto con il kit start della HomePlc con il VisualBasic 6.0. Riesco a far accendere le luci scivendo il valore sulle uscite (o su relè che comandano le uscite) con il codice XComm1.WX 0,1,1,1. Ma non riesco a vedere se una uscita è attivata tramite i led che la libreria di grafica avanzata mette a disposizione. Importando il simbolo led sul form non riesco a capire se devo comandarlo da codice (visto che con le propietà dell' oggetto non ci riesco comunque). Spero di essere stato chiaro, in attesa di vostri preziosissimi consigli vi auguro una buona serata.Sergio
del_user_56966 Inserita: 11 novembre 2009 Segnala Inserita: 11 novembre 2009 Vedo un po di chiarirti le varie funzioni di lettura/Scrittura digitale del Framework ABS-XComm,Lettura di uscite digitali %QX si utilizza la funzione XComm1.PLC_OUToppure indifferentemente per Scrittura/Lettura XComm1.WYLetture ingressi Digitali %IX si utilizza la funzione XComm1.PLC_INLettura/Scrittura relè interni %MX si utilizza la funzione XComm1.WRLe risorse disponibili, gestibili tramite queste funzioni sono elencate nell'_help del framework...Chiaramente le uscite che si possono comandare da Visual Basic sono solo quelle libere da logiche interne già programmate..infatti se comandi un uscita che fa già parte di una logica questa assumerà sempre il valore scritto continuamente dalla logica stessa,quindi in quel caso non si deve comandare l'uscita ma un relè interno che seguendo la logica programmata gestisca l'uscita...ti faccio un semplice esempio...Lo schema seguente pone un relè interno a comando di un uscita (la prima del PLC)il Rung successivo è identico al primo ma al posto degli indirizzi reali in IEC metto degli Alias per facilitarne la comprensionevisto che la logica non cambia tu metti l'indirizzamento che più ti piace... In questo caso non puoi comandare l'uscita %QX0.0 perché è già comandata dal programma, ma devi agire sul relè %MX400.0attuando questo si comanda direttamente l'uscita, tra questi due poi ci può essere un mondo di logica.. ma non complichiamoci la vita adesso... Quindi da Visul Basic tramite l'oggetto XComm++ vado a selezionare la funzione XComm1.WR e inserisco come indice del relè lo zerovisto che il 400.0 corrisponde a R0, il 401.5 al R15 e cosi via...Stop il controllo è finito attivando a 1 oppure a 0 da questa funzione si opera direttamente sul relè del PLC che agirà sull'uscita rispettando tutta la logica desiderata e questo è sufficiente per il telecontrollo sia da un unico PC sia da tutte le postazioni connesse su reti Internet/IntranetSe al contrario vuoi usare un oggetto grafico devi scrivere il valore del relè direttamente nelle proprietà dell'oggetto,nella voce status metti R0 per indicare %MX400.0 e nella voce Marker metti sempre R0 se vuoi che l'oggetto si aggiorni con questo oppure Y0 se vuoi che l'oggetto si aggiorni al modificarsi dell'uscita %QX0.0 Il numero di HomePLC è quello con cui ci comunichi dal server ( e penso che avrai lasciato il numero 1..!)Attento che se non metti l'oggetto di sincronizzazione gli oggetti non vengono aggiornati, quindi devi solo selezionare tra i controllil'oggetto "Object Syncronizes" e incollarlo nel Form, non richiede altro che essere posizionato...il tempo dell'oggetto Object Syncronizes è anche il tempo di refresch a video di tutti gli oggetti grafici, oltre questo cliccando sull'oggettoti crea una sub routin dove si può scrivere del codice che verrà eseguito con quella cadenza temporale...
sergio.marcianelli Inserita: 11 novembre 2009 Autore Segnala Inserita: 11 novembre 2009 Grazie mille aleandro, sempre molto esauriente, il metodo di lettura e sicrittura mi era chiaro (ho letto abbastanza l'.), non riuscivo a far accendere le luci (led). Visto che mi trovo faccio un altra domanda:come mai con gli stessi oggetti (pulsanti) e lo stesso codice con VB6 funziona invece con access mi da l'errore "oggetto non trovato?Grazie mille anticipatamente
del_user_56966 Inserita: 11 novembre 2009 Segnala Inserita: 11 novembre 2009 come mai con gli stessi oggetti (pulsanti) e lo stesso codice con VB6 funziona invece con access mi da l'errore "oggetto non trovato?Questo errore è tipico, il compilatore controlla il nome dell'oggetto e se questo non corrisponde a quello realeda questa segnalazione....In realtà VB6 prende per riferimento il nome scritto nelle proprietà dello stesso mentre per altri contenitori potrebbe non essere lo stessoper esempio in Dot NET la classe XComm1 del VB6 prende il nome di AxXcomm1 mentre in genere nell'ambiente OFFICE si fa riferimento allaclasse primaria dell'oggetto in questo caso per XComm sarebbe Drive_XComm.XCommSi deve sapere che non tutti gli oggetti nati per VB6 possono girare correttamente su altri ambienti per esempio il contenitore potrebbe non disporredella trasparenza e quindi l'oggetto risultare con contorno oppure potrebbe non disporre la proprietà refresch che permette di aggiornare gli oggetti grafici ecc..Se vuoi vedere come si utilizza un oggetto tipo XComm da ACCESS cerca nel CD di ABS tra i demo trovi una cartella nominata "Office"dentro c'è un demo per Access dal nome "TestXComm.mdb"nel codice di VBA vedi come si istanzia la classe per utilizzare eventi e il codice anche con gli HomePLC...
sergio.marcianelli Inserita: 14 dicembre 2009 Autore Segnala Inserita: 14 dicembre 2009 buona sera, sono di nuovo qui, ora la mia supervisione funziona alla perfezione, che potenza!Però ho ancora qualche problema con quella cosa ostica che si chiame Visual Basic. Scherzi a parte il mio quesito è questo:vorrei poter impostare il tempo del temporizzatore scale direttamente dalla mia supervisione, o impostare qualche altro parametro, ma non riesco a trovare il codice giusto, non so se usare una casella di testo o altro, non sono molto pratico del VB, anche se ho scaricato il manuale e ho iniziato a sfogliarlo (1016 pagine). Quindi mi piacerebbe sapere come posso scrivere un valore numerico ne mio blocco funzione ITERAL direttamente da visual basic.Grazie mille anticipatamente.Sergio
del_user_56966 Inserita: 14 dicembre 2009 Segnala Inserita: 14 dicembre 2009 se ho compreso quello vuoi fare...direi che è normale poter scrivere le risorse che sono riportate sul manuale direttamente in un registro di memoriadi ogni dispositivo che ne possieda... Nel caso di un HomePLC o di un PLC la libreria utilizzata nel programma, non deve utilizzare un valore costante ma sempre un valore letto da un registro,l'uso di un registro scrivibile vale anche per le reference delle librerie...nel caso degli HomePLC i registri da 1000 a 1999 sono riservati al programma utente e sono di tipo non ritentivo,mentre quelli da 2000 a 2700 sono sempre per la programmazione utente ma sono ritentivi (ovvero rimangono memorizzati anche se il PLC viene spento..)Quindi per scrivere un valore si utilizza principalmente la funzione DTHP (per gli HomePLC) e DT (per i PLC Industriali) altri dispositivi dispongono di funzioni diverse quindi va visto caso per caso...Esempio di scrittura con HomePLC,XComm1.DTHP "NumeroRegistro", NumPLC, NumServer, "valore da scrivere", Passwordesempio per PLC Industriale:XComm1.DT "NumeroRegistro", NumPLC, NumServer, "valore da scrivere", Passwordtutti questi esempi sono mostrati nel demo XComm++ contenuto nel CD di ABS-XComm...
del_user_56966 Inserita: 14 dicembre 2009 Segnala Inserita: 14 dicembre 2009 Però ho ancora qualche problema con quella cosa ostica che si chiame Visual Basic.è si è proprio ostico!!vedi come difficile fare una completa supervisione grafica del sistema di sicurezza...LINK secondo me non ci riesce nessuno...troppo troppo difficile!!...
sergio.marcianelli Inserita: 14 dicembre 2009 Autore Segnala Inserita: 14 dicembre 2009 Grazie mille Aleandro,ma il mio dubbio era più specifico lato VB, nel senso che: prendo una casella di testo è gli do il codice di scrittura registro DTHP? il mio è propro un dubbio pratico di come farlo in VB. poi ad esempio una volta che inserisco la casella dove scrivere il valore dovrei avere un pulsante per dare la conferma al scrittura del registro? Mi scuso anticipatamente, ma devo essere proprio imboccato come un bambino .Grazie mille anticipatamente
del_user_56966 Inserita: 14 dicembre 2009 Segnala Inserita: 14 dicembre 2009 (modificato) vorrei poter impostare il tempo del temporizzatore scale direttamente dalla mia supervisione,Nel caso specifico al posto del IDENT (che è un tipo "costante") devi mettere una "READVAR" e come risorsa metti per esempiola %MW1000 poi da XComm ++ per leggere il valore scrivi..Label1.caption = XComm1.DTHP ( 1000, 1, 1 ) '/ ovvero lettura del valore del registro 1000 del HomePLC 1 connesso al server 1(di solito queste letture sono eseguite nell'evento di un Timer, si può usare quello originale di VB, come il Timer dell'oggetto sincronizzatore di ABS)mentre per la scrittura puoi usare una TextBox e un pulsante, per esempio scrivi il valore nella "text1" e tramite il pulsante lo invii alla libreria "READVAR" collegata all'ingresso al Timer (TOF o TON ecc.)Codice da inserire nel pulsante (Button) a video.. per entrare in programmazione e creare la routin, basta farci click sopra..e sei qui...Private Sub Button1_Click ()End sub Ora scrivi il codice d'invio...Private Sub Button1_Click ()XComm1.DTHP 1000, 1, 1, Text1.Text , "pippo"End subcome vedi nella lettura si usano le parentesi mentre nella scrittura no!oltre questo nella lettura i parametri opzionali (quelli racchiusi tra le parentesi quadre [] sono opzionali!)Ora se si preme il pulsante a Run-Time il valore contenuto in "Text1" viene scritto nel registro 1000 e quindi il Timer viene settato col nuovo valore... I tempi in ingresso al timer sono a 32 bit (TIME) quindi il valore numerico dovrà corrispondere a questa risoluzione sulla base del tempo dichiarato per quel tipo di Timer! poi ad esempio una volta che inserisco la casella dove scrivere il valore dovrei avere un pulsante per dare la conferma al scrittura del registro? ti consigliavo la visione del demo XComm++ sul CD perchè nel form 2 di questo ci sono molti esempi di scrittura dei registri!... Modificato: 14 dicembre 2009 da Aleandro2008
sergio.marcianelli Inserita: 14 dicembre 2009 Autore Segnala Inserita: 14 dicembre 2009 GrazieeeeeeeeeeeeeeeeeeeeeIl CD Demo l'avevo visto ma non ero riuscito ad estrapolare quello che mi interessava.Questa era proprio la risposta che mi serviva. Grazie davvero, sempre molto professionale. Se non ci fossi bisognerebbe inventarti............. Grazie mille di nuovo.Buonanotte
del_user_56966 Inserita: 14 dicembre 2009 Segnala Inserita: 14 dicembre 2009 Se non ci fossi bisognerebbe inventarti..........La moglie non la pensa cosi...
Simoand Inserita: 28 giugno 2010 Segnala Inserita: 28 giugno 2010 Salve a tutti non so se è possibile ma volevo chiedere se qualcuno mi può indicare passo passo come poter accendere out 1 del mio eplc da supervisione? Io accendo eplc indirizzo 1 e con il ladder metto MX400.0 che corrisponde a Ro che comandi QX0.0 out 1 eplc lo faccio partireApro Vb6 e il demo Xcomm++ quindi textXcomm31vbp e da qui buio...
del_user_56966 Inserita: 28 giugno 2010 Segnala Inserita: 28 giugno 2010 da Home&Building apri la finestra di TEST I/O se digiti qui la risorsa che vuoi programmaretipo la %MX400.0 trovi già quella corrispettiva in VB6,per la %MX400.0 vedrai che ti propone R0questo perchè i bit del registro IEC %MX400.0 fino a %MX400.15 corrispondano al R0 - RFquelli del registro %MX401.0 - a %MX401.15 corrispondonoR10 - R1Ftrovata la risorsa che vuoi utilizzare adopra la funzione XComm1.WR per gestirla (trovi come anche sul form2 dll'esempio XComm++)mentre per i registri ritentivi %MX500.0 in poi devi usare XComm1.WL...
Simoand Inserita: 2 luglio 2010 Segnala Inserita: 2 luglio 2010 Scusa ma home&building quello del menù a tendina ghost?
giuseppecardace Inserita: 2 luglio 2010 Segnala Inserita: 2 luglio 2010 Scusa ma home&building quello del menù a tendina ghost? Ciao
Simoand Inserita: 24 settembre 2010 Segnala Inserita: 24 settembre 2010 Salve a tutti ecco ritornato l'ignorante di Visual basic... in questo periodo ho provato molte cose carine con il plc il ladder e i suoi vari accessori ma credo che la cosa più interessante sia la supervisione... come inizialmente detto non mi ricordo quasi più niente di vb6 fatto a suo tempo alle scuole quindi volevo chiedere un consiglio: Conoscete un buon manuale di base per riprendere in mano vb6? quacuno riesce a farmi un esempio passo passo per accendere l'out1 del plc con un semplice button? vi ringrazio
del_user_56966 Inserita: 24 settembre 2010 Segnala Inserita: 24 settembre 2010 l'accensione di un uscita digitale dal framework (poi che sia VB6 o altro è la stessa cosa..)sempre che l'uscita sia libera da logica nel programma dell'HomePLC è questa:XComm1.WY (Numero uscita), (Numero HPLC), (NumServer), (Valore = 0/1), (Password)con zero l'uscita va a OFF con 1 l'uscita va a ON... se al contrario devi pilotare un uscita con logica dovrai inserire nella logica un relè e agire su questo tramite la funzione:XComm1.WR (Numero uscita), (Numero HPLC), (NumServer), (Valore = 0/1), (Password)ricorda che il relè %MX400.0 in ABS è il primo relè (R0)..
Simoand Inserita: 24 settembre 2010 Segnala Inserita: 24 settembre 2010 grazie aleandro questo lo avevo anche già letto in altri post ma quello che non capisco è ancora più a monte credo... io posso fare un nuovo progetto in vb6 con un normale button per comandarla? dovrò mettere delle librerie do comunicazione col plc? sono costretto ad aprire un esempio che trovo nel cd? perchè ho provato ad aprire il demo xcomm++ ma non ne salto fuori...
del_user_56966 Inserita: 24 settembre 2010 Segnala Inserita: 24 settembre 2010 io posso fare un nuovo progetto in vb6 con un normale button per comandarla?si incolli un Button sul form esegui un click su questo e scrivi la funzione sopra dentro l'evento Click del Button!dovrò mettere delle librerie do comunicazione col plc? sono costretto ad aprire un esempio che trovo nel cd? perchè ho provato ad aprire il demo xcomm++ ma non ne salto fuori...- devi installare il Server ABS - poi da menu ghost eseguirlo - lanciare poi il programma Home&Building- eseguire al configurazione di un HomePLC e poi puoi passare alla programmazione, installato il framework anche il demo XComm ++ si rende disponibile!
del_user_56966 Inserita: 24 settembre 2010 Segnala Inserita: 24 settembre 2010 Se hai dubbi leggi l'_Help che trovi nella cartella C:\ActiveSystem\oppure premendo F1 una volta evidenziato il menu Ghost (quello in alto trasparente!)..
Simoand Inserita: 24 settembre 2010 Segnala Inserita: 24 settembre 2010 ma per eseguire la configurazione di un home plc intendi che lo vedi comunicare nel programma home e buildung?
del_user_56966 Inserita: 24 settembre 2010 Segnala Inserita: 24 settembre 2010 ma per eseguire la configurazione di un home plc intendi che lo vedi comunicare nel programma home e buildung?Certo,devi settare i seguenti parametri su CPU Address = 1 :-Selezionare il tipo di dispositivo (ABS ne supporta diversi) tu scegli HomePLC-Selezionare la porta seriale se lavori su USB (prima devi installare i drive che trovi nel CD)oppure l'indirizzo IP di rete e la Porta 5600 se lavori in rete con un ETM3 o similari..- Selezionare la velocità a 57600 bps (sulla destra)meglio se selezioni anche il flag "Not Cut" almeno finché non prendi confidenza con ABS...poi premi il tasto "Store" se il PLC è in linea vedi apparire la versione Firmware sulla destra in alto e lo status completo sulla sinistra!!...
Simoand Inserita: 24 settembre 2010 Segnala Inserita: 24 settembre 2010 perfetto allora fino a qui tutto ok vedo la versione da quì quindi posso passare alla programmazione giusto? un ultima domanda non ha importanza se il plc è in run o in stop giusto? l'importante è che se voglio supervisionare un uscita che è già gestita da ladder devo gestire un relè in parallelo?
del_user_56966 Inserita: 24 settembre 2010 Segnala Inserita: 24 settembre 2010 perfetto allora fino a qui tutto ok vedo la versione da quì quindi posso passare alla programmazione giusto?giusto!.. un ultima domanda non ha importanza se il plc è in run o in stop giusto? Dipende per cosa?l'importante è che se voglio supervisionare un uscita che è già gestita da ladder devo gestire un relè in parallelo?Un uscita libera da logica (non usata nel programma) la puoi comandare senza alcun relè, quindi direttamente con XComm.WYmentre un uscita che è usata nel programma (salvo che non la usi con i Set-Reset) la devi pilotare tramite un Relè con XComm.WR..
Simoand Inserita: 24 settembre 2010 Segnala Inserita: 24 settembre 2010 perfetto grazie adesso qualcosa inizia a funzionare anche se per accendere spegnere un out devo cliccare due volte sul tasto non credo sia la cosa giusta ma sono già contento che qualcosa riesco ad accendere evvai
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