Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 106 a 120 (di 4,264 totali)
  • Autore
    Post
  • in risposta a: Gestione stringhe ascii #80383
    Sergio Bertana
    Amministratore del forum

    Sinceramente non hoi mai trovato questo tipo di problema…

    L’oggetto impostazione/visualizzazione Ascii come hai detto giustamente tu opera su WORD quindi ogni WORD contiene due caratteri Ascii. Se sul tuo PLC la variabile stringa ad esempio è di 16 caratteri tu dovrai definire nell’oggetto la lunghezza di 8 WORDs.

    E nella visualizzazione e/o impostazione non ci saranno spazi, ma il testo verrà visualizzato esattamente come scritto nel PLC (Questo salvo che il PLC non tratti le stringhe in modo particolare), Quello che ho scritto vale sicuramente per i ns sistemi SlimLine ma anche per moltissimi altri PLC con cui i nostri clienti si sono connessi.

    Attenzione al codice tappo, le stringhe Ascii sul PLC possono essere terminate con il codice tappo (16#00) quindi solitamente se definisci una variabile STRING[16] in realtà nella memoria vengono allocati 17 bytes (Uno per il tappo) quindi devo definire lunghezza 9 WORDs. Nessun problema in visualizzazione, quando viene acquisito il valore il codice tappo termina la stringa. Ma in inputazione vegono inviati al PLC 18 bytes e quindi vado a sporcare anche i primo bytes della variabile allocata dopo la variabile STRING, in tal caso occorre lasciare un byte libero o allocare stringhe di lunghezza dispari in  modo che il byte aggiuntivo di tappo le renda di lunghezza pari.

    in risposta a: Come allegare immagini atopic/risposte sul forum #80378
    Sergio Bertana
    Amministratore del forum

    Puoi caricare l’immagine da inviare su un sito di condivisione immagini come ImgBB, PostImage, oppure imgur. Caricata l’immagine ti verrà dato un link che potrai inserire nel tuo messaggio.

    in risposta a: Gestione lampada multistato con codici predefiniti #80373
    Sergio Bertana
    Amministratore del forum

    La soluzione più semplice è utilizzare l’oggetto Multi-State Switch, questo oggetto permette la definizione di una mappa di stati in cui puoi definire a che stato corrisponde il valore della variabile collegata (Screenshot). Nel tuo caso avremo:

    • Valore 2: Stato 0, in cui definirai l’etichetta “Guasto”
    • Valore 4: Stato 1, in cui definirai l’etichetta “Disinserito”
    • Valore 257: Stato 2, in cui definirai l’etichetta “In Allarme”

    Siccome si tratta di unop switch multistato, alla pressione dell’oggetto sullo schermo corrisponde una azione, nell’esempio sarà un JOG-, quindi ad ogni pressione verrà scritto nella variabile indirizzata il valore corrispondente allo stato precedente. Se la variabile vale 257 alla pressione scriverò 4 ed alla prossima pressione scriverò 2.

    Siccome mi sembra di capire nel tuo caso devi solo visualizzare gli stati e non impostarli, come workaround puoi definire lettura/scrittura ad indirizzi diversi, ed eseguire la lettura dal sistema di allarme mentre la scrittura la puoi indirizzare in una LW del pannello che non utilizzi.

    in risposta a: Installazione VPN su router Milesight e costo abbonamento #80350
    Sergio Bertana
    Amministratore del forum

    Milesight ha pubblicato questo articolo in cui riporta indicazioni su come configurare un client OpenVPN nei proprii routers.

    Il servizio si basa sul server di CloudConnexa che permette fino a 3 connessioni contemporanee gratuite. Puoi direttamente verificare sul sito quali sono le condizioni economiche per aggiungere ulteriori connessioni.

    in risposta a: Gestire invio di SMS su router UR32 #80345
    Sergio Bertana
    Amministratore del forum

    Il router Milesight UR32 permette di realizzare applicazioni in python per le esigenze più disparate, rimando a questo articolo per ulteriori informazioni. Per permettere lo sviluppo di applicazioni Python è necessario installare la scheda micro SDCard nel router.

    Riguardo alla tua applicazione specifica ho chiesto a Milesight se avevano un qualche esempio di invio SMS da Python mi hanno inviato un link a questa loro guida applicativa, spero possa essere di aiuto.

    in risposta a: Warning T8209: Impossibile scaricare il file sorgente #79990
    Sergio Bertana
    Amministratore del forum

    Il programma sorgente (File Project.rsm)  viene trasferito nel file system dello SlimLine sul disco C nella cartella C:\Plc. La warning stà ad indicare che sul disco non vi è lo spazio sufficente a memorizzare il file sorgente, quindi non viene trasferito.

    Il programma eseguibile è comunque sempre trasferito ed è per questo che il programma funziona correttamente, ma non essendoci il file sorgente ecco che non è possibile effettuarne l’upload dal PLC.

    Ho dato una occhiata al tuo progetto, e l’errore è nella definizione delle librerie, come vedi dallo screenshot, nel tuo progetto in errore hai incluso tutte le librerie ed inoltre hai definito il percorso di più raccolte di librerie. Nel progetto corretto devi solo includere l’ultima raccolta di librerie disponibile.

    Le librerie presenti nella finestra superiore Libraries, sono incluse nel progetto ed inviate al PLC con il codice sorgente del tuo progetto, e siccome sono molte generano un file sorgente molto grande che supera lo spazio disponibile nel disco.

    Le librerie presenti nella finestra inferiore Libraries directories invece sono utilizzate per la compilazione del programma e non vengono inviate al PLC rendendo il programma sorgente molto più compatto, velocizzando anche i tempi di download.

    in risposta a: Autoriduzione larghezza colonne visualizzazione di dati storici #79952
    Sergio Bertana
    Amministratore del forum

    Non ho informazioni di BUG di questo tipo…

    Se invii il progetto alla nostra mail di supporto posso dare una occhiata…

    in risposta a: Password dedicata su alcune ricette #79946
    Sergio Bertana
    Amministratore del forum

    La password è relativa a tutte le ricette.

    In alternativa occorre crearsi una sorta di doppio DB ricetta uno protetto e uno no ma poi occorre inventarsi la gestione della visualizzazione dei due e dei richiami.

    in risposta a: Riportare pannello cMT ai valori di default di fabbrica #79938
    Sergio Bertana
    Amministratore del forum

    Da come mi descrivi il problema mi sembra di capire che potresti avere aperto la pagina in Pop-Up e non in cambio di pagina base.

    I Pop-Up aprono finestre in visualizzazione sulla pagina base e queste finestre hanno la cornice con il simbolo X di chiusura.

    in risposta a: Acquisizione valori via Modbus da contatori Iskraemeco #79927
    Sergio Bertana
    Amministratore del forum

    Da quello che scrivi vedo che non hai seguito l’evolvere delle versioni LogicLab, da un certo tempo a questa parte, nel progetto non vengono più incluse le singole librerie ma si include una raccolta di librerie (Vedi articolo).

    La raccolta ti evita di cercare gli oggetti nelle librerie, basta inserirli nel progetto e si preoccupa LogicLab di cercarli ed utilizzarli.

    Quindi elimina dal tuo progetto tutte le librerie ed inserisci la raccolta in questo modo riuscirai a compilare il programma.

    in risposta a: Passthrough seriale su PLC SlimLine #79923
    Sergio Bertana
    Amministratore del forum

    Lo SlimLine è un dispositivo programmabile quindi quello che chiedi anche se non è nativo lo si può facilmente realizzare, vediamo come.

    Puoi realizzare un programma con il FB DataStreamExch definendo come streams di comunicazione un FB SysTCPServer in ascolto su di una porta TCP e un FB SysSerialPort sulla porta seriale connessa all’inverter. Ora siccome avrai già un FB SysSerialPort che utilizzi per il FB di comunicazione inverter dovrai utilizzare il suo File scambiandolo tra l’FB di gestione inverter ed il FB DataStreamExch.

    Per automatizzare il passaggio al passthrough puoi controllare i peers connessi al SysTCPServer, quando si connette un peer disabiliti la comunicazione Modbus con l’inverter ed abiliti lo scambio dati.

    Nota: Il programma INVT Workshop quando selezioni il modello GD20 permette la sola comunicazione seriale, quindi se vuoi indirizzare i dati verso una comunicazione TCP/IP devi installare un programma di virtualizzazione porte nel tuo PC (Ad esempio HW VSP3 – Virtual Serial Port Single port Vers. 3.1.2 (freeware) vedi articolo).

    in risposta a: Connessione sensori HomeBox a porta 1-Wire #79906
    Sergio Bertana
    Amministratore del forum

    Non esistono dispositivi 1-Wire “Standard” esistono dispositivi forniti da Maxim (Ex Dallas semiconductors), di questi dispositivi il produttore fornisce tutte le specifiche del protocollo e quindi è possibile realizzare appositi FB di acquisizione. Ad esempio i sensori di temperatura sono basati sul chip DS18B20 di cui trovi in rete tutte le specifiche.

    In breve devi immaginare il protocollo 1-Wire come una comunicazione seriale multidrop (Per semplicità la puoi equiparare al Modbus), ogni sensore ha un ID univoco che è indicato oppure è possibile acquisirlo con il FB OWRdIdentifier o con OWSearch. Tutti i sensori 1-Wire come quelli HWgroup o quello che hai indicato sono realizzati tipicamente in due modi:

    • Si basano su qualche chip Maxim, ad esempio il DS2438 utilizzato come convertitore A/D. In questo caso è possibile leggere il valore A/D acquisito perchè esiste documentazione del chip DS2438, ma è ovvio che non sapendo il valore A/D a che valore di misura corrisponde senza la documentazione del produttore non si può utilizzare il sensore.
    • Utilizzano un microcontrollore appositamente programmato per lo scopo. In questo caso se il fornitore non dà indicazione  sul tipo di protocollo non è possibile utilizzare il sensore.
    in risposta a: Connessione sensori HomeBox a porta 1-Wire #79899
    Sergio Bertana
    Amministratore del forum

    Nella gamma HomeBox esistono diversi tipi di sensori con interfaccia 1-Wire, ma HWgroup non rilascia le informazioni sul protocollo di comunicazione, quindi questi sensori possono essere connessi solo ai dispositivi HWgroup.

    Ora se la tua esigenza è di acquisire valori di temperatura, umidità, ecc da un dispositivo PLC SlimLine e vuoi utilizzare i dispositivi HomeBox puoi connetterli ad esempio ad un STE2-LITE e poi acquisirne i valori con il protocollo SNMP.

    In alternativa il valore di temperatura si può acquisire via interfaccia 1-Wire con una sonda TR-160, mentre nei sensori combinati in RS4845 puoi trovare una gamma di misure disponibili.

    Per applicazioni wireless puoi scegliere tra una vasta gamma di sensori a batteria Milesight, ricordo che per la connessione di questi sensori al PLC SlimLine ti occorre un gateway come questo.

    in risposta a: Acquisizione valori via Modbus da contatori Iskraemeco #79890
    Sergio Bertana
    Amministratore del forum

    C’è un po di confusione, vedo se riesco a fare chiarezza… La funzione IEE754DoubleToFloat a cui fai riferimento permetteva di convertire un numero dal formato float IEE754 a 64 bits nel formato float IEE754 a 32 bits. Questa operazione era necessaria all’epoca perchè LogicLab non gestiva il formato LREAL cioè float a 64 bits.

    Ma tui hai un’altro problema, hai 2 registri Modbus a 16 bits che ritornano un valore DWORD a 32 bits almeno così credo (Attenzione molti meters di energia ritornano un valore su 2 registri Modbus a 16 bits ma con un valore REAL IEE754 a 32 bits).

    Ora se è una DWORD basta leggere i 2 registri a 16 bits e poi combinare i due valori con la funzione WordsToDouble stando attendo a LSW e MSW, al limite inverti i due registri. Se invece il valore è un REAL devi combinare i due valori e poi trasferirli in una variabile REAL, per comprendere il formato IEE754 puoi utilizzare un convertitore on-line come questo. Ecco un semplice esempio.

    VAR
        DWValue : DWORD; (* DWORD result *)
        RLValue : REAL; (* REAL result *)
        ModbusRegs : ARRAY[0..1] OF WORD; (* Modbus registers *)
    END_VAR
    
    ModbusRegs[0]:=16#449A; //MSW Value
    ModbusRegs[1]:=16#522B; //LSW value
    DWValue:=WordsToDouble(ModbusRegs[0], ModbusRegs[1]); //Result=16#449A522B
    RLValue:=eGetREAL(ADR(DWValue)); //Result=1234.5677
    in risposta a: Esportazione variabili TAGs per WEINTEK #79806
    Sergio Bertana
    Amministratore del forum

    Sei arrivato con il topic in anticipo di qualche giorno sull’uscita della nuova versione di LogicLab che tra le altre novità ha anche la possibilità di esportare le TAGs di progetto in un file CSV compatibile con l’import di EasyBuilder di Weintek.

    Puoi già trovare informazioni su questa nuova feature in questo articolo, usciremo a breve con la nuova versione di LogicLab e con un video illustrativo di questa nuova feature.

Stai visualizzando 15 post - dal 106 a 120 (di 4,264 totali)