INFORMATOR TECHNICZNY WONDERWARE
Informator Techniczny nr 75
18-11-2004
Odczytywanie wartości wielu rejestrów za pomocą jednej zmiennej typu
IOMessage
Opisany poniżej sposób umożliwia przesłanie poprzez program komunikacyjny szeregu kolejnych
rejestrów, przekształceniu ich na jedną zmienną tekstową typu IOMessage tworząc blok rejestrów, a
następnie za pomocą funkcji InTouch a odczytanie poszczególnych, interesujących nas wartości
rejestrów bez używania dodatkowych zmiennych.
Metoda ta może być z powodzeniem stosowana dla zaoszczędzenia zmiennych w przypadku, gdy
interesujące nas wartości nie muszą być logowane historycznie i nie jest potrzebna zmiana ich wartości
z poziomu oprogramowania InTouch.
Przykład
1. Zapisywanie do zmiennej typu IOMessage rejestrów R10 do R15 tworząc blok.
Taki zapis umożliwia zapisanie do zmiennej
IO Message wartości kolejnych 5 rejestrów.
W zależności od potrzeby zmienna IO
Message może mieć długość maksymalnie
131 znaków.
2. Symulacja tworzenia zmiennej IOMessage składającej się z trzech kolejnych rejestrów
sterownika.
ASTOR Sp. z o.o. e-mail: wonderware1@astor.com.pl
tel.: 012 428-63-30
Dział Oprogramowania Przemysłowego http://www.astor.com.pl
fax: 012 428-63-09
ul. Smoleńsk 29, 31-112 Kraków
Jak widać na podstawie stałej długości zmiennej IOMessage oraz długości poszczególnych rejestrów
możemy określić, na jakiej pozycji rozpoczyna się i na jakiej kończy się obszar przypisany konkretnemu
rejestrowi.
Aby z tak utworzonej zmiennej odczytać interesujące nas obszary, należy posłużyć się kombinacją
dwóch funkcji:
StringToReal przekształca ciąg znaków na odpowiadającą mu liczbę rzeczywistą (zmiennoprzecinko-
wą).
Składnia:
RealResult=StringToReal("Text");
Parametry funkcji:
"Text" łańcuch znaków lub zmienna tekstowa.
StringMid funkcja ma za zadanie zwrócić liczbę znaków określoną parametrem Chars, począwszy od
znaku określonego parametrem StartChar.
2
Składnia:
MessageResult=StringMid("Text",StartChar,Chars);
Parametry funkcji:
"Text" łańcuch znaków lub zmienna tekstowa,
StartChart liczba, która określa miejsce rozpoczęcia odczytu ciągu znaków. Może być nią liczba lub
dowolna zmienna całkowita,
Chars liczba znaków do odczytania. Może być nią liczba lub dowolna zmienna całkowita.
3. Odczytywanie poszczególnych obszarów zmiennej IOMessage i przekształcanie ich na
zmienną typu Real.
W celu wyświetlenia wartości interesujących nas rejestrów należy w polu wyrażenie, dla określonego
obiektu InTouch u, wpisać kombinację funkcji opisanych powyżej. Taka kombinacja funkcji powoduje
przekształcenie interesującego nas obszaru zmiennej IOMessage w wartość rzeczywistą.
Wycięcie określonego fragmentu zmiennej
Zamiana fragmentu zmiennej
typu STRING
STRING na REAL
4. Przypisanie do dowolnego obiektu.
3
Tego typu rozwiązanie może być stosowane z różnymi obiektami przy założeniu, że nie będzie potrzeby
logowania historycznego. W takim przypadku w miejscu wyrażenie wpisujemy wyżej opisaną
kombinację funkcji.
Uwagi dodatkowe
1. Powyższy sposób funkcjonuje poprawnie w powiązaniu z protokołem DDE oraz NETDDE.
2. Przedstawiona metoda stworzona była głównie z myślą przełożenia jej możliwości na zaoszczędzenie
zmiennych typu dyskretnego. W takim przypadku w stosunkowo łatwy sposób można zaoszczędzić
kilka/kilkadziesiąt zmiennych, które często stają się przeszkodą w wyborze odpowiedniej licencji,
zwłaszcza w małych projektach.
3. Jeżeli chodzi o zmienne typu analogowego, istnieje możliwość ich zapisywania i przetwarzania tą
metodą, bez względu na ich długość. Wymogiem jest znajomość zakresu danej zmiennej, a następnie
do danego rejestru dodać liczbie o rząd większą od zakresu danej zmiennej, co zapewni stałą dłu-
gość odczytywanego obszaru, np.: wiedząc, że zakres pewnej zmiennej to 0 do 99999, do rejestru
dodajemy 100000, tym samym długość całego wysyłanego bloku będzie miała zawsze 6 miejsc, a w
InTouch u odczytujemy wartość od 2 do 6 miejsca otrzymując wartość zmiennej, która nas interesuje.
4
Wyszukiwarka
Podobne podstrony:
Informator techniczny Wonderware2Informator techniczny Wonderware1Informator techniczny Wonderware0Informator techniczny Wonderware 1Informator techniczny Wonderware6Informator techniczny Wonderware1Informator techniczny Wonderware0Informator techniczny Wonderware6Informator techniczny Wonderware0Informator techniczny Wonderware4Informator techniczny Wonderware9Informator techniczny Wonderware0Informator techniczny Wonderware6Informator techniczny Wonderware9Informator techniczny Wonderware9Informator techniczny Wonderware 2Informator techniczny Wonderware9Informator techniczny Wonderware7Informator techniczny Wonderware4więcej podobnych podstron