Vai al contenuto

Risposte nei forum create

Stai visualizzando 15 post - dal 61 a 75 (di 104 totali)
  • Autore
    Post
  • in risposta a: Nuovo blocco funzione per invio eMail #51275
    Rubox
    Partecipante

    Se non alloco il FIFOIdx su una memoria tampone perdo i dati scritti nel FIFO allo spegnimento. Per me non è un problema. Però ho notato che il file di appoggio non viene ricreato ad ogni avvio del sistema, ma resta quello di prima.

    C’è un modo per ripartire con un file vuoto? O meglio: se il file ha già dei dati vecchi dentro può dar problemi? (mi viene in mente che se non indico nè il file di appoggio nè il FIFOIdx forse riparte con una situazione “pulita”, corretto?)

    in risposta a: Eseguire Ping di un indirizzo IP per testare comunicazione #51203
    Rubox
    Partecipante

    Mi scuso per non aver risposto alla domanda in modo esatto.

    Al momento il ping lo eseguo dal programma con SysIPReach. Domani che ho di nuovo accesso al sistema provo.

    Quello che trovo strano è che il programma sul PLC pinga correttamente il DNS di Google (8.8.8.8). Al posto di Google ci metto l’indirizzo IP del server che voglio pingare e va in timeout. Se questo stesso indirizzo IP lo uso in una finestra DOS per pingare il comando mi restituisce un risultato positivo. E il comando DNS mi restituisce l’indirizzo del server in modo corretto.

    Ho anche pensato che il server non risponda ai ping, ma non dovrebbe nemmeno essere raggiungibile da DOS.

    in risposta a: Eseguire Ping di un indirizzo IP per testare comunicazione #51274
    Rubox
    Partecipante

    Ho fatto un po’ di prove.

    PLC: gateway e DNS inpostati correttamente nella configurazione. Dal programma: DNS verso il mio server restituisce il corretto indirizzo IP. SysIPReach però non mi restituisce nulla, non pinga. Nemmeno dandogli direttamente l’indirizzo IP. SysIPReach verso altri host funzionano.

    Toolly terminale: stessa situazione del PLC. Ping verso google OK, verso il mio sito web è OK. Verso il server dei dati no. Dice DNS ANCOUNT 0

    Finestra DOS “classica”: pinga anche verso il server dei dati con nome simbolico o con indirizzo IP.

    Può esserci qualcosa di differente tra il ping che si fa da DOS e il ping che esegue il PLC da programma o da terminale Toolly?

    in risposta a: Eseguire Ping di un indirizzo IP per testare comunicazione #51127
    Rubox
    Partecipante

    Dire che il gateway è impostato correttamente poiché al momento “pingo” il DNS di Google 8.8.8.8 senza problemi e lo SlimLine si collega a internet senza problemi (spedisce email, fa richieste HTTP e trasferimenti FTP).

    Se nel programma che pinga Google gli metto direttamente l’indirizzo IP del server che voglio pingare, va in timeout e non termina mai. Però da console dos mi da il 100% di pacchetti inviati e ricevuti.

    Al momento ho “tamponato” con richiesta HTTP di una pagina da quel server, ma vorrei capire cosa sbaglio.

    in risposta a: Aggiornamento programma su PLC cliente #51191
    Rubox
    Partecipante

    Se il PLC è connesso a internet, e le opportune porte sono aperte e instradate sul router, è possibile anche collegarsi da remoto con LogicLab direttamente al PLC e utilizzarlo come se fosse in rete locale, giusto?

    in risposta a: Eseguire Ping di un indirizzo IP per testare comunicazione #51071
    Rubox
    Partecipante

    Ho modificato leggermente il Suo listato poiché devo fare il ping del server FTP. Ricavo l’indirizzo IP con DNSRequest, e me lo restituisce correttamente. Poi imposto tale indirizzo per il ping. Su syslog vedo che il comando ping va in timeout, mentre se eseguo il ping da terminale dos va a buon fine.

    Invece la SysIpReach non mi da mai il segnale Done. Son sicuro che sbaglio una cosa semplice, ma ci sto sbattendo la testa da stamane.

    in risposta a: Nuovo blocco funzione per invio eMail #51042
    Rubox
    Partecipante

    Leggendo sul manuale la spiegazione di FIFOFile_v1 c’è scritto: Questo blocco funzione effettua la gestione di un registro FIFO su di un file (Può essere eseguito in un solo loop di programma come una funzione).

    La parte in grassetto che cosa significa? Che posso usare un solo FB FIFO per programma?

    in risposta a: SlimLine in stop con codice di eccezione 1 #51041
    Rubox
    Partecipante

    Il sistema è in esecuzione da un paio di mesi e s’è bloccato oggi per la prima volta. Me ne sono accorto perché in avvio mi manda una email di avviso.

    Il ciclo FOR da 0 a 0 è perché cicla su un array, che al momento è composto solo da un elemento: posso mettere una variabile e vedere se ricapita (l’array mi serviva per definire dei “time trap”, orari in cui il PLC mi deve mandare dei report).

    No, non ho il sistema collegato a LogicLab sempre, e come dice Lei se succede una volta ogni tanto è difficile trovare chi causa il problema.

    Domani ricontrollo tutto il programma.

    Le chiedo un suggerimento: ho visto che altri utenti del forum quando postano loro pezzi di codice utilizzano di frequente i cast TO_INT, TO_UDINT e via dicendo (ho visto in SysVarsnprintf usarlo per tutti i parametri della funzione). E’ necessario? Oppure se definisco le variabili del tipo corretto è superfluo? Potrebbe essere causa di eccezione?

    in risposta a: SlimLine in stop con codice di eccezione 1 #51026
    Rubox
    Partecipante

    Il mio SlimLine si è appena arrestato per una eccezione:

    [E] SFR050 [14/11/2019 16:04:05] 1020, Except: WDOG At:0x004B9FDC

    C’è modo di capire a cosa può esser dovuto?

    Gli unici cicli FOR sono da 0 a 3, da o a 4 e da 0 a 0.

    Non uso puntatori “epliciti” nel senso che la funzione ADR la uso per le funzioni di scrittura in stringa ADR(stringa).

    Un’altra cosa che vorrei capire: in warning precedenti la stringa era [W] SFR055: cosa identificano SFR050 e SFR055?

    in risposta a: Nuovo blocco funzione per invio eMail #50974
    Rubox
    Partecipante

    Mi metto a leggere per bene e a studiare il FIFOFile e a imbastire la logica per non sbagliare le cose.

    Direi che le cose che devo fare sono: salvare nel FIFOFile il messaggio (eventualmente un inserimento anche multiplo per ogni indirizzo email a cui spedire), tenere traccia di quanti inserimenti sono stati fatti. Se è presente qualcosa nel FIFO allora richiamo la parte che invia il messaggio. A invio avvenuto decremento il contatore dei messaggi FIFO… e riparto con il controllo se ci sono messaggi in coda.

    Così dovrebbe andare bene?

    in risposta a: Libreria gestione stringhe json #50975
    Rubox
    Partecipante

    Sto provando le funzioni per le stringhe JSON: quando vado a decodificare una normale stringa composta da tre oggetti non annidati riesco a leggere solo il primo mentre gli altri due no.

    La stringa è del tipo: {“i”:”indirizzo@mail.mail”,”o”:”Oggetto: 12/11/2019″,”m”:”Messaggio email: i valori sono i seguenti”}

    L’indirizzo me lo legge correttamente, gli altri due campi non riesco.

    Lascio la domanda e mi do una risposta sperando che sia quella corretta: Se la stinga che si mette nell’oggetto JSON contiene dei due punti, come per data e ora, oppure come semplice segno di punteggiatura… non funziona la decodifica. Togliendo i “:” e mettendo altri caratteri funziona perfettamente. Nemmeno inserendoli con $3A funziona (c’ho provato…)

    Mi conferma che è così? C’è un modo per inserire i “:” in una stringa contenuta in un oggetto JSON oppure la funzione di decodifica va in palla perché si ritrova delimitatori dove non li gradisce?

    in risposta a: Nuovo blocco funzione per invio eMail #50968
    Rubox
    Partecipante

    Pongo l’ennesima domanda da neofita: quanto blocchi EmailSend posso usare in un programma?

    Ho l’esigenza di spedire delle email differenti al verificarsi di più eventi. Questi eventi possono anche accadere nello stesso ciclo. Al momento ho cercato di far funzionare il tutto con vari Case, compresa l’eventualità di un errore sull’invio di una email… ma con scarso successo: alcune email si perdono.

    Stavo pensando di creare un programmino per ogni evento da catturare e gestire: l’unico mio cruccio è se lo SlimLine può comunicare/utilizzare più EmailSend nello stesso momento oppure no.

    Stavo anche pensando, in alternativa, di creare un array di coppie Oggetto/Corpo della email in cui inserire appunto l’email al verificarsi dell’evento e poi tenere traccia di quale messaggio è ancora da spedire e controllarne l’effettivo invio, a quel punto verificare se era l’ultimo messaggio oppure no, e così via.

    Ogni suggerimento è ben gradito.

    in risposta a: Pop-up con Program error in compilazione #50923
    Rubox
    Partecipante

    Sono incappato in un messaggio di errore come quello riportato: la linea del codice cpp differente (7978), LogicLab Rel 5.0 versione 3.0.0.0 build 17/09/2018 5.8.0.17. Controllando con Toolly i logs ho notato un warning che non riesco a risolvere. La stringa di Toolly è la seguente:

    [W] SFW198 [data/ora] 6000, User program error: 9932200

    Ho individuato il programma che lo genera: esegue una richiesta HTTP di tipo POST. Se commento la parte in cui uso le SysLWVarsnprintf il warning sparisce. Quello che non capisco è perché salta fuori: la stringa su cui scrivo è definita di lunghezza 255. Ci scrivo dentro massimo 100 caratteri con comando del tipo:

    i:=Sysmemset(ADR(richiesta),0,SIZEOF(richiesta));
    i:=SysVarsnprintf(ADR(richiesta),SIZEOF(richiesta),’dato1=%4.2f’,REAL_TYPE,ADR(rDato1));i:=SysLWVarsnprintf(ADR(richiesta),SIZEOF(richiesta),’dato2=%4.2f’,REAL_TYPE,ADR(rDato2));

    Ho provato a mettere la dimensione della variabile “richiesta” invece della funziona SIZEOF ma non cambia nulla. Ho provato a commentare la linea con Sysmemset (che è superflua usando come prima funzione SysVarsnprintf) e non cambia nulla: c’è sempre quel warning.

    Avevo appena modificato la lunghezza di alcune stringhe da 256 a 512 e da 512 a 1024. Adesso nel dubbio ho impostato tutte le stringhe come potenza di 2 meno 1, quindi 63, 257, 1023, 511 e via dicendo (anche se è stato sufficiente impostare quella più lunga a 1023 per far scomparire il messaggio in compilazione).

    Mi conferma che anche l’errore che ho avuto io può esser dovuto alle stringhe, oppure devo cercare l’errore altrove? (un’indicazione in che direzione cercare sarebbe graditissima)

    in risposta a: Sicurezza per l’accesso ai sistemi SlimLine #50949
    Rubox
    Partecipante

    Grazie del suggerimento. Leggendo meglio la documentazione del router che impiego ho notato la possibilità di definire più profili differenti, che possono esser scambiati con un SMS.

    in risposta a: Sicurezza per l’accesso ai sistemi SlimLine #50934
    Rubox
    Partecipante

    Buongiorno, a proposito del fatto che la porta 502 non è protetta da password volevo chiedere se c’è un modo per abilitare la programmazione del PLC “a distanza”.

    C’è la possibilità di impostare il PLC in modo che rifiuti la connessione sulla porta 502 fino a che un suo ingresso non è impostato a TRUE, ad esempio?

Stai visualizzando 15 post - dal 61 a 75 (di 104 totali)