ASTRO
Тип модуля: ФБ | Переменная | Тип | Описание |
|---|---|---|---|
Входы | m | REAL | Исходное расстояние, м |
AE | REAL | Исходное расстояние, а.е | |
PC | REAL | Исходное расстояние, парсеки | |
LJ | REAL | Исходное расстояние, световые года | |
Выходы | Ym | REAL | Конвертированное расстояние, м |
YAE | REAL | Конвертированное расстояние, а.е. | |
YPC | REAL | Конвертированное расстояние, парсеки | |
YLJ | REAL | Конвертированное расстояние, световые года |
Функциональный блок ASTRO конвертирует значение расстояния из одних астрономических единиц измерения в другие. Подразумевается, что при каждом вызове блока используется только один вход, а остальные имеют нулевые значения. При этом на выходах отображаются конвертированные значения в соответствующих единицах измерения. Если при вызове ФБ есть значения на нескольких входах, то будет произведена конвертация суммы этих значений.
Соотношения между единицами:
1 а.е. = 149 597 870 700 м;
1 парсек ≈ 206 264,8 а. е. = 3,0856776·1016 м = 3,2616 светового года;
1 световой год = 9 460 730 472 580 800 м ≈ 63 241,077 а.е.
Пример
VAR AstroConv: OSCAT_BASIC.ASTRO;
(* Расстояние в световых годах *)
DistanceLJ: REAL := 4.24; (* 4.24 световых года до Проксимы Центавра *)
(* Результаты *)
Meters: REAL;
AE: REAL;
Parsecs: REAL;
LightYears: REAL;
END_VAR
(* Вызов ФБ с входом LJ *)
AstroConv(LJ := DistanceLJ);
(* Чтение результатов *)
Meters := AstroConv.Ym; (* ≈ 4.0113E16 м *)
AE := AstroConv.YAE; (* ≈ 268144.6 а.е. *)
Parsecs := AstroConv.YPC; (* ≈ 1.3 парсека *)
LightYears := AstroConv.YLJ; (* 4.24 световых года *)
(* Результат:
- Ym ≈ 4.0113E16 м
- YAE ≈ 268144.6 а.е.
- YPC ≈ 1.3 парсека
- YLJ = 4.24 световых года*)
END_PROGRAM |
BFT_TO_MS
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | BFT | INT | Скорость ветра в баллах Бофорта (1..12) |
Выходы | BFT_TO_MS | REAL | Скорость ветра в м/с |
Функция BFT_TO_MS конвертирует значение скорости ветра из
шкалы Бофорта в метры в секунду. Преобразование выполняется с помощью
эмпирической формулыBFT_TO_MS = 0.837 · BFT3/2
См. также обратную функцию MS_TO_BFT.
Пример
VAR
(* Скорость ветра в баллах Бофорта *)
WindForce : INT := 4; (* 4 балла - «Умеренный ветер» (5.5–7.9 м/с) *)
(* Результат конвертации *)
WindSpeed : REAL;
END_VAR
(* Вызов функции BFT_TO_MS *)
WindSpeed := OSCAT_BASIC.BFT_TO_MS(
BFT := WindForce
);
(*Результат: WindSpeed ≈ 6.696 м/с*)
END_PROGRAM |
C_TO_F
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | celsius | REAL | Температура в градусах Цельсия |
Выходы | C_TO_F | REAL | Температура в градусах по Фаренгейту |
Функция C_TO_F конвертирует значение температуры из градусов
Цельсия в градусы Фаренгейта. Преобразование выполняется с помощью
формулыC_TO_F = (9/5) · celsius + 32
См. также обратную функцию F_TO_C.
Пример
VAR
(* Температура в градусах Цельсия *)
TempCelsius : REAL := 25.0; (* 25 °C *)
(* Результат конвертации *)
TempFahrenheit : REAL;
END_VAR
(* Вызов функции C_TO_F *)
TempFahrenheit := OSCAT_BASIC.C_TO_F(
celsius := TempCelsius
);
(*Результат: TempFahrenheit = 77.0 °F*)
END_PROGRAM |
C_TO_K
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | celsius | REAL | Температура в градусах Цельсия |
Выходы | C_TO_K | REAL | Температура в градусах Кельвина |
Функция C_TO_K конвертирует значение температуры из градусов
Цельсия в кельвины. Преобразование выполняется с помощью формулыC_TO_К = celsius + 273.15
См. также обратную функцию К_TO_C.
Пример
VAR
(* Температура в градусах Цельсия *)
TempCelsius : REAL := 30.0; (* 25 °C *)
(* Результат конвертации *)
TempKelvin : REAL;
END_VAR
(* Вызов функции C_TO_K *)
TempKelvin := OSCAT_BASIC.C_TO_K(
celsius := TempCelsius
);
(*Результат: TempKelvin = 303*)
END_PROGRAM |
DEG_TO_DIR
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | DEG | INT | Азимут, градусы |
N | INT | Коэффициент кол-ва лучей розы румбов (1..3) | |
L | INT | Язык проекта | |
Выходы | DEG_TO_DIR | STRING(3) | Обозначение румба |
Функция DEG_TO_DIR конвертирует значения азимута DEG (в градусах) в обозначение соответствующего румба. Вход N определяет кол-во лучей розы румбов (см. рисунок ниже):
N=1 – используются 4 луча;
N=2 – используются 8 лучей;
N=3 – используются 16 лучей.

