'Inteligenty' dom ze sterownikiem PLC

 Language:
Szukanie zaawansowane  

Aktualności:

Powrót do strony głównej: www.edom-plc.pl

Autor Wątek: ModBus poprzez 750-653  (Przeczytany 3702 razy)

zim

  • Jr. Member
  • **
  • Wiadomości: 54
    • Zobacz profil
ModBus poprzez 750-653
« dnia: Lipca 01, 2016, 10:37:04 pm »

Witam,

Po wielu bojach udało mi się właczyć do "systemu" kartę 653.

I teraz próbuję połączyć się z rekuperatorem thessla green. Dodam że komunikacja z RIP działa (niestety wiesza się)

I tu moja prośba czy ktoś mógł by wkleić swoje rozwiązania komunikacji, próbuje przykładem admina ale przykład się nie kompiluje,

Próbowałem TERMINAL_MODBUSSLAVE_RTU i kilkoma innymi ale mam wszędzie timeouty.

Z góry dziękuje za pomoc.
Zapisane

admin

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 313
    • Zobacz profil
Odp: ModBus poprzez 750-653
« Odpowiedź #1 dnia: Lipca 02, 2016, 08:33:01 pm »

Cześć,

jak ostatecznie udało Ci się rozwiązać problemy z 653?  O co chodziło?

Piszesz, że się nie kompiluje... ale gdzie i co?  Jakie dostajesz komunikaty błędów?
Zapisane

zim

  • Jr. Member
  • **
  • Wiadomości: 54
    • Zobacz profil
Odp: ModBus poprzez 750-653
« Odpowiedź #2 dnia: Lipca 04, 2016, 10:23:17 pm »

Witaj,

O rozwiązaniu problemu pisałem gdzieś na forum, generalnie nie było rozwiązania. Kilkadziesiąt zmian programu dodawania odejmowania kart, czyszczenia pamięci i zarybił.

Z tym nie kompiluje coś chyba namieszałem z bibliotekami. Teraz próbuję i wyrzuca tylko błąd z Unknown type SEMA ?

Mógł byś po krotce opisać jak zapisywać dane używając Twojego przykładu ?

Pzd
Zapisane

admin

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 313
    • Zobacz profil
Odp: ModBus poprzez 750-653
« Odpowiedź #3 dnia: Lipca 05, 2016, 10:26:17 am »

Cześć

dziwne, bo SEMA jest ze standard.lib

Z zapisywaniem jest ciut więcej komplikacji.  Dodałem zmienne

customQuery : typModbusExtendedQuery;
customQueryFlag: BOOL;
executeCustomQuery: BOOL := FALSE;

Przed częścią uruchamiającą komunikację dodałem:

(*Prepare data for  communication with modbus slave*)
IF NOT queryPending.BUSY AND  executeCustomQuery  THEN
   customQuery.SlaveAddress := 1;
   query := customQuery;
   executeCustomQuery := FALSE;
   customQueryFlag := TRUE;
   start := TRUE;
END_IF;

IF NOT queryPending.BUSY AND NOT customQueryFlag THEN (*default query = state request*)......

i część parsowania odpowiedzi rozbudowałem:

IF MasterEx.MB_Error = 0 THEN
   IF customQueryFlag THEN
      customQueryFlag := FALSE; (*bo nic innego nie robię z odpowiedzią*)
   ELSE
      (*parse the reply!!*)
      CASE QueryType OF

.....

W użyciu:

zmieniam przez visu wartości:

customQuery .FunctionCode := XXXXX;
customQuery .Read_StartAddress := xXXXX;
customQuery .Read_Quantity := XXXXX;

i  executeCustomQuery zmieniam na TRUE;

Musisz popróbować ;)
Zapisane

zim

  • Jr. Member
  • **
  • Wiadomości: 54
    • Zobacz profil
Odp: ModBus poprzez 750-653
« Odpowiedź #4 dnia: Lipca 05, 2016, 12:03:57 pm »

Dzięki za odpowiedz,

Próbuję nawiązać połączenie również poprzez Modbus Master wbudowane w Codesysa (w zakładce PLC Configuration) ale mam tylko timeouty.

Dzisiaj pobawię się Twoją metodą.

Pzd
Zapisane