Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumEcco alcuni consigli:
- Ridimensionare le GIF alla dimensione esatta di utilizzo e se possibile ottimizzarle per uso web.
- 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.
- Al momento non è supportato il modo diretto.
- 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.
- 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.
Sergio Bertana
Amministratore del forumAbilitando 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.
Settembre 5, 2023 alle 10:49 am in risposta a: Size of data structures containing different data types #73791Sergio Bertana
Amministratore del forumThe 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.
Sergio Bertana
Amministratore del forumI 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.
Sergio Bertana
Amministratore del forumDevi 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).
Sergio Bertana
Amministratore del forumHo 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.
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.
Agosto 29, 2023 alle 2:34 pm in risposta a: Utilizzare porte seriali di un pannello cMT da ambiente Codesys #73746Sergio Bertana
Amministratore del forumPutrtroppo 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.
Agosto 29, 2023 alle 12:08 pm in risposta a: Connettere pannello ad un cMT con PLC Codesys integrato #73739Sergio Bertana
Amministratore del forumUna 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.
Sergio Bertana
Amministratore del forumCurrently 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.
Agosto 29, 2023 alle 10:55 am in risposta a: Eseguire reset di fabbrica causa perdita credenziali di accesso #73726Sergio Bertana
Amministratore del forumDa 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.
Agosto 29, 2023 alle 8:38 am in risposta a: Problemi importazione progetto dal sistema target #73695Sergio Bertana
Amministratore del forumInformazioni 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.
Agosto 29, 2023 alle 8:15 am in risposta a: Problemi importazione progetto dal sistema target #73686Sergio Bertana
Amministratore del forumNel 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).
Sergio Bertana
Amministratore del forumIl 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.
Sergio Bertana
Amministratore del forumCome 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.
-
AutorePost