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

HSC1 + enkoder AB 1000 imp PushPull – PLC nie nadąża przy większej prędkości

Szymon 28 Maj 2026 17:12 246 6
  • #1 21911672
    Szymon
    Poziom 20  
    Posty: 651
    Pomógł: 12
    Ocena: 79
    Cześć zwracam się do Was z prośbą w rozwiązaniu problemu. Sprawa dotyczy odczytu w cyklu programowym wbudowanym funkcji HSCS7-1200 1214C. W czy problem? pierwszy raz mam problem w szybkim licznikiem. Używam HSC1 , enkoder A/B , 1000imp. , PushPull. Filtracja Wejść I0.0 i I0.1 zmieniona na 0.1us. Kasuję funkcję poprzez podanie flagi na wejście CV i przepisuję tam wartość 0. Id1000 odczytuję i porównuję sobie komparatorami do wartości zadanych. Wartość enkodera zamieniam z pomiaru obrotowego na liniowy. Teoretycznie wszystko ok. Problem się pojawia przy zwiększanie prędkości. Komparatory jakby nie nadążają przetwarzać wartości aby przesterować wyjścia. Używam również sieci Modbus ale odczyty są wyzwalane cyklicznie każdy co 1s. Co może mi powodować że przy mniejszej prędkości komparatory działają dobrze względem wskazań enkodera a przy zwiększonej prędkości nie nadążają. Kombinowałem już nawet aby wejścia I0.0 oraz I0.1 ustawić w filtracji na minimum. Nic nie pomaga. Pomoże ktoś w rozwiązaniu zagadki ? Pomocy
    Pozdrawiam

    Dodano po 18 [minuty]:

    Sprostowanie Szybki licznik jest używany tylko do występowania wyjsc poprzez komparatory. Zauważyłem również ze pomimo zmniejszenia prędkości wyjścia jakby sie też trochę rozjeżdżają. Ewidentnie jakiś problem z HSC lub nie wyrabia mi pętla cyklu. Jakieś pomysły?
  • #2 21911813
    spinacz
    Poziom 42  
    Posty: 8572
    Pomógł: 1204
    Ocena: 2649
    A co Ty kombinujesz? Tnz co to za aplikacja ?
    Jeśli enkoder jest na jakimś napędzie sterowanym z tego PLC to nie lepiej użyć "Technology objects"?
  • #4 21911896
    Szymon
    Poziom 20  
    Posty: 651
    Pomógł: 12
    Ocena: 79
    >>21911813 jest to maszyna nanosząca klej na opakowanie. Ponadto śledząc pozycję enkodera wykonuję inne funkcje procesowe na maszynie ( załączenie siłowników etc. ) Enkoder jest spięty sprzęgłem z wałkiem napędu głównego, który przemieszcza materiał. Napędem jest serwowzmacniacz z przypisanych ścieżkami - krokami. Sam napęd jest sterowany Eventami o zboczonych narastającym także nie da mi tu nic Technology Objects

    Dodano po 11 [minuty]:


    Zrzut TIA Portal z blokami PLC: CTRL_HSC, CONV, CALCULATE, MOVE i logika drabinkowa dla enkodera

    Dodano po 2 [minuty]:

    Słowo MW28 przychodzi jeszcze z bloczku Calculate w którym matematycznie skaluję odległość fizyczną od fotokomórki do układu klejowego. Flaga M320.1 idzie fizycznie na wyjście Q4.0 . Nie zmieściło mi się wszystko na jednej formatce z Painta :)

    Dodano po 9 [minuty]:

    Się zastanawiam czy zbyt częste odpytywanie Slave po Modbus nie powoduje mi zbyt duże obciążenie pętli ? Ale żeby aż tyle ? to nie jest jakaś aplikacja kosmiczna :/ . Slave'ów jest 9. Enkoder podmieniłem bo myślałem , że może coś z nim . PLC też podmieniłem bo różnie to bywa. Kurde no tyle razy robiłem HSC ale tu się coś zagiąłem :). Dziś spróbuję ograniczyć na maksa wywoływanie bloków MB_Master i zobaczę. Chyba , że macie inne pomysły. Aha w ustawieniach PLC także zmienię ograniczenie używania Comunication Load na minimum tzn. 15%.
  • #5 21911930
    ThoronDC
    Poziom 16  
    Posty: 112
    Pomógł: 17
    Ocena: 9
    >>21911672

    Comunication load to jak plc z tia wymienia dane a nie po modbus. Jaki jest czas obiegu pętli programu. Licznik skasuje się dopiero w następnym obiegu OB1. A to trwa w czasie. Netwok 2 daj przed HSC_CTRL. Jeżeli impulsy na I4.4 będą częściej niż wywołania OB1 to będziesz je gubił. Możesz też dać HSC_CTRL i obliczenia do przerwania cyklicznego, aczkolwiek obszar I jest odświeżany przed OB1 (a dokładnie przed Program Cycle "Main", może być ich kilka, info manual). Obszar Q jest wysyłany do I/O po "Mainach". OB cykliczne przerywa działanie "Main". W przerwaniu cykliczny użyj asynchronicznego odczytu licznika i I4.4.
    Czyli I4.4:P i ID1000:P wymusi to odczyt z I/O.

    Ten licznik w trybie AB ma maksymalną szybkość zliczania 30kHz. Może ją przekraczasz. Możesz kręcić wałem teoretycznie max 30 obr/s lub 1800 obr/min.
    Pozdrawiam
  • #6 21912113
    Szymon
    Poziom 20  
    Posty: 651
    Pomógł: 12
    Ocena: 79
    Lipa nie działa. Mam prośbę czy jesteś w stanie wrzucić kawałek kodu, który twoim zdaniem musi działać ? Bo ja już dostaję jobla szczerze mówiąć

    Dodano po 5 [godziny] 19 [minuty]:

    Czas cyklu wynosi 15-20ms więc wydaje sie że mogę mieć problem z tymi komparatorami przy dużej prędkości
  • #7 21912612
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Zacząłbym od analizy i obliczenia ile faktycznie potrzeba czasu przy konkretnych prędkościach. Będzie odpowiedź czego brakuje.
    Można też spróbować dodać porównanie do konfiguracji szybkiego licznika i wywołać przerwanie.
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl

Podsumowanie tematu

✨ Problem dotyczy odczytu szybkiego licznika HSC1 w sterowniku Siemens S7-1200 1214C z enkoderem inkrementalnym A/B 1000 imp. PushPull. Wejścia I0.0 i I0.1 mają skróconą filtrację do 0,1 µs, a wartość licznika jest zerowana przez CV i przeliczana z obrotów na pozycję liniową. Przy małej prędkości układ działa poprawnie, natomiast przy większej prędkości sterownik nie nadąża z przetwarzaniem impulsów i wyjścia nie przełączają się w odpowiednim momencie. Dodatkowo odczyty przez Modbus są wykonywane cyklicznie co 1 s, ale nie rozwiązują problemu opóźnienia reakcji przy wyższej prędkości enkodera.
Wygenerowane przez model językowy.
REKLAMA