S7-1200_cz.8.pdf

(1446 KB) Pobierz
Elektronika Praktyczna
AutomAtykA i mechAtronikA
S7-1200
Instrukcje rozszerzone
oraz umożliwiające operacje
na znakach i łańcuchach
Kontynuujemy rozpoczęty opis instrukcji progra-
mowania obsługiwanych przez sterowniki S7-1200.
W  tym miesiącu skupiamy się na prezentacji
i  omówieniu instrukcji rozszerzonych oraz umoż-
liwiających wykonywanie operacji na znakach
i  łańcuchach.
• T_ADD dodaje wartości typu TIME i DTL: (TIME + TIME =
TIME) lub (DTL + TIME = DTL).
• T_SUB odejmuje wartości typu TIME i DTL: (TIME – TIME =
TIME) lub (DTL – TIME = DTL).
• T_DIFF wyznacza różnicę między dwoma wartościami typu DTL
jako wartość typu TIME: DTL – DTL = TIME.
Możliwości instrukcji programowania sterowników coraz bardziej
zbliżają się do mechanizmów dostępnych do niedawna wyłącznie dla
programistów piszących aplikacje np. w języku C.
Typ danych
Rozmiar
(bity)
Zakres poprawnych wartości
T#–24d_20h_31m_23s_648ms
do T#24d_20h_31m_23s_647ms
–2,147,483,648 ms
do +2,147,483,647 ms
Str uktura dan ych DTL
Year (rok): UINT 16
32
TIME
Pamięta-
ny jako
Instrukcje rozszerzone do obsługi zegara i kalendarza
Instrukcje dotyczące daty i czasu
Instrukcje dotyczące daty i czasu są stosowane do programowania obli-
czeń związanych z kalendarzem i zegarem.
• T_CONV zamienia typ danej czasu: (TIME na DINT) lub (DINT na
TIME).
1970 do 2554
Month (miesiąc): USINT 8
1 do 12
Day (dzień): USINT 8
1 do 31
Weekday (dzień tygodnia):
USINT
8
1=Sunday (niedziela)
do 7=Saturday (sobota)
136
ELEKTRONIKA PRAKTYCZNA 8/2010
AutomAtykA i mechAtronikA
677320718.105.png 677320718.116.png 677320718.127.png 677320718.138.png 677320718.001.png 677320718.012.png 677320718.023.png
S7-1200
Hour (godzina): USINT 8
0 do 23
Typ
danych Opis
IN1 IN DTL Wartość typu DTL
IN2 IN DTL Wartość typu DTL jaka ma być odjęta
OUT OUT TIME
Minute (minuta): USINT 8
0 do 59
Second (sekunda): USINT 8
0 do 59
Nanoseconds (nanosekun-
dy): UDINT
32
0 do 999999999
Różnica typu TIME
LAD
FBD
T_DIFF ( Time Difference ) odejmuje od wartości wejściowej IN1
typu DTL wartość wejściową IN2 typu DTL. Parametr OUT stanowi
wynik odejmowania w formacie TIME.
• DTL – DTL = TIME
Parametr Typ parametru Typ danych Opis
IN IN DINT, TIME Wartość wejściowa typu
TIME lub DINT
OUT OUT DINT, TIME Przekonwertowana war-
tość DINT lub TIME
T_CONV ( Time Convert ) zamienia typ danej TIME na typ danej
DINT lub odwrotnie – typ danej DINT na typ danej TIME.
Kody warunkowe
ENO = 1 oznacza, że nie wystąpił żaden błąd.
ENO = 0 oraz OUT = 0 oznacza błędy:
• Nieprawidłowa wartość DTL
• Nieprawidłowa wartość TIME
Instrukcje dotyczące zegara
Instrukcje dotyczące zegara stosuje się do nastawiania i odczytywa-
nia zegara systemowego PLC. Do przedstawiania wartości czasu i daty jest
stosowany format DTL.
LAD
FBD
Struktura danych DTL Rozmiar Zakres poprawnych
wartości
Year (rok): UINT 16 bitów 1970 do 2554
Month (miesiąc): USINT 8 bitów 1 do 12
Day (dzień): USINT 8 bitów 1 do 31
Weekday (dzień tygodnia): USINT 8 bitów 1=Sunday (niedziela)
do 7=Saturday (sobota)
Hour (godzina): USINT 8 bitów 0 do 23
Minute (minuta): USINT 8 bitów 0 do 59
Second (sekunda): USINT 8 bitów 0 do 59
Nanoseconds (nanosekundy): UDINT 32 bity 0 do 999999999
Parametr Typ parametru Typ danych Opis
IN1 IN DTL, TIME Wartość typu DTL lub TIME
IN2 IN TIME Wartość typu TIME jaka ma
być dodana
OUT OUT DTL, TIME Suma typu DTL lub TIME
T_ADD ( Time Add ) dodaje do wartości wejściowej IN1 (typu DTL
lub TIME) wartość wejściową IN2 typu TIME. Parametr OUT stanowi
wynik sumowania w formacie DTL lub TIME. Możliwe są operacje na
dwóch typach danych, jak to pokazano poniżej:
• TIME + TIME = TIME
• DTL + TIME = DTL
LAD
FBD
Para-
metr
Typ pa-
rametru
Typ da-
nych
Opis
LAD
FBD
IN IN DTL
Czas jaki ma być nastawiony na zega-
rze systemowym PLC
RET_VAL OUT INT
Kod warunkowy po wykonaniu in-
strukcji
Parametr Typ parametru Typ danych Opis
IN1 IN DTL, TIME Wartość typu DTL lub TIME
IN2 IN TIME Wartość typu TIME jaka ma
być odjęta
OUT OUT DTL, TIME Różnica typu DTL lub TIME
T_SUB ( Time Subtract ) odejmuje od wartości wejściowej IN1
(typu DTL lub TIME) wartość wejściową IN2 typu TIME. Parametr
OUT stanowi wynik odejmowania w formacie DTL lub TIME. Moż-
liwe są operacje na dwóch typach danych, jak to pokazano poniżej:
• TIME – TIME = TIME
• DTL – TIME = DTL
WR_SYS_T ( Write System Time ) nastawia czas na zegarze PLC
zgodnie z wartością parametru IN typu DTL. Ta wartość czasu nie
uwzględnia lokalnej strefy czasowej ani terminów obowiązywania
czasu letniego.
LAD
FBD
Parametr Typ para-
metru
Typ
danych
Opis
LAD
FBD
RET_VAL OUT INT Kod warunkowy po wykonaniu
instrukcji
OUT OUT DTL Bieżący czas systemowy PLC
RD_SYS_T ( Read System Time ) odczytuje bieżący czas systemowy
z PLC. Ta wartość czasu nie uwzględnia lokalnej strefy czasowej ani
terminów obowiązywania czasu letniego.
ELEKTRONIKA PRAKTYCZNA 8/2010
137
Parametr Typ para-
metru
677320718.034.png 677320718.045.png 677320718.056.png 677320718.061.png 677320718.062.png 677320718.063.png 677320718.064.png 677320718.065.png 677320718.066.png 677320718.067.png 677320718.068.png 677320718.069.png 677320718.070.png 677320718.071.png 677320718.072.png 677320718.073.png 677320718.074.png 677320718.075.png 677320718.076.png 677320718.077.png 677320718.078.png 677320718.079.png 677320718.080.png 677320718.081.png 677320718.082.png 677320718.083.png 677320718.084.png 677320718.085.png 677320718.086.png 677320718.087.png 677320718.088.png 677320718.089.png 677320718.090.png 677320718.091.png 677320718.092.png 677320718.093.png 677320718.094.png 677320718.095.png 677320718.096.png 677320718.097.png 677320718.098.png 677320718.099.png 677320718.100.png 677320718.101.png 677320718.102.png 677320718.103.png 677320718.104.png 677320718.106.png 677320718.107.png 677320718.108.png 677320718.109.png 677320718.110.png 677320718.111.png 677320718.112.png 677320718.113.png 677320718.114.png
AutomAtykA i mechAtronikA
LAD
FBD
wyjścia. S_CONV jest przez to prostsza, ale mniej elastyczna niż in-
strukcje STRG_VAL i VAL_STRG.
S_CONV (konwersja łańcucha na liczbę)
Parametr Typ parametru Typ danych Opis
RET_VAL OUT INT Kod warunkowy po wykonaniu
instrukcji
OUT OUT DTL Czas lokalny
RD_LOC_T ( Read Local Time ) odczytuje bieżący czas lokalny PLC
w formacie DTL.
• Czas lokalny jest obliczany na podstawie strefy czasowej oraz ter-
minów obowiązywania czasu letniego wprowadzonych podczas
konigurowania zegara CPU.
• Koniguracja strefy czasowej polega na ustaleniu przesunięcia czasu
w stosunku do czasu uniwersalnego (UTC).
• Koniguracja czasu letniego polega na wprowadzeniu miesiąca,
tygodnia i dnia, od kiedy rozpoczyna się czas letni.
• Koniguracja czasu standardowego również polega na wprowa-
dzeniu miesiąca, tygodnia i dnia, od kiedy rozpoczyna się czas
standardowy.
• Przesunięcie związane z czasem letnim zawsze jest odniesione
do czasu systemowego. To przesunięcie stosuje się tylko w czasie
obowiązywania czasu letniego.
Parametr Typ pa-
rametru
Typ danych
Opis
IN IN
STRING
Wejściowy łań-
cuch znaków
OUT OUT
STRING, SINT, INT, DINT, USINT,
UINT, UDINT, REAL
Wyjściowa war-
tość liczbowa
Konwersja łańcucha IN rozpoczyna się od pierwszego znaku i jest kon-
tynuowana aż do osiągnięcia końca łańcucha lub napotkania pierw-
szego znaku, który nie jest cyfrą od „0” do „9”, „+”, „–” lub „.”. Wynik
jest zapisywany w miejscu określonym jako parametr OUT. Jeżeli war-
tość liczby wyjściowej nie leży w zakresie określonym przez typ danej
OUT, to parametr OUT przyjmuje wartość 0 i ENO jest ustawiane na
FALSE. W przeciwnym przypadku OUT zawiera prawidłowy wynik,
a ENO przyjmuje wartość TRUE.
Zasady jakie spełnia format łańcucha wejściowego:
• Jeżeli w łańcuchu IN występuje punkt dziesiętny, to musi być
użyty znak „.”.
• Przecinki „,” jako separatory tysięcy użyte po lewej stronie punktu
dziesiętnego mogą być stosowane i są ignorowane.
• Wiodące spacje są ignorowane.
• Obsługiwana jest tylko reprezentacja stałoprzecinkowa. Znaki „e”
i „E” nie są rozpoznawane jako symbole zapisu wykładniczego.
Kody warunkowe
ENO = 1 oznacza, że nie wystąpił żaden błąd. ENO = 0 oznacza,
że wystąpił błąd, a kod warunkowy jest określony przez parametr wyj-
ściowy RET_VAL:
S_CONV (konwersja liczby na łańcuch)
RET_VAL
(W#16#....)
Parametr Typ para-
metru
Typ danych
Opis
Opis
STRING, SINT, INT, DINT, USINT,
UINT, UDINT, REAL
Wejściowa war-
tość liczbowa
IN IN
0000
Brak błędu
Wyjściowy łań-
cuch znaków
8080
Czas lokalny nie jest dostępny
OUT OUT
STRING
8081
Niepoprawna wartość roku
8082
Niepoprawna wartość miesiąca
Liczba wejściowa IN całkowita, całkowita bez znaku lub zmienno-
przecinkowa jest zamieniana na odpowiadający jej ciąg znaków OUT.
Zanim konwersja zostanie wykonana, parametr OUT musi zawierać
wzór łańcucha. Wzór łańcucha składa się z maksymalnej długości
łańcucha podanej w pierwszym bajcie, bieżącej długości łańcucha
w drugim bajcie i bieżących znaków w kolejnych bajtach. Łańcuch
powstały w wyniku konwersji zastępuje znaki łańcucha wzorcowego
OUT począwszy od pierwszego znaku oraz uaktualnia wartość bieżą-
cej długości łańcucha. Bajt zawierający maksymalną długość łańcu-
cha nie jest zmieniany.
To, ile znaków jest zastąpionych zależy od typu danej parametru
wejściowego IN i jego wartości. Liczba zastąpionych znaków musi się
zmieścić w wyspecyikowanej w parametrze OUT długości łańcucha.
Maksymalna długość łańcucha określona w pierwszym bajcie łańcu-
cha wzorcowego OUT powinna być większa lub równa spodziewanej
liczbie konwertowanych znaków.
W poniższej tabeli przedstawiono maksymalne możliwe długości
łańcuchów w przypadku różnych obsługiwanych typów danych.
8083
Niepoprawna wartość dnia
8084
Niepoprawna wartość godziny
8085
Niepoprawna wartość minuty
8086
Niepoprawna wartość sekundy
8087
Niepoprawna wartość nanosekund
80B0
Uszkodzenie zegara czasu rzeczywistego
Instrukcje konwersji łańcuchów na liczby i liczb na
łańcuchy
Za pomocą następujących instrukcji można dokonać konwersji
łańcucha na wartość liczbową lub wartości liczbowej na łańcuch:
• S_CONV dokonuje konwersji (łańcucha liczbowego na wartość
liczbową) lub (wartości liczbowej na łańcuch liczbowy).
• STRG_VAL dokonuje konwersji łańcucha liczbowego na wartość
liczbową z opcjami formatowania.
• VAL_STRG dokonuje konwersji wartości liczbowej na łańcuch
liczbowy z opcjami formatowania.
LAD
FBD
Typ
danej
IN
Maksymalna licz-
ba przekonwerto-
wanych znaków
w łańcuchu OUT
Całkowita długość łańcucha
łącznie z bajtami określają-
cymi długość maksymalną
i bieżącą łańcucha
Przykład
USINT 3
255
5
SINT 4
–128
6
UINT 5
65535
7
S_CONV ( String Convert ) zamienia łańcuch znaków na odpowia-
dającą mu wartość liczbową lub wartość liczbową na odpowiadający
jej łańcuch znaków. W instrukcji S_CONV nie ma opcji formatowania
INT 6
–32768
8
UDINT 10 4294967295
12
DINT 11 –2147483648
13
138
ELEKTRONIKA PRAKTYCZNA 8/2010
677320718.115.png 677320718.117.png 677320718.118.png 677320718.119.png 677320718.120.png 677320718.121.png 677320718.122.png 677320718.123.png 677320718.124.png 677320718.125.png 677320718.126.png 677320718.128.png 677320718.129.png 677320718.130.png 677320718.131.png 677320718.132.png 677320718.133.png 677320718.134.png 677320718.135.png 677320718.136.png 677320718.137.png 677320718.139.png 677320718.140.png 677320718.141.png 677320718.142.png 677320718.143.png 677320718.144.png 677320718.145.png 677320718.146.png 677320718.147.png 677320718.148.png
S7-1200
Zasady jakie spełnia format łańcucha wyjściowego:
• Wartości wpisywane do parametru OUT nie mają wiodącego zna-
ku +.
• Stosowana jest reprezentacja stałoprzecinkowa (bez zapisu wy-
kładniczego).
• W przypadku gdy parametr IN jest typu REAL, znak kropki „.”
pełni funkcję punktu dziesiętnego.
Zasady konwersji za pomocą instrukcji STRG_VAL:
• Jeżeli jako punkt dziesiętny jest stosowany znak kropki „.”, to
przecinki „,” po lewej stronie punktu dziesiętnego są traktowane
jako separatory tysięcy. Te przecinki są dozwolone i ignorowane.
• Jeżeli jako punkt dziesiętny jest stosowany znak przecinka „,”, to
kropki „.” po lewej stronie tego przecinka są traktowane jako sepa-
ratory tysięcy. Te kropki są dozwolone i ignorowane.
• Wiodące spacje są ignorowane.
Instrukcja STRG_VAL
Instrukcja VAL_STRG
LAD
FBD
LAD
FBD
Parametr Typ pa-
rametru
Typ danych
Opis
Parametr Typ pa-
rametru
Typ danych
Opis
IN IN STRING Wejściowy łańcuch znaków ASCII
do konwersji
FORMAT IN WORD Opcje formatu wyjściowego
IN IN
SINT, INT, DINT, USINT,
UINT, UDINT, REAL
Wartość do konwersji
IN: Indeks wskazujący znak, od
którego należy rozpocząć konwersję
(pierwszy znak = 1)
SIZE IN
USINT
Liczba znaków do zapisa-
nia w łańcuchu OUT
Precyzja lub rozmiar
części ułamkowej. Nie jest
tu uwzględniony punkt
dziesiętny.
P IN_OUT UINT
OUT: Indeks wskazujący kolejny
znak po zakończeniu procesu
konwersji
PREC IN
USINT
FORMAT IN
WORD Opcje formatu wyjściowego
SINT, INT,
DINT, USINT,
UINT, UDINT,
REAL
OUT OUT
Wartość liczbowa po konwersji
IN: Indeks wskazujący
znak w łańcuchu OUT, od
którego należy rozpocząć
zamianę (pierwszy znak
= 1)
STRG_VAL ( String to Value ) przetwarza łańcuch znaków na odpo-
wiadająca mu liczbę całkowitą lub zmiennoprzecinkową. Konwersja
rozpoczyna się w łańcuchu IN od znaku określonego przez parametr
P i jest kontynuowana aż do osiągnięcia końca łańcucha albo napo-
tkania pierwszego znaku, który nie jest „+”, „–”, „.”, „,”, „e”, „E” lub
cyfrą od „0” do „9”. Wynik jest zapisywany w miejscu określonym jako
parametr OUT. Parametr P zwraca położenie znaku w oryginalnym
łańcuchu, na którym konwersja się zakończyła. Przed rozpoczęciem
wykonywania konwersji należy zainicjalizować poprawną daną typu
STRING w pamięci.
P IN_OUT UINT
OUT: Indeks wskazujący
kolejny znak w łańcuchu
OUT po zakończeniu
zamiany
OUT OUT STRING Łańcuch przekonwertowany
VAL_STRG ( Value to String ) przetwarza liczbę całkowitą, liczbę
całkowitą bez znaku lub liczbę zmiennoprzecinkową na odpowiada-
jący jej ciąg znaków OUT. Wartość reprezentowana przez parametr IN
jest przetwarzana na łańcuch zapisywany w miejscu określonym jako
parametr OUT. Zanim konwersja zostanie wykonana, parametr OUT
musi zawierać wzór łańcucha. Znaki łańcucha powstałego w wyniku
konwersji zastępują znaki łańcucha wzorcowego OUT począwszy od
znaku określonego przez P, a skończywszy po tylu znakach ile wy-
Parametr FORMAT dla instrukcji STRG_VAL
Parametr FORMAT dla instrukcji STRG_VAL jest zdeiniowany
poniżej. Niewykorzystane bity muszą być ustawione na 0.
Bit 16
Bit
8
Bit 7
Bit
0
0
0 0 0 0 0 0 0
0
0 0 0 0 0 f r
f = format notacji
1 = notacja wykładnicza
0 = notacja stałoprzecinkowa
1 = „,” (przecinek)
0 = „.” (kropka)
r = format z punktem dziesiętnym
notacji Reprezentacja z punktem dziesiętnym
0000 (domyślnie) Stało-
przecin-
kowa
nosi wartość zapisana w parametrze SIZE. Wartość wpisana do SIZE
musi być dopasowana do długości łańcucha OUT z uwzględnieniem
przesunięcia o P pierwszych znaków. Ta instrukcja jest przydatna do
wstawiania liczby w łańcuch tekstowy. Na przykład można wstawić
liczbę „120” do łańcucha „Pump pressure = 120 psi”.
Parametr PREC określa precyzję lub liczbę cyfr części ułamko-
wej w łańcuchu. Jeżeli wartość parametru IN jest liczbą całkowitą,
to PREC określa położenie punktu dziesiętnego. Na przykład, jeżeli
„.”
0001
„,”
0002 Wykład-
nicza
„.”
0003
„,”
0004 do FFFF
Wartości niedozwolone
ELEKTRONIKA PRAKTYCZNA 8/2010
139
FORMAT (W#16#) Format
677320718.002.png 677320718.003.png 677320718.004.png 677320718.005.png 677320718.006.png 677320718.007.png 677320718.008.png 677320718.009.png 677320718.010.png 677320718.011.png 677320718.013.png 677320718.014.png 677320718.015.png 677320718.016.png 677320718.017.png 677320718.018.png 677320718.019.png 677320718.020.png 677320718.021.png 677320718.022.png 677320718.024.png 677320718.025.png 677320718.026.png 677320718.027.png 677320718.028.png 677320718.029.png 677320718.030.png 677320718.031.png 677320718.032.png 677320718.033.png 677320718.035.png 677320718.036.png 677320718.037.png
AutomAtykA i mechAtronikA
wartość danej wynosi 123, a PREC = 1 to wynikiem jest „12.3”. Mak-
symalna obsługiwana precyzja dla danych typu REAL wynosi 7 cyfr.
Jeśli parametr P jest większy od bieżącej długości łańcucha OUT,
to aż do pozycji P są dodawane spacje, a wynik jest dołączany do koń-
ca łańcucha. Jeśli osiągnięta zostaje maksymalna długość łańcucha
OUT, to konwersja jest kończona.
Kody warunkowe sygnalizowane przez ENO
Kiedy podczas operacji konwersji wystąpi błąd, wtedy zwracane
są następujące kody:
• ENO przyjmuje wartość 0.
• OUT przyjmuje wartość 0 lub taką jak w przykładach konwersji
łańcucha na liczbę.
• OUT nie zmienia swojej wartości lub przyjmuje taką jak w przy-
kładach, w których OUT jest łańcuchem.
Parametr FORMAT instrukcji VAL_STRG
Parametr FORMAT dla instrukcji VAL_STRG jest zdeiniowany
poniżej. Niewykorzystane bity muszą być ustawione na 0.
Bit 16
Bit 8
Bit 7
Bit 0
0
0 0 0 0 0 0 0
0
0 0 0 0 0 f r
s = znak liczby
1 = stosuje się znaki „+” i „–”
0 = stosuje się tylko znak „–”
1 = notacja wykładnicza
0 = notacja stałoprzecinkowa
1 = „,” (przecinek)
0 = „.” (kropka)
f = format notacji
r = format z punktem dziesiętnym
Reprezentacja
z punktem
dziesiętnym
Status ENO
Opis
Znak
liczby
Format
notacji
FORMAT (WORD)
1
Brak błędu
W#16#0000
Stałoprze-
cinkowa
„.”
0
Nieprawidłowy lub nieważny parametr, np. wskazanie na
DB, który nie istnieje
W#16#0001
„,”
Tylko „–”
W#16#0002
Wykładni-
cza
„.”
Nieprawidłowy łańcuch, w którym maksymalna długość
łańcucha wynosi 0 lub 255
0
W#16#0003
„,”
W#16#0004
Stałoprze-
cinkowa
„.”
0
Nieprawidłowy łańcuch, w którym bieżąca długość jest
większa niż maksymalna długość
W#16#0005
„,”
„+” i „–”
„.”
W#16#0007 „,”
W#16#0008 do W#16#FFFF Wartości niedozwolone
W#16#0006
Wykładni-
cza
Wartość liczby po konwersji jest zbyt duża dla wyspecyi-
kowanego typu danej OUT
0
Maksymalny rozmiar łańcucha parametru OUT musi być do-
statecznie duży by pomieścić liczbę znaków określoną przez
parametr SIZE i rozpoczynających się od pozycji określonej
przez parametr P
Zasady jakie spełnia format łańcucha wyjściowego OUT:
• Kiedy przekonwertowany łańcuch jest krótszy niż wyspecyiko-
wany rozmiar, wtedy po skrajnej lewej stronie łańcucha są dosta-
wiane wiodące spacje.
• Kiedy bit znaku parametru FORMAT ma wartość FALSE, wtedy
liczby całkowite bez znaku i ze znakiem są wpisywane do bufora
wyjściowego bez wiodącego znaku „+”. Znak „–” jest używany
jeśli jest to wymagane.
<wiodące spacje><cyfry bez wiodących zer>’.’<cyfry PREC>
• Kiedy bit znaku parametru FORMAT ma wartość TRUE, wtedy
liczby całkowite bez znaku i ze znakiem są zawsze wpisywane do
bufora wyjściowego z wiodącym symbolem znaku.
<wiodące spacje><znak>< cyfry bez wiodących zer>’.’
< cyfry PREC >
• Kiedy FORMAT jest tak skonigurowany, że obowiązuje notacja
wykładnicza, wtedy liczby REAL są wpisywane do bufora wyj-
ściowego jako:
<wiodące spacje><znak>< cyfra>’.’< cyfry PREC >
’E’<znak>< cyfry bez wiodących zer>
• Kiedy FORMAT jest tak skonfigurowany, że obowiązuje nota-
cja stałoprzecinkowa, wtedy liczby całkowite, całkowite bez
znaku i  rzeczywiste są wpisywane do bufora wyjściowego
jako:
<wiodące spacje><znak>< cyfry bez wiodących zer>’.’
< cyfry PREC >
• Wiodące zera z lewej strony punktu dziesiętnego (z wyjątkiem cy-
fry sąsiadującej z punktem dziesiętnym) są pomijane.
• Wartości z prawej strony punktu dziesiętnego są zaokrąglane tak,
by liczba cyfr z prawej strony punktu dziesiętnego odpowiadała
liczbie określanej przez parametr PREC.
• Rozmiar łańcucha wyjściowego musi wynosić co najmniej 3
bajty więcej niż liczba cyfr z prawej strony punktu dziesięt-
nego.
• Wartości w łańcuchu wyjściowym są wyrównywane do prawej.
0
0
Nieprawidłowa wartość P, gdzie P=0 lub P jest większa
niż bieżąca długość łańcucha
0
Wartość parametru SIZE musi być większa od wartości para-
metru PREC
Przykłady konwersji łańcucha na liczbę za pomocą
instrukcji S_CONV
Łańcuch IN Typ danej OUT Wartość OUT ENO
„123” INT/DINT 123 TRUE
„–00456” INT/DINT –456 TRUE
„123.45” INT/DINT 123 TRUE
„+2345” INT/DINT 2345 TRUE
„00123AB” INT/DINT 123 TRUE
„123” REAL 123.0 TRUE
„123.45” REAL 123.45 TRUE
„1.23e–4” REAL 1.23 TRUE
„1.23E–4” REAL 1.23 TRUE
„12,345.67” REAL 12345.67 TRUE
„3.4e39” REAL 3.4 TRUE
„–3.4e39” REAL –3.4 TRUE
„1.17549e-38” REAL 1.17549 TRUE
„12345”
SINT
0
FALSE
„A123”
N/A 
0
FALSE
„„
N/A 
0
FALSE
„++123” N/A 
0
FALSE
„+–123”
N/A 
0
FALSE
140
ELEKTRONIKA PRAKTYCZNA 8/2010
677320718.038.png 677320718.039.png 677320718.040.png 677320718.041.png 677320718.042.png 677320718.043.png 677320718.044.png 677320718.046.png 677320718.047.png 677320718.048.png 677320718.049.png 677320718.050.png 677320718.051.png 677320718.052.png 677320718.053.png 677320718.054.png 677320718.055.png 677320718.057.png 677320718.058.png 677320718.059.png 677320718.060.png
Zgłoś jeśli naruszono regulamin