[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