logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Sterownik GE Fanuc Versa Max Micro - problem z załączaniem wyjścia Q2

Merki 06 Mar 2012 08:42 2402 12
  • #1 10640097
    Merki
    Poziom 11  
    Posty: 135
    Pomógł: 2
    Ocena: 5
    Witam, posiadam na stanie sterownik GE Fanuc Versa Max Micro. Chciałem napisać prosty program do sterowania grzejnikiem elektrycznym. Temperatura odczytywana jest dzięki termoparze z przetwornikiem A/C na sygnał prądowy 4-20 mA. Gdy temperatura spadnie poniżej 15,0 C wyjście Q2 powinno być załączone, z kolei gdy temperatura wzrasta powyżej 25,0 stopni, wyjście powinno się wyłączać. Problem polega na tym, że uruchomienie programu np w temperaturze 18 stopni nie powoduje załączenia wyjścia. Próbowałem poradzić sobie z tym problemem, ale nic mi nie przychodzi więcej do głowy poza tym co mam w załączniku. Dlaczego program ciągle uparcie daje reset na wyjście?
    Załączniki:
    • Ster_temp2.rar (10.61 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #2 10640886
    yarpen2
    Poziom 22  
    Posty: 549
    Pomógł: 39
    Ocena: 38
    może daj to w pdf'ie jak się da
  • #3 10643144
    gruby-11
    Poziom 11  
    Posty: 15
    Pomógł: 2
    Nie mogę otworzyć pliku ale myślę, że można to załatwić jakimś sprawdzeniem stanu początkowego typu:
    przez pierwsze 10sek programu sprawdzaj czy temperatura jest mniejsza niż 25 stopni. Jeżeli tak to setuj wyjście.
    zrób screena programu.
  • #4 10644926
    jestam
    Specjalista Automatyk
    Posty: 1794
    Pomógł: 210
    Ocena: 144
    Merki napisał:
    Gdy temperatura spadnie poniżej 15,0 C wyjście Q2 powinno być załączone, z kolei gdy temperatura wzrasta powyżej 25,0 stopni, wyjście powinno się wyłączać. Problem polega na tym, że uruchomienie programu np w temperaturze 18 stopni nie powoduje załączenia wyjścia


    Wklej zrzuty ekranu Proficy ME.

    Domyślam się, że próbujesz zrobić histerezę. Ustaw właściwą wartość początkową zmiennej stanu (Initial Value w oknie właściwości zmiennej).
  • #5 10645980
    Merki
    Poziom 11  
    Posty: 135
    Pomógł: 2
    Ocena: 5
    Ok przesyłam jeszcze raz, tym razem w plikach jpg ;)

    Można powiedzieć że to coś na kształt histerezy - załącza się grzejnik przy 15,0 C, a wyłącza w 25 stopniach. W zakresie 15,1 do 24,9 ma grzać oczywiście.
    Załączniki:
    • Ster_temp.rar (121.19 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #6 10647028
    gruby-11
    Poziom 11  
    Posty: 15
    Pomógł: 2
    W lini 4 masz zwykłą cewkę Q2 a nie SET Q2.
    Wg mnie linia 1 nie włącza się nigdy poprawnie do pracy, ponieważ, najpierw jest First scan jest szybszy niż scalowanie analoga.
    First scan =1 --> R1 =?
    first scan=0 --> R1=wartość przeskalowana.
    Wynika to z tego, że po pierwszym cyklu programu zapisywana jest wartość rejestru.

    zamiast flagi pierwszego skanu daj timer 10sek
  • #7 10648750
    jestam
    Specjalista Automatyk
    Posty: 1794
    Pomógł: 210
    Ocena: 144
    1. W pierwszym cyklu R1 ma wartość 0, bo taka została przypisana w ostatnim cyklu w linii 9 (wyjątkiem może być pierwsze uruchomienie po wgraniu programu, ale tym gorzej). Wyjście z RANGE_INT = 0, cała ta linia jest zbędna.

    2. 15,0 C to u Ciebie 150. Skalujesz czujnik o zakresie od 0 do 1200 C ? Jeśli nie, to skalowanie jest błędne.

    3, 5: W jakim celu zastosowałeś TMR_TENTHS na wyjściu LE_INT i GE_INT?

    4. Zapis do Q2 powinien być -(S)-

    7,8: Jeśli M1 zostanie wyzerowane przez I2 = 1, to M10 = 0 i M20 = 0, więc stan wyjścia Q2 nie będzie się zmieniał przy zmianach temperatury. Wyjście pozostanie w takim stanie, w jakim było. Tak to miało działać?

    9. Jeśli już chcesz zerować R1, to lepiej w #FST_SCN.

    gruby-11 napisał:
    ponieważ, najpierw jest First scan jest szybszy niż scalowanie analoga.

    Nie rozumiem tego języka :(
    gruby-11 napisał:
    zamiast flagi pierwszego skanu daj timer 10sek

    Bezcelowe. Jeśli już, to zamienić miejscami linie 1 i 2.

    Histerezę robi się tak: (używasz bitu stanu, np. %M1, ustaw Initial Value we właściwościach zmiennej)
    1. skalowanie wartości z AI do R
    2. jeżeli R < min zeruj bit stanu (LT_INT, do bloku wyjścia -(R)- )
    3. jeżeli R > max ustaw bit stanu (GT_INT, do wyjścia bloku -(S)- )
    4. przepisz bit stanu na wyjście sterownika %Q

    Sterownik pamięta bit stanu po wyłączeniu zasilania. Jeśli chcesz, możesz bit stanu ustawić przy starcie przez --|#FST_SCN|------(S)- (analogicznie wyzerować).

    Cytat:

    załącza się grzejnik przy 15,0 C, a wyłącza w 25 stopniach. W zakresie 15,1 do 24,9 ma grzać oczywiście

    A poniżej 15 stopni Celsjusza ma nie grzać ? Dziwny algorytm.
  • #8 10649040
    gruby-11
    Poziom 11  
    Posty: 15
    Pomógł: 2
    jestam napisał:


    gruby-11 napisał:
    ponieważ, najpierw jest First scan jest szybszy niż scalowanie analoga.

    Nie rozumiem tego języka :(


    Chciałem bardziej zrozumiale napisać, że flaga R1 podczas pierwszego skanu jest równa jakiejś nieznanej wartości, bądź wartości początkowej, a zakręciłem się jak młody za co przepraszam.
    pzdr
  • #9 10649634
    Merki
    Poziom 11  
    Posty: 135
    Pomógł: 2
    Ocena: 5
    Ok odpowiem może po kolei w formie omówienia całego programu ;) W załączniku przesyłam zmienioną pierwszą linijkę wg wcześniejszej sugestii (dodałem timer zamiast FST_SCAN, nie wiem czy o to chodziło). Poza tym w programie nic nie zmieniałem. Przetwornik jaki posiadam oczywiście mierzy w zakresie 0-1200 stopni.

    Pierwsza linijka to opóźnienie czasowe po załączeniu programu (5s) i jeśli temperatura mieści się w zakresie 151 do 249 to powinno załączyć wyjście Q2.

    Druga rzecz to skalowanie - chyba rzecz zbędna, nie powinno być błędów, trzecie miejsce w liczbie wprowadzone po to, żeby móc operować na liczbach dziesiętnych.

    Następnie porównywany jest warunek - jeśli temperatura jest niższa niż 150 to powinno załączyć wyjście Q2.

    Drugi warunek - jeśli temperatura wyższa lub równa 250, wyłączyć wyjście Q2. Opóźnienia wprowadzone dzięki timerom są po to, żeby uniknąć oscylacji i częstego załączania się cewki przekaźnika podczas natrafienia na próg temperatury np. 150. Oczywiście to opóźnienie będzie trzeba dobrać doświadczalnie.

    Kolejna rzecz - powinna znajdować się na początku programu w sumie. Wejście I1 odpowiada za pracę regulatora w trybie automatycznym - ustawia markera M1, który odpowiada za załączenie bloków warunkowych. Dodatkowo ma być wyłączone wyjście Q3 (o nim potem)

    Z kolei aktywując wejście I2 możemy przejść na tryb pracy stałej - niezależnie od temperatury, grzejnik cały czas grzeje. Z tego wynika, że wyjścia Q2 i Q3 są połączone równolegle, ale nie będą pracowały równocześnie razem. Wyłączane są bloki warunkowe. Dlatego w linijce warunkowej, która załącza Q2 gdy temperatura niżej niż 150, mam zwykłą cewkę a nie S. Gdybym miał S, z tego co testowałem nawet, to gdy załączając I2, nadal mam wysterowane Q2 i Q3. Niby nic szkodliwego, ale jednak chciałem inaczej...

    Ostatnia linijka to kasowanie R1. Teraz w sumie już chyba niepotrzebna (wcześniej blok skalowania był załączany markerem M1), ale jak jest to niech będzie ;)

    Z przedstawionego schematu histerezy opisanej przez jestam wynika, że miałem coś takiego na samym początku. I właśnie dlatego, zabrnąłem dalej. Bo jeśli układ włączy się w temperaturze powyżej 15 stopni ale mniejszej niż 25 to powinno grzać. A nie będzie tego robić w tak prostym schemacie prawda?
    Załączniki:
    • Sterownik GE Fanuc Versa Max Micro - problem z załączaniem wyjścia Q2 1.JPG (30.34 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #10 10653096
    jestam
    Specjalista Automatyk
    Posty: 1794
    Pomógł: 210
    Ocena: 144
    Merki napisał:
    dodałem timer zamiast FST_SCAN, nie wiem czy o to chodziło
    jestam napisał:
    Bezcelowe. Jeśli już, to zamienić miejscami linie 1 i 2.


    :)

    Merki napisał:
    Przetwornik jaki posiadam oczywiście mierzy w zakresie 0-1200 stopni.

    Przy takim zakresie masz małe szanse na pomiar z dokładnością 0,1 stopnia C.

    Merki napisał:
    jeśli temperatura mieści się w zakresie 151 do 249 to powinno załączyć wyjście Q2.

    Merki napisał:
    jeśli temperatura jest niższa niż 150 to powinno załączyć wyjście Q2.

    Merki napisał:
    jeśli temperatura wyższa lub równa 250, wyłączyć wyjście Q2

    Z powyższego wynika, że Q2 = 1 dla R1 < 250, Q2 = 0 dla R1 >= 250.

    Merki napisał:
    Wejście I1 odpowiada za pracę regulatora w trybie automatycznym

    Tryb auto dla I1 = 1. Jak ma działać ten układ dla I1 = 0 ?


    Merki napisał:
    Opóźnienia wprowadzone dzięki timerom są po to, żeby uniknąć oscylacji i częstego załączania się cewki przekaźnika podczas natrafienia na próg temperatury np. 150.

    Ogranicza to częstość załączeń, ale nie wyłączeń. Może się zdarzyć sytuacja załączenia cewki po którym niemal natychmiast nastąpi wyłączenie. Lepiej sprawdza się histereza dla sygnału niż taki timer.

    Może zacznij od początku: określ sygnały we, wy i ich znaczenie, zdefiniuj algorytm sterowania, określ warunki brzegowe.
  • #11 10667209
    Merki
    Poziom 11  
    Posty: 135
    Pomógł: 2
    Ocena: 5
    Ok, na szybko w pracy zrobiłem nową wersję programu. Tak naprawdę nie wiem czemu upierałem się o włączenie grzania w zakresie temperatur 15,1 do 24,9...wystarczy, że spadnie ona do 15,0, włączy się grzanie i przy 25,0 znowu się włączy. I wtedy jeśli znowu spadnie poniżej 15,0, to dopiero wtedy się włączy grzanie. Załączanie przekaźników będzie rzadsze nawet ;)

    Zapomniałem tylko jeszcze wpakować histerezę dla dolnego i górnego zakresu w miejsce dawnych timerów przy operacjach warunkowych. Nie miałem również okazji sprawdzić jak działa w temperaturze poniżej 15,0 stopni, ale chyba problemu nie powinno być.

    Co na to powiecie teraz?:)

    p.s. zauważyłem, że moje wejście analogowe jest przecież 12 bitowe. Rozumiem więc, że fachowo w parametrze OHI powinienem mieć 4096 zamiast 32000? Bo sprawdziłem na 4096 i tak samo liczy jak na 32000...Czyli program i tak nie puszcza chyba więcej niż pozwalają możliwości wejścia tak?
    Załączniki:
    • Ster.rar (36.83 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #12 10668116
    jestam
    Specjalista Automatyk
    Posty: 1794
    Pomógł: 210
    Ocena: 144
    Merki napisał:
    że spadnie ona do 15,0, włączy się grzanie i przy 25,0 znowu się włączy

    Nadal coś tu nie pasuje ...
  • #13 10670480
    Merki
    Poziom 11  
    Posty: 135
    Pomógł: 2
    Ocena: 5
    Cytat:
    że spadnie ona do 15,0, włączy się grzanie i przy 25,0 znowu się włączy


    Błąd w pisowni - miało być, że się wyłączy przy 25,0 co zresztą widać w programie :D

Podsumowanie tematu

✨ Użytkownik ma problem z załączaniem wyjścia Q2 w sterowniku GE Fanuc Versa Max Micro, który ma kontrolować grzejnik elektryczny na podstawie odczytów temperatury z termopary. Wyjście Q2 powinno być aktywowane, gdy temperatura spadnie poniżej 15,0 °C, a wyłączane, gdy wzrośnie powyżej 25,0 °C. Użytkownik zauważył, że program nie działa poprawnie, a wyjście Q2 nie załącza się w odpowiednich warunkach. W odpowiedziach sugerowano m.in. dodanie opóźnienia czasowego, poprawienie logiki histerezy oraz sprawdzenie skalowania wartości temperatury. Użytkownik wprowadził zmiany w programie, w tym zastosowanie histerezy, aby poprawić działanie systemu.
Wygenerowane przez model językowy.
REKLAMA