Rubox
Risposte nei forum create
-
AutorePost
-
Rubox
PartecipanteCome sempre la sua risposta è stata illuminante, nel senso che la soluzione l’avevo già pronta ma non riuscivo a vederla (o ad arrivarci): allo stesso modo in cui prelevo i dati dal DB per fare i grafici sulle pagine HTML…
Proverò a fare uno script PHP, richiamato dallo SlimLine dal programma che gestisce il cambio di giorno, che preleva i dati, li assembla come corpo messaggio e li spedisce con mail(). O usando una libreria (PHPMailer) creando un file e inviandolo come allegato.
Tra l’altro così facendo posso anche estrarre i dati dal DB con differente periodicità in modo semplice con una query.
Rubox
PartecipanteStamane ho visto che esistono i PLC su “base” Raspberry. E mi par di capire che su tali moduli si può programmare la CPU con LogicLab, ma anche la parte di Linux (sempre se ho capito la minima parte di quello che ho letto).
Il programma che sto realizzando (è finito ma chiedono sempre modifiche…) manda sul mio FTP il file di log del giorno precedente, tutti i giorni, e invia i valori ogni tot secondi ad una mia pagina PHP su un server che li prende, li controlla e li inserisce in un DB. Il Cliente è restio a darmi un accesso ad un loro FTP o ad un loro DB su server.
Per adesso glieli rendo disponibili con un grafico su pagina html. Non appena mi passa tra le mani un Raspberry e riesco a capire come fare, lo metto nella LAN del mio server FTP e farò spedire da lui il file che ricevo.
Grazie per i suggerimenti.
Rubox
PartecipanteAl momento sto facendo così per inviare un’istantanea dei valori ad orari prestabiliti, ma il limite di 256 caratteri è “limitante”: sono 6 valori campionati ogni 5 minuti durante l’arco della giornata.
Stavo guardando se riesco a metterci un SBC che possa gestire in automatico il prelevamento del file via FTP dalla SD del PLC e quindi inviarla via email al cliente.
Rubox
PartecipanteMi allaccio a questa discussione per chiedere la seguente cosa: vorrei che quando digito l’indirizzo IP del PLC venisse visualizzata la pagina dinamica con i valori misurati.
E’ possibile spostare tutte le pagine originali in una sottocartella di C:\Web (esempio admin)? A questo per avere la pagina di login e aver accesso alla configurazione sarà sufficiente digitare IP/admin? Il nome della pagina dinamica, affinchè venga aperta in automatico, è sufficiente che sia index.html?
Chiedo questo perché nella cartella principale di C:\Web non c’è nessuna pagina index.html o default. html.
Rubox
PartecipanteE immagino che non ci sia la possibilità di spedire una email dal PLC con un allegato…?
Il mio cliente mi sta chiedendo di fare in modo che il PLC gli spedisca il file presente sulla scheda SD del PLC come allegato di una email: c’è un modo per farlo?
Rubox
PartecipanteBuongiorno, grazie per la risoluzione del mio errore: c’ho sbattuto la testa per due giorni senza che mi venisse in mente che il rispetto maiuscole/minuscole potesse causare quell’errore.
Adesso mi compila senza problemi e la cosa più importante è che funziona.
Rubox
PartecipanteBuonasera, il mio problema è che è sufficiente che definisco un nuovo progetto vuoto, importo il FB HTTPClient, creo un programma minimale definendo una variabile “a” e assegnandole un valore arbitrario (quindi un’unica riga di programma del tipo a:=0; ) e compilando in LogicLab mi esce fuori quell’errore, anche senza definire una variabile di tipo HTTPClient.
Se nello stesso progetto importo gli altri FB della libreria non c’è nessun errore, se importo HTTPClient mi da l’errore. E non so come risolvere, o dove sbaglio.
Rubox
PartecipanteBuongiorno, ho scaricato la libreria eLLabNetworkLib_B300 dalla sezione download. Importo il FB HTTPClient_v1 in LogicLab e se compilo il tutto mi risulta un errore eLLabNetworkLib_B300.plclib (938) error C002 : LD => Invalid token.
Se cancello il FB dal progetto, compila senza errori. Dove sbaglio?
Rubox
PartecipanteChiudere tutte le porte significa anche l’impossibilità di programmare da remoto, e questo potrebbe essere gestibile se il sistema è vicino, un po’ meno se è spedito lontano.
Per l’utilizzo di un cloud onestamente sono a digiuno di REST (e MQTT), ma ho letto in un’altra discussione l’utilizzo di HTTPClient per spedire una stringa GET o POST ad una pagina, quindi se ho ben inteso potrei mandare il tutto ad una pagina getvalues.php, processare la stringa GET e inserire i valori in un DB. E poi creare una pagina che legga i dati e li metta in forma grafica o testuale.
Oppure provare il programma che mi ha linkato e che usa REST. Leggendo il listato ho molte domande, ma prima lo voglio provare e vedere se alcune risposte me le trovo da solo.
Rubox
PartecipanteLe chiedo allora un consiglio: volendo rendere disponile i valori misurati tramite il web server dello SlimLine devo per forza lasciare aperta la porta 80. Quali rischi si corrono? Oppure come è possibile difendere al meglio lo SlimLine? Come ci si comporta in questi casi?
Rubox
PartecipanteHo verificato e il FW è aggiornato all’ultima versione. Ho verificato se il router chiude le porte in ingresso con nmap e con altri servizi online e le porte sono chiuse: le uniche aperte sono la 80 e la 21. Adesso nel file Logs.txt ho ogni 30 secondi la seguente riga di log:
[E] SFR055 [data e ora] 5330, TCP packet checksum error
e ogni tanto la riga con il codice:
[E] SFR055 [data e ora] 6675 , [7] IP:porta
in cui l’IP è di qualche società giapponese o cinese di telecomunicazioni.
Mi piacerebbe capire quell’errore di TCP packet checksum error da cosa deriva e anche il 6675.
Rubox
PartecipanteHo richiesto al gestore di poter accedere alla rete da remoto e mi ha fornito la SIM con il servizio abilitato. Ho notato che quelle richieste a cui corrispondono i codici 6670 e 6675 appaiono quando da remoto accedo alla pagina web che ho creato per visualizzare i valori e che utilizza AJAX. Però non mi spiego le richieste a IP di società di comunicazioni in ogni dove. Da Toolly ho estratto questo con il syslog
[W] SFR055 [14/10/2019 06:35:28] 7060, [5] IP:185.53.88.92:46333
[W] SFR055 [14/10/2019 06:35:28] 7920, eTCPServer file not found[80]
[W] SFR055 [14/10/2019 07:17:58] 7060, [5] IP:213.190.166.70:41115
[W] SFR055 [14/10/2019 07:17:58] 7920, eTCPServer file not found[80]Il FW è aggiornato all’ultima versione.
Domani con più calma e a mente lucida rivedo il tutto anche perché la rete del PLC è composta solo da PLC e da router. Reimposterò tutti i firewall e aprirò le porte strettamente necessarie (la 1024 per FTP ad esempio non lo sapevo) e proseguirò con i miei test.
Rubox
PartecipanteNon ho accesso al PLc in questo momento, ma mi sembra di ricordare di aver aggiornato il Firmware a maggio, ma devo controllare meglio. Lo SlimLine esegue le seguenti connessioni: ping a DNS Google (8.8.8.8), NTP al server inrim 193.204.114.232, FTP al mio NAS che ha un IP che non è nessuno di quelli in elenco, e alle 10 del mattino spedisce delle mail tramite mail server il cui IP non è incluso nel Logs.txt.
Al momento lo SlimLine non è accessibile da router, ho bloccato tutte le porte, ma vorrei renderlo raggiungibile da remoto per visualizzare una pagina web con i valori, e per poter modificare il programma anche da remoto. Quindi credo che dovrei aprire sul router e indirizzare all’IP locale dello slimLine le porte 80, e quelle richieste dal LogicLab e FTP. E se voglio vederlo con Toolly anche la 22.
La cosa che mi ha lasciato di stucco è che tutti queli indirizzi IP, eseguendo un whois, sono riferibili a società di telecomunicazioni cinesi, armene, turche, coreane e via dicendo.
La SIM nel router 4G è di una compagnia italiana, le connessioni che eseguo sono quelle sopra descritte… mi lascia perplesso che avendo chiuso le porte sul router (ho provato e il router non le lascia passare) lo SlimLine riceva dei tentativi di connessione su porte che teoricamente dovrebbero essere chiuse.
Temevo anche di aver esportato dai suoi programmi di esempio qualche FB che richiedeva la password per l’utilizzo continuativo e che lo SlimLine comunicasse in qualche modo la cosa (lo dico sorridendo… ma l’ho pensato)
Lunedì scarico l’ultimo file Logs.txt dallo SlimLine e poi verifico ed eventualmente aggiorno il FW. Cancello il file Logs.txt e lo lascio senza router, solo in locale e vedo come si comporta.
Rubox
PartecipanteMetto un estratto del file di Logs.txt. Avrei bisogno di capire cosa sbaglio, poiché sono tutti messaggi con la [E].
[E] SFR055 [09/10/2019 03:04:26] 6675, [5] IP:112.29.140.221:38008
[E] SFR055 [09/10/2019 03:07:53] 6675, [5] IP:201.1.179.176:26837
[E] SFW198 [09/10/2019 03:12:49] 3110, Wrong ARG: remote_submit_Flag
[E] SFW198 [09/10/2019 03:21:13] 3110, Wrong ARG:admin
[E] SFR055 [09/10/2019 03:25:57] 6670, [7] IP:152.136.69.250:22701
[E] SFR055 [09/10/2019 03:26:58] 6630, TCP No ack:152.136.69.250:34180
[E] SFW198 [09/10/2019 03:27:01] 3110, Wrong ARG:h
[E] SFR055 [09/10/2019 03:27:15] 6670, [5] IP:IP:152.136.69.250:55461
[E] SFR055 [09/10/2019 06:21:45] 6675, [5] IP:71.6.232.4:43508
[E] SFR055 [09/10/2019 07:14:25] 6675, [5] IP:27.216.254.216:56271
[E] SFR055 [09/10/2019 12:49:17] 6675, [5] IP:219.98.16.82:51157
[E] SFW198 [09/10/2019 13:02:47] 3110, Wrong ARG:remote_hostGli indirizzi IP riportati non si riferiscono a quelli WAN forniti dal Router (immagino sia indirizzi IP con la porta). Il programma accede a internet per le seguenti operazioni:
Esegue un ping a 8.8.8.8
Spedisce una e-mail alle 10, alle 12 e alle 18
A mezzanotte si collega ad un FTP il cui IP inizia con 87 e salva un fileTutte queste operazioni le esegue correttamente.
Sono percaso dei tentativi esterni di scansione delle porte. Quali porte sono necessarie al PLC per poter funzionare e fare il ping, spedire email e gestire FTP? Eventualmente potrei pensare di chiudere tutte le porte e aprire solo quelle necessarie dal firewall del router?
Rubox
PartecipanteLeggendo sul forum mi imbatto in post che mi interessano, anche se “vecchi” di anni e mi sorgono domande su domande.
Interessante il poter riavviare il PLC ponendolo in un loop infinito. C’è un modo per accorgermi che il sistema si è riavviato per un qualcosa di anomalo? Tipo un flag bool che mi indica uno o più riavvii per il watchdog?
-
AutorePost