Page 1 of 1

Komunikacja Modbus z chińskim modułem

PostPosted: Tue 31. Jan 2023 20:55:09
by Slawko
Witam.
Mam chińską płytkę z 4 wejściami i 4 wyjściami.
Z większością funkcji już się uporałem i działają mi w Promoticu

Nie wiem jak zrobić odczyt wejść z modułu.

Aby odczytać stan wejść należy wysłać komendę
FF 02 00 00 00 08 6C 12
FF - adres, 02- to pewnie funkcja , 6C 12 - to suma kontrolna

Układ odpowiada
FF 02 01 00 [suma kontrolna] - wszystkie wejścia wyłączone
FF 02 01 01 [suma kontrolna] - 1 wejście aktywne
FF 02 01 02 [suma kontrolna] - 2 wejście aktywne

Jest to chyba jakaś głęboko-chińska odmiana protokołu.
Wysyłając te dane normalnie w terminalu układ odpowiada tak jak w chińskiej instrukcji.

Problem jak wysłać to zapytanie i jak odczytać odpowiedź w Promoticu. Jeśli wybiorę funkcję 02 - to dalej można wybrać tylko nr bitu i nic więcej. DA się to zrobić czy nie ma szans na implementację tego dziwnego protokołu.

Re: Komunikacja Modbus z chińskim modułem

PostPosted: Fri 10. Feb 2023 14:30:03
by Robert Siwek
Witam,

istnieją dwa sposoby, jak to rozwiązać:
1. do obiektu PmaComm wstawić obiekt PmaCommMsg i odpowiednio ustawić parametry w karcie Dane wysłanie
2. zbudować od podstaw komunikację przy pomocy protokołu PmChar (znając rqamkę zapytania i jej odpowiedź)

Robert.

Re: Komunikacja Modbus z chińskim modułem

PostPosted: Wed 22. Feb 2023 16:52:39
by Slawko
Dziękuję za odpowiedź ale nie pomogło mi to rozwiązać problemu.

Próbuję jak pan radził.
Wstawiłem PmaComm, PmaCommMsg.
W dane-wysłanie PmaCommMsg wpisałem FF 02 00 00 00 08 6C 12

wstawiłem przycisk dodając zdarzenie OnButtonDown , wpisałem z waszej www

var oCommMsg = pMe.Pm("../Comm/mr0");
if (oCommMsg.GetReady())
{
oCommMsg.Run();
}

Nie mam pojęcia czy ta nada wogóle się wysyła . Raczej watpię bo po uruchomieniu w zakładce info są błędy po przyciskaniu przycisku.

Ale nawet jakby to zadziałało to zupełnie nie wiem jak odczytać odpowiedź ze modułu.

Mogłbym poprosić o jakaś bardziej szczegółową poradę?

Jak wysłać prawidłowo daną
FF 02 00 00 00 08 6C 12
Jak odczytać odpowiedź modułu

Re: Komunikacja Modbus z chińskim modułem

PostPosted: Thu 23. Feb 2023 15:41:57
by Kazimierz Heczko
Witam,

jeżeli ta płytka rzeczywiście ma zaimplementowanego Modbus-a, to spróbowałbym na początek jeszcze raz zastosować PmaCommMsg.
W tym PmaCommMsg w karcie "Parametry" ustawić w "Parametrach wiadomości" funkcję 02, ilość danych 4 i zatwierdzić to ustawienie.
Zatwierdzenie spowoduje wytworzenie odpowiednich zmiennych w kartach Dane-wysłanie (Slave - modbus adres danego urządzenia, Addr - adres pierwszej odczytywanej wartości) i Dane-odbiór (w tym wypadku 4 zmienne typu boolean).
Po uruchomieniu aplikacji możne za pomocą systemu INFO (Ctrl + I) przejść do tego obiektu i w karcie WriteVars ustawić odpowiedni adres urządzenia (chyba że zostanie to ustawione w trybie deweloperskim), adres pierwszej odczytywanej wartości można pozostawić domyślnie na 0.
Po tym należy przejść do karty Object i za pomocą prawego klawisza myszki należy wywołać menu i z tego menu można wywołać metodę Run (powoduje rozpoczęcie komunikacji).
Na tej karcie jest również widoczny stan takiej komunikacji, jeżeli zostanie zakończona pomyślnie, to w karcie ReadVars będą widoczne bieżące stany poszczególnych wejść.

Jeżeli próba takiego odczytu zakończy się błędem, to można zerknąć do INFO systemu na pozycję Comm/dana komunikacja, gdzie w karcie Monitor będzie widoczny przebieg komunikacji bajt po bajcie, z czego można spróbować wywnioskować, gdzie jest problem.

Mam nadzieję, że powyższy opis będzie Panu pomocny.

Pozdrawiam

Re: Komunikacja Modbus z chińskim modułem

PostPosted: Thu 23. Feb 2023 23:46:07
by Slawko
Dziękuję bardzo.
Opis pierwsza liga.

Co prawda nie zadziałało to od razu bo nie wiem dlaczego wg Pana opisu wysyłał FF 02 00 00 00 04 +CRC (nie wiem skąd ta 04 się brała) zamiast FF 02 00 00 00 08 +CRC i w żadne sposób nie mogłem tego zmienić ale zbudowałem jakoś od podstaw własną ramkę i zaczęło to działać.
Opis podglądu przebiegu komunikacji mega mi pomógł. Wszystko widać jak na dłoni.

Wstawiam screena z konfiguracji może ktoś będzie w podobnej potrzebie

promotic.jpg
promotic.jpg (105.83 KiB) Viewed 6369 times


Dziękuję i pozdrawiam
Sławek