Конвертация величин

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 лучей.

Graphic
Шестнадцатилучевая роза румбов

Вход 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