You are on page 1of 4

Transfer danychAUTOMATYKA

za pomocą modemu GPRS w S7-1200


I MECHATRONIKA

Transfer danych za
pomocą modemu GPRS
w S7-1200 (2) Dodatkowe materiały
na CD/FTP

W drugiej części artykułu przedstawiamy sposób przesłania danych do i ze sterownika S7-1200 poprzez
przemysłowy modem GPRS sterowany poleceniami AT+. Przykład aplikacji jest bardzo „życiowy”: jest
to system uzdatniania ścieków, którego istotnym elementem jest studzienka rewizyjna z automatyczną
kontrolą poziomu napełnienia.

Dodatkowe materiały na CD/FTP:


Zarządzanie pobieraniem i wysyłaniem danych pomiarowych ftp://ep.com.pl, user: 14039, pass: 4p80b5b5
Wymienione w tabeli 2 dane procesu są określane jako rekord da- • pierwsza część kursu
nych. Datownik jest automatycznie zapisywany w rekordzie danych
w chwili pomiaru danych. Stosowany datownik jest zawsze zgodny
z czasem systemowym UTC sterownika S7-1200. Ten czas systemowy Różnice długości poszczególnych cykli są eliminowane dzięki użyciu
jest synchronizowany w odstępach 15-minutowych za pomocą pro- bufora typu FIFO (First In First Out) dla zmierzonych wartości (rysunek 8).
gramu SINAUT Micro SC. Jeżeli cykl przesyłania jest dłuższy niż cykl pomiarowy, wtedy jest możli-
we wysłanie więcej niż jednej ramki, zawierającej wartości procesu, w wy-
Cykl przesyłania i akwizycji mierzonej wartości znaczonym momencie transmisji. Prawidłowa kolejność ramek komunika-
W przykładzie cykl pobierania wartości mierzonych i ich wysyła- tów jest zagwarantowana dzięki zastosowaniu bufora FIFO.
nia jest realizowany osobno w celu uniknięcia wahań momentów po- Jeżeli przesłania następują częściej niż cykle pomiarowe wartości
miaru wynikających z opóźnień, np. wskutek rozłączenia urządzeń. procesu, wtedy zaplanowana transmisja jest anulowana i cykl trans-
Dzięki temu po stronie serwera możliwa jest weryfikacja danych przy- misji jest wznawiany. Powinno się temu zapobiegać na etapie projek-
chodzących w prawidłowej sekwencji czasowej. towania – cykl przesyłania <= cyklu akwizycji wartości mierzonej.

ELEKTRONIKA PRAKTYCZNA 4/2011 117


AUTOMATYKA I MECHATRONIKA

Tabela 3. Działanie przy utracie połączenia


Nr Opis

Folder zawierający wszystkie bloki kodu istotne dla startu urzą-


1
dzenia
Rysunek 7. Okno nastaw programu Sinaut Micro
Ta funkcja przetwarza następujące zadania:
ustawianie trybów inicjalizacji modemu
Tabela 2. Dane procesu inkrementacja i kończenie cyklu przesyłania
Nr Etykieta Opis 2 inkrementacja i kończenie cyklu akwizycji wartości mierzonych
1. filllevel Poziom wypełnienia studzienki rewizyjnej symulowanie studzienki rewizyjnej
wymiana danych z programem użytkownika i realizacja buforowa-
2. pump_state Stan pompy w studzience rewizyjnej
nia danych ,,data_DB[]DB144]''
3. year
Po pobraniu wartości mierzonej z bufora tworzony jest rekord
4. month Data w momencie wykonywania pomiaru 3 danych za pomocą funkcji „B_add_record[FC8]”. Rekord danych
5. day zawiera dane symulowanego procesu oraz czas UTC.
6. hour Ta funkcja kopiuje najstarszy rekord danych z bufora mierzonych
7. minute Czas w momencie wykonywania pomiaru wartości i wpisuje do bufora danych „data_DB[]DB144]”. Następ-
4
nie inicjowane jest zadanie przesyłania tego rekordu danych do
8. second stacji centralnej.
Jeżeli ostatni rekord został pomyślnie przesłany do stacji cen-
5 tralnej, ta funkcja kasuje najstarszy rekord danych w buforze
wartości mierzonych.
Po zgłoszeniu alarmu ta funkcja przerywa bieżący cykl transmisji
6
i natychmiast wysyła komunikat alarmowy do stacji centralnej.
Ten blok danych globalnych zawiera bufor zmierzonych wartości.
7 Wszystkie zmienne wewnątrz tego bloku są zadeklarowane jako
nieulotne.
W tym bloku są zadeklarowane wszystkie zmienne potrzebne do
8
symulacji studzienki rewizyjnej.

Rozmiar pól w tablicy może być zmieniany i jest ograniczony


jedynie wielkością pamięci w sterowniku S7-1200. Przy zmianach
rozmiaru odpowiednie parametry należy wprowadzić do funkcji „B_
add_record[FC8]” w panelu 3. Po upływie cyklu transmisji z bufora
Rysunek 8. Użycie bufora FIFO dla zmierzonych wartości mierzonych wartości jest pobierany najstarszy rekord danych i ko-
piowany do globalnego bloku danych „data_DB[DB144]”. Dopiero po
Jeżeli cykl przesyłania jest równy cyklowi pomiarowemu , wtedy pomyślnym zakończeniu procesu przesyłania tego rekordu danych,
zawsze dokładnie jedna ramka zawierająca dane procesu jest przesy- następuje wykasowanie tego rekordu z bufora mierzonych wartości.
łana w zaplanowanym momencie.
Działanie przy utracie połączenia
Bufor mierzonych wartości Przerwanie połączenia GPRS lub awaria serwera nie ma znacze-
W buforze wartości zmierzonych można umieścić do 50 rekordów nia dla cyklu akwizycji mierzonych wartości. Cykl wysyłania prze-
danych. Te rekordy danych są pamiętane w pamięci nieulotnej.

Rysunek 10. Okno projektu z wykazem zmiennych: adresowanie


Rysunek 9. Okno bufora wartości zmierzonych zmiennych modemowych

118 ELEKTRONIKA PRAKTYCZNA 4/2011


Transfer danych za pomocą modemu GPRS w S7-1200

Tabela 4. Wykaz zmiennych modemowych Tabela 5. Skrypt archiwizujący


Nr Adresowanie Opis Nr Objaśnienie
BOOL, tylko do odczytu
MD720-3 jest dołączony do
MSC:[<stationname>]GPRSCon-
1. stacji centralnej (aktywne po-
nected
łączenie GPRS, poprawne dane
logowania)
BOOL, tylko do odczytu
sterownik jest S7-1200 połączony
ze stacją centralną (poprawne
MSC:[<stationname>]PLCCon-
2. połączenie między sterownikiem
nected
i modemem, sterownik reaguje
na ramki komunikatów stacji
centralnej)
BTE, tylko do odczytu, wartości
MSC:[<stationname>]SignalQu- 0 do 31
3.
ality Poziom sygnału w antenie GSM
urządzenia MD720-3
DWORD, tylko do odczytu
MSC:[<stationname>]BytesRe-
4. Zawartość licznika w MD720-3
ceived
zliczającego odebrane bajty
DWORD, tylko do odczytu
MSC:[<stationname>]BytesTran-
5. Zawartość licznika w MD720-3
smitted
zliczającego wysłane bajty
DWORD, tylko do odczytu
Zawartość licznika w MD720-3
6. MSC:[<stationname>]BytesTotal
zliczającego wysłane i odebrane
bajty
Ścieżka dostępu w WinCC flexible dla każdej zmiennej podlegającej
STRING, tylko do odczytu
1 archiwizacji. Umożliwi to późniejszy dostęp do wartości zmiennych
7. MSC:[<stationname>]Firmware Wersja firmware'u modemu
metodą „SmartTags”.
MD720-3 (np. 1.7.7)
Tutaj są dostępne wartości zmiennych. Wartości te zostaną zapa-
STRING, tylko do odczytu 2
miętane we własnych zmiennych skryptu.
8. MSC:[<stationname>]DeviceID Numer identyfikacyjny modemu Następuje generacja nazw plików *.csv. Elementami nazwy są
MD720-3 3 aktualna data oraz nazwa stacji, co umożliwi później przyporząd-
BOOL, tylko do zapisu kowanie odpowiedniego zestawu danych.
Aktualizuje wszystkie zmienne Wygenerowane nazwy plików są porównywane z nazwami istnie-
MSC:[<stationname>]RefreshVa-
9. skonfigurowane w kliencie OPC jących plików w katalogu archiwum. Jeżeli plik nie istnieje, to zo-
lues 4
Po ustawieniu jest automatycznie staje utworzony. W każdym przypadku plik .csv zostaje następnie
resetowany do wartości FALSE otwarty, aby umożliwić późniejszy zapis danych.
BOOL, tylko do zapisu Tworzony jest rekord danych zawierający, oddzielone średnikami,
Sprawdza połączenie ze sterow- 5
wartości „station”, “date”, “time”, “FillLevel” i „PumpState”.
nikiem S7-1200
MSC:[<stationname>]Refresh- W ostatnim kroku rekord danych jest zapisywany w otwartym
10. Zwraca zmienne modemowe 6
Status pliku i następnie plik zostaje zamknięty.
PLCConnected i GPRSConnected
Po ustawieniu jest automatycznie
resetowany do wartości FALSE Wizualizacja wartości procesów w kliencie OPC
Dla każdej stacji zdalnej utworzonej w programie SINAUT Mi-
biega bez zmian. Po wypełnieniu bufora następuje powtarzanie prób cro SC dostępne są w serwerze OPC zmienne modemowe (tabela
transmisji aż do ponownego pomyślnego zakończenia tej operacji. Na- 4), generowane systemowo. Ponadto, zmienne reprezentujące ste-
stępnie wysyłane są kolejno rekordy danych aż do opróżnienia bufora. rownik S7=1200 są dostępne dla wszystkich utworzonych stacji
Dopiero wtedy jest wznawiany normalny cykl transmisji. zdalnych.

REKLAMA

ELEKTRONIKA PRAKTYCZNA 4/2011 119


