Komunikacja z Siemens S7 1500
Komunikacja z Siemens S7 1500
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
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
Są natywne funkcje do komunikacji po ethernecie. Data Communication >> Protocols >> TCP.
Re: Komunikacja z Siemens S7 1500
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:
komputer 1
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.
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:


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.
- cyjan1
- Posty: 70
- Rejestracja: 08 paź 2012 11:55
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: podkarpacie
Re: Komunikacja z Siemens S7 1500
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.
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.
Pozdrawiam
Zenek
Zenek
Re: Komunikacja z Siemens S7 1500
- cyjan1
- Posty: 70
- Rejestracja: 08 paź 2012 11:55
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: podkarpacie
Re: Komunikacja z Siemens S7 1500
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).
Pozdrawiam
Zenek
Zenek
- cyjan1
- Posty: 70
- Rejestracja: 08 paź 2012 11:55
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: podkarpacie
Re: Komunikacja z Siemens S7 1500
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.
Pozdrawiam
Zenek
Zenek
- cyjan1
- Posty: 70
- Rejestracja: 08 paź 2012 11:55
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: podkarpacie
Re: Komunikacja z Siemens S7 1500
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.
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.
Pozdrawiam
Zenek
Zenek