Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Wykonanie bloków funkcyjnych sterowania ruchem serva w Tia Portal

Automat23 16 Feb 2020 14:31 336 10
SterControl
  • #1
    Automat23
    Level 3  
    Witam. Zastanawiam się nad jedną sprawą i może ktoś będzie w stanie wypowiedzieć się na ten temat. Docelowo chciałbym aby zawsze w przypadku nawet chwilowego braku zasilania i jego ponownym włączeniu pozycja serwomechanizmu wracała do punktu bazowego. Pomyślałem iż mogę do tego celu wykorzystać blok Startup (OB 100). Zainicjowałbym w nim uruchomienie serwomechanizmu mc_power oraz wypozycjonowanie do pozycji bazowej mc_home. Dzięki temu pozycja serwomechanizmu w przypadku wyłączenia i następnego włączenia maszyny zawsze wracała by do początkowego położenia po czym nad kolejnymi ruchami serwomechanizmu decydowała by już inna funkcja umieszczona normalnie w Mainie. Czy takie rozwiązanie wchodzi w grę? Dziękuję za odpowiedzi.
  • SterControl
  • Helpful post
    #2
    Rariusz
    Automation specialist
    Witam,

    Tak i nie. Tak bo takie rozwiązanie zadziała. Nie bo zaraz po włączeniu napędu ruszy. Dobrze aby to operator
    wykonywał. Chyba że ma to być celowe działanie (trzeba uwzględnić kwestie bezpieczeństwa)

    Pozdrawiam,
  • SterControl
  • #3
    Automat23
    Level 3  
    Czyli sam zamysł jest dobry i zadziała?
    Czyli bardziej chodzi Ci o względy bezpieczeństwa? Po prostu jakby zdarzył się taki przypadek że brakłoby zasilania to chciałem właśnie na taką ewentualność "przygotować" maszynę aby mogła wrócić do swojego stanu pierwotnego algorytmu. Jakby nie patrzeć będzie to nieduży ruch pozycjonowania bazowego - maksymalnie +- 20 cm (bo mniej więcej tyle ma "prowadnica" na którą "oddziałuje" przekładnia śrubowa toczna sprzężona z serwomechanizmem) więc nie powinno to stworzyć jakiegoś specjalnego zagrożenia dla operatora.
    Ewentualnie czy można to wykonać w jakiś inny sposób według Ciebie?
  • Helpful post
    #4
    Rariusz
    Automation specialist
    Witam,

    Twój sposób jest ok. Tylko zwróć uwagę na bezpieczeństwo ;)
    Możesz zrobić w OB100 lub w Main. Objętne.

    Pozdrawiam,
  • #5
    Automat23
    Level 3  
    W Mainie?
    A jak takie coś wykonać w Mainie że przy restarcie sterownika załóżmy wykonuje się bazowanie osi? ;)
    Pozdrawiam
  • Helpful post
    #6
    Rariusz
    Automation specialist
    Witam,

    Masz zmienną bInitFlag która jest FALSE podczas startu. Jak FALSE to bazujesz. Po bazowaniu
    ustawiasz na TRUE. Jak jest TRUE to włączasz automatycznie pozostałe bloki. Ja tak robię zawsze.
    Po uruchomieniu PLC odliczam czas np. 5[s]. Po 5[s] zmienna bInitFlag jest równa TRUE.
    Do momentu jak jest FALSE wszystkie bloki są wyłączone np. do obsługi alarmów. W czasie
    odliczania czasu falowniki itp zdarzą się przygotować do pracy.

    Pozdrawiam,
  • #7
    Automat23
    Level 3  
    Jestem początkujący także o tej zmiennej nie wiedziałem a dobrze wiedzieć o takim czymś - napewno przyda się na przyszłość ;) czyli nazywa się ona konkretnie tak jak podałeś tak? ;) A i jeszcze jedno - ta zmienna sama zmienia stan na TRUE po załączeniu sterownika? Czy muszę ją przesterować?
  • #8
    Rariusz
    Automation specialist
    Witam,

    Ja tą zmienną deklaruję sam ;). Zmienna podłączona jest po timer.

    Pozdrawiam,
  • #9
    Automat23
    Level 3  
    Czy masz może pod ręką jakiś przykład/fragment tego jak Ty to konkretnie konfigurujesz? Z chęcią bym zobaczył jak to tworzy osoba już doświadczona ;)
  • #11
    Automat23
    Level 3  
    Dziękuję wielkie za zainteresowanie i zademonstrowanie innego rozwiązania ;)
    Pozdrawiam.