AUTOMATYKA I MECHATRONIKA

Tabela 5. Stacja zdalna (RS remote station) aktywnie wysyła Tabela 6. Stacja centralna (CS) aktywnie pobiera wartości
wartości procesu do stacji centralnej (CS central station) procesu ze stacji zdalnej (RS)
Nr Akcja Wolumen Nr Akcja Wolumen
Send data (RS ŕCS) (bajtów) Send the request (CS ŕRS) (bajtów)
Process values (user data) 12 OPC frame 9
1.
1. OPC frame 17 IP frame 20
IP frame 20 TCP frame 20
TCP frame 20
Send process data (RS ŕ CS)
Receive acknowledgement (CS ŕRS) Process values (user data) 12
6
OPC frame 2. OPC frame 17
2. 20
IP frame IP frame 20
20
TCP frame TCP frame 20
3. Razem 115 3. Razem 118

Tabela 7. Stacja centralna (CS) synchronizuje czas ze stacją


zdalną (RS)
Nr Akcja Wolumen
Send the time frame (CS ŕRS) (bajtów)
OPC frame 14
1.
IP frame 20
TCP frame 20
Send the acknowledgement (RS ŕ CS)
OPC frame 6
2.
IP frame 20
TCP frame 20
Rysunek 11. Okno projektu z wykazem zmiennych: adresowanie
zmiennych kontrolnych 3. Razem 100

Uaktualnianie zmiennych modemowych Dostęp do zmiennych kontrolnych na przykładzie


Nr 1 do 2: wartości są aktualizowane przy wszystkich możliwych klienta OPC OPC-Scout
transmisjach danych. W kolumnie „Item Names” widać zgodne z OPC adresowanie
Nr 3 do 6: wartości są aktualizowane co godzinę. Tego odstępu czasu zmiennych kontrolnych, takie samo jak stosowane w innych klien-
nie można zmienić. tach OPC. Stacja RS001 została utworzona w programie SINAUT Mi-
Nr 7 do 8: te wartości są transmitowane jednorazowo gdy stacja zdal- cro SC.
na loguje się do stacji centralnej.
Nr 9 do 10: te zmienne mogą być tylko zapisywane. Rozkaz READ zawsze Archiwizacja
zwraca wartość "0". Poza wizualizacją aktualnej wartości w kliencie OPC WinC flexi-
ble możliwa jest archiwizacja aktualnych wartości za pomocą skryptu
Dostęp do zmiennych modemowych na przykładzie VBA. Z tego względu bieżący datownik określający moment pomiaru
klienta OPC OPC-Scout jest przesyłany razem z wartościami procesu "filling level" i "pump
Na rysunku 10, w kolumnie „Item Names”, widać zgodne z OPC status".
adresowanie zmiennych modemowych, takie samo jak stosowane W programie WinCC flexible jest implementowany skrypt poka-
w innych klientach OPC. Stacja RS001 została utworzona w progra- zany w tabeli 5.
mie SINAUT Micro SC. Przedstawiony skrypt jest wywoływany przy każdej aktualizacji
wartości licznika sekundowego (będącego elementem przesyłanego
Zmienne kontrolne datownika). Dzięki temu skrypt zawiera informacje o strukturze fol-
Zmienne ze sterownika S7-1200 są adresowane w kliencie OPC derów i możliwych prefiksach w nazwach zmiennych. Umożliwia
następująco: to jego wykorzystanie w przypadku innych zmiennych i/lub innych
MSC:[<station_name>]DB1,<data_type><memory_address>. stacji.
Dla wartości zmiennopozyjnej o adresie DBD0 w S7-1200 należy
utworzyć następujący adres zgodny z OPC: Rozmiar transmisji danych
MSC:[RS001]DB1,REAL0 Dalej będzie pokazane, ile bajtów podlega przesłaniu w odpo-
Skrót “DB1” nie oznacza, że informacje pochodzą z lub powinny wiednich wariantach transmisji. Na podstawie tych informacji jest
zostać zapisane w bloku danych o numerze 1. możliwe oszacowanie miesięcznych kosztów zależnych od wybranej
Można zaadresować następujące typy danych: taryfy. Trzeba przy tym wziąć pod uwagę zasady zaokrąglania stoso-
B (byte) wane przez dostawcę. Np. powszechnie stosowaną regułą jest zaokrą-
W (word) glanie do 10 kB na połączenie (od zalogowania do wylogowania mo-
D (doubleword) demu) lub na godzinę, jeśli transfer był niższy.
CHAR (byte)
CHAR (byte) Komunikacja wzajemna
DINT (word, signed) Podczas komunikacji wzajemnej, tj. komunikacji między stacjami
REAL (floating point value) zdalnymi, wartości z pozycji Razem odpowiedniej tabeli trzeba po-
STRING (string with fixed length), np: MSC:[RS001] mnożyć przez „2”, ponieważ trzeba uwzględnić objętość danych dla
DB1,STRING30.12 obydwu kart SIM w modemach.
DT (date and time BCD format) Tomasz Starak

120 ELEKTRONIKA PRAKTYCZNA 4/2011

You might also like