ГОСТ Р МЭК 61131-3—2016
Пример 6— Сравнение явных и неявных преобразований типов
1) Объявление типа
VAR
PartsRatePerHr:REAL;
PartsDone:INT;
HoursElapsed:REAL;
PartsPerShift:INT;
ShiftLength: SINT;
END_VAR
2) Использование в языке ST
a)Явное преобразование типа данных
PartsRatePerHr:= INT_TO_REAL(PartsDone) / HoursElapsed;
PartsPerShift := REAL_TO_INT(SINT_TO_REAL(ShiftLength)*PartsRatePerHr):
b) Явное преобразование перегруженного типа
PartsRatePerHr:= TO_REAL(PartsDone)/ HoursElapsed; PartsPerShift := TO_INT(TO_REAL(ShiftLength)’
PartsRatePerHr);
c) Неявное преобразование типа данных
PartsRatePerHr:= PartsDone / HoursElapsed;
PartsPerShift := TO_INT(ShiftLength *PartsRatePerHr);
3) Использование в языке FBD
а) Явное преобразование типа данных
+
------------------+ +--------------+
PartsDone -| INT_TO REAL |— | DIV_REAL I-
+..............Г..........♦II
I■
HoursElapsed --------------
1
J
+
--------
--------
— +
ShiftLength -| SINT_TO_REAL |-
♦
------
- — - —
----
4
--I REAL_TO_INT |-- PartsPerShift
I”I
♦------------------+
►--
4
b) Явное преобразование перегруженного типа
. X 11 1
“
.
4
I
I
---
++—
+
-----------
— + +
----------
+ +—
-+
+
--------
4
-
PartsDone -I TO_REAL|--| DIV_REAL |
---
| * |--| TO_INT
1
PartsPerShift
T“ ““ ““
—
..
+ 11 1 1 11
I1 1
| 4
-------
-
-
поигумйрзео — ————---
1
+
----------
+
1
1
1 1
T — ~ — —— ———
1
ShiftLength -| TO_REAL
1..................1 1
+
------------+
с) Неявное преобразование типов типизированными функциями
PartsDone
HoursElapsed
I
+
+----------------- +
| DIV_REAL I- -
II I
I
I
----------------- +
ShiftLength
+------------------+
+-------------------+++
| M0L_REAL |
-------
|
TO TNTPartsPerShift
III
II+
4
-
55