Vai al contenuto
PLC Forum


Creare Database Sql "in-memory" Condivisibile.


bigalex

Messaggi consigliati

Ciao ragazzi.

Dovrei acquisire delle variabili da diversi plc in Modbus TCP/IP e vorrei rendere disponibili i valori di queste variabili ad altri programmi che girano contemporaneamente .

Mi spiego meglio ad esempio ho 10 plc da cui devo acquisire delle variabili .

Creo un programma che gestisce in modo ciclico la comunicazione per ogni plc (quindi 10 programmi "in contemporanea") ed ogni singolo programma appoggia i valori acquisiti all'interno di un database SQL rendendoli disponibili ad altri programmi tramite query SQL.

Mi sta bene che il o i database esistano solo per il periodo di runtime, quindi una volta chiusa l'applicazione i database possono essere distrutti.

Il problema che al momento mi assilla è che se acquisisco le variabili ogni 1-2 secondi c'è uno stress di continue scritture/letture su disco che ne pregiudicherebbe la funzionalità nel lungo periodo.

Per me l'ideale sarebbe , come viene definito, un "in-memory database" che fosse però accessibile da altri programmi e non solo dal programma che lo genera.

Ho già verificato l'utilizzo di SQLite ma la funzionalità "in-memory" non consente l'accessibilità dall'esterno.

Qualche suggerimento ?

bigalex :blink:

Link al commento
Condividi su altri siti


Gianmario Pedrani

Ma io resterei su mysql che è un database server a tutti gli effetti, per il problema della scrittura, chedo che sia identico a quello che accade nel mondo, visto che tutti i siti che vedi da plc-forum im primis hanno una traffico dati che molto piu grande di quello che creeresti tu e tutto si appoggia su db, quello che ti posso suggerire, è verificare molto bene l'hardware della macchina, mettendo un buon hd. altra soluzione, puoi creare un hd in memoria e fare creare ogni volta il db in memora. anche se ripeto per il traffico che devi generare non è molto. puoi anche utilizzare un hd solido, ti tipo nand che è una tecnologia che ti permette di scrivere e cancellare infinite volte. praticamente è come se creassi un hd in memoria. sqllite, è un db molto compatto non di tipo server client, viene usato di solito su piccoli programmi o addirittura nei telefonini per salvare poche quantita di dati o addirittura la rubbrica.

poi vedi tu!!!

Link al commento
Condividi su altri siti

Ciao Gianmario grazie per la risposta. :thumb_yello:

1-MySQL lo ho già valutato come opzione e lo vorrei utilizzare quando mi venisse richiesta la funzionalità client/server (Ottimo SQL Server).

2-HD a stato solido o HD on chip anche questa è una soluzione che ho già valutato e la tua opinione me la conferma come valida opzione (anche i costi ora li rendono decisamente accessibili).

3-SQLite è di fatto un RDBMS ed il suo utilizzo è in molti casi preferibile a MySQL , ha la funzionalità "in-memory" ma il DB generato è accessibile solo all'interno dell'applicazione che lo genera.

4-HD in memoria ammetto di non conoscerlo (la mia conoscenza informatica è comunque scarsa), potresti dirmi come gestirlo , potrebbe essere effettivamente un'ottima soluzione.

bigalex :blink:

Link al commento
Condividi su altri siti

Grazie ancora per le risposte .

A proposito di RAM disk ravanando in internet si trovano molte informazioni.

Provo a scaricare un'utility di gestione e vedo di fare dei test.

bigalex :blink:

Link al commento
Condividi su altri siti

Soluzione adottata:

Utilizzando una delle numerose utility freeware trovate in rete ho configurato un RAM Disk (R:) utilizzato per farvi risiedere i database SQLite che contengono i valori letti dai plc in Modbus TCP/IP.

Tutto pare funzionare bene.

I database sono scritti ciclicamente ed ho incrementato la velocità di acquisizione migliorandone la performance complessiva. :D

Grazie ancora Gianmario per i tuoi suggerimenti. :clap:

bigalex :blink:

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...