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

Modbus TCP/IP na mikrokontrolerze

Huder 27 Paź 2014 14:00 1563 10
  • #1 27 Paź 2014 14:00
    Huder
    Poziom 2  

    Chciałbym zaimplementować protokół Modbus Tcp/Ip w mikrokontrolerze ale
    mam problem ze znalezieniem konkretnych informacji o tym jak to zrobić. Jest bardzo dużo rozwiązań z modbusem RTU ale do tcp/ip nie znalazłem żadnych konkretów.
    Czy ktoś to z was robił? Chciałem stworzyć płytkę, którą mógłbym podłączyć do karty sieciowej laptopa i z jego poziomu połączyć się z takimi programami jak np. mach3 do frezarek by nią sterować.
    Podejrzewam że najpierw musiałbym stworzyć działający interface ethernet a dopiero potem jakoś softwarowo zaprogramować protokół modbus.

    Znalazłem takie układy sieciowe jak: LAN91C111, ENC28J60 tylko czy za ich pomocą będzie się dało zaimplementować modbus tcp/ip? Bo wiecie chciałbym mieć pewność by nie obudzić się potem z ręką w nocniku jak taki układzik stworzę a z modbusa na nim będą nici.

    0 10
  • Arrow Multisolution Day
  • #2 27 Paź 2014 14:28
    michalko12
    Specjalista - Mikrokontrolery

    Huder napisał:
    LAN91C111, ENC28J60 tylko czy za ich pomocą będzie się dało zaimplementować modbus tcp/ip?

    A co to ma wspólnego z Modbusem? Jak da sie zaimplementować TCP to dalej wszystko jedno co będzie po tym TCP przesyłane. Raczej poszukaj czegoś pod hasłem Wiznet TCP/IP

    0
  • Arrow Multisolution Day
  • #3 27 Paź 2014 14:31
    Huder
    Poziom 2  

    To znaczy że obsługą modbusa zajmuje się software w laptopie a nie mikrokontroler?
    Bo jeśli tak to napawa mnie nadzieją że jednak mi się uda połączyć laptopa z frezarką przez mach3.

    0
  • #4 27 Paź 2014 14:36
    michalko12
    Specjalista - Mikrokontrolery

    Huder napisał:
    To znaczy że obsługą modbusa zajmuje się software w laptopie a nie mikrokontroler?


    Nie. Mikrokontroler musi się tym zająć, laptop to master mikrokontroler to slave.
    Huder napisał:
    Bo jeśli tak to napawa mnie nadzieją że jednak mi się uda połączyć laptopa z frezarką przez mach3.

    Odpuść sobie ten temat bo nie dasz rady, wnioskuję to po poziomie zadawanych pytań.

    0
  • #5 27 Paź 2014 15:10
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Do MODBUS slave jest darmowa biblioteka - FreeMODBUS. Do MODBUS master nie ma za bardzo darmowych bibliotek na embedded, za to jest kilka na PC. No - jest jedna biblioteka na Arduino, ale jest ona przystosowana jedynie do komunikacji RTU.

    4\/3!!

    0
  • #6 27 Paź 2014 16:16
    kornik280
    Poziom 18  

    Generalnie w modbus tcp nie ma mastera i slava a odpowiednio klient i serwer.Mnie też ten temat interesuje myślałem o połączeniu STM32+ ENC28J60 tylko czy to będzie odpowiednio wydajne aby obsłużyć kilka połączeń TCP jednocześnie np. 4 (mam na myśli serwer)? Pisałem kilka aplikacji z modbusem tcp na PC i generalnie te programy są wielowątkowe, czy da sie wielowątkowość zaimplementować w mcu?
    Czy może do takich zastosowań trzeba użyć rtos?

    1
  • #7 27 Paź 2014 17:14
    michalko12
    Specjalista - Mikrokontrolery

    kornik280 napisał:
    Generalnie w modbus tcp nie ma mastera i slava a odpowiednio klient i serwer.
    A jaka to jest różnica w przypadku modbusa?
    kornik280 napisał:
    myślałem o połączeniu STM32+ ENC28J60
    STMy mają własne kontrolery Ethernet więc takie połączenie jest bez sensu
    kornik280 napisał:
    czy da sie wielowątkowość zaimplementować w mcu
    Da się, tylko że rozpatrywanie o wielowątkowości pod kątem implementacji Modbusa jest bez sensu. Inne czynniki decydują o tym czy wielowątkowość jest potrzebna czy nie.
    kornik280 napisał:
    Czy może do takich zastosowań trzeba użyć rtos?
    Można, ale nie trzeba.

    0
  • #8 27 Paź 2014 17:22
    kornik280
    Poziom 18  

    No, ale jak serwer ma nasłuchiwać np. na dwóch portach to jak to zrobić bez dwóch wątków?
    Czyli jednak RTOS jest lepszym rozwiązaniem?

    0
  • #9 27 Paź 2014 17:56
    michalko12
    Specjalista - Mikrokontrolery

    kornik280 napisał:
    No, ale jak serwer ma nasłuchiwać np. na dwóch portach to jak to zrobić bez dwóch wątków?
    A co mają porty do wątków? Poczytaj o stosach TCP dla mikrokontrolerów, dają sobie radę bez wątków. Musisz zejść z PC na uC, to jest całkiem inna bajka. Jeśli Ci to nie po drodze to pomyśl o jakimś RaspberryPi czy innej linuxowej platformie.

    0
  • #10 27 Paź 2014 19:19
    kornik280
    Poziom 18  

    Czy RTOS jest lepszym rozwiązaniem?

    0
  • #11 27 Paź 2014 19:44
    michalko12
    Specjalista - Mikrokontrolery

    Nie jest ani lepszym ani gorszym, jest jednym z rozwiązań.

    0