Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 2,866 a 2,880 (di 4,367 totali)
  • Autore
    Post
  • in risposta a: PLC per visualizzazione dati tramite pagine Web #38418
    Sergio Bertana
    Amministratore del forum

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

    in risposta a: PLC per visualizzazione dati tramite pagine Web #38415
    Sergio Bertana
    Amministratore del forum

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

    in risposta a: Gestire motori passo passo con un sistema SlimLine #38413
    Sergio Bertana
    Amministratore del forum

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

    in risposta a: Rete di comunicazione modbus tra moduli SlimLine #38410
    Sergio Bertana
    Amministratore del forum

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

    in risposta a: Come utilizzare la SDCard per il salvataggio di file di log #38409
    Sergio Bertana
    Amministratore del forum

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

    in risposta a: Come utilizzare la SDCard per il salvataggio di file di log #38408
    Sergio Bertana
    Amministratore del forum

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

    in risposta a: Realizzare un doppio ponte WiFi #38406
    Sergio Bertana
    Amministratore del forum

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

    in risposta a: Visualizzare all’accensione pagina con logo azienda #38405
    Sergio Bertana
    Amministratore del forum

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

    in risposta a: Protocollo RS232 Ascii ispirato al NMEA #38403
    Sergio Bertana
    Amministratore del forum

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

    in risposta a: Interfaccia web su terminali touch screen Weintek #38402
    Sergio Bertana
    Amministratore del forum

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

    in risposta a: Differenza tra pannello operatore e Clud HMI #38401
    Sergio Bertana
    Amministratore del forum

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

    in risposta a: Creazione di un file di log per registrazione variazione I/O #38400
    Sergio Bertana
    Amministratore del forum

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

    in risposta a: Errore in compilazione da XTarget 11 a XTarget 10 #38399
    Sergio Bertana
    Amministratore del forum

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

    in risposta a: Eseguire trasferimento programma sorgente su target #38398
    Sergio Bertana
    Amministratore del forum

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

    in risposta a: Gestione uscita analogica su modulo mixed I/O #38396
    Sergio Bertana
    Amministratore del forum

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

Stai visualizzando 15 post - dal 2,866 a 2,880 (di 4,367 totali)