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

Pętla w SCL, S7-1200 TIA V13, błąd czasu cyklu przy odczycie czujników

crisdean 05 Cze 2016 20:34 1962 1
  • #1 15722890
    crisdean
    Poziom 12  
    Posty: 141
    Pomógł: 1
    Ocena: 31
    Mam prosty (wydawać by się mogło program) mam 8 czujników, kontrolujących np narzędzie podczas obróbki. Niektóre można dezaktywować (program z OP) i nie używać. Po zabraniu któregoś z narzędzi, winien się odliczyć czas po którym lampka zasygnalizuje, że czas operacji dobiegł końca.

    Z OB1 wywołuje blok FC1.
    W FC 1 w LAD jakieś warunki logiczne, np. początek cyklu, etc., następnie wywołanie bloku FC2.
    W FC2 w SCLu chcę umieścić prostą pętlę, która sprawdzi mi po kolei który czujnik jest aktywny i który został pobrany:

    Kod: C#
    Zaloguj się, aby zobaczyć kod


    Dlaczego, jak w pętli FOR użyłem timera, sterownik idzie w stop sygnalizując przekroczenie czasu cyklu, jak zakomentowałem timer, w przypadku gdy program narzędzia 1 jest wyłączony, zmienna i nie jest inkrementowana.

    Jak wygląda obieg pętli w przypadku programu w SCLu, program "przebiegnie" blok FC2 i leci dalej? a jak jest petla FOR.. sterownik wykona ją raz?! czy wykona i iteracji pętli w jednym cyklu?
    I jak w końcu wygląda użycie timera, cykl "wisi" na danym timerze?!
  • #2 15723202
    krzysiekj18
    Poziom 19  
    Posty: 526
    Pomógł: 41
    Ocena: 38
    Witam,

    1. Kolego, sterownik PLC to nie PC, tu w większości przypadków nie ma wielowątkowości, itp...

    2. Sterownik w konfiguracji sprzętowej ma zdefiniowany maksymalny czas cyklu np. 200 ms, po przekroczeniu, którego zgłasza w/w błąd i przechodzi w tryb stop.

    3. W programie używasz pętli WHILE, natomiast wspominasz o innej bajce pt. FOR.

    4. Pętle WHILE, w przedstawionym przykładzie są puste w środku, więc jak ma dojść do spełnienia warunku, skoro program stoi w miejscu!?

    5. Proponuję zajrzeć do helpa, lub manuala S7-1200 i poczytać o kolejności wykonywania programu przez sterownik (mapowanie IO, uruchamianie OB itp.)
REKLAMA