Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 496 a 510 (di 4,379 totali)
  • Autore
    Post
  • in risposta a: Suggerimenti programmazione pannello #73954
    Sergio Bertana
    Amministratore del forum

    Ecco alcuni consigli:

    1. Ridimensionare le GIF alla dimensione esatta di utilizzo e se possibile ottimizzarle per uso web.
    2. Si vengono elaborati solo gli oggetti di pagina e quelli generici, se serve una comunicazione ciclica usare una macro o la pagina 4 per mantenere sempre attivo con un oggetto il socket.
    3. Al momento non è supportato il modo diretto.
    4. Se disponete di una VPN potete utilizzarla con IP statici, se avete una connessione con IP pubblico potete realizzare regole di NAT sul router. Altrimenti  bisogna usare le soluzioni a pagamento come EasyAccess o altre.
    5. L’Indicazione è una warning che indica come ottimizzare ottimizzare il progetto non è un errore. Se le immagini sono adattate alle dimensioni di pagina la  visualizzazione è molto più fluida.
    in risposta a: Errore su connessione VNC #73797
    Sergio Bertana
    Amministratore del forum

    Abilitando la connessione multipla fino a 5 client VNC possono connettersi al terminale.

    Ma attenzione, può succedere che la chiusura non corretta del client VNC mantenga “appesa” la connessione, in pratica il pannello continua a “vedere” connesso il client anche se fisicamente questo non lo è più. Ecco quindi che esaurito le 5 connessioni non è più possibile connettersi.

    Nel pannello è gestito un timeout che se non vede traffico sulla connessione VNC dopo un tempo (Abbastanza lungo anche pù di 20 minuti) chiude la connessione liberandone l’accesso. Dovresti verificare se quando non riesci più a connetterti, lasciando passare una mezz’ora senza fare tentativi di connessione riesci a riconnetterti.

    Come client VNC ti consiglio di utilizare il RealVNC.

    in risposta a: Size of data structures containing different data types #73791
    Sergio Bertana
    Amministratore del forum

    The mismatch is a well known issue due to the data alignment in ARM systems (You can refer to a Wikipedia article). In poor words:

    • 2 bytes variables must be aligned at addresses divisible for 2
    • 4 bytes variables must be aligned at addresses divisible for 4
    • 8 bytes variables must be aligned at addresses divisible for 8

    So if you define as first structure member a 8 bytes variable and then a 4 bytes variable the length is correct. Instead of if you define as first structure member a 4 bytes variable and then a 8 bytes variable the second variable will be aligned at address divisible for 8 so 4 dummy bytes are inserted.

    The byte alignment must be taken in care also in the variable definitions, the auto variables are corectly placed by the compiler, but when you define variables on DB100 area you MUST align them correctly.

    The simulator compile the program on a X86 architecture that don’t require data alignment so the data structure size is not modified.

    in risposta a: Modifica file .db registrazione dati #73784
    Sergio Bertana
    Amministratore del forum

    I files sono in formato .db standard, quindi è possibile utilizzare un qualsiasi editor (Esempio SQLite Database Browser) per aprirlo e modificarlo.

    Se il file è salvato su USB disk è possibile anche definire delle query sul pannello per elaborarlo direttamente  da macro.

    in risposta a: Modificare posizione shape da Macro #73774
    Sergio Bertana
    Amministratore del forum

    Devi utilizzare l’oggetto Moving Shape a cui abbini una variabile o del pannello o del PLC.

    Verranno utilizzate le tre variabili contigue a partire da quella definita, nelle tre variabili potrai definire lo stato e la posizione dell’oggetto shape. Ora potrai agire sui valori sia da PLC che da macro (Vedi screenshot).

    in risposta a: WLD2 lentezza risposta a ping #73753
    Sergio Bertana
    Amministratore del forum

    Ho chiesto al fornitore che mi informa che:

    Il ping ha una bassa priorità, quindi quando il cavo viene bagnato il dispositivo se configurato, esegue il push dell’alert sul portale SensDesk e l’invio eMail o SMS tramite il gateway SMS GW3. Quindi in questa fase il tempo di risposta al ping può aumentare anche di parecchio.

    Per quato riguarda l’avviso via eMail può essere gestito in due modi, direttamente dal dispositivo o tramite il portale SensDesk. Naturalmente se viene a mancare la connessione Internet il dispositivo non potrà autonomamente inviare l’eMail di alert. In questo caso invece il portale SensDesk se non vede attività da parte del dispositivo provvederà ad inviare un Device invalid alarm.

    Comunque quando la connessione Internet ritorna il dispositivo invierà al portale lo stato di allarme che scatenerà l’invio della segnalazione da parte del portale. Ma anche il dispositivo può ritentare l’invio della eMail tramite la funzione “Alarm reminder“, screenshot.

    in risposta a: Storicizzazione dati su chiave USB #73750
    Sergio Bertana
    Amministratore del forum
    • Se l’applicazione è su di un pannello serie cMT3xxx ed il file .db è salvato su USB, tramite query si possono cancellare/modificare i dati come si desidera. Naturalmente anndranno definite macro ad hoc per la funzione desiderata.
    • Per avere i dati in formato .csv è possibile utilizzare la funzione backup per salvare su USB o direttamente via FTP in formato .csv il file.
    in risposta a: Utilizzare porte seriali di un pannello cMT da ambiente Codesys #73746
    Sergio Bertana
    Amministratore del forum

    Putrtroppo le porte seriali del pannello non possono essere utilizzate direttamente dall’ambiente Codesys.

    Però puoi utilizzare l’Internal Modbus Gateway che permette di mappare variabili su PLC esterni connessi alle interfacce dell’HMI, su registri Modbus accessibili da programma Codesys.

    Quindi puoi mappare dispositivi Modbus RTU sul gateway e potrai raggiungerli dal programma Codesys. Non è proprio un accesso diretto ma può essere un escamotage utile.

    in risposta a: Connettere pannello ad un cMT con PLC Codesys integrato #73739
    Sergio Bertana
    Amministratore del forum

    Una soluzione è realizzare sul secondo pannello un programma che implementa un oggetto VNC Viewer connesso all’IP del pannello principale. In questo modo sul secondo pannello si ottiene l’operatività in parallelo al primo pannello. Naturalmente chi opera su di un pannello lo fà in parallelo all’operatore dell’altro, senza privacy sulle operazioni.

    Un’altra possibilità è caricare sul secondo pannello lo stesso progetto del primo ma configurando come dispositivo CODESYS V3 (Ethernet) che punta sull’IP del primo pannello. In questo modo ogni pannello ha la propria operatività mantenendo la privacy sulle operazioni effettuate anche in paralllelo sui due pannelli.

    in risposta a: Comparison a LWORD variable with constants #73733
    Sergio Bertana
    Amministratore del forum

    Currently the LogicLab compiles the comparisons considering the constants as a DWORD (32 bits), so without any type declaration only the first 32 bits of the LWORD variable are compared, please refer to the following example.

    VAR
        MyLW : LWORD;
        MyResult : ARRAY[0..3] OF BOOL;
    END_VAR
    
        // TRUE  IF MyLW=16#0000000000000000
        // TRUE  IF MyLW=16#0000000100000000
        // FALSE IF MyLW=16#0000000010000000
    
        MyResult[1]:=TO_BOOL(MyLW = 0);
    
        // FALSE IF MyLW=16#0000000000000000
        // FALSE IF MyLW=16#0000000100000000
        // TRUE  IF MyLW=16#0000000010000000
    
        MyResult[0]:=TO_BOOL(MyLW <> 0); 
    
        // TRUE  IF MyLW=16#0000000000000000
        // TRUE  IF MyLW=16#0000000100000000
        // TRUE  IF MyLW=16#0000000010000000
    
        MyResult[3]:=TO_BOOL(MyLW = LWORD#0);
    
        // FALSE IF MyLW=16#0000000000000000
        // TRUE  IF MyLW=16#0000000100000000
        // TRUE  IF MyLW=16#0000000010000000
    
        MyResult[2]:=TO_BOOL(MyLW <> LWORD#0);
    
    // [End of file]

    As you can see in the example to obtain correct result L’WORD# must precede the constant declaration. I will ask to Axel if in the future some modifications will be done.

    in risposta a: Eseguire reset di fabbrica causa perdita credenziali di accesso #73726
    Sergio Bertana
    Amministratore del forum

    Da seriale è possibile eseguire la procedura di reset catch che riporta il sistema alla condizione di default di fabbrica cancellando tutti i dati presenti, rimando alla lettura della FAQ Come accedere al sistema senza credenziali.

    Nel caso il tuo sistema non sia aggiornato all’ultima versione del firmware ne consiglio l’aggiornamento prima di eseguire la procedura.

    in risposta a: Problemi importazione progetto dal sistema target #73695
    Sergio Bertana
    Amministratore del forum

    Informazioni sull’argomento DIFF.CODE le trovi nelle FAQ.

    Se il programma in LogicLab è lo stesso che hai trasferito sul PLC deve comparire la scritta SOURCE OK, ma anche se il programma è lo stesso ma hai effettuato una nuova compilazione quando ti connetti al sistema troverai la scritta DIFF.CODE.

    Questo perchè LogicLab crea un hash del programma compilato che compara con quello del programma trasferito sul modulo CPU, ed ad ogni compilazione si modificano dei dati di marcatura del programma (Esempio Data/Ora, ecc) e quindi pur essendo il programma compilato identico all’altro il suo hash è diverso.

    Non è possibile comparare il codice nel PLC e quello in LogicLab, ma puoi scaricare il programma sorgente ed eseguirne la comparazione.

    in risposta a: Problemi importazione progetto dal sistema target #73686
    Sergio Bertana
    Amministratore del forum

    Nel report di errore nella importazione non mi hai riportato la riga precedente che indica lo stato della connessione con il sistema target

    Connecting with the target...failed.
    Connecting with the target...done.

    Se la connessione è “done” la procedura di uploading deve terminare correttamente, l’errore può verificarsi solo se chi ha sviluppato il programma non ha caricato i sorgenti nel sistema. Nel tuo caso però i sorgenti erano presenti visto che connettendoti in FTP sei riuscito a scaricarli, quindi posso immaginare che non fosse impostata corettamente la connessione.

    Solitamente io preferisco utilizzare la connessione in FTP e scaricare il file C:\Plc\Project.rsm che poi apro con LogicLab (Se il programma è protetto servirà la password per aprirlo). Aperto il progetto con LogicLab occorre connettere logicLab al nuovo modulo CPU in questo modo viene eseguito l’upload dal modulo dell’immagine del suo sistema operativo con tutte le funzioni embedded.

    Ora se la compilazione ti dà come errore la mancanza della funzione SysTimeGetMs molto probabilmente il nuovo modulo CPU non ha il sistema operativo aggiornato, puoi eseguirne l’upgrade (Vedi articolo).

    in risposta a: Indirizzamento counter con PLC Siemens S7-300 #73656
    Sergio Bertana
    Amministratore del forum

    Il campo C è il preset.

    Per visualizzare il valore attuale si deve prelevarlo e appoggiarlo da programma su MW o DB a cui poi si può accedere da pannello.

    in risposta a: Monitoraggio macchinari via LTE #73645
    Sergio Bertana
    Amministratore del forum

    Come sistema di acquisizione dati posso suggerirti un MPS054 con scheda di estensione PCB124, per la connessione ad Internet ti consiglio un router LTE.

    • Come identificativo puoi utilizzare l’UniqueID di cui ogni modulo CPU dispone. Oppure ti puoi creare una variabile stringa nel programma dove definire il nome del macchinario.
    • Per visualizzazione dello stato con cambio di colore, se è una visualizzazione locale puoi creare una pagina web direttamente sul sistema, articolo. Se invece vuoi una visualizzazione remota, puoi inviare i dati ad un portale e visualizzarli dal portale, articolo, articolo.
    • Per l’invio di un messaggio di allarme se utilizzi un router come il WL-R220 hai la possibilità di invio SMS direttamente con il router, articolo. In alternativa con il FB Telegram puoi ricevere/inviare messaggi telegram, con il FB EMailSend puoi inviare eMail.
    • Il sistema dispone di un file system ed aggiungendo una SDCard con il FB StringToLogFile puoi memorizzare file di log sia a tempo che su trigger. I files di log potranno essere scaricati tramite accesso FTP. Utilizzando il FB FTPClient può il sistema stesso trasferire i files di log su di un server FTP nel cloud, puoi scaricare il programma di esempio FTPDataLogger.

    I dispositivi vanno alimentati da 10~30Vdc, qui puoi trovare una serie di alimentatori adatti.

    Come vedi nei vari articoli che ti ho linkato trovi già degli esempi pronti da utilizzare, comunque abbiamo un servizio di supporto tecnico accedendo al quale possiamo supportarti nello sviluppo.

Stai visualizzando 15 post - dal 496 a 510 (di 4,379 totali)