eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Multiplekser/sniffer/arbiter modbus
Ilość wypowiedzi w tym wątku: 31

  • 21. Data: 2023-04-06 16:36:53
    Temat: Re: Multiplekser/sniffer/arbiter modbus
    Od: Dawid Rutkowski <d...@w...pl>

    czwartek, 6 kwietnia 2023 o 16:19:36 UTC+2 heby napisał(a):
    > On 06/04/2023 16:09, Dawid Rutkowski wrote:
    > > Trzymać w pamięci mirrora komplet rejestrów pieca - oczywiście jak najczęściej
    > > odświeżany - i udawać piec i dla EW11 i dla "siebie".
    > Zastanawiałem się nad tym na początku, czy nie zrobić emulatora. Ale tak
    > sobie myślę, że tak arbiter byłby bardziej uniwersalny.
    >
    > Ja w ogóle nie wiem, czy go zrobie. Ale jak zrobie, to byłby open source.
    >
    > Wolałym aby producenci tych urządzeń mieli pojęcie o tym co się dzieje
    > na rynku home automation. Ale chyba nie mają. Stąd te chmury, pralki z
    > nfc, lampki na bluetooth i inne bezużyteczne guano na rynku "smart".
    > Depresyjne klimaty.

    Robią dla przeciętnego użyszkodnika, a nie dla fanów open source.
    I pewnie im się sprzedaje.

    W sumie taki arbiter to prosta rzecz - niewiele więcej niż np. konwerter prędkości RS
    (sam robiłem na Atmega164, więc platforma na bogato - ale choć wygląda to prosto, to
    trzeba było do różnych
    systemów dodawać różne sztuczki, żeby dobrze działało - a najlepszą w tym temacie
    rzeźbę widziałem na dwóch AT89C2051 - a może nawet to było AT89C1051U - które
    odebrane bajty przekazywały sobie równolegle 8-bitowym portem ;) poza, jak
    zwykle, "jedną raną stanowczo śmiertelną" - bo wracamy do tematu "gotowca",
    czyli tego, jak zrobić interefejs do niewiadomego.
    Czy ten arbiter ze strony powiedzmy TCP ma wyglądać jak abstrakcyjny model pieca?
    Może oprogramowania HA mają takie "abstrakcyjne" modele - nigdy nie wnikałem,
    więc kto wie, sam robiłem abstrakcyjny model źródła promieniowania laserowego...


  • 22. Data: 2023-04-06 16:53:57
    Temat: Re: Multiplekser/sniffer/arbiter modbus
    Od: heby <h...@p...onet.pl>

    On 06/04/2023 16:36, Dawid Rutkowski wrote:
    > Czy ten arbiter ze strony powiedzmy TCP ma wyglądać jak abstrakcyjny model pieca?

    Arbiter w ogóle nic by nie wiedział o typie urządzenia.

    Wykrywał by ramkę modbusa, buforował i odsyłał na inny interfejs w/g
    jakiegoś prostackiego priorytetowania. Może nawet ze zmianą parametrów
    transmisji, jak ktoś się uprze.

    Coś w rodzaju switcha ethernet store&forward.

    Uniwersalność jest od osiągnięcia.


  • 23. Data: 2023-04-06 17:24:24
    Temat: Re: Multiplekser/sniffer/arbiter modbus
    Od: Dawid Rutkowski <d...@w...pl>

    czwartek, 6 kwietnia 2023 o 16:54:04 UTC+2 heby napisał(a):
    > On 06/04/2023 16:36, Dawid Rutkowski wrote:
    > > Czy ten arbiter ze strony powiedzmy TCP ma wyglądać jak abstrakcyjny model pieca?
    > Arbiter w ogóle nic by nie wiedział o typie urządzenia.
    >
    > Wykrywał by ramkę modbusa, buforował i odsyłał na inny interfejs w/g
    > jakiegoś prostackiego priorytetowania. Może nawet ze zmianą parametrów
    > transmisji, jak ktoś się uprze.
    >
    > Coś w rodzaju switcha ethernet store&forward.
    >
    > Uniwersalność jest od osiągnięcia.

    Uniwersalny oznacza zwykle "do niczego konkretnego się nie nadający" (dziś
    wyczytałem, że kacapy
    wymyśliły "uniwersalny" reaktor jądrowy VVER-TOI - no to będzie znowu źle...).

    Bo wciąż pytam o to, jaki chcesz mieć interfejs po TCP.
    Czy:
    - konwerter TCP<->RS485
    - wysyłacz/odbieracz ramek modbus
    - abstrakcja urządzenia wg schematu używanego przez jakiś system HA

    No i jeszcze jedno mi przyszło do głowy - co z ramkami wysyłanymi przez y, czyli
    piec?
    Przecież na 100% nie wiadomo, komu odpowiada.
    Wysyłać do obu masterów?
    Do tego, który ostatnio nadał ramkę?
    Pamiętać, o co który pytał?


  • 24. Data: 2023-04-06 18:49:02
    Temat: Re: Multiplekser/sniffer/arbiter modbus
    Od: heby <h...@p...onet.pl>

    On 06/04/2023 17:24, Dawid Rutkowski wrote:
    > Uniwersalny oznacza zwykle "do niczego konkretnego się nie nadający" (dziś
    wyczytałem, że kacapy
    > wymyśliły "uniwersalny" reaktor jądrowy VVER-TOI - no to będzie znowu źle...).

    Nie przesadzajmy. Switch ethernetowy jest uniwersalny, czy przerzuca
    dane z Hubbla, czy pornole, wszystko jedno.

    > Bo wciąż pytam o to, jaki chcesz mieć interfejs po TCP.
    > Czy:
    > - konwerter TCP<->RS485
    > - wysyłacz/odbieracz ramek modbus
    > - abstrakcja urządzenia wg schematu używanego przez jakiś system HA

    Standardem jest to najgłupsze rozwiązanie: TCP->RS485 bez jakiejkowliek
    formy, bazujące tylko na timeoutach. Uważam jest za najgorsze, ale z
    jakiejś przyczyny jest "profesjonalne" i już na tej grupie kiedyś
    dowiedziałem się, że mam z tym nie dyskutować bo przemysł wybrał jak
    zwykle to najgłupsze ;)

    > No i jeszcze jedno mi przyszło do głowy - co z ramkami wysyłanymi przez y, czyli
    piec?
    > Przecież na 100% nie wiadomo, komu odpowiada.

    Wiadomo:

    1) wysyłam ramkę od master1 (master2 czeka w buforze z blokadą)
    2) slave dopowiada, przesyłam do master1, zwalniam blokadę

    albo:

    1) wysyłam ramkę od master1 (master2 czeka w buforze z blokadą)
    2) slave nie odpowiada po określonym w konfiguracji czasie.
    3) zwalniam blokadę nie odpowiadajac master1, on też sobie zrobi timeout
    sam z siebie

    > Do tego, który ostatnio nadał ramkę?

    Do tego, który jest obecnie uznany za rozmawiajacego. To określony slot
    czasowy, określany przeze mnie.

    > Pamiętać, o co który pytał?

    Nie trzeba. Timeout w master jest zazwyczaj przesadnie duży, a timeout w
    slave zazwyczaj absurdalnie krótki. To daje przestrzeń na implemetancję
    normalnego, konfigurowalnego timeoutu w arbitrze.


  • 25. Data: 2023-04-07 18:00:45
    Temat: Re: Multiplekser/sniffer/arbiter modbus
    Od: Dawid Rutkowski <d...@w...pl>

    czwartek, 6 kwietnia 2023 o 18:49:09 UTC+2 heby napisał(a):
    > On 06/04/2023 17:24, Dawid Rutkowski wrote:
    > > Uniwersalny oznacza zwykle "do niczego konkretnego się nie nadający" (dziś
    wyczytałem, że kacapy
    > > wymyśliły "uniwersalny" reaktor jądrowy VVER-TOI - no to będzie znowu źle...).
    > Nie przesadzajmy. Switch ethernetowy jest uniwersalny, czy przerzuca
    > dane z Hubbla, czy pornole, wszystko jedno.

    Ale sam ethernet to za mało na zrobienie newsa na usenecie czy też przesłanie zdjęcia
    - czy to galaktyki w Andromedzie czy też czegoś innego w innej Andromedzie.

    > > Bo wciąż pytam o to, jaki chcesz mieć interfejs po TCP.
    > > Czy:
    > > - konwerter TCP<->RS485
    > > - wysyłacz/odbieracz ramek modbus
    > > - abstrakcja urządzenia wg schematu używanego przez jakiś system HA
    > Standardem jest to najgłupsze rozwiązanie: TCP->RS485 bez jakiejkowliek
    > formy, bazujące tylko na timeoutach. Uważam jest za najgorsze, ale z
    > jakiejś przyczyny jest "profesjonalne" i już na tej grupie kiedyś
    > dowiedziałem się, że mam z tym nie dyskutować bo przemysł wybrał jak
    > zwykle to najgłupsze ;)

    A w ogóle da się zrobić modbus RTU na konwerterze RS485?
    Coś podejrzewam, że ten EW11 to coś wyżej jednak, np. konwerter modbus TCP<-> modbus
    RTU.

    I coś takiego byłoby przydatne w tym "arbitrze".

    No bo "uniwersalność" upada, gdy chcemy konkretne zastosowanie i trzeba adaptować.
    Niech będzie do jakiegoś HA.
    Z czym to HA, którego używasz, współpracuje po TCP?
    Z konwerterem na RS485 (multum ustawiania)?
    Z bramką modbus TCP<->modbus RTU (sporo ustawiania)?
    Z urządzeniem modbus TCP (też sporo)?
    Z abstrakcją pieca (sporo rzeźbienia po drugiej stronie)?


  • 26. Data: 2023-04-07 18:22:22
    Temat: Re: Multiplekser/sniffer/arbiter modbus
    Od: heby <h...@p...onet.pl>

    On 07/04/2023 18:00, Dawid Rutkowski wrote:
    >> Nie przesadzajmy. Switch ethernetowy jest uniwersalny, czy przerzuca
    >> dane z Hubbla, czy pornole, wszystko jedno.
    > Ale sam ethernet to za mało na zrobienie newsa na usenecie

    Bo tym zajmuje się zupełnie inna warstwa.

    > A w ogóle da się zrobić modbus RTU na konwerterze RS485?

    Tak.

    > Coś podejrzewam, że ten EW11 to coś wyżej jednak, np. konwerter modbus TCP<->
    modbus RTU.

    Nie ma czegoś takiego jak "modbus TCP". Wysyłasz bajt do portu TCP i
    wypada on po stronie RS485. Wpada bajt po stronie RS485 i wypada on z
    portu TCP. Możesz taki konwerter "zrobić" na jednym poleceniu w Linuxie:
    socat. Przez wiele lat miałem tak właśnie zrobione.

    I to ze wszystkimi kosekwencjami tego kretynizmu braku opakowania. Jak
    na przykład łamanie ramek TCP powodujące konfuzję i timeouty. Znowu
    standard przemysłowy wymyślał ktoś bez pojęcia o sieciach.

    > Z czym to HA, którego używasz, współpracuje po TCP?

    Np. z innym EW11, sterującym rekuperacją. Ramki modbus są tworzone w HA
    za pomocą stosowanego pluginu, ja okreslam jaki rejestr, jaki adres i
    jakie ip:port i leci. Gołe bajty RTU. O, take:

    modbus:
    - name: recuperation
    type: tcp
    host: x.y.z.w
    port: 8899
    sensors:
    - name: recuperation_gear
    slave: 1
    address: 4
    scan_interval: 4

    automation:
    - alias: Set recuperation gear
    trigger:
    - platform: state
    entity_id: input_number.recuperation_gear
    action:
    service: modbus.write_register
    data:
    hub: recuperation
    unit: 1
    address: 4
    data_template:
    value: ["{{states('input_number.recuperation_gear') | int}}",0]
    [...]

    > Z konwerterem na RS485 (multum ustawiania)?

    EW11 w domyślnej konfiguracji jest dość prosty. Problem jak chcesz np.
    automatyczne odpytywanie czy jakieś transporty, których nie sprawdzałem.

    > Z bramką modbus TCP<->modbus RTU (sporo ustawiania)?

    Nikt tego nie używa na poważnie. bajt tcp<->bajt uart jest "przemysłowym
    standardem" ze wszystkimi konsekwencjami dziadostwa.

    Jakoś kilka(naście?) lat temu była afera, że co więksi kretyni
    wystawiali te zabawki do internetu, a mowa była o automatyce w dużych
    obiektach przemysłowych.

    > Z abstrakcją pieca (sporo rzeźbienia po drugiej stronie)?

    Akurat abstrakcja pieca wymaga może z 50 linijek w pythonie. Nie
    nazwałbym tego "sporo".

    Ale to nie jest potrzebne. Arbiter nic nie wie o tym z kim się
    komunikujesz. Ma tylko: baudrate, maksymalny timeout na odpowiedź i
    maksymalny timeout między znakami. Te dwa/trzy parametry są
    wystarczające. Skłaniam się nawet do tego, że sama wiedza "że to jest
    modbus" jest zbędna. Dowolny, kompaktowy strumień bajtów, oczekujący
    podobnej odpowiedzi, spełniajacy reguły timeoutu, się nada. Arbiter może
    być jak switch - nic nie wie o danych.


  • 27. Data: 2023-04-08 09:40:29
    Temat: Re: Multiplekser/sniffer/arbiter modbus
    Od: "J.F" <j...@p...onet.pl>

    On Wed, 5 Apr 2023 22:28:10 +0200, Piotrek wrote:
    > On 05.04.2023 21:58, heby wrote:
    >> Liczyłem na jakiś ... powiedzmy ... gotowiec z 3 dziurkami RS485,
    >> obsługujący 2 masterów i 1 slave. Chyba nie jestem jedyny na świecie z
    >> takim pomysłem ;)
    >
    > GPT twierdzi, że nie ma ;-)
    >
    > "[...]
    >
    > Unfortunately, there are no known open-source projects that implement a
    > two-master, one-slave Modbus architecture. However, you can start with
    > existing Modbus libraries (e.g., libmodbus, FreeModbus) and modify them
    > according to the outlined approach to develop your custom solution."
    >
    > ale przyciśnięty do muru
    >
    > Are you sure there is no such open source project?
    >
    > zaczął programować w Python. LOL

    Moze od razu poprosic o kod na wybrany uC ? :-)

    > "I apologize if my previous response may have been unclear. While it is
    > challenging to be aware of every single open-source project available,
    > to the best of my knowledge (as of the knowledge cutoff in September
    > 2021), there was no specific open-source project that implements a
    > two-master, one-slave Modbus architecture.
    >
    > However, you may find open-source projects that implement Modbus
    > gateways or proxies, which you could adapt to achieve the desired
    > two-master, one-slave communication. One such project is modbus-tk, a
    > Python library that allows you to create Modbus masters and slaves, and
    > it includes a TCP to Serial gateway implementation.
    >
    > Project Repository: https://github.com/ljean/modbus-tk
    >
    > Here's a basic example of how you can use modbus-tk to create a Modbus
    > TCP to Serial gateway:
    >
    > python
    >
    > import modbus_tk
    > import modbus_tk.defines as cst
    > from modbus_tk import modbus_tcp
    > from modbus_tk import modbus_rtu
    >
    > def main():
    > # Configure Modbus RTU master
    > master_rtu = modbus_rtu.RtuMaster(
    > modbus_tk.utils.create_serial_handler(port="/dev/tty
    S0")
    > )
    > master_rtu.set_timeout(5.0)
    > master_rtu.set_verbose(True)
    >
    > # Configure Modbus TCP server
    > server_tcp = modbus_tcp.TcpServer(address="0.0.0.0", port=502)
    > server_tcp.start()
    >
    > # Main loop to process Modbus TCP requests and forward them to
    > Modbus RTU
    > while True:
    > try:
    > request = server_tcp.get_request(blocking=True)
    > if request is not None:
    > response = master_rtu.execute(
    > request.slave_id,
    > request.function_code,
    > request.starting_address,
    > request.quantity_of_x,
    > request.output_value,
    > )
    > request.set_response(response)
    >
    > except modbus_tk.modbus.ModbusError as exc:
    > print("Error processing request:", str(exc))
    >
    > if __name__ == "__main__":
    > main()
    >
    > This example creates a Modbus TCP server that forwards incoming requests
    > to a Modbus RTU master. You could extend this example to support two
    > Modbus TCP masters and manage the communication with the single Modbus
    > RTU slave.

    I to jest przykład z powyzszego archiwum, czy GPT napisal sam ?

    > Please note that this example uses Python, and you would need to adapt
    > the code to your specific requirements, such as handling communication
    > conflicts between the two masters."
    >
    > P.

    J.


  • 28. Data: 2023-04-08 16:07:27
    Temat: Re: Multiplekser/sniffer/arbiter modbus
    Od: Dawid Rutkowski <d...@w...pl>

    piątek, 7 kwietnia 2023 o 18:22:32 UTC+2 heby napisał(a):
    > On 07/04/2023 18:00, Dawid Rutkowski wrote:
    > >> Nie przesadzajmy. Switch ethernetowy jest uniwersalny, czy przerzuca
    > >> dane z Hubbla, czy pornole, wszystko jedno.
    > > Ale sam ethernet to za mało na zrobienie newsa na usenecie
    > Bo tym zajmuje się zupełnie inna warstwa.

    Jeśli jest, o co dalej pytałem.

    > > A w ogóle da się zrobić modbus RTU na konwerterze RS485?
    > Tak.

    Tylko trzeba mieć bardzo dobre połączenia.
    Inaczej nie będzie się opłacało rozbierać po śniadaniu ;>

    > > Coś podejrzewam, że ten EW11 to coś wyżej jednak, np. konwerter modbus TCP<->
    modbus RTU.
    > Nie ma czegoś takiego jak "modbus TCP".

    Jak nie ma jak jest - port 502 - i to nawet dwa.
    Jeden bez CRC w ramce, "bo mają niższe warstwy", drugi z CRC, bo jednak niższe
    warstwy mają tylko sumy kontrolne.
    Chyba że nikt nie zaimplementował (ew. tylko do bramek, a może i to nie).
    Może więc czas zacząć?
    Choć to dziwne jest, jakieś 4 bajty z przodu: Transaction identifier i Protocol
    identifier (ten zawsze 0) - nie wiem po co to może być potrzebne.

    > Wysyłasz bajt do portu TCP i
    > wypada on po stronie RS485. Wpada bajt po stronie RS485 i wypada on z
    > portu TCP. Możesz taki konwerter "zrobić" na jednym poleceniu w Linuxie:
    > socat. Przez wiele lat miałem tak właśnie zrobione.

    Ja wolę nc.

    > I to ze wszystkimi kosekwencjami tego kretynizmu braku opakowania. Jak
    > na przykład łamanie ramek TCP powodujące konfuzję i timeouty.

    O to właśnie pytałem "czy się da".
    Widać "da się", pod warunkiem że nie musi dobrze działać.
    Albo np. leci modbus ascii a nie modbus RTU.

    > > Z bramką modbus TCP<->modbus RTU (sporo ustawiania)?
    > Nikt tego nie używa na poważnie. bajt tcp<->bajt uart jest "przemysłowym
    > standardem" ze wszystkimi konsekwencjami dziadostwa.

    No to użyj.
    Czy nikt nie zaimplementował?

    > Jakoś kilka(naście?) lat temu była afera, że co więksi kretyni
    > wystawiali te zabawki do internetu, a mowa była o automatyce w dużych
    > obiektach przemysłowych.
    > > Z abstrakcją pieca (sporo rzeźbienia po drugiej stronie)?
    > Akurat abstrakcja pieca wymaga może z 50 linijek w pythonie. Nie
    > nazwałbym tego "sporo".

    Ale trzeba mieć pythona na tym urządzeniu, co robi abstrakcję pieca.
    Jest na AVR?

    Kiedyś dostałem do zabawy płytkę z renesas SuperH, z DRAM i złączem do kolorowego
    wyświetlacza po równoległym RGB.
    Nie wiem, ile zapłacił za to ten, od którego to dostałem, ale soft to był interpreter
    TCL na eCos.
    I podobno miało być tak, że będzie to umiał zaprogramować nawet tzw. grafik
    komputerowy...


  • 29. Data: 2023-04-08 16:39:34
    Temat: Re: Multiplekser/sniffer/arbiter modbus
    Od: heby <h...@p...onet.pl>

    On 08/04/2023 16:07, Dawid Rutkowski wrote:
    >> Nikt tego nie używa na poważnie. bajt tcp<->bajt uart jest "przemysłowym
    >> standardem" ze wszystkimi konsekwencjami dziadostwa.
    > No to użyj.
    > Czy nikt nie zaimplementował?

    Abitera nie widziałem. Gotowych urządzeń implementujących raw RTU jest
    od groma.

    Niektóre idą dalej w tym szlaleństwie i są wersje UDP zamiast TCP.

    >> Akurat abstrakcja pieca wymaga może z 50 linijek w pythonie. Nie
    >> nazwałbym tego "sporo".
    > Ale trzeba mieć pythona na tym urządzeniu, co robi abstrakcję pieca.

    Ta abstrakcja do niczego nie jest potrzebna w przypadku arbitera. Była
    by uzyteczna, gdybym robił coś w rodzaju proxy. Ale nie wydaje mi się,
    aby było to niezbędne. Arbiter jest ok, pod warunkiem, że przerwy w
    komunikacji są statystycznie znacznie dłuższe niż transmisjie. U mnie
    tak jest.

    > Jest na AVR?

    Python był jako wyznacznik minimum. Raczej narzęźbię to na C++.

    > Kiedyś dostałem do zabawy płytkę z renesas SuperH, z DRAM i złączem do kolorowego
    wyświetlacza po równoległym RGB.
    > Nie wiem, ile zapłacił za to ten, od którego to dostałem, ale soft to był
    interpreter TCL na eCos.
    > I podobno miało być tak, że będzie to umiał zaprogramować nawet tzw. grafik
    komputerowy...

    Jestem raczej z daleka od "gotowców" o uproszczonej budowie. Skrajnym
    przykładem jest LabView. Kolega w tym pracował zawodowo, robiąc bardzo
    poważne rzeczy. Jego największym problemem refaktoringu nie było
    programowanie, tylko jak przemieścić D'n'D kilka tysięcy elementów aby
    dało się zmieścić pętlę i kilka drutów. Programowanie graficzne uważam
    za znakomity żart, choc niewątpliwie wygląda świetnie na prezentacjach.

    Innymi słowy, jesli to narzeźbię, to prawodpowodobnie na ESP8266 (ale on
    ma niestety 1 i 1/2 uartu) albo ESP32. Tu nie ma wielkiego wyboru z
    powodu komunikacji po wifi.

    Swoją drogą: podobne urządzenie (do PV, ale tam są inne wymagania) od
    kilku lat działa mi na teminalu Wyse Cx0 (normalny pecet wielkości 2
    paczek papierosów) który kosztował mnie 20zł.


  • 30. Data: 2023-04-08 16:40:14
    Temat: Re: Multiplekser/sniffer/arbiter modbus
    Od: heby <h...@p...onet.pl>

    On 08/04/2023 16:39, heby wrote:
    > Abitera

    Arbitra.

strony : 1 . 2 . [ 3 ] . 4


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: