Witam
Posiadam sterownik Wago 750-881. Moduł rozszerzeń RS232/RS485 o nr katalogowym 750-652.
Dostałem do urządzenia z którym się potrzebuje skomunikować opis ramki dość szczegółowo opisany (sterowanie kolektorem słonecznym).
Korzystając w Codesys z SERIAL_INTERFACE.lib ustawiłem go w następujący spsób:
SERIAL_INTERFACE1(
xOPEN_COM_PORT:=TRUE , (* otwarcie portu do komunikacji *)
bCOM_PORT_NR:=2 , (* nr portu RS sterownika, 0 - port wbudowany sterownika, 1 - port serwisowy, 2,3,4.... - kolejne porty "kanapki" zgodnie z kolejnoscia ulozenia *)
cbBAUDRATE:= 11520, (* predkosc transmisji *)
cpPARITY:=2 , (* parzystosc : 0 - brak*)
csSTOPBITS:=1 , (* ilosc bitów stopu *)
cbsBYTESIZE:=8 , (* ilosc bitów danych *)
cfFLOW_CONTROL:=4 , (* kontrola przeplywu - HALFDUPLEX :=4, RS 485 / halfduplex / without handshake / with continous send *)
iBYTES_TO_SEND:= LEN(tekst), (* dlugosc bufora nadawczego *)
ptSEND_BUFFER:= ADR(tekst), (* bufor nadawczy *)
xSTART_SEND:=send , (* SEND - start transmisji, jest zerowane po wykonaniu operacji *)
utRECEIVE_BUFFER:=odebrane , (* bufor odbiorczy *)
xINIT:= init, (* *)
bERROR=>error , (* kod bledu *)
xCOM_PORT_IS_OPEN=>is_open ); (* 1 jesli port jest otwarty *)
Napisałem w programie wstępnie sekwencje do cyklicznego odpytywania się o jeden parametr. W odpowiedzi powinienem dostać długiego stringa. Na razie, żeby zobaczyć co mi odpowie urządzenie. Na diodach widzę, że pytanie jest wysyłane, ale nic nie przychodzi z odpowiedzią. Domyślam się, że w zły sposób wysyłam pytanie do urządzenia.
Prosił bym o pomoc w jaki sposób uzyskać jakąś informacje od urządzenia. Jak powinienem zdefiniować zapytanie, na podstawie pliku PDF opisującego komunikacje.
Posiadam sterownik Wago 750-881. Moduł rozszerzeń RS232/RS485 o nr katalogowym 750-652.
Dostałem do urządzenia z którym się potrzebuje skomunikować opis ramki dość szczegółowo opisany (sterowanie kolektorem słonecznym).
Korzystając w Codesys z SERIAL_INTERFACE.lib ustawiłem go w następujący spsób:
SERIAL_INTERFACE1(
xOPEN_COM_PORT:=TRUE , (* otwarcie portu do komunikacji *)
bCOM_PORT_NR:=2 , (* nr portu RS sterownika, 0 - port wbudowany sterownika, 1 - port serwisowy, 2,3,4.... - kolejne porty "kanapki" zgodnie z kolejnoscia ulozenia *)
cbBAUDRATE:= 11520, (* predkosc transmisji *)
cpPARITY:=2 , (* parzystosc : 0 - brak*)
csSTOPBITS:=1 , (* ilosc bitów stopu *)
cbsBYTESIZE:=8 , (* ilosc bitów danych *)
cfFLOW_CONTROL:=4 , (* kontrola przeplywu - HALFDUPLEX :=4, RS 485 / halfduplex / without handshake / with continous send *)
iBYTES_TO_SEND:= LEN(tekst), (* dlugosc bufora nadawczego *)
ptSEND_BUFFER:= ADR(tekst), (* bufor nadawczy *)
xSTART_SEND:=send , (* SEND - start transmisji, jest zerowane po wykonaniu operacji *)
utRECEIVE_BUFFER:=odebrane , (* bufor odbiorczy *)
xINIT:= init, (* *)
bERROR=>error , (* kod bledu *)
xCOM_PORT_IS_OPEN=>is_open ); (* 1 jesli port jest otwarty *)
Napisałem w programie wstępnie sekwencje do cyklicznego odpytywania się o jeden parametr. W odpowiedzi powinienem dostać długiego stringa. Na razie, żeby zobaczyć co mi odpowie urządzenie. Na diodach widzę, że pytanie jest wysyłane, ale nic nie przychodzi z odpowiedzią. Domyślam się, że w zły sposób wysyłam pytanie do urządzenia.
Prosił bym o pomoc w jaki sposób uzyskać jakąś informacje od urządzenia. Jak powinienem zdefiniować zapytanie, na podstawie pliku PDF opisującego komunikacje.