Vai al contenuto
PLC Forum


Connessione A Mysql


forna

Messaggi consigliati

Salve a tutti, vorrei collegare e storicizzare vari dati su un databse MySql su un NAS

Accettando di fatto il protocollo TCP/IP volevo inviare i dati dal PLC (1200) al database tramite la funzioni T_SEND, ho cercato molto in giro e non sono riuscito a trovare niente che mi aiuti come stringhe da inviare per la connessione e per l'inserimento dei dati, selezione e così via...

Qualcuno di voi sa come aiutarmi? Se abilito il web server può eseguire script java senza che nessuno visualizzi la pagina?

In giro ho trovato tante soluzioni che però utilizzano il pc come tramite, ma non posso installarlo

Link al commento
Condividi su altri siti


Accettando di fatto il protocollo TCP/IP

Sei ottimista :smile:

Il protocollo TCP/IP di MySQL non è "facilmente" gestibile da un PLC, questo è un assaggino:

https://books.google.it/books?id=vz6PcTdo8VUC&pg=PA63&lpg=PA63&dq=mysql+packet+tcp/IP&source=bl&ots=nLCR57Kxhh&sig=ulQMmIHS2ueKf8f3T22roGIJ1ng&hl=it&sa=X&ei=M4V1VaiwOYHXywPXwoGoAg&ved=0CCgQ6AEwAQ#v=onepage&q=mysql%20packet%20tcp%2FIP&f=false

Non saprei proprio da dove cominciare (lasciando fuori ovviamente SSL, Compressione e pacchetti MultiLayer).

La strada WebServer, se percorribile (non lo conosco in dettaglio) è l'unica "realistica".

Ci sarebbe un'altra possibilità : installare qualcosa all'interno del NAS.

Molti NAS permettono l'installazione di user daemons che poi sono semplici programmi lanciati in modalità background.

Tutto dipende dal NAS e da quanto sei confidente con Linux/BSD (non ci sono praticamente altri OS a gestirli).

Ciao

Link al commento
Condividi su altri siti

Ciao a tutti .

Premetto che sono "ignorante" dell'argomento specifico.

Come detto da Davide credo che l'impresa sia tutt'altro che banale.

Ad ogni modo sembra esistere qualcosa di commerciale come questo .

bigalex :blink:

Link al commento
Condividi su altri siti

Non lo conoscevo proprio come prodotto :o

Davvero notevole.

Lo ripeto, i protocolli nativi dei DB sono davvero complicati se pensati dal lato PLC.

Il prezzo è abbastanza salato ma tutto considerato è meno scandaloso di altri prodotti analoghi venduti lato PC che, tecnologicamente parlando, sono molto più semplici.

Qui ci saranno tonnellate di AWL (secondo me c'è Il cugino tedesco di Batta dietro tutto questo :D )

Grazie bigalex ;)

Link al commento
Condividi su altri siti

Ciao Davide .

Prego.

Più che AWL mi sa tanto di SCL a manetta. <_<

Personalmente non ho competenze di così alto livello sulla connettività da/verso Database quindi non posso valutare lo stato di affidabilità di una soluzione per il s7-1200 che ha creato

un utente del forum Siemens e che ho trovato con una semplice ricerca su Google.

Pertanto al di là che sarebbe quello che chiedeva l'autore del post (forna) , potrebbe essere interessante avere la tua opinione Daniele vista la tua competenza :worthy: ( e magari quella di Batta ).

Il link è questo .

bigalex :blink:

Link al commento
Condividi su altri siti

Il lupo alla fine non è poi così brutto... :smile:

Ieri per curiosità, dopo aver visto che qualcuno lo ha già realizzato, ho approfondito l'argomento (protocollo MySQL e TSD - Tabular data stream di SQL Server).

L'AWL è la prima soluzione a cui ho pensato all'inizio di questo thread perché ci sono un mare di valori da convertire in stringa e pacchetti da costruire dinamicamente, e in KOP è impossibile.

Però in SCL la cosa è (complicata) ma fattibile.

Appena ho un attimo do un'occhiata più in dettaglio al lavoro di cui hai postato il link che comunque a prima vista mi sembra molto interessante e ben fatto.

La rogna è il login/negoziazione che avviene con un ping/pong di pacchetti criptati con SHA1, mal'autore ha recuperato un'algoritmo che sembra funzioni bene.

Una volta fatto il login, per la query di insert bisogna mandare un header di 4 bytes (MySQL) indicante il tipo di operazione e la lunghezza del pacchetto e a seguire la stringa della query.

Non ho capito come fa lui ma è abbastanza semplice, Il vantaggio è che è possibile usare un array di stringhe (non S7 ma array of char di lunghezza fissa) senza preoccuparsi di dover compattare il tutto in quanto gli spazi sono ammessi.

Esempio:

INSERT INTO

<NomeTabella>

VALUES(

<StringaValore_1><tutti gli spazi che avanzano nella stringa>,

<StringaValore_2><tutti gli spazi che avanzano nella stringa>

<Tutti gli spazi che ti avanzano nell'array senza vergogna>

);

Bisogna convertire i nostri valori in stringhe e gestire le virgole. Superato il problema del login fai conto di usare un marcatore o altro hardware che normalmente usi ogni giorno ;)

Il prodotto commerciale a cui facevi riferimento è molto più completo, gestisce anche le SELECT, ma per registrare semplicemente dei dati, il lavoro di Marko è senz'altro un buon inizio.

Se parliamo di affidabilità il discorso è delicato, è necessario gestire tutti gli errori di comunicazione/disconnessioni del server (procedure non implementate a detta dell'autore) nonché i tentativi di riconnessione.

Poi per semplificare disconnette il PLC senza il comando di QUIT, funziona ma rimangono degli handle appesi che vanno senz'altro a generare nel server dei "Connection pool leak" (e non è igienico, se se ne accorge il DB Administrator ti viene a prendere a martellate il PLC :lol: ).

A usarlo in produzione mi farebbe dormire preoccupato, ma con qualche accorgimento potrebbe avere un futuro... :smile:

Ciao

Link al commento
Condividi su altri siti

Ciao Davide.

Se ti dovesse venire la voglia di testarlo e verificarlo visto che hai delle "robuste" competenze in materia ....... :whistling:

Anche a me pare che l'autore ci abbia lavorato parecchio ed anche con cognizione di causa quindi effettivamente potrebbe essere un blocco funzione utile pur con le limitazioni che possono esserci.

bigalex :blink:

Link al commento
Condividi su altri siti

  • 1 year later...

Scusate. Per caso inviare "un messaggio" http con S7-1200 è più semplice?

In un mio caso invio una chiamata http con parametri ad un web server dove con PHP scrivo i dati in MySQL.

Link al commento
Condividi su altri siti

  • 2 years later...

Ciao a tutti, sono un nuovo utente di questo bellissimo forum.

Leggendo questo thread e la necessità di dover scambiare dati con Mysql, mi ha spinto a scrivere una libreria compatibile con S7-1200, s7-1500 in grado di interagire nativamente con il DB MySql.

La libreria permette di fare log dati (prevedendo un buffer interno di dimensione parametrizzabile delle query, in modo da prevedere eventuali disconnessioni e riconnessioni senza perdita dati) e permette di scrivere, leggere, modificare righe con ID in modo da poter utilizzare il DB come contenitore ricette/parametri macchina con i relativi vantaggi di backup annessi.

Sto valutando il fatto di scrivere la libreria per ODBC in modo da coprire tutte le tipologie di DB che eventualmente si possono incontrare, in vista magari di poter rendere commercializzabile il prodotto.

Volevo chiedere il vostro parere su un lavoro di questo tipo e se potesse essere interessante per qualcuno.

Grazie a tutti

Link al commento
Condividi su altri siti

  • Livio Orsini locked this discussione
Ospite
Questa discussione è chiusa alle risposte.
×
×
  • Crea nuovo/a...