Rubox
Risposte nei forum create
-
AutorePost
-
Rubox
PartecipanteHo fatto un programma base sul PLC e una pagina altrettanto base
(* Variabili globali impostate sul PLC *) VAR_GLOBAL valore AT %MD100.0 : REAL := 123.456; i AT %MW100.10 : UINT := 521; END_VAR (* Pagina v2.htm inserita nella cartella C:\Web del PLC *) Intero: <!--["%d",UINT,10]-->
Nel programma ho inserito un task di Boot che incrementa la variabile i di un’unità. Mi aspetterei di leggere “Intero: 522” quando dal browser richiamo la pagina, invece dopo la scritta “Intero:” non compare nulla.
Son quasi sicuro di sbagliare qualcosa di semplice, ma non riesco a capire cosa.
Rubox
PartecipanteHo aggiornato il FW della CPU all’ultima versione SFW198D030.
IL PLC è ripartito ma sembra che i TAG delle pagine dinamiche non funzioni: il file formattato che funzionava con il FW precedente adesso non mi restituisce i valori delle variabili. Ho fatto un semplice programma che scrive alla variabile real DB100.0 un valore e un file htm come segue:
<!--["%.3f",REAL,100]-->
Però richiamando la pagina non mi visualizza il valore.
Secondo problema: accedendo alle pagine di configurazione del PLC vedo le varie sezioni, ma non mi permette di modificare nessuna impostazione.
Dove sbaglio?
Rubox
PartecipantePer la formattazione del codice ho sbirciato il sorgente della pagina e visto che il Suo codice era tra tag <pre>.
Nel pomeriggio aggiorno il FW della CPU e poi ci “gioco”.
Uso già i tag in un file valori.html per leggere le variabili da pagina HMTL e JS con richieste XMLHTTP alla pagina valori.htm (e funziona), e uso lo stesso file valori.htm per inviare i dati dalla pagina HTML prendendo spunto dall’esempio che a suo tempo c’era sul sito.
Poiché sono “allergico” ai form del linguaggio HTML e preferisco costruirmi la stringa POST da solo, ma sbagliavo nel non definire la lunghezza della STRING ma solo tipo di dato e locazione di memoria. Ed il dubbio m’è venuto dalla Sua risposta.
Ho modificato lo script JS e adesso non ho più quel warning, però voglio appunto aggiornare il FW e riprovare se tutto funziona correttamente. A tal proposito cambia qualcosa per la gestione delle pagine dinamiche HTML? I TAG di prima funzionano anche adesso, oppure è stata rivista la struttura?
Rubox
PartecipanteAvevo dimenticato di inserire la lunghezza della stringa nella richiesta POST.
Da JavaScript devo modificare la stringa riportata sopra in:
var stringaPOST=”STRING 200 15=’valore stringa’&UINT 40=22″
OT:come posso inserire nel forum blocchi di codice formattato come ha fatto Lei? quali tags utilizzare?
Rubox
PartecipanteSì, ieri sera mi son dato alla lettura delle novità (che mi erano sfuggite).
Volendo potrei aggiornare la mia CPU MPS054A110 XTarget_12 con SFW198C330 al nuovo firmware XUnified utilizzando le nuove librerie?
Ho letto che ci sarebbero delle funzioni con nomi modificati e parametri modificati, ma al momento non sarebbe un problema.
Rubox
PartecipanteVolevo segnalare che ho scaricato la libreria Sfr091c020 Libreria HTTP (eLLabHTTPLib) v3.0.20 del 24/11/2020.
Quando compilo mi da errore S1305 con riferimento eLLabHTTPLib.plclib(63): SysVsnprintf Funzione sconosciuta.
Rubox
PartecipanteOttengo nel file di log la seguente frase: può cortesemente dirmi a cosa può riferirsi, che così poi cerco la sorgente?
Il programma è basilare al momento, utilizza temporizzatori eTON, eTOFF e variabili BOOL (30 righe di programma ST in tutto)
[W] SFW198 [data ora] 3110, ARG no length definition, 3
Rubox
PartecipanteRewind: su rete LAN qualsiasi IP come gateway va bene. La email non mi partiva perchè mi sono dimenticato che nella codifica JSON non è possibile inserire il carattere dei due punti.
La email adesso viene spedita e ricevuta dal server email locale.
Rubox
PartecipanteMi scontro con il seguente problema. Devo sviluppare un programma per un cliente, su una rete LAN isolata, su cui non c’è nessun router. Alla voce gateway delle impostazioni dello SlimLine cosa ci devo mettere?
Fin’ora avevo sviluppato sistemi connessi in internet e il gateway era il router verso l’esterno, adesso non mi trovo nessun router. Adesso gli stessi programmi che funzionano con router presente, non funzionano più: ad esempio EMailSend. Come ci si comporta in questo caso?
Il PLC ha sempre la necessità di un gateway, e quindi di un router su rete LAN isolata?
Settembre 2, 2020 alle 8:02 am in risposta a: Gestione pagine web dinamiche da parte dell’utente #57458Rubox
PartecipanteRiesumo questo post sulle pagine dinamiche.
Premessa: caricando due versioni di un mini-sito di visualizzazione dati e interfaccia per l’operatore ho caricato due volte gli stessi script, in sottocartelle differenti per fare prove, nella cartella C:\Web del PLC. I client FTP mi davano errore 452. Dopo averci sbattuto un po’ la testa sull’errore 451 del client FTP ho cancellato uno script e temo di sforare la dimensione massima dello spazio C del PLC (liberando spazio non ho più avuto errori).
Domanda: è possibile caricare script JS nella scheda micro-SD (la CPU che ho la prevede) e linkare da una pagina HTML presente su C:\Web il file in D?
Ora che sto scrivendo mi sto dicendo che no, non è possibile, e che l’unico modo è mettere i siti sulla cartella D e poi impostare lo slimline per rispondere da li (come nel topic ). Se così fosse anche le Vostre pagine web di configurazione andrebbero messe su D, giusto?
Rubox
PartecipanteMi trovo con la necessità di acquisire circa 50 valori di temperatura. Finché sono stati solo 5 valori ho istanziato 5 variabili SysGetAnInp. Adesso con 50 valori come è meglio procedere?
Istanziare 50 blocchi funzione SysGetAnInp, oppure creare una struttura con dentro i campi address, channel, mode, value, istanziare un array di questa struttura e poi usare un ciclo for per acquisire i valori, modificando i parametri del blocco di lettura in base ai valori corretti?
A livello di memoria dati immagino che istanziare 50 blocchi funzione sia peggio della seconda opzione o sbaglio?
Nel caso ci sia un errore nella lettura (per guasto o per altro) quale approccio è migliore?
Rubox
PartecipanteEffettivamente la prima cosa che ho fatto è cercare se c’erano nuove librerie e con la nuova non c’è quel warning. Ho notato che nella nuova versione della libreria il campo “Data” è diventato “Body”: immagino sia sempre limitato a 256 caratteri come corpo della email come nella versione precedente?
Quando ho iniziato a usare i Vostri prodotti avevo trovato davvero utile il PDF “Programmazione IEC 61131-3 (LogicLab)”: nella versione che si scarica ancora dal sito è riportata la versione vecchia di questa libreria e non anche la nuova. Scaricando le librerie nuove utilizzate è poi possibile trovare un PDF con le specifiche? Al momento le ho viste sulla knowledge, ma il PDF era ed è utilissimo in quelle occasioni di assenza di internet.
Rubox
PartecipanteRieccomi sul forum a chiedere aiuto. Ho dovuto cambiare il PC passando da Win 8.1 a Win 10. Ho scaricato e installato l’ultima versione di LogicLab, la 3.1.0.0, Build: 13 dicembre 2019.
Oggi ho dovuto cambiare un paio di valori nel programma che sta funzionando da 5 mesi sul PLC. Ricompilando mi da il seguente warning, warning che prima non compariva.
EMailSend(504) – warning G0138: ADD => Illegal conversion to pointer
Se metto il commento sulla riga un cui invoco la variabile di tipo EMailSend il warning scompare. E’ un warning che potrebbe fare danni nell’esecuzione della logica e el programma? A cosa è dovuto? C’è un modo per ovviare?
Novembre 21, 2019 alle 7:17 am in risposta a: Eseguire Ping di un indirizzo IP per testare comunicazione #51299Rubox
PartecipanteHo impostato i DNS di Google, gli stessi impostati sul PLC, anche sul PC e non pinga. Se invece lascio i DNS del service provider, il PC pinga. Più tardi provo a mettere questi DNS nel PLC.
Rubox
PartecipanteSono restio a usare la memoria retain per scrivere valori ogni minuto: in un post sui terminali Weintek avevo letto che alla lunga si può guastare la memoria. E’ così anche per quella del PLC, oppure sopporta cicli di scrittura intensivi?
-
AutorePost