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

[Rozwiązano] Komunikacja Modbus RTU z modułem 6ES7 241-1CH30-0XB0 w systemie S7 1200

newyorkertychy 08 Gru 2020 18:38 1791 28
  • #1 19099391
    newyorkertychy
    Poziom 7  
    Posty: 91
    Ocena: 1
    Witam.
    Posiadam moduł 6ES7 241-1CH30-0XB0 i w dokumentacji wyczytałem ze nie obsługuje on modbus rtu.
    Proszę o info jak jest w rzeczywistości i czy da się go w jakiś sposób wykorzystać aby nawiązać komunikacje po modbus rtu, ponieważ mam odbiornik z takim właśnie zaimplementowanym protokołem.
    Pzd.
  • #2 19099561
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Wszystkie obsługują Modbus RTU. Będziesz mógł skorzystać tylko ze starszych bloków np.: MB_MASTER, a nie Modbus_Master.
    Z ciekawości, gdzie było napisane, że nie obsługuje?
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • #4 19100739
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Myślałem, że jest napisane o tym, że nie obsługuje ;)
    Załączam stare FAQ z wersji TIA10.5, w którym taka konfiguracja jest robiona.
    Załączniki:
    • FAQ S7-1200_ Komunikacja Modbus RTU (Master i slave).pdf (3.17 MB) Musisz być zalogowany, aby pobrać ten załącznik.
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • #6 19100962
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Czytałeś poprzednie odpowiedzi?
    Trzeci raz potwierdzam, ale nadal nie bardzo rozumiem dlaczego, skoro masz już sprzęt, nie spróbujesz?
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • #8 19100993
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Masz błąd w okablowaniu (RX zamieniony z TX) lub błąd w parametrach transmisji (adres urządzenia, prędkość, parzystość, itp).
    Bloki zwracają status komunikacji i można w dokumentacji doczytać z czego wynika błąd.
    Jeśli pokażesz wszystkie z powyższych rzeczy, to będzie można coś spróbować wywnioskować.
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • #10 19101032
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Komunikacja Modbus RTU z modułem 6ES7 241-1CH30-0XB0 w systemie S7 1200
    8180 - oznacza, że wpisałeś niepoprawny identyfikator sprzętu, czyli numer przypisany do karty CM
    8200 - prawdopodobnie za często wywołujesz bloki komunikacyjne
    Przeczytaj i spróbuj wg załączonego FAQ.
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • #11 19101055
    newyorkertychy
    Poziom 7  
    Posty: 91
    Ocena: 1
    Dzisiaj spróbuję się jeszcze tym pobawić i dam znać jutro jakie będą efekty.Odnośnie ustawień to w obu urządzeniach ustawiamy taka sama prędkość,bit parzystosci?.A jak on na być ustawiony- czy ma być none,add,albo even?Mógłbyś w dwóch zdaniach napisać z czym to się je.?
  • #12 19101094
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Parametry transmisji muszą być identyczne w obrębie całej linii, czyli na wszystkich urządzeniach.
    Kontrola bitu parzystości to dodatkowa forma weryfikacji ramek w komunikacji szeregowej. Nie ma konkretnego znaczenia co wybierzesz, ważne, żeby było spójne.
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • #13 19103161
    newyorkertychy
    Poziom 7  
    Posty: 91
    Ocena: 1
    Witam.Po kolejnej próbie ta sama sytuacja.Miga tylko dioda tx na module.Żadnych bledow nie pokazuje ani na bloczku mb master ani na bloczku comm load.PTR w bloczku MB Master mam jako niezoptymalizowany,MB DB w bloczku COMM LOAD mam DB z bloczku MB Master(tylko nie da się go wybrać z rozwijanej listy, trzeba go przeciągnąć z drzewa projektu?)
  • #14 19103233
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Musisz złapać błąd do osobnej zmiennej, tzn. jeśli error to kopiuj status.
    Jeśli wszystko jest dobrze skonfigurowane, a urządzenie nie odpowiada, to powinieneś dostać błąd o przekroczeniu czasu odpowiedzi (80C8 - slave timeout).
    Pokaż obrazek z bazy i z wywołania bloku.
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • #15 19103255
    newyorkertychy
    Poziom 7  
    Posty: 91
    Ocena: 1
    Teraz nie mam.Muszę zrobić Photo.Jak bede miał to wrzucę.

    Dodano po 1 [godziny] 53 [minuty]:

    Jeszcze dodam że widać że zmienia się zmienna busy z true na false ale zmienna done nie reaguje.Nie da się też wyłączyć optymalizacji bloku start up.(tia v15).Nie wiem czy to może mieć wpływ.?

    Dodano po 26 [minuty]:

    Jeszcze dopytam o połączenia.W konfiguracji modułu nie ma możliwości wyboru między duplex a half duplex.Piny które wykorzystuje to piny 3 i 8.Czy w takim wypadku jest to prawidłowe połączenie.
  • #16 19103919
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    newyorkertychy napisał:
    widać że zmienia się zmienna busy z true na false ale zmienna done nie reaguje
    Musi być Done albo Error. Myślę, że nie widzisz tego bo są tylko na chwilę. Zrób "pułapkę" na te sygnały razem z zapamiętaniem wyjścia Status.
    newyorkertychy napisał:
    Nie da się też wyłączyć optymalizacji bloku start up.
    Nie wiem, który blok masz na myśli.
    newyorkertychy napisał:
    W konfiguracji modułu nie ma możliwości wyboru między duplex a half duplex.Piny które wykorzystuje to piny 3 i 8.
    To jest RS485. Jest dwuprzewodowy, więc obsłuży tylko half duplex.
    Styki prawidłowe.
    Jeśli możesz to załącz program albo obrazki.
    Sprawdź dokładnie wg załączonego wcześniej FAQ, bo tam jest wszystko pokazane i nawet opisane co klikać myszką.
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • #17 19105390
    newyorkertychy
    Poziom 7  
    Posty: 91
    Ocena: 1
    Komunikacja Modbus RTU z modułem 6ES7 241-1CH30-0XB0 w systemie S7 1200 Komunikacja Modbus RTU z modułem 6ES7 241-1CH30-0XB0 w systemie S7 1200 Komunikacja Modbus RTU z modułem 6ES7 241-1CH30-0XB0 w systemie S7 1200
    Jest błąd-widać że nie ma odpowiedzi od slave.Połączenia posprawdzane,adres,predkosc ta sama zarówno w slave jak i plc.
    Miga tylko dioda tx na module rs485.
    Z ta optymalizacja chodziło mi o to że nie da się jej wyłączyć w bloku start up tak jak jest to w manualu.
  • #18 19106521
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    To jednak stawiałbym na to, że jest problem z okablowaniem lub parametrami transmisji.
    Jeśli MB_COMM_LOAD masz wywołane w OB Startup to jest uruchamiane tylko podczas rozruchu PLC. Robiłeś start/stop lub restart zasilania?
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • #19 19107583
    newyorkertychy
    Poziom 7  
    Posty: 91
    Ocena: 1
    Witam.Temat już opanowany.Doszedłem gdzie był problem,a mianowicie miałem pomylony pin 8 z 7 i po zamianie jest ok tzn.jest transmisja.Teraz jedynie pokazuje mino to blad ze jest niewlasciwy Mode czyli przy mode 0 tj.odczyt twierdzi ze to jest dla broadcast.Error 8188.
    Pzd.
  • #20 19108126
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Broadcast, czyli adres 0, jest możliwy tylko do zapisu, więc MODE nie może być też 0.
    Sprawdź jeszcze raz parametry wpisane do MB_MASTER. Na obrazku wyglądały prawidłowo, ale może po restarcie się wyzerowały?
    Zapamiętywanie błędu musisz zrobić odwrotnie i MOVE zrobić do zmiennej pomocniczej. Przed każdą próbą musisz też zerować tę pamięć, żeby nie zostawał poprzedni błąd.
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • #21 19110158
    newyorkertychy
    Poziom 7  
    Posty: 91
    Ocena: 1
    Witam.Żeby odczytać dane to trzeba do MODE wpisać 0.?Można jaśniej z zapamietywaniem i zerowaniem tych błędów,bo być może z błędnego ich przechwytywania wynikają te kody błędów które mi się wyświetlają a cała komunikacja działa prawidłowo.
  • #22 19128246
    newyorkertychy
    Poziom 7  
    Posty: 91
    Ocena: 1
    Witam.Kolejne pytanie do Was zwiazane z Tia Portal V 15.Mianowicie mam 1 bajt w którym pierwsze 7 bitów przedstawia mi stan powiedzmy wartość napięcia a 8 bit to informacja czy poziom tego napięcia nie został przekroczony.Jak wydobyć informacje z tego bajty aby prawidłowo odczytać parametry?
  • Pomocny post
    #24 19128288
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Zanim zrobisz dostęp do bitów, to odpowiedz sobie na pytanie jak zmienia się wartość tego bajtu w zależności od ostatniego bitu.
    Może lepiej sprawdzić po prostu > 127?

    Dostęp do symbolicznych zmiennych można zrobić tak:
    How in STEP 7 (TIA Portal) do you access the unstructured data types bit-by-bit, byte-by-byte or word-by-word and symbolically?
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • #25 19128732
    newyorkertychy
    Poziom 7  
    Posty: 91
    Ocena: 1
    Wymyśliłem to w ten sposób ze jeżeli będę miał przekroczenie wartości np.napięcia i ten ostatni bit zmieni się na 1 to wtedy od wyniku będę odejmowal 127 i będzie wartość prawidłowa a przeciwnym razie gdy ten bit będzie 0 to nic nie muszę robić.

    Dodano po 4 [minuty]:

    I jeszcze pytanie odnosnie przerwania transmisji czy lepiej robić jakiegoś sprzetowego wachdoga czy wykorzystać status mb,bo w przypadku przerwy transmisji wartości skopiowane zostają i wtedy trzebaby wprowadzić np.zera oraz jakiś alarm lub info odnośnie braku transmisji(np.brak zasilania slave)?
  • #26 19129754
    elektryku5
    Poziom 39  
    Posty: 6303
    Pomógł: 460
    Ocena: 1055
    Są różne podejścia, ja zamiast coś dodawać/odejmować wolałbym zastosować maskę bitową i funkcję AND.

    newyorkertychy napisał:
    I jeszcze pytanie odnosnie przerwania transmisji czy lepiej robić jakiegoś sprzetowego wachdoga czy wykorzystać status mb,bo w przypadku przerwy transmisji wartości skopiowane zostają i wtedy trzebaby wprowadzić np.zera oraz jakiś alarm lub info odnośnie braku transmisji(np.brak zasilania slave)?


    Zależy co tam masz po drugiej stronie MB, jak drugi sterownik, to można dorobić jakiegoś lifebita, jak urządzenie bez takiej funkcjonalności, to kombinować ze statusami/błędami bloczku wbudowanego.
    Co do alarmu, na pewno nie zaszkodzi taki dorzucić, ułatwia to potem diagnozę osobom bez programu.
  • #27 19131901
    newyorkertychy
    Poziom 7  
    Posty: 91
    Ocena: 1
    I jeszcze chyba ostatnie pytanie do Was
    w temacie Modbus Rtu.
    A mianowicie przy funkcji 03 tj.read odczytuje mi na raz 15 rejestrów, natomiast jeśli chodzi o funkcję 05 i 06 tj.write to nie chcę mi zapisać więcej niż jeden rejestr.Z czego to może wynikać?
  • #28 19132476
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Wynika to z numeru funkcji, której chcesz użyć. Przy czym nie wszystkie urządzenia pozwalają na zapis wielu rejestrów. To musisz sprawdzić w dokumentacji.
    1 Read Coil
    2 Read Discrete Input
    3 Read Holding Registers
    4 Read Input Registers
    5 Write Single Coil
    6 Write Single Holding Register
    15 Write Multiple Coils
    16 Write Multiple Holding Registers
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik zadał pytanie dotyczące możliwości komunikacji Modbus RTU z modułem 6ES7 241-1CH30-0XB0 w systemie S7 1200. W odpowiedziach potwierdzono, że moduł może obsługiwać Modbus RTU, jednak wymaga użycia starszych bloków, takich jak MB_MASTER. Użytkownik napotkał problemy z komunikacją, które były spowodowane błędnym okablowaniem oraz parametrami transmisji. Po poprawieniu połączeń, komunikacja została nawiązana, ale wystąpiły błędy związane z nieprawidłowym trybem. Udzielono wskazówek dotyczących konfiguracji oraz obsługi błędów w blokach komunikacyjnych. Ostatecznie użytkownik potwierdził, że odpowiednia konfiguracja w programie rozwiązała problem.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA