Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmS7 - Driver do komunikacji poprzez protokół S7-TCP/IP

Protokół "S7-TCP/IP" jest znany także jako "RFC1006" lub "ISO on top of TCP". Sterowniki PLC z tym protokołem komunikują się najczęściej poprzez łącze PROFINET (konektor do podłączenia do sieci Ethernet).

Za pomocą tego protokołu można komunikować się na przykład z następującymi typami sterowników PLC:

- Siemens Simatic:
- S7-200 przy pomocy modułu CP243-Ethernet
- S7-300 przy pomocy modułu CP343-Ethernet, przy pomocy konwertera NETLink PRO ETH lub z procesorem z wbudowanym łączem Ethernet
- S7-400 przy pomocy modułu CP443-Ethernet, przy pomocy konwertera NETLink PRO ETH lub z procesorem z wbudowanym łączem Ethernet
- S7-1200 (posiada wbudowane łącze Ethernet)
- S7-1500 (posiada wbudowane łącze Ethernet)

Uwaga: Dla właściwego ustawienia Simatic patrz Ważne ustawienia komunikacji w sterowniku PLC Simatic przy pomocy oprogramowania TIA portal.

- ET-200S, ET-200SP (CPU1512) (posiada wbudowane łącze Ethernet)
- IPC + WinAC (programowy sterownik PLC)
- Falowniki (Sinamics, Micromaster).
- VIPA (system sterujący 300S, SLIO, ...)
- Pilz PSS (http://www.pilz.com)
 
Przed zastosowaniem tego drivera w aplikacji PROMOTIC należy zaznajomić się z rozdziałem: Komunikacja przy pomocy driverów PROMOTIC.
 
Podstawowe właściwości drivera:
- Wykorzystanie tego drivera jest powiązane z zakupem licencji: PmS7. Z wersją freeeware PmFree lub przy opracowywaniu aplikacji (z licencją deweloperską w celach testowania) element ten zawsze funkcjonuje.
- Komunikacja przebiega poprzez Ethernet. Do komunikacji wystarcza standardowa karta Ethernet. Przy zastosowaniu konwertera NETLink PRO ETH można komunikować się także poprzez interfejsy MPI, PROFIBUS lub PPI.
- Driver komunikacyjny nie wymaga żadnych specjalnych bibliotek ani sprzętu.
- Aplikacja PROMOTIC jest z punktu widzenia tej komunikacji MASTER (tzn. wywołuje transmisję danych).
- Driver komunikacyjny optymalizuje fizyczne transmisje wiadomości komunikacyjnych ze sterownikime PLC. W jednej wiadomości komunikacyjnej mogą być transmitowane wartości z różnych obszarów danych (wejsćia, wyjścia, bloki danych, ...) i dzięki temu komunikacja jest wystarczająco szybka nawet przy większych ilościach danych. W standardowej sieci Ethernet można więc odświeżać dane na przykład z częstosliwością 15x za sekundę.
- Driver jest wbudowany do systemu PROMOTIC przy pomocy obiektu PmComm.

Driver umożliwia wykorzystanie obiektu PmCommData. Nie można stosować obiekt PmCommMsg.

Dla łatwego dodania tego drivera do aplikacji jest dogodne zastosować: Konfiguracje wstępne w grupie "S7 protokół komunikacyjny"

 
Wspierane są następujące obszary danych:
- I = Input: Wejścia binarne (z niemieckiego E = Eingang). Wartości bitowe (typ X), które można odczytywać, lecz nie można do nich zapisywać.

Z tymi wartościami można pracować również jak z danymi typu 1-bajt (8 bitów, typ B), 2-bajty (16 bitów, typ W) lub 4-bajty (32 bitów, typ DINT). Do poszczególnych bitów można wtedy przystępować przy pomocy właściwości Var.Bit lub przy pomocy metod Pm.GetBit / SetBit.

- Q = Output: Wyjścia binarne (z niemieckiego A = Ausgang). Wartości bitowe (typ X), które można odczytywać i można do nich zapisywać.

Z tymi wartościami można pracować również jak z danymi typu 1-bajt (8 bitów, typ B), 2-bajty (16 bitów, typ W) lub 4-bajty (32 bitów, typ DINT). Do poszczególnych bitów można wtedy przystępować przy pomocy właściwości Var.Bit lub przy pomocy metod Pm.GetBit / SetBit.

- M = Memory, Marker, Flag: Pamięć z której można odczytywać i do której można zapisywać. W odróżnieniu od bloków danych ta pamięć nie jest pamięcią trwałą, tzn. po wyłączeniu sterownika pamięć ta jest zresetowana.

Do wartości w tej pamięci można stosować wszystkie wspierane typy danych (X, W, INT, STRING ...).

- DB = Data Block: Pamięć trwała, którą można odczytywać i można do niej zapisywać.

Do wartości w tej pamięci można stosować wszystkie wspierane typy danych (X, W, INT, STRING ...).

- T = Timer: Timery (tylko do odczytu). Wartości można odczytywać jako typy danych S5T(=domyślnie), Wbcd i W.
- C = Counter: Czytniki (z niemieckiego Z = Zähler) (tylko do odczytu). Wartości można odczytywać jako typy danych Wbcd(=domyślnie) i W.
 
Driver wspiera następujące typy danych S7:
- X: Bit, Boolean - Bit określony adresem bajtu i numerem bitu. W aplikacji PROMOTIC jest reprezentowany przez typ danych: Boolean.
- B: Unsigned Byte - 1-bajtowa liczba całkowita (od 0 do 255). W aplikacji PROMOTIC jest reprezentowany przez typ danych: Byte.
- W: Unsigned Word - 2-bajtowa liczba całkowita (od 0 do +65 535). W aplikacji PROMOTIC jest reprezentowany przez typ danych: Long.
- INT: Signed Word - 2-bajtowa liczba całkowita (od -32 768 do +32 767). W aplikacji PROMOTIC jest reprezentowany przez typ danych: Integer.
- D: Unsigned Double Word - 4-bajtowa liczba całkowita (od 0 do +4 294 967 295). Ponieważ język VBScript nie posiada całoliczbowego typu danych dla dla 4-bajtowej unsigned wartości, to w systemie PROMOTIC wartość jest zapisana do typu danych Double.
- DINT: Signed Double Word - 4-bajtowa liczba całkowita (od -2 147 483 648 do +2 147 483 647). W aplikacji PROMOTIC jest reprezentowany przez typ danych: Long.
- Bbcd: Unsigned Byte in BCD code - 1-bajtowa liczba całkowita. V sterowniku PLC zapisana w kodowaniu BCD (od 0 do 99). W aplikacji PROMOTIC jest reprezentowany przez typ danych: Byte.
- Wbcd: Unsigned Word in BCD code - 2-bajtowa liczba całkowita. V sterowniku PLC zapisana w kodowaniu BCD (od 0 do 9999). W aplikacji PROMOTIC jest reprezentowany przez typ danych: Integer.
- Dbcd: Unsigned Word in BCD code - 4-bajtowa liczba całkowita. V sterowniku PLC zapisana w kodowaniu BCD (od 0 do 99999999). W aplikacji PROMOTIC jest reprezentowany przez typ danych: Long.
- REAL: Real number, 4B IEEE - 4-bajtowa liczba rzeczywista rzeczywista w formacie IEEE-754 (32-bit). W aplikacji PROMOTIC jest reprezentowany przez typ danych: Single.
- LREAL: Long Real number, 8B IEEE - 8-bajtowa liczba rzeczywista w formacie IEEE-754 (64-bit). Ten typ danych wspiera na przykład Simatic S7-1200. Nie jest wspierany przez starsze typy sterowników PLC. W aplikacji PROMOTIC jest reprezentowany przez typ danych: Double.
- CHAR: Signed Byte, Raw string - Ciąg znaków o określonej liczbie znaków (1 znak = 1 Byte). W sterownikach PLC ten typ jest zapisany bez informacji o długości tekstu. Jeżeli przy zapisie do sterownika PLC zapisywany tekst jest krótszy niż określona ilość znaków, wtedy reszta jest uzupełniona wartością 0. W aplikacji PROMOTIC jest reprezentowany przez typ danych: String.
- STRING: S7 string - Tekst o określonej ilości znaków (1 znak = 1 Byte). W sterownikach PLC ten typ jest dodatkowo z nagłówkiemm w którym znajdują się informacje o bieżącej długości tekstu. Jeżeli przy zapisie do sterownika PLC zapisywany tekst jest krótszy niż określona ilość znaków, wtedy reszta jest uzupełniona wartością 0. W aplikacji PROMOTIC jest reprezentowany przez typ danych: String.
- DTL: Date and Time, 12B Bin format - Data i czas. W sterowniku PLC jest zapisany w formie binarnej w 12B. Ten typ danych jest wspierany na przykład przez Simatic S7-1200. Nie jest wspierany przez starsze typy sterowników PLC. W aplikacji PROMOTIC jest reprezentowany przez typ danych: Date.
- DT: Date and Time, 8B BCD format - Data i czas. W sterowniku PLC jest zapisany w kodzie BCD w 8B. Ten typ danych jest wspierany przez starsze typy sterowników PLC. Zakres lat jest 1990-2089. W aplikacji PROMOTIC jest reprezentowany przez typ danych: Date.
- S5T: S5TIME, Time Duration - Czas lub okres trwania. W sterowniku PLC jest zapisany f kodzie BCD w 4B. Ten typ danych jest wspierany przez starsze typy sterowników PLC. Zazwyczaj jest używany w pamięci typu "Timer". W aplikacji PROMOTIC jest reprezentowany przez typ danych: Long = ilość milisekund.
- Array: Driver bezpośrednio nie wspiera odczyt/zapis tablicy poprzey jedną zmienną (np. typu Array). Natomiast ze względu na to, że w sterowniku musi być wyłączone ustawienie "Optimized block access" (patrz DB optimized), z punktu widzenia drivera PmS7 zmienne typu tablica zachowują się w PLC jako obszar pojedyńczych zmiennych. Z tego wynika, iż takie zmienne można odczytywać/zapisywać joko samodzielne zmienne, gdzie każda posiada swój adres w databloku.
 
Notatka1: Typ danych TIME jest w zasadzie ilością milisekund i wartość można zatem odczytywać jako typ danych DINT. Dlatego właściwy typ danych TIME nie jest wspierany przez driver.
Notatka2: Jeżeli wartość daty i/lub czasu jest zapisana w typie danych Date, wtedy wartości rok/miesiąc/dzień/godzina/minuta/sekunda można uzyskać na przykład przy pomocy metod VBScript Year/Month/Day/Hour/Minute/Second. Patrz również Funkcje VBScript do pracy z datą i czasem i Metody Pm do pracy z datą i czasem.
 

Zalecone wartości parametrów:

Zalecane wartości dla pozycji Parametry Ethernet:
Numer portu TCP/UDPNumer portu Ethernet. Liczba ta jest określona przez wybór typu komunikacji S7:
102 - Komunikacja przebiega bezpośrednio ze sterownikiem PLC wspierającym protokół S7 (wspierającym łącze Ethernet).
7777 - Komunikacja z konwerterem NETLink PRO ETH.
Typ transmisji EthernetTCP
Ilość powtórzeń przy nieudanej transmisjiJeżeli druga strona nie odpowie, wtedy driver dokona zamknięcia łącza i ponownie rozpocznie nawiązywanie połączenia. Dlatego jest dogodne ustawienie tego konfiguratora "bez powtórzeń", tzn. wartość 0.
Czas limitu transmisji jednego pakietu [ms]W przypadku "Typ komunikacji = Ethernet ISOonTCP Standard" jest konieczne ustawienie 4000 ms. W innym przypadku wystarcza 2000 ms.
Zamknij połączenie po każdej transmisjiNIE zakreślać (obowiązkowe). Po każdym nawiązaniu połączenia ze sterownikiem trzeba przenieść kilka wiadomości inicjalizacyjnych i gdyby połączenie było często zamykane to szybkość transmisji została by znacząco obniżona.
Opis i zalecane wartości dla pozycji Parametry protokołu:
Typ komunikacjiOkreśla typ komunikacji z urządzeniem.
Ethernet ISOonTCP Standard - (for S7-300/400/1200/1500..) - Komunikacja będzie prowadzona z urządzeniem, które wspiera Ethernet komunikację poprzez protokół S7 (wspiera PROFINET).
Ethernet ISOonTCP for CP243 - (for S7-200) - Komunikacja będzie prowadzona z Simatic S7-200 za pośrednictwem modułu CP243-Ethernet.
Ethernet NETLink PRO ETH - (Helmholz, Softing, Accon) - Komunikacja będzie przebiegać poprzez konwerter NETLink PRO ETH.
Maks. długość PDUTu można określić maksymalną długość danych przenoszonych w jednym powiadomieniu komunikacyjnym. Standardowe długości to: 240, 480 lub 960. Normalnie można wprowadzić maksymum, tzn. 960. Podczas inicjalizacji komunikacji z PLC driver stwierdzi jaką długość wspiera sterownik PLC i jeżeli wspiera mniejszą, wtedy wartość automatycznie zmniejszy.

W praktyce stwierdzono, że niekiedy PLC w jednym powiadomieniu wysyła mniejszą ilość danych (np. przesyła tylko 240) nawet jeżeli podczas inicjalizacji powiadomił o możliwości przesyłania większych ilości danych (np. 480). Przekłada się to tak, że po otrzymaniu danych w obiekcie PmCommData napełni tylko część zmiennych, reszta zmiennych nie zostanie przekazywana. Wtedy należy zmeinić wartość z długości 960 na długość 240.

Rack(0-7) Określa numer rack-u w którym jest ulokowany procesor, z którym ma przebiegać komunikacja. W większości przypadków wartość jest równa 0.

Wprowadzane tylko jeżeli Typ komunikacji = "Ethernet ISOonTCP Standard"

CPU Slot(0-31) Określa numer slot-u w którym jest ulokowany CPU procesor, z którym ma przebiegać komunikacja. (Uwaga: NIE CHODZI o gniazdo karty komunikacyjnej!)
- Często stosowaną wartością jest 2.
- Dla zabudowanych interfejsów Ethernet (np. S7-1200, S7-1500, CPU1512SP ..) wartość jest równa 1.

Przykład: W gnieździe 1 bywa umieszczony zasilacz i jeżeli zasilacz jest większy (np. dla S7-400), wtedy może obsadzić i dalsze gniazda. Jeżeli więc zasilacz obsadził gniazdo 1 i 2 a w gnieździe 3 jest na przykład wentylator (lub gniazdo nie jest obsadzone), wtedy procesor może być umieszczony w gnieździe 4. W tym konfiguratorze powinna się wtedy znaleźć wartość 4.

Wprowadzane tylko jeżeli Typ komunikacji = "Ethernet ISOonTCP Standard"

Local TSAP(hex) Określa adres LocalTSAP w układzie szesnastkowym. Często stosowaną wartością jest 4d57 ('MW').

Wprowadzane tylko jeżeli Typ komunikacji = "Ethernet ISOonTCP for CP243"

Remote TSAP(hex) Określa adres RemoteTSAP w układzie szesnastkowym. Często stosowaną wartością jest 4d57.

Wprowadzane tylko jeżeli Typ komunikacji = "Ethernet ISOonTCP for CP243"

MPI/DP address(0-31) Określa adres MPI lub DP-PROFIBUS procesora, z którym będzie przebiegać komunikacja. Dla MPI jest często stosowaną wartością 2.

Wprowadzane tylko jeżeli Typ komunikacji = "Ethernet NETLink PRO ETH".

Connection typeTyp połączenia. W konfiguracji sieci można ustawić maks. ilość połączeń dla danego typu.

Wprowadzane tylko jeżeli Typ komunikacji = "Ethernet ISOonTCP Standard" lub "Ethernet NETLink PRO ETH".

1 = PG-connection - Urządzenie do programowania
2 = OP-connection - Panel operatorski
3 = OTHER-connection - Inny typ

Opis komunikacji przy pomocy obiektów PmCommData

Dla niniejszego drivera komunikacyjnego można stosować obiekty PmCommData.

Zmiennych w obiekcie PmCommData (albo jeszcze lepiej zmiennych w obiekcie PmData z rozszerzeniem danych ExtComm) może być dowolna ilości, mogą być dowolnego typu danych i w dowolnej kolejności. Driver sam w zoptymalizowany sposób odczyta dane z urządzenia przy pomocy wewnętrznie wytworzonych wiadomości komunikacyjnych.

Odczytywane są wszystkie zmienne (jeżeli jest włączony konfigurator Odświeżanie danych zezwolone). Przy zapisie do zmiennej do urządzenia jest odesłana tylko zapisywana zmienna (jeżeli jest wybrany konfigurator Automatycznie przesyłaj przy zapisie do pozycji).

 
Opis konfiguratora ItemID:

ItemId jest identyfikatorem tekstowym pozycji, który służy do adresacji parametru w urządzeniu. Z konfiguratora ItemID driver stwierdzi, w jaki sposób ma zostać wartość pozycji wczytana lub wysłana. Tekst można wpisać ręcznie, lub ułożyć przy pomocy okna, które zostanie otwarte przy pomocy przycisku wprawo od konfiguratora. Do wprowadzenia można wykorzystać Makro wyrażenie (wartość jest obliczana przy uruchomieniu aplikacji).

Przykłady formy identyfikatora:

- "I0.2" = Wartość zapisana w I=Input pod adresem 0 w drugim bicie jako typ danych X=bit=domyślnie.
- "Q0.2" = Wartość zapisana w Q=Output pod adresem 0 w drugim bicie jako typ danych X=bit=domyślnie.
- "QB0" = Wartość zapisana w Q=Output pod adresem 0 jako typ danych B=Byte=8 bitów.
- "MREAL30" = Wartość zapisana w M=Memory pod adresem 30 jako typ danych REAL=4-bajtowa liczba rzeczywista.
- "DB10.W83" = Wartość zapisana w DB=DataBlock nr. 10 pod adresem 83 jako typ danych W=Unsigned Word.
- "DB3.Wbcd83" = Wartość zapisana w DB=DataBlock nr. 3 pod adresem 83 jako typ danych Wbcd=Unsigned Word in BCD code.
- "DB24.CHAR0.12" = Wartość zapisana w DB=DataBlock nr. 24 od adresu 0 (pod adresami 0,1,..11) jako 12 pozycji typu CHAR które w PROMOTIC zostaną zapisane do jednej wartości typu String.
- "DB25.STRING0.12" = Wartość zapisana w DB=DataBlock nr. 25 od adresu 0 jako typ danych S7 STRING która w PROMOTIC zostanie zapisana do wartości typu String.
- "T15" = Wartość zapisana w T=Timer pod adresem 15 jako typ danych S5T, który w systemie PROMOTIC będzie zapisany do wartości typu Date.
- "TWbcd15" = Wartość zapisana w T=Timer pod adresem 15 jako typ danych Wbcd=Unsigned Word in BCD code.
- "C20" = Wartość zapisana w C=Counter pod adresem 20 jako typ danych Wbcd=Unsigned Word in BCD code.
- "CW20" = Wartość zapisana w C=Counter pod adresem 20 jako typ danych W=Unsigned Word.
 
Notatka: Driver na razie nie wspiera przenoszenia w jednej zmiennej o jednym ItemId wektora wartości (oprócz wektora znaków w typie danych CHAR).
 
Opis konfiguratora PmCommData > Parametry > Parametry specjalne:
Niniejszy konfigurator nie jest stosowany przez dany driver.

Komunikacja za pośrednictwem konwertera NETLink PRO ETH

Konwerter NETLink PRO ETH konwertuje protokół Ethernet S7 na fizyczny interfejs MPI, PROFIBUS lub PPI. Jeżeli konwerter jest podłączony do sieci MPI/PROFIBUS, wtedy w takiej sieci może być podłączonych kilka procesorów, z którymi ma przebiegać komunikacja (każdy będzie mieć inny adres MPI/DP). Jeden obiekt PmComm komunikuje się tylko z jednym procesorem. Można mieć jednocześnie kilka obiektów PmComm z takim samym adresem IP konwertera, lecz z inną wartością "MPI/DP address".

 
Konwerter NETLink PRO ETH dostarcza na przykład:
- Firma Helmholz (http://www.helmholz.com). Rdzeń sprzętu tej firmy jest stosowany także przez inne firmy w ich konwerterach (patrz dalej).

Jeżeli w konwerterze poprzez Web interfejs zostanie ustawiony konfigurator "Go online after boot", wtedy konwerter jest wtedy niewidocznym i w driverze PmS7 można ustawić "Typ komunikacji = Ethernet ISOonTCP Standard".

- Firma Softing (http://www.softing.com). Te konwertery korzystają ze sprzętu firmy Helmholz.
- Firma Deltalogic (http://www.deltalogic.de, typ ACCON). Te konwertery korzystają ze sprzętu firmy Helmholz.
- Konwertery innych firm (np. IBH NETLink, NETLink Kepware ...). Nie jest przetestowane, że z tymi innymi konwerterami można komunikować się przy pomocy drivera PmS7.

Ważne ustawienia komunikacji w sterowniku PLC Simatic przy pomocy oprogramowania TIA portal

Wersje Simatic-1200 i -1500 od roku 2014 wymagają zaprogramowanie przy pomocy oprogramowania TIA portal 13 lub wyższych.

Uwaga: W roku 2015 dla nowej wersji PLC (np. Simatic S7/1200 V.4.1.1 - 4.1.3) należy wykonać aktualizację TIA portal 13 SP1 na Update 5 (9/2015).

 
W tych softach są domyślnie ustawione niektóre konfiguratory w taki sposób, że zewnętrzny SCADA system (czyli również PROMOTIC) z tak ustawionym PLC nie potrafi komunikować.

W TIA portal należy zmienić następujące ustawienia:

 
1) Protection:

Wybierz "CPU projekt" w lewym panelu oraz naciśnij Alt+Enter lub w menu lokalnym wybierz "Properties".

W pozycji "Protection":
1) Wybierz konfigurator "Full access".
2) Zaznacz konfigurator "Permit access with PUT/GET communication from remote partner".
 
2) DB optimized:

Wybierz "DB" w lewym panelu pod "Program blocks" i naciśnij Alt+Enter lub w menu lokalnym wybierz "Properties".

Usuń ustawienie "Optimized block access" (domyślnie jest zaznaczony).


© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice