Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 1 a 15 (di 4,405 totali)
  • Autore
    Post
  • in risposta a: Segnalazione problema in LogicLab #85087
    Sergio Bertana
    Amministratore del forum

    Ho provato lo scenario che hai indicato ed in effetti con la versione 10.0.0.0 si manifesta il problema.

    Come workaround (é la soluzione che ho sempre adottato) è eseguire un cut (Ctrl+X) del ramo che si vuole spostare ed un paste (Ctrl-V) nella nuova posizione.

    Nella nuova versione 10.0.10.0 attualmente in fase di test che dovrebbe essere rilasciata a breve questo problema è già stato risolto.

    in risposta a: Interfacciare sistema BMS a macchinario con protocollo MES #85074
    Sergio Bertana
    Amministratore del forum

    Le stampanti serigrafiche EKRA (prodotte da ASYS Group) possono essere collegate a un MES (Manufacturing Execution System) tramite un’interfaccia di comunicazione basata su socket TCP/IP. Questo in pratica, è un modo per far comunicare la stampante con il sistema MES di fabbrica in tempo reale. La connessione è in TCP, occorre connettersi come client alla stampante.

    Il protocollo di comunicazione è in XML, lo scambio dati avviene con messagi di richiesta (“REQ”) a cui occore rispondere con un messaggio di risposta (“RES”). Ecco un semplice flusso di comunicazione:

    Messaggio request
    
    <ASYS>
    <ALIVE_REQ station=”” messageid="" />
    </ASYS>
    
    Messaggio risposta
    
    <ASYS>
    <ALIVE_RES />
    </ASYS>
    

    Nella tua richiesta ipotizzi l’utilizzo di un CMT-G01, che supporta sia l’OPC-UA che il Modbus, ma non prevede la gestione dei messaggi MES. In realtà essendo semplici messaggi XML specifici per la stampante EKRA il modo più semplice per gestirli è tramite un programma realizzato ad hoc. Ecco tre possibili soluzioni:

    • Weintek CMT-G01: Gestisci la comunicazione in OPC-UA o Modbus con il BMS e tramite una macro utilizzando il Free Protocol gestisci l’interfaccia con la stampante.
    • Elsist SlimLine: Gestisci la comunicazione in Modbus con il BMS e tramite il linguaggio di programmazione ST gestisci l’interfaccia con la stampante.
    • PC industriale: Realizzi un programma (In Python, Node-JS, ecc) che gestisce la comunicazione in Modbus con il BMS e gestisce l’interfaccia con la stampante.

    Il mio consiglio in ordine di facilità di realizzazione, il più semplice è sicuramente il programma su PC, un pò più complessa la soluzione con SlimLine, sicuramente molto più complessa è la soluzione con CMT-G01.

    in risposta a: Gestione impianto di pesatura con celle di carico #85059
    Sergio Bertana
    Amministratore del forum

    La configurazione di 3 celle di carico da 2 mV/V collegate in parallelo, è una configurazione abbastanza comune (tipica delle piattaforme di pesatura).

    In pratica tutti i 4 fili delle 3 celle di carico, i 2 di alimentazione del ponte, ed i 2 di uscita segnale si collegano in parallelo. Collegandole in parallelo il ponte di Wheatstone equivalente resta bilanciato e la sensibilità rimane di 2 mV/V a fondo scala. Quello che aumenta è la cpacità totale del sistema, se ad esempio si hanno 3 celle da 100 Kg ciascuna il totale sarà di 300 Kg. Naturalmente ci sarà anche una diminuzione della impedenza totale che sarà pari alla impedenza di 1 cella diviso 3.

    Per l’acquisizione di strain gauges NON PUOI utilizzare direttamente gli ingressi analogici del Netlog, quindi devi amplificare il segnale delle celle con un amplificatore esterno che converta il segnale in 0-10Volt o 4-20mA.

    Diversamente se utilizzi un sistema SlimLine con un modulo di estensione analogico Pcb126 puoi acquisire utilizzando il FB StrainGaugeAcq direttamente il parallelo delle 3 celle o se preferisci le 3 celle separate.

    Per quanto riguarda le ricette e la pubblicazione dei dati tramire il web server del prodotto bisogna capire bene cosa si intende. La gestione di un ricettario può essere fatta sia sul pannello Weintek che sullo SlimLine. Lo SlimLine ha un suo web server che permette di gestire pagine dinamiche utili sia per la visualizzazione dei dati che per eventuale impostazione ricette.

    in risposta a: Riavvio PLC SlimLine da remoto #84961
    Sergio Bertana
    Amministratore del forum

    Puoi eseguire nel tuo programma PLC la funzione SysOSIDValue puoi utilizzare due diverse definizioni di OSID:

    • reboot: Esegue il riavvio completo del sistema
    • restart: Esegue il riavvio del solo programma PLC

    Potrai attivare l’esecuzione della funzione su condizioni di programma:

    • Puoi sempre da LogicLab in debug attivare l’esecuzione della funzione.
    • Se hai un pannello operatore puoi attivare l’esecuzione della funzione da pulsante, con EasyAccess è possibile accedere da remoto al pannello.
    • Puoi definire nella pagina web dello SlimLine nel menù User Infos in una delle variabili SysUSet il comando da eseguire.

    Altra possibilità è accedere in telnet all’interprete comandi dello SlimLine ed utilizzare i comandi:

    • Reboot: Esegue il riavvio completo del sistema
    • PLCCommand -restart: Esegue il riavvio del solo programma PLC
    in risposta a: Compilation errors compiling IOEncoder FB #84952
    Sergio Bertana
    Amministratore del forum

    The FB IOEncoder allows management of the position from an incremental encoder using two digital inputs The new version v1 differs from the previous one by eliminating the Enable input and the Enabled output. The encoder counter is now always enabled.

    Internally, the new version uses bit addressing mode to store the APhase and BPhase signals.

        LIMemo : BYTE; (* Logic input memo *)
    
        LIMemo.0:=APhase; //Logic input memo
        LIMemo.1:=BPhase; //Logic input memo

    I have tried compiling the example given in the manual using the latest released version of LogicLab (ver. 10.0.0.0) without any problems. What version of LogicLab are you using?

    Alternatively, you can use the previous version of the FB; it works exactly the same.

    in risposta a: Alimentazione Panel PC Exenta in Vcc #84940
    Sergio Bertana
    Amministratore del forum

    Le caratteristiche dell’alimentatore dei Panel PC Exenta indicate dal fornitore riportano range di tensione in ingresso 110-230Vac. Ho chiesto al fornitore se fosse possibile alimentarlo con una tensione di 110Vdc ma la risposta è negativa.

    Per venire incontro alla tua necessità ho dato una occhiata anche agli alimentatori che distribuiamo per verificare se fosse possibile utilizzare un diverso alimentatore per fornire la tensione da 9-36Vdc 2A per alimentare il panel PC. Ma nella gamma Meanwell sia per la serie MDR che per la HDR il range in ingresso accettato è 85~264Vac o 120~370Vdc.

    Questi limiti derivano dal fatto che negli alimentatori AC/DC la tensione AC viene raddrizzata ed il valore risultante è dato dalla formula Vdc=Vac*SQR(2).

    Quindi alla tensione minima Vac di 85 volt avremo una tensione risultante Vdc di 85*1.41=120 volt.

    in risposta a: PLC SlimLine in Not Running a seguito caricamento programma #84931
    Sergio Bertana
    Amministratore del forum

    Aggiungo che collegandosi in Telnet al modulo CPU è possibile da interprete comandi  utilizzare il comando SLineInfos per visualizzare le informazioni sui moduli di estensione connessi al di estensione.

    [Admin]> SLineInfos
    [0x0] PCode:PCB122B100, SCode:SFW170B000, Sn:0

    Nella stringa accanto all’indirizzo del modulo sono riportati:
    Pcode: Codice hardware del modulo
    SCode: Codice software presente sul modulo
    Sn: Codice seriale modulo

    Accedendo alla pagina web IO Status dello SlimLine è possibile visualizzare le informazioni di tutti i moduli di estensione connessi con lo stato degli I/O digitali sia del modulo CPU che dei moduli di estensione.

    in risposta a: PLC SlimLine in Not Running a seguito caricamento programma #84924
    Sergio Bertana
    Amministratore del forum

    Il modulo CPU SlimLine può gestire fino a 16 moduli di estensione, i moduli hanno un dip switch a 4 posizioni per l’impostazione dell’indirizzo con range da 0 a 15. Per accedere al dip switch occorre rimuovere il frontalino anteriore con un cacciavite come indicato in figura.

    I moduli sono venduti con indirizzo di default 0 il modulo CPU ha indirizzo 255. Naturalmente quando si connettono i moduli di estensione al modulo CPU occorre impostare correttamente l’indirizzo ad ogni modulo. Si può assegnare qualsiasi indirizzo ai moduli (Range da 0 a 15) indipendentemente dalla loro posizione di collegamento al bus, ma non ci devono essere moduli con lo stesso indirizzo connessi al bus.

    Se al modulo CPU non sono connessi moduli l’esecuzione del programma è consentita per poterlo eventualmente testare in debug senza la gestione dei moduli di estensione. Se i moduli di estensione sono connessi il sistema operativo del modulo CPU ne verifica la presenza e la funzionalità e nel caso più moduli abbiano lo stesso indirizzo il controllo fallisce e l’esecuzione del programma si arresta.

    Quindi dalla tua relazione immagino che ti stia proprio trovando in questa situazione con uno o più moduli con lo stesso indirizzo connessi al bus di espansione.

    in risposta a: Visualizzazione telecamera su pannello #84898
    Sergio Bertana
    Amministratore del forum

    Sì gli HMI della serie cMT/cMT X supportano la registrazione video, ma con alcune limitazioni importanti da conoscere.

    • Registrazione da telecamera IP (RTSP) o USB con salvataggio video su: SD card o USB disk.
    • Registrazione legata a evento (trigger PLC), non è una registrazione continua tipo DVR.

    La logica di funzionamento è questa:

    • Si mposta un trigger (bit PLC/evento)
    • L’HMI registra X secondi prima e X secondi dopo
    • Questo è pensato per: allarmi macchina, guasti, eventi di processo

    Parametri tipici di funzionamento:

    • Tempo registrazione configurabile, fino a circa: 10–60 secondi prima/dopo (dipende modello)
    • Compressione video dopo la registrazione
    • Durante compressione non registra altri eventi
    • Non è un sistema di videosorveglianza, niente registrazione continua 24/7, niente gestione multi-camera avanzata
    in risposta a: Visualizzazione telecamera su pannello #84890
    Sergio Bertana
    Amministratore del forum

    Inizio con il ricordare che la serie IP non supporta le telecamere IP, occorre utilizzare un pannello della serie cMT, in questo articolo informazioni sulla configurazione. E’ possibile visualizzare una sola telecamera per volta ed occorre verificare che la telecamera soddisfi le specifiche:

    • Use the IP cameras that comply with ONVIF standard, and use RTSP for video streaming.
    • When account and password are required for accessing the IP Camera, an RTSP address with credentials embedded can be used. For example: admin:[email protected]:554/cam/realmonitor?channe1=1&subtype=0
    • To ensure the quality and smoothness of the video, and not to affect HMI’s general performance, adjust the settings of IP camera when video lags or high CPU loading is observed. As the project complexity and hardware specs vary from one case to another, please fine-tune the video parameters accordingly
    • Connecting a cMT/cMT X model using cMT Viewer is not able to view IP camera, please use VNC Viewer instead.
    • Recommended video specification: Resolution: 960×544 (max.), Format: H.264, MJPEG, Refresh rate: 15 fps, Transmission speed: 800 kbps (max.)
    in risposta a: Accesso alle pagine HMI via Web #84884
    Sergio Bertana
    Amministratore del forum

    Puoi utilizzare WebView, visto che utilizzi già i pannelli cMT il WebView è nativo.

    Con il WebView puoi aprire direttamente dal browser all’indirizzo del pannello e visualizzarne l’immagine gestendone l’operatività.

    E’ comunque una applicazione java il panello non pubblica direttamente HTML.

    in risposta a: Acquisizione registri Modbus da Python su router UR32 #84861
    Sergio Bertana
    Amministratore del forum

    La soluzione migliore a mio avviso è di gestire la comunicazione Modbus direttamente da Python, utilizzando la libreria pymodbus. Tramite PIP ho installato sul router la versione 3.8.6 poi ho realizzato il semplice programma di test che riporto.

    # ==============================================================================
    # GESTIONE MODBUS
    # ==============================================================================
    # Gestione Modbus.
    # ------------------------------------------------------------------------------
    
    import serial
    from pymodbus.client import ModbusSerialClient
    
    def Modbus():
    
        # --------------------------------------------------------------------------
        # TEST MODBUS
        # --------------------------------------------------------------------------
        # Test Modbus.
    
        client = ModbusSerialClient(
            port="/dev/ttymxc1",
            baudrate=115200,
            parity='E',
            stopbits=1,
            bytesize=8,
            timeout=1
        )
    
        client.connect()
        result=client.read_holding_registers(address=10, count=2, slave=1)
        print(result.registers)
        client.close()
    
    # ==============================================================================
    # ESECUZIONE PROGRAMMA
    # ==============================================================================
    # Esecuzione programma.
    # ------------------------------------------------------------------------------
    
    if __name__=='__main__':
        Modbus()
    
    # [End of file]
    in risposta a: Utilizzo variabili BOOL in LogicLab e HMI Weintek #84806
    Sergio Bertana
    Amministratore del forum

    Iniziamo con il dire che le uniche variabili accessibili dal terminale HMI con il protocollo Modbus sono quelle allocate nella DB100.

    Storicamente nell’ambiente di sviluppo LogicLab non era permessa la definizione dei bit di una variabile come non era possibile accedervi da programma ed è questa la ragione percui in tutti gli esempi le variabili booleane sono definite di tipo BOOL ed occupano un byte di memoria.

    Per acquisire le variabili BOOL il pannello utilizza i comandi Modbus 16#01 Read coil status, 16#02 Read input status, leggendo più stati booleani al minimo 16 consecutivi, il pannello ottimizza l’indirizzamento puntando a cavallo dell’indirizzo reale da leggere. Quindi se si definisce una variabile BOOL ad indirizzi compresi tra 100.0 e 100.7 il pannello invierebbe un comando di lettura di 16 BOOL con indirizzo inferiore a 100.0 e lo SlimLine risponderebbe con un errore di indirizzo. Quindi per correggere questa anomalia nella gestione del protocollo da parte di Weintek tutte le variabili BOOL sono allocate a partire da 100.16.

    Per facilitare la connessione dei pannelli al programma LogicLab abbiamo realizzato il tool Symbols converter che permette di esportare le variabili mnemoniche globali (Tags) in un file formato csv che potrà essere importato dall’ambiente di sviluppo dell’HMI collegandole ai relativi simboli grafici.

    Volendo utilizzare l’assegnazione a bit occorerà definire nelle variabili globali variabili di tipo MW in DB100 assegnando ad ogni bit della word il relativo valore mnemonico. Queste variabili con al Symbol converter potranno essere poi importate nel pannello che vi accederà con l’operando MW_Bit. Ecco la definizione di alcuni bit in due variabili WORD consecutive.

    VAR_GLOBAL
    	W16_Bit00 AT %MW100.16.0 : BOOL;	(* Dummy text *)
    	W16_Bit01 AT %MW100.16.1 : BOOL;	(* Dummy text *)
    	W16_Bit15 AT %MW100.16.15 : BOOL;	(* Dummy text *)
    	W18_Bit00 AT %MW100.18.0 : BOOL;	(* Dummy text *)
    	W18_Bit15 AT %MW100.18.15 : BOOL;	(* Dummy text *)
    END_VAR

    Ed ecco come saranno esportate nel file di TAGs.csv per il pannello Weintek

    W16_Bit15,SlimLine,%MW_Bit,4000815,Dummy text,Bit
    W16_Bit00,SlimLine,%MW_Bit,4000800,Dummy text,Bit
    W16_Bit01,SlimLine,%MW_Bit,4000801,Dummy text,Bit
    W18_Bit15,SlimLine,%MW_Bit,4000915,Dummy text,Bit
    W18_Bit00,SlimLine,%MW_Bit,4000900,Dummy text,Bit

    Come si vede l’indirizzamento delle WORD nel programma LogicLab è a multiplo di 2 mentre nel pannello si definisce l’indirizzo LogicLab diviso per 2 a cui si somma l’offset 40000.

    in risposta a: Disconnessione da rete LTE su gateway LoRaWAN UG56 Milesight #84794
    Sergio Bertana
    Amministratore del forum

    Il comando Restart when Dial-up failed interviene solo se il modulo cellulare non si avvia correttamente ma non nel caso di cadute di connessione.

    Il riavvio del gateway non fa comunque perdere le chiavi di Join dei dispositivi, si perderebbero quindi solo i messaggi inviati durante il riavvio.

    Abbiamo comunque sentito il produttore che ci consiglia di utilizzare Node-RED per la verifica della connessione e per eseguire eventuali riavvii delle sole interfacce di rete. Ci hanno dato il seguente flow come esempio di comando per il riavvio di tutte le interfacce:

    [{"id":"d30976a0d3105657","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"e39d6bf67132db8b","type":"inject","z":"d30976a0d3105657","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":400,"y":200,"wires":[["cd75276c547f5f0a"]]},{"id":"cd75276c547f5f0a","type":"exec","z":"d30976a0d3105657","command":"/etc/init.d/quagga restart","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"","x":690,"y":200,"wires":[[],[],[]]}]
    Ecco lo screenshot della importazione flow in Node-RED.

    in risposta a: Acquisizione sensori RTD Pt500 #84786
    Sergio Bertana
    Amministratore del forum

    Si devi utilizzare lo schema di collegamento indicato nel manuale per acquisire le RTD.

    Il valore di Iexc è predeterminato al minimo necessario per eseguire la lettura senza riscaldare l’elemento sensibile dovuto all’effetto Joule per il passaggio di corrente.

Stai visualizzando 15 post - dal 1 a 15 (di 4,405 totali)