Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumSe si parla di pagine base, basta andare a scrivere il valore della pagina che si vuole aprire (Quindi chiudendo quella attuale) su una LW libera ed impostarla nelle funzioni PLC come cambio pagina.
Se invece parliamo di una pagina di pop up da chiudersi è meglio richiamarli come pagina diretta o indiretta quindi andare ad azzerare il bit o la word di richiamo cosi da chiuderla.
Sergio Bertana
Amministratore del forumNon conosco il prodotto in questione ma immagino che il prodotto sia un server Modbus e tu debba connetterti come client. Quindi puoi utilizzare il FB TCPClient per aprire la connessione TCP verso il dispositivo, poi passerai il File in uscita come parametro al FB ModbusMaster che potrai parametrizzarlo in base al codice funzione ed indirizzo Modbus necessario.
In fondo alla pagina di manuale del FB ModbusMaster c’è il programma ST_ModbusMaster_v1 che puoi copiare ed importare in un tuo progetto LogicLab che è già pronto con tutto quello che serve, in realtà c’è anche la gestione da porta seriale che puoi cancellare.
Se le variabili Modbus da leggere/scrivere su dispositivo sono molte e distanti tra di loro e quindi richiedono l’utilizzo di più pacchetti Modbus ti consiglio di abbinare il FB ACModbus che ti semplifica il lavoro.
Sergio Bertana
Amministratore del forumNon è possibile creare cartelle sul file system da programma, l’unico modo per creare nuove cartelle è utilizzando una connessione FTP al sistema. Dal client FTP potrai gestire completamente il file system creando e cancellando cartelle, rinominando file e cartelle.
Le cartelle create potranno poi essere accessibili da programma con la funzione Sysfopen in cui definirai il percorso completo del file da aprire o da creare (Nel caso lo apri in write od in append).
Sergio Bertana
Amministratore del forum- Usando i TAGS per pagine html…
E’ vero che per gestire variabili da pagina web utilizzando il server HTTP del sistema devi allocare le variabili in DB100, ma puoi definire la tua struttura dati che poi allocherai nella DB100 rendendone posibile l’accesso da pagine web e questo senza creare doppioni. - Potrei usare il blocco HTTPServer…
Se utilizzi il FB HTTPServer devi agganciarlo ad una porta libera, volendo utilizzare la 80 devi definire una porta diversa per il server HTTP del sistema. Potrai così utilizzare il FB per visualizzare tutte le tue pagine e gestire lo scambio dati in AJAX. - Qual è il modo migliore…
Per passare molti dati alla pagina web certo il modo migliore è utilizzare il FB HTTPServer che ti permette di definire in completa libertà le stringhe da inviare al browser.
Sergio Bertana
Amministratore del forumNon riesco a spiegarmi il motivo del tuo problema, giorni fà ti ho mandato una eMail in privato chiedendoti di chiamarmi al telefono per aprire una sessione TeamViewer per vedere il problema direttamente sul tuo sistema.
Magari è finita nello spam, se vuoi contattami per telefono così vediamo di capire il problema.
Sergio Bertana
Amministratore del forumNaturalmente avendo la necessità di dover comunicare con più drivers devi forzatamente utilizzare una connessione in RS485. Meglio in questo caso sarebbe stato utilizzare un modulo CPU MPS054B110 che ha già l’interfaccia RS485 isolata ed essendo basato su CPU CortexM7 avresti anche una maggiore velocità di esecuzione ed un maggior spazio di programma. Visto che disponi di un MPS053 puoi eventualmente utilizzare un convertitore RS232/Rs485 con i vari adattatori per RJ45 per lo scopo.
Certo devi tenere presente quale è la velocità richiesta nella comunicazione, tenendo conto che il massimo baud rate e 115200 (ca 10000 caratteri al secodo) e nel protocollo Modbus oltre ai dati ci sono i controlli ed ad ogni pacchetto vi è un pacchetto di risposta con tutti i tempi relativi per gestirli.
Sergio Bertana
Amministratore del forumNel parsing dei TAGs è importante la posizione delle virgole e degli spazi, devi scrivere la TAG nel modo:
Intero: <!--["%d", UINT, 10]-->
Così vedrai che tutto ti funzionerà.
Sergio Bertana
Amministratore del forumVista la dipendenza delle pagine web dalla versione del firmware del sistema abbiamo realizzato e distribuiamo un package che contiene tutto quello che serve per eseguire l’upgrade del sistema puoi trovare le informazioni sull’upgrade dei sistemi ed eseguire il download del package dalle pagine relative sia ai sistemi basati su ARM7 che CortexM7.
Aggiungo che dopo avere aggiornato il firmware e caricato le nuove pagine, devi dare da telnet (Loggandoti come Admin) il comando “CfgCommit -d” che aggiorna i diritti di accesso alle varie directories del sistema seguito dal comando “Reboot”. Puoi verificare nella pagina Security come sono settati i diritti.
C:/Web - Anonymous - Admin C:/Web/webpages - Guest - Admin
Attenzione che il comando resetta a default l’indirizzo IP, sui sistemi Cortex si attiva il client DHCP ed aspetta l’indirizzo dal server. Se non c’è server DHCP va in IP di fallback 192.168.0.122. Per vedere che indirizzo IP assume il sistema utilizza la funzione Discovery di Toolly.
Per le impostazioni occorre agire sull’icona ingranaggio come da screenshot.
Sergio Bertana
Amministratore del forumPer quanto riguarda la visualizzazione della TAG dici che hai allocato una variabile REAL nella DB100.0 allora avresti dovuto mettere indirizzo variabile a 0 non 100. Il DB100 è di default devi solo indicare l’indirizzo. Prova a modificare il file htm così:
<!--["%.3f",REAL,0]-->
Sergio Bertana
Amministratore del forumLa gestione delle TAGs utente (Quelle relative alle variabili allocate in DB100) per compatibilità con il passato è rimasta esattamente uguale alla precedente.
Abbiamo modificato le TAGs di sistema che nelle vecchie versioni di firmware non erano documentate ed erano utilizzate esclusivamente nelle nostre pagine di sistema.
Ora abbiamo aggiunto le definizioni dei SYS_ID che possono essere utilizzati sia nelle pagine web che da programma utente con la funzione SysOSIDValue.
Sergio Bertana
Amministratore del forumHai già inserito correttamente i blocchi di codice formattato…
Per farlo si edita il post in modalità testo e si include il blocco di codice nei TAGs “<pre>Testo da includere</pre>.
Per quanto riguarda la gestione Ajax delle pagine nelle nuove pagine web abbiamo già introdotto una serie di funzioni richiamabili che alleggeriscono il lavoro. La tecnica che abbiamo utilizzato è di avere una pagina con estensione html che contiene la visualizzazione dei valori ed una pagina dello stesso nome con estensione htm che contiene i TAGs che saranno sostituiti dal server con i relativi valori. Se tu guardi le pagine web dello SlimLine troverai questa tecnica e nelle pagine htm troverai qualcosa tipo questo:
{"OSID_TELNET_SVR_EN" : <!--[OSID_TELNET_SVR_EN]-->, "OSID_TELNET_SVR_PORT" : <!--[OSID_TELNET_SVR_PORT]-->, "OSID_WEB_SVR_EN" : <!--[OSID_WEB_SVR_EN]-->}Quelli che vedi sono TAGs che ritornano e permettono di impostare variabili di sistema qui trovi l’elenco.
Ora siamo chiusi e non riesco a farti un esempio, al rientro preparerò un esempio esplicativo.
Sergio Bertana
Amministratore del forumNon ho capito bene quello che vuoi fare, l’argomento è un pò complicato vedo di spiegarlo magari inserendo più posts di risposta. Inizaimo con una gestione non in Ajax, quindi se vuoi un rinfresco della pagina la devi ricaricare dal browser. Ti riporto il listato di un programma che permette la visualizzazione e l’input da pagina web di variabili.
VAR i : UDINT; (* Auxiliary variable *) IString AT %MX100.100 : STRING[ 15 ]; (* Stringa in input *) IVar AT %MX100.116 : UINT; (* Variabie in input *) OString AT %MX100.118 : STRING[ 31 ]; (* Stringa risultato *) END_VAR // ----------------------------------------------------------------------------- // Di seguito il contenuto della pagina "Test.htm" da trasferire sullo SlimLine // nella directory "C:\Web". // // E' visualizzata in un campo input la stringa "ISting" allocata a DB100.100. // E' visualizzata in un campo input la variabile "IVar" allocata a DB100.116. // E' visualizzata in un campo <div> la stringa di concatenazione del risultato. // ----------------------------------------------------------------------------- /* <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>SlimLine - Simple page</title> </head> <body"> <div><!--['%s', STRING, 118]--></div> <form id="MyForm" name="MyForm" method="post" action="Test.htm"> Stringa: <input name="STRING 100 15" type="text" size="10" maxlength="16" value="<!--['%s', STRING, 100]-->"></br> Valore: <input name="UINT 116" type="text" size="10" maxlength="10" value="<!--['%d', UINT, 116]-->"></br> <input type="submit" id="MyButton" value="Save"/> </form> </body> </html> */ // ----------------------------------------------------------------------------- i:=SysVsnprintf(ADR(OString), SIZEOF(OString), ADR('Result:%s'), STRING_TYPE, ADR(IString)); i:=SysCVsnprintf(ADR(OString), SIZEOF(OString), ADR(' - %d'), UINT_TYPE, ADR(IVar)); // [End of file]Metto in evidenza che il tipo file deve essere .htm, perchè solo nei files con questa estensione vengono sostituiti i TAGs.
Le variabili stringa sono definite di lunghezza 15 e 31 perchè ricordo che al termine delle stringhe è automaticamente aggiunto il codice tappo 16#00 che allunga di 1 byte la lunghezza definita.
Per impostare i parametri da pagina web utilizzo un form che invia i valori in POST, nelle variabili stringa nei campi di inputazione occorre definire la lunghezza masima questo per evitare di “sforare” la dimensione in memoria.
Sergio Bertana
Amministratore del forumCerto che è possibile eseguire l’aggiornamento (Vedi articolo) basta scaricare dal sito il package per l’upgrade a XUnified che contiene sia il sistema operativo che le pagine web aggiornate.
Se includi nel progetto la libreria eLLabXUnifiedAdjLib potrai compilare il tuo programma senza fare modifiche. Altrimenti dovrai sostituire gli oggetti rinominati nel passaggio da XTarget ad XUnified.
Sergio Bertana
Amministratore del forumPer la lettura dell’RFID se usi la versione con bus Wiegand devi utilizzare un sistema SlimLine perchè i sistemi Netlog non hanno la velocità di acquisizione necessaria. Sui sistemi Netlog puoi utilizzare il lettore RFID con interfaccia 1-wire collegando alla porta seriale del Netlog l’Adattatore 1-Wire a RS232 DS9097U.
Visto che mi parli di invio eMail quindi il sistema è connesso ad Internet, posso consigliarti di utilizzare un HMI con la licenza EasyAccess o di acquistare la licenza a parte, questo ti permetterà di accedere al sistema HMI/PLC da remoto via Internet.
Con la connettività Internet hai tutti i requisiti per omologare l’impianto secondo la normativa Industry 4.0 ed accedere ai benefici fiscali (Vedi blog).
Sergio Bertana
Amministratore del forumCome puoi vedere in questo articolo, tutte le librerie sono state riscritte per avere la compatibilità con l’architettura XUnified, tu probabilmente stai compilando su di un sistema con architettura XTarget, quindi avendo modificato il nome di alcuni oggetti il compilatore non trova la nuova funzione SysVsnprintf utilizzata nella libreria.
Per poter utilizzare le nuove librerie con l’architettura XTarget devi aggiungere al tuo progetto la libreria eLLabXTargetAdjLib.
- Usando i TAGS per pagine html…
-
AutorePost