Вход LANG определяет язык приложения (см. глобальную переменную LANGUAGE; в ней же содержатся и обозначения румбов). См. также обратную функцию DIR_TO_DEG.
Пример
VAR (* Азимут в градусах *)
Azimuth : INT := 120; (* 120 градусов *)
(* Количество лучей розы румбов *)
Rays : INT := 2; (* 8 лучей (N=2) *)
(* Язык проекта (0 - английский) *)
Lang : INT := 0; (* Английский язык *)
(* Результат - обозначение румба *)
Direction : STRING(3);
END_VAR
(* Вызов функции DEG_TO_DIR *)
Direction := OSCAT_BASIC.DEG_TO_DIR(
DEG := Azimuth,
N := Rays,
L := Lang
);
(*Результат: Direction = 'SE'*)
END_PROGRAM |
DIR_TO_DEG
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | DIR | STRING(3) | Обозначение румба |
L | INT | Язык проекта | |
Выходы | DIR_TO_DEG | INT | Азимут, градусы |
Функция DIR_TO_DEG конвертирует обозначения румба в значение азимута в градусах. Функция работает с 16-лучевой розой румбов (см. рисунок выше). Вход L определяет язык приложения (см. глобальную переменную LANGUAGE; в ней же содержатся и названия румбов). См. также обратную функцию DEG_TO_DIR.
Пример
VAR
(* Обозначение румба *)
Direction : STRING(3) := 'SE'; (* Юго-восток *)
(* Язык проекта (0 - английский) *)
Lang : INT := 0; (* Английский язык *)
(* Результат - азимут в градусах *)
Azimuth : INT;
END_VAR
(* Вызов функции DIR_TO_DEG *)
Azimuth := OSCAT_BASIC.DIR_TO_DEG(
DIR := Direction,
L := Lang
);
(*Результат: Azimuth = 135*)
END_PROGRAM |
ENERGY
Тип модуля: ФБ | Переменная | Тип | Описание |
|---|---|---|---|
Входы | J | REAL | Исходное значение энергии, Дж |
C | REAL | Исходное значение энергии, кал | |
WH | REAL | Исходное значение энергии, Вт∙ч | |
Выходы | YJ | REAL | Конвертированное значение энергии, Дж |
YC | REAL | Конвертированное значение энергии, кал | |
YWH | REAL | Конвертированное значение энергии, Вт∙ч |
Функциональный блок ENERGY конвертирует значение энергии из одних единиц измерения в другие. Подразумевается, что при каждом вызове блока используется только один вход, а остальные имеют нулевые значения. При этом на выходах отображаются конвертированные значения в соответствующих единицах измерения. Если при вызове ФБ есть значения на нескольких входах, то будет произведена конвертация суммы этих значений.
1 кал = 4.1868 Дж = 1,163·10-3 Вт·ч;
1 Вт·ч = 3.6·10-3 Дж = 860 кал.
Пример
VAR
(* Экземпляр ФБ ENERGY *)
EnergyConv : OSCAT_BASIC.ENERGY;
(* Исходное значение энергии в джоулях *)
EnergyJ : REAL := 4186.8; (* 4186.8 Дж = 1000 кал *)
(* Результаты конвертации *)
ResultJ : REAL; (* В джоулях *)
ResultC : REAL; (* В калориях *)
ResultWH : REAL; (* В ватт-часах *)
END_VAR
(* Вызов ФБ с заполненными входами J*)
EnergyConv(J := EnergyJ);
(* Чтение результатов *)
ResultJ := EnergyConv.YJ; (*4186.8 Дж *)
ResultC := EnergyConv.YC; (*1000.0 кал*)
ResultWH := EnergyConv.YWH; (* ≈ 1.163 Вт·ч*)
END_PROGRAM |
F_TO_C
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | fahrenheit | REAL | Температура в градусах по Фаренгейту |
Выходы | F_TO_C | REAL | Температура в градусах Цельсия |
Функция C_TO_F конвертирует значение температуры из градусов
Фаренгейта в градусы Цельсия. Преобразование выполняется с помощью
формулыF_TO_C=(5/9)∙(fahrenheit-32)
См. также обратную функцию C_TO_F
Пример
VAR
(* Температура в градусах Фаренгейта *)
TempFahrenheit : REAL := 77.0; (* 77 °F *)
(* Результат конвертации *)
TempCelsius : REAL;
END_VAR
(* Вызов функции F_TO_C *)
TempCelsius := OSCAT_BASIC.F_TO_C(
fahrenheit := TempFahrenheit
);
(*Результат: TempCelsius = 25.0 °C*) |
F_TO_OM
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | F | REAL | Частота, Гц |
Выходы | F_TO_OM | REAL | Угловая частота, рад/с |
Функция F_TO_OM возвращает значение угловой частоты для
заданной частоты F. Вычисление выполняется по формулеF_TO_OM=2πF
См. также обратную функцию OM_TO_F
Пример
VAR
(* Частота, Гц *)
Frequency : REAL := 50.0; (* 50 Гц (промышленная частота) *)
(* Результат конвертации *)
AngularFrequency : REAL; (* Угловая частота, рад/с *)
END_VAR
(* Вызов функции F_TO_OM *)
AngularFrequency := OSCAT_BASIC.F_TO_OM(
F := Frequency
);
(*Результат: AngularFrequency ≈ 314.159 рад/с*)
END_PROGRAM |
F_TO_PT
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | F | REAL | Частота колебаний, Гц |
Выходы | F_TO_PT | TIME | Период колебаний, с |
Функция F_TO_PT возвращает значение периода колебаний для
заданной частоты F. Вычисление выполняется по формулеF_TO_PT=1/F
См. также обратную функцию PT_TO_F
Пример
VAR
(* Частота колебаний, Гц *)
Frequency : REAL := 50.0; (* 50 Гц (промышленная частота) *)
(* Результат конвертации *)
Period : TIME; (* Период колебаний, с *)
END_VAR
(* Вызов функции F_TO_PT *)
Period := OSCAT_BASIC.F_TO_PT(
F := Frequency
);
(*Результат: Period = T#20ms*)
END_PROGRAM |
GEO_TO_DEG
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
| Входы | D | INT | Градусы |
M | INT | Минуты | |
SEC | REAL | Секунды | |
Выходы | GEO_TO_DEG | REAL | Десятичные градусы |
Функция GEO_TO_DEG конвертирует географические координаты из формата DMS (градусы D/минуты M/секунды SEC) в формат DD (десятичные градусы). Вычисление выполняется по формуле
GEO_TO_DEG=D+M/60+SEC/3600
Пример
VAR
(* Географические координаты в формате DMS *)
Degrees : INT := 55; (* 55 градусов *)
Minutes : INT := 45; (* 45 минут *)
Seconds : REAL := 30.0; (* 30 секунд *)
(* Результат конвертации *)
DecimalDegrees : REAL; (* Десятичные градусы *)
END_VAR
(* Вызов функции GEO_TO_DEG *)
DecimalDegrees := OSCAT_BASIC.GEO_TO_DEG(
D := Degrees,
M := Minutes,
SEC := Seconds
);
(* Результат: DecimalDegrees ≈ 55.758333°*)
END_PROGRAM |
K_TO_C
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | Kelvin | REAL | Температура в градусах Кельвина |
Выходы | K_TO_C | REAL | Температура в градусах Цельсия |
Функция K_TO_C конвертирует значение температуры из кельвинов
в градусы Цельсия. Преобразование выполняется с помощью формулыC_TO_К = Kelvin - 273.15
См. также обратную функцию C_TO_K.
Пример
VAR
(* Температура в градусах Цельсия *)
TempKelvin : REAL := 303.15;
(* Результат конвертации *)
TempCelsius : REAL;
END_VAR
(* Вызов функции K_TO_C *)
TempCelsius := OSCAT_BASIC.K_TO_C(
Kelvin := TempKelvin
);
(*Результат: TempCelsius = 30*)
END_PROGRAM |
KMH_TO_MS
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | kmh | REAL | Скорость, км/ч |
Выходы | KMH_TO_MS | REAL | Скорость, м/с |
Функция KMH_TO_MS конвертирует значение скорости из км/ч в м/с. См. также обратную функцию MS_TO_KMH.
Пример
VAR
(* Скорость в км/ч *)
SpeedKmh : REAL := 180;
(* Результат конвертации *)
SpeedMS : REAL;
END_VAR
(* Вызов функции KMH_TO_MS *)
SpeedMS := OSCAT_BASIC.KMH_TO_MS(
kmh := SpeedKmh
);
(*Результат: SpeedMS = 50.0000038*)
END_PROGRAM |
LENGHT
Тип модуля: ФБ | Переменная | Тип | Описание |
|---|---|---|---|
Входы | m | REAL | Исходное значение длины, м |
p | REAL | Исходное значение длины, типографские пункты | |
in | REAL | Исходное значение длины, дюймы | |
ft | REAL | Исходное значение длины, футы | |
yd | REAL | Исходное значение длины, ярды | |
mile | REAL | Исходное значение длины, мили | |
sm | REAL | Исходное значение длины, морские мили | |
fm | REAL | Исходное значение длины, морские сажени | |
Выходы | Ym | REAL | Конвертированное значение длины, м |
Yp | REAL | Конвертированное значение длины, типограф. пункты | |
Yin | REAL | Конвертированное значение длины, дюймы | |
Yft | REAL | Конвертированное значение длины, футы | |
Yyd | REAL | Конвертированное значение длины, ярды | |
Ymile | REAL | Конвертированное значение длины, мили | |
Ysm | REAL | Конвертированное значение длины, морские мили | |
Yfm | REAL | Конвертированное значение длины, морские сажени |
Функциональный блок LENGTH конвертирует значение длины из одних единиц измерения в другие. Подразумевается, что при каждом вызове блока используется только один вход, а остальные имеют нулевые значения. При этом на выходах отображаются конвертированные значения в соответствующих единицах измерения. Если при вызове ФБ есть значения на нескольких входах, то будет произведена конвертация суммы этих значений.
Соотношения между единицами:
1 типографсикй пункт = 0,376065 мм;
1 дюйм = 25.4 мм;
1 фут = 0,3048 м;
1 ярд = 0,9144 м;
1 миля = 1609,344 м;
1 морская миля = 1852 м;
1 морская сажень = 1,829 м.
Пример “Конвертация одного значения”
VAR
(* Экземпляр ФБ LENGTH *)
LengthConv : OSCAT_BASIC.LENGTH;
(* Исходное значение длины в метрах *)
LengthM : REAL := 1000.0; (* 1000 м = 1 км *)
(* Результаты конвертации *)
ResultM : REAL; (* В метрах *)
ResultIn : REAL; (* В дюймах *)
ResultFt : REAL; (* В футах *)
ResultMile : REAL; (* В милях *)
ResultSm : REAL; (* В морских милях *)
END_VAR
(* Вызов ФБ с заполненным входом m *)
LengthConv(m := LengthM);
(* Чтение результатов *)
ResultM := LengthConv.Ym; (* 1000.0 м *)
ResultIn := LengthConv.Yin; (* ≈ 39370.08 дюймов *)
ResultFt := LengthConv.Yft; (* ≈ 3280.84 футов *)
ResultMile := LengthConv.Ymile; (* ≈ 0.6214 мили *)
ResultSm := LengthConv.Ysm; (* ≈ 0.5400 морской мили *)
END_PROGRAM |
MS_TO_BFT
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | MS | REAL | Скорость ветра в м/с |
Выходы | MS_TO_BFT | INT | Скорость ветра в баллах Бофорта (1..12) |
Функция MS_TO_BFT конвертирует значение скорости ветра из
метров в секунду в баллы по шкале Бофорта. Преобразование выполняется
с помощью эмпирической формулыMS_TO_BFT = (1.196172 · MS)2/3
См. также обратную функцию BFT_TO_MS.
Пример
VAR
(* Скорость ветра в м/с *)
WindSpeed : REAL := 6.69; (* 6.69 м/с) *)
(* Результат конвертации *)
WindForce : INT;
END_VAR
(* Вызов функции MS_TO_BFT *)
WindForce := OSCAT_BASIC.MS_TO_BFT(
MS := WindSpeed
);
(*Результат: 4 балла "Умеренный ветер"*)
END_PROGRAM |
MS_TO_KMH
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | MS | REAL | Скорость, м/с |
Выходы | MS_TO_KMH | REAL | Скорость, км/ч |
Функция MS_TO_KMH конвертирует значение скорости из м/с
в км/ч.MS_TO_BFT = (1.196172 · MS)2/3
См. также обратную функцию KMH_TO_MS.
Пример
VAR
(* Скорость в мс *)
SpeedMS : REAL := 50.0000038;
(* Результат конвертации *)
SpeedKmh : REAL;
END_VAR
(* Вызов функции MS_TO_KMH *)
SpeedKmh := OSCAT_BASIC.MS_TO_KMH(
MS := SpeedMS
);
(*Результат: SpeedKmh = 180 км/ч*)
END_PROGRAM |
OM_TO_F
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | OM | REAL | Угловая частота, рад/с |
Выходы | OM_TO_F | REAL | Частота, Гц |
Функция OM_TO_F возвращает значение частоты для заданной
угловой частоты OM. Вычисление выполняется по формулеOM_TO_F=OM/2π
См. также обратную функцию F_TO_OM
Пример
VAR
(* угловая частота, рад/с *)
AngularFrequency : REAL := 314.15;
(* Результат конвертации *)
Frequency : REAL; (* Частота, Гц *)
END_VAR
(* Вызов функции OM_TO_F *)
Frequency := OSCAT_BASIC.OM_TO_F(
OM := AngularFrequency
);
(*Результат: Frequency = 50 Гц*)
END_PROGRAM |
PRESSURE
Тип модуля: ФБ | Переменная | Тип | Описание |
|---|---|---|---|
Входы | mws | REAL | Исходное значение давления, метры водяного столба |
torr | REAL | Исходное значение давления, мм ртутного столба | |
att | REAL | Исходное значение давления, технические атмосферы | |
atm | REAL | Исходное значение давления, физические атмосферы | |
pa | REAL | Исходное значение давления, Паскали | |
bar | REAL | Исходное значение давления, бары | |
Выходы | Ymws | REAL | Конвертированное значение, метры водяного столба |
Ytorr | REAL | Конвертированное значение я, мм ртутного столба | |
Yatt | REAL | Конвертированное значение, технические атмосферы | |
Yatm | REAL | Конвертированное значение, физические атмосферы | |
Ypa | REAL | Конвертированное значение, Паскали | |
Ybar | REAL | Конвертированное значение, бары |
Функциональный блок PRESSURE конвертирует значение давления из одних единиц измерения в другие. Подразумевается, что при каждом вызове блока используется только один вход, а остальные имеют нулевые значения. При этом на выходах отображаются конвертированные значения в соответствующих единицах измерения. Если при вызове ФБ есть значения на нескольких входах, то будет произведена конвертация суммы этих значений.
Соотношения между единицами приведены в этой статье.
Пример “Конвертация одного значения”
VAR (* Экземпляр ФБ PRESSURE *)
PressureConv : OSCAT_BASIC.PRESSURE;
(* Исходное значение давления в барах *)
PressureBar : REAL := 1.0; (* 1 бар *)
(* Результаты конвертации *)
ResultBar : REAL; (* В барах *)
ResultPa : REAL; (* В паскалях *)
ResultAtm : REAL; (* В физических атмосферах *)
ResultAtt : REAL; (* В технических атмосферах *)
ResultTorr : REAL; (* В мм ртутного столба *)
ResultMws : REAL; (* В метрах водяного столба *)
END_VAR
(* Вызов ФБ с заполненным входом bar *)
PressureConv(bar := PressureBar);
(* Чтение результатов *)
ResultBar := PressureConv.Ybar; (* 1.0 бар *)
ResultPa := PressureConv.Ypa; (* 100000.0 Па *)
ResultAtm := PressureConv.Yatm; (* ≈ 0.9869 атм *)
ResultAtt := PressureConv.Yatt; (* ≈ 1.0197 ат *)
ResultTorr := PressureConv.Ytorr; (* ≈ 750.06 мм рт. ст. *)
ResultMws := PressureConv.Ymws; (* ≈ 10.197 м вод. ст. *)
END_PROGRAM |
PT_TO_F
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | PT | TIME | Период колебаний, с |
Выходы | PT_TO_F | REAL | Частота колебаний, Гц |
Функция PT_TO_F возвращает значение частоты для заданного
периода колебаний PT. Вычисление выполняется по формулеPT_TO_F=1/PT
См. также обратную функцию F_TO_PT.
Пример
VAR
(* Период колебаний, с *)
Period : TIME := T#20ms;
(* Результат конвертации *)
Frequency : REAL; (*Частота колебаний, Гц *)
END_VAR
(* Вызов функции PT_TO_F *)
Frequency := OSCAT_BASIC.PT_TO_F(
PT := Period
);
(*Результат: Frequency = 50 Гц*)
END_PROGRAM |
SPEED
Тип модуля: ФБ | Переменная | Тип | Описание |
|---|---|---|---|
Входы | ms | REAL | Исходное значение скорости, м/с |
kmh | REAL | Исходное значение скорости, км/ч | |
kn | REAL | Исходное значение скорости, узлов | |
mh | REAL | Исходное значение скорости, миль/ч | |
Выходы | Yms | REAL | Конвертированное значение скорости, м/с |
Ykmh | REAL | Конвертированное значение скорости, км/ч | |
Ykn | REAL | Конвертированное значение скорости, узлов | |
Ymh | REAL | Конвертированное значение скорости, миль/ч |
Функциональный блок SPEED конвертирует значение скорости из одних единиц измерения в другие. Подразумевается, что при каждом вызове блока используется только один вход, а остальные имеют нулевые значения. При этом на выходах отображаются конвертированные значения в соответствующих единицах измерения. Если при вызове ФБ есть значения на нескольких входах, то будет произведена конвертация суммы этих значений.
Соотношения между единицами:
1 км/ч = 0,278 м/с;
1 узел = 1 морская миля/ч = 1.852 км/ч = 0.5144 м/с;
1 миля/ч = 1.609 км/ч = 0.447 м/с
Пример
VAR
(* Экземпляр ФБ SPEED *)
SpeedConv : OSCAT_BASIC.SPEED;
(* Исходное значение скорости в м/с *)
SpeedMs : REAL := 10.0; (* 10 м/с *)
(* Результаты конвертации *)
ResultMs : REAL; (* В м/с *)
ResultKmh: REAL; (* В км/ч *)
ResultKn : REAL; (* В узлах *)
ResultMh : REAL; (* В милях/ч *)
END_VAR
(* Вызов ФБ с заполненным входом ms *)
SpeedConv(ms := SpeedMs);
(* Чтение результатов *)
ResultMs := SpeedConv.Yms; (* 10.0 м/с *)
ResultKmh := SpeedConv.Ykmh; (* 36.0 км/ч *)
ResultKn := SpeedConv.Ykn; (* ≈ 19.44 узла *)
ResultMh := SpeedConv.Ymh; (* ≈ 22.37 миль/ч *)
END_PROGRAM
|
TEMPERATURE
Тип модуля: ФБ | Переменная | Тип | Описание |
|---|---|---|---|
Входы | K | REAL | Исходное значение температуры, кельвины |
C | REAL | Исходное значение температуры, градусы Цельсия | |
F | REAL | Исходное значение температуры, градусы Фаренгейта | |
Re | REAL | Исходное значение температуры, градусы Реомюра | |
Ra | REAL | Исходное значение температуры, градусы Ранкина | |
Выходы | YK | REAL | Конвертированное значение, кельвины |
YC | REAL | Конвертированное значение, градусы Цельсия | |
YF | REAL | Конвертированное значение, градусы Фаренгейта | |
YRe | REAL | Конвертированное значение, градусы Реомюра | |
YRa | REAL | Конвертированное значение, градусы Ранкина |
Функциональный блок TEMPERATURE конвертирует значение температуры из одних единиц измерения в другие. Подразумевается, что при каждом вызове блока используется только один вход, а остальные имеют нулевые значения. При этом на выходах отображаются конвертированные значения в соответствующих единицах измерения. Если при вызове ФБ есть значения на нескольких входах, то будет произведена конвертация суммы этих значений.
Соотношения между единицами:
TK = TC + 273,15;
TC = TK – 273,15;
TF=9/5∙TC+32;
TRE = (TK -273,15)∙0,8;
TRA = 1,8∙TK
Следует помнить, что разные температурные шкалы имеют разные точки отсчета. По умолчанию входы блока имеют следующие значения:
K= 0.0;
C= –273,15;
F= –459,67;
Re= –218,52;
Ra= 0.0
Пример
VAR
(* Экземпляр ФБ TEMPERATURE *)
TempConv : OSCAT_BASIC.TEMPERATURE;
(* Исходное значение температуры в градусах Цельсия *)
TempCelsius : REAL := 100.0; (* 100 °C (точка кипения воды) *)
(* Результаты конвертации *)
ResultK : REAL; (* В кельвинах *)
ResultC : REAL; (* В градусах Цельсия *)
ResultF : REAL; (* В градусах Фаренгейта *)
ResultRe : REAL; (* В градусах Реомюра *)
ResultRa : REAL; (* В градусах Ранкина *)
END_VAR
(* Вызов ФБ с заполненным входом C *)
TempConv(C := TempCelsius);
(* Чтение результатов *)
ResultK := TempConv.YK; (*YK = 373.15 K*)
ResultC := TempConv.YC; (*YC = 100.0 °C*)
ResultF := TempConv.YF; (*YF = 212.0 °F*)
ResultRe := TempConv.YRe; (*YRe = 80.0 °Re*)
ResultRa := TempConv.YRa; (*YRa = 671.67 °Ra*)
END_PROGRAM
|