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

Sterowanie falownikami Lenze przez sieć CANopen ???

06 Wrz 2009 19:24 2665 8
  • Poziom 19  
    Witam

    Czy miał ktoś do czynienia z sterowaniem falownikami firmy Lenze serii ESMD W200, przy pomocy sterownika PLC i sieci CANopen. Czy może mi ktoś wyjaśnić na czym dokładnie polega taki system komunikacji, oraz co dokładnie należy wysłać do takiego falownika ???

    Pozdrawiam
    krzysiekj18
  • Pomocny post
    Poziom 26  
    Steruję różnymi falownikami z PLC ale jeśli o Lenze chodzi to tylko po analogu.

    Jeśli chodzi o parametry zadane to musisz podać 2 zmienne:
    - prędkość zadaną
    - wejście START_FWD = 1

    Z danych technicznych odczytujesz na jakich zdresach będziesz miał jakie zmienne w Lenze. Potem do adresu początkowego na którym masz komunikację z Lenze dodajesz adres danej zmiennej i w nią zapisujesz wartości jakie są potrzebne do uruchomienia falownika (powyżej). Z innych adresów (które znów odczytujesz z dokumentacji Lenze) odczytujesz wartości rzeczywiste.

    Vacon dobrze współpracuje po portach szeregowych ALE przepisy wymagają rozłączania elektrycznego więc na wszelki wypadek stosuj START_FWD na złączu cyfrowym!
  • Poziom 19  
    Witam
    Próbowałem i próbowałem i nic z tego więc może napiszę co i jak robię, a więc tak w programie sterownika umieszcza blok otwierający komunikacje CANopen:
    Code:

    CANopen_01.enable = 1                (* enable functionblock CANopen *)
    CANopen_01.baud_rate = 50            (* define baud rate - 500KB/s *)
    CANopen_01.cob_num = 10                (* set maximum number of objects *)-mam 8 falowników ale aktualnie testuję komunikacje na tylko jednym
    CANopen_01.device = 0                (* define device - 0 = standard *)
    CANopen_01 FBK CANopen()             (* activate function block CANopen *)

    Następnie aktywuję blok wysyłający rozkazy do sieci:
    Code:

    data[0]=0 - tu definiuję parametry pracy ( start falownika )
    data[1]=25 - tu podaję częstotliwość pracy
    CANwrite_01.enable = 1                             (* enable function block CANwrite *)
    CANwrite_01.us_ident = CANopen_01.us_ident                    (* defineident number for CANwrite *)
    CANwrite_01.data_lng =2                           (* define length of data *)
    CANwrite_01.can_id = 3                         (* set can_id number for transmission *)
    CANwrite_01.data_adr = ADR(data)                      (* define data to write on the bus *)
    CANwrite_01 FBK CANwrite()

    Teraz tak w falowniku ustawiam parametr h50 - Node adres na 3 stąd w CANwrite_01.can_id = 3 również podaję 3.
    Resztę parametrów w falowniku ustawiam w następujący sposób:
    C01 - Control Source:3
    h51 - Baud Rate:5
    h52 - Systembus participant:0
    h53 - Parameter channel 2:2
    h66 - RxPDO#1 mapping:0

    Proszę o wskazanie miejsca w którym popełniam błąd.
    Dodatkowo w załączniku podaję instrukcję konfiguracji falownika do pracy w sieci.
  • Poziom 26  
    (((dlaczego ustawiasz data[0] = 0 skoro chcesz wystartować?)))

    Najpierw ustaw komunikację i sprawdzaj na PLC status komunikacji, czy nie masz żadnych błędów i czy WOGÓLE jest komunikacja, czy dostajesz JAKĄKOLWIEK odpowiedź.

    (znajdź adres statusu komunikacji z rpzpisaniem SZCZEGÓŁÓW, bo w załączniku nie przeczytasz o starcie i statusach!)

    Potem postaraj się cokolwiek ODCZYTAĆ z falownika, jak będziesz mógł czytać to już 99% bo działa komunikacja i parametry są właściwe.

    Potem znajdź właściwe adresy dla rozkazów i działa :-)


    Rozkaz START_FWD powinien być sterowany jako pojedyńczy BIT w zmiennej wielobitowej. KTÓRY to bit? Czy znalazłeś go? W załączniku nie znajdziesz tej informacji, odsyła on do innego manuala. (nie mylić z rozkazem START dla bloczków komunikacji lub dla STARTU komunikacji!)
  • Poziom 19  
    Data[0]=0 mam zdefiniowane jako UINT (Word) i zgodnie z instrukcją w przypadku gdy wszystkie bity w tym słowie wynoszą zero to falownik startuje ( tryb h66 / h76 setting = 1 ) w załączniku instrukcja do falownika. Co do komunikacji to po uruchomieniu sieci na sterowniku zapala się lampka od sieci CANopen, oraz sprawdzałem status zmiennej informującej o stanie wysyłania i jest ona ustawiona na 1.
    Jutro spróbuję jeszcze zgodnie z radą odczytania danych z falownika, tylko nadal nie jestem pewny jaki adres powinienem wpisać w polu CANwrite_01.can_id w programie sterownika, czy jeżeli w falowniku ustawiam 3 to czy tutaj też podaję tą wartość czy też należy ją obliczyć w jakiś inny sposób???

    Ps. zgodnie z tym co zrozumiałem z instrukcji ( tu mogę się bardzo mylić :?: ) do falownika powinienem przesłać informację składającą się z dwóch słów ( Word ), bity w słowie WORD[0] u mnie data[0] określają rodzaj startu i pracy falownika, natomiast słowo WORD[1] ustawiam zadaną częstotliwość.
  • Pomocny post
    Poziom 26  
    Tablicę Data[x] zdefiniuj lepiej jako Word bo możesz coś zamieszać na Uint!

    Jakiś adres musisz zdefiniować w swoim PLC i jakiś INNY adres w Lenze [h50]. Jednak w bloczku jakim wysyłasz ramkę musisz wpisać adres Lenze!

    W h66 masz 1 czyli C135 control + C46 freq
    W h61 musisz mieć oczywiście Enabled a w h71 Disabled

    W C46 wpiszesz freq ALE wg wzoru "Frequency setpoint [Hz] = WORD1 value / 10"
    (zatem wartość 25 nie będzie odpowiednia bo falownik nie ruszy na 2.5Hz :-))

    C135 w CAN:
    WORD0 = 0
    WORD1 = 250



    A teraz Statusy:
    W h81 wpisz Enabled
    h86 = 1 (C150 = status)

    a wtedy:
    WORD0 zamienisz na pojedyńcze bity i masz status urządzenia
    WORD1 = freq output


    :-) Już pracuje wszystko??? :-)
  • Poziom 19  
    Czyli jeżeli dobrze zrozumiałem to tak w:
    -sterowniku mam ustawiony adres na 1 czyli w falowniku ustawiam np. h50=2
    -w programie wysyłam dane do urządzenia o adresie 2
    -h61 h66 h71 ustawiam tak jak podałeś
    -chcę aby falownik pracował w zakresie np. 0-50Hz oczywiście regulowane przez siec czyli WORD[1] wpisuję zadaną częstotliwość np. 30Hz czyli 300 i w parametrze C46 częstotliwość ta powinna zostać wyświetlona.

    I teraz ostatnie pytanie jeżeli będę chciał odczytać dane z falownika to do jakiej tablicy (składającej się z ilu wartości, oraz jakich ) mam je zapisać, oraz jak odczytać co one zawierają, chodzi mi tutaj min, o aktualną częstotliwość jaką osiągną falownik, oraz o ewentualny nr. błędu falownika.
  • Pomocny post
    Poziom 26  
    Pierwsza część - rozumiemy się doskonale,

    2 część - jeśli nawet odczytujesz 10 słów to nie przeszkadza Ci to bo wtedy metodą domysłu odczytasz wszystkie interesujące Cię informacje. (min. 2 słowa MUSISZ odczytać)

    Nie wiem czy Lenzo odpowiada statusem NR błędu a żę wypiłem 2 piwka i muszę iść spać (bo jutro rano wyjazd na uruchomienie 5 linii produkcyjnych 400 km ode mnie) to nie znajdę interesujących Cię informacji. Myślę jednak, że wystarczająco się dogadaliśmy żebyś odpalił falownik :-) "Pomógł" :-)
  • Poziom 19  
    Witam

    Problem udało mi się rozwiązać, tkwił on w formie ramki. Dokładny opis ramki do komunikacji z falownikami Lenze po sieci CANopen, znajduje się w instrukcji od falownika 8200 vector.

    Temat zamykam.
    Dziękuję za pomoc.
    Pozdrawiam