Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

tp177, komórki pamięci i podprogramy -problem

bartas666 04 Cze 2009 18:41 912 4
  • #1 04 Cze 2009 18:41
    bartas666
    Poziom 18  

    Witam serdecznie!
    Mam pewnien problem z panelem TP177mico i podłączonym do niego sterownikiem s7-200. Pisałęm program do maszyny, program zwiera podprogramy, deklaracje przerwań, szybki liczniki, timery itp lecz mam problem z odczytam niektórych parametrów na panelu które zawarte są w podprogramach. Czy obecność jakiejś danej np vW500 w podprogramie możę komplikować sprawę z odczytem informacji poprzez TP177mico? Czy dobrze myśle że panel również wykorzysuje przerwanie do komunikacji poprzez rs485 i w tym tkwi problem? Czy możę wystarczy że w programie głównym umieszczę jeszcze zapis mov do tych komórek i powinno być ok? pozdrawiam

    0 4
  • #2 04 Cze 2009 23:18
    Luklukowaty
    Poziom 18  

    Ciemność widzę, ciemność....

    Z tego co mi się przebija przez czarną szybkę, to możliwy jest problem związany z nadpisywaniem sobie danej - przykładowo TP wykorzystuje komórkę VW500, a Ty również z niej korzystasz w jakimś podprogramie no i wychodzi bryndza - najprawdopodobniej tutaj siedzi błąd. Przy skomplikowanych projektach dobrze jest sobie rozpisać mapę alokacji pamięci.

    Może jest tak, że dane te są tymczasowo w danej komórce, a faktycznie trzymane są całkowicie gdzie indziej, albo kasowane po wyjściu z podprocedury...

    ehhh ta pamięć, tyle problemów...

    co do przerwań to wątpię, jeżeli wszystko dobrze skonfigurowane, ustawione i podpięte.

    0
  • #3 05 Cze 2009 23:12
    bartas666
    Poziom 18  

    ok dzieki za podpowiedz, będę szukał. Mam jeszcze jedno pytanko. Borykam sięz problemem szybkich licznków. Otóż ten problem. mam do dyspozycji silnik z reduktorem na tym wisi enkoder. Zliczam przez szybki liczniki wartość aktualnie zliczonych impulsów i po przekroczeniu x impulsów zatrzymuję silnik. Startuję i po x impulsach zatrzymujęi tak w kółko. Program jest trochęrozbudowany i oprócz tego robie jeszcze inne rzeczy. Wcześniej odczytywałem wartość enko i porównywałem poprzez funkcję compare hc z jakaś zawartościa w vd. Były dość znaczne rozbieżności rzędu nawet 1cm na trasie. Teraz wykorzystałem funkcję przerwania i gdy pv=cv wtedy przerwanie i zatrzymuje silnik ale mimo wszystko jeszce jest rozbieżność tak 1 max 2mm czy można zastosować jeszcze cośinnego? Czy może cały program tak skrócić by cykl sterownika był jak najmniejszy? a może jeszcze coś innego?

    0
  • #4 06 Cze 2009 15:40
    arwit
    Poziom 27  

    Witam
    Widzę że kolega dobrze kombinuje z tymi licznikami. Przerwanie to najlepszy sposób cóż z tego jeśli wyjścia są aktualizowane dopiera po zakończeniu cyklu. Aby tak nie było trzeba w obsłudze przerwania wykorzystać instrukcje mające natychmiastowe przełożenie na wyjścia =I, SI, RI

    0
  • #5 07 Cze 2009 18:26
    bartas666
    Poziom 18  

    Witaj Kolego arwit! Dziekuje ogromnie za odpowiedz. W sumie muszę się jeszcze przyznać do pewnej rzeczy. Przy deklaracji szybkiego licznika niestety zamiast bitu sm0.1 przez przypadek wykorzystałem swój własny bit np v80.1 i poprzez to właśnie resetowałem licznik . Z tego co udało mi się wyczytać to takie właśnie próby mogą kończyć się niepowodzeniem i błędem o ile sięnie mylę 005 czy jakoś tak. No i w przerwaniu nie dałem zerowania licznika tylko było zrealizowane tak jak opisałęm wyżej ...Czyli teraz po zamianie funkcji -(s) oraz -(r) na -(SI) oraz -(RI) powinno pomóc w 100% no i oczywiście po zamianie tych błędnych zerowań...oj człowiek się uczy na błędach..

    0