Układ sprawdzający działanie komputera/programu

Mam problem i potrzebuje pomocy lub ukierunkowania. Mam aplikacje która steruje i jednocześnie zbiera dane, używane LPT + PS. Problem w tym, że musi ona działać ZAWSZE poprawnie. Wiadomo z jakimi systemami mamy do czynienia zwis programu (wina programisty), zwis systemu (to już inna beczka). Interesuje mnie czy jest możliwość tak skonstruowania "strażnika" - układu elektronicznego, zewnętrznego niezależnego, że w momencie awarii systemu komputerowego, bezzwłocznie przerwał prace urządzenia. Urządzenie to silnik i przekładnie na 220V + układ sterujący na 24V z przekaźnikami. Jak się do tego zabrać, czy może, ktoś coś takiego wykonywał już, ile taka praca zlecona by miała kosztować ?? Dziękuję za każde informacje.

Reply to
pavlo
Loading thread data ...

pavlo napisał(a):

Nie wiem jaka jest złozoność algorytmu sterowania urządzeniem, ale mam podejrzenie, że koszt zaprojektowania osobnego dedykowanego sterownika do tego celu ( sterowanie + rejestracja danych ) może okazać się porównywalny do opracowania układu zabezpieczającego ew. zwis peceta. "Straznik" będzie musiał analizować dane transmitowane z/do urządzenia , chyba że wystarczający jest prosty układ wykrywający brak zmian na liniach LPT/PS przez zadany okres czasu.

Miłosz Kłosowicz

-------------------------

formatting link
narzędzia dla AVR ]

-------------------------

Reply to
Miłosz Kłosowicz

można coś takiego rozbudować do oporu. Na uczelni robiłem projekt z programowania w czasie rzeczywistym i robiliśmy symulator kolei. Program jako taki miał wewnętrznego watchdoga (6 niezależnych programów komunikowało się w kółko i każdy z nich miał możliwość wyłączenia systemu: modelu kolejki). Oprócz tego mieliśmy zewnętrznego "pieska" dość prostej konstrukcji: z LPT szedł drut przez kondensator na prostownik i mały kondensator. Jak na LPT nie było impulsów (np. komputer został "skradziony", to napięcie spadało i przekaźnik sterowany tranzystorem z tego prostownika odpadał wyłączając zasilanie kolejki.

Tak na prawdę to zabezpieczenia stanowiły jakieś 80% programu.

Waldek

Reply to
Waldemar Krzok

Na początek może to być taki "prosty układ" ale ja nie mam za dobrego pojęcia na ten temat. Sposób jaki Pan zaproponował wydaje mi się na sam początek wystarczający.

Pytanie: Czy ten układ jest trudny do zmontowanie ?? Można go gdzieś kupić ewentualnie zlecić?? Ile to mogło by kosztować ??

Pavlo

Reply to
pavlo

Potrzebujesz watchdoga, ale dla PC. PC nie powinno sterowac bezposrednio urzadzeniem, ale poprzez jakis mikrokontroler, ktory sprawdza czy PC generuje dobre rozkazy. Czy sterujesz tym urzadzeniem przez LPT ? bo chyba łatwiej to zrobic na serialu ( komunikacja z mikrokontrolerem ).

pozdr. jfk

Reply to
jfk

Proponował bym układ mikroprocesorowy który komunikował by się bez przerwy z programem uruchomionym na komputerze PC. W czasie zwałki, czy zawieszenia komputera a tym samym przy braku komunikacji układ reagował by odpowiednio wyłączając silnik a nawet uruchamiając jakiś alarm. Myślę że koszt takiego systemu zamknął by się w grancach 500zł.

Pozdrawiam.

Reply to
Pinarczuk

Dzięki za info ale czy ktoś mógłby mi podać jakieś namiary na takie układy opis prostszego podobnego układu, bo nie jestem master w elektronice

Dzięki pavlo

Reply to
pavlo

Osobiście nie znam takiego gotowego rozwiązania, ale można stworzyć jakiś dedykowany system nadzoru oparty na mikroptocesorze. Prostym układem nie wiele można by kontrolować bo podczas zawieszenia komputera niektóre stany na liniach portu nie zmieniają się i nie można wykryć czy jest jakaś awaria.

Pozdrawiam.

Reply to
Pinarczuk

a czemu nie? Przecież napisałem, jak to najprościej zrobić. Programowo dajesz pulsy na linie portu. Jak pulsów ni ma, program wisi.

Waldek

Reply to
Waldemar Krzok

Proszę Pana z doświadczenia wiem że podczas zawieszania się programu czy też nawet systemu poziomy sygnałów na liniach porty mogą nie ulec zmianie. Moim zdaniem aby ro dobrze nadzorować trzeba zastosować świadomą komunikację między urządzeniami.

Reply to
Pinarczuk

nie Panuj mi tu proszę ;-)

Coś nie doczytałeś mojego tekstu. Jak się nie będzie zmieniać, to jest właśnie błąd. W programie załączasz i wyłączasz port z miarę przyzwoitą częstotliwością (powiedzmy 20-50 razy na sekundę), a na wyjściu robisz detekcję prądu ZMIENNEGO. Jak program zawiśnie, to linia portu będzie 1 lub 0, ale nie będzie się zmieniać. Jak dobierzesz odpowiednio próg działania, to wykryje też zbyt wolne działanie programu (bo ktoś odpalił jakąś grę na kompie, na przykład ;-)) Tak (lub podobnie) działają zresztą zewnętrzne układy watchdoga w niektórych komputerach. Masz kartę (lub zewnętrzny układ), w PCcie Kontrona którego używałem był to układ na mamuśce. Na karcie jest licznik taktowany własnym zegarem. W programie resetujesz cały czas ten licznik. Jak licznik się przepełni, to daje reset komputera.

W zależności od stopnia komplikacji programu i tego, co chcesz zabezpieczyć, możliwe, że coś jeszcze trzeba dodać. Jak już pisałem w moim projekcie uczelnianym (kolejka elektryczna) miałem 6 programów, które się komunikowały ze sobą. Jeden z tych komunikatów to "I am alive", który krążył między tymi programami kilka razy na sekundę. Jak którykolwiek z tych programów tej wiadomości nie dostał kolejka była wyłączana i cały system się resetował. Utrudnieniem było to, że wszystko musiało się potem samoczynnie uruchomić, bez ingerencji człowieka. A testy były dość "z życia wzięte", od wyłączenia komputera przez zdjęcie kolejki z szyn, odstrzelenie któregoś z programów z konsoli do uruchomienia "killera" zatrudniającego maszynę w 95% niczym. Informacja dla nostalgików: komputer VAX11/70, system operacyjny RT11, język programowania RT-Pascal. Kolejka H0, dwa owalne tory ok. 1m i 2m obwodu połączone wspólną szyną na odcinku ok. 30cm, dwie zwrotnice i 4 kontaktrony na wjeździe i zjeździe ze wspólnego toru. Dwie lokomotywy niezależnie sterowane.

Waldek

Reply to
Waldemar Krzok

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.