Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 1,651 a 1,665 (di 4,482 totali)
  • Autore
    Post
  • in risposta a: Interpretazione file Logs #50217
    Sergio Bertana
    Amministratore del forum

    Avendo aperto anche solo 1 porta e nel tuo caso hai sicuramente aperto la porta 80 per il server HTTP, chiunque da ogni parte del mondo può accedere al tuo sistema e cercare di entrare generando una serie di errori.

    L’errore 5330 indica che si è ricevuto un pacchetto TCP con checksum errato, il fatto che  si ripeti ogni 30 secondi è perchè in caso del ripetersi di un errore viene salvato solo ogni 30 secondi.

    L’errore 6675, indica che qualcuno da IP e porta ha cercato di connettersi, ha iniziato la sequenza di Three-Way Handshake ma poi non l’ha portata a termine nel tempo predefinito.

    in risposta a: Monitoraggio con invio eMail #50213
    Sergio Bertana
    Amministratore del forum

    Per fare quello che hai bisogno oltre al modulo CPU SlimLine Raspberry, ti occorre un modulo di estensione Mixed I/O per acquisire l’ingresso analogico di tensione batteria e l’ingresso digitale di controllo.

    E’ possibile gestire i moduli estensione tramite una libreria dinamica .so richiamabile da C++ e da Python, anche se il mio consiglio è di realizzare il programma di gestione degli I/O in IEC61131 utilizzando l’ambiente di sviluppo LogicLab.

    Per lo scambio dati tra l’ambiente LogicLab ed il programma Python lo puoi realizzare utilizzando una comunicazione TCP in localhost. Visto che citi la possibilità di avere una pagina web perchè non utilizzare Node-RED al posto del Pyton ? (Vedi esempio).

    Se utilizzi un server SNMP in rete locale senza connessione in TSL puoi fare tutto quello che hai bisogno utilizzando il solo modulo CPU SlimLine CortexM7 che ha già a bordo 2 ingressi analogici e 2 ingressi digitali. Ha il server HTTP per eventuali pagine web e con il FB EMailSend puoi inviare la mail.

    PS. Tutti i programmi sviluppati su CPU Cortex M7 possono essere eseguiti anche sul modulo CPU SlimLine Raspberry in concorrenza con qualsiasi altro applicativo C++, Python, Node-RED, ecc..

    in risposta a: Interpretazione file Logs #50206
    Sergio Bertana
    Amministratore del forum

    L’errore indica che sono stati utilizzati e mantenuti contemporaneamente aperti tutti i 32 sockets gestibili.

    Consiglio di definire il parametro LifeTime per chiudere automaticamente i sockets dove non vi è traffico, altrimenti in caso di disconnessione hardware del client, esempio un client remoto connesso ad un socket server sullo SlimLine via WiFi o da Internet viene spento,  non potendo eseguire la corretta sequenza di chiusura mantiene il socket appeso ed occupato.

    Il comando NetStat da Telnet ritorna l’elenco dei sockets utilizzati dal sistema.

    in risposta a: Interpretazione file Logs #50204
    Sergio Bertana
    Amministratore del forum

    Essendo connesso tramite un router 4G che di solito salvo espressa richiesta è NATtato non dovrebbe essere possibile ricevere connessioni in ingresso. Però dal file di log si evince con certezza che la connessione arriva da IP esterni alla rete quindi qualcuno in quella rete fà passare richieste dall’esterno.

    Si per vedere da Internet le pagine web devi aprire la porta 80, se vuoi vederlo anche da Telnet devi aprire la porta 23, per l’FTP le porte da aprire sono la 21 e la 1024 (Modificabili da web page) tutte queste connessioni sono protette da password.

    Se vuoi programmarlo con LogicLab devi aprire la porta 502 (Questa porta non è protetta da password), però accertati che il tuo gestore 4G ti dia un IP pubblico.

    in risposta a: Interpretazione file Logs #50199
    Sergio Bertana
    Amministratore del forum

    Non sò che versione hai di sistema operativo, ecco per categoria di errori la spiegazione

    [E] SFW198 [09/10/2019 03:27:31] 3110, Wrong ARG:m
    Error 3110: Argomento (es.: “UINT 10”) errato in pagina web

    [E] SFR055 [09/10/2019 03:22:19] 6670, [5] IP:152.136.69.250:55461
    Error 6670: TCP active close timeout (Nessuna risposta alla chiusura intrapresa da SlimLine) di una connessione con IP:Port.

    [E] SFR055 [09/10/2019 03:04:26] 6675, [5] IP:112.29.140.221:38008
    Error 6675: Passive open timeout (quindi qualcuno che cerca di collegarsi) da IP:Port

    A quanto mi sembra di capire lo SlimLine si connette ad Internet tramite un router, ma non deve essere accessibile da Internet, quindi il firewall deve bloccare tutte le connessioni in entrata.

    E’ consigliabile verificare di avere l’ultima versione di sistema opeartivo, eventualmente provvedere all’aggiornamento.

    in risposta a: Resettare il sistema da programma utente #50194
    Sergio Bertana
    Amministratore del forum

    Attualmente non è presente alcuna variabile che indichi che tipo di avvio ha avuto il sistema, ma trovo interessante l’idea e vediamo se possiamo inserire anche questa possibilità in una prossima release del sistema operativo.

    Se vuoi “capire” che il sistema si è riavviato per un watchdog creato da te nel programma (Loop infinito), c’è un workaround. Prima di fermarti nel loop scrivi in una locazione di memoria backup un determinato valore (Esempio supponendo un UDINT 16#12345678). Poi attendi qualche secondo per garantire l’avvenuto backup del dato, puoi anche  sincronizzarti testando la variabile SysBackupEnd, che dovrà attivarsi almeno 2 volte.

    Ora alla accensione controlli il valore della variabile e se è il valore da te definito il sistema si è riavviato a causa del tuo comando. Naturalmente appena dopo il controllo devi porre a 0 il valore della variabile.

    in risposta a: Connettere dispositivi I2C al bus di espansione SlimLine #50192
    Sergio Bertana
    Amministratore del forum

    Tutti gli oggetti funzioni ed FB il cui nome inizia per Sys, sono oggetti di sistema, quindi sono embedded e quindi essendo insiti nel sistema operativo sono sempre disponibili.

    Il fatto she venga indicato XTarget_07_0, significa che era già disponibile da quella versione di target, oggi siamo ad XTarget_12.

    Per vederla se apri la finestra delle librerie embedded in LogicLab <Ctrl-L> oppure menù View -> Tool Windows -> Operators and blocks vedrai che la trovi. Posizionandoti con il mouse sull’oggetto lo puoi trascinare nel progetto e con l’oggetto selezionato il tasto [F1] apre il manuale sulla pagina contestuale.

    in risposta a: Nuovo blocco funzione per invio eMail #50125
    Sergio Bertana
    Amministratore del forum

    Si effettivamente c’è un limite sulla dimensione del testo della mail, attualmente è bloccato a 256 caratteri. Stiamo ripensando alla gestione della mail anche nell’ottica della crittografia, appena riusciamo a risolvere i problemi usciremo con qualcosa di nuovo e più performante.

    in risposta a: Blocco funzione per connessione a server FTP #50091
    Sergio Bertana
    Amministratore del forum

    Il comportamento della configurazione del sistema da pagina web è riportato in questo topic.

    in risposta a: Configurazione rete ethernet da pagina web #50090
    Sergio Bertana
    Amministratore del forum

    Attivando il client DHCP lo SlimLine alla accensione cerca il server DHCP e se lo trova richiede i parametri di configurazione. Parametri che sono utilizzati per configurare l’interfaccia di rete e che sono visualizzati nella finestra relativa (Screenshot) (Nell’esempio abbiamo IP:192.168.1.77, MASK:255.255.254.0, GATEWAY:192.168.0.1, …).

    Ma se il server DHCP non viene trovato il sistema viene configurato con i parametri impostati tramite il pop-up di configurazione (Nell’esempio abbiamo IP:192.168.0.125, MASK:255.255.254.0, GATEWAY:192.168.0.1, …).

    I parametri di configurazione (Quelli impostabili nel pop-up) sono gestibili anche da programma utente tramite la funzione SysOSIDValue, utilizzando gli IDs:

    OSID_ETH0_DHCP_DNS BOOL (ETH0) Enable DNS acquisition from DHCP
    OSID_ETH0_DHCP_EN BOOL (ETH0) Enable IP acquisition from DHCP
    OSID_ETH0_DNS_PRIMARY USINT[4] (ETH0) Primary DNS IP address
    OSID_ETH0_DNS_SECONDARY USINT[4] (ETH0) Secondary DNS IP address
    OSID_ETH0_GATEWAY USINT[4](ETH0) Gateway IP address
    OSID_ETH0_IP USINT[4] (ETH0) IP address

    Al momento attuale non sono definiti OSID per la lettura della configurazione attuale attiva sulla interfaccia ethernet.

    Nota: Se  si desidera che i parametri settati con la funzione SysOSIDValue rimangano salvati nella configurazione del sistema occore eseguire la funzione con OSID_CFG_WRITE.

    in risposta a: Blocco funzione per connessione a server FTP #50077
    Sergio Bertana
    Amministratore del forum

    Se usi un sistema basato su Cortex M7 puoi mettere l’URL, il sistema gestisce automaticamente la richiesta al server DNS (Naturalmente devi avere impostato correttamente l’indirizzo IP del server DNS nella configurazione di rete).

    Ma non capisco cosa c’entra il creare regole sul router a cui è collegato il PLC, l’FTPClient è appunto un client quindi esce automaticamente sulla rete. Magari il tuo problema è il non avere settato correttamente il gateway nelle impostazioni di rete.

    Prova connettendoti in telnet da locale allo SlimLine ad eseguire un comando di ping verso un URL su Internet (Esempio Ping google.com) così verifichi se lo SlimLine può accedere alla rete Internet. Se non funziona hai problemi nella impostazione del gateway.

    in risposta a: Realizzare DataLogger con storicizzazione su server FTP #50075
    Sergio Bertana
    Amministratore del forum

    Hai impostato correttamente il Gateway ?

    Ricordo che il router che in questo caso fa da gateway deve essere mappato nella stessa classe di indirizzi dello SlimLine.

    in risposta a: Sincronizzazione con server NTP #49998
    Sergio Bertana
    Amministratore del forum

    Rispondo con ritardo perchè il post era finito in SPAM, ma la domanda può essere utile ad altri.

    9943135 Errore risoluzione indirizzo, indice che il client UDP non riesce a risolvere l’indirizzo IP a cui connettersi. In effetti da quello che scrivi sembra tu passi l’URL del server, ma sui sistemi ARM come l’MPS046 il sistema operativo non ha la gestione del DNS e non può risolvere gli URLs.

    La gestione del server DNS è stata introdotta sui sistemi CortexM7, sui sistemi ARM occorre passare l’indirizzo IP, eventualmente è possibile da programma utilizzare il FB DNSRequest per eseguire la richiesta al server DNS di risoluzione URL e poi passare al FB SNTPRequest l’indirizzo IP ritornato.

    in risposta a: Scambio I/O su connessione WiFi locale #49993
    Sergio Bertana
    Amministratore del forum

    La nostra applicazione DataExchange fà al caso tuo, utilizzando due moduli CPU SlimLine Compact Ethernet che hanno 6 ingressi digitali, 2 ingressi analogici e 4 uscite digitali cadauno tu puoi scambiare su connessione ethernet gli I/O tra un sistema e l’altro.

    Nel tuo caso collegherai la porta ethernet alla tua rete WiFi ed i due sistemi dialogheranno tramite la connessione WiFi. Per quanto riguarda la temporizzazione nessun problema i sistemi SlimLine sono programmabili e puoi fare tutte le temporizzazioni che desideri.

    in risposta a: Netlog III utilizzo display incorporato #49987
    Sergio Bertana
    Amministratore del forum

    La gestione integrata del display purtruppo ha regole definite che non sono modificabili, quindi per passare da una variabile all’altra di un messaggio si utilizza il tasto [F] eseguita l’inputazione del valore ed accettata con il tasto [E] si riparte della prima variabile.

    Ma se tu definisci un messaggio con due variabili stringa da 16 caratteri (Esempio RowUp e RowDw) e poi da programma le gestisci puoi fare quello che vuoi. Ti ho postato un esempio dove realizzi quello che chiedi, tralasciando le inizializzazioni che trovi nel progetto (Download NetlogCustomMsg), ecco il “succo” del programma.

        // -------------------------------------------------------------------------
        // GESTIONE MESSAGGIO 
        // -------------------------------------------------------------------------
        // Se sono nel messaggio #2 gestisco direttamente il display.
    
        IF (Messages.MsgID = 2) THEN
            i:=SysVarsnprintf(ADR(RowUp), SIZEOF(RowUp), '%s', STRING_TYPE, ADR('0-1-2-3-4-5-6-7 '));
            i:=SysVarsnprintf(ADR(RowDw), SIZEOF(RowDw), '%s', STRING_TYPE, ADR('0 0 0 0 0 0 0 0 '));
    
            // Stampo valore variabile.
    
            FOR i:=0 TO 7 DO
                Ptr:=VAdd[i]; //Auxiliary pointer
                IF (@Ptr <> 0) THEN Ptr:=ADR(RowDw)+(i*2); @Ptr:=16#31; END_IF;
            END_FOR;
    
               // Il messaggio non ha sottomessaggi quindi i tasti [<] e [>] non sono
               // gestiti. Sulla loro pressione seleziono la variabile da modificare
               // e la visualizzo rendendola lampeggiante.
    
            IF (Display.KeyLEFT <> KeyLEFT) THEN
                KeyLEFT:=Display.KeyLEFT; //Tasto [<]
                IF (Display.KeyLEFT AND (VNr > 0)) THEN VNr:=VNr-1; END_IF;
            END_IF;
    
            IF (Display.KeyRIGHT <> KeyRIGHT) THEN
                KeyRIGHT:=Display.KeyRIGHT; //Tasto [>]
                IF (Display.KeyRIGHT AND (VNr < 7)) THEN VNr:=VNr+1; END_IF;
            END_IF;
    
            // Eseguo lampeggio variabile selezionata.
    
            IF (SysClock1000) THEN Ptr:=ADR(RowDw)+(VNr*2); @Ptr:=16#20; END_IF;
    
            // Con il tasto [E] eseguo variazione variabile.
    
            IF (Display.KeyENT <> KeyENT) THEN
                KeyENT:=Display.KeyENT; //Tasto [E]
    
                Ptr:=VAdd[VNr]; //Auxiliary pointer
                IF (Display.KeyENT) THEN @Ptr:=@Ptr XOR 16#01; END_IF;
            END_IF;
        END_IF;
    
Stai visualizzando 15 post - dal 1,651 a 1,665 (di 4,482 totali)