Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 466 a 480 (di 4,264 totali)
  • Autore
    Post
  • in risposta a: Errori comunicazione Modbus RTU #71425
    Sergio Bertana
    Amministratore del forum

    Considerazione corretta, aggiungo solo un suggerimento, se si usa il comando SpyData con l’opzione -v 3, si avrà la visualizzazione diretta del tempo trascorso tra un report e l’altro.

    SpyData -v 3
    Spy data active, type "Ctrl-C" to exit...
    00:14:23(   0)|ModbusSlave:Rx|03 0D 00 00 00 06 01 03 9C 40 00 0A
    00:14:23(   2)|ModbusSlave:Tx|03 0D 00 00 00 17 01 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00:14:24(1038)|ModbusSlave:Rx|03 0E 00 00 00 06 01 03 9C 40 00 0A
    00:14:24(   2)|ModbusSlave:Tx|03 0E 00 00 00 17 01 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    Una domanda ma il programma che esegue la ModbusMaster è eseguito nella task Back?

    in risposta a: Informazioni su comunicazione CANOpen #71423
    Sergio Bertana
    Amministratore del forum

    Probabilmente hai un sistema XTarget devi aggiornare a XUnified (Vedi articolo).

    In alternativa puoi inserire nel progetto la libreria eLLabXTargetAdjLib come indicato in questo articolo.

    in risposta a: Come effettuare la stampa di etichette #71418
    Sergio Bertana
    Amministratore del forum

    Nella configurazione del Free protocol devi definire l’indirizzo IP e la porta del dispositivo con cui devi comunicare, quindi devi riferirti alla documentazione della stampante.

    In pratica definirai due dispositivi Free protocol (Esempio Printer1 e Printer2).

    • Printer1 avrà come impostazione l’indirizzo IP della prima stampante e porta 9100.
    • Printer2 avrà come impostazione l’indirizzo IP della secondastampante e porta dedotta dalla documentazione della stampante.

    Poi è indifferente se le usi contemporaneamente oppure no.

    in risposta a: Gestire avvio e standby dei task #71410
    Sergio Bertana
    Amministratore del forum

    L’istruzione RETURN può essere utilizzata in tutti i linguaggi, se utilizzi FBD ecco nello screenshot un esempio di utilizzo.

    Come vedi dal progetto attivando la variabile Execute verranno eseguiti tutti i rami successivi e Counter verrà incrementato. Disattivando la variabile l’esecuzione si arresta ed il valore di Counter resterà invariato.

    Naturalmente per gestire da un programma principale le varie esecuzioni dei tuoi programmi FBD dovrai utilizzare variabili globali di abilitazione.

    in risposta a: Gestire avvio e standby dei task #71403
    Sergio Bertana
    Amministratore del forum

    Mi parli di task scritti in FB, quindi sono dei function block?

    Se sono function block basta non eseguire la chiamata dell’istanza e tutto il FB rimane congelato.

    Da programma non è possibile eseguire chiamate a programmi, tutti iprogrammi inseriti nelle varie tasks di esecuzione Boot, Fast, Slow, Back sono sempre eseguiti secondo l’ordine di chiamata dall’alto verso il basso.

    Ma se tu all’inizio del programma inserisci una istruzione RETURN condizionata da una variabile BOOL, potrai dal tuo programma Main attivare/disattivare le variabili che gestiscono l’esecuzione. Uscendo con un RETURN all’inizio del progranma tutto il programma rimane congelato all’ultima esecuzione.

    in risposta a: Errori comunicazione Modbus RTU #71391
    Sergio Bertana
    Amministratore del forum

    Intanto nel report SpyData non vedo i frames Tx dei comandi Modbus inviati al dispositivo, immagino tu abbia eseguito lo spionaggio triggerando solo i pacchetti Rx. Per quanto riguarda gli errori puoi fare riferimento alla pagina elenco.

    • 10007050 Timeout esecuzione, dopo l’invio del comando il sistema non ha risposto nel tempo definito di timeout.
    • 10007170 Valore address errato in risposta a comando “Preset single register”, è stato definito un indirizzo nel comando di preset single register ed il sistema slave ha risposto con un’altro.
    • 10007652 Codice funzione errato in frame risposta a comando, è stato inviato un codice di comando ed il sistema ha risposto con un’altro codice.
    • 10007152 Valore dato reset bit errato in risposta a comando “Force single coil”, è stato inviato un comando di Force single coil di reset bit ma il sisatema slave ha risposto con il valore di bit set “FF00”.
    • 10007153 Valore dato set bit errato in risposta a comando “Force single coil”,  è stato inviato un comando di Force single coil di set bit ma il sisatema slave ha risposto con il valore di bit reset “0000”.

    Mi sembra che ci siano problemi di comunicazione con il tuo sistema slave. Ti consiglio di testare i singolo comandi Modbus utilizzando Toolly per verificare se sono corretti e se il sistema slave risponde correttamente.

    in risposta a: Import data from version 18 of TIA portal (SIEMENS) #71384
    Sergio Bertana
    Amministratore del forum

    Attualmente EasyBuilder non importa il file ap18.

    Come workaround è possibile rinominare il file ap18 in ap17 momentaneamente e poi eseguire l’importazione.

    La versione di EasyBuildePro 6.08.02…. che sarà rilasciata a breve avrà anche ap18 già configurato.

    in risposta a: Informazioni su comunicazione CANOpen #71373
    Sergio Bertana
    Amministratore del forum

    Spiegarti velocemente il CANOpen è impossibile, intanto diciamo che le funzioni base SysCANTxMsg e SysCANRxMsg servono a inviare e ricevere messaggi CAN, il CANOpen utilizza i messaggi CAN secondo regole precise che ne determinano il funzionamento.

    Quindi intanto per gestirlo ti conviene fare riferimento alla CANOpenMaster, che permette di attivare una modalità sniffer per visualizzare i pacchetti in transito.  Il protocollo si basa su pacchetti di configurazione SDO (Che sono quelli a cui fa riferimento la documentazione) e pacchetti dato PDO.

    Una idea sul funzionamento del protocollo te la puoi fare guardando il sorgente della FB BeckhoffBK5100, in cui viene gestito un modlo di I/O.

    • Il master alla inizializzazione invia un comando CANOMMCTYPE#MODRST.
    • Poi inizia la configurazione del modulo scrivendo e leggendo i vari SDO, questo modulo è semplice quindi viene solo eseguita la lettura del tipo di dispositivo CANOMMCTYPE#SDORD.
    • Terminata la configurazione il modulo viene reso operativo CANOMMCTYPE#MODOP.
    • A questo punto il modulo comincerà ad inviare lo stato degli ingressi ed ad accettare il settaggio delle uscite attraverso pacchetti PDO.
    in risposta a: Gestione screensaver con oggetti in Common Window #71327
    Sergio Bertana
    Amministratore del forum

    Così per sfizio ti posto anche l’esempio della macro.

    macro_command main()
    bool ResetBit=false //Reset bit command
    bool SetBit=true //Set bit command
    short CTime=0 //Current time
    short TouchNow[2]={0,0} //Touch now position
    short TouchSave[2]={0,0} //Touch save position
    
    // Read data from HMI support variables.
    
    GetData(CTime, "Local HMI", LW, 10, 1) //Current time
    GetData(TouchSave[0], "Local HMI", LW, 11, 2) //Touch save position
    
    // Increase current time.
    
    CTime=CTime+1 //Current time
    
    // Acquire last touch position.
    
    GetData(TouchNow[0], "Local HMI", LW, 9042, 2) //Touch X, Y position
    
    // Check is screen is touched.
    
    if ((TouchNow[0] <> TouchSave[0]) or (TouchNow[1] <> TouchSave[1])) then
        CTime=0 //Current time
        SetData(ResetBit, "Local HMI", LB, 10, 1) //Reset pop-up trigger
        TouchSave[0]=TouchNow[0] //Touch save position
        TouchSave[1]=TouchNow[1] //Touch save position
    end if
    
    if (CTime > 10) then
        SetData(SetBit, "Local HMI", LB, 10, 1) //Set pop-up trigger
    end if
    
    // Save data on HMI support variables.
    
    SetData(CTime, "Local HMI", LW, 10, 1)
    SetData(TouchSave[0], "Local HMI", LW, 11, 2) //Touch save position
    end macro_command

    La macro viene eseguita a tempo ogni 1 secondo, ed esegue l’incremento di un avariabile tempo, se viene toccato lo schermo (siccome eseguo la macro a tempo non posso utilizzare il bit di schermo toccato, ho usato le posizioni di tocco), eseguo il reset del tempo e del bit di attivazione finestra pop-up.

    Se scade il tempo si attiva il bit di attivazione finestra pop-up, ho scelto un bit a caso LB10 ed ho inserito nella Common window un oggetto Direct window che visualizza una finestra di pop-up se LB10 è attivo. Così quando si attiva la finestra di pop-up basta toccare lo schermo per resettare il bit e chiuderla.

    in risposta a: Gestione screensaver con oggetti in Common Window #71326
    Sergio Bertana
    Amministratore del forum

    Intanto la notte ha portato consiglio, potresti spostare gli oggetti dalla Common Window in una nuova finestra, poi nelle tue finestre andare a definire nei settaggi questa finestra come Underlay window.

    In questo modo avrai un funzionamento identico a prima ma nella finestra che utilizzerai come salvaschermo non definendo nessuna Underlay window non avrai nessun oggetto tranne quelli dichiarati nella pagina.

    in risposta a: Possibilità di connessione con PLC Siemens MPI #71322
    Sergio Bertana
    Amministratore del forum

    Come scritto nel post precedente e come vedi dall’Appendice A il protocollo MPI è supportato da:

    • Serie iP, iE, eMT, mTV, XE
    • Serie cMT-SVR, cMT3071, cMT3072, cMT3090, cMT3103, cMT3151, cMT-HDM, cMT-FHD, cMT-G01, cMT-G02, cMT-G03, cMT-G04, cMT-CTRL01
    • Serie cMT3092X, cMT3102X, cMT3108XH, cMT3152X, cMT3162X, cMT3072XH, cMT3072XH2, cMT3072XHT
    • Serie cMT-FHDX-220, cMT-FHDX-820, cMT-SVRX-820, cMT-SVRX-822

    Quindi hai l’imbarazzo dela scelta, le serie iP ed iE sono piu economiche le serie cMT sono più performanti.

    in risposta a: Gestione screensaver con oggetti in Common Window #71284
    Sergio Bertana
    Amministratore del forum

    Avendo definito degli oggetti degli oggetti nella Common Window questi vengono visualizzati su ogni pagina, quindi la funzione automatica di screen saver non può essere utilizzata. La funzione esegue un cambio pagina in visualizzazione ma essendoci oggetti nella Common Window questi vengono comunque visualizzati. Ora che alternative hai:

    • Rimuovi gli oggetti dalla Common Window e li vai ad inserire nelle pagine dove ti occorre visualizzarli, ma questa soluzione certo comporta una modifica pesante del progetto.
    • Puoi crearti una macro ad esecuzione periodica che gestisce un conteggio del tempo trascorso in cui nessuno tocca lo schermo, il bit 0 della variabile LW-9041 se attivo indica che l’utente stà toccando lo schermo. Dopo il tempo desiderato puoi attivare una pagina in pop-up grande come la pagina base, in modo da ricoprire completamente la pagina base ed anche la Common Window.
    in risposta a: Sostituzione vecchio pannello con nuovo modello #71265
    Sergio Bertana
    Amministratore del forum

    Per eseguire l’upload del programma da un pannello MT6100i dovresti utilizzare il programma EasyBuilder8000, connettendoti in USB con il pannello.

    Molto più agevole inserire un PenDrive (Max 8Gb) nel pannello a pannello acceso, apparirà una finestra di po-up da cui è possibile scegliere di effettuare l’upload del programma. Verrà richiesta una password quella di default è 111111.

    Terminato l’upload ti troverai sul PenDrive il file progetto che potrai importare direttamente in EasyBuilderPro. Naturalmente potrai eseguirne l’importazione solo se il file non è protetto da password o se sai la password.

    in risposta a: Booléen expression in EasyBuilderPro #71163
    Sergio Bertana
    Amministratore del forum

    E’ possibile realizzare una macro che con GetData acquisisce le variabili dai due PLC ed esegue la condizione appoggiando il risultato su di un bit LB del pannello che verrà utilizzato per l’abilitazione dell’oggetto.

    Se pannello è un modello cMT è possibile utilizzare le if condition per generare il bit di abilitazione (Screenshot).

    in risposta a: Vista multipannello su App cMTviewer #71148
    Sergio Bertana
    Amministratore del forum

    Aggiungendo all’App cMTViewer (Sia su PC che su tablet/smartphone) i pannelli cMT si vede una schermata ridotta in monitor mode della grafica del pannello.

    Cliccando sull’immagine del pannello che si vuole gestire questa viene aperta a dimensioni schermo e può essere controllata. Non è possibile avere aperte più istanze in contemporanea.

    L’App cMTViewer è stata pensata proprio per poter controllare più pannelli cMT da un unico punto, tutti i pannelli connessi sono iconizzati in piccole dimensioni, selezionando il pannello desiderato si apre a pieno schermo, così si opera su di esso, poi con un pinch lo si richiude ad icona e si apre un’altro pannello e così via…

Stai visualizzando 15 post - dal 466 a 480 (di 4,264 totali)