Vai al contenuto

Risposte nei forum create

Stai visualizzando 15 post - dal 31 a 45 (di 104 totali)
  • Autore
    Post
  • in risposta a: Realizzare una temporizzazione in un blocco funzione #58987
    Rubox
    Partecipante

    Mi 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.

    in risposta a: Realizzare una temporizzazione in un blocco funzione #58975
    Rubox
    Partecipante

    Parto 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?

    in risposta a: Definizione parametri in funzione e in blocco funzione #58974
    Rubox
    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.

    in risposta a: Gestione registro FIFO per log dati #58948
    Rubox
    Partecipante

    Riesumo 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?

    in risposta a: Utilizzo TAGs nella pagine HTM dinamiche #58926
    Rubox
    Partecipante

    Mi riavventuro nell’aggiornamento del FW.
    Solo una precisazione: io che ho ancora il FW C330 per XTarget12 devo scaricare il pacchetto PCK050A000, corretto?

    in risposta a: Utilizzo TAGs nella pagine HTM dinamiche #58922
    Rubox
    Partecipante

    Grazie 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.

    in risposta a: Utilizzo TAGs nella pagine HTM dinamiche #58910
    Rubox
    Partecipante

    Sono 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?

    in risposta a: Come utilizzare il FB Average #58911
    Rubox
    Partecipante

    C’è 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.

    in risposta a: Definizione valore NaN su variabili REAL #58892
    Rubox
    Partecipante

    Seguendo 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

    in risposta a: Definizione valore NaN su variabili REAL #58889
    Rubox
    Partecipante

    Grazie 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?

    in risposta a: Collegamento termoresistenze Pt100/Pt1000 #58865
    Rubox
    Partecipante

    Riesumo 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).

    in risposta a: Allocazione in memoria delle variabili strutturate #58851
    Rubox
    Partecipante

    Riprendo 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.

    in risposta a: Allocazione in memoria delle variabili strutturate #58829
    Rubox
    Partecipante

    Il 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.

    in risposta a: Allocazione in memoria delle variabili strutturate #58819
    Rubox
    Partecipante

    Riprendo 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?

    in risposta a: Aggiornamento pagine web di sistema #58723
    Rubox
    Partecipante

    Ho 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.

Stai visualizzando 15 post - dal 31 a 45 (di 104 totali)