[elektro] PC, hibatűrő fájlba írás módszere
Kovács József
kj at faldeko.hu
Wed Apr 17 15:03:30 CEST 2013
Szerintem ez több külön feladat... sebtében saccolva:
1.
Kell egy "szívhang"-ot fenntartani a SCADA és VBprogi között.
(pl. átküld egy monoton növekvő long integert)
Ami x másodperces timeout-tal őrzi a kapcsolat épségét.
Szépen villogtatva egy kis zöld mezőt, ami pirosra vált hiba esetén.
Netán sípol fütyül valami...SMS-t küld, hamég/márújra él a VBprogi.
Így észrevehető ha bármelyik oldal kihal(t).
A szívhang fenntart egy saját pici file-t, amibe
non-stop irkálja a szívhang sorszámot...
2.
Az esetleges SCADA üzenet kezelése.
A szívhangok között jöhet ez is hasonlóan non-stop sorszámozva
ÉS az éppen következő szívhang sorszámmal lebélyegezve, hogy
az üzenet elveszés is lebukjon, duplán ellenőrizve...
Elég az üzenetet a saját sorszámával egy file végére írni (append).
Az írás után lezárva a file-t.
Plusz átadni az SMS küldőnek.
(ami csak egy gyűrűs puffer egy változó tömbben célszerűen)
Plusz a SCADA-nak vissaz adni, hogy a sorszámú üzenet vétel OK
3.
Az SMS küldő és kézbesítés váró
- amikor elküldte bejegyzi ezt az üzenet file-ba
az üzenet mellé és a saját gyűrűs pufferébe is
- megvárja a "kézbesíteve" SMS-t és ekkor ezt is bejegyzi
az üznet file-ba plusz törli a gyűrűs pufferből a feladatot
- elküldi a SCADA-nak a sikeres üzenet sorszámát
4.
A SCADA a visszaigazolt üzenetet törli a saját oldalán
0.
A VBprogi induláskor
- ellenőrzi, hogy a szívhang file és SCADA ugyanott tart-e
(kiderül ha volt leállás/elveszés)
- szinkronoz a SCADA-val
- ellenörzi, hogy van-e
elküldetlen üzenet
elküldött, de nem kézbesített üzenet
hiányzó (nem vett) üzenet
ha van gondszükség szerint szinkronos, kézbesít, stb
-----------
Szóval, szerintem ez a feladat.
két számozott lista a SCADA oldalon
(szívhang sorszám, üzenet sorszám) mindkettő
a VBprogi felől visszaigazolva, így tudja a SCADA,
hogy hol tart a felügyelete ...
Két file a VBprogi oldalon a szívhang és üzenet szinkron őrzéshez.
Egy gyűrűs puffer aZ SMS kezeléshez...
Asszem, mindenhol megvan handshake és szikron.
Ill. a kiesés detektálás, szinkron lehetőség újra induláskor.
KJ
2013.04.17. 10:55 keltezéssel, hozso_001 at freemail.hu írta:
>
> Nos, ez egy PLC-s vezérlővel ellátott vízkezelő technológiához
> készül. A PC-n fut a felügyeleti program (OMRON-os SCADA), ő
> irkálna a file-ba. A fájl alapján pedig Visual Basic-ben programoznám
> le, hogy egy GSM modem segítségével SMS legyen küldve, ha
> valami hiba van a technológián. Tehát azért nem emberéletekről
>
> van szó (szerencsére), de elég nagy botrány tud kerekedni, ha
> egyszer csak elfogy a településen a víz, mert megállt hibával a
> vízkezelő ketyere. Ezért is gondoltam a félperces frissítésre. Ha
> valami gond van, de tele a víztorony, akkor azért még van egy-két
> órája a kezelőbrigádnak, hogy megoldja a problémát.
>
> A SCADA-ban nem akarok kínlódni az SMS küldéssel, sokkal
> kényelmesebb lenne külön programban megoldani.
>
>
> Apropó! Gondolom, a GSM modemből ki lehet csalogatni
> az SMS kézbesítést is, ugye? Mert ha mondjuk elkallódik az
> üzenet, akkor megint baj van. A programban meg lehetne
> figyelni, hogy ha 10 percig nem jön vissza a kézbesítés, akkor
> csörgesse meg a telefont... (Hú, de szépen kitaláltam! Viszont
> ez az az eset, amikor tuti nem lesz időm/energiám/kedvem
> meg is valósítani. Pedig az igazán elegáns és bombabiztos
> megoldás ez lenne! :D)
>
>
> Üdv.: Horváth Zsolt
>
>
>
>
> 2013.04.17. 10:44 keltezéssel, Tóth Péter írta:
>>> Ha ez nem történik így
>>> meg, akkor a következő megnyitásnál gondolom hibaüzenetet
>>> kapok, hogy a fájl már nyitva van. Ezt szeretném elkerülni. Vagy,
>>> ha már így alakul, akkor hogyan tudom egy másik programmal
>>> az adott fájlt "visszazárni"?
>> A lezárást lekezeli az oprendszer, viszont az adatvesztés lehetősége
>> fennmarad a késleltetett írás miatt.
>> Olyan hibaüzenetet nem fogsz kapni, hogy nyitva van. Esetleg Linux
>> szerveren, de ott is csak egy ideig, aztán elengedi a fájlt.
>>
>> ToPe
>>
>> -----------------------------------------
>> elektro[-flame|-etc]
>>
>>
>
> -----------------------------------------
> elektro[-flame|-etc]
>
>
> -----
> A(z) üzenetben nem található vírus.
> Ellenőrizte: AVG - www.avg.com
> Verzió: 2013.0.3272 / Vírus adatbázis: 3162/6249 - Kiadás dátuma: 2013.04.16.
>
>
>
More information about the Elektro
mailing list