Rubox
Risposte nei forum create
-
AutorePost
-
Febbraio 8, 2021 alle 6:02 pm in risposta a: Realizzare una temporizzazione in un blocco funzione #58987
Rubox
PartecipanteMi son spiegato male io.
Per gli ingressi in errore ho impostato il programma in modo tale che se un ingresso va in errore, torna a funzionare, va nuovamente in errore e via così… il sistema mi manda solo una e-mail in un arco di tempo che decido io, altrimenti mi spedirebbe una email ogni volta.Per l’uso di SysGetSysTime ho riscontrato alcune anomalie (per mia incapacità nella programmazione). Ho sostituito SysGetSysTime con SysDateTime e con la “logica” che ho impostato adesso funziona come mi aspetto.
Febbraio 8, 2021 alle 8:15 am in risposta a: Realizzare una temporizzazione in un blocco funzione #58975Rubox
PartecipanteParto dal fondo spiegando quello che vorrei ottenere.
Il sistema che sto sviluppando mi manda una email se gli ingressi analogici che acquisisce vanno in Fault.
Per non ricevere una email ad ogni ciclo di Back ho inserito un controllo su SysGetSysTime pari a 30 minuti.Però se per sfortuna la CPU ha appena ricominciato il conteggio del tempo da 0 e si accende il sistema, tale controllo sul valore di un timeRef non sarà veritiero fino a che il valore del tempo di sistema non raggiunge il valore di 30 minuti.
Per ottenere una temporizzazione su tempi così lunghi è meglio usare un eTP, oppure anche SysGetSysTime c’è qualche trucco per utilizzarlo anche in questi casi?
Febbraio 8, 2021 alle 8:11 am in risposta a: Definizione parametri in funzione e in blocco funzione #58974Rubox
Partecipante… e Rubox dovrebbe ricordarsi che il Modo simulazione è molto utile, ma certe funzioni, come ad esempio SysVsnprintf non vengono eseguite e danno errore…
Mi son collegato ad una CPU e funziona correttamente la funzione che avevo preparato e che manipola le stringhe.
Rubox
PartecipanteRiesumo un vecchio post sull’utilizzo del FIFOFile_v1. Ho aggiornato da XTarget12 a XUnified, creo un progetto nuovo per XUnified, inserisco un blocco FIFOFile_v1 da libreria eLLabLogLib_B400 (l’ultima disponibile) e mi da in compilazione il seguente errore, solo con la dichiarazione della variabile:
FIFOFile_v1(195) - errore S1305: Sysfopen => Funzione sconosciuta
Dove sbaglio?
Rubox
PartecipanteMi riavventuro nell’aggiornamento del FW.
Solo una precisazione: io che ho ancora il FW C330 per XTarget12 devo scaricare il pacchetto PCK050A000, corretto?Rubox
PartecipanteGrazie per aver aggiornato gli esempi.
Ho provato il suo esempio senza modificare nulla. Io uso la CPU MPS054A110 XTarget12, e mentre con le richieste GET sia in XHR che FETCH non ho problemi e vengono risolte tutte, le richieste POST vanno a buon fine con XHR.
Le richieste POST tramite FETCH ottengono un generico errore di rete.
Se eseguo richieste FETCH verso altri server invece sono risolte senza problemi, cosa che mi fa supporre che qualcosa nel firmware che uso non sia compatibile con tali API.
Rubox
PartecipanteSono in fase di esperimenti e non ne vengo a capo. Un cliente preferisce gestire e vedere i dati dal PC invece che da pannello operatore, quindi gli preparo le pagine web dinamiche. Per il refresh in automatico dei dati ho sempre usato AJAX e XMLHttpRequest.
Si lamenta che ogni tanto il sistema sembra avere ritardi di comunicazione, così ho modificato le pagine html per utilizzare l’API fetch. Funziona tutto fino a che le richieste sono di tipo GET, concatenando la funzione javascript con la sequenza delle promise intrinseche di fetch la pagina aggiorna i dati.
Il problema sorge volendo utilizzare l’API fetch anche per le operazioni di POST: mentre con XMLHttpRequest riesco ad aggiornare correttamente i valori sul PLC, con l’API fetch ottengo sempre un errore di rete. E non riesco a capire da dove salti fuori, se dal webserver del PLC che non risponde “correttamente” o da cosa. Se utilizzo la stessa funzione javascript con l’API fetch per comunicare con un altro server non ho nessun tipo di errore e i dati vengono trasmessi.
Qualcuno dei frequentatori del sito, oppure Lei, avete già usato l’API fetch in pagine javascript per trasferire dati al PLC tramite i TAGS?
Rubox
PartecipanteC’è un modo per “azzerare” il valore medio del FB Average?
Lancio un’acquisizione di un’ora di un ingresso e lo passo ad Average. Quando lancio un’altra acquisizione dello stesso ingresso vorrei poter ripartire con un valore medio nuovo.
Rubox
PartecipanteSeguendo la Sua idea, e cercando meglio nel forum, ho creato la funzione di verifica per valore NaN e Infinito.
Se ho ben capito: su PLC se definisco una variabile REAL e le assegno un valore esadecimale, questo valore è convertito nel formato standard a 32 bit. Per scrivere direttamente i 32 bit devo farlo tramite puntatore che accede direttamente alla memoria dell variabile e non passa attraverso la codifica.
Il link alla discussione da cui ho attinto per la funzione di verifica Nan e Infinito è questo
Rubox
PartecipanteGrazie per la spiegazione.
Quindi assegnando direttamente il valore esadecimale 16#7F8FFFFF non ottengo il risultato voluto, ma devo assegnarlo tramite un puntatore alla variabile stessa?Rubox
PartecipanteRiesumo questo vecchio argomento poiché devo acquisire delle PT100. Ho il modulo PCB126C130 a cui sui primi ingressi (da 0 a 4) ho collegato dei sensori 4-20mA. Gli ingressi da 5 a 9 li ho impostati per le PT100. Collego i sensori a 4 fili, con la Iexc in serie a tutti. I cavi sono twistati (sono di lunghezza un metro).
Finchè sono tutti collegati non riscontro problemi, la misura è corretta (la verifico con un pozzetto termometrico). Se provo a simulare un guasto ad un sensore, scollegando la Iexc o il collegamento a Isense mi aspetterei una lettura in errore e un valore NaN. Invece la lettura degli ingressi continua a passare da NaN ed errore a valori acquisiti totalmente senza senso (valori inferiori a -170 gradi o superiori a 200).
E’ come se fossero sufficienti i disturbi che il modulo di espansione prende per fargli fare comunque la lettura. Come posso ovviare a questo inconveniente?
Per il momento, sapendo che i valori di temperatura corretti sono in un range da -20 a +140 ho impostato un controllo in tal senso: se esco fuori da quel range imposto il corrispondende valore a SQRT(-1) (non ho trovato una definizione di NaN che possa essere assegnata ad una variabile, così me la sono “costruita” con quell’operazione senza senso).
Gennaio 22, 2021 alle 5:17 pm in risposta a: Allocazione in memoria delle variabili strutturate #58851Rubox
PartecipanteRiprendo il discorso. Mi son collegato da remoto ad una CPU per provare. I passi precedenti sono stati:
- Ho installato la versione di LogicLab 3.1.1.0 Build 5.12.0.36
- Ho scaricato le ultime versioni delle librerie
- Ho aggiunto la libreria eLLabXTargetAdjLib al progetto esistente
Ho creato un nuovo progetto per la CPU e caricato il blocco FTPClient_v2 (da libreria SFR079C220). Mi collego alla CPU caricando la sua immagine (SlimLine Cortet M7 MPS054A110, XTarget_12, con FW SFW198C330). Creo un semplicissimo programma copiando l’esempio di utilizzo ST_FTPClient_v2 sulla Knowledge, e mi compaiono le warning:
FTPClient_v2(63) - warning G0128: 0 => Comparison between pointer and non-pointer FTPClient_v2(100) - warning G0128: 0 => Comparison between pointer and non-pointer FTPClient_v2(117) - warning G0128: 0 => Comparison between pointer and non-pointer
Ho provato a cancellare tutto il contenuto della cartella del progetto lasciando solo il codice, ricaricando l’immagine ecc… ma saltano sempre fuori quei warning.
Non riesco a capire dove sbaglio, se devo caricare qualche altra libreria, se non gli piace il firmware XTarget. Va bene che i warning non sono “bloccanti”, ma non mi piace spedire in giro programmi potenzialmente “problematici” e mi piacerebbe venirne a capo.
Gennaio 20, 2021 alle 3:33 pm in risposta a: Allocazione in memoria delle variabili strutturate #58829Rubox
PartecipanteIl problema è che aggiornando LogicLab a quella versione da quella che utilizzo mi ritrovo errori in fase di compilazione dal blocco FTPClient_v1. Se lo sostituisco con FTPClient_v2 della libreria fornita con LogicLab 3.1.1.0 scompare l’errore di indice non trovato, ma saltano fuori warnings (21) del tipo
FTPClient_v2(629) - warning G0128: 0 => Comparison between pointer and non-pointer
Infatti avevo installato l’ultima versione, ma poi ero ritornato sui miei passi perchè mi dava problemi.Gennaio 20, 2021 alle 1:53 pm in risposta a: Allocazione in memoria delle variabili strutturate #58819Rubox
PartecipanteRiprendo questo argomento perché probabilmente mi sfugge qualcosa: quando dichiaro in una struttura un membro di tipo STRING LogicLab non mi permette di definirne la dimensione ma imposta automaticamente la dimensione a 32 caratteri.
Se apro progetti scritti con la versione precedente di LogicLab ho delle strutture con stringhe da 15, 31 o 63 caratteri, ma non mi permettere di modificarne la dimensione.Cosa sto sbagliando?
Rubox
PartecipanteHo scaricato il pacchetto completo, firmware e pagine web, ma dalle pagine web di aministrazione mi fa solo vedere i dati senza possibilità di cambiarli. Non mi compare l’ingranaggio.
Ho dovuto rimettere sul la versione precedente e le sue pagine web affinchè funzionasse di nuovo la CPU.
-
AutorePost