Technika Napędowa
MICROMASTER 4
Porady & Wskazówki
Nr: 0015
Temat
Wymiana danych z komputerem PC przy
pomocy skryptów Microsoft Visual Basic
Opis
Przy pomocy niniejszego opisu przedstawimy użytkownikowi możliwość wymiany danych
pomiędzy komputerem PC z systemem operacyjnym Windows i przekształtnikami częstotliwości
z rodzin MICROMASTER 4 i SINAMICS G110. Przy czym transfer danych nie odbywa się przy
pomocy programów narzędziowych „STARTER“ lub „DriveMonitor“, ponieważ programy te nie
posiadają interfejsu do innych programów, jak np. LabView. Opis ten prezentuje sposób
bezpośredniej wymiany danych pomiędzy programem Windows i przekształtnikiem
czestotliwości przy pomocy skryptów Microsoft Visual Basic.
Typową aplikacją jest zautomatyzowane stanowisko testowe, przy którym komputer
przemysłowy (Industry PC - IPC) jest używany do sterowania regulacji i graficznej prezentacji
wyników testów. W tym przypadku np. program LabView powinien sterować przekształtnikiem,
wymieniać z nim dane i odpowiednio do wymagań przetwarzać i prezentować wyniki.
M
Stanowisko
testowe
IPC
MICROMASTER
440
Sprzężenie
szeregowe
Rys. 1.0.
Budowa przykładowego stanowiska testowego
Dla tego i podobnych zastosowań rodzi się pytanie o możliwości komunikacyjne pomiędzy
komputerem PC i przekształtnikiem MICROMASTER 4 ?
Standardowo wiekszość komputerów PC/ IPC dysponuje portem szeregowym RS232.
Przekształtniki MICROMASTER 4 (MM420, MM430, MM440) posiadają dwa niezależne porty
komunikacyjne (złącze BOP – pod panelem obsługi BOP i złącze COM – na listwie zaciskowej),
natomiast przekształtniki SINAMICS G110 mają do dyspozycji tylko jeden port komunikacyjny.
Do wyżj wymienionyc przekształtników jako opcje dostępne są zestawy do połaczenia z
komputerem PC. Taki zestaw jest nakładany w miejsce panela obsługi BOP (złącze BOP) i
Data 07.2004
1
Nr: 0015
Technika Napędowa, MICROMASTER 4
Porady & Wskazówki
moze służyć jako standardowy port szeregowy RS232. W zestawie znajduje się również kabel
połączeniowy pomiędzy PC i MM4 (Null-Modem RS232 9-SUB).
Do komunikacji MM4 przez złącze BOP lub COM wykorzystywany jest telegram USS, który jest
zaimplementowany również w innych rodzinach napędów firmy SIEMENS.
Dla nawiązania tą drogą komunikacji pomiędzy przekształtnikiem i innymi programami windows
należy uwzględnić następujące dwa punkty:
1. Zależnie od używanego języka programowania trzeba posiadać odpowiedni sterownik
(np. element sterujący ActivX), który może wysyłać i odbierać dane przez port
szeregowy komputera PC. Program windows (np. LabView) przekazuje sterownikowi
dane do wysyłki lub sterownik udostępnia odebrane dane dla programu. Zadaniem tego
sterownika jest tylko przejęcie wymiany danych przez port szeregowy, przy czym
przenoszone dane nie są sprawdzane przez sterownik!
2. Program windows / użytkownika jest odpowiedzialny za zawartość danych
przekazywanych do sterownika i przetwarzanie odebranych danych. W odniesieniudo
przekształtnika MM4 oznacza to, że wewnątrz programu musi zostać wygenerowany
ważny telegram USS, lub program musi odpowiednio przetworzyć dane użytkowe z
odebranego telegramu USS. Tak więc program jest odpowiedzialny za np. stworzenie
waznego słowa sterowania, normalizację wartości zadanej lub przekazywanie wartości
parametrów.
Bardzo łatwą metodą do realizacji dostępu do przekształtnika MM4 przez port szeregowy
komputera jest użycie elementu sterującego ActivX i programowanie skryptów VB. Możliwość ta
jest wykorzystywana w przykładowej aplikacji stanowiska testowego wewnątrz platformy
LabView komputera IPC.
W niżej przedstawionych przykładowych skryptach VB w ten sam sposób realizowane jest:
- załączanie / wyłączanie przekształtnika MM4,
- transfer
częstotliwości zadanej,
- odczyt
wartości dowolnych parametrów.
Przedstawione tu skrypty VB ograniczają się ważniejszych funkcji i komunikatów jednak w razie
potrzeby użytkownik może w zalezności od aplikacji wprowadzić odpowiednie zmiany lub
rozszerzenia skryptów.
Ważne ustawienia parametrów
Wymaganiem wstępnym dla bezbłędnej komunikacji pomiędzy PC i MICROMASTER 4 /
SINAMICS G110 jest ustawienie jednakowych paramtrów dla pracy portu szeregowego.
Konfiguracja portu szeregowego PC (np. COM1, COM2) następuje w przykładowych skryptach
poprzez wywołanie procedury „Init“. Wewnątrz tej procedury najpierw użytkownik jest pytany o
numer i szybkość transmisji używanego portu COM. Wszystkie pozostałe parametry portu są
ustawione na stałe.
Konfiguracja portu szeregowego przekształtnika MM4 (złącze BOP) odbywa się przez
odpowiednie ustawienie parametrów przez użytkownika – patrz następująca tabela.
Wskazówka:
Zaleca się najpierw przywrócić ustawienia fabryczne przekształtnika, a nastepnie przeprowadzić
szybkie uruchamianie i dopiero potem odpowiednio ustawić dalsze parametry aplikacyjne.
Data 07.2004
2
Nr: 0015
Technika Napędowa, MICROMASTER 4
Porady & Wskazówki
Wartość
parametru
Znaczenie Wskazówki
P0700.0 = 4
P0700: Wybór źródła sterowania
4: Złącze BOP
Sygnały sterujace np. ZAŁ/WYŁ1 będą
podawane przez złącze BOP. Wymagane dla
skryptu „MM4_sterowanie_napędem“
P1000.0 = 4
P1000: Wybór źródła zadawania częstotliwości
4: Złącze BOP
Częstotliwość zadana będzie podawana przez
złącze BOP. Wymagane dla skryptu
„MM4_sterowanie_napędem“
P2000.0 = 50
P2000: Częstotliwość odniesienia
50 Hz = 100% = 4000Hex
W przykładowych skryptach wartość zadana
częstoliwości jest normalizowana na
50Hz=4000Hex.
P2010.1 = 6
P2010.1: Szybkość transmisji złącza BOP
np. 6 = 9600 bps
Ustala szybkość transmisji dla złącza BOP
przekształtnika MM4.
P2011.1=0
P2011.1: Adres sieciowy USS złącza BOP
0
Ustala adres sieciowy USS dla złącza BOP
przekształtnika MM4.
P2012.1=2 P2012.1:
Ilość słów PZD złącza BOP
2: wysyłanie / odbiór 2 słów PZD
Ustala ilość słów PZD w telegramie USS dla
złącza BOP przekształtnika MM4.
P2013.1=4
P2013.1: Ilość słów PKW złącza BOP
4: wysyłanie / odbiór 4 słów PKW
Dal przykładowych skryptów ilość słów PKW
telegramu USS należy ustawić na 4.
P2014.1=0
P2014.1: Czas kontrolny tel. USS zł. BOP
0: brak monitoringu
Ustawienie na 0 deaktywuje monitoring (bo nie
występuje cykliczna wymiana danych).
Dalsze objaśnienia
Skrypt Visual Basic
Język skryptowy VB-Script jest łatwym i ogólnie dostępnym językiem programowania, który
zawiera pewną część funkcji języka Visual Basic. Jednak przy pomocy VB-Script można
tworzyć również złożone programy.
Skrypty VB moga być uruchamiane pod systemem Windows jako normalne pliki wykonywalne
lub mogą być wykorzystywane wewnatrz innych programów. Wymaganiem dla wykonywania
skryptów VB jest instalacja Windows-Scripting-Host (WSH V.5.6 lub wyzej). Host WSH nalezy
obecnie do standardowej instalacji systemów operacyjnych Windows 2000 i XP. Po pomyślnej
instalacji w katalogu Windows można znaleźć plik „cscript.exe“. Proszę pamiętać, że częściowo
dla ochrony przed wirusami wykonywanie skryptów VB może być zablokowane.
W sytemie Windows skrypty mogą być tworzone lub przerabiane przy pomocy prostego edytora
(np. Notatnik). Dalsze informacje odnośnie rozkazów i składni skryptów VB można zlaeźć w
pliku pomocy „Script56.CHM“ w archiwum ZIP dołączonym do tego opisu.
Element sterujący ActivX
Wewnątrz skryptów VB dostęp do portu szeregowego realizowany jest przy pomocy elementu
sterującego ActiveX.
Jako element sterujący ActivX wykorzystywana jest 30-dniowa wersja testowa – patrz:
http://www.activexperts.com/activcomport/ .
Po dopasowaniu skryptów VB można wykorzystać również inne elementy sterujące np.
Microsoft Object MSComm z pakietu Visual Basic Professional lub wersji Enterprise.
Data 07.2004
3
Nr: 0015
Technika Napędowa, MICROMASTER 4
Porady & Wskazówki
Protokół USS
Protokół USS (Universelles Serielles Schnittstellen-Protokoll) służy do wymiany danych w
układzie Master-Slave. Pełną specyfikację sieci USS można znaleźć w archiwum ZIP
dołączonym do tego opisu“.
Następująca ilustracja przedstawia zasadniczą strukturę telegramu USS.
n bajtów
danych użytkowych
ADR
STX
LGE
PKW
PZD
BCC
1 Bajt
Rys. 2 – Struktura telegramu USS
STX:
1 Bajt, stały znak startowy ASCII: 02 Hex
LGE:
1 Bajt, zawiera długość telegramujako liczbę binarną, do długości
telegramu liczą się tylko dane użytkowe (PKW, PZD), bajt adresu
(ADR) i znak kontrolny (BCC)
ADR:
1 Bajt, adres urządzenia Slave i typ telegramu
Dane użytkowe:
maks. 252 bajty danych użytkowych, blok danych uzytkowych dzieli się
na dwa obszary: obszar wartości parametrów (PKW) i obszar danych
procesowych (PZD), ilość słów w obszarach PKW i PZD musi być
zgodna z ustawieniami w przekształtniku MM4.
BCC:
1 Bajt, znak kontrolny telegramu, wynik operacji EXOR bajtów
telegramu
Obszar PKW
Obszar PKW służy do obsługi wartosci parametrów. W obszarze tym przy pomocy tzw.
„zapytań” i „odpowiedzi” obsługiwany jest dostęp przez port komunikacyjny USS do parametrów
znajdujących się w urządzeniu, np. odczyt i zapis parametrów.
Data 07.2004
4
Nr: 0015
Technika Napędowa, MICROMASTER 4
Porady & Wskazówki
Obszar PKW dzieli się dalej na następujące elementy:
PKE
1 słowo, służy do identyfikacji żądań mastera lub odpowiedzi
slave, zawiera również numer parametru przekształtnika
Bit 0..10:
Numer parametru (PNU)
Bit 11:
Raport o stanie zmiany parametru
Bit 12-15:
Identyfikator typu żądania lub odpowiedzi
IND (Indeks)
1 słowo,
Bit 0..7:
Indeks parametru
Bit 8..9:
Rozszerzenie dla tekstów
Bit 10..11:
Nie używane
Bit 12..15:
Rozszerzenie PNU dla parametrów > 2000
PWE-Element:
3/ 4 słowa lub zmienna ilość, w obszarze tym przenoszone są
informacje należące do zapytań lub odpowiedzi, jak np.
wartości parametrów, teksty lub opisy parametrów.
Obszar PZD
Obszar PZD zawiera sygnały potrzebne dla automatyzacji sterowania pracą napędu:
-
Słowo(a) sterowania i wartości zadane
od mastera do slave
-
Słowo(a) stanu i wartości aktualne
od slave do Mastera.
W obszrze tym wymieniane są dane procesowe pomiędzy masterem i urządzeniami slave.
Ilość słów obszaru PZD jest określana przez liczbę elementów PZD. W przeciwieństwie do
obszaru PKW, który może mieć zmienną długość, obszar PZD musi mieć zawsze stałą długość
pomiędzy partnerami komunikacyjnymi! Maksymalna ilość słów PZD na telegram jest
ograniczona do 16 słów. Jeśli w obszarze danych użytkowych mają być przenoszone tylko dane
PKW, wtedy można ustawić ilość słów PZD na 0!
Zależnie od kierunku przesyłu w PZD1 przekazywane jest słowo sterowania lub słowo stanu. W
PZD 2 odpowiednio do kierunku przesyłu przekazywana jest główna wartość zadanan lub
główna wartość aktualna. W kolejnych danych procesowych PZD3 ... PZDn mogą być
przekazywane dalsze wartości zadane (aktualne) lub słowa sterowania (stanu). Struktura słów
sterowania i stanu jest zdefioniowana na stałe (analogicznie jak w przypadku komunikacji przez
sieć PROFIBUS).
Przykładowe skrypty VB
Odpowiednio do konfiguracji z przykładowej aplikacji stanowiska testowego, dostępne są 3
przykłady skryptów. Wszystkie te skrypty zostały pomyslnie przetestowane z przekształtnikiem
MM4. Skrypty te mogą być dalej zmodyfikowane odpowiednio do potrzeb aplikacji lub mogą być
włączone do innych projektów.
Wskazówka!
W przedstawianych tu przykładach nie występuje cykliczna wymiana telegramów pomiędzy PC
(USS- Master) i MM4 (USS- Slave)!
Data 07.2004
5
Nr: 0015
Technika Napędowa, MICROMASTER 4
Porady & Wskazówki
Data 07.2004
6
Nr: 0015
W celu użycia przykładowych skryptów należy wykonać poniższe kroki:
1. Rozpakować archiwum ZIP „0015_MicrosoftVBScript“. Archiwum zawiera przykładowe
skrypty, element sterujący ActivX, plik pomocy do języka VB-Script i specyfikację
protokołu USS.
2. Zainstalować element sterujący ActivX firmy ActiveExpert. W tym celu uruchomić
Setup.exe w katalogu „ActivX-Steuerelement“.
3. Uruchomić poszczególne skrypty VB przez dwukrotne kliknięcie na odpowiednim pliku.
Przykład 1: MM4_sterowanie_napędem.vbs
Jest to przykładowy skrypt do sterowania przekształtnika MM4 przez port szeregowy PC
przy użyciu telegramu USS. Przy pomocy tego skryptu można załączać / wyłączać
przekształtnik i podawać dla niego wartość zadaną częstotliwości.
Przykład 2: MM4_odczyt_parametrów.vbs
Skrypt ten służy do odczytu i wyświetlania aktualnych wartości parametrów przekształtnika.
Wskazówka:
Wartości parametrów w formacie U32 (BICO) są przez przykładowy skrypt prawidłowo
odczytywane jednak nie są właściwie wyświetlane. Powodem tego jest brak różniących się
identyfikatorów odpowiedzi dla wartości zmiennoprzecinkowych Float i U32 (BICO). Jednak
możliwa jest odpowiednia modyfikacja skryptu tak, aby użytkownik podawał numer
parametru, a potem jego typ. Wtedy program mógłby odpowiednio przedstawić otrzymaną
odpowiedź. Ten przykładowy skrypt nie oferuje jednak tej funkcjonalności.
Przykład 3: MM4_archiwizacja_parametrów.vbs
Przykład ten mozna wykorzystać do odczytu i archiwizacji wartości parametrów. Wystarczy
podać żądane numery parametrów, których wartości mają być archiwizowane, a następnie
wprowadzić czas rozpoczecia i zakończenia archiwizacji. Wtedy skrypt samodzielnie
rozpocznie odczyt parametrów w podanych odstępach czasowych. Odczytane wartości
parametrów są zapisywane w pliku tekstowym z podanym czasem odczytu.