Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 2,566 a 2,580 (di 4,374 totali)
  • Autore
    Post
  • in risposta a: Backup (Scaricamento) programma pannello serie IE #38905
    Sergio Bertana
    Amministratore del forum

    In questo topic viene trattato l’upload (Scaricamento) del progetto dai pannelli vecchia serie MT8000.

    in risposta a: Backup (Scaricamento) programma pannello serie IE #38904
    Sergio Bertana
    Amministratore del forum

    Dalla finestra principale dell’Utility Manager (Screenshot) dopo avere scelto la famiglia corretta del terminale da cui vuoi eseguire lo scaricamento (Upload) del programma (Nell’esempio serie iE), scegli la procedura Carica. Ti verà proposta una finestra in cui puoi impostare il nome del file in cui verrà salvato il progetto.

    Ora dovrai impostare il modo di connessione con il pannello, nel mio caso rete ethernet con l’IP del pannello. Naturalmente devi conoscere la password di accesso (Quella di default è 111111). Terminato il caricamento ti troverai con un file estensione exob. Con la procedura Scarica è possibile trasferire il progetto su di un’altro terminale.

    Eseguendo EasyBuilderPro potrai con la procedura di decompilazione (Screenshot) ricreare un file con estensione emtp che potrai poi aprire per le modifiche. Naturalmente per la protezione del progetto nella procedura di decompilazione è richiesta la password di protezione che è stata impostata nella realizzazione del progetto.

    in risposta a: Rete RS485 tra master e slaves in Modbus RTU #38903
    Sergio Bertana
    Amministratore del forum

    Spulciando nel forum puoi trovare esempi da cui trarre spunto per la tua realizzazione, in questo topic viene trattata una rete modbus come quella che vuoi realizzare tu. Come vedi nella discussione utilizzando il FB DataStreamExch è possibile utilizzare il modulo master come gateway di rete per la programmazione via ethernet di tutti i nodi slaves.

    Fungendo il FB DataStreamExch come un semplice convertitore Ethernet/Seriale è evidente che per poter programmare i nodi slaves da ethernet occorre utilizzare anche per la comunicazione RS485 con i nodi slaves il protocollo Modbus TCP. Ma se si utilizza sul sistema master il FB ModbusTCPGateway (Topic) è possibile utilizzare per la comunicazione con i sistemi slaves il protocollo Modbus RTU. Fungendo da gateway Modbus TCP/Modbus RTU il FB permette di programmare i nodi slaves connessi alla rete.

    Ecco la stampa del programma master e del programma slave di esempio. Come si vede nel master viene eseguita la scansione ciclica dei nodi slaves, per ogni nodo è gestito l’errore di comunicazione, in caso di nodo in errore per evitare di attendere il timeout, il nodo viene “saltato” nella comunicazione. E’ gestito un ricontrollo ciclico di tutti i nodi in errore per gestirne la riconnessione (Download progetto master e slave).

    in risposta a: Bug su programma LogicLab Loader #38902
    Sergio Bertana
    Amministratore del forum

    Ringrazio della segnalazione, è sicuramente di aiuto per altri utenti che si trovano nella stessa condizione. Provvederemo quanto prima a correggere il problema ed a rilasciare una nuova versione del programma.

    in risposta a: Utilizzo delle funzioni nel linguaggio ST #38897
    Sergio Bertana
    Amministratore del forum

    L’argomento funzioni e blocchi funzioni è trattato in molti topics del forum ti rimando a questo topic che tratta l’utilizzo di variabili globali nelle funzioni. Interessante è anche questo topic dove vi sono esempi di come realizzare funzioni e blocchi funzione.

    Venendo alla tua domanda però come troverai scritto nel topic a cui ti ho rimandato ti ricordo che solo i FB possono accedere a variabili globali, le funzioni possono operare solo con variabili di ingresso e una sola variabile di ritorno.

    Ma anche se è possibile da FB operare direttamente su variabili globali (Si utilizza la dichiarazione VAR_EXTERNAL) è una pratica sconsigliata in quanto nel momento in cui esporti il FB ti troverai con delle dipendenze esterne che se non presenti nel programma dove il FB viene importato daranno errori di compilazione.

    Ho preparato un esempio (Ecco lo screenshot in simulazione su PC) che esprime i concetti riportati. Come si vede dalla stampa del programma, ho realizzato due funzioni. La funzione MyFunPtr ha come parametro un puntatore ed in questo modo può fare riferimento a variabili globali (Occorre passare alla funzione l’indirizzo della variabile). In questo modo la funzione può sia leggere che scrivere il valore del parametro (Download programma).

    in risposta a: Come inserire un FB in un programma ladder #38896
    Sergio Bertana
    Amministratore del forum

    Ipotizzando di realizzare un nuovo progetto, dopo avere aggiunto al progetto la libreria eSLineC2SysLib (Vedere capitolo Librerie sul Manuale programmazione IEC61131-3) è possibile inserire in un programma ladder il FB di acquisizione analogica SysGetAnInp.

    Questo FB non dispone di un ingresso BOOL di abilitazione quindi per inserirlo in un programma ladder occorre utilizzare un oggetto Box with EN. Questo tipo di oggetto aggiunge in automatico al FB l’ingresso EN di abilitazione che permette di connetterlo al ramo logico del programma ladder. Per spiegare i concetti ho realizzato una semplice Nota applicativa che illustra passo per passo le operazioni da eseguire. Download programma di esempio per l’acquisizione di una termocoppia.

    in risposta a: Ricetta da HMI abbinata a struttura dati su SlimLine #38895
    Sergio Bertana
    Amministratore del forum

    La soluzione scelta è corretta, per  gestire le ricette è buona norma definire una struttura dati nello SlimLine abbinata ai dati della ricetta sul terminale, in questo topic si parla di come gestire le ricette.

    Una curiosità perchè hai definito 3 strutture dati se i dati sono identici per ogni ricetta ? Meglio definire una sola struttura dati e poi allocare un array di strutture con 3 elementi. E con questo rispondo alla tua domanda sul tipo dati, il tipo dati nelle variabili globali sarà un array di 3 elementi di tipo struttura dati da te definita (Ecco uno screenshot di esempio).

    Ora nella definizione della struttura dati puoi mischiare tutti i tipi che desideri, ma attenzione alla loro allocazione in memoria (Vedo che già conosci il problema della divisibilità per 2 delle variabili a 16 bit e per 4 delle variabili a 32 bit). Se noti nella mia definizione della struttura ho volutamente definito Umidita dopo Temperatura per evidenziare il concetto.

    Naturalmente sul terminale quando definisci la ricetta dovrai definire anche le variabili Dummy di riempimento così come sono definite nella struttura dati.

    in risposta a: Esecuzione macro periodica all’interno di una pagina #38894
    Sergio Bertana
    Amministratore del forum

    Devi definire nella macro oltra alla esecuzione periodica anche Esegui su condizione, impostando come condizione l’attivazione di un bit (Nel mio esempio LB 0).

    Ora nella pagina dove vuoi che la macro venga eseguita inserisci due oggetti Imposta Bit, che li definirai trasparenti in modo da non essere visibili. Uno di questi definito con Imposta ON quando apri pagina attiverà il bit LB 0, l’altro definito con Imposta OFF quando chiudi pagina, disattiverà il bit LB 0.

    Ti ho fatto un semplice programma di esempio che puoi testare direttamente simulandolo sul PC con EasyBuilderPro (Download progetto).

    in risposta a: Utilizzo di Picoface con SlimLine #38893
    Sergio Bertana
    Amministratore del forum

    Ecco lo screenshot di un programma essenziale di come si utilizza il terminale Picoface connesso allo SlimLine. Nel progetto occorre includere la libreria eHMIBuiltInLib (Menù Project -> Library manager), il progetto di esempio in questo topic contiene l’ultima versione.

    Per gestire il terminale Picoface connesso al bus di estensione, come vedi, viene aperto un file pointer sullo stream PCOM15.1 e poi viene passata la variabile Fp alla FB di gestione del terminale Picoface. Nella sezione Resources è possibile aggiungere un HMI con la definizione dei messaggi display (Nel progetto di esempio l’ho chiamato Messages). Nella FB di gestione Picoface occorre passare la variabile Messages.HMIBuiltInID.

    Ecco come si presenta nella sezione Resources la definizione di un messaggio display (Screenshot). Come vedi sono impostati i testi da visualizzare con il riferimento alle variabili. Durante la visualizzazione sul display i tags delle variabili saranno sostituiti dal reale valore. Sono gestibili sul terminale solo le variabili allocate nella DB 100.

    Per inputare da tastiera una variabile occorre selezionarla con il tasto FUN del terminale (Il valore della variabile diventa lampeggiante) poi agendo sul tasto CLR è possibile inputare un nuovo valore.

    Puntandosi con il mouse sull’albero dei messaggi ed agendo sul tasto destro è possibile inserire nuovi messaggi (Screenshot). Da terminale Picoface sarà possibile navigare tra i messaggi con i tasti freccia Su, Giù, Destra, Sinistra (Download progetto).

    in risposta a: Comunicazione con protocollo Modbus master #38890
    Sergio Bertana
    Amministratore del forum

    Di solito lascio la gestione al loop successivo. Trovo il tempo da te indicato molto lungo, hai molte interrogazioni modbus o hai un baud rate molto basso per avere tempi fino a 5 Sec.

    Però mi hai meso una pulcina nell’orecchio… potrei pensare di modificare (Tempo permettendo) il FB ModbusMaster aggiungendo la gestione di retries sul comando.

    in risposta a: Comunicazione con protocollo Modbus master #38888
    Sergio Bertana
    Amministratore del forum

    Tutte i FB che gestiscono stream di comunicazione (Seriale, UDP, TCP/IP) o accedono al file system devono essere eseguiti nella task di Back.

    Se le interrogazioni Modbus non sono molte puoi istanziare tante istanze della FB ModbusMaster quante sono le interrogazioni (Lettura/Scrittura) da eseguire (Questo topic spiega come mettere in cascata le varie istanze, ecco uno screenshot). In questo modo si ha uno “spreco” nell’utilizzo delle risorse in quanto ogni istanza del FB occupa memoria RAM anche se vi è una esecuzione sequenziale delle varie istanze.

    Molto più ottimizzato è l’utilizzo di una singola istanza del FB a cui vengono ciclicamente passati i parametri di configurazione, nodo del dispostivo con cui comunicare, codice funzione e range indirizzi del comando da eseguire. Il modo migliore per realizzarlo è gestire da ST una macchina a stati con l’operando CASE. Nel forum ci sono posts che trattano l’argomento ma a titolo di esempi ti allego un programma che utilizza questa tecnica (Download sorgente).

    Come vedi dalla stampa del programma, si tratta di un programma che comunica con drivers brushless, tutti i comandi mosdbus operano su registri a 32 bits (2 registri modbus) ed è eseguito anche lo swap tra MSB e LSB. Altra particolarità è la gestione di un socket TCP per permettere il dialogo con il driver “passando” tramite lo SlimLine. Aprendo una connessione con la porta 2000 è possibile da TCP/IP comicare su RS485 con i drivers (In questo topic si tratta l’argomento).

    Troverai il programma un pò più complesso (Per ogni interrogazione modbus viene utilizzata una struttura dati) perchè per velocizzare la comunicazione per i comandi di scrittura verso il driver viene mantenuta una copia del valore scritto ed il comando Modbus viene eseguito solo se il programma utente cambia i valori da scrivere.

    in risposta a: Problema su ladder diagram, LogicLab và in crash #38886
    Sergio Bertana
    Amministratore del forum

    Il FB ModbusMaster utilizza la nuova funzione SysSpyData (Topic) che è disponibile dalla versione SFW184A800 del sistema operativo (Solo sugli SlimLine versione B).

    In questo topic un workaround per aggirare il problema se il tuo SlimLine è una versione A. In questo topic le informazioni per come aggiornare il tuo sistema se è uno SlimLine versione B.

    in risposta a: Problema su ladder diagram, LogicLab và in crash #38883
    Sergio Bertana
    Amministratore del forum

    Intanto alcune precisazioni, il blocco funzione per la gestione del protocollo Modbus master ha subito diverse revisioni ed affinamenti (Topic). L’ultima versione il ModbusMaster gestisce tutti e tre i tipi di protocollo Ascii, RTU e TCP/IP, ti consiglio di utilizzare questa versione al posto del precedente ModBusRtuMaster.

    Poi come in tutti i miei esempi in LD, utilizzando il FB ModbusMaster non servono gli I/O EN/ENO, pertanto ti consiglio di eliminarli dalla grafica (Topic).

    Detto questo, dalla tua descrizione non mi è chiaro il tuo problema, il modo migliore è di inviare alla mail di supporto (Vedi link)  il tuo progetto in modo che io possa capire il tuo problema.

    in risposta a: Utilizzo PLC con pannelli operatore e I/O remoti #38882
    Sergio Bertana
    Amministratore del forum

    Visto che hai già esperienza di programmazione di altri prodotti, credo che il passaggio all’ambiente LogicLab sia semplice, inoltre come hai detto tu la guida PLC in pratica è un ottimo supporto. Nel forum troverai inoltre molti esempi di programmi in codice sorgente pronti per il download.

    Per quanto riguarda la tua domanda sulla comunicazione tra il pannello HMI ed il PLC, utilizzando EasyBuilder Pro puoi sviluppare il progetto HMI e poi testarlo direttamente connesso al modulo CPU (Il simulatore funziona per 15 min). In questo topic un progetto di esempio, il progetto è sviluppato con il vecchio tool EasyBuilder 8000 ma lo puoi importare in EasyBuilder Pro.

    Consiglio… Se acquisti un modulo CPU per delle prove ti consiglio il modello Compact con ethernet, così puoi testare tutte le funzionalità del prodotto e nella simulazione con l’HMI utilizzando la ethernet puoi eseguire contemporaneamente il debug della applicazione PLC con LogicLab.

    Inoltre se dovessimo attivare un supporto tecnico On-Line la connessione ethernet permette a noi di “vedere” tutti i dispositivi da remoto.

    in risposta a: Collegamento WiFi tra diversi dispositivi PLC #38880
    Sergio Bertana
    Amministratore del forum

    La crittografia sulla comunicazione WiFi è attivabile in tutte le configurazioni, e sicuramente anche in configurazione access point e stations che è là più utilizzata per la distribuzione del segnale WiFi.

    Il fatto che la rete degli SlimLine sia connessa ad router ADSL di fatto non incide sulla sicurezza, il problema nasce solo se tu configuri il router per avere accesso in NAT dalla rete Internet verso la rete locale magari per la programmazione remota dei dispositivi SlimLine.

    In questo caso se dai accesso da Internet alla porta del Modbus per evitare che i dispositivi SlimLine vengano programmati da eventuali hackers dovrai disabilitare da Telnet il protocollo modbus (Comando sysconfig -mtcpd). Potrai abilitarlo solo quando vuoi accedervi tu per la programmazione (Comando sysconfig -mtcpe).

Stai visualizzando 15 post - dal 2,566 a 2,580 (di 4,374 totali)