Forum » Programiranje » Sql data poll remote local
Sql data poll remote local
betilly ::
Imaš plc krmilnik katerega konstantno preko mobilnega signala sprašujem na 1s po določenih podatkih, kateri se zapisujejo v sql bazo na oddaljenem računalniku. Problem nastane če se povezava med plc krmilnikom in oddaljenim računalnikom na katerem se zapisujejo podatki v sql prekine, takrat se podatki ne zapisujejo in posledično mankajo podatki za čas ko je povezava prekinjena. Ideja je, da bi lokalno zraven plc krmilnika dodal raspberry pi na katerem bi gnal sql server kateri bi začel brati podatke iz krmilnika ter jih zapisovati v bazo ko bi se prekinila mobilna povezava med krmilnikom in oddaljenim računalnikom . In kako potem podatke iz baze na raspberry pi prenesti na bazo oddaljenega računalnika, da v bazi na oddaljenem računalniku nebi bilo izpada branih podatkov.Ali je to sploh mogoče?
Sam sem čisti začetnik glede sql-a zato bi rabil kakšen nasvet koga ki se na to malo bolj spozna.
Hvala
Sam sem čisti začetnik glede sql-a zato bi rabil kakšen nasvet koga ki se na to malo bolj spozna.
Hvala
jukoz ::
Jah, bereš in shraniš na rPI, ko je povezava pa pošlješ naprej. Kako pa sedaj pošiljaš naprej - katero bazo imaš in s čim se povezuješ? Isto nato narediš na rPI.
Sicer rPI ni dobra zadeva za tole, ker ti bo SD kartica crknila zaradi pogostega zapisovanja.
Sicer rPI ni dobra zadeva za tole, ker ti bo SD kartica crknila zaradi pogostega zapisovanja.
betilly ::
Trenutno samo naglas razmišljam... Na oddaljeni lokaciji imam OPC Server, MS SQL server, ter SCADA sistem. OPC server konstantno povprašuje po podatkih preko 3g signala, SCADA sistem pa podatke ki jih je pridobil OPC server shrani v sql bazo. Problem nastopi samo takrat ko med OPC serverjem in SCADA sistemom pade 3g povezava. Prekinitve niso dolge in tudi ne tako pogoste, recimo v enem mesecu 5x po 1 min od oka ali manj, odvisno od signala operaterja. Ker krmilnik ne omogoča da sam beleži tako imenovanih sql tabel bi dodal rPi, na katerem bi bil gnal sql server, vendar bi polnil tabele samo takrat ko ni povezave med krmilnikom in SCADA sistemom, da se nebi ves čas podatki zapisovali na SD kartico oz USB ključek. Glede scripte v python-u za branje podatkov iz krmilnika in zapisovanje v rPi sql bazo nebi bilo problema spisati. Ne vem pa kako potem te podatke ki so se shranili v bazi rPI med prekinitvijo 3g signala spraviti na bazo kjer je SCADA sistem. Predvidevam da bi moral za oba sql serverja uporabiti isti SNTP server, da nebi prišlo do podvajanja podatkov, ali kako je to narejeno pri sql bazah?
jype ::
Imaš na napravi uro? Če je nimaš, potem imaš vsaj števec, s katerim lahko razmeroma dobro oceniš intervale med zajetimi podatki. To pošlji poleg, potem pa na strežniku sestavi časovno zaporedje in določi ure. Če imaš uro, potem moraš na napravi zgolj shranjevati podatkovne pakete in jih poslati, ko povezava pride nazaj.
betilly ::
Na napravi imam uro katero sinhroniziram vsakih 24 ur preko time serverja, tako da imajo rPI, krmilnik in SCADA sistem isto uro. Ampak kako potem manjkajoče podatke ki niso bili zapisani v tabelo "INSERT-ati" te podatke ki jih je rPI zapisal v svojo data tabelo? Jaz si predstavljam da mora rPI podatke vriniti v tabelo kjer je SCADA sistem, ali jih lahko samo dopiše v tabelo čeprav so ti podatki bili pridobljeni pred npr. 5 min? Lahko da nimam prave predstave o sql tabelah....
jype ::
Če je v tabeli stolpec za časovni žig (in zelo verjetno je), potem vrstni red, v katerem se podatki zapisujejo, ne vpliva na nič, razen na to, da bo tisti, ki podatke bere, morda šele čez čas dobil popolno sliko, vmes pa zaradi manjkajočih vrstic pomanjkljivo.
betilly ::
Super, to je to kar sem hotel izvedeti, samo sem na malo zakompliciran način vprašal. Se pravi da moj rPI ob prekinjeni povezavi normalno bere iz naprave in zapisuje v svojo lokalno tabelo, ko pa se povezava vzpostavi pošlje vpise iz svoje tabele v tabelo SCADA sistema.
jype ::
Tako je, to je precej dobra (fault tolerant) arhitektura, je pa s stališča uporabniške izkušnje pomembno, da uporabnik ve, da morda gleda nepopolne podatke. Ne vem, če imaš ti na to vpliv, ampak če ja, potem se potrudi, da pokažeš obvestilo, če med podatki zaznaš luknje.
betilly ::
Ja uporabnik bo pač dobil informacijo da je prekinjena povezava, ter ko se bo povezava vrnila in ko se bodo podatki prejeli v SCADA bazo,bo obveščen da so se podatki prenesli....
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Netflow (ntop,...) na RaspberryPiOddelek: Omrežja in internet | 1121 (972) | poweroff |
» | Port closed, izklopil fw na routerju in modemuOddelek: Omrežja in internet | 695 (606) | Redorange |
» | Računalnik za devet dolarjev (strani: 1 2 )Oddelek: Novice / Procesorji | 32058 (21142) | pirlo |
» | rPi B+ problem z odposiljanjem elektronske poste na postni streznik od domence.siOddelek: Omrežja in internet | 2184 (2123) | Bakunin |
» | Strežnik ali oblak na rPiOddelek: Pomoč in nasveti | 1221 (1077) | beni |