Strona 1 z 1

Komunikacja z Siemens S7 1500

: 18 maja 2016 19:09
autor: Paw Saw
Witam,

Mam za zadanie stworzyć aplikację, która będzie komunikować się z PLC Siemens S7 1500 po ethernecie. Niestety nigdy wcześniej niczego podobnego nie robiłem i szczerze mówiąc nie mam pojęcia, z której strony to ugryźć.
Szukałem w labview bloczków, dzięki którym mógłbym połączyć się z PLC, jednak nie znalazłem nic ciekawego. Stąd moje pytanie - czy istnieją jakieś dodatkowe biblioteki do komunikacji przez ethernet? Jeśli tak, to skąd je
wziąć?

Z góry dziękuje za wszelką pomoc,
pozdrawiam

Komunikacja z Siemens S7 1500

: 19 maja 2016 15:52
autor: Zyga
Są natywne funkcje do komunikacji po ethernecie. Data Communication >> Protocols >> TCP.

Re: Komunikacja z Siemens S7 1500

: 23 maja 2016 10:30
autor: Paw Saw
Dzięki Zyga za odpowiedź.

Ostatnio próbowałem komunikować się z drugim komputerem (chciałem mieć pewność, że wszystko działa, zanim będę komunikował się z PLC). W tym celu przygotowałem aplikacje do
wysyłania i odczytywania danych:

Obrazek komputer 1
Obrazek komputer 2

Na pierwszym komputerze wpisuję adres komputera, do którego chcę wysłać wiadomość, numer portu oraz samą wiadomość. Natomiast na drugim wpisuję adres komputera, z którego chcę
otrzymać wiadomość oraz ten sam numer portu. Najwidoczniej coś robię źle, ponieważ wiadomość wysłana z jednego komputera, nie dociera do drugiego.
Proszę o porady, co robię nie tak i co powinienem zrobić, aby było OK? Pozdrawiam.

Re: Komunikacja z Siemens S7 1500

: 23 maja 2016 10:44
autor: cyjan1
Próbujesz 'skontaktować' ze sobą dwóch klientów...
W połączeniu z PLC zazwyczaj sterownik jest serwerem, aplikacja LabVIEW zaś klientem.

Jeśli chcesz przetestować działanie TCP, spróbuj zrobić programiki ze strony
http://www.ni.com/white-paper/2710/en/
albo otwórz przykłady TCP dostarczone razem z LabVIEW.

Re: Komunikacja z Siemens S7 1500

: 23 maja 2016 15:09
autor: Paw Saw
Udało mi się w końcu przesłać wiadomość, jednak podczas wysyłania występuje błąd.

Obrazek

Dodałem w Machine Access adres drugiego komputera

Obrazek

lecz to w niczym nie pomogło. Błąd w dalszym ciągu występuje.
Jakieś pomysły, jak można mu zapobiec?

Re: Komunikacja z Siemens S7 1500

: 23 maja 2016 15:23
autor: cyjan1
Błąd prawdopodobnie pojawia się, ponieważ zamykasz połączenie po stronie serwera zaraz po wysłaniu wiadomości. Dla potwierdzenia daj jakiegoś waita (między wysłaniem a zamknięciem połączenia TCP).

Re: Komunikacja z Siemens S7 1500

: 23 maja 2016 15:44
autor: Paw Saw
Dodałem waita, jednak błąd w dalszym ciągu występuje.

Obrazek

Re: Komunikacja z Siemens S7 1500

: 23 maja 2016 15:48
autor: cyjan1
Teraz jeszcze widzę, że w kliencie miałeś 'włączoną żarówkę' - Highlight exectuion. Jeśli tak, to 1000 ms może nie wystarczyć. Wyłącz podświetlanie to albo zwiększ czas w wait.

Re: Komunikacja z Siemens S7 1500

: 23 maja 2016 15:52
autor: Paw Saw
Bez żarówki również nie działa... Jeszcze jakieś pomysły?

Re: Komunikacja z Siemens S7 1500

: 24 maja 2016 09:44
autor: cyjan1
W bloczku TCP Read klienta masz ustawione że spodziewasz się 100 bajtów i czekasz na nie przez 25000 ms. Dlatego odczyt masz prawidłowy ale funkcja zwraca błąd zamknięcia połączenia przez serwer.
Dlatego albo ustaw że czekasz na mniejszą liczbę bajtów, albo zmień wejście Mode na CRLF - klient będzie czytał aż napotka znak powrót karetki (CR) i znak nowej linii (LF).
Te same 2 znaki (bloczek End of Line Constant) wyślij na końcu wiadomości w funkcji TCP Write serwera.

Re: Komunikacja z Siemens S7 1500

: 24 maja 2016 10:07
autor: Paw Saw
Dzięki cyjan1, problem rozwiązany ;)