Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Settembre 18, 2014 alle 9:34 am in risposta a: PLC per visualizzazione dati tramite pagine Web #38418
Sergio Bertana
Amministratore del forumAbbiamo sviluppato un esempio di connessione ad un Web service (Scritto in PHP) utilizzando un comune modem GPRS (Puoi trovarlo in questo topic). Come vedi dall’esempio ci si appoggia ad un servizio di hosting gratuito come Altervista, nell’esempio il programma in PHP esegue l’invio di una eMail ma con semplici modifica potrà essere modificato per salvare dati in un database MySQL.
Naturalmente andrà scritta tutta la parte di gestione autenticazione utenti e di consultazione dei dati, ma avendo i dati in un SQL server tutte queste operazioni sono fattibili in modo molto semplice.
Settembre 18, 2014 alle 7:42 am in risposta a: PLC per visualizzazione dati tramite pagine Web #38415Sergio Bertana
Amministratore del forumPer quanto riguarda l’acquisizione dati la loro storicizzazione (Esempio in files formato CSV) e la visualizzazione su pagine web, possono essere utilizzati sia i sistemi con CPU Codesys (Topic) che quelli basati su CPU ARM7 LogicLab (Topic). I dati salvati in file CSV (Si potranno creare files di log mensili, mantenendo ad esempio gli ultimi 6 mesi) potranno poi essere scaricati tramite una connessione FTP.
Per quanto riguarda la visualizzazione dei dati tutti i modelli hanno un server web integrato, Codesys utilizza WebVisu (Topic) mentre le CPU ARM7 possono visulaizzare pagine htm (Topic). Per l’accesso da rete locale non ci sono problemi, ogni dispositivo avrà un suo IP e basterà digitarlo dal browser.
Parlando di visibilità delle pagine da Internet, occorre effettuare un NAT/PAT sul router per poter accedere alle pagine dei vari PLC. Ad esempio se si hanno 4 PLC, si mapperanno 4 porte del router in modo che consentano di arrivare ai 4 PLC.
Visto che mi citi la funzionalità “eWon”, ti ricordo che la stessa funzionalità è fornita dai pannelli operatore Weintek tramite l’EasyAccess 2.0. Quindi sarà il pannello operatore a gestire la connessione sicura attraverso la rete aziendale senza dover effettuare alcuna modifica alla configurazione, rendendo accessibile il pannello stesso ed i dispositivi a lui connessi.Settembre 11, 2014 alle 9:38 am in risposta a: Gestire motori passo passo con un sistema SlimLine #38413Sergio Bertana
Amministratore del forumSi certo collegando l’uscita DO00 con l’ingresso DI00 è possibile tramite l’FB SysGetCounter conteggiare gli impulsi generati dall’uscita PWM che sono inviati all’ingresso di clock del driver motore stepping (Vedi cablaggio). Agendo sul valore di Frequency è possibile comandare la velocità del motore, impostando il valore 0.0 il motore si arresta.
Con Duty è possibile impostare percentualmente il tempo di On/Off del segnale PWM in uscita, dovendo generare una onda quadra il valore di Duty può essere setttato al 50%. Però ricorda che se ti spingi a frequenze elevate può essere necessario modificarne il valore come indicato precedentemente.
Ecco lo screenshot di un programma ladder che gestisce l’uscita PWM e ne conteggia gli impulsi generati, allego anche il programma sorgente.
Settembre 11, 2014 alle 8:04 am in risposta a: Rete di comunicazione modbus tra moduli SlimLine #38410Sergio Bertana
Amministratore del forumNon mi spiego il problema che tu lamenti, non scrivi che tipo di protocollo Modbus tu stia utilizzando (Se Ascii, RTU o TCP). Essendo una connessione in RS232 consiglio il protocollo RTU (Il cui protocollo slave è già gestito nativamente dal sistema operativo). Il protocollo RTU ha un CRC di controllo che garantisce la sicurezza dei dati quindi ritengo impossibile ricevere pacchetti errati.
Se vuoi poter gestire dal modulo master anche la programmazione dei vari moduli slaves della rete dai una occhiata a questo topic.
Non so come hai gestito la sequenzialità delle interrogazioni sul programma master, il blocco funzione ModbusMaster permette di essere eseguito in cascata collegando l’uscita Done di uno sull’ingresso Enable di quello successivo e così via. L’uscita Done dell’ultimo FB andrà a fare ripartire la sequenza (Screenshot).
Non è che per caso hai un conflitto di indirizzi sui nodi slave, se usi la gestione da sistema operativo l’indirizzo si imposta dalla pagina web di configurazione (Screenshot).
Settembre 9, 2014 alle 4:30 pm in risposta a: Come utilizzare la SDCard per il salvataggio di file di log #38409Sergio Bertana
Amministratore del forumCome risolvere nel modo corretto la temporizzazione, nel forum troverai infiniti esempi di utilizzo del tempo di sistema, ecco come si può fare.
IF ((SysGetSysTime(TRUE)-Time) > 60000000) THEN
Time:=SysGetSysTime(TRUE); (* Time buffer (uS) *)
Fp:=Sysfopen(‘Storage/CLog.txt’, ‘a’); (* Open the file in “append” mode. *)… Altri statements di programma
END_IF;Nota: La variabile Time deve essere di tipo UDINT.
Settembre 9, 2014 alle 2:45 pm in risposta a: Come utilizzare la SDCard per il salvataggio di file di log #38408Sergio Bertana
Amministratore del forumVediamo di rispondere con ordine ai tuoi problemi. Il comando Format da una certa versione del sistema operativo è stato modificato, ora occorre indicare quale directory si vuole formattare e a quanti files si vuole lasciare lo spazio. Quindi il tuo comando Format Storage, 4 formatta la directory Storage per contenere 4 files che si divideranno lo spazio disponibile (Come riporta il comando Dir).Non capisco perché il client FTP non si connetta, non mi dici che sistema operativo stai utilizzando, con Total Commander e con l’esplora risorse di Windows 7 che uso abitualmente non ho mai avuto problemi (Topic) eventualmente controlla se hai l’ultima versione del sistema operativo. L’errore che hai commesso è gravissimo… non puoi mai fermare un programma PLC in un loop chiuso. WHILE (SysTime-Tempo) < 60000 DO END_WHILE; Questo fa intervenire il watch dog del sistema che reinizializza l’esecuzione che si richiude nuovamente nel loop infinito e viene nuovamente reinizializzata. Questo blocca tutte le risorse del sistema comprese le comunicazioni (Topic). Come se ne esce… il sistema dopo un certo numero di riavvii si arresta in stop e così è nuovamente possibile riprendere la connessione e caricare un nuovo programma.
Sergio Bertana
Amministratore del forumLa soluzione che prospetti è sicuramente valida, visto che mi parli di zona in cui operano dei radars ti ricordo che la frequenza dei 5 Ghz potrebbe essere in sovrapposizione alla frequenza di alcuni radars. Nel menù di configurazione della Nanostation dovrai attivare il DFS (Topic).
In alternativa puoi utilizzare dei dispositivi NanoStation Loco M2 che operano a 2.4 Ghz e che quindi non hanno problemi di sovrapposizione alle frequenze radar. Vista inoltre la ridotta distanza di collegamento e la direzionalità delle antenne non dovrebbero crearsi problemi con eventuali altre reti WiFi della tua zona.
Settembre 4, 2014 alle 7:12 am in risposta a: Visualizzare all’accensione pagina con logo azienda #38405Sergio Bertana
Amministratore del forumIl messaggio No response di default si attiva al primo errore di comunicazione, un errore può capitare anche a causa di un banale disturbo elettrico, quindi anziché disabilitare il messaggio consiglio di impostare un numero di reinvio comandi.
In questo modo un eventuale errore sulla esecuzione di un comando modbus (Può derivare anche da un disturbo elettrico), non attiva immediatamente la visualizzazione della finestra di errore, ma forza l’esecuzione di un nuovo comando. Il numero di tentativi si definisce nella finestra di Impostazione parametri di sistema, relativamente alla definizione dei parametri di comunicazione modbus (Vedi screenshot).
Sergio Bertana
Amministratore del forumSe spulci nel forum trovi esempi che eseguono la gestione della comunicazione sia su porta seriale che su TCP/IP. In generale ti ricordo che con la funzione Sysfopen puoi aprire lo stream di comunicazione (Porta seriale o socket TCP), la funzione ritorna un file pointer di tipo FILEP.
Passando il FILEP ritornato alle funzioni Sysfgetc e Sysfread potrai ricevere dati dallo stream, con le funzioni Sysfputc e Sysfwrite potrai inviare dati sullo stream dai una occhiata a questo topic e questo topic.
La funzione SysVarsscanf permette di controllare i dati ricevuti mentre con la SysVarsnprintf potrai comporre la stringa di dati con le tue variabili (Guarda ad esempio il programma in questo topic ed in
questo topic) e poi inviarla in uscita con la Sysfwrite.Settembre 4, 2014 alle 6:39 am in risposta a: Interfaccia web su terminali touch screen Weintek #38402Sergio Bertana
Amministratore del forumAggiungo che con la presentazione del nuovo EasyAccess 2.0 – Assistenza remota HMI-PLC si è finalmente superato il problema dell’IP statico e della apertura delle porte sul router di connessione Internet. Con l’acquisto di una licenza, EasyAccess 2.0 è possibile l’accesso remoto al pannello operatore e, in modalità passthrough, ai dispositivi (PLC o altro) ad esso connessi (in modalità seriale o Ethernet) senza nessuna configurazione di rete. Il sistema utilizza una connessione VPN protetta SSL che permette uno scambio sicuro di dati ed informazioni con impiego minimo di banda.
Sergio Bertana
Amministratore del forumA livello di programmazione il pannello operatore ed il Cloud HMI (cMT-SVR) si equivalgono, naturalmente il pannello operatore ha lo schermo touch screen integrato, mentre il Cloud HMI opera utilizzando una applicazione per smartphone, tablet o PC Windows.
Il cMT-SVR non ha la gestione VNC ma puoi agire sui comandi grafici del panello Cloud HMI dal tuo smartphone tramite rete WiFi o connessione Internet. Si possono avere fino a 3 connessioni contemporanee ed ogni connessione agisce in modo indipendente dalle altre.Avendo tutti i pannelli (Non cMT) la gestione del server VNC, tramite un client VNC puoi agire da smartphone anche sul pannello operatore (Topic). In questo caso però si tratta di una remotazione fisica dello schermo quindi le operazioni eseguite sul panello o sul client VNC sono visibili a tutti gli operatori connessi.
Naturalmente il pannello operatore và messo in un posto visibile, i miei clienti che operano in domotica hanno realizzato delle cornici per incassarlo nel muro, il Cloud HMI invece può essere posto in qualsiasi locazione basta sia connesso alla rete WiFi.
Ora parliamo di storage, i 256 Mb di memoria Flash non sono tutti disponibili per lo storage dei dati sono usati anche dal sistema operativo. Weintek mi dice che lo spazio di memoria libera è da considerare sui 32 MB e questo vale per entrambi i prodotti. Se aggiungi uno storage esterno SDCard o pen drive USB potrai utilizzare tutto lo spazio del dispositivo come storage per i trend (Topic).Settembre 2, 2014 alle 7:11 am in risposta a: Creazione di un file di log per registrazione variazione I/O #38400Sergio Bertana
Amministratore del forumSpulciando tra i vari topics del forum puoi trovare esempi per realizzare quello che ti occorre. In particolare modo il programma trattato in questo topic di cui puoi eseguire il download fa già qualcosa di molto simile alla tua necessità. Naturalmente per effettuare quello che ti serve il linguaggio ladder non è adatto, si può però per schematicità realizzare una FB che esegue la memorizzazione del log e poi gestirla il LD.
Come gestire la dimensione del file, come vedi nel programma WriteLog tutti i logs hanno la stessa dimensione, in questo modo raggiunto il numero definito è possibile riscrivere i log più vecchi ripartendo dall’inizio del file. Naturalmente non saranno più in ordine di data, ma basterà importarli in Excel e poi ordinarli.
Settembre 2, 2014 alle 6:45 am in risposta a: Errore in compilazione da XTarget 11 a XTarget 10 #38399Sergio Bertana
Amministratore del forumDa quello che dici riguardo ai tempi di download sullo SlimLine del codice compilato, mi sembra di capire che non hai modificato l’opzione di default di eseguire il download del codice sorgente insieme alla applicazione. Questo ti porta a scaricare nel target (SlimLine) il codice sorgente ad ogni download con un incremento notevole del tempo di download. Ti consiglio nel menù Project -> Option di modificare la scelta (Screenshot), ti rimando a questo topic per ulteriori informazioni.
Settembre 2, 2014 alle 6:26 am in risposta a: Eseguire trasferimento programma sorgente su target #38398Sergio Bertana
Amministratore del forumCon le nuove versioni di LogicLab è stata modificata la gestione del download del codice sorgente (ZIP del file di progetto con tutti i commenti) sul modulo target. Ora la scelta è impostata nel menù Project -> Options (Screenshot) ed è possibile scegliere tra 3 diverse opzioni.
Never: Il codice sorgente non è mai scaricato sul sistema target.
Before disconnession: Il codice sorgente viene scaricato quando si sconnette LogicLab dal sistema target.
On PLC application download: Il codice sorgentye viene scaricato sul target ad ogni download applicazione.Naturalmente è possibile definire una password di protezione del codice. Di default è definita l’opzione di scaricare il codice sorgente ad ogni download applicazione sul sistema target.
Consiglio di cambiare questa impostazione scegliendo di eseguire il download del codice sorgente alla sconnessione dal sistema, questo perché essendo il codice sorgente lo ZIP del file di progetto con tutti i commenti è un file di dimensioni molto più grandi rispetto al solo file applicazione. Questo allunga notevolmente il tempo necessario al download, e quando si sviluppa un programma ad ogni modifica si esegue il download per testarla ed è inutile perdere tempo nel download del sorgente.
Sergio Bertana
Amministratore del forumTi rispondo citando un post che ho postato qualche giorno fà in questo topic.
Per quanto riguarda gli I/O analogici occorre fare riferimento ai blocchi funzione SysGetAnInp per la lettura degli ingressi e SysSetAnOut per la scrittura delle uscite. Occorrerà indicare alla FB l’indirizzo del modulo (255 per il modulo CPU), il numero di canale, ed il tipo di acquisizione o di uscita.
I due ingressi analogici del modulo CPU possono acquisire tensioni (0-10 Volt) quindi utilizzando la FB SysGetAnInp dovrai impostare Address 255, Channel 0 o 1, Mode AD_VOLT_0_10_COMMON.
-
AutorePost