---
title: "Руководство пользователя Библиотека OSCAT"
product: "ALTA IDE"
document_number: "№ 1-RU-165227-1.1"
version: "1.1"
language: "ru"
source: "https://docs.owen.ru/product/alta-ide/doc/1353"
pdf: "https://docs.owen.ru/download/pdf/6JW7k.rp_biblioteka+oscat_1-ru-165227-1.1.pdf"
generated: "2026-10-09"
---

# Руководство пользователя Библиотека OSCAT

## Содержание

- [Введение](#topic-124775)
- [Цель документа](#topic-124776)
- [Установка библиотеки](#topic-124777)
- [Описание библиотеки OSCAT](#topic-124778)
- [Глобальные переменные](#topic-124779)
- [Типы данных](#topic-124780)
  - [CALENDAR](#topic-124781)
  - [COMPLEX](#topic-124782)
  - [CONSTANTS_LANGUAGE](#topic-124783)
  - [CONSTANTS_LOCATION](#topic-124784)
  - [CONSTANTS_MATH](#topic-124785)
  - [CONSTANTS_PHYS](#topic-124786)
  - [CONSTANTS_SETUP](#topic-124787)
  - [ESR_DATA](#topic-124788)
  - [FRACTION](#topic-124789)
  - [HOLIDAY_DATA](#topic-124790)
  - [REAL2](#topic-124791)
  - [SDT](#topic-124792)
  - [VECTOR_3](#topic-124793)
- [Специальные функции](#topic-124794)
  - [ESR_COLLECT](#topic-124795)
  - [ESR_MON_B8](#topic-124796)
  - [ESR_MON_R4](#topic-124797)
  - [ESR_MON_X8](#topic-124798)
  - [OSCAT_VERSION](#topic-124799)
  - [STATUS_TO_ESR](#topic-124800)
- [Математические функции](#topic-124801)
  - [ACOSH](#topic-124802)
  - [ACOTH](#topic-124803)
  - [AGDF](#topic-124804)
  - [ASINH](#topic-124805)
  - [ATAN2](#topic-124806)
  - [ATANH](#topic-124807)
  - [BETA](#topic-124808)
  - [BINOM](#topic-124809)
  - [CAUCHY](#topic-124810)
  - [CAUCHYCD](#topic-124811)
  - [CEIL](#topic-124812)
  - [CEIL2](#topic-124813)
  - [CMP](#topic-124814)
  - [COSH](#topic-124815)
  - [COTH](#topic-124816)
  - [D_TRUNC](#topic-124817)
  - [DEC1](#topic-124818)
  - [DEG](#topic-124819)
  - [DIFFER](#topic-124820)
  - [ERF](#topic-124821)
  - [ERFC](#topic-124822)
  - [EVEN](#topic-124823)
  - [EXP10](#topic-124824)
  - [EXPN](#topic-124825)
  - [FACT](#topic-124826)
  - [FIB](#topic-124827)
  - [FLOOR](#topic-124828)
  - [FLOOR2](#topic-124829)
  - [FRACT](#topic-124830)
  - [GAMMA](#topic-124831)
  - [GAUSS](#topic-124832)
  - [GAUSSCD](#topic-124833)
  - [GCD](#topic-124834)
  - [GDF](#topic-124835)
  - [GOLD](#topic-124836)
  - [HYPOT](#topic-124837)
  - [INC](#topic-124838)
  - [INC1](#topic-124839)
  - [INC2](#topic-124840)
  - [INV](#topic-124841)
  - [LAMBERT_W](#topic-124842)
  - [LANGEVIN](#topic-124843)
  - [MAX3](#topic-124844)
  - [MID3](#topic-124845)
  - [MIN3](#topic-124846)
  - [MODR](#topic-124847)
  - [MUL_ADD](#topic-124848)
  - [NEGX](#topic-124849)
  - [RAD](#topic-124850)
  - [RDM](#topic-124851)
  - [RDM2](#topic-124852)
  - [RDMDW](#topic-124853)
  - [REAL_TO_FRAC](#topic-124854)
  - [RND](#topic-124855)
  - [ROUND](#topic-124856)
  - [SGN](#topic-124857)
  - [SIGMOID](#topic-124858)
  - [SIGN_I](#topic-124859)
  - [SIGN_R](#topic-124860)
  - [SINC](#topic-124861)
  - [SINH](#topic-124862)
  - [SQRTN](#topic-124863)
  - [TANC](#topic-124864)
  - [TANH](#topic-124865)
  - [WINDOW](#topic-124866)
  - [WINDOW2](#topic-124867)
- [Работа с массивами](#topic-124868)
  - [\_ARRAY_ABS](#topic-124869)
  - [\_ARRAY_ADD](#topic-124870)
  - [\_ARRAY_INIT](#topic-124871)
  - [\_ARRAY_MEDIAN](#topic-124872)
  - [\_ARRAY_MUL](#topic-124873)
  - [\_ARRAY_SHUFFLE](#topic-124874)
  - [\_ARRAY_SORT](#topic-124875)
  - [ARRAY_AVG](#topic-124876)
  - [ARRAY_GAV](#topic-124877)
  - [ARRAY_HAV](#topic-124878)
  - [ARRAY_MAX](#topic-124879)
  - [ARRAY_MIN](#topic-124880)
  - [ARRAY_SDV](#topic-124881)
  - [ARRAY_SPR](#topic-124882)
  - [ARRAY_SUM](#topic-124883)
  - [ARRAY_TREND](#topic-124884)
  - [ARRAY_VAR](#topic-124885)
  - [IS_SORTED](#topic-124886)
- [Комплексная арифметика](#topic-124887)
  - [CABS](#topic-124888)
  - [CACOS](#topic-124889)
  - [CACOSH](#topic-124890)
  - [CADD](#topic-124891)
  - [CARG](#topic-124892)
  - [CASIN](#topic-124893)
  - [CASINH](#topic-124894)
  - [CATAN](#topic-124895)
  - [CATANH](#topic-124896)
  - [CCON](#topic-124897)
  - [CCOS](#topic-124898)
  - [CCOSH](#topic-124899)
  - [CDIV](#topic-124900)
  - [CEXP](#topic-124901)
  - [CINV](#topic-124902)
  - [CLOG](#topic-124903)
  - [CMUL](#topic-124904)
  - [CPOL](#topic-124905)
  - [CPOW](#topic-124906)
  - [CSET](#topic-124907)
  - [CSIN](#topic-124908)
  - [CSINH](#topic-124909)
  - [CSQRT](#topic-124910)
  - [CSUB](#topic-124911)
  - [CTAN](#topic-124912)
  - [CTANH](#topic-124913)
- [Арифметика чисел двойной точности](#topic-124914)
  - [R2_ABS](#topic-124915)
  - [R2_ADD](#topic-124916)
  - [R2_ADD2](#topic-124917)
  - [R2_MUL](#topic-124918)
  - [R2_SET](#topic-124919)
- [Арифметические функции](#topic-124920)
  - [F_LIN](#topic-124921)
  - [F_LIN2](#topic-124922)
  - [F_POLY](#topic-124923)
  - [F_POWER](#topic-124924)
  - [F_QUAD](#topic-124925)
  - [FRMP_B](#topic-124926)
  - [FT_AVG](#topic-124927)
  - [FT_MIN_MAX](#topic-124928)
  - [FT_RMP](#topic-124929)
  - [LINEAR_INT](#topic-124930)
  - [POLYNOM_INT](#topic-124931)
- [Геометрические функции](#topic-124932)
  - [CIRCLE_A](#topic-124933)
  - [CIRCLE_C](#topic-124934)
  - [CIRCLE_SEG](#topic-124935)
  - [CONE_V](#topic-124936)
  - [ELLIPSE_A](#topic-124937)
  - [ELLIPSE_C](#topic-124938)
  - [SPHERE_V](#topic-124939)
  - [TRIANGLE_A](#topic-124940)
- [Операции над векторами](#topic-124941)
  - [V3_ABS](#topic-124942)
  - [V3_ADD](#topic-124943)
  - [V3_ANG](#topic-124944)
  - [V3_DPRO](#topic-124945)
  - [V3_NORM](#topic-124946)
  - [V3_NUL](#topic-124947)
  - [V3_PAR](#topic-124948)
  - [V3_REV](#topic-124949)
  - [V3_SMUL](#topic-124950)
  - [V3_SUB](#topic-124951)
  - [V3_XANG](#topic-124952)
  - [V3_XPRO](#topic-124953)
  - [V3_YANG](#topic-124954)
  - [V3_ZANG](#topic-124955)
- [Дата и время](#topic-124956)
  - [CALENDAR_CALC](#topic-124957)
  - [DATE_ADD](#topic-124958)
  - [DAY_OF_DATE](#topic-124959)
  - [DAY_OF_MONTH](#topic-124960)
  - [DAY_OF_WEEK](#topic-124961)
  - [DAY_OF_YEAR](#topic-124962)
  - [DAY_TO_TIME](#topic-124963)
  - [DAYS_DELTA](#topic-124964)
  - [DAYS_IN_MONTH](#topic-124965)
  - [DAYS_IN_YEAR](#topic-124966)
  - [DCF77](#topic-124967)
  - [DST](#topic-124968)
  - [DT_TO_SDT](#topic-124969)
  - [DT2_TO_SDT](#topic-124970)
  - [EASTER](#topic-124971)
  - [EVENTS](#topic-124972)
  - [HOLIDAY](#topic-124973)
  - [HOUR](#topic-124974)
  - [HOUR_OF_DT](#topic-124975)
  - [HOUR_TO_TIME](#topic-124976)
  - [HOUR_TO_TOD](#topic-124977)
  - [JD2000](#topic-124978)
  - [LEAP_DAY](#topic-124979)
  - [LEAP_OF_DATE](#topic-124980)
  - [LEAP_YEAR](#topic-124981)
  - [LTIME_TO_UTC](#topic-124982)
  - [MINUTE](#topic-124983)
  - [MINUTE_OF_DT](#topic-124984)
  - [MINUTE_TO_TIME](#topic-124985)
  - [MONTH_BEGIN](#topic-124986)
  - [MONTH_END](#topic-124987)
  - [MONTH_OF_DATE](#topic-124988)
  - [MULTIME](#topic-124989)
  - [PERIOD](#topic-124990)
  - [PERIOD2](#topic-124991)
  - [REFRACTION](#topic-124992)
  - [RTC_2](#topic-124993)
  - [RTC_MS](#topic-124994)
  - [SDT_TO_DATE](#topic-124995)
  - [SDT_TO_DT](#topic-124996)
  - [SDT_TO_TOD](#topic-124997)
  - [SECOND](#topic-124998)
  - [SECOND_OF_DT](#topic-124999)
  - [SECOND_TO_TIME](#topic-125000)
  - [SET_DATE](#topic-125001)
  - [SET_DT](#topic-125002)
  - [SET_TOD](#topic-125003)
  - [SUN_MIDDAY](#topic-125004)
  - [SUN_POS](#topic-125005)
  - [SUN_TIME](#topic-125006)
  - [TIMECHECK](#topic-125007)
  - [UTC_TO_LTIME](#topic-125008)
  - [WORK_WEEK](#topic-125009)
  - [YEAR_BEGIN](#topic-125010)
  - [YEAR_END](#topic-125011)
  - [YEAR_OF_DATE](#topic-125012)
- [Работа со строками](#topic-125013)
  - [BIN_TO_BYTE](#topic-125014)
  - [BIN_TO_DWORD](#topic-125015)
  - [BYTE_TO_STRB](#topic-125016)
  - [BYTE_TO_STRH](#topic-125017)
  - [CAPITALIZE](#topic-125018)
  - [CHARCODE](#topic-125019)
  - [CHARNAME](#topic-125020)
  - [CHR_TO_STRING](#topic-125021)
  - [CLEAN](#topic-125022)
  - [CODE](#topic-125023)
  - [COUNT_CHAR](#topic-125024)
  - [COUNT_SUBSTRING](#topic-125025)
  - [DEC_TO_BYTE](#topic-125026)
  - [DEC_TO_DWORD](#topic-125027)
  - [DEC_TO_INT](#topic-125028)
  - [DEL_CHARS](#topic-125029)
  - [DT_TO_STRF](#topic-125030)
  - [DWORD_TO_STRB](#topic-125031)
  - [DWORD_TO_STRF](#topic-125032)
  - [DWORD_TO_STRH](#topic-125033)
  - [EXEC](#topic-125034)
  - [FILL](#topic-125035)
  - [FIND_CHAR](#topic-125036)
  - [FIND_CTRL](#topic-125037)
  - [FIND_NONUM](#topic-125038)
  - [FIND_NUM](#topic-125039)
  - [FINDB](#topic-125040)
  - [FINDB_NONUM](#topic-125041)
  - [FINDB_NUM](#topic-125042)
  - [FINDP](#topic-125043)
  - [FIX](#topic-125044)
  - [FLOAT_TO_REAL](#topic-125045)
  - [FSTRING_TO_BYTE](#topic-125046)
  - [FSTRING_TO_DT](#topic-125047)
  - [FSTRING_TO_DWORD](#topic-125048)
  - [FSTRING_TO_MONTH](#topic-125049)
  - [FSTRING_TO_WEEK](#topic-125050)
  - [FSTRING_TO_WEEKDAY](#topic-125051)
  - [HEX_TO_BYTE](#topic-125052)
  - [HEX_TO_DWORD](#topic-125053)
  - [IS_ALNUM](#topic-125054)
  - [IS_ALPHA](#topic-125055)
  - [IS_CC](#topic-125056)
  - [IS_CTRL](#topic-125057)
  - [IS_HEX](#topic-125058)
  - [IS_LOWER](#topic-125059)
  - [IS_NCC](#topic-125060)
  - [IS_NUM](#topic-125061)
  - [IS_UPPER](#topic-125062)
  - [ISC_ALPHA](#topic-125063)
  - [ISC_CTRL](#topic-125064)
  - [ISC_HEX](#topic-125065)
  - [ISC_LOWER](#topic-125066)
  - [ISC_NUM](#topic-125067)
  - [ISC_UPPER](#topic-125068)
  - [LOWERCASE](#topic-125069)
  - [MASSAGE_8](#topic-125070)
  - [MASSAGE_4R](#topic-125071)
  - [MIRROR](#topic-125072)
  - [MONTH_TO_STRING](#topic-125073)
  - [OCT_TO_BYTE](#topic-125074)
  - [OCT_TO_DWORD](#topic-125075)
  - [REAL_TO_STRF](#topic-125076)
  - [REPLACE_ALL](#topic-125077)
  - [REPLACE_CHARS](#topic-125078)
  - [REPLACE_UML](#topic-125079)
  - [TICKER](#topic-125080)
  - [TO_LOWER](#topic-125081)
  - [TO_UML](#topic-125082)
  - [TO_UPPER](#topic-125083)
  - [TRIM](#topic-125084)
  - [TRIM1](#topic-125085)
  - [TRIME](#topic-125086)
  - [UPPERCASE](#topic-125087)
  - [WEEKDAY_TO_STRING](#topic-125088)
- [Модули памяти](#topic-125089)
  - [FIFO_16](#topic-125090)
  - [FIFO_32](#topic-125091)
  - [STACK_16](#topic-125092)
  - [STACK_32](#topic-125093)
- [Генераторы импульсов](#topic-125094)
  - [A_TRIG](#topic-125095)
  - [B_TRIG](#topic-125096)
  - [CLICK_CNT](#topic-125097)
  - [CLICK_DEC](#topic-125098)
  - [CLK_DIV](#topic-125099)
  - [CLK_N](#topic-125100)
  - [CLK_PRG](#topic-125101)
  - [CLK_PULSE](#topic-125102)
  - [CYCLE_4](#topic-125103)
  - [D_TRIG](#topic-125104)
  - [GEN_BIT](#topic-125105)
  - [GEN_SQ](#topic-125106)
  - [SCHEDULER](#topic-125107)
  - [SCHEDULER_2](#topic-125108)
  - [SEQUENCE_4](#topic-125109)
  - [SEQUENCE_8](#topic-125110)
  - [SEQUENCE_64](#topic-125111)
  - [TMAX](#topic-125112)
  - [TMIN](#topic-125113)
  - [TOF_1](#topic-125114)
  - [TONOF](#topic-125115)
  - [TP_1](#topic-125116)
  - [TP_1D](#topic-125117)
  - [TP_X](#topic-125118)
- [Логические модули](#topic-125119)
  - [BCDC_TO_INT](#topic-125120)
  - [BIT_COUNT](#topic-125121)
  - [BIT_LOAD_B](#topic-125122)
  - [BIT_LOAD_B2](#topic-125123)
  - [BIT_LOAD_DW](#topic-125124)
  - [BIT_LOAD_DW2](#topic-125125)
  - [BIT_LOAD_W](#topic-125126)
  - [BIT_LOAD_W2](#topic-125127)
  - [BIT_OF_DWORD](#topic-125128)
  - [BIT_TOGGLE_B](#topic-125129)
  - [BIT_TOGGLE_DW](#topic-125130)
  - [BIT_TOGGLE_W](#topic-125131)
  - [BYTE_OF_BIT](#topic-125132)
  - [BYTE_OF_DWORD](#topic-125133)
  - [BYTE_TO_BITS](#topic-125134)
  - [BYTE_TO_GRAY](#topic-125135)
  - [CHECK_PARITY](#topic-125136)
  - [CHK_REAL](#topic-125137)
  - [CRC_GEN](#topic-125138)
  - [DEC_2](#topic-125139)
  - [DEC_4](#topic-125140)
  - [DEC_8](#topic-125141)
  - [DW_TO_REAL](#topic-125142)
  - [DWORD_OF_BYTE](#topic-125143)
  - [DWORD_OF_WORD](#topic-125144)
  - [GRAY_TO_BYTE](#topic-125145)
  - [INT_TO_BCDC](#topic-125146)
  - [MATRIX](#topic-125147)
  - [MUX_2](#topic-125148)
  - [MUX_4](#topic-125149)
  - [PARITY](#topic-125150)
  - [REAL_TO_DW](#topic-125151)
  - [REFLECT](#topic-125152)
  - [REVERSE](#topic-125153)
  - [SHL1](#topic-125154)
  - [SHR1](#topic-125155)
  - [SWAP_BYTE](#topic-125156)
  - [SWAP_BYTE2](#topic-125157)
  - [WORD_OF_BYTE](#topic-125158)
  - [WORD_OF_DWORD](#topic-125159)
- [Триггеры, элементы хранения и регистры сдвига](#topic-125160)
  - [COUNT_BR](#topic-125161)
  - [COUNT_DR](#topic-125162)
  - [FF_D2E](#topic-125163)
  - [FF_D4E](#topic-125164)
  - [FF_DRE](#topic-125165)
  - [FF_JKE](#topic-125166)
  - [FF_RSE](#topic-125167)
  - [LTCH](#topic-125168)
  - [LTCH_4](#topic-125169)
  - [SELECT_8](#topic-125170)
  - [SHR_4E](#topic-125171)
  - [SHR_4UDE](#topic-125172)
  - [SHR_8PLE](#topic-125173)
  - [SHR_8UDE](#topic-125174)
  - [STORE_8](#topic-125175)
  - [TOGGLE](#topic-125176)
- [Генераторы сигналов](#topic-125177)
  - [\_RMP_B](#topic-125178)
  - [\_RMP_NEXT](#topic-125179)
  - [\_RMP_W](#topic-125180)
  - [GEN_PULSE](#topic-125181)
  - [GEN_PW2](#topic-125182)
  - [GEN_RDM](#topic-125183)
  - [GEN_RDT](#topic-125184)
  - [GEN_RMP](#topic-125185)
  - [GEN_SIN](#topic-125186)
  - [GEN_SQR](#topic-125187)
  - [PWM_DC](#topic-125188)
  - [PWM_PW](#topic-125189)
  - [RMP_B](#topic-125190)
  - [RMP_SOFT](#topic-125191)
  - [RMP_W](#topic-125192)
- [Обработка сигналов](#topic-125193)
  - [AIN](#topic-125194)
  - [AIN1](#topic-125195)
  - [AOUT](#topic-125196)
  - [AOUT1](#topic-125197)
  - [BYTE_TO_RANGE](#topic-125198)
  - [DELAY](#topic-125199)
  - [DELAY_4](#topic-125200)
  - [FADE](#topic-125201)
  - [FILTER_DW](#topic-125202)
  - [FILTER_I](#topic-125203)
  - [FILTER_MAV_DW](#topic-125204)
  - [FILTER_MAV_W](#topic-125205)
  - [FILTER_W](#topic-125206)
  - [FILTER_WAV](#topic-125207)
  - [MIX](#topic-125208)
  - [MUX_R2](#topic-125209)
  - [MUX_R4](#topic-125210)
  - [OFFSET](#topic-125211)
  - [OFFSET2](#topic-125212)
  - [OVERRIDE](#topic-125213)
  - [RANGE_TO_BYTE](#topic-125214)
  - [RANGE_TO_WORD](#topic-125215)
  - [SCALE](#topic-125216)
  - [SCALE_B](#topic-125217)
  - [SCALE_B2](#topic-125218)
  - [SCALE_B4](#topic-125219)
  - [SCALE_B8](#topic-125220)
  - [SCALE_D](#topic-125221)
  - [SCALE_R](#topic-125222)
  - [SCALE_X2](#topic-125223)
  - [SCALE_X4](#topic-125224)
  - [SCALE_X8](#topic-125225)
  - [SEL2_OF_3](#topic-125226)
  - [SEL2_OF_3B](#topic-125227)
  - [SH](#topic-125228)
  - [SH_1](#topic-125229)
  - [SH_2](#topic-125230)
  - [SH_T](#topic-125231)
  - [STAIR](#topic-125232)
  - [STAIR2](#topic-125233)
  - [TREND](#topic-125234)
  - [TREND_DW](#topic-125235)
  - [WORD_TO_RANGE](#topic-125236)
- [Термометры сопротивления](#topic-125237)
  - [MULTI_IN](#topic-125238)
  - [RES_NI](#topic-125239)
  - [RES_NTC](#topic-125240)
  - [RES_PT](#topic-125241)
  - [RES_SI](#topic-125242)
  - [SENSOR_INT](#topic-125243)
  - [TEMP_NI](#topic-125244)
  - [TEMP_NTC](#topic-125245)
  - [TEMP_PT](#topic-125246)
  - [TEMP_SI](#topic-125247)
- [Модули измерения и отсчета времени](#topic-125248)
  - [ALARM_2](#topic-125249)
  - [BAR_GRAPH](#topic-125250)
  - [CALIBRATE](#topic-125251)
  - [CYCLE_TIME](#topic-125252)
  - [DT_SIMU](#topic-125253)
  - [FLOW_METER](#topic-125254)
  - [M_D](#topic-125255)
  - [M_T](#topic-125256)
  - [M_TX](#topic-125257)
  - [METER](#topic-125258)
  - [METER_STAT](#topic-125259)
  - [ONTIME](#topic-125260)
  - [T_PLC_MS](#topic-125261)
  - [T_PLC_US](#topic-125262)
  - [TC_MS](#topic-125263)
  - [TC_S](#topic-125264)
  - [TC_US](#topic-125265)
- [Конвертация величин](#topic-125266)
  - [ASTRO](#topic-125267)
  - [BFT_TO_MS](#topic-125268)
  - [C_TO_F](#topic-125269)
  - [C_TO_K](#topic-125270)
  - [DEG_TO_DIR](#topic-125271)
  - [DIR_TO_DEG](#topic-125272)
  - [ENERGY](#topic-125273)
  - [F_TO_C](#topic-125274)
  - [F_TO_OM](#topic-125275)
  - [F_TO_PT](#topic-125276)
  - [GEO_TO_DEG](#topic-125277)
  - [K_TO_C](#topic-125278)
  - [KMH_TO_MS](#topic-125279)
  - [LENGHT](#topic-125280)
  - [MS_TO_BFT](#topic-125281)
  - [MS_TO_KMH](#topic-125282)
  - [OM_TO_F](#topic-125283)
  - [PRESSURE](#topic-125284)
  - [PT_TO_F](#topic-125285)
  - [SPEED](#topic-125286)
  - [TEMPERATURE](#topic-125287)
- [Регуляторы](#topic-125288)
  - [BAND_B](#topic-125289)
  - [CONTROL_SET1](#topic-125290)
  - [CONTROL_SET2](#topic-125291)
  - [CTRL_IN](#topic-125292)
  - [CTRL_OUT](#topic-125293)
  - [CTRL_PI](#topic-125294)
  - [CTRL_PID](#topic-125295)
  - [CTRL_PWM](#topic-125296)
  - [DEAD_BAND](#topic-125297)
  - [DEAD_BAND_A](#topic-125298)
  - [DEAD_ZONE](#topic-125299)
  - [DEAD_ZONE2](#topic-125300)
  - [FT_DERIV](#topic-125301)
  - [FT_IMP](#topic-125302)
  - [FT_INT](#topic-125303)
  - [FT_INT2](#topic-125304)
  - [FT_PD](#topic-125305)
  - [FT_PDT1](#topic-125306)
  - [FT_PI](#topic-125307)
  - [FT_PID](#topic-125308)
  - [FT_PIDW](#topic-125309)
  - [FT_PIDWL](#topic-125310)
  - [FT_PIW](#topic-125311)
  - [FT_PIWL](#topic-125312)
  - [FT_PT1](#topic-125313)
  - [FT_PT2](#topic-125314)
  - [FT_TN8](#topic-125315)
  - [FT_TN16](#topic-125316)
  - [FT_TN64](#topic-125317)
  - [HYST](#topic-125318)
  - [HYST_1](#topic-125319)
  - [HYST_2](#topic-125320)
  - [HYST_3](#topic-125321)
  - [INTEGRATE](#topic-125322)
- [Модули управления](#topic-125323)
  - [DRIVER_1](#topic-125324)
  - [DRIVER_4](#topic-125325)
  - [DRIVER_4C](#topic-125326)
  - [FLOW_CONTROL](#topic-125327)
  - [FT_PROFILE](#topic-125328)
  - [INC_DEC](#topic-125329)
  - [INTERLOCK](#topic-125330)
  - [INTERLOCK_4](#topic-125331)
  - [MANUAL](#topic-125332)
  - [MANUAL_1](#topic-125333)
  - [MANUAL_2](#topic-125334)
  - [MANUAL_4](#topic-125335)
  - [PARSET](#topic-125336)
  - [PARSET2](#topic-125337)
  - [SIGNAL](#topic-125338)
  - [SIGNAL_4](#topic-125339)
  - [SRAMP](#topic-125340)
  - [TUNE](#topic-125341)
  - [TUNE2](#topic-125342)
- [Работа с буфером](#topic-125343)
  - [\_BUFFER_CLEAR](#topic-125344)
  - [\_BUFFER_INIT](#topic-125345)
  - [\_BUFFER_INSERT](#topic-125346)
  - [\_BUFFER_UPPERCASE](#topic-125347)
  - [\_STRING_TO_BUFFER](#topic-125348)
  - [BUFFER_COMP](#topic-125349)
  - [BUFFER_SEARCH](#topic-125350)
  - [BUFFER_TO_STRING](#topic-125351)
- [Работа со списками](#topic-125352)
  - [LIST_ADD](#topic-125353)
  - [LIST_CLEAN](#topic-125354)
  - [LIST_GET](#topic-125355)
  - [LIST_INSERT](#topic-125356)
  - [LIST_LEN](#topic-125357)
  - [LIST_NEXT](#topic-125358)
  - [LIST_RETRIEVE](#topic-125359)
  - [LIST_RETRIEVE_LAST](#topic-125360)

<a id="topic-124775"></a>

## Введение

OSCAT (Open Source Community for Automation Technology) — это открытая библиотека программных компонентов для промышленной автоматизации. Авторство библиотеки принадлежит сообществу **OSCAT** [*oscat.de*](https://oscat.de/).

При написании данного руководства использовался перевод описания библиотеки OSCAT Basic от сайта [*oscat.ru*](https://oscat.ru/). Выражаем огромную благодарность авторам перевода за проделанную работу.

<a id="topic-124776"></a>

## Цель документа

Библиотека OSCAT содержит программные модули (функции и функциональные блоки), использующиеся для разработки прикладного программного обеспечения ПЛК,

Данный документ содержит описание алгоритмов работы блоков, входные/выходные параметры и типы данных каждого блока, и предназначен для ознакомления с составом библиотеки.

Для полного понимания принципов работы в среде необходимо ознакомиться с руководством пользователя ALTA IDE.

<a id="topic-124777"></a>

## Установка библиотеки

Чтобы подключить библиотеку к проекту:

1. Откройте редактор **Менеджер библиотек** одним из способов:

- дважды нажмите ЛКМ на системную папку **Менеджер библиотек** в дереве проекта;

- или нажмите ПКМ на системную папку **Менеджер библиотек** в дереве проекта и выберите в контекстном меню пункт **Открыть**:

  ![Менеджер библиотек открыть](https://docs.owen.ru/book_img/2417/164477.png)

- В редакторе **Менеджер библиотек** откройте вкладку **Магазин**.

- Выберите библиотеку **OSCAT** и нажмите кнопку **Подключить** на карточке библиотеки.

- Библиотека добавится в проект и отобразится на вкладке **Мои библиотеки** в редакторе **Менеджер библиотек**.

<a id="topic-124778"></a>

## Описание библиотеки OSCAT

### Прямой доступ к памяти

Названия модулей, изменяющих значения своих входных переменных с помощью указателей (например, \_ARRAY_SORT), начинаются с символа нижнего подчеркивания («\_»). Функция **\_ARRAY_SORT** сортирует массив с помощью прямого доступа к памяти, что является очень эффективным решением, поскольку позволяет обойтись без промежуточных массивов (и, соответственно, сэкономить память), а также уменьшить время сортировки (т.к. не потребуется копировать данные из входного массива в промежуточные). Тем не менее, данные модули должны использоваться только опытными специалистами, поскольку их некорректный вызов может привести к серьезным ошибкам (вплоть до прекращения работы приложения). В частности, при вызове таких функций необходимо делать проверку на то, что значения указателей не являются нулевыми или неопределенными.

### Названия модулей

Модули, названия которых начинаются с префикса **FT\_**, подразумевают использование на некотором отрезке времени (например, ФБ FT_AVG вычисляет среднее значение переменной по заданному количеству срезов, и его однократный вызов не приведет к желаемому результату).

Модули, названия которых начинаются с префикса **F\_**, подразумевают однократный вызов (например, функция F_LIN возвращает значение линейной функции с заданными коэффициентами, и ее вызов имеет смысл только в том случае, если значение одной из входных переменных изменилось).

> [!NOTE]
> **Примечание.** Данное соглашение распространяется на модули из раздела Арифметические функции и Регуляторы.

### Параметры модулей

Чтобы облегчить процесс разработки и упростить работу со сложными функциями, многие модули библиотеки **OSCAT** имеют параметры. Параметры представляют переменные класса **VAR_INPUT CONSTANT**, которые задаются при вызове модуля и не могут изменить свои значения в процессе его работы.

На языке **ST** значения параметров задаются непосредственно при вызове модуля:

Пример вызова модуля с параметрами:

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code> <?Pub _font FontColor="#7B8DF7"?>OSCAT_BASIC<?Pub /_font?><?Pub _font
FontColor="white"?>.SCHEDULER_0(T<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?><?Pub /_font?><?Pub _font FontColor="white"?>tT1,<?Pub /_font?> <?Pub _font
FontColor="white"?>T3<?Pub /_font?> <?Pub _font FontColor="#EF7244"
?>:=<?Pub /_font?> <?Pub _font FontColor="#99FF66"?>T#200MS<?Pub /_font
?><?Pub _font FontColor="white"?>);<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

### Отчеты о событиях и ошибках (ESR)

Модули, выполняющие сложные функции, обычно имеют выход **Error**, который используется для сигнализации о возникших ошибках. Значение **0** соответствует нормальной работе модуля. При возникновении ошибок выход принимает значение из диапазона **1...99** – это значение соответствует коду ошибки. Расшифровка кодов приводится в описании соответствующего модуля.

Выход **Status** выполняет аналогичную функцию, но содержит коды не ошибок, а состояний модуля (например, включен/остановлен/выключен). Диапазон кодов состояний: **100…199**. Диапазон **200…255** зарезервирован для отладочных сообщений.

ESR-модули позволяют собирать информацию об ошибках и состояниях с метками времени, которая при необходимости может быть сохранена в архив или передана на верхний уровень АСУ (реализация архивации и передачи должны быть выполнена пользователем). Это позволяет с помощью стандартных возможностей библиотеки вести аварийные и оперативные журналы, не используя дополнительный функционал системы. Описание ESR-модулей приведено в разделе [специальные функции](#topic-124794).

Библиотека OSCAT содержит:

- [глобальные переменные](#topic-124779);
- [типы данных](#topic-124780);
- [специальные функции](#topic-124794);
- [математические функции](#topic-124801);
- [работа с массивами](#topic-124868);
- [комплексная арифметика](#topic-124887);
- [арифметика чисел двойной точности](#topic-124914);
- [арифметические функции](#topic-124920);
- [геометрические функции](#topic-124932);
- [операции над векторами](#topic-124941);
- [дата и время](#topic-124956);
- [работа со строками](#topic-125013);
- [модули памяти](#topic-125089);
- [генераторы импульсов](#topic-125094);
- [логические модули](#topic-125119);
- [триггеры, элементы хранения и регистры сдвига](#topic-125160);
- [генераторы сигналов](#topic-125177);
- [обработка сигналов](#topic-125193);
- [термометры сопротивления](#topic-125237);
- [модули изменения и отсчета времени](#topic-125248);
- [конвертация величин](#topic-125266);
- [регуляторы](#topic-125288);
- [модули управления](#topic-125323);
- [работа с буфером](#topic-125343);
- [работа со списками](#topic-125352).

<a id="topic-124779"></a>

## Глобальные переменные

В библиотеке OSCAT физические и математические константы представлены в виде глобальных переменных.

**Глобальные переменные**

| Название переменной | Тип | Описание |
| --- | --- | --- |
| MATH | [CONSTANTS_MATH](#topic-124785) | Структура CONSTANTS_MATH определяет математические константы. |
| PHYS | [CONSTANTS_PHYS](#topic-124786) | Структура CONSTANTS_PHYS определяет физические константы. |
| LANGUAGE | [CONSTANTS_LANGUAGE](#topic-124783) | Структура CONSTANTS_LANGUAGE определяет языковые константы. |
| SETUP | [CONSTANTS_SETUP](#topic-124787) | Структура CONSTANTS_SETUP определяет вспомогательные константы для работы со строками и временем. |
| LOCATION | [CONSTANTS_LOCATION](#topic-124784) | Структура CONSTANTS_LOCATION определяет языки регионов. |

**Глобальные константы**

| Название переменной | Тип | Описание |
| --- | --- | --- |
| String_Length | INT | Используется в функциях работы со строками для определения их размеров. Значение по умолчанию – 250. Рекомендуется использовать эту константу при объявлении всех строковых переменных приложения. |
| List_Length | INT | Используется для определения размеров [списков](#topic-125352). Значение по умолчанию – 250. |

<a id="topic-124780"></a>

## Типы данных

<a id="topic-124781"></a>

### CALENDAR

Структура **CALENDAR** содержит подробную информацию о текущей дате и времени. Она используется при работе с ФБ [CALENDAR_CALC](#topic-124957).

| Переменная структуры | Тип | Описание |
| --- | --- | --- |
| UTC | DT | Дата и время по UTC |
| LDT | DT | Местные дата и время |
| LDATE | DATE | Дата по LDT |
| LTOD | TOD | Время по LDT |
| YEAR | INT | Год по LDT |
| MONTH | INT | Месяц по LDT |
| DAY | INT | День по LDT |
| WEEKDAY | INT | День недели по LDT (**1** – понедельник, **7** – воскресенье) |
| OFFSET | INT | Смещение LDT относительно UTC в минутах |
| DST_EN | BOOL | Управление режимом летнего времени (**TRUE** – включить, **FALSE** – выключить). |
| DST_ON | BOOL | Флаг режима летнего времени (**TRUE** – включен, **FALSE** – отключен) |
| NAME | STRING(5) | Название часового пояса |
| LANGUAGE | INT | Язык региона. Используется для определения названий месяцев и дней |
| LONGITUDE | REAL | Долгота |
| LATITUDE | REAL | Широта |
| SUN_RISE | TOD | Время восхода солнца по LDT |
| SUN_SET | TOD | Время заката солнца по LDT |
| SUN_MIDDAY | TOD | Время солнечного полудня по UTC |
| SUN_HEIGHT | REAL | Склонение солнца над горизонтом в градусах |
| SUN_HOR | REAL | Азимут |
| SUN_VER | REAL | Высота солнца над горизонтом в градусах с учетом рефракции |
| NIGHT | BOOL | Флаг «Сейчас ночь» |
| HOLIDAY | BOOL | Флаг «Сегодня праздник» |
| HOLY_NAME | STRING(30) | Название праздника |
| WORK_WEEK | INT | Номер недели в году (начиная с **1**) |

<a id="topic-124782"></a>

### COMPLEX

Структура **COMPLEX** используется для представления комплексных чисел. Модули работы с комплексными числами описаны в разделе [Комплексная арифметика](#topic-124887).

| Переменная структуры | Тип | Описание |
| --- | --- | --- |
| re | REAL | Действительная часть комплексного числа |
| im | REAL | Мнимая часть комплексного числа |

<a id="topic-124783"></a>

### CONSTANTS_LANGUAGE

Структура **CONSTANTS_LANGUAGE** используется для задания параметров языков проекта. По умолчанию структура определяет три языка – английский, немецкий и французский. Для работы со структурой используется [глобальная переменная](#topic-124779) **LANGUAGE**.

| Переменная структуры | Тип | Описание |
| --- | --- | --- |
| DEFAULT | INT | Язык по умолчанию. Языковые модули библиотеки в качестве входа принимают код языка. Значение **0** соответствует языку по умолчанию, значения от **1** до **LMAX** – одному из языков проекта |
| LMAX | INT | Количество языков проекта. Значение по умолчанию – **3** (см. размерность следующих массивов) |
| WEEKDAYS | ARRAY \[1..**3**, 1..7\] OF STRING(10) | Полные названия дней недели (**Monday**) для всех языков проекта |
| WEEKDAYS2 | ARRAY \[1..**3**, 1..7\] OF STRING(2) | Сокращенные названия дней недели (**Mo**) для всех языков проекта |
| MONTHS | ARRAY \[1..**3**, 1..12\] OF STRING(10) | Полные названия месяцев (**January**) для всех языков проекта |
| MONTHS3 | ARRAY \[1..**3**, 1..12\] OF STRING(3) | Сокращенные названия месяцев (**Jan**) для всех языков проекта |
| DIRS | ARRAY \[1..**3**, 0..15\] OF STRING(3) | Обозначения румбов для всех языков проекта |

<a id="topic-124784"></a>

### CONSTANTS_LOCATION

Структура **CONSTANTS_LOCATION** используется для задания языков регионов. По умолчанию структура определяет пять регионов, в каждом из которых используется немецкий язык. Для работы со структурой применяется [глобальная переменная](#topic-124779) **LOCATION**.

| Переменная структуры | Тип | Описание |
| --- | --- | --- |
| DEFAULT | INT | Регион по умолчанию. |
| LMAX | INT | Количество языков проекта. Значение по умолчанию – **5**. |
| LANGUAGE | ARRAY \[1..**5**\] OF INT | Коды языков для регионов проекта. |

<a id="topic-124785"></a>

### CONSTANTS_MATH

Структура **CONSTANTS_MATH** определяет математические константы. Для работы со структурой применяется [глобальная переменная](#topic-124779) **MATH**.

| Переменная структуры | Тип | Точность (количество знаков после запятой) | Описание |
| --- | --- | --- | --- |
| PI | REAL | 35 | Число Пи |
| PI2 | REAL | 35 | Число Пи ∙ 2 |
| PI4 | REAL | 35 | Число Пи ∙ 4 |
| PI05 | REAL | 13 | Число Пи / 2 |
| PI025 | REAL | 15 | Число Пи / 4 |
| PI_INV | REAL | 15 | 1 / число Пи |
| E | REAL | 35 | Число Эйлера |
| E_INV | REAL | 15 | 1 / число Эйлера |
| SQ2 | REAL | 13 | Квадратный корень из 2 |
| FACTS | ARRAY \[0..12\] OF DINT | - | Факториалы чисел от 0 до 12 |

<a id="topic-124786"></a>

### CONSTANTS_PHYS

Структура **CONSTANTS_PHYS** определяет физические константы. Для работы со структурой применяется [глобальная переменная](#topic-124779) **PHYS**.

| Переменная структуры | Тип | Точность (количество знаков после запятой) | Описание |
| --- | --- | --- | --- |
| C | REAL | - | Скорость света, м/с |
| E | REAL | 8 | Элементарный электрический заряд, Кл |
| G | REAL | 5 | Ускорение свободного падения, м/c<sup>2</sup> |
| T0 | REAL | 2 | Абсолютный нуль температуры, °С |
| RU | REAL | 6 | Универсальная газовая постоянная, Дж/(моль∙ К). |
| PN | REAL | - | Нормальное атмосферное давление, Па |

<a id="topic-124787"></a>

### CONSTANTS_SETUP

Структура **CONSTANTS_SETUP** определяет вспомогательные константы для работы со строками и временем. Для работы со структурой применяется [глобальная переменная](#topic-124779) **SETUP**.

| Переменная структуры | Тип | Описание |
| --- | --- | --- |
| EXTENDED_ASCII | BOOL | Флаг использования верхней половины таблицы ASCII |
| CHARNAME | ARRAY \[1..4\] OF STRING(253) | Содержит символы Юникода |
| MTH_OFS | ARRAY \[1..12\] OF INT | Содержит номера последних дней месяцев календарного года (0, 31, 59, 70 и т.д.) |
| DECADES | ARRAY \[0..8\] OF REAL | Массив результатов возведения в степень числа 10 |

<a id="topic-124788"></a>

### ESR_DATA

Структура **ESR_DATA** используется [ESR-модулями](#topic-124794) для сбора информации об ошибках и изменении состояний модулей, поддерживающих данный функционал.

| Переменная структуры | Тип | Описание |
| --- | --- | --- |
| TYP | BYTE | Тип события |
| ADRESS | STRING(10) | Имя контролируемого параметра |
| DS | DT | Дата и время события |
| TS | TIME | Относительное время события (в мс после старта проекта) |
| DATA | ARRAY \[0..7\] OF BYTE | Информация о событии |

<a id="topic-124789"></a>

### FRACTION

Структура **FRACTION** используется для представления дробей.

| Переменная структуры | Тип | Описание |
| --- | --- | --- |
| NUMERATOR | INT | Числитель дроби |
| DENUMERATOR | INT | Знаменатель дроби |

<a id="topic-124790"></a>

### HOLIDAY_DATA

Структура **HOLIDAY_DATA** содержит информацию о праздниках. Крайне сложно дать емкое описание переменных структуры – гораздо проще объяснить принцип их использования на примерах.

| Переменная структуры | Тип | Описание |
| --- | --- | --- |
| NAME | STRING(30) | Название праздника |
| DAY | SINT | Cм. ниже |
| MONTH | SINT | Cм. ниже |
| USE | SINT | Cм. ниже |

С календарной точки зрения праздники можно разделить на две группы:

1. Праздники с фиксированной датой.
2. Переходящие праздники.

Для праздников с фиксированной датой переменные **DAY** и **MONTH** определяют дату проведения, а переменная **USE** характеризует, следует ли учитывать праздник модулям библиотеки (**1** – следует, **0** – не следует).

Пример объявления:

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#7B8DF7"?>ALL_SAINTS<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
?><?Pub _font FontColor="#7B8DF7"?>HOLIDAY_DATA<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>(NAME<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="aqua"?>'All Saints Day'<?Pub /_font?><?Pub _font
FontColor="white"?>,
                                     DAY<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
?>1<?Pub /_font?><?Pub _font FontColor="white"?>, 
                                     MONTH<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
?>11<?Pub /_font?><?Pub _font FontColor="white"?>, 
                                     USE<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
?>1<?Pub /_font?><?Pub _font FontColor="white"?>);<?Pub /_font?></code></td></tr></tbody></table></div></div>

Для переходящих праздников возможно два варианта определения:

1. Относительно заданного опорного праздника. Опорным считается праздник с **DAY**=**0** и **MONTH**=**0**:

   <div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#7B8DF7"?>ALL_SAINTS<?Pub /_font?><?Pub _font
   FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
   ?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
   ?><?Pub _font FontColor="#7B8DF7"?>HOLIDAY_DATA<?Pub /_font?> <?Pub _font
   FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
   ?>(NAME<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
   ?> <?Pub _font FontColor="aqua"?>'Пасха'<?Pub /_font?><?Pub _font
   FontColor="white"?>, 
                               DAY<?Pub /_font?>   <?Pub _font
   FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
   ?>0<?Pub /_font?><?Pub _font FontColor="white"?>, 
                               MONTH<?Pub /_font?> <?Pub _font
   FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
   ?>0<?Pub /_font?><?Pub _font FontColor="white"?>,
                               USE<?Pub /_font?>   <?Pub _font
   FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
   ?>1<?Pub /_font?><?Pub _font FontColor="white"?>);<?Pub /_font?></code></td></tr></tbody></table></div></div>

   День Святой Троицы является переходящим праздником – он отмечается спустя 50 дней после Пасхи (при этом Пасха считается 1-м днем). Тогда объявить его можно следующим образом:

   <div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#7B8DF7"?>SAINT_TRINITY_DAY<?Pub /_font?><?Pub _font
   FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
   ?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
   ?><?Pub _font FontColor="#7B8DF7"?>HOLIDAY_DATA<?Pub /_font?> <?Pub _font
   FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
   ?>(NAME<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
   ?> <?Pub _font FontColor="aqua"?>'Святая Троица'<?Pub /_font?><?Pub _font
   FontColor="white"?>, 
                                      DAY<?Pub /_font?>   <?Pub _font
   FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
   ?>49<?Pub /_font?><?Pub _font FontColor="white"?>, 
                                      MONTH<?Pub /_font?> <?Pub _font
   FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
   ?>0<?Pub /_font?><?Pub _font FontColor="white"?>,
                                      USE<?Pub /_font?>   <?Pub _font
   FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
   ?>1<?Pub /_font?><?Pub _font FontColor="white"?>);<?Pub /_font?></code></td></tr></tbody></table></div></div>

   В переменной **DAY** указывается смещение (положительное или отрицательное) относительно опорного праздника, переменная **MONTH** задается нулем.

2. Относительно заданной даты. Например, немецкий праздник День покаяния и молитвы празднуется в последнюю среду перед началом Адвента. Соответственно, если дата Адвента известна (в 2016-м году это **27-ое ноября**), то праздник можно определить следующим образом:

   <div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#7B8DF7"?>BUSS_UND_BETAG<?Pub /_font?><?Pub _font
   FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
   ?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
   ?><?Pub _font FontColor="#7B8DF7"?>HOLIDAY_DATA<?Pub /_font?> <?Pub _font
   FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
   ?>(NAME<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
   ?> <?Pub _font FontColor="aqua"?>'Buss und Betag'<?Pub /_font?><?Pub _font
   FontColor="white"?>,
                                   DAY<?Pub /_font?>   <?Pub _font
   FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
   ?>27<?Pub /_font?><?Pub _font FontColor="white"?>,
                                   MONTH<?Pub /_font?> <?Pub _font
   FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
   ?>11<?Pub /_font?><?Pub _font FontColor="white"?>,
                                   USE<?Pub /_font?>   <?Pub _font
   FontColor="#EF7244"?>:= -<?Pub /_font?><?Pub _font FontColor="#FF99CC"
   ?>3<?Pub /_font?><?Pub _font FontColor="white"?>);<?Pub /_font?></code></td></tr></tbody></table></div></div>

   Переменная **USE** в данном случае определяет день недели перед заданной датой (где **-1** соответствует понедельнику … -7 соответствует воскресенью).

В приведенных выше примерах праздники объявляются по одному, но в большинстве случаев удобнее представить их сразу в виде массива:

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#7B8DF7"?>HOLIDAYS_RU<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
?><?Pub _font FontColor="#7B8DF7"?>ARRAY<?Pub /_font?> <?Pub _font
FontColor="white"?>[<?Pub /_font?><?Pub _font FontColor="#FF99CC"
?>0<?Pub /_font?><?Pub _font FontColor="white"?>..<?Pub /_font?><?Pub _font
FontColor="#FF99CC"?>29<?Pub /_font?><?Pub _font FontColor="white"
?>]<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"?>OF HOLIDAY_DATA<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124791"></a>

### REAL2

Структура **REAL2** используется для представления чисел двойной точности на системах без поддержки переменных типа **LREAL**, но только при работе с определенными функциями и рядом ограничений. Модули работы с числами двойной точности описаны в разделе [Арифметика чисел двойной точности](#topic-124914).

Пример представления: 11.2222222233 = RX + R1, где:

RX=11.2222222,

R1=0.0000000033.

| Переменная структуры | Тип | Описание |
| --- | --- | --- |
| R1 | REAL | Разность между числом двойной точности и R1 |
| RX | REAL | Число двойной точности, округленное до REAL |

<a id="topic-124792"></a>

### SDT

Структура **SDT** используется для определения разрядов даты и времени.

| Переменная структуры | Тип | Описание |
| --- | --- | --- |
| YEAR | INT | Год |
| MONTH | INT | Месяц |
| DAY | INT | День |
| WEEKDAY | INT | День недели (**1** – понедельник, **7** – воскресенье) |
| HOUR | INT | Часы |
| MINUTE | INT | Минуты |
| SECOND | INT | Секунды |
| MS | INT | Миллисекунды |

<a id="topic-124793"></a>

### VECTOR_3

Структура **VECTOR_3** определяет радиус-вектор в трехмерном пространстве. Модули работы с векторами описаны в разделе [Операции над векторами](#topic-124941).

| Переменная структуры | Тип | Описание |
| --- | --- | --- |
| X | REAL | Координата X |
| Y | REAL | Координата Y |
| Z | REAL | Координата Z |

<a id="topic-124794"></a>

## Специальные функции

<a id="topic-124795"></a>

### ESR_COLLECT

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | ESR_0…ESR_7 | ARRAY \[0…3\] OF [ESR_DATA](#topic-124788) | Массив входных данных |
| Входы | rst | BOOL | Сигнал удаления данных |
| Выходы | ESR_OUT | ARRAY \[0…31\] OF [ESR_DATA](#topic-124788) | Массив выходных данных |
| Входы-выходы | pos | INT | Номер последнего записанного элемента выходного массива |
| Используемые модули | [INC1](#topic-124839) | [INC1](#topic-124839) | [INC1](#topic-124839) |

> [!WARNING]
> **Внимание.** В текущей версии библиотеки ФБ работает **некорректно**. Для корректной работы необходимо отредактировать код ФБ следующим образом:

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#99FFFF"?>IF<?Pub /_font?> <?Pub _font
FontColor="#7B8DF7"?>rst<?Pub /_font?> <?Pub _font FontColor="white"
?>OR<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"?>cnt<?Pub /_font
?> <?Pub _font FontColor="white"?>&lt;<?Pub /_font?> <?Pub _font
FontColor="#FF99CC"?>0<?Pub /_font?> <?Pub _font FontColor="#99FFFF"
?>THEN<?Pub /_font?>
   <?Pub _font FontColor="#7B8DF7"?>pos<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#EF7244"
?>-<?Pub /_font?><?Pub _font FontColor="#FF99CC"?>1<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
   <?Pub _font FontColor="#7B8DF7"?>cnt<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?>  <?Pub _font FontColor="#FF99CC"
?>0<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>     <?Pub _font FontColor="green"?>//bug-fix<?Pub /_font?></code></td></tr></tbody></table></div></div>

Функциональный блок **ESR_COLLECT** используется для сбора данных других ESR-модулей и сохранения их в массив. Входы **ESR_0...ESR_7** используются как значения для входов-выходов **ESR_Out** других ESR-модулей. При обновлении информации ESR-модулей, данные заносятся в массив **ESR_COLLECT.ESR_OUT**, при этом значение входа-выхода **pos** инкрементируется. Массив **ESR_COLLECT.ESR_OUT** может хранить до 32-х элементов типа [ESR_DATA](#topic-124788). При превышении этого количества начинается перезапись элементов (начиная с нулевого). По переднему фронту на входе **rst** происходит удаление всех данных модуля, после чего **pos** принимает значение **-1**.

<a id="topic-124796"></a>

### ESR_MON_B8

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | s_0…s_7 | BOOL | Сигналы для мониторинга |
| Входы | DT_in | DT | Текущие дата и время |
| Выходы | ESR_Flag | BOOL | Признак обновления данных |
| Входы-выходы | ESR_out | ARRAY \[0…3\] OF [ESR_DATA](#topic-124788) | Информация мониторинга |
| Параметры | a0…a7 | STRING(10) | Названия сигналов |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **ESR_MON_B8** применяется для мониторинга от одной до восьми переменных типа BOOL (**s0...s7**). На вход **DT_in** подается значение системного времени в формате DT (считанного с помощью одной из доступных пользователю библиотек). При изменении значения переменных **s0…s7** данные мониторинга сохраняются в массив **ESR_Out**, элементы которого являются экземплярами структуры типа [ESR_DATA](#topic-124788). Массив содержит 4 элемента и, соответственно, позволяет хранить данные мониторинга для четырех одновременно изменившихся переменных. Иными словами, при одновременном (произошедшем в одном цикле ПЛК) изменении всех восьми переменных будет сохранена информация только о четырех (приоритет отдается сигналам с меньшим номером). Для ведения архива мониторинга можно использовать ФБ [ESR_COLLECT](#topic-124795). Выход **ESR_flag** принимает значение **TRUE** на один цикл при обновлении данных мониторинга.

Структура [ESR_DATA](#topic-124788) включает следующую информацию:

| Переменная структуры | Тип | Описание |
| --- | --- | --- |
| TYP | BYTE | Тип изменения переменной типа BOOL.<br>**11** – с FALSE на TRUE, **10** – c TRUE на FALSE<br>Изменяется только на один цикл, после чего сбрасывается в 0 |
| ADRESS | STRING(10) | Описание переменной (указывается в параметрах модуля) |
| DS | DT | Дата и время изменения |
| TS | TIME | Относительное время изменения (в мс после старта проекта) |
| DATA | ARRAY \[0..7\] OF BYTE | Не используется данным ФБ |

<a id="topic-124797"></a>

### ESR_MON_R4

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | R0…R3 | BOOL | Сигналы для мониторинга |
| Входы | DT_in | DT | Текущие дата и время |
| Выходы | ESR_Flag | BOOL | Признак обновления данных |
| Входы-выходы | ESR_out | ARRAY \[0…3\] OF [ESR_DATA](#topic-124788) | Информация мониторинга |
| Параметры | a0…a3 | STRING(10) | Названия сигналов |
| Параметры | s0…s3 | REAL | Гистерезис сигналов |
| Используемые модули | [T_PLC_MS](#topic-125261), [DIFFER](#topic-124820) | [T_PLC_MS](#topic-125261), [DIFFER](#topic-124820) | [T_PLC_MS](#topic-125261), [DIFFER](#topic-124820) |

Функциональный блок **ESR_MON_R4** применяется для мониторинга от одной до четырех переменных типа REAL (**R0...R3**). На вход **DT_in** подается значение системного времени в формате DT (считанного с помощью одной из доступных пользователю библиотек). При изменении значения переменных **R0...R3** на величину **s0…s3** или выше данные мониторинга сохраняются в массив **ESR_Out**, элементы которого являются экземплярами структуры типа [ESR_DATA](#topic-124788). Массив содержит 4 элемента и, соответственно, позволяет хранить данные о последнем изменении для каждой переменной. Для ведения архива мониторинга можно использовать ФБ [ESR_COLLECT](#topic-124795). Выход **ESR_flag** принимает значение **TRUE** на один цикл при обновлении данных мониторинга.

Структура [ESR_DATA](#topic-124788) включает следующую информацию:

| Переменная структуры | Тип | Описание |
| --- | --- | --- |
| TYP | BYTE | Принимает значение **20** при изменении переменной.<br>Изменяется только на один цикл, после чего сбрасывается в 0 |
| ADRESS | STRING(10) | Описание переменной (указывается в параметрах модуля) |
| DS | DT | Дата и время изменения |
| TS | TIME | Относительное время изменения (в мс после старта проекта) |
| DATA | ARRAY \[0..7\] OF BYTE | В первых четырех байтах содержится новое значение переменной в формате **IEEE 754** |

<a id="topic-124798"></a>

### ESR_MON_X8

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | s0…s7 | BYTE | Сигналы для мониторинга |
| Входы | DT_in | DT | Текущие дата и время |
| Входы | Mode | BYTE | Режим работы блока |
| Выходы | ESR_Flag | BOOL | Признак обновления данных |
| Входы-выходы | ESR_out | ARRAY \[0…3\] OF [ESR_DATA](#topic-124788) | Информация мониторинга |
| Параметры | a0…a7 | STRING(10) | Названия сигналов |
| Используемые модули | [T_PLC_MS](#topic-125261), [STATUS_TO_ESR](#topic-124800) | [T_PLC_MS](#topic-125261), [STATUS_TO_ESR](#topic-124800) | [T_PLC_MS](#topic-125261), [STATUS_TO_ESR](#topic-124800) |

Функциональный блок **ESR_MON_X8** применяется для мониторинга от одной до восьми переменных типа BYTE (**s0...s7**), которые содержат информацию о состоянии других ФБ. Такие переменные обычно называются **Status**. В качестве примера можно привести выход **Status** ФБ [SEQUENCE_4](#topic-125109). На вход **DT_in** подается значение системного времени в формате DT (считанного с помощью одной из доступных пользователю библиотек). Вход **Mode** определяет режим работы блока:

- Mode=1 – обрабатываются только сообщения об ошибках;
- Mode=2 – обрабатываются сообщения об ошибках и состоянии ФБ;
- Mode=3 – обрабатываются сообщения об ошибках, состоянии ФБ.

При изменении значения переменных **s0...s7** данные мониторинга сохраняются в массив **ESR_Out**, элементы которого являются экземплярами структуры типа [ESR_DATA](#topic-124788). Массив содержит 4 элемента и, соответственно, позволяет хранить данные мониторинга для четырех одновременно изменившихся переменных. Иными словами, при одновременном (произошедшем в одном цикле ПЛК) изменении всех восьми переменных будет сохранена информация только о четырех (приоритет отдается сигналам с меньшим номером). Для ведения архива мониторинга можно использовать ФБ [ESR_COLLECT](#topic-124795). Выход **ESR_flag** принимает значение **TRUE** на один цикл при обновлении данных мониторинга.

Структура [ESR_DATA](#topic-124788) включает следующую информацию:

| Переменная структуры | Тип | Описание |
| --- | --- | --- |
| TYP | BYTE | Код статуса. Изменяется только на один цикл, после чего сбрасывается в 0 |
| ADRESS | STRING(10) | Описание переменной (указывается в параметрах модуля) |
| DS | DT | Дата и время изменения |
| TS | TIME | Относительное время изменения (в мс, после старта ПЛК) |
| DATA | ARRAY \[0..7\] OF BYTE | В нулевом байте содержится код статуса |

<a id="topic-124799"></a>

### OSCAT_VERSION

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Вход функции |
| Выходы | OSCAT_VERSION | DWORD | Версия библиотеки/дата релиза |

Функция **OSCAT_VERSION** возвращает версию библиотеки (в формате DWORD) при значении IN=FALSE и дату релиза данной версии (в формате DWORD) при значении IN=TRUE.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>xIn<?Pub /_font?>      <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>dwVer<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>   <?Pub _font FontColor="#5DA35B"?>(* версия библиотеки *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>dwRel<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>   <?Pub _font FontColor="#5DA35B"?>(* дата релиза *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>xIn<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>FALSE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>dwVer<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>OSCAT_VERSION<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>xIn<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* вернёт версию библиотеки (DWORD),<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>зависит от установленной версии *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>xIn<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>TRUE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>dwRel<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>OSCAT_VERSION<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>xIn<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* вернёт дату релиза (DWORD), <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>зависит от установленной версии *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124800"></a>

### STATUS_TO_ESR

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | status | BYTE | Код статуса |
| Входы | adress | STRING(10) | Описание переменной |
| Входы | DT_in | DT | Дата и время изменения |
| Входы | TS | TIME | Относительное время изменения (в мс, после старта ПЛК) |
| Выходы | STATUS_TO_ESR | [ESR_DATA](#topic-124788) | Информация мониторинга |

Функция **STATUS_TO_ESR** собирает элемент структуры [ESR_DATA](#topic-124788) из отдельных переменных.

Коды статуса **1...99** соответствуют сообщениям об ошибках, **100…199** – состояниям ФБ, **200…255** – отладочным сообщениям.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bStatus<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>101<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                    <?Pub _font
FontColor="#5DA35B"?>(* 100..199 — состояния ФБ *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>sAddr<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'FB1.STATE'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(* описание/имя параметра *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dtChange<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#A4FCA2"?>DT#2026-06-18-12:00:00<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font
FontColor="#5DA35B"?>(* дата/время события *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>tStamp<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#00CCCC"
?>TIME<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#A4FCA2"?>T#1234ms<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>               <?Pub _font
FontColor="#5DA35B"?>(* мс после старта *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>esr<?Pub /_font?>      <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFCC00"?>ESR_DATA<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>           <?Pub _font
FontColor="#5DA35B"?>(* результат *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>typ<?Pub /_font?>      <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>addrOut<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dsOut<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>tsOut<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#00CCCC"
?>TIME<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>b0<?Pub /_font?>       <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>esr<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>STATUS_TO_ESR<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>status<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>bStatus,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>adress<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>sAddr,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>DT_in<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>dtChange,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>TS<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>tStamp<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Пример чтения полей структуры ESR_DATA *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>typ<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>esr<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>TYP<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>addrOut<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>esr<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>ADRESS<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>dsOut<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>esr<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>DS<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>tsOut<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>esr<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>TS<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>b0<?Pub /_font?>      <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>esr<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>DATA<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>[<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>0<?Pub /_font?><?Pub _font FontColor="#DCDCDC"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124801"></a>

## Математические функции

<a id="topic-124802"></a>

### ACOSH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | ACOSH | REAL | Значение гиперболического арккосинуса |

Функция **ACOSH** возвращает значение гиперболического арккосинуса, вычисленное по формуле ![ACOSH](https://docs.owen.ru/book_img/2417/164476.png)

Область определения: ![ACOSH1](https://docs.owen.ru/book_img/2417/164475.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>x<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* Аргумент, должен быть &gt;= 1.0 *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>y<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>REAL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>          <?Pub _font FontColor="#5DA35B"?>(* Результат ACOSH(x) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.ACOSH(x);<?Pub /_font?>           <?Pub _font FontColor="#5DA35B"?>(* y ≈ 1.3169579 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124803"></a>

### ACOTH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | ACOTH | REAL | Значение гиперболического арккотангенса |

Функция **ACOTH** возвращает значение гиперболического арккотангенса, вычисленное по формуле ![ACOTH](https://docs.owen.ru/book_img/2417/164474.png)

Область определения: ![ACOTH1](https://docs.owen.ru/book_img/2417/164473.png)

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* |x| &gt; 1 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ACOTH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"?>(* y ≈ 0.5493061 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124804"></a>

### AGDF

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | AGDF | REAL | Значение обратной функции Гудермана |

Функция **AGDF** возвращает значение обратной функции Гудермана, вычисленное по формуле ![AGDF](https://docs.owen.ru/book_img/2417/164472.png)

Текущая реализация функции гарантирует приемлемую точность вычислений только для x, принадлежащих интервалу ![AGDF1](https://docs.owen.ru/book_img/2417/164471.png)

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>AGDF<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"?>(* у=0.5222381*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124805"></a>

### ASINH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | ASINH | REAL | Значение гиперболического арксинуса |

Функция **ASINH** возвращает значение гиперболического арксинуса, вычисленное по формуле ![ASINH](https://docs.owen.ru/book_img/2417/164470.png)

Область определения: ![ASINH1](https://docs.owen.ru/book_img/2417/164469.png)

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ASINH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"?>(* y=1.44363546*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124806"></a>

### ATAN2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | Y | REAL | Координата Y |
| Входы | X | REAL | Координата X |
| Выходы | ATAN | REAL | Значение арктангенса для отношения Y/X |

Функция **ATAN2** возвращает значение арктангенса для заданных координат X и Y. Арктангенс – это угол между осью X и линией, проведенной из начала координат (0,0) в точку с координатами (X,Y). Угол определяется в радианах в диапазоне ![ATAN2](https://docs.owen.ru/book_img/2417/164468.png)

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>a1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>ATAN2(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font
?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font?>  <?Pub _font
FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* a1 ≈ 0.7853982 рад (π/4) *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>a2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>ATAN2(Y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>y2<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>x2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* a2 = 0 рад *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124807"></a>

### ATANH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | ATANH | REAL | Значение гиперболического арктангенса |

Функция **ATANH** возвращает значение гиперболического арктангенса, вычисленное по формуле ![ATANH](https://docs.owen.ru/book_img/2417/164517.png)

Область определения: ![ATANH2](https://docs.owen.ru/book_img/2417/164516.png)

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>    
    <?Pub _font FontColor="#988DF7"?>X<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* Аргумент (в диапазоне -1..1, не включая ±1) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Y<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>            <?Pub _font FontColor="#5DA35B"?>(* Результат *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ATANH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>             <?Pub _font
FontColor="#5DA35B"?>(* Y = ATANH(0.5) ≈ 0.549306 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124808"></a>

### BETA

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент X |
| Входы | Y | REAL | Аргумент Y |
| Выходы | BETA | REAL | Значение бета-функции |
| Используемые модули | [GAMMA](#topic-124831) | [GAMMA](#topic-124831) | [GAMMA](#topic-124831) |

Функция **BETA** возвращает значение бета-функции, вычисленное по формуле![BETA](https://docs.owen.ru/book_img/2417/164515.png),

где Г — гамма-функция.

Область определения: ![BETA2](https://docs.owen.ru/book_img/2417/164514.png)

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>b<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.BETA<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font
?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* b = 3.10966635 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124809"></a>

### BINOM

|   |   |   |   |
| --- | --- | --- | --- |
| Тип модуля: функция | Переменная | Тип | Описание |
| Входы | N | INT | Аргумент N |
| Входы | K | INT | Аргумент K |
| Выходы | BINOM | DINT | Биномиальный коэффициент из N по K |

Функция **BINOM** возвращает значение биномиального коэффициента из N по K, вычисленное по формуле ![BINOM](https://docs.owen.ru/book_img/2417/164513.png)

Функция возвращает корректные значения только для ![BINOM2](https://docs.owen.ru/book_img/2417/164512.png)

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>n<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>k<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>c<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>c<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.BINOM<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>n<?Pub /_font
?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>K<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>k<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* c = 6 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124810"></a>

### CAUCHY

|   |   |   |   |
| --- | --- | --- | --- |
| Тип модуля: функция | Переменная | Тип | Описание |
| Входы | X | REAL | Аргумент |
| Входы | T | REAL | Коэффициент сдвига |
| Входы | U | REAL | Коэффициент масштаба |
| Выходы | CAUCHY | REAL | Плотность вероятности для распределения Коши |

Функция **С****AUCHY** возвращает значение плотности вероятности для распределения Коши, вычисленное по формуле ![CAUCHY](https://docs.owen.ru/book_img/2417/164511.png), ![CAUCHY2](https://docs.owen.ru/book_img/2417/164510.png)

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* аргумент *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>t<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* сдвиг *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>u<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* масштаб, &gt; 0 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>p<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>p<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CAUCHY<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>T<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>t<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>U<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>u<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* p ≈ 0.127323955 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124811"></a>

### CAUCHYCD

|   |   |   |   |
| --- | --- | --- | --- |
| Тип модуля: функция | Переменная | Тип | Описание |
| Входы | X | REAL | Аргумент |
| Входы | T | REAL | Коэффициент сдвига |
| Входы | U | REAL | Коэффициент масштаба |
| Выходы | CAUCHYCD | REAL | Функция распределения Коши |

Функция **СAUCHYCD** возвращает значение функции распределения Коши, вычисленное по формуле ![CAUCHYCD](https://docs.owen.ru/book_img/2417/164509.png), ![CAUCHY2](https://docs.owen.ru/book_img/2417/164510.png)

<a id="topic-124812"></a>

### CEIL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Округляемое значение |
| Выходы | CEIL | INT | Округленное значение |

Функция **CEIL** округляет переменную типа REAL в сторону ближайшего большего целого значения.

> [!NOTE]
> **Примечание.** Функция возвращает значение типа INT, что накладывает соответствующие ограничения на величину входной переменной (диапазон возможных значений для типа INT составляет –32768..32767).

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.14<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>2.30<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CEIL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* r1 = 4 *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CEIL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* r2 = -2 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124813"></a>

### CEIL2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Округляемое значение |
| Выходы | CEIL | DINT | Округленное значение |

Функция **CEIL2** округляет переменную типа REAL в сторону ближайшего большего целого значения. В отличие от функции [CEIL](#topic-124812), данная функция возвращает значение типа DINT, что увеличивает диапазон возможных значений входной переменной.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>33000.22<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>33000.22<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CEIL2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* r1 = 33001 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CEIL2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* r2 = -33000 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124814"></a>

### CMP

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | 1-я сравниваемая величина |
| Входы | Y | REAL | 2–я сравниваемая величина |
| Входы | N | INT | Кол-во сравниваемых знаков |
| Выходы | CMP | BOOL | Результат сравнения |

Функция **CMP** сравнивает значения X и Y типа REAL и возвращает **TRUE**, если их первые N символов совпадают. В противном случае функция возвращает **FALSE**.

Необходимо отметить, что тип REAL обеспечивает относительную точность в 7-8 десятичных цифр после запятой в заданном диапазоне, поэтому нельзя гарантировать корректную работу функции в 100% случаев.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.34567<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.34512<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>n1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>eq1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.234567<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.229999<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>n2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>eq2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>eq1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CMP<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>y1<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>n1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* eq1 = TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>eq2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CMP<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>y2<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>n2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* eq2 = FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124815"></a>

### COSH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | COSH | REAL | Значение гиперболического косинуса |

Функция **COSH** возвращает значение гиперболического косинуса, вычисленное по формуле ![COSH](https://docs.owen.ru/book_img/2417/164508.png)

Область определения: ![ASINH1](https://docs.owen.ru/book_img/2417/164469.png)

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>COSH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y ≈ 3.76219583 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124816"></a>

### COTH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | COTH | REAL | Значение гиперболического котангенса |

Функция **COTH** возвращает значение гиперболического котангенса, вычисленное по формуле ![COTH](https://docs.owen.ru/book_img/2417/164537.png)

Область определения: ![COTH2](https://docs.owen.ru/book_img/2417/164536.png)

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>COTH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y ≈ 1.03731477 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124817"></a>

### D_TRUNC

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Округляемое значение |
| Выходы | D_TRUNC | DINT | Округленное значение |

Функция **D_TRUNC** возвращает целую часть переменной типа REAL (обратите внимание, что речь идет не об округлении до ближайшего целочисленного значения). Функция **TRUNC()** из стандарта МЭК 61131-3 поддерживает тип DINT не во всех средах программирования; более того, даже преобразование **REAL_TO_DINT** на разных системах может приводить к разному результату. Функция **D_TRUNC** анализирует работу преобразования и возвращает корректное значение.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?>  <?Pub _font FontColor="#F3A1DD"?>3.99<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>3.99<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>D_TRUNC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* r1 = 3 *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>D_TRUNC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* r2 = -3 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124818"></a>

### DEC1

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | INT | Декрементируемое значение 1 |
| Входы | N | INT | Декрементируемое значение 2 |
| Выходы | DEC1 | INT | Результат декремента |

Функция **DEC1** декрементирует значение переменной X. Если X = 0, то функция возвращает декрементированное значение переменной N.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>n1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>n2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DEC1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>n1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* r1 = 4 *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DEC1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>n2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* r2 = 9 *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124819"></a>

### DEG

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | rad | REAL | Значение угла в радианах |
| Выходы | DEG | REAL | Значение угла в градусах |

Функция **DEG** преобразует значение угла из радиан в градусы. Если входная переменная rad превышает 2π, то из нее будет вычитаться по π до тех пор, пока ее значение не окажется в интервале 0< rad < 2π.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.1415927<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* π *)<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>d1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>d1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DEG<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>rad<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* d1 ≈ 180.0 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124820"></a>

### DIFFER

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in1 | REAL | Сравниваемое значение 1 |
| Входы | in2 | REAL | Сравниваемое значение 2 |
| Входы | X | REAL | Допустимая разность значений |
| Выходы | DIFFER | TRUE | Флаг сравнения |

Функция **DIFFER** возвращает значение **TRUE**, если значения переменных **in1** и **in2** отличаются на величину, превышающую **X**. В противном случае функция возвращает **FALSE**.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>c<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>d<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DIFFER<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>in1<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>in2<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>b,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>x<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* r1 = TRUE, 
                                                       |10.0-10.3| = 0.3 &gt; 0.2 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DIFFER<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>in1<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>c,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>in2<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>d,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>x<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* r2 = FALSE, 
                                                       |10.0-10.1| = 0.1 &lt;= 0.2 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-124821"></a>

### ERF

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | ERF | REAL | Функция ошибок |
| Используемые модули | [SGN](#topic-124857) | [SGN](#topic-124857) | [SGN](#topic-124857) |

Функция **ERF** возвращает значение функции ошибок для аргумента **X**, вычисленное по формуле

![ERF](https://docs.owen.ru/book_img/2417/164535.png), где ![ERF2](https://docs.owen.ru/book_img/2417/164534.png)

Относительная ошибка вычисления не превышает 0.00013.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.05<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ERF<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y = 0.5637164 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124822"></a>

### ERFC

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | ERFC | REAL | Дополнительная функция ошибок |
| Используемые модули | [ERF](#topic-124821) | [ERF](#topic-124821) | [ERF](#topic-124821) |

Функция **ERFС** возвращает значение дополнительной функции ошибок для аргумента **X**, вычисленное по формуле

![EFRC](https://docs.owen.ru/book_img/2417/164533.png)

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.05<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ERFC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y = 0.9436284 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124823"></a>

### EVEN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | DINT | Анализируемое значение |
| Выходы | EVEN | BOOL | Флаг четности |

Функция **EVEN** возвращает **TRUE**, если значение переменной **in** является четным, и **FALSE** — если нечетным.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>11<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>EVEN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* r1 = TRUE  *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>EVEN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>b<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* r2 = FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124824"></a>

### EXP10

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Показатель степени |
| Выходы | EXP10 | REAL | Показательная функция |

Функция **EXP10** возвращает значение показательной функции с основанием степени 10, вычисленное по формуле

![EXP10](https://docs.owen.ru/book_img/2417/164532.png)

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>EXP10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y1 = 100.0 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>EXP10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y2 = 0.1 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124825"></a>

### EXPN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Основание степени |
| Входы | N | INT | Показатель степени |
| Выходы | EXPN | REAL | Показательная функция |

Функция **EXPN** возвращает значение показательной функции c целочисленным основанием степени, вычисленное по формуле

![EXPN](https://docs.owen.ru/book_img/2417/164531.png)

Функция **EXPN** разработана специально для ПЛК без FPU (математического сопроцессора) и выполняется приблизительно в 30 раз быстрее функции **EXPT**, определенной стандартом МЭК 61131-3.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>n1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>n2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>EXPN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>n1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y1 = 1024.0 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>EXPN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>n2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y2 = 1.0 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124826"></a>

### FACT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | INT | Аргумент |
| Выходы | FACT | DINT | Значение факториала |

Функция **FACT** возвращает значение факториала **X**. Функция возвращает корректные значения при X, принадлежащем интервалу ![FACT](https://docs.owen.ru/book_img/2417/164530.png). Во всех остальных случаях функция возвращает **-1**.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>f1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>13<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>f2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>f1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FACT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* f1 = 120 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>f2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FACT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* f2 = -1 (вне диапазона 0..12) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124827"></a>

### FIB

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | INT | Номер элемента последовательности |
| Выходы | FIB | DINT | Значение элемента последовательности |

Функция **FIB** возвращает значение **X**-го элемента последовательности Фибоначчи. Функция возвращает корректные значения при **X**, принадлежащему интервалу ![FIB](https://docs.owen.ru/book_img/2417/164529.png). Во всех остальных случаях функция возвращает **-1**.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>f1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>f2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>f1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FIB<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* f1 = 55 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>f2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FIB<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* f2 = -1 (вне допустимого диапазона) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124828"></a>

### FLOOR

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Округляемое значение |
| Выходы | FLOOR | INT | Округленное значение |

Функция **FLOOR** округляет переменную типа REAL в сторону ближайшего меньшего целого значения. Обратите внимание, что функция возвращает значение типа INT, что накладывает соответствующие ограничения на величину входной переменной (диапазон возможных значений для типа INT составляет -32768..32767).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.14<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>2.30<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FLOOR<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* r1 = 3 *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FLOOR<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* r2 = -3 *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124829"></a>

### FLOOR2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Округляемое значение |
| Выходы | FLOOR2 | DINT | Округленное значение |

Функция **FLOOR2** округляет переменную типа REAL в сторону ближайшего меньшего целого значения. В отличие от функции [FLOOR](#topic-124828), данная функция возвращает значение типа DINT, что увеличивает диапазон возможных значений входной переменной.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>35000.25<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>35000.25<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FLOOR2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* r1 = 35000 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FLOOR2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* r2 = -35001 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124830"></a>

### FRACT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Значение с плавающей точкой |
| Выходы | FRACT | REAL | Дробная часть значения |
| Используемые модули | [D_TRUNC](#topic-124817) | [D_TRUNC](#topic-124817) | [D_TRUNC](#topic-124817) |

Функция **FRACT** возвращает дробную часть значения с плавающей точкой. Необходимо отметить, что тип REAL обеспечивает относительную точность в 7-8 десятичных цифр после запятой в заданном диапазоне, поэтому нельзя гарантировать корректную работу функции в 100% случаев.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.345<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>f1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>12.345<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>f2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>f1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FRACT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* f1 ≈ 0.345 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>f2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FRACT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* f2 ≈ -0.345 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124831"></a>

### GAMMA

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | GAMMA | REAL | Значение гамма-функции |

Функция **GAMMA** возвращает значение гамма-функции, вычисленное по аппроксимирующей формуле Герго Немеса:

![GAMMA](https://docs.owen.ru/book_img/2417/164528.png)

Область определения: ![GAMMA2](https://docs.owen.ru/book_img/2417/164557.png)

Функция может использоваться для приближенного вычисления факториалов чисел, что будет полезным в тех случаях, когда не может быть использована функция [**FACT**](#topic-124826). Следует помнить, что гамма-функция возвращает не факториал X, а факториал его декремента.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>g1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>g2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>g1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>GAMMA<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* g1 ≈ 24.0  (Γ(5) = 4! ) *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>g2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>GAMMA<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* g2 ≈ 120.0 (Γ(6) = 5! ) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124832"></a>

### GAUSS

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Входы | U | REAL | Коэффициент сдвига |
| Входы | SI | REAL | Коэффициент масштаба |
| Выходы | GAUSS | REAL | Плотность вероятности для распределения Гаусса |

Функция **GAUSS** возвращает значение плотности вероятности для распределения Гаусса (нормального распределения), вычисленное по формуле

![GAUSS](https://docs.owen.ru/book_img/2417/164556.png), ![GAUSS2](https://docs.owen.ru/book_img/2417/164555.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* аргумент *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>u<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* среднее (сдвиг) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>si<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* σ (масштаб), &gt; 0 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>p<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>p<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>GAUSS<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>U<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#FFF2C5"?>u,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>SI<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>si<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* p ≈ 0.3989423 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124833"></a>

### GAUSSCD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Входы | U | REAL | Параметр сдвига |
| Входы | SI | REAL | Параметр масштаба |
| Выходы | GAUSSCD | REAL | Функция распределения Гаусса |
| Используемые модули | [ERF](#topic-124821) | [ERF](#topic-124821) | [ERF](#topic-124821) |

Функция **GAUSSCD** возвращает значение функции распределения Гаусса (нормального распределения), вычисленное по формуле

![GAUSSCD](https://docs.owen.ru/book_img/2417/164554.png), ![GAUSSCD2](https://docs.owen.ru/book_img/2417/164553.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* аргумент *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>u<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* среднее (сдвиг) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>si<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* σ (масштаб), &gt; 0 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>f<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>f<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>GAUSSCD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>U<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#FFF2C5"?>u,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>SI<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>si<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* f = 0.5 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124834"></a>

### GCD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | DINT | 1-ое значение |
| Входы | B | DINT | 2-ое значение |
| Выходы | GCD | INT | Наибольший общий делитель для A и B |

Функция GCD возвращает значение наибольшего общего делителя для чисел A и B.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>48<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>18<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>g<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>g<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>GCD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>A<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>B<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>b<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* g = 6 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124835"></a>

### GDF

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | GDF | REAL | Значение функции Гудермана |

Функция **GDF** возвращает значение функции Гудермана, вычисленное по формуле ![GDF](https://docs.owen.ru/book_img/2417/164552.png)

Область определения: ![GDF2](https://docs.owen.ru/book_img/2417/164551.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>GDF<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y = 1.55732048 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124836"></a>

### GOLD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | GOLD | REAL | Значение функции |

Функция **GOLD** возвращает значение, вычисленное по формуле ![GOLD](https://docs.owen.ru/book_img/2417/164550.png)

При X=1 функция возвращает значение золотого сечения.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>GOLD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y ≈ 1.6180339 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124837"></a>

### HYPOT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Длина катета X |
| Входы | Y | REAL | Длина катета Y |
| Выходы | HYPOT | REAL | Длина гипотенузы |

Функция **HYPOT** возвращает значение длины гипотенузы прямоугольного треугольника, вычисленное по теореме Пифагора![HYPOT](https://docs.owen.ru/book_img/2417/164549.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>h<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>h<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>HYPOT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* h = 5.0 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124838"></a>

### INC

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | INT | Входное значение |
| Входы | D | INT | Прибавляемое значение |
| Входы | M | INT | Максимальное возвращаемое значение |
| Выходы | INC | INT | Возвращаемое значение |

Функция **INC** складывает значения **X** и **D**, и проверяет результат. Если результат сложения превышает **M**, то функция возвращает **0**. Если результат сложения отрицателен, то функция возвращает **M**. Во всех остальных случаях функция возвращает сумму **X** и **D**. Функция может быть полезной при работе с массивами и буферами, а также абсолютными энкодерами.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>d1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>m<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>9<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>d2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>d3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>INC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>D<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>d1,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>M<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>m<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* r1 = 8 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>INC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>D<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>d2,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>M<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>m<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* r2 = 0  (12 &gt; 10) *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>INC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x3,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>D<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>d3,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>M<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>m<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* r3 = 10 (-4 &lt; 0) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124839"></a>

### INC1

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | INT | Инкрементируемое значение 1 |
| Входы | N | INT | Инкрементируемое значение 2 |
| Выходы | INC1 | INT | Результат инремента |

Функция **INC1** инкрементирует значение переменной **X** до **N-1**, после чего на выход подается **0**, и продолжается циклический инкремент.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>n<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>INC1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>n<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* r1 = 4 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>INC1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>n<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* r2 = 0 (т.к. 4 -&gt; 0 при N=5) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124840"></a>

### INC2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | INT | Входное значение |
| Входы | D | INT | Прибавляемое значение |
| Входы | L | INT | Нижний предел |
| Входы | U | INT | Верхний предел |
| Выходы | INC2 | INT | Возвращаемое значение |

Функция **INC2**складывает значения **X** и **D**, и проверяет результат. Если результат сложения превышает **U**, то функция возвращает **L**. Если результат сложения меньше **L**, то функция возвращает **U**. Во всех остальных случаях функция возвращает сумму **X** и **D**. Функция может оказаться полезной при работе с массивами и буферами, а также абсолютными энкодерами.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>d1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>l<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>u<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>9<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>d2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>d3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>INC2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>D<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>d1,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>L<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>l,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>U<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>u<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(*r1 = 8*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>INC2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>D<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>d2,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>L<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>l,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>U<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>u<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(*r2 = 0  (12 &gt; 10 -&gt; L)*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>INC2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x3,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>D<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>d3,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>L<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>l,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>U<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>u<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(*r3 = 10 (-4 &lt; 0 -&gt; U)*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124841"></a>

### INV

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | INT | Аргумент |
| Выходы | INV | REAL | Обратное число |

Функция **INV** возвращает обратное число для **X**.

![INV](https://docs.owen.ru/book_img/2417/164548.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>INV<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y = 0.25 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124842"></a>

### LAMBERT_W

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | LAMBERT_W | REAL | Значение W-функции Ламберта |

Функция **LAMBERT_W** возвращает значение W-функции Ламберта, вычисленное по аппроксимационной формуле

![LAMBERT W](https://docs.owen.ru/book_img/2417/164577.png)

Относительная точность вычисления по данной формуле превышает 10%.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>w<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>w<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>LAMBERT_W<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* w ≈ 1.04990888 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124843"></a>

### LANGEVIN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | LANGEVIN | REAL | Значение функции Ланжевена |
| Используемые модули | [COTH](#topic-124816) | [COTH](#topic-124816) | [COTH](#topic-124816) |

Функция **LANGEVIN** возвращает значение функции Ланжевена, вычисленное по формуле

![LANGEVIN](https://docs.owen.ru/book_img/2417/164576.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>LANGEVIN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y ≈ 0.800090849 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124844"></a>

### MAX3

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in1 | REAL | Сравниваемое значение 1 |
| Входы | in2 | REAL | Сравниваемое значение 2 |
| Входы | in3 | REAL | Сравниваемое значение 3 |
| Выходы | MAX3 | REAL | Наибольшее из сравниваемых значений |

Функция **MAX3** возвращает наибольшее из трех сравниваемых значений. Согласно стандарту МЭК 61131-3 оператор **MAX()** должен иметь настраиваемое число входов, но в некоторых средах разработки их число ограничено двумя – по этой причине в библиотеку **OSCAT** включена функция **MAX3**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.6<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>c<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>m<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>m<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.MAX3<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>(in1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>a,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>in2<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>b,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>in3<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>c<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* m = 5.6 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124845"></a>

### MID3

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in1 | REAL | Сравниваемое значение 1 |
| Входы | in2 | REAL | Сравниваемое значение 2 |
| Входы | in3 | REAL | Сравниваемое значение 3 |
| Выходы | MID3 | REAL | Среднее из сравниваемых значений |

Функция **MID3** возвращает среднее (*но не усредненное*) из трех сравниваемых значений.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.6<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>c<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>m<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>m<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#988DF7"?>MID3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(in1<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>a,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>in2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>b,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>in3<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>c<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* m = 3.4 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124846"></a>

### MIN3

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in1 | REAL | Сравниваемое значение 1 |
| Входы | in2 | REAL | Сравниваемое значение 2 |
| Входы | in3 | REAL | Сравниваемое значение 3 |
| Выходы | MIN3 | REAL | Наименьшее из сравниваемых значений |

Функция **MIN3** возвращает наименьшее из трех сравниваемых значений. Согласно стандарту МЭК 61131-3 оператор **MIN()** должен иметь настраиваемое число входов, но в некоторых средах разработки их число ограничено двумя – по этой причине в библиотеку включена функция **MIN3**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.6<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>c<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>m<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>m<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.MIN3(in1<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>a,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>in2<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>b,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>in3<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>c<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* m = 1.2 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124847"></a>

### MODR

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Сравниваемое значение 1 |
| Входы | DIVI | REAL | Сравниваемое значение 2 |
| Выходы | MODR | REAL | Наименьшее из сравниваемых значений |
| Используемые модули | [FLOOR2](#topic-124829) | [FLOOR2](#topic-124829) | [FLOOR2](#topic-124829) |

Функция **MODR** возвращает остаток от деления значения **IN** на значение **DIVI**. В отличие от стандартного оператора **MOD()**, в качестве аргументов используются переменные типа **REAL**. При **DIVI=0** функция возвращает **0**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>a2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>MODR<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a1,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>DIVI<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>b1<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* r1 = 1.5 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>MODR<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a2,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>DIVI<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>b2<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* r2 = 0.0 (DIVI=0) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124848"></a>

### MUL_ADD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Входное значение |
| Входы | K | REAL | Коэффициент масштабирования |
| Входы | O | REAL | Сдвиг |
| Выходы | MUL_ADD | REAL | Отмасштабированное значение |

Функция **MUL_ADD** возвращает значение линейной функции с коэффициентом **K** и сдвигом **O** для аргумента **X**.

![MUL ADD](https://docs.owen.ru/book_img/2417/164575.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>k<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>o<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>MUL_ADD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(X<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>x,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>K<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>k,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>O<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#E1E1E1"?>o)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y = 22.0 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124849"></a>

### NEGX

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | NEGX | REAL | Значение аргумента с противоположным знаком |

Функция **NEGX** возвращает значение аргумента с противоположным знаком.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>NEGX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y = -12.5 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124850"></a>

### RAD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DEG | REAL | Значение угла в градусах |
| Выходы | RAD | REAL | Значение угла в радианах |
| Используемые модули | [MODR](#topic-124847), [DEG](#topic-124819) | [MODR](#topic-124847), [DEG](#topic-124819) | [MODR](#topic-124847), [DEG](#topic-124819) |

Функция **RAD** преобразует значение угла в градусах в радианы. Если входная переменная **DEG**превышает 2 π, то из нее будет вычитаться по π до тех пор, пока ее значение не окажется в интервале ![RAD](https://docs.owen.ru/book_img/2417/164574.png).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>d1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>180.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>d2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>450.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* &gt; 360°, будет приведено к диапазону 0..360° *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>RAD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(DEG<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>d1<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* r1 ≈ 3.1415927 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>RAD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>DEG<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>d2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* r2 ≈ 1.5707963 (т.к. 450° -&gt; 90°) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124851"></a>

### RDM

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | last | REAL | Начальное значение (зерно) |
| Выходы | RDM | REAL | Псевдослучайное число |
| Используемые модули | [T_PLC_MS](#topic-125261), [BIT_COUNT](#topic-125121), [FRACT](#topic-124830) | [T_PLC_MS](#topic-125261), [BIT_COUNT](#topic-125121), [FRACT](#topic-124830) | [T_PLC_MS](#topic-125261), [BIT_COUNT](#topic-125121), [FRACT](#topic-124830) |

Функция **RDM** используется для генерации псевдослучайных чисел с плавающей точкой в диапазоне **\[0,1)**. В качестве источника энтропии используется системный таймер ПЛК. Поскольку модуль **RDM** представляет собой функцию, а не ФБ, он не содержит информацию о своем предыдущем вызове, и поэтому должен использоваться с осторожностью. Если функция вызывается более одного раза в течение цикла, то возвращает одинаковые числа, т.к. значение системного таймера остается тем же. Этого можно избежать, вызывая функцию с разным значением зерна **last**. В качестве зерна можно использовать значение функции, возвращенное при предыдущем вызове.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>seed<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.12345<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* зерно (last) *)<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>r1<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#8080FF"?>r2<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Первый вызов: получаем псевдослучайное число в диапазоне [0,1) *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>RDM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>last<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>seed<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* 0.0 &lt;= r1 &lt; 1.0 *)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Обновляем зерно значением предыдущего вызова *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>seed<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>r1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Следующий вызов (в следующем цикле ПЛК): новое число, используя seed *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>RDM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>last<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>seed<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* 0.0 &lt;= r2 &lt; 1.0, обычно r2 &lt;&gt; r1 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124852"></a>

### RDM2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | last | DWORD | Начальное значение (зерно) |
| Входы | low | INT | Нижний предел |
| Входы | high | INT | Верхний предел |
| Выходы | RDM2 | INT | Псевдослучайное число |
| Используемые модули | [RDM](#topic-124851), [FRACT](#topic-124830) | [RDM](#topic-124851), [FRACT](#topic-124830) | [RDM](#topic-124851), [FRACT](#topic-124830) |

Функция **RDM2** используется для генерации псевдослучайных целых чисел в диапазоне **\[low,high\]**. В качестве источника энтропии используется системный таймер ПЛК. Поскольку модуль **RDM2** представляет собой функцию, а не ФБ, он не содержит информацию о своем предыдущем вызове, и поэтому должен использоваться с осторожностью. Если функция вызывается более одного раза в течение цикла, то возвращает одинаковые числа, т.к. значение системного таймера остается тем же. Этого можно избежать, вызывая функцию с разным значением зерна **last**. В качестве зерна можно использовать значение функции, возвращенное при предыдущем вызове.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>seed<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12345<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* зерно (last) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>low<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>20<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Первый вызов: целое число в диапазоне [10..20] *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>RDM2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>last<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>seed,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>low<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>low,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>high<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* 10 &lt;= r1 &lt;= 20 *)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Обновляем зерно значением предыдущего результата *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>seed<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>r1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Следующий вызов (в следующем цикле ПЛК): новое число, используя seed *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>RDM2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>last<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>seed,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>low<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>low,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>high<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* 10 &lt;= r2 &lt;= 20, 
                                                                  обычно r2 &lt;&gt; r1 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124853"></a>

### RDMDW

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | last | REAL | Начальное значение (зерно) |
| Выходы | RDMDW | DWORD | Псевдослучайный набор бит |
| Используемые модули | [RDM](#topic-124851), [T_PLC_MS](#topic-125261), [BIT_COUNT](#topic-125121), [FRACT](#topic-124830) | [RDM](#topic-124851), [T_PLC_MS](#topic-125261), [BIT_COUNT](#topic-125121), [FRACT](#topic-124830) | [RDM](#topic-124851), [T_PLC_MS](#topic-125261), [BIT_COUNT](#topic-125121), [FRACT](#topic-124830) |

Функция **RDMDW** используется для генерации псевдослучайных 32-битных наборов бит. В качестве источника энтропии используется системный таймер ПЛК. Поскольку модуль **RDMDW** представляет собой функцию, а не ФБ, он не содержит информацию о своем предыдущем вызове, и поэтому должен использоваться с осторожностью. Если функция вызывается более одного раза в течение цикла, то возвращает одинаковые числа, т.к. значение системного таймера остается тем же. Этого можно избежать, вызывая функцию с разным значением зерна **last**. В качестве зерна можно использовать значение функции, возвращенное при предыдущем вызове.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>seed<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.12345<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* зерно (last) *)<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>dw<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Получаем псевдослучайный 32-битный набор *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>dw<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>RDMDW<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>last<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>seed<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* В качестве зерна для следующего цикла можно использовать предыдущее значение seed,<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   либо обновлять seed (например, значением OSCAT_BASIC.RDM(last := seed)) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124854"></a>

### REAL_TO_FRAC

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Число с плавающей точкой |
| Входы | N | INT | Максимальное значение знаменателя |
| Выходы | REAL_TO_FRAC | [FRACTION](#topic-124789) | Число с плавающей точкой в виде дроби |

Функция **REAL_TO_FRAC** представляет значение переменной **X** типа REAL в виде дроби, знаменатель которой не превышает **N**. Возвращаемое значение представляет собой структуру типа [FRACTION](#topic-124789).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.75<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>n<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>f<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>FRACTION<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>f<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>REAL_TO_FRAC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>n<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* ожидаемо: f = 3/4 
                                                 (знаменатель &lt;= 100) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124855"></a>

### RND

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Округляемое значение |
| Входы | N | INT | Число значащих цифр |
| Выходы | RND | REAL | Округленное значение |
| Используемые модули | [EXPN](#topic-124825), [CEIL](#topic-124812) | [EXPN](#topic-124825), [CEIL](#topic-124812) | [EXPN](#topic-124825), [CEIL](#topic-124812) |

Функция **RND** возвращает число с плавающей точкой **X**, округленное до **N** значащих цифр. Для чисел 0-4 округление выполняется в меньшую сторону, для 5-9 – в большую. Для округления до заданного количества десятичных знаков может использоваться функция [ROUND](#topic-124856).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1234.56<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>n1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.012345<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>n2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>RND<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>n1<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* y1 ≈ 1230.0  (3 значащие цифры) *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>RND<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>n2<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* y2 ≈ 0.012  (2 значащие цифры) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124856"></a>

### ROUND

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | REAL | Округляемое значение |
| Входы | N | INT | Число знаков после запятой |
| Выходы | ROUND | REAL | Округленное значение |

Функция **ROUND** возвращает число с плавающей точкой **X**, округленное до **N** знаков после запятой. Для чисел 0-4 округление выполняется в меньшую сторону, для 5-9 – в большую. Для округления до заданного количества значащих цифр может использоваться функция [RND](#topic-124855).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.3456<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>n1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.344<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>n2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ROUND<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>n1<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* y1 = 12.35 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ROUND<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>n2<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* y2 = 12.34 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124857"></a>

### SGN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Анализируемое значение |
| Выходы | SGN | INT | Код знака |

Функция **SGN** возвращает код знака переменной **X**.

![SGN](https://docs.owen.ru/book_img/2417/164573.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>s1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>s2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>s3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>s1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SGN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* s1 = 1  *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>s2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SGN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* s2 = 0  *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>s3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SGN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* s3 = -1 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124858"></a>

### SIGMOID

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | SIGMOID | REAL | Значение сигмоиды |

Функция SIGMOID возвращает значение сигмоиды, вычисленное по формуле

![SIGMOID](https://docs.owen.ru/book_img/2417/164572.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SIGMOID<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y = 0.622459352 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124859"></a>

### SIGN_I

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | DINT | Анализируемое значение |
| Выходы | SIGN_I | BOOL | Флаг знака |

Функция **SIGN_I** возвращает **TRUE**, если значение переменной **in** типа DINT является отрицательным, и **FALSE** – если положительным.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DINT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SIGN_I<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* r1 = TRUE  *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SIGN_I<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>b<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* r2 = FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124860"></a>

### SIGN_R

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | REAL | Анализируемое значение |
| Выходы | SIGN_R | BOOL | Флаг знака |

Функция **SIGN_R** возвращает **TRUE**, если значение переменной **in** типа REAL является отрицательным, и **FALSE** – если положительным.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SIGN_R<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* r1 = TRUE  *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SIGN_R<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>b<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* r2 = FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124861"></a>

### SINC

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | SINC | REAL | Значение кардинального синуса |

Функция **SINC** возвращает значение ненормированной функции кардинального синуса, вычисленное по формуле

![SINC](https://docs.owen.ru/book_img/2417/164571.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SINC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y = 0.9588511 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124862"></a>

### SINH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | SINH | REAL | Значение гиперболического синуса |

Функция **SINH** возвращает значение гиперболического синуса, вычисленное по формуле

![SINH](https://docs.owen.ru/book_img/2417/164570.png)

Область определения: ![ASINH1](https://docs.owen.ru/book_img/2417/164469.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SINH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y ≈ 0.5210953 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124863"></a>

### SQRTN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Входы | N | REAL | Степень корня |
| Выходы | SQRTN | REAL | Корень N-й степени |

Функция **SQRTN** возвращает значение корня **N**-й степени из **X**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>27.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>n<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SQRTN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>n<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* y = 3.0 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124864"></a>

### TANC

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | TANC | REAL | Значение функции |

Функция **TANC** возвращает значение одноименной математической функции, вычисленное по формуле

![TANC](https://docs.owen.ru/book_img/2417/164569.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>TANC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y = 1.092605 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124865"></a>

### TANH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Выходы | TANH | REAL | Значение гиперболического тангенса |

Функция **TANH** возвращает значение гиперболического тангенса, вычисленное по формуле

![TANH](https://docs.owen.ru/book_img/2417/164568.png)

Область определения: ![ASINH1](https://docs.owen.ru/book_img/2417/164469.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>TANH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* y = 0.462117136 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124866"></a>

### WINDOW

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | low | REAL | Нижний предел |
| Входы | in | REAL | Анализируемое значение |
| Входы | high | REAL | Верхний предел |
| Выходы | WINDOW | BOOL | Флаг принадлежности интервалу |

Функция **WINDOW** возвращает **TRUE**, если значение **X** принадлежит интервалу **(low, high)**. В противном случае функция возвращает **FALSE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>low<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>WINDOW<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>low<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>low,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>x1,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>high<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* r1 = TRUE  *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>WINDOW<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>low<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>low,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>x2,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>high<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* r2 = FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124867"></a>

### WINDOW2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | low | REAL | Нижний предел |
| Входы | in | REAL | Анализируемое значение |
| Входы | high | REAL | Верхний предел |
| Выходы | WINDOW2 | BOOL | Флаг принадлежности интервалу |

Функция **WINDOW2** возвращает **TRUE**, если значение **X** принадлежит интервалу **\[low, high\]**. В противном случае функция возвращает **FALSE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>low<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x1<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x2<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x3<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>r1<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>r2<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>r3<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>WINDOW2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>low<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>low,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>x1,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>high<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* r1 = TRUE  *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>WINDOW2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>low<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>low,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>x2,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>high<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* r2 = TRUE  *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>r3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>WINDOW2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>low<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>low,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>x3,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>high<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* r3 = FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124868"></a>

## Работа с массивами

Функции, описанные в данной главе, используются для операций над массивами значений типа **REAL**. Входными переменными для каждой функции являются указатель на массив (**pt**) и размер массива (**size**). В большинстве случаев представляется удобным использовать операторы **ADR()** и **SIZEOF()**, которые возвращают соответственно адрес и размер массива в байтах. Тогда вызов функции для обработки массива **aArr** можно представить следующим образом:

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>aArr<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="white"?>[<?Pub /_font
?><?Pub _font FontColor="#FF99CC"?>0<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>..<?Pub /_font?><?Pub _font FontColor="#FF99CC"
?>9<?Pub /_font?><?Pub _font FontColor="white"?>]<?Pub /_font?> <?Pub _font
FontColor="#7B8DF7"?>OF<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>REAL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* обрабатываемый массив *)<?Pub /_font
?>
    <?Pub _font FontColor="#7B8DF7"?>rRes<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>REAL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                  <?Pub _font FontColor="#5DA35B"?>(* результат функции, если она возвращает REAL *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Пример вызова: имя функции условное *)<?Pub /_font?>
    <?Pub _font FontColor="white"?>rRes<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.MyArrayFunc(<?Pub /_font?>
    <?Pub _font FontColor="white"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="white"?>(aArr<?Pub /_font
?><?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>,<?Pub /_font?>      <?Pub _font FontColor="#5DA35B"
?>(* указатель на массив *)<?Pub /_font?>
    <?Pub _font FontColor="white"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="white"?>(aArr<?Pub /_font
?><?Pub _font FontColor="white"?>)<?Pub /_font?>    <?Pub _font
FontColor="#5DA35B"?>(* размер массива в байтах *)<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

Максимальный размер обрабатываемого массива: **ARRAY \[0..32000\] OF REAL**.

Обработка массива, полученного по указателю, производится путем прямых манипуляций с памятью ПЛК. Этот тип обработки является крайне эффективным, так как не требует копирования содержимого массива.

<a id="topic-124869"></a>

### \_ARRAY_ABS

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Выходы | \_ARRAY_ABS | BOOL | Флаг окончания обработки массива |

Функция **\_ARRAY_ABS** вычисляет модули элементов входного массива. Результаты записываются в тот же массив по указателю. После окончания обработки выход функции принимает значение **TRUE**.

Пример: массив \[-2, 12, -4, 8, 6\] после обработки функцией примет вид \[2, 12, 4, 8, 6\].

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>done<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>_ARRAY_ABS<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* после обработки: a = [2.0, 12.0, 4.0, 8.0, 6.0], done = TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124870"></a>

### \_ARRAY_ADD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Входы | X | REAL | Прибавляемое значение |
| Выходы | \_ARRAY_ADD | BOOL | Флаг окончания обработки массива |

Функция **\_ARRAY_ADD** увеличивает значение каждого из элементов входного массива на заданное значение **X**. Результаты записываются в тот же массив по указателю. После окончания обработки выход функции принимает значение **TRUE**.

Пример: массив \[-2, 12, -4, 8, 6\] при **X=10** после <u>однократной</u> обработки функцией примет вид \[8, 22, 6, 18, 16\].

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>a<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>xAdd<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>_ARRAY_ADD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>xAdd<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* после обработки: a = [8.0, 22.0, 6.0, 18.0, 16.0], done = TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124871"></a>

### \_ARRAY_INIT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Входы | init | REAL | Прибавляемое значение |
| Выходы | \_ARRAY_INIT | BOOL | Флаг окончания обработки массива |

Функция **\_ARRAY_INIT** присваивает каждому из элементов входного массива заданное значение **init**. Результаты записываются в тот же массив по указателю. После окончания обработки выход функции принимает значение **TRUE**.

Пример: массив \[-2, 12, -4, 8, 6\] при **init=0** после обработки функцией примет вид \[0, 0, 0, 0, 0\].

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>a<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>init<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>_ARRAY_INIT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>init<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>init<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* после обработки: a = [0.0, 0.0, 0.0, 0.0, 0.0], done = TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124872"></a>

### \_ARRAY_MEDIAN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Выходы | \_ARRAY_MEDIAN | REAL | Медиана массива |
| Используемые модули | [EVEN](#topic-124823) | [EVEN](#topic-124823) | [EVEN](#topic-124823) |

Функция **\_ARRAY_MEDIAN** возвращает медиану массива, а также сортирует его по возрастанию.

Пример: массив \[-2, 12, -4, 8, 6\] после обработки функцией примет вид \[-4, -2, 6, 8, 12\].

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>      <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>median<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>median<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>_ARRAY_MEDIAN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* после обработки: a = [-4.0, -2.0, 6.0, 8.0, 12.0], median = 6.0 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124873"></a>

### \_ARRAY_MUL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Входы | X | REAL | Множитель |
| Выходы | \_ARRAY_MUL | BOOL | Флаг окончания обработки массива |

Функция **\_ARRAY_MUL** умножает значение каждого из элементов входного массива на заданное значение **X**. Результаты записываются в тот же массив по указателю. После окончания обработки выход функции принимает значение **TRUE**.

Пример: массив \[-2, 12, -4, 8, 6\] при **X=3** после <u>однократной</u> обработки функцией примет вид \[-6, 36, -12, 24, 18\].

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>a<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>xMul<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>_ARRAY_MUL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>xMul<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* после обработки: a = [-6.0, 36.0, -12.0, 24.0, 18.0], done = TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124874"></a>

### \_ARRAY_SHUFFLE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Выходы | \_ARRAY_SHUFFLE | BOOL | Флаг окончания обработки массива |
| Используемые модули | [RDM2](#topic-124852) | [RDM2](#topic-124852) | [RDM2](#topic-124852) |

Функция **\_ARRAY_SHUFFLE** переставляет элементы входного массива местами в случайном порядке. Результаты записываются в тот же массив по указателю. После окончания обработки выход функции принимает значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>a<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>_ARRAY_SHUFFLE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* После обработки элементы массива a будут перемешаны в случайном порядке.<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Конкретный порядок заранее не фиксирован, done = TRUE. *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124875"></a>

### \_ARRAY_SORT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Выходы | \_ARRAY_SORT | BOOL | Флаг окончания обработки массива |

Функция **\_ARRAY_SORT** сортирует входной массив, располагая его элементы в порядке возрастания. Результаты записываются в тот же массив по указателю. После окончания обработки выход функции принимает значение **TRUE**.

Пример: массив \[-2, 12, -4, 8, 6\] после обработки функцией примет вид \[-4, -2, 6, 8, 12\].

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>_ARRAY_SORT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* после обработки: a = [-4.0, -2.0, 6.0, 8.0, 12.0], done = TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124876"></a>

### ARRAY_AVG

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Выходы | ARRAY_AVG | REAL | Среднее арифметическое массива |

Функция **ARRAY_AVG** возвращает среднее арифметическое входного массива. Функция не изменяет содержимое входное массива.

Пример: для массива \[-2, 12, -4, 8, 6\] функция вернет значение **4**.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>avg<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>avg<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ARRAY_AVG<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* avg = 4.0, массив a не изменяется *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124877"></a>

### ARRAY_GAV

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Выходы | ARRAY_GAV | REAL | Среднее геометрическое массива |
| Используемые модули | [SQRTN](#topic-124863) | [SQRTN](#topic-124863) | [SQRTN](#topic-124863) |

Функция **ARRAY_GAV** возвращает среднее геометрическое входного массива. Функция не изменяет содержимое входного массива.

Пример: для массива \[2, 12, 4, 8, 6\] функция вернет значение **5.40383959**.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>4.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>8.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>6.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>]<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>gav<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>gav<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ARRAY_GAV<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* gav ≈ 5.40383959, массив a не изменяется *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124878"></a>

### ARRAY_HAV

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Выходы | ARRAY_HAV | REAL | Среднее гармоническое массива |

Функция **ARRAY_HAV** возвращает среднее гармоническое массива. Функция не изменяет содержимое массива.

Пример: для массива \[-2, 12, -4, 8, 6\] функция вернет значение **-13.333334**.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>hav<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>hav<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ARRAY_HAV<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* hav ≈ -13.333334, массив a не изменяется *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124879"></a>

### ARRAY_MAX

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Выходы | ARRAY_MAX | REAL | Значение наибольшего элемента |

Функция **ARRAY_MAX** возвращает значение наибольшего элемента входного массива. Функция не изменяет содержимое массива.

Пример: для массива \[-2, 12, -4, 8, 6\] функция вернет значение **12**.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>a<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>aMax<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>aMax<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ARRAY_MAX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* aMax = 12.0, массив a не изменяется *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124880"></a>

### ARRAY_MIN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Выходы | ARRAY_MIN | REAL | Значение наименьшего элемента |

Функция **ARRAY_MIN** возвращает значение наименьшего элемента входного массива. Функция не изменяет содержимое массива.

Пример: для массива \[-2, 12, -4, 8, 6\] функция вернет значение **-4**.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>a<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>aMin<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>aMin<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ARRAY_MIN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* aMax = -4.0, массив a не изменяется *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124881"></a>

### ARRAY_SDV

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Выходы | ARRAY_SDV | REAL | Среднеквадратичное отклонение |
| Используемые модули | [ARRAY_VAR](#topic-124885) | [ARRAY_VAR](#topic-124885) | [ARRAY_VAR](#topic-124885) |

Функция **ARRAY_SDV** возвращает среднеквадратичное отклонение для входного массива. Функция не изменяет содержимое массива.

Пример: для массива \[-2, 12, -4, 8, 6\] функция вернет значение **6.78233**.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>sdv<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>sdv<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ARRAY_SDV<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* sdv ≈ 6.78233, массив a не изменяется *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124882"></a>

### ARRAY_SPR

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Выходы | ARRAY_SPR | REAL | Абсолютное отклонение |
| Используемые модули | [ARRAY_MIN](#topic-124880), [ARRAY_MAX](#topic-124879) | [ARRAY_MIN](#topic-124880), [ARRAY_MAX](#topic-124879) | [ARRAY_MIN](#topic-124880), [ARRAY_MAX](#topic-124879) |

Функция **ARRAY_SPR** возвращает абсолютное отклонение для входного массива. Функция не изменяет содержимое массива.

Пример: для массива \[-2, 12, -4, 8, 6\] функция вернет значение 16 (*полученное следующим образом:* 12 - (-4)).

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>spr<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>spr<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ARRAY_SPR<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* spr = 16.0, массив a не изменяется *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124883"></a>

### ARRAY_SUM

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Выходы | ARRAY_SUM | REAL | Сумма элементов массива |

Функция **ARRAY_SUM** возвращает сумму элементов входного массива. Функция не изменяет содержимое массива.

Пример: для массива \[-2, 12, -4, 8, 6\] функция вернет значение **20**.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>sum<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>sum<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ARRAY_SUM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* sum = 20.0 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124884"></a>

### ARRAY_TREND

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Выходы | ARRAY_TREND | REAL | Абсолютное отклонение |
| Используемые модули | [EVEN](#topic-124823) | [EVEN](#topic-124823) | [EVEN](#topic-124823) |

Функция **ARRAY_TREND** возвращает значение тренда входного массива. Тренд представляет собой разность между средними значениями второй и первой половин массива. Если количество элементов в массиве является нечетным, то «центральный» элемент включается в обе половины. Функция не изменяет содержимое массива.

Пример: для массива \[-2, 12, -4, 8, 6\] функция вернет значение **1.33333337.**

![ARRAY TREND](https://docs.owen.ru/book_img/2417/164627.png)

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7F73E9"?>a<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7F73E9"?>trend<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>trend<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ARRAY_TREND<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* trend ≈ 1.33333337, массив a не изменяется *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124885"></a>

### ARRAY_VAR

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Выходы | ARRAY_VAR | REAL | Дисперсия |

Функция **ARRAY_VAR** возвращает значение дисперсии входного массива. Функция не изменяет содержимое массива.

Пример: для массива \[-2, 12, -4, 8, 6\] функция вернет значение **46**.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>xVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>xVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ARRAY_VAR<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* var = 46.0, массив a не изменяется *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124886"></a>

### IS_SORTED

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | pt | POINTER TO ARRAY \[…\] OF REAL | Указатель на массив |
| Входы | size | UINT | Размер массива |
| Выходы | IS_SORTED | BOOL | Флаг сортировки массива |

Функция **IS_SORTED** проверяет, отсортированы ли элементы входного массива по возрастанию. Функция возвращает **TRUE**, если массив отсортирован; во всех остальных случаях функция возвращает **FALSE**.

Пример: для массива \[-2, 12, -4, 8, 6\] функция вернет **FALSE**.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>      <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>-<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>sorted<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>sorted<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_SORTED<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>pt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>size<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* sorted = FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124887"></a>

## Комплексная арифметика

Комплексным числом называется выражение вида **x + i\*y**, где **x** и **y** – любые действительные числа, а **i** – специальное число, которое называется мнимой единицей. Величины **x** и **y** называются **действительной** и **мнимой** частью комплексного числа. Комплексные числа нашли применение в ряде областей математики и физики (в частности, в расчетах цепей переменного тока). В библиотеке OSCAT комплексные числа представляют собой экземпляры структуры [COMPLEX](#topic-124782), которая состоит из двух переменных: **re** (целая часть комплексного числа) и **im** (мнимая часть действительного числа). В данной главе описаны функции, используемые для работы с комплексными числами.

<a id="topic-124888"></a>

### CABS

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CABS | REAL | Модуль комплексного числа |
| Используемые модули | [HYPOT](#topic-124837) | [HYPOT](#topic-124837) | [HYPOT](#topic-124837) |

Функция **CABS** возвращает модуль комплексного числа X, вычисленный по формуле

![CABS](https://docs.owen.ru/book_img/2417/164626.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* z = 2.5 + i*0.5 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>m<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                  <?Pub _font FontColor="#5DA35B"?>(* |z| *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>m<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.CABS<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"?>z)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* m ≈ 2.5495098 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124889"></a>

### CACOS

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CACOS | [COMPLEX](#topic-124782) | Арккосинус комплексного числа |
| Используемые модули | [CACOSH](#topic-124890) | [CACOSH](#topic-124890) | [CACOSH](#topic-124890) |

Функция **CACOS** возвращает арккосинус комплексного числа **X**. Действительная часть полученного результата принадлежит интервалу \[0, π\], мнимая принадлежит интервалу \[- Ꝏ,Ꝏ\].

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* z = 2.5 + i*0.5 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res = CACOS(z) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CACOS<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* результат комплексный: res.re ≈ 0.214, 
                                    res.im ≈ -1.59*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124890"></a>

### CACOSH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CACOSH | [COMPLEX](#topic-124782) | Гиперболический арккосинус комплексного числа |
| Используемые модули | [CSQRT](#topic-124910), [CLOG](#topic-124903) | [CSQRT](#topic-124910), [CLOG](#topic-124903) | [CSQRT](#topic-124910), [CLOG](#topic-124903) |

Функция **CACOSH** возвращает гиперболический арккосинус комплексного числа **X**. Мнимая часть полученного результата принадлежит интервалу \[- π, π\].

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* z = 2.5 + i*0.5 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res = CACOSH(z) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CACOSH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* результат комплексный: res.re ≈ 1.59, 
                                     res.im ≈ 0.214*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124891"></a>

### CADD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Входы | Y | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CADD | [COMPLEX](#topic-124782) | Сумма комплексных чисел |

Функция **CADD** возвращает сумму комплексных чисел **X** и **Y**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>(<?Pub /_font?><?Pub _font FontColor="#FEFBCD"?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#FEFBCD"?>im<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>(<?Pub /_font?><?Pub _font FontColor="#FEFBCD"?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>4.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#FEFBCD"?>im<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>1.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res_re<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>res_im<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CADD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res.re = 7.0, res.im = 2.0*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res_re<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>res<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FEFBCD"?>re<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res_im<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>res<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FEFBCD"?>im<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124892"></a>

### CARG

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CARG | REAL | Угол между осью действительных чисел и радиус-вектором геометрического представления комплексного числа X в радианах |
| Используемые модули | [ATAN2](#topic-124806) | [ATAN2](#topic-124806) | [ATAN2](#topic-124806) |

Функция **CARG** возвращает значение угла (в радианах) между осью действительных чисел и радиус-вектором геометрического представления комплексного числа **X**.

![CARG](https://docs.owen.ru/book_img/2417/164625.png)

*Геометрическое представление комплексного числа*

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* z = 2.5 + i*0.5 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ang<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                 <?Pub _font FontColor="#5DA35B"?>(* аргумент z, рад *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ang<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CARG<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* ang = atan2(0.5, 2.5) ≈ 0.19739556 рад *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124893"></a>

### CASIN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CASIN | [COMPLEX](#topic-124782) | Арксинус комплексного числа |
| Используемые модули | [CASINH](#topic-124894) | [CASINH](#topic-124894) | [CASINH](#topic-124894) |

Функция **CASIN** возвращает арксинус комплексного числа **X**. Мнимая часть полученного результата принадлежит интервалу ![CASIN](https://docs.owen.ru/book_img/2417/164624.png).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* z = 2.5 + i*0.5 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* результат CASIN(z) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CASIN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124894"></a>

### CASINH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CASINH | [COMPLEX](#topic-124782) | Гиперболический арксинус комплексного числа |

Функция **CASINH** возвращает гиперболический арксинус комплексного числа **X**. Мнимая часть полученного результата принадлежит интервалу \[- π, π\].

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* входное комплексное число *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* результат CASINH(z) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CASINH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* res.re ≈ 1.66, res.re ≈ 0.184 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124895"></a>

### CATAN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CATAN | [COMPLEX](#topic-124782) | Арктангенс комплексного числа |

Функция **CATAN** возвращает арктангенс комплексного числа **X**. Мнимая часть полученного результата принадлежит интервалу ![CASIN](https://docs.owen.ru/book_img/2417/164624.png).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* z = 2.5 + i*0.5 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res = CATAN(z) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CATAN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* результат комплексный res.re ≈ -0.369, 
                                    res.im ≈ 0.0671 *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124896"></a>

### CATANH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CATANH | [COMPLEX](#topic-124782) | Гиперболический арктангенс комплексного числа |

Функция **CATANH** возвращает гиперболический арктангенс комплексного числа **X**. Мнимая часть полученного результата принадлежит интервалу ![CASIN](https://docs.owen.ru/book_img/2417/164624.png).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* z = 2.5 + i*0.5 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res = CATANH(z) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CATANH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* результат комплексный res.re ≈ 0.402, 
                                     res.im ≈ -0.0899 *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124897"></a>

### CCON

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CCON | [COMPLEX](#topic-124782) | Сопряженное число |

Функция **CCON** возвращает сопряженное число для комплексного числа **X**.

![CCON](https://docs.owen.ru/book_img/2417/164623.png)

![CCON2](https://docs.owen.ru/book_img/2417/164622.png)

*Геометрическое представление сопряженных чисел*

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>conj<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>conj<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CCON<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* conj = 2.5 + i*(-0.5) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124898"></a>

### CCOS

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CCOS | [COMPLEX](#topic-124782) | Косинус комплексного числа |
| Используемые модули | [CCOSH](#topic-124899), [CSET](#topic-124907) | [CCOSH](#topic-124899), [CSET](#topic-124907) | [CCOSH](#topic-124899), [CSET](#topic-124907) |

Функция **CCOS** возвращает косинус комплексного числа **X**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* z = 2.5 + i*0.5 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res = cos(z) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.CCOS<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* результат комплексный res.re ≈ -0.903, 
                                   res.im ≈ -0.312 *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124899"></a>

### CCOSH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CCOSH | [COMPLEX](#topic-124782) | Гиперболический косинус комплексного числа |
| Используемые модули | [COSH](#topic-124862), [SINH](#topic-124907) | [COSH](#topic-124862), [SINH](#topic-124907) | [COSH](#topic-124862), [SINH](#topic-124907) |

Функция **CCOSH** возвращает гиперболический косинус комплексного числа **X**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* z = 2.5 + i*0.5 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res = cosh(z) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.CCOSH<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* результат комплексный res.re ≈ 5.38, 
                                    res.im ≈ 2.9 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124900"></a>

### CDIV

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Входы | Y | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CDIV | [COMPLEX](#topic-124782) | Частное комплексных чисел |

Функция **CDIV** возвращает частное комплексных чисел **X** и **Y**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>X<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>(Re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>, Im<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   
    <?Pub _font FontColor="#988DF7"?>Y<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>(Re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>, Im<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>1.5<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>    
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* Результат деления *)<?Pub /_font?>   
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции CDIV для деления X на Y *)<?Pub /_font?>
<?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CDIV<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>Y<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"?>(*res.re ≈ 0.533, res.im ≈ -0.0667 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124901"></a>

### CEXP

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CEXP | [COMPLEX](#topic-124782) | Экспонента комплексного числа |

Функция **CEXP** возвращает значение экспоненты комплексного числа **X**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* входное комплексное число *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* результат вычисления экспоненты *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.CEXP<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>x<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"?>x)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* y.re ≈ 10.691, y.im ≈ 5.84 *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124902"></a>

### CINV

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CINV | [COMPLEX](#topic-124782) | Обратное комплексное число |

Функция **CINV** возвращает обратное число для комплексного числа **X**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* входное комплексное число *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* результат *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.CINV<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>x<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"?>x)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font
FontColor="#5DA35B"?>(* y.re ≈ 0.385, y.im ≈ -0.0769 *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124903"></a>

### CLOG

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CLOG | [COMPLEX](#topic-124782) | Натуральный логарифм комплексного числа |
| Используемые модули | [HYPOT](#topic-124837), [ATAN2](#topic-124806) | [HYPOT](#topic-124837), [ATAN2](#topic-124806) | [HYPOT](#topic-124837), [ATAN2](#topic-124806) |

Функция **CLOG** возвращает значение натурального логарифма для комплексного числа **X**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* входное комплексное число *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* значение натурального логарифма *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.CLOG<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>x<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"?>x)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font
FontColor="#5DA35B"?>(* y.re ≈ 0.936, y.im ≈ 0.197 *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124904"></a>

### CMUL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Входы | Y | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CMUL | [COMPLEX](#topic-124782) | Произведение комплексных чисел |

Функция **CMUL** возвращает произведение комплексных чисел **X** и **Y**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>(<?Pub /_font?><?Pub _font FontColor="#FEFBCD"?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#FEFBCD"?>im<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>(<?Pub /_font?><?Pub _font FontColor="#FEFBCD"?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>4.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#FEFBCD"?>im<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>1.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res_re<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>res_im<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CMUL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res.re = 10.5, res.im = 6.0*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res_re<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>res<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FEFBCD"?>re<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res_im<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>res<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FEFBCD"?>im<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124905"></a>

### CPOL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | L | REAL | Радиус-вектор |
| Входы | A | REAL | Угол между осью действительных чисел и радиус-вектором в радианах |
| Выходы | CPOL | [COMPLEX](#topic-124782) | Комплексное число |

Функция **CPOL** возвращает комплексное число, представленное в геометрическом виде радиус-вектором **L** и углом (в радианах) между осью действительных чисел и радиус-вектором **A**.

![CPOL](https://docs.owen.ru/book_img/2417/164621.png)

*Геометрическое представление комплексного числа*

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>L<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>   <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* радиус-вектор*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>A<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>   <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.785<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* угол в радианах (≈ 45 градусов)*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* вызов функции для преобразования полярных координат в комплексное число*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CPOL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>L<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>L,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>A<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>A<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res ≈ 3.5355 + 3.5355i*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124906"></a>

### CPOW

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Входы | Y | [COMPLEX](#topic-124782) | Показатель степени комплексного числа |
| Выходы | CPOW | [COMPLEX](#topic-124782) | Комплексное число, возведенное в степень |
| Используемые модули | [CEXP](#topic-124901), [CMUL](#topic-124904), [CLOG](#topic-124903) | [CEXP](#topic-124901), [CMUL](#topic-124904), [CLOG](#topic-124903) | [CEXP](#topic-124901), [CMUL](#topic-124904), [CLOG](#topic-124903) |

Функция **CPOW** возвращает комплексное число **X**, возведенное в степень **Y**. Показатель степени **Y** также является комплексным числом.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>(<?Pub /_font?><?Pub _font FontColor="#FEFBCD"?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#FEFBCD"?>im<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>(<?Pub /_font?><?Pub _font FontColor="#FEFBCD"?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>4.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#FEFBCD"?>im<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>1.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res_re<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>res_im<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CPOW<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res.re ≈ -33.1, res.im ≈ 37.7*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res_re<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>res<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FEFBCD"?>re<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res_im<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>res<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FEFBCD"?>im<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124907"></a>

### CSET

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | RE | REAL | Действительная часть комплексного числа |
| Входы | IM | REAL | Мнимая часть комплексного числа |
| Выходы | CSET | [COMPLEX](#topic-124782) | Комплексное число |

Функция **CSET** возвращает комплексное число c действительной частью **X** и мнимой частью **Y**.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>RE<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* радиус-вектор*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>IM<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* угол в радианах (≈ 45 градусов)*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* вызов функции для преобразования вещественных чисел в комплексное число*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CSET<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>RE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>RE,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>IM<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>IM<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res = 2.5 + 0.5i*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124908"></a>

### CSIN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CSIN | [COMPLEX](#topic-124782) | Синус комплексного числа |
| Используемые модули | [CCOSH](#topic-124899), [CSINH](#topic-124909) | [CCOSH](#topic-124899), [CSINH](#topic-124909) | [CCOSH](#topic-124899), [CSINH](#topic-124909) |

Функция **CSIN** возвращает синус комплексного числа **X**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* z = 2.5 + i*0.5 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res = sin(z) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.CSIN<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* результат комплексный res.re ≈ 0.675, 
                                   res.im ≈ -0.417 *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124909"></a>

### CSINH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CSINH | [COMPLEX](#topic-124782) | Гиперболический синус комплексного числа |
| Используемые модули | [COSH](#topic-124815), [SINH](#topic-124862) | [COSH](#topic-124815), [SINH](#topic-124862) | [COSH](#topic-124815), [SINH](#topic-124862) |

Функция **CSINH** возвращает гиперболический синус комплексного числа **X**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* z = 2.5 + i*0.5 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res = CSINH(z) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CSINH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* результат комплексный: res.re ≈ 5.31, 
                                    res.im ≈ 2.94 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124910"></a>

### CSQRT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CSQRT | [COMPLEX](#topic-124782) | Квадратный корень комплексного числа |
| Используемые модули | [HYPOT](#topic-124837), [SGN](#topic-124857) | [HYPOT](#topic-124837), [SGN](#topic-124857) | [HYPOT](#topic-124837), [SGN](#topic-124857) |

Функция **CSQRT** возвращает квадратный корень комплексного числа **X**.Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* z = 2.5 + i*0.5 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* квадратный корень комплексного числа *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CSQRT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* результат комплексный: res.re ≈ 1.59, 
                                    res.im ≈ 0.157 *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124911"></a>

### CSUB

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Входы | Y | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CSUB | [COMPLEX](#topic-124782) | Разность комплексных чисел |

Функция **CSUB** возвращает разность комплексных чисел **X** и **Y**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>(<?Pub /_font?><?Pub _font FontColor="#FEFBCD"?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#FEFBCD"?>im<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>(<?Pub /_font?><?Pub _font FontColor="#FEFBCD"?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>4.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#FEFBCD"?>im<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>1.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res_re<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>res_im<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CSUB<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res.re = -2.0, res.im = -1.0*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res_re<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>res<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FEFBCD"?>re<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res_im<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>res<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FEFBCD"?>im<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124912"></a>

### CTAN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CTAN | [COMPLEX](#topic-124782) | Тангенс комплексного числа |
| Используемые модули | [COSH](#topic-124815), [SINH](#topic-124862) | [COSH](#topic-124815), [SINH](#topic-124862) | [COSH](#topic-124815), [SINH](#topic-124862) |

Функция **CTAN** возвращает тангенс комплексного числа **X**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* z = 2.5 + i*0.5 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res = tan(z) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.CTAN<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* результат комплексный res.re ≈ -0.525, 
                                    res.im ≈ 0.643 *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124913"></a>

### CTANH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [COMPLEX](#topic-124782) | Комплексное число |
| Выходы | CTANH | [COMPLEX](#topic-124782) | Гиперболический тангенс комплексного числа |
| Используемые модули | [COSH](#topic-124815), [SINH](#topic-124862) | [COSH](#topic-124815), [SINH](#topic-124862) | [COSH](#topic-124815), [SINH](#topic-124862) |

Функция **CTANH** возвращает гиперболический тангенс комплексного числа **X**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>z<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* z = 2.5 + i*0.5 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>COMPLEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* res = CTANH(z) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>re<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FEFBCD"
?>im<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.CTANH<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>z<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* результат комплексный res.re ≈ 0.993, 
                                     res.im ≈ 0.0113 *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124914"></a>

## Арифметика чисел двойной точности

В соответствии со стандартом МЭК 61131-3 числа с плавающей точкой хранятся в ПЛК в виде переменных типа **REAL**. Переменные типа **REAL** соответствуют числам одинарной точности стандарта IEEE 754 и занимают **32 бита**. Они обеспечивают точность в 7-8 десятичных цифр в диапазоне от 10<sup>-39</sup>до 10<sup>38</sup>. Для большинства задач этого оказывается достаточно, но в отдельных ситуациях может потребоваться повышенная точность вычислений. **МЭК 61131-3** предусматривает тип **LREAL**, переменные которого занимают **64 бита** и соответствуют числам двойной точности стандарта **IEEE 754**, но поддержка данного типа реализована не на всех ПЛК. Для подобных случаев библиотека **OSCAT** предоставляет тип данных [REAL2](#topic-124791), эмулирующий поддержку чисел двойной точности. **REAL2** представляет собой структуру из двух переменных типа **REAL**, одна из которых – **RX** – содержит «грубую» часть значения (в нее входит целая часть и 7-8 знаков после запятой), а вторая – **R1** – «точную» (содержит оставшиеся знаки после запятой). При этом каждая операция над подобной структурой может привести к потере точности. В данной главе описаны функции, которые применяются для работы с этой структурой.

<a id="topic-124915"></a>

### R2_ABS

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [REAL2](#topic-124791) | Входное значение |
| Выходы | R2_ABS | [REAL2](#topic-124791) | Значение по модулю |

Функция **R2_ABC** возвращает модуль числа двойной точности **X** типа [REAL2](#topic-124791).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?>      <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>REAL2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* исходное значение REAL2 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x_abs<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>REAL2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* модуль x *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Пример задания отрицательного значения*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>RX<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>12.345678<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>             <?Pub _font
FontColor="#5DA35B"?>(* «грубая» часть *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>R1<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>0.000000009876<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* «точная» часть *)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции модуля *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>x_abs<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>R2_ABS<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>x<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* «грубая» часть = 12.345678, <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>                                 «точная» часть = 0.000000009876 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124916"></a>

### R2_ADD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [REAL2](#topic-124791) | Входное значение |
| Входы | Y | REAL | Входное значение |
| Выходы | R2_ADD | [REAL2](#topic-124791) | Сумма X и Y |

Функция **R2_ADD** возвращает сумму числа двойной точности **X** типа [REAL2](#topic-124791) и значения **Y** типа **REAL**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>X<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>REAL2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* число двойной точности *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Y<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                <?Pub _font FontColor="#5DA35B"?>(* слагаемое REAL *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>S<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>REAL2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* результат: X + Y *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Пример: X = 1000.123456789 *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>RX<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1000.123456<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* «грубая» часть *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>R1<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.000000789<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* «точная» часть *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>2.5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>S<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>R2_ADD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>X,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>Y<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* Сумма X и Y = 1002.623456789 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124917"></a>

### R2_ADD2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [REAL2](#topic-124791) | Входное значение |
| Входы | Y | [REAL2](#topic-124791) | Входное значение |
| Выходы | R2_ADD2 | [REAL2](#topic-124791) | Сумма X и Y |

Функция **R2_ADD2** возвращает сумму чисел двойной точности **X** и **Y** типа [REAL2](#topic-124791).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>X<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>REAL2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* первое слагаемое *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Y<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>REAL2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* второе слагаемое  *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>S<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>REAL2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* результат: X + Y *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* X = 1000.123456789 *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>RX<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1000.123456<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* «грубая» часть *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>R1<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.000000789<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* «точная» часть *)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Y = 2.500000111 *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Y<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>RX<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* «грубая» часть *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>Y<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>R1<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.000000111<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* «точная» часть *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>S<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>R2_ADD2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>X,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>Y<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* Сумма X и Y = 1002.623456900 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124918"></a>

### R2_MUL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | [REAL2](#topic-124791) | Входное значение |
| Входы | Y | REAL | Входное значение |
| Выходы | R2_MUL | [REAL2](#topic-124791) | Произведение X и Y |

Функция **R2_MUL** возвращает произведение числа двойной точности **X** типа [REAL2](#topic-124791) и значения **Y** типа **REAL**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>X<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>REAL2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* первый множитель *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Y<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                <?Pub _font FontColor="#5DA35B"?>(* второй множитель *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>S<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>REAL2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* результат: X * Y *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Пример: X = 12.345678901 *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>RX<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.345678<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* «грубая» часть *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>R1<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.000000901<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* «точная» часть *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>3.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>S<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>R2_MUL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>X,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>Y<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* Произведение X и Y = 37.037036703 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124919"></a>

### R2_SET

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Входное значение |
| Выходы | R2_SET | [REAL2](#topic-124791) | Выходное значение |

Функция **R2_SET** присваивает значение входной переменной **X** типа **REAL** выходной переменной двойной точности **R2_SET** типа [REAL2](#topic-124791).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>X<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>123.456<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>R2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>REAL2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* результат преобразования REAL -&gt; REAL2 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Присвоить значение REAL переменной типа REAL2 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>R2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>R2_SET<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* После преобразования:<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   R2.RX = 123.456<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   R2.R1 = 0.0<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124920"></a>

## Арифметические функции

<a id="topic-124921"></a>

### F_LIN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Входы | A | REAL | Угловой коэффициент |
| Входы | B | REAL | Коэффициент сдвига |
| Выходы | F_LIN | REAL | Значение линейной функции |

Функция **F_LIN** возвращает для аргумента **X** значение линейной функции, вычисленное по формуле

F_LIN(X)=A ∙ X + B

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>X<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* аргумент *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>A<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* угловой коэффициент *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>B<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"?>(* коэффициент сдвига *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>            <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* F_LIN(X) = A * X + B = 1.5 * 2.0 - 3.0 = 0.0 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>F_LIN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>X,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>A<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>A,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>B<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>B<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-124922"></a>

### F_LIN2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Входы | X1 | REAL | Координата X для точки 1 |
| Входы | Y1 | REAL | Координата Y для точки 1 |
| Входы | X2 | REAL | Координата X для точки 2 |
| Входы | Y2 | REAL | Координата Y для точки 2 |
| Выходы | F_LIN2 | REAL | Линейно интерполированное значение Y для X |

Функция **F_LIN2** возвращает для точки с координатой X результат линейной интерполяции координаты **Y** между узловыми точками **(X1, Y1)** и **(X2, Y2)**. Если значение **X** не входит в диапазон **(Х1...Х2)**, то значение **Y** (**F_LIN2**) экстраполируется.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>X<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* точка, для которой ищем Y *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>X1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Y1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>X2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Y2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Y<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>            <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Линейная интерполяция между (0,0) и (10,100):<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   при X = 5 получаем Y = 50 *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>F_LIN2(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>X,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>X1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>X1,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>Y1<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>Y1,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>X2<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>X2,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>Y2<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>Y2<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-124923"></a>

### F_POLY

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Входы | C | ARRAY \[0..7\] OF REAL | Коэффициенты полинома |
| Выходы | F_POLY | REAL | Значение полинома 7-ой степени |

Функция **F_POLY** возвращает значение полинома 7-ой степени с коэффициентами **С** (где С – массив из 8-ми значений) для аргумента **X**, вычисленное по формуле

![F POLY](https://docs.owen.ru/book_img/2417/164620.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>X<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>C<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>7<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Полином:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Y = C0 + C1*X + C2*X^2 + C3*X^3 + C4*X^4 + C5*X^5 + C6*X^6 + C7*X^7<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   При X = 1.5 и C = [1,1,1,1,2,2,3,3]:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Y = 1 + 1.5 + 2.25 + 3.375 + 2*5.0625 + 2*7.59375 + 3*11.390625 + 3*17.0859375<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>     = 118.0078125<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>Y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>F_POLY<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>C<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>C<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-124924"></a>

### F_POWER

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | a | REAL | Коэффициент |
| Входы | X | REAL | Аргумент |
| Входы | n | REAL | Показатель степени |
| Выходы | F_POWER | REAL | Значение степенной функции |

Функция **F_POWER** возвращает для аргумента X значение степенной функции, вычисленное по формуле

F_POWER(X)=a ∙ X^n

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>n<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>F_POWER<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>a<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FFF2C5"?>a,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>x,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>n<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>n<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* y = 2 * 3^4 = 162 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-124925"></a>

### F_QUAD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Входы | A | REAL | Коэффициент |
| Входы | B | REAL | Коэффициент |
| Входы | C | REAL | Коэффициент |
| Выходы | F_QUAD | REAL | Значение квадратичной функции |

Функция **F_QUAD** возвращает для аргумента X значение квадратичной функции, вычисленное по формуле

F_QUAD(X)=A ∙ X^2 + B ∙ X + С

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>x<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>4.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>c<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>F_QUAD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>x,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>A<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>a,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>B<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>b,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>C<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>c<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>   
<?Pub _font FontColor="#5DA35B"?>(* y = 3*2^2 + (-4)*2 + 1 = 5 *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-124926"></a>

### FRMP_B

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | START | BYTE | Начальное значение |
| Входы | DIR | BOOL | Направление изменения выхода |
| Входы | TD | TIME | Прошедшее время |
| Входы | TR | TIME | Полное время генерации (от 0 до 255) |
| Выходы | FRMP_B | BYTE | Выход блока |

Функция **FRMP_B** используется для реализации генератора линейной функции. Пока функция находится в работе, значение ее выхода линейно изменяется от текущего (**START**) до максимального (при **DIR=TRUE**) или минимального (при **DIR=FALSE**). Минимальное и максимальное значения определяются диапазоном типа **BYTE** и соответственно составляют **0** и **255**. Вход **TR** определяет полное время генерации (от 0 до 255 секунд), а вход **TD** – время, прошедшее с начала работы функции. Таким образом, значение входа **TD** должно увеличиваться во время работы функции для изменения ее выхода.

См. также генератор [\_RMP_B](#topic-125178), построенный на базе данной функции.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>start<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>           <?Pub _font
FontColor="#5DA35B"?>(* стартовое значение *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dirUp<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* TRUE: к 255, FALSE: к 0 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>td<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#009999"
?>TIME<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#A4FCA2"?>T#0s<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* прошедшее время *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>tr<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#009999"
?>TIME<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#A4FCA2"?>T#10s<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* полное время генерации *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Пример: эмуляция прошедшего времени *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>td<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#A4FCA2"
?>T#4s<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FRMP_B<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>START<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>start,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>DIR<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>dirUp,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>TD<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>td,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>TR<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>tr<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* При START=100, DIR=TRUE, TR=10s и TD=4s:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   y ≈ 100 + (255-100)*4/10 = 162 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-124927"></a>

### FT_AVG

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Контролируемое значение |
| Входы | E | BOOL | Сигнал управления блоком |
| Входы | N | N | Число точек усреднения сигнала (0…32) |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | FT_AVG | REAL | Значение скользящей средней |

Функциональный блок **FT_AVG** представляет собой фильтр скользящей средней. Если вход **E** имеет значение **TRUE**, то блок находится в работе, и на выход **AVG** подается значение входа **IN**, усредненное за последние **N** циклов ПЛК (**K** – номер текущего цикла ПЛК):

![FT AVG](https://docs.owen.ru/book_img/2417/164619.png)

Если N=0, то AVG=IN. По переднему фронту на входе **RST** данные блока обнуляются, и усреднение начинается заново.

![FT AVG2](https://docs.owen.ru/book_img/2417/164618.png)

*Трассировка работы ФБ **FT****\_****AVG** (N=30, время цикла ПЛК=50 мс)*

<a id="topic-124928"></a>

### FT_MIN_MAX

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Контролируемое значение |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | MX | REAL | Максимальное значение |
| Выходы | MN | REAL | Минимальное значение |

Функциональный блок **FT_MIN_MAX** собирает статистику о входе **IN**, сохраняя его максимальное и минимальное значение на выходах **MX** и **MN**. По переднему фронту на входе **RST** значения выходов обнуляются, после чего сбор статистики начинается заново.

<a id="topic-124929"></a>

### FT_RMP

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | Rmp | BOOL | Сигнал управления блоком |
| Входы | IN | REAL | Контролируемый сигнал |
| Входы | KR | REAL | Допустимая скорость нарастания, ед/с |
| Входы | KF | REAL | Допустимая скорость спада, ед/с |
| Выходы | out | REAL | Сглаженное значение сигнала |
| Выходы | busy | BOOL | Флаг «блок в работе» |
| Выходы | UD | BOOL | Направление изменения сигнала |

Функциональный блок **FT_RMP** используется для сглаживания сигналов. Пока вход **Rmp** имеет значение **TRUE** блок находится в работе и значение выхода **out** следует за значением входа **IN**, при этом допустимая максимальная скорость увеличения значения на выходе (в ед./c) определяется входом **KR**, а допустимая максимальная скорость уменьшения – входом **KF**. Выход **busy** имеет значение **TRUE**, пока происходит изменение выхода **out**. Выход **UD** имеет значение **TRUE**, если значение выхода **out** увеличивается, и **FALSE** – если уменьшается. Величина изменения выхода **out** зависит от времени цикла ПЛК; см. также блоки [RMP_B](#topic-125190) и [RMP_W](#topic-125192) с фиксированной величиной изменения выходов.

![FT RMP](https://docs.owen.ru/book_img/2417/164687.png)

*Трассировка работы ФБ **FT_RMP** (KR=5.0, KF=2.0, время цикла ПЛК=50 мс)*

<a id="topic-124930"></a>

### LINEAR_INT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Входы | XY | ARRAY \[1..20, 0..1\] OF REAL | Таблица узловых точек |
| Входы | Pts | INT | Число используемых узловых точек (3..20) |
| Выходы | LINEAR_INT | REAL | Линейно интерполированное значение Y для X |

Функция **LINEAR_INT** выполняет для значения **X** кусочно-линейную интерполяцию по зависимости, определяемой таблицей узловых точек **XY**. Значения **X** в таблице должны быть отсортированы по возрастанию. Вход **Pts** определяет число используемых для интерполяции узловых точек и может принимать значение в диапазоне **\[3…20\]**. Если значение **X** не входит в диапазон таблицы, то значение Y (**LINEAR_INT**) экстраполируется.

См. график в разделе [POLYNOM_INT](#topic-124931)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>    <?Pub _font
FontColor="#5DA35B"?>(* Таблица узловых точек: [номер_точки, 0 для X, 1 для Y] *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>XY_Table<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>20<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?>
        <?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* Точка 1: X=0.0, Y=0.0 *)<?Pub /_font?>
        <?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* Точка 2: X=1.0, Y=2.0 *)<?Pub /_font?>
        <?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* Точка 3: X=2.0, Y=4.0 *)<?Pub /_font?>
        <?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>8.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* Точка 4: X=3.0, Y=8.0 *)<?Pub /_font?>
        <?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>4.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>16.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* Точка 5: X=4.0, Y=16.0 *)<?Pub /_font?>
        <?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>32.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?><?Pub /_font?>   <?Pub _font
FontColor="#5DA35B"?>(* Точка 6: X=5.0, Y=32.0 *)<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* Аргумент для интерполяции *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Pts<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>6<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* Количество используемых точек *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultY<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>          <?Pub _font FontColor="#5DA35B"?>(* Результат интерполяции *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Вызов функции интерполяции из библиотеки OSCAT_BASIC *)<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>ResultY<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>LINEAR_INT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>InputX,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>XY<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>XY_Table,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>Pts<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Pts<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* После выполнения:<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>       ResultY будет равен 3.0, так как X=1.5 находится посередине<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>       между точками 1.0 (Y=2.0) и 2.0 (Y=4.0).<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>    *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-124931"></a>

### POLYNOM_INT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Аргумент |
| Входы | XY | ARRAY \[1..5, 0..1\] OF REAL | Таблица узловых точек |
| Входы | Pts | INT | Число используемых узловых точек (3..5) |
| Выходы | POLYNOM_INT | REAL | Полиномиально интерполированное значение Y для X |

Функция **POLYNOM_INT** выполняет для значения **X** полиномиальную интерполяцию по зависимости, определяемой таблицей узловых точек **XY**. Значения **X** в таблице должны быть отсортированы по возрастанию. Вход **Pts** определяет число используемых для интерполяции узловых точек и может принимать значение в диапазоне **\[3…5\].** Если значение **X** не входит в диапазон таблицы, то значение Y (**POLYNOM_INT**) экстраполируется.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>    <?Pub _font
FontColor="#5DA35B"?>(* Таблица узловых точек: [номер_точки, 0 для X, 1 для Y] *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>XY_Table<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font FontColor="#FFB49C"
?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"?>REAL<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#E1E1E1"?>[<?Pub /_font?>
        <?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* Точка 1: X=0.0,  Y=1.0  *)<?Pub /_font?>
        <?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* Точка 2: X=1.0,  Y=2.0  *)<?Pub /_font?>
        <?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* Точка 3: X=2.0,  Y=5.0  *)<?Pub /_font?>
        <?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* Точка 4: X=3.0,  Y=10.0 *)<?Pub /_font?>
        <?Pub _font FontColor="#E1E1E1"?><?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>4.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>17.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?><?Pub /_font?>    <?Pub _font
FontColor="#5DA35B"?>(* Точка 5: X=4.0,  Y=17.0 *)<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* Аргумент для интерполяции *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Pts<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* Количество используемых точек (3..5) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultY<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>          <?Pub _font FontColor="#5DA35B"?>(* Результат интерполяции *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Вызов функции полиномиальной интерполяции *)<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>ResultY<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>POLYNOM_INT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>InputX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>XY<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>XY_Table<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Pts<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>Pts<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>       Результат:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>       При X=2.5 и 5 точках, полиномиальная интерполяция даст значение,<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>       которое точно проходит через все заданные точки.<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>       Для данных точек функция соответствует полиному Y = X^2 + 1<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>       При X=2.5: Y = 6.25 + 1 = 7.25<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>    *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124932"></a>

## Геометрические функции

<a id="topic-124933"></a>

### CIRCLE_A

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | rx | REAL | Радиус окружности |
| Входы | ax | REAL | Угол сектора в градусах |
| Выходы | CIRCLE_A | REAL | Площадь сектора окружности |

![CIRCLE A](https://docs.owen.ru/book_img/2417/164686.png)

Функция **CIRCLE_A** возвращает для окружности с радиусом **rx** площадь сектора с углом **ax**, вычисленную по формуле:

![CIRCLE A2](https://docs.owen.ru/book_img/2417/164685.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rRadius<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>// Радиус окружности<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rAngle<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>90.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>// Угол сектора в градусах<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rArea<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>             <?Pub _font FontColor="#5DA35B"?>// Площадь сектора<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>rArea<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CIRCLE_A<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>rx<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>rRadius,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>ax<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>rAngle<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// Результат: 19.63495 (площадь сектора 90° при радиусе 5)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124934"></a>

### CIRCLE_C

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | rx | REAL | Радиус окружности |
| Входы | ax | REAL | Угол сектора в градусах |
| Выходы | CIRCLE_C | REAL | Длина дуги сектора окружности |

![CIRCLE C2](https://docs.owen.ru/book_img/2417/164684.png)

Функция **CIRCLE_C** возвращает для окружности с радиусом **rx** длину дуги сектора с углом **ax**, вычисленную по формуле:

![CIRCLE C](https://docs.owen.ru/book_img/2417/164683.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rRadius<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>// Радиус окружности = 5 единиц<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rAngle<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>90.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>// Угол сектора = 90 градусов<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rArcLength<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>          <?Pub _font FontColor="#5DA35B"?>// Длина дуги сектора<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>rArcLength<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CIRCLE_C<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>rx<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>rRadius,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>ax<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>rAngle<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// Результат: 7.85398 (длина дуги 90° при радиусе 5)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124935"></a>

### CIRCLE_SEG

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | rx | REAL | Радиус окружности |
| Входы | HX | REAL | Высота сегмента |
| Выходы | CIRCLE_SEG | REAL | Площадь сегмента окружности |

![CIRCLE SEG](https://docs.owen.ru/book_img/2417/164682.png)

Функция **CIRCLE_SEG** возвращает для окружности с радиусом **RX** площадь сегмента с высотой **HX**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rRadius<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>// Радиус окружности = 5 единиц<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rHeight<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>// Высота сегмента = 1 единица<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rSegArea<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>             <?Pub _font FontColor="#5DA35B"?>// Площадь сегмента<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>rSegArea<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CIRCLE_SEG<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>rx<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>rRadius,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>hx<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>rHeight<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// Результат: 4.08752775 (площадь сегмента при радиусе 5 и высоте 1)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124936"></a>

### CONE_V

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | rx | REAL | Радиус основания конуса |
| Входы | hx | REAL | Высота конуса |
| Выходы | CONE_V | REAL | Объем конуса |

![CONE V](https://docs.owen.ru/book_img/2417/164681.png)

Функция **CONE_V** возвращает объем конуса с радиусом основания **rx** и высотой **hx**, вычисленный по формуле

![CONE V2](https://docs.owen.ru/book_img/2417/164680.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rRadius<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>// Радиус основания конуса = 3 единицы<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>rHeight<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>// Высота конуса = 5 единиц<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rVolume<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>             <?Pub _font FontColor="#5DA35B"?>// Объем конуса<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>rVolume<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CONE_V<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>rx<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>rRadius,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>hx<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>rHeight<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// Результат: 47.12389 (объем конуса с радиусом 3 и высотой 5)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124937"></a>

### ELLIPSE_A

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | R1 | REAL | Малая полуось эллипса |
| Входы | R2 | REAL | Большая полуось эллипса |
| Выходы | ELLIPSE_A | REAL | Площадь эллипса |

![ELLIPSE A](https://docs.owen.ru/book_img/2417/164679.png)

Функция **ELLIPSE_A** возвращает площадь эллипса с полуосями **R1** и **R2**, вычисленную по формуле

ELLIPSE_A= π ∙ R1 ∙ R2

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rSemiAxis1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>// Малая полуось эллипса = 3 единицы<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>rSemiAxis2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>// Большая полуось эллипса = 5 единиц<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>rArea<?Pub /_font?>      <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>             <?Pub _font FontColor="#5DA35B"?>// Площадь эллипса<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>rArea<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ELLIPSE_A<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>R1<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>rSemiAxis1,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>R2<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>rSemiAxis2<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// Результат: 47.12389 (площадь эллипса с полуосями 3 и 5)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124938"></a>

### ELLIPSE_C

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | R1 | REAL | Малая полуось эллипса |
| Входы | R2 | REAL | Большая полуось эллипса |
| Выходы | ELLIPSE_C | REAL | Периметр эллипса |

![ALLIPCE C](https://docs.owen.ru/book_img/2417/164678.png)

Функция **ELLIPSE_C** возвращает периметр эллипса с полуосями **R1** и **R2**, вычисленный по формуле

![ELLIPSE C2](https://docs.owen.ru/book_img/2417/164707.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rSemiAxis1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>// Малая полуось эллипса = 3 единицы<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>rSemiAxis2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>// Большая полуось эллипса = 5 единиц<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>rPerimeter<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>             <?Pub _font FontColor="#5DA35B"?>// Периметр эллипса<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>rPerimeter<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ELLIPSE_C<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>R1<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>rSemiAxis1,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>R2<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>rSemiAxis2<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// Результат: 25.52763 (периметр эллипса с полуосями 3 и 5)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124939"></a>

### SPHERE_V

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | rx | REAL | Радиус сферы |
| Выходы | SPHERE_V | REAL | Объем сферы |

![SPHERE V](https://docs.owen.ru/book_img/2417/164706.png)

Функция **SPHERE_V** возвращает объем сферы с радиусом **rx**, вычисленный по формуле

![SPHERE V2](https://docs.owen.ru/book_img/2417/164705.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rRadius<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>// Радиус сферы = 3 единицы<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rVolume<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>             <?Pub _font FontColor="#5DA35B"?>// Объем сферы<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>rVolume<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SPHERE_V<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>rx<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>rRadius<?Pub /_font?> <?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// Результат: 113.09734 (объем сферы с радиусом 3)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124940"></a>

### TRIANGLE_A

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | S1 | REAL | Длина стороны 1 |
| Входы | S2 | REAL | Длина стороны 2 |
| Входы | A | REAL | Угол между сторонами 1 и 2, градусы |
| Входы | S3 | REAL | Длина стороны 3 |
| Выходы | TRIANGLE_A | REAL | Площадь треугольника |

![TRIANGLE A](https://docs.owen.ru/book_img/2417/164704.png)

Функция **TRIANGLE_A** возвращает площадь треугольника, вычисленную одним из двух способов:

1. По двум сторонам и углу между ними (**S1, S2, A**). В этом случае значение входа **S3** должно быть равно **0**.

   ![TRIANGLE A2](https://docs.owen.ru/book_img/2417/164703.png)

2. По трем сторонам (**S1, S2, S3**). В этом случае значение входа **A** должно быть равно **0**.

   ![TRIANGLE A3](https://docs.owen.ru/book_img/2417/164702.png)

   ![TRIANGLE A4](https://docs.owen.ru/book_img/2417/164701.png)

Примеры

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rSide1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>// Сторона 1 = 5 единиц<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rSide2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>7.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>// Сторона 2 = 7 единиц<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rAngle<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>60.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>// Угол между сторонами = 60 градусов<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>rSide3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>// Не используется (должна быть 0)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>rArea<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>               <?Pub _font FontColor="#5DA35B"?>// Площадь треугольника<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// Вычисление площади по двум сторонам и углу между ними<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>rArea<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>TRIANGLE_A(<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>S1<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>rSide1,<?Pub /_font
?> 
<?Pub _font FontColor="#DCDCDC"?>S2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>rSide2,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>A<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>rAngle,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>S3<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>rSide3<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// Результат: 15.155 (площадь треугольника со сторонами 5 и 7 и углом 60°)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124941"></a>

## Операции над векторами

Функции, описанные в данной главе, используется для работы с радиус-векторами трехмерного пространства. Координаты радиус-вектора описываются структурой [VECTOR_3](#topic-124793).

<a id="topic-124942"></a>

### V3_ABS

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | [VECTOR_3](#topic-124793) | Радиус-вектор |
| Выходы | V3_ABS | REAL | Длина радиус-вектора |

Функция **V3_ABS** возвращает модуль радиус-вектора **A** (равный длине соответствующего отрезка), вычисленный по формуле

![V3 ABS](https://docs.owen.ru/book_img/2417/164700.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
?><?Pub _font FontColor="#FFCC33"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>len<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>REAL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>3.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>Y<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>4.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>Z<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>0.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="white"?>len<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.V3_ABS<?Pub /_font
?><?Pub _font FontColor="white"?>(A<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>a)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* len = 5.0 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124943"></a>

### V3_ADD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | [VECTOR_3](#topic-124793) | Радиус-вектор A |
| Входы | B | [VECTOR_3](#topic-124793) | Радиус-вектор B |
| Выходы | V3_ADD | [VECTOR_3](#topic-124793) | Сумма радиус-векторов A и B |

Функция **V3_ADD** возвращает сумму радиус-векторов **A** и **B** (суммирование векторов представляет собой суммирование их координат).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
?><?Pub _font FontColor="#FFCC33"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>b<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
?><?Pub _font FontColor="#FFCC33"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>sum<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
?><?Pub _font FontColor="#FFCC33"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>3.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>Y<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>4.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>Z<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>0.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>b<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>1.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>b<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>Y<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>b<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>Z<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="white"?>sum<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.V3_ADD<?Pub /_font
?><?Pub _font FontColor="white"?>(A<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>a, B <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> b<?Pub _font
FontColor="white"?>)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"?>(* sum = (4, 6, 2) *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?><?Pub /_font
?></code></td></tr></tbody></table></div></div>

<a id="topic-124944"></a>

### V3_ANG

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | [VECTOR_3](#topic-124793) | Радиус-вектор A |
| Входы | B | [VECTOR_3](#topic-124793) | Радиус-вектор B |
| Выходы | V3_ANG | REAL | Угол между радиус-векторами A и B (в радианах) |
| Используемые модули | [V3_DPRO](#topic-124945) | [V3_DPRO](#topic-124945) | [V3_DPRO](#topic-124945) |

Функция **V3_ANG** возвращает значение угла (в радианах) между радиус-векторами **A** и **B**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ang<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>a<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font
FontColor="#FFF2C5"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"?>Z<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>0.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>b<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>b<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font
FontColor="#FFF2C5"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>b<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"?>Z<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>0.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>ang<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>V3_ANG<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>A<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>B<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>b<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* ang ≈ 1.5707963 (π/2) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124945"></a>

### V3_DPRO

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | [VECTOR_3](#topic-124793) | Радиус-вектор A |
| Входы | B | [VECTOR_3](#topic-124793) | Радиус-вектор B |
| Выходы | V3_DPRO | REAL | Скалярное произведение радиус-векторов A и B |

Функция **V3_DPRO** возвращает скалярное произведение радиус-векторов **A** и **B**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ang<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>a<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font
FontColor="#FFF2C5"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"?>Z<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>0.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>b<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>b<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font
FontColor="#FFF2C5"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>b<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"?>Z<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>ang<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>V3_DPRO<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>A<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>B<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>b<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* dot = 11.0 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124946"></a>

### V3_NORM

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | [VECTOR_3](#topic-124793) | Одномерный радиус-вектор |
| Выходы | V3_NORM | [VECTOR_3](#topic-124793) | Единичный радиус-вектор |
| Используемые модули | [V3_ABS](#topic-124942), [V3_SMUL](#topic-124950) | [V3_ABS](#topic-124942), [V3_SMUL](#topic-124950) | [V3_ABS](#topic-124942), [V3_SMUL](#topic-124950) |

Функция **V3_NORM** конвертирует одномерный радиус-вектор **A** в единичный вектор, ориентированный в том же направлении.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>unit<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>Z<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>unit<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>V3_NORM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>A<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* unit ≈ (0.6, 0.8, 0.0) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124947"></a>

### V3_NUL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | [VECTOR_3](#topic-124793) | Радиус-вектор |
| Выходы | V3_NUL | BOOL | Флаг «нулевой вектор» |

Функция **V3_NUL** возвращает **TRUE**, если радиус-вектор **A** является нулевым вектором.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>isNul<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>Z<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>isNul<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>V3_NUL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>A<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* isNul ≈ TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124948"></a>

### V3_PAR

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | [VECTOR_3](#topic-124793) | Радиус-вектор A |
| Входы | B | [VECTOR_3](#topic-124793) | Радиус-вектор B |
| Выходы | V3_PAR | BOOL | Флаг «коллинеарные векторы» |
| Используемые модули | [V3_ABS](#topic-124942), [V3_XPRO](#topic-124953) | [V3_ABS](#topic-124942), [V3_XPRO](#topic-124953) | [V3_ABS](#topic-124942), [V3_XPRO](#topic-124953) |

Функция **V3_PAR** возвращает **TRUE**, если радиус-векторы **A** и **B** являются коллинеарными. Нулевой вектор коллинеарен любому вектору, т.к. не имеет направления.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>isPar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>a<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font
FontColor="#FFF2C5"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"?>Z<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>3.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>b<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>b<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font
FontColor="#FFF2C5"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>b<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"?>Z<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>6.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>isPar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>V3_PAR<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>A<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>B<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>b<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* isPar = TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124949"></a>

### V3_REV

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | [VECTOR_3](#topic-124793) | Радиус-вектор |
| Выходы | V3_REV | [VECTOR_3](#topic-124793) | Противонаправленный радиус-вектор |

Функция **V3_REV** конвертирует радиус-вектор **A** в радиус-вектор с равной длиной, но ориентированный в противоположном направлении.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rev<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>Z<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>rev<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>V3_REV<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>A<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* rev = (-3, -4, 0) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124950"></a>

### V3_SMUL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | [VECTOR_3](#topic-124793) | Радиус-вектор A |
| Входы | M | REAL | Число |
| Выходы | V3_SMUL | [VECTOR_3](#topic-124793) | Произведение радиус-векторов A и числа M |

Функция **V3_SMUL** возвращает произведение радиус-вектора **A** и числа **M**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>m<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>Z<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>V3_SMUL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>A<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a, M<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>m)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* res = (6, 8, 0) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124951"></a>

### V3_SUB

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | [VECTOR_3](#topic-124793) | Радиус-вектор A |
| Входы | B | [VECTOR_3](#topic-124793) | Радиус-вектор B |
| Выходы | V3_SUB | [VECTOR_3](#topic-124793) | Разность радиус-векторов A и B |

Функция **V3_SUB** возвращает разность радиус-векторов **A** и **B**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dif<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>a<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font
FontColor="#FFF2C5"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"?>Z<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>0.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>b<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>b<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font
FontColor="#FFF2C5"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>b<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"?>Z<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>2.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>dif<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>V3_SUB<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>A<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>B<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>b<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* dif = (2, 2, -2) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124952"></a>

### V3_XANG

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | [VECTOR_3](#topic-124793) | Радиус-вектор |
| Выходы | V3_XANG | REAL | Угол между радиус-вектором и осью X |
| Используемые модули | [V3_ABS](#topic-124942) | [V3_ABS](#topic-124942) | [V3_ABS](#topic-124942) |

Функция **V3_XANG** возвращает угол между радиус-вектором **A** и осью **X** (в радианах).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
?><?Pub _font FontColor="#FFCC33"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>xAng<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>REAL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>3.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>Y<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>4.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>Z<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>0.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="white"?>xAng<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.V3_XANG<?Pub /_font?><?Pub _font FontColor="white"?>(A<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>a)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* xAng ≈ 0.9272952 рад *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124953"></a>

### V3_XPRO

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | [VECTOR_3](#topic-124793) | Радиус-вектор A |
| Входы | B | [VECTOR_3](#topic-124793) | Радиус-вектор B |
| Выходы | V3_XPRO | [VECTOR_3](#topic-124793) | Векторное произведение радиус-векторов A и B |

Функция **V3_XPRO** возвращает векторное произведение радиус-векторов **A** и **B**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>a<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>b<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>cross<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>a<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>a<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font
FontColor="#FFF2C5"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>a<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"?>Z<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>0.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>b<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>b<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font
FontColor="#FFF2C5"?>Y<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>b<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>.<?Pub /_font?><?Pub _font FontColor="#FFF2C5"?>Z<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>0.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>cross<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>V3_XPRO<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>A<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>a,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>B<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>b<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* cross = (0, 0, 1) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124954"></a>

### V3_YANG

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | [VECTOR_3](#topic-124793) | Радиус-вектор |
| Выходы | V3_YANG | REAL | Угол между радиус-вектором и осью Y |
| Используемые модули | [V3_ABS](#topic-124942) | [V3_ABS](#topic-124942) | [V3_ABS](#topic-124942) |

Функция **V3_YANG** возвращает угол между радиус-вектором **A** и осью Y (в радианах).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
?><?Pub _font FontColor="#FFCC33"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>yAng<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>REAL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>3.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>Y<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>4.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>Z<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>0.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="white"?>yAng<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.V3_YANG<?Pub /_font?><?Pub _font FontColor="white"?>(A<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>a)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* yAng ≈ 0.6435011 рад *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124955"></a>

### V3_ZANG

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | [VECTOR_3](#topic-124793) | Радиус-вектор |
| Выходы | V3_ZANG | REAL | Угол между радиус-вектором и осью Z |
| Используемые модули | [V3_ABS](#topic-124942) | [V3_ABS](#topic-124942) | [V3_ABS](#topic-124942) |

Функция **V3_ZANG** возвращает угол между радиус-вектором **A** и осью Z (в радианах).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
?><?Pub _font FontColor="#FFCC33"?>VECTOR_3<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>zAng<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>REAL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>3.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>Y<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>4.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>a<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>Z<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>0.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="white"?>zAng<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.V3_ZANG<?Pub /_font?><?Pub _font FontColor="white"?>(A<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>a)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* zAng ≈ 1.5707963 рад *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124956"></a>

## Дата и время

В ALTA IDE значение календарной даты и местного времени, вычисляется относительно нулевой точки 0000-0-0-0:0:0 (DATE_AND_TIME (DT)).

<a id="topic-124957"></a>

### CALENDAR_CALC

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SPE | BOOL | Сигнал включения расчета азимута и высоты солнца над горизонтом |
| Входы | H | REAL | Высота солнца над горизонтом на восходе в градусах |
| Выходы | XCAL | [CALENDAR](#topic-124781) | Данные календаря |
| Выходы | HOLIDAYS | ARRAY \[0…29\] OF [HOLIDAY_DATA](#topic-124790) | Список праздников |
| Используемые модули | [UTC_TO_LTIME](#topic-125008), [DAY_OF_DATE](#topic-124959), [HOUR](#topic-124974), [DST](#topic-124968), [YEAR_OF_DATE](#topic-125012), [MONTH_OF_DATE](#topic-124988), [DAY_OF_MONTH](#topic-124960), [DAY_OF_WEEK](#topic-124961), [WORK_WEEK](#topic-125009), [HOLIDAY](#topic-124973), [SUN_TIME](#topic-125006), [SUN_POS](#topic-125005) | [UTC_TO_LTIME](#topic-125008), [DAY_OF_DATE](#topic-124959), [HOUR](#topic-124974), [DST](#topic-124968), [YEAR_OF_DATE](#topic-125012), [MONTH_OF_DATE](#topic-124988), [DAY_OF_MONTH](#topic-124960), [DAY_OF_WEEK](#topic-124961), [WORK_WEEK](#topic-125009), [HOLIDAY](#topic-124973), [SUN_TIME](#topic-125006), [SUN_POS](#topic-125005) | [UTC_TO_LTIME](#topic-125008), [DAY_OF_DATE](#topic-124959), [HOUR](#topic-124974), [DST](#topic-124968), [YEAR_OF_DATE](#topic-125012), [MONTH_OF_DATE](#topic-124988), [DAY_OF_MONTH](#topic-124960), [DAY_OF_WEEK](#topic-124961), [WORK_WEEK](#topic-125009), [HOLIDAY](#topic-124973), [SUN_TIME](#topic-125006), [SUN_POS](#topic-125005) |

Функциональный блок **CALENCAR_CALC** принимает на вход-выход **XCAL** экземпляр структуры типа [CALENDAR](#topic-124781), для которого пользователь определяет значения переменных **UTC**, **OFFSET**, **DST_EN**, **NAME**, **LANGUAGE**, **LONGITUDE**, **LATITUDE** (достаточно определить только нужные переменные). На основании этих данных блок рассчитывает значения всех остальных переменных структуры. Вход **SPE** включает (при значении **TRUE**) и отключает (при значении **FALSE**) расчет параметров позиции солнца (поскольку эта операция может оказаться ресурсоемкой, особенно для ПЛК, не оснащенных FPU). При включенном расчете параметров обновление переменных происходит каждые 25 секунд, при этом точность составляет ±0.1°. Вход **H** определяет высоту центра солнечного диска в градусах (значение по умолчанию: **-0. 83333333333**), используемую при расчете параметров позиции солнца. Вход-выход **HOLIDAYS** представляет собой массив типа [HOLIDAY_DATA](#topic-124790) и используется для определения дат праздничных дней.

<a id="topic-124958"></a>

### DATE_ADD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IDATE | DATE | Исходная дата |
| Входы | D | INT | Число прибавляемых дней |
| Входы | W | INT | Число прибавляемых недель |
| Входы | M | INT | Число прибавляемых месяцев |
| Входы | Y | INT | Число прибавляемых лет |
| Выходы | DATE_ADD | DATE | Вычисленная дата |
| Используемые модули | [YEAR_OF_DATE](#topic-125012), [MONTH_OF_DATE](#topic-124988), [DAY_OF_MONTH](#topic-124960), [SET_DATE](#topic-125001), | [YEAR_OF_DATE](#topic-125012), [MONTH_OF_DATE](#topic-124988), [DAY_OF_MONTH](#topic-124960), [SET_DATE](#topic-125001), | [YEAR_OF_DATE](#topic-125012), [MONTH_OF_DATE](#topic-124988), [DAY_OF_MONTH](#topic-124960), [SET_DATE](#topic-125001), |

Функция **DATE_ADD** прибавляет к начальной дате **IDATE** заданное число дней **D**, недель **W**, месяцев **M** и лет **Y**. Прибавляемые числа могут быть как положительными, так и отрицательными. При этом следует помнить, что диапазон возможных значений переменной типа **DATE** составляет D#0000-0-0 - D#9999-12-31.

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>StartDate<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* начальная дата *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>ResultDate<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DATE<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                   <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Прибавить: +10 дней, +3 недели, +1 месяц, +0 лет *)<?Pub /_font?>
<?Pub _font FontColor="white"?>ResultDate<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.DATE_ADD(<?Pub /_font?>
     <?Pub _font FontColor="white"?>IDATE<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>StartDate<?Pub /_font?><?Pub _font FontColor="white"?>,<?Pub /_font
?>
     <?Pub _font FontColor="white"?>D<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
?>10<?Pub /_font?><?Pub _font FontColor="white"?>,<?Pub /_font?>
     <?Pub _font FontColor="white"?>W<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
?>3<?Pub /_font?><?Pub _font FontColor="white"?>,<?Pub /_font?>
     <?Pub _font FontColor="white"?>M<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
?>1<?Pub /_font?><?Pub _font FontColor="white"?>,<?Pub /_font?>
     <?Pub _font FontColor="white"?>Y<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
?>0<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* Результат: D#2026-08-19 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124959"></a>

### DAY_OF_DATE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IDATE | DATE | Исходная дата |
| Выходы | DAY_OF_DATE | DINT | Число дней, прошедших с 01.01.1970 до исходной даты |

Функция **DAY_OF_DATE** возвращает число дней, прошедших с **01.01.1970** до исходной даты **IDATE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d0<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#1970-01-01<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* начальная дата эпохи *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d1<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* исходная дата IDATE *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>days0<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DINT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>              <?Pub _font FontColor="#5DA35B"?>(* дней с 01.01.1970 до d0 *)<?Pub /_font
?>
    <?Pub _font FontColor="#7B8DF7"?>days1<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DINT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>              <?Pub _font FontColor="#5DA35B"?>(* дней с 01.01.1970 до d1 *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>days0<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.DAY_OF_DATE(IDATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>d0)<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* результат 0 *)<?Pub /_font?>
<?Pub _font FontColor="white"?>days1<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.DAY_OF_DATE(IDATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>d1)<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"?>(* результат 20622 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124960"></a>

### DAY_OF_MONTH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IDATE | DATE | Исходная дата |
| Выходы | DAY_OF_MONTH | INT | Номер дня в месяце исходной даты |
| Используемые модули | [DAY_OF_YEAR](#topic-124962), [LEAP_OF_DATE](#topic-124980) | [DAY_OF_YEAR](#topic-124962), [LEAP_OF_DATE](#topic-124980) | [DAY_OF_YEAR](#topic-124962), [LEAP_OF_DATE](#topic-124980) |

Функция **DAY_OF_MONTH** возвращает номер дня в месяце исходной даты **IDATE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* исходная дата IDATE *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>dayNum<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                   <?Pub _font FontColor="#5DA35B"?>(* номер дня в месяце *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>dayNum<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.DAY_OF_MONTH(IDATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>d)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 18 *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124961"></a>

### DAY_OF_WEEK

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IDATE | DATE | Исходная дата |
| Выходы | DAY_OF_WEEK | INT | Номер дня недели исходной даты |

Функция **DAY_OF_WEEK** возвращает номер дня недели исходной даты **IDATE** (**1** – понедельник, **7** – воскресение).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?>      <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* исходная дата IDATE *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>dow<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                   <?Pub _font FontColor="#5DA35B"?>(* номер дня недели *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
 <?Pub _font FontColor="white"?>dow<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.DAY_OF_WEEK(IDATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>d)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 4 (четверг) *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124962"></a>

### DAY_OF_YEAR

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IDATE | DATE | Исходная дата |
| Выходы | DAY_OF_YEAR | INT | Номер дня в году исходной даты |

Функция **DAY_OF_YEAR** возвращает номер дня в году исходной даты **IDATE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?>        <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* исходная дата IDATE *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>dayOfYear<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                   <?Pub _font FontColor="#5DA35B"?>(* номер дня в году *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>dayOfYear<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.DAY_OF_YEAR(IDATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>d)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 169 *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124963"></a>

### DAY_TO_TIME

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Число дней в формате REAL |
| Выходы | DAY_TO_TIME | TIME | Число дней в формате TIME |

Функция **DAY_TO_TIME** конвертирует число дней **IN** типа **REAL** в значение типа **TIME**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>days<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>1.5<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* число дней *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>t<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>TIME<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>         <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>t<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.DAY_TO_TIME(<?Pub /_font?><?Pub _font FontColor="white"?>IN<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>days)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font
?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт T#1d12h *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124964"></a>

### DAYS_DELTA

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DATE_1 | DATE | Дата 1 |
| Входы | DATE_2 | DATE | Дата 2 |
| Выходы | DAYS_DELTA | DINT | Число дней между двумя датами |

Функция **DAYS_DELTA** возвращает разницу в днях между двумя датами типа **DATE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d1<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* первая дата *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d2<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-28<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* вторая дата *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>delta<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DINT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                  <?Pub _font FontColor="#5DA35B"?>(* разница в днях *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>delta<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.DAYS_DELTA(d1<?Pub /_font?><?Pub _font FontColor="white"?>, d2<?Pub /_font?><?Pub _font
FontColor="white"?>)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 10 *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124965"></a>

### DAYS_IN_MONTH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IDATE | DATE | Исходная дата |
| Выходы | DAYS_IN_MONTH | INT | Число дней в месяце исходной даты |
| Используемые модули | [DAY_OF_YEAR](#topic-124962), [LEAP_OF_DATE](#topic-124980) | [DAY_OF_YEAR](#topic-124962), [LEAP_OF_DATE](#topic-124980) | [DAY_OF_YEAR](#topic-124962), [LEAP_OF_DATE](#topic-124980) |

Функция **DAYS_IN_MONTH** возвращает число дней в месяце исходной даты **IDATE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code> <?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?>          <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-02-10<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* исходная дата IDATE *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>daysInMonth<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                   <?Pub _font FontColor="#5DA35B"?>(* число дней в месяце *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>daysInMonth<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.DAYS_IN_MONTH(IDATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>d)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 28 *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124966"></a>

### DAYS_IN_YEAR

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IDATE | DATE | Исходная дата |
| Выходы | DAYS_IN_YEAR | INT | Число дней в году исходной даты |
| Используемые модули | [LEAP_OF_DATE](#topic-124980) | [LEAP_OF_DATE](#topic-124980) | [LEAP_OF_DATE](#topic-124980) |

Функция **DAYS_IN_YEAR** возвращает число дней в году исходной даты **IDATE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?>          <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2024-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* исходная дата IDATE *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>daysInYear<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                   <?Pub _font FontColor="#5DA35B"?>(* число дней в году *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>daysInYear<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.DAYS_IN_YEAR(IDATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>d)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 366 *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124967"></a>

### DCF77

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | REC | BOOL | Сигнал передатчика DCF77 |
| Входы | SET | BOOL | Сигнал для инициализации часов RTC/RTC1 |
| Входы | SDT | DT | Значение для инициализации часов RTC/RTC1 |
| Входы | DSI | BOOL | Сигнал «летнее время» для значений инициализации |
| Выходы | TP | BOOL | Флаг получения данных от передатчика |
| Выходы | DS | BOOL | Флаг «летнее время» |
| Выходы | WDAY | INT | Номер дня недели (1 – понедельник, 7 – воскресение) |
| Выходы | ERROR | BOOL | Флаг «отсутствие сигнала от передатчика» |
| Выходы | RTC | DT | Текущее время |
| Выходы | RTC1 | DT | Текущее время с учетом часового пояса и летнего времени |
| Выходы | MSEC | INT | Миллисекунды для текущего времени |
| Выходы | SYNC | BOOL | Флаг «часы синхронизированы с DCF77» |
| Параметры | SYNC_TIMEOUT | TIME | Таймаут синхронизации |
| Параметры | TIME_OFFSET | INT | Смещение времени (в часах) для RTC1 |
| Параметры | DST_EN | BOOL | Сигнал учета летнего времени для RTC1 |
| Используемые модули | [T_PLC_MS](#topic-125261), [EVEN](#topic-124823), [SET_DT](#topic-125002), [DAY_OF_WEEK](#topic-124961) | [T_PLC_MS](#topic-125261), [EVEN](#topic-124823), [SET_DT](#topic-125002), [DAY_OF_WEEK](#topic-124961) | [T_PLC_MS](#topic-125261), [EVEN](#topic-124823), [SET_DT](#topic-125002), [DAY_OF_WEEK](#topic-124961) |

Функциональный блок **DCF77** получает на вход REC сигнал передатчика DCF77 (в виде последовательности бит) и декодирует его для извлечения текущей даты и времени. Передача сигнала осуществляется раз в минуту, для подтверждения корректности данных ФБ ожидает двух последовательных корректных передач, что может занять до трех минут.

В случае подтверждения корректности входных данных, полученные дата и время используются для синхронизации часов **RTC/ RTC1**, при этом выход **TP** на один цикл принимает значение **TRUE** (для синхронизации внешних устройств). Отсчет секунд для выходов **RTC/ RTC1** осуществляется с помощью часов ПЛК. **RTC** содержит дату и время в UTC+1 (исходный сигнал передатчика), а **RTC1** – дату и время со смещением **TIME_OFFSET** (в часах относительно UTC+1) и возможностью учета перехода на летнее время (с помощью параметра **DST_EN**). При переходе на летнее время выход **DS** принимает значение **TRUE**.

Выход **MSEC** содержит текущее значение миллисекунд для **RTC/ RTC1,** выход **WDAY** – номер текущего дня недели (**1** – понедельник, **7** – воскресение). Выход **ERROR** принимает значение **TRUE** при отсутствии сигнала от передатчика на входе **REC**. На вход**SDT** подается дата и время, с которыми будут инициализированы часы **RTC/ RTC1** в первом цикле ФБ. В дальнейшем можно осуществлять инициализацию часов по переднему фронту входа **SET**. Вход **DSI** определяет, учитывают ли значения инициализации часов переход на летнее время. Если в течение времени **SYNC_TIMEOUT** не происходило синхронизации **RTC/ RTC1** с сигналом передатчика, то выход **SYNC** принимает значение **FALSE**.

<a id="topic-124968"></a>

### DST

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | UTC | DT | Исходные дата и время |
| Выходы | DST | BOOL | Флаг «летнее время» |
| Используемые модули | [YEAR_OF_DATE](#topic-125012) | [YEAR_OF_DATE](#topic-125012) | [YEAR_OF_DATE](#topic-125012) |

Функция **DST** возвращает **TRUE**, если дата и время **UTC** относится к летнему времени. Во всех остальных случаях возвращается **FALSE**. Функция может быть полезна при использовании часов, не поддерживающих переход на летнее время. Переход на летнее время осуществляется в 1:00 по UTC последнего воскресенья марта, возвращение на зимнее – в 1:00 по UTC последнего воскресенья октября.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>utc<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>DT#2026-03-29-01:30:00<?Pub /_font
?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* время UTC *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>isDst<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BOOL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                          <?Pub _font FontColor="#5DA35B"?>(* признак летнего времени *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>isDst<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.DST(<?Pub /_font
?><?Pub _font FontColor="white"?>IN<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>utc)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124969"></a>

### DT_TO_SDT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DTI | DATE | Исходные дата и время |
| Выходы | DT_TO_SDT | [SDT](#topic-124792) | Дата и время в формате SDT |
| Используемые модули | [YEAR_OF_DATE](#topic-125012)[MONTH_OF_DATE](#topic-124988), , [DAY_OF_MONTH](#topic-124960), [DAY_OF_WEEK](#topic-124961) | [YEAR_OF_DATE](#topic-125012)[MONTH_OF_DATE](#topic-124988), , [DAY_OF_MONTH](#topic-124960), [DAY_OF_WEEK](#topic-124961) | [YEAR_OF_DATE](#topic-125012)[MONTH_OF_DATE](#topic-124988), , [DAY_OF_MONTH](#topic-124960), [DAY_OF_WEEK](#topic-124961) |

Функция **DT_TO_SDT** конвертирует исходную дату и время **DTI** в структуру [SDT](#topic-124792), содержащую разряды времени в виде переменных типа **INT**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>dti<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>DT#2026-06-18-13:45:20<?Pub /_font
?><?Pub _font FontColor="white"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* исходная дата/время *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>sdt<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
?><?Pub _font FontColor="#FFCC00"?>SDT<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>              <?Pub _font
FontColor="#5DA35B"?>(* разряды даты/времени *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>sdt<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.DT_TO_SDT(DTI<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>dti)<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"?>(* YEAR=2026, MONTH=6, DAY=18, WEEKDAY=4, 
                                          HOUR=13, MINUTE=45, SECOND=20, MS=0 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124970"></a>

### DT2_TO_SDT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DI | DATE | Исходная дата |
| Входы | TI | TOD | Исходное время |
| Выходы | DT2_TO_SDT | [SDT](#topic-124792) | Дата и время в формате SDT |
| Используемые модули | [YEAR_OF_DATE](#topic-125012)[MONTH_OF_DATE](#topic-124988), , [DAY_OF_MONTH](#topic-124960), [DAY_OF_WEEK](#topic-124961) | [YEAR_OF_DATE](#topic-125012)[MONTH_OF_DATE](#topic-124988), , [DAY_OF_MONTH](#topic-124960), [DAY_OF_WEEK](#topic-124961) | [YEAR_OF_DATE](#topic-125012)[MONTH_OF_DATE](#topic-124988), , [DAY_OF_MONTH](#topic-124960), [DAY_OF_WEEK](#topic-124961) |

Функция **DT2_TO_SDT** конвертирует исходную дату **DI** и время **TI** в структуру [SDT](#topic-124792), содержащую разряды времени в виде переменных типа **INT**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>di<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>           <?Pub _font
FontColor="#5DA35B"?>(* дата *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>ti<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>TOD<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>TOD#13:45:20.250<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>       <?Pub _font FontColor="#5DA35B"
?>(* время *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>sdt<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
?><?Pub _font FontColor="#FFCC33"?>SDT<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>                <?Pub _font
FontColor="#5DA35B"?>(* разряды даты/времени *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>y<?Pub /_font?>      <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>mo<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>da<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>wd<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>hh<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>mi<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>ss<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>ms<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>sdt<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.DT2_TO_SDT(<?Pub /_font?>
    <?Pub _font FontColor="white"?>DI<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>di,<?Pub /_font?>
    <?Pub _font FontColor="white"?>TI<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>ti<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="white"?>y<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>sdt<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font?><?Pub _font
FontColor="#FFFFCC"?>YEAR<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"?>(* 2026 *)<?Pub /_font
?>
<?Pub _font FontColor="white"?>mo<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>sdt<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font?><?Pub _font
FontColor="#FFFFCC"?>MONTH<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"?>(* 6 *)<?Pub /_font
?>
<?Pub _font FontColor="white"?>da<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>sdt<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font?><?Pub _font
FontColor="#FFFFCC"?>DAY<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>      <?Pub _font FontColor="#5DA35B"?>(* 18 *)<?Pub /_font
?>
<?Pub _font FontColor="white"?>wd<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>sdt<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font?><?Pub _font
FontColor="#FFFFCC"?>WEEKDAY<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* 4 *)<?Pub /_font
?>
<?Pub _font FontColor="white"?>hh<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>sdt<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font?><?Pub _font
FontColor="#FFFFCC"?>HOUR<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"?>(* 13 *)<?Pub /_font
?>
<?Pub _font FontColor="white"?>mi<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>sdt<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font?><?Pub _font
FontColor="#FFFFCC"?>MINUTE<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* 45 *)<?Pub /_font
?>
<?Pub _font FontColor="white"?>ss<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>sdt<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font?><?Pub _font
FontColor="#FFFFCC"?>SECOND<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* 20 *)<?Pub /_font
?>
<?Pub _font FontColor="white"?>ms<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>sdt<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font?><?Pub _font
FontColor="#FFFFCC"?>MS<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>       <?Pub _font FontColor="#5DA35B"?>(* 250 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-124971"></a>

### EASTER

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | year | INT | Год |
| Выходы | EASTER | DATE | Дата Пасхи для заданного года |
| Используемые модули | [SET_DATE](#topic-125001) | [SET_DATE](#topic-125001) | [SET_DATE](#topic-125001) |

Функция **EASTER** возвращает дату Пасхи для заданного года. Дата Пасхи является опорной для большинства религиозных праздников.

Пример (православная Пасха)

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code> <?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>year<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2026<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* заданный год *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>eDate<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DATE<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                <?Pub _font FontColor="#5DA35B"?>(* дата Пасхи *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>eDate<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.EASTER(year)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* вернёт D#2026-04-12 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124972"></a>

### EVENTS

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DATE_IN | DATE | Текущая дата |
| Входы | ENA | BOOL | Сигнал включения ФБ |
| Выходы | Y | BOOL | Флаг «сегодня мероприятие» |
| Выходы | NAME | STRING(30) | Название мероприятия |
| Входы-выходы | ELIST | ARRAY \[0..49\] OF [HOLIDAY_DATA](#topic-124790) | Список мероприятий |
| Используемые модули | [DAY_OF_DATE](#topic-124959), [YEAR_OF_DATE](#topic-125012), [SET_DATE](#topic-125001) | [DAY_OF_DATE](#topic-124959), [YEAR_OF_DATE](#topic-125012), [SET_DATE](#topic-125001) | [DAY_OF_DATE](#topic-124959), [YEAR_OF_DATE](#topic-125012), [SET_DATE](#topic-125001) |

Функциональный блок **EVENTS** используется для создания календаря мероприятий и контроля их наступления. Информация о мероприятиях содержится в массиве **ELIST**, каждый элемент которого представляет собой запись типа [HOLIDAY_DATA](#topic-124790). На вход **DATE_IN** поступает текущая дата. Вход **ENA** управляет работой блока (**TRUE** – блок включен, **FALSE** – отключен). Если текущей дате соответствует какое-либо мероприятие, то выход **Y** принимает значение **TRUE**, а на выходе **NAME** отображается название этого мероприятия. Каждой дате может соответствовать только одно мероприятие.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>fbEvents<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>EVENTS<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ELIST<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>HOLIDAY_DATA<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dateIn<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DATE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>ena<?Pub /_font?>      <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>y<?Pub /_font?>        <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>name<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>30<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#988DF7"?>All_Saints<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>HOLIDAY_DATA<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>NAME<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#66D1CD"?>'All Saints Day'<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>DAY<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>MONTH<?Pub /_font?><?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>11<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>USE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#988DF7"?>Easter<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>HOLIDAY_DATA<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>(NAME<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?><?Pub _font FontColor="#66D1CD"
?>'Пасха'<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>DAY<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>0<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>MONTH<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>USE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#988DF7"?>SAINT_TRINITY_DAY<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>HOLIDAY_DATA<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>NAME<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#66D1CD"?>'Святая троица'<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>DAY<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>49<?Pub /_font
?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>MONTH<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>USE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Заполняем календарь мероприятий *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ELIST<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>All_Saints<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>ELIST<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Easter<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>ELIST<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>SAINT_TRINITY_DAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ena<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>TRUE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>(* Пример 1: 01.11.2026 -&gt; All Saints Day *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>dateIn<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>D#2026-11-01<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>fbEvents<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>ELIST<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>ELIST,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>DATE_IN<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>dateIn,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>ENA<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>ena<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbEvents<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>Y<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>name<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbEvents<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>NAME<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* 'All Saints Day' *)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Пример 2: 31.05.2026 -&gt; Святая троица (Пасха 12.04.2026 + 49 дней) *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>dateIn<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>D#2026-05-31<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>fbEvents<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>ELIST<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>ELIST,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>DATE_IN<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>dateIn,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>ENA<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>ena<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbEvents<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>Y<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>name<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbEvents<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>NAME<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* 'Святая троица' *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124973"></a>

### HOLIDAY

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DATE_IN | DATE | Текущая дата |
| Входы | LANGU | INT | Язык приложения |
| Входы | FRIDAY | BOOL | Сигнал «пятница – праздник» |
| Входы | SATURDAY | BOOL | Сигнал «суббота – праздник» |
| Входы | SUNDAY | BOOL | Сигнал «воскресенье – праздник» |
| Выходы | Y | BOOL | Флаг «сегодня праздник» |
| Выходы | NAME | STRING(30) | Название праздника |
| Входы-выходы | HOLIDAYS | ARRAY \[0..49\] OF [HOLIDAY_DATA](#topic-124790) | Список праздников |
| Используемые модули | [DAY_OF_WEEK](#topic-124961), [EASTER](#topic-124971), [YEAR_OF_DATE](#topic-125012), [SET_DATE](#topic-125001), [DATE_ADD](#topic-124958) | [DAY_OF_WEEK](#topic-124961), [EASTER](#topic-124971), [YEAR_OF_DATE](#topic-125012), [SET_DATE](#topic-125001), [DATE_ADD](#topic-124958) | [DAY_OF_WEEK](#topic-124961), [EASTER](#topic-124971), [YEAR_OF_DATE](#topic-125012), [SET_DATE](#topic-125001), [DATE_ADD](#topic-124958) |

Функциональный блок **HOLIDAY** используется для создания календаря праздников и контроля их наступления. Информация о мероприятиях содержится в массиве **HOLIDAYS**, каждый элемент которого представляет собой запись типа [HOLIDAY_DATA](#topic-124790). На вход **DATE_IN** поступает текущая дата. Если текущей дате соответствует какой-либо праздник, то выход **Y** принимает значение **TRUE**, а на выходе **NAME** отображается название этого праздника. Если входы **FRIDAY**, **SATURDAY** и **SUNDAY** имеют значение **TRUE**, то соответствующие дни недели также считаются праздниками. Для таких случаев вход **LANGU** определяет язык, на котором будет отображаться название дня недели на выходе **NAME**.

Пример УТОЧНИТЬ РЕАЛИЗАЦИЮ LANGU!

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>fbHoliday<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>HOLIDAY<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>aHolidays<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>29<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font
FontColor="#E7C24A"?>OSCAT_BASIC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#E7C24A"
?>HOLIDAY_DATA<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>dToday<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>D#2026-06-19<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* пятница *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>iLangu<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>            <?Pub _font
FontColor="#5DA35B"?>(* язык приложения *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>xFriday<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>xSaturday<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>xSunday<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>xY<?Pub /_font?>        <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?> 
    <?Pub _font FontColor="#988DF7"?>sName<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>30<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Заполняем список праздников (показываем 1 элемент, остальные можно оставить<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>пустыми/неиспользуемыми*)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>aHolidays<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>(<?Pub /_font?>
       <?Pub _font FontColor="#DCDCDC"?>NAME<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"
?>'All Saints Day'<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?>
       <?Pub _font FontColor="#DCDCDC"?>DAY<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?>
       <?Pub _font FontColor="#DCDCDC"?>MONTH<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>11<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?>
       <?Pub _font FontColor="#DCDCDC"?>USE<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>1<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов FB HOLIDAY *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>fbHoliday<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
      <?Pub _font FontColor="#DCDCDC"?>DATE_IN<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>dToday<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?>
      <?Pub _font FontColor="#DCDCDC"?>LANGU<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>iLangu<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?>
      <?Pub _font FontColor="#DCDCDC"?>FRIDAY<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>TRUE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?>
      <?Pub _font FontColor="#DCDCDC"?>SATURDAY<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>FALSE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?>
      <?Pub _font FontColor="#DCDCDC"?>SUNDAY<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>FALSE<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>xY<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbHoliday<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>Y<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* TRUE, т.к. FRIDAY=TRUE и сегодня пятница *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>sName<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbHoliday<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>NAME<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* 'Friday' / 'Пятница' — зависит от LANGU 
                                           и реализации *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124974"></a>

### HOUR

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | itod | TOD | Исходное время cуток |
| Выходы | HOUR | INT | Число часов |

Функция **HOUR** возвращает число часов, вырезанное из исходного значения времени суток **itod** типа **TOD**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>t<?Pub /_font?>      <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>TOD<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#99FF99"?>TOD#13:45:20<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* исходное время суток *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>h<?Pub /_font?>      <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                  <?Pub _font FontColor="#5DA35B"?>(* число часов *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>h<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.HOUR(itod<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>t)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 13 *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124975"></a>

### HOUR_OF_DT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | XDT | DT | Исходные дата и время |
| Выходы | HOUR_OF_DT | INT | Число часов |

Функция **HOUR_OF_DT** возвращает число часов, вырезанное из исходного значения даты и времени **XDT** типа **DT**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>dt<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>DT#2026-06-18-13:45:20<?Pub /_font
?><?Pub _font FontColor="white"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* исходные дата и время *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>h<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                          <?Pub _font FontColor="#5DA35B"?>(* число часов *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>h<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.HOUR_OF_DT(XDT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>dt)<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 13 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124976"></a>

### HOUR_TO_TIME

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Количество часов |
| Выходы | HOUR_TO_TIME | TIME | Время |

Функция **HOUR_TO_TIME** конвертирует заданное количество часов **IN** типа **REAL** (в виде числа с плавающей точкой) в значение переменной типа **TIME**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>hours<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>1.5<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* количество часов *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>t<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>TIME<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>         <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>t<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.HOUR_TO_TIME(<?Pub /_font?><?Pub _font FontColor="white"?>IN<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>hours)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font
?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт T#1h30m *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124977"></a>

### HOUR_TO_TOD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Количество часов |
| Выходы | HOUR_TO_TOD | TOD | Время суток |

Функция **HOUR_TO_TOD** конвертирует заданное количество часов **IN** типа **REAL** (в виде числа с плавающей точкой) в значение переменной типа **TOD**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>hours<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>13.75<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* количество часов *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>xtod<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>TOD<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>            <?Pub _font FontColor="#5DA35B"?>(* время суток *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>xtod<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.HOUR_TO_TOD(<?Pub /_font?><?Pub _font FontColor="white"?>IN<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>hours)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font
?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт TOD#13:45:00 *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124978"></a>

### JD2000

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DTI | DT | Заданные дата и время по грегорианскому календарю |
| Выходы | JD2000 | REAL | Заданные дата и время по юлианскому календарю |

Функция **JD2000** конвертирует значение заданной даты и времени по грегорианскому календарю **DTI** в значение по юлианскому календарю – в виде числа дней (с плавающей точкой), прошедших с полудня 1 января 2000 года.

Точкой отсчета для юлианского календаря является полдень 1 января 4713 г. до нашей эры. Поскольку в настоящий момент количество прошедших с того момента дней превышает диапазон типа **REAL**, то данная функция использует в качестве опорной точки полдень 1 января 2000 года нашей эры, которому соответствует юлианская дата JD 2451544.5. При суммировании данного значения с результатом функции можно получить абсолютную дату по юлианскому календарю.

ПРИМЕР НЕ ПРИВЕДЕН!

<a id="topic-124979"></a>

### LEAP_DAY

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IDATE | DATE | Заданная дата |
| Выходы | LEAP_DAY | BOOL | Флаг «високосный день» |

Функция **LEAP_DAY** возвращает **TRUE**, если заданная дата **IDATE** является високосным днем (29-м февраля). Во всех остальных случаях функция возвращает **FALSE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?>         <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2024-02-29<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* заданная дата IDATE *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>isLeapDay<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BOOL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                 <?Pub _font FontColor="#5DA35B"?>(* флаг високосного дня *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>isLeapDay<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.LEAP_DAY(IDATE<?Pub /_font?><?Pub _font FontColor="#7B8DF7"?><?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>d)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* вернёт TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124980"></a>

### LEAP_OF_DATE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IDATE | DATE | Заданная дата |
| Выходы | LEAP_OF_DATE | BOOL | Флаг «високосный год» |

Функция **LEAP_OF_DATE** возвращает значение **TRUE**, если год заданной даты **IDATE** является високосным. Во всех остальных случаях функция возвращает **FALSE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?>         <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2024-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* заданная дата IDATE *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>isLeapYear<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BOOL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                  <?Pub _font FontColor="#5DA35B"?>(* флаг високосного года *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>isLeapYear<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.LEAP_OF_DATE(IDATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>d)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт TRUE *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124981"></a>

### LEAP_YEAR

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | yr | INT | Заданный год |
| Выходы | LEAP_YEAR | BOOL | Флаг «високосный год» |

Функция **LEAP_YEAR** возвращает **TRUE**, если заданный год **yr** является високосным. Во всех остальных случаях функция возвращает **FALSE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>yr<?Pub /_font?>        <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2024<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* заданный год *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>isLeap<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BOOL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>         <?Pub _font FontColor="#5DA35B"?>(* флаг високосного года *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>isLeap<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.LEAP_YEAR(yr<?Pub /_font?><?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* вернёт TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124982"></a>

### LTIME_TO_UTC

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | LTIME | DT | Местное дата и время |
| Входы | DST | BOOL | Сигнал учета летнего времени |
| Входы | TIME_ZONE_OFFSET | INT | Смещение местного времени относительно UTC в минутах |
| Выходы | LEAP_YEAR | DT | Дата и время в UTC |

Функция **LTIME_TO_UTC** конвертирует значение местного даты и времени, смещенного относительно UTC на число минут, определяемым значением переменной **TIME_ZONE_OFFSET**. Если вход **DST** имеет значение **TRUE**, то при конвертации учитывается переход на летнее время. Переход на летнее время регламентируется по-разному в различных странах; функция предполагает, что при переходе на летнее время смещение местного времени относительно **UTC** увеличивается на один час.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>lt<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DT<?Pub /_font?>   <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#A4FCA2"?>DT#2026-06-18-12:00:00<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* местное дата/время *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dst<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                  <?Pub _font
FontColor="#5DA35B"?>(* учет летнего времени *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>tzOff<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>180<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                    <?Pub _font
FontColor="#5DA35B"?>(* UTC+3 = 180 минут *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>utc<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>                             <?Pub _font FontColor="#5DA35B"?>(* результат UTC *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>utc<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>LTIME_TO_UTC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
     <?Pub _font FontColor="#DCDCDC"?>LOCAL_TIME<?Pub /_font?>       <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>lt,<?Pub /_font?>
     <?Pub _font FontColor="#DCDCDC"?>DST<?Pub /_font?>              <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#E1E1E1"?>FALSE,<?Pub /_font?>
     <?Pub _font FontColor="#DCDCDC"?>TIME_ZONE_OFFSET<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>tzOff<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                    <?Pub _font
FontColor="#5DA35B"?>(* вернёт DT#2026-06-18-09:00:00 *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124983"></a>

### MINUTE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | itod | TOD | Заданное время |
| Выходы | MINUTE | INT | Число минут |

Функция **MINUTE** возвращает число минут, вырезанное из исходного значения времени суток **itod** типа **TOD**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>t<?Pub /_font?>      <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>TOD<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>TOD#13:45:20<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* заданное время суток *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>m<?Pub /_font?>      <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                  <?Pub _font FontColor="#5DA35B"?>(* число минут *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>m<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.MINUTE(itod<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>t)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 45 *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124984"></a>

### MINUTE_OF_DT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | XDT | DT | Заданные дата и время |
| Выходы | MINUTE_OF_DT | INT | Число минут |

Функция **MINUTE_OF_DT** возвращает число минут, вырезанное из исходного значения даты и времени **XDT** типа **DT**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>ndt<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>DT#2026-06-18-13:45:20<?Pub /_font
?><?Pub _font FontColor="white"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* заданные дата и время *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>m<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                          <?Pub _font FontColor="#5DA35B"?>(* число минут *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>m<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.MINUTE_OF_DT(XDT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>ndt)<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 45 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124985"></a>

### MINUTE_TO_TIME

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Количество минут |
| Выходы | MINUTE_TO_TIME | TIME | Время |

Функция **MINUTE_TO_TIME** конвертирует заданное количество минут **IN** типа **REAL** (в виде числа с плавающей точкой) в значение переменной типа **TIME**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code> <?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>minutes<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>36<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* количество минут *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>t<?Pub /_font?>       <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>TIME<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>        <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>t<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.MINUTE_TO_TIME(<?Pub /_font?><?Pub _font FontColor="white"?>IN<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>minutes)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font
?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт T#36m *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124986"></a>

### MONTH_BEGIN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | idate | DATE | Заданная дата |
| Выходы | MONTH_BEGIN | DATE | Дата первого дня заданного месяца |
| Используемые модули | [DAY_OF_MONTH](#topic-124960) | [DAY_OF_MONTH](#topic-124960) | [DAY_OF_MONTH](#topic-124960) |

Функция **MONTH_BEGIN** возвращает дату первого дня месяца, заданного переменной **idate** типа **DATE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code> <?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?>      <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* заданная дата idate *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>mb<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                  <?Pub _font FontColor="#5DA35B"?>(* начало месяца *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>mb<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.MONTH_BEGIN(idate<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>d)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт D#2026-06-01 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124987"></a>

### MONTH_END

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | idate | DATE | Заданная дата |
| Выходы | MONTH_END | DATE | Дата последнего дня заданного месяца |
| Используемые модули | [SET_DATE](#topic-125001), [YEAR_OF_DATE](#topic-125012), [MONTH_OF_DATE](#topic-124988) | [SET_DATE](#topic-125001), [YEAR_OF_DATE](#topic-125012), [MONTH_OF_DATE](#topic-124988) | [SET_DATE](#topic-125001), [YEAR_OF_DATE](#topic-125012), [MONTH_OF_DATE](#topic-124988) |

Функция **MONTH_END** возвращает дату последнего дня месяца, заданного переменной **idate** типа **DATE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code> <?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?>      <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* заданная дата idate *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>me<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                  <?Pub _font FontColor="#5DA35B"?>(* конец месяца *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>me<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.MONTH_END(idate<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>d)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт D#2026-06-30 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124988"></a>

### MONTH_OF_DATE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | idate | DATE | Заданная дата |
| Выходы | MONTH_OF_DATE | INT | Число месяцев |
| Используемые модули | [DAY_OF_YEAR](#topic-124962), [LEAP_OF_DATE](#topic-124980) | [DAY_OF_YEAR](#topic-124962), [LEAP_OF_DATE](#topic-124980) | [DAY_OF_YEAR](#topic-124962), [LEAP_OF_DATE](#topic-124980) |

Функция **MONTH_OF_DATE** возвращает число месяцев, вырезанное из исходного значения даты **idate** типа **DATE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* заданная дата idate *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>m<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                   <?Pub _font FontColor="#5DA35B"?>(* номер месяца *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>m<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.MONTH_OF_DATE(idate<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>d)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 6 *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124989"></a>

### MULTIME

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | t | TIME | Заданное время |
| Входы | M | REAL | Коэффициент |
| Выходы | MULTIME | TIME | Отмасштабированное значение времени |

Функция **MULTIME** возвращает произведение заданного времени **T** типа **TIME** на коэффициент **M** типа **REAL**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>tIn<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>TIME<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>T#2s<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* заданное время t *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>m<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>1.5<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* коэффициент M *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>tOut<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>TIME<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>            <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>tOut<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.MULTIME(<?Pub /_font?>
   <?Pub _font FontColor="white"?>t<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>tIn<?Pub /_font?><?Pub _font FontColor="white"?>,<?Pub /_font?>
   <?Pub _font FontColor="white"?>M<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>m<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* вернёт T#3s *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124990"></a>

### PERIOD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | d1 | DATE | Нижняя граница интервала |
| Входы | dx | DATE | Проверяемая дата |
| Входы | d2 | DATE | Верхняя граница интервала |
| Выходы | PERIOD | BOOL | Флаг принадлежности даты интервалу |
| Используемые модули | [DAY_OF_YEAR](#topic-124962), [LEAP_OF_DATE](#topic-124980) | [DAY_OF_YEAR](#topic-124962), [LEAP_OF_DATE](#topic-124980) | [DAY_OF_YEAR](#topic-124962), [LEAP_OF_DATE](#topic-124980) |

Функция **PERIOD** возвращает **TRUE**, если дата **dx** принадлежит интервалу **\[d1, d2\]** (включая границы интервала и при условии, что d1\<d2). Функция не учитывает значение года, т.е. может использоваться только для дат, относящихся к одному году.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d1<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-01<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* нижняя граница dx1 *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>dx<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* проверяемая дата dx *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d2<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-30<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* верхняя граница dx2 *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>xIn<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BOOL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                  <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>xIn<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.PERIOD(<?Pub /_font?>
    <?Pub _font FontColor="white"?>d1<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>d1<?Pub /_font?><?Pub _font FontColor="white"?>,<?Pub /_font?>
    <?Pub _font FontColor="white"?>dx<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>dx<?Pub /_font?><?Pub _font FontColor="white"?>,<?Pub /_font?>
    <?Pub _font FontColor="white"?>d2<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>d2<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* вернёт TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124991"></a>

### PERIOD2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DP | ARRAY \[0..3, 0..1\] OF DATE | Интервалы проверки |
| Входы | dx | DATE | Проверяемая дата |
| Выходы | PERIOD2 | BOOL | Флаг принадлежности даты одному из интервалов |

Функция **PERIOD2** возвращает **TRUE**, если дата **dx** принадлежит одному из 4-х интервалов, определенных массивом дат **DP**. В отличие от функции **PERIOD**, функция **PERIOD2** учитывает год даты при проверке принадлежности интервалу.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>DP<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="white"?>[<?Pub /_font
?><?Pub _font FontColor="#FF99CC"?>0<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>..<?Pub /_font?><?Pub _font FontColor="#FF99CC"
?>3<?Pub /_font?><?Pub _font FontColor="white"?>, <?Pub /_font?><?Pub _font
FontColor="#FF99CC"?>0<?Pub /_font?><?Pub _font FontColor="#EF7244"
?>..<?Pub /_font?><?Pub _font FontColor="#FF99CC"?>1<?Pub /_font?><?Pub _font
FontColor="white"?>]<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OF<?Pub /_font?> <?Pub _font FontColor="#FFCC00"?>DATE<?Pub /_font
?><?Pub _font FontColor="white"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* 4 интервала: [начало, конец] *)<?Pub /_font
?>
    <?Pub _font FontColor="#7B8DF7"?>dx<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>             <?Pub _font
FontColor="#5DA35B"?>(* проверяемая дата *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>xIn<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BOOL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>             <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Интервал 0: июнь 2026 *)<?Pub /_font
?>
<?Pub _font FontColor="white"?>DP[<?Pub /_font?><?Pub _font
FontColor="#FF99CC"?>0<?Pub /_font?><?Pub _font FontColor="white"
?>, <?Pub /_font?><?Pub _font FontColor="#FF99CC"?>0<?Pub /_font?><?Pub _font
FontColor="white"?>]<?Pub /_font?> <?Pub _font FontColor="#EF7244"
?>:=<?Pub /_font?> <?Pub _font FontColor="white"?>D#2026-06-01;<?Pub /_font
?>
<?Pub _font FontColor="white"?>DP[<?Pub /_font?><?Pub _font
FontColor="#FF99CC"?>0<?Pub /_font?><?Pub _font FontColor="white"
?>, <?Pub /_font?><?Pub _font FontColor="#FF99CC"?>1<?Pub /_font?><?Pub _font
FontColor="white"?>]<?Pub /_font?> <?Pub _font FontColor="#EF7244"
?>:=<?Pub /_font?> <?Pub _font FontColor="white"?>D#2026-06-30;<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>(* Интервал 1: январь 2025 *)<?Pub /_font
?>
<?Pub _font FontColor="white"?>DP[<?Pub /_font?><?Pub _font
FontColor="#FF99CC"?>1<?Pub /_font?><?Pub _font FontColor="white"
?>, <?Pub /_font?><?Pub _font FontColor="#FF99CC"?>0<?Pub /_font?><?Pub _font
FontColor="white"?>]<?Pub /_font?> <?Pub _font FontColor="#EF7244"
?>:=<?Pub /_font?> <?Pub _font FontColor="white"?>D#2025-01-01;<?Pub /_font
?>
<?Pub _font FontColor="white"?>DP[<?Pub /_font?><?Pub _font
FontColor="#FF99CC"?>1<?Pub /_font?><?Pub _font FontColor="white"
?>, <?Pub /_font?><?Pub _font FontColor="#FF99CC"?>1<?Pub /_font?><?Pub _font
FontColor="white"?>]<?Pub /_font?> <?Pub _font FontColor="#EF7244"
?>:=<?Pub /_font?> <?Pub _font FontColor="white"?>D#2025-01-31;<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>(* Интервал 2: один день (пример) *)<?Pub /_font?>
<?Pub _font FontColor="white"?>DP[<?Pub /_font?><?Pub _font
FontColor="#FF99CC"?>2<?Pub /_font?><?Pub _font FontColor="white"
?>, <?Pub /_font?><?Pub _font FontColor="#FF99CC"?>0<?Pub /_font?><?Pub _font
FontColor="white"?>]<?Pub /_font?> <?Pub _font FontColor="#EF7244"
?>:=<?Pub /_font?> <?Pub _font FontColor="white"?>D#2026-12-31;<?Pub /_font
?>
<?Pub _font FontColor="white"?>DP[<?Pub /_font?><?Pub _font
FontColor="#FF99CC"?>2<?Pub /_font?><?Pub _font FontColor="white"
?>, <?Pub /_font?><?Pub _font FontColor="#FF99CC"?>1<?Pub /_font?><?Pub _font
FontColor="white"?>]<?Pub /_font?> <?Pub _font FontColor="#EF7244"
?>:=<?Pub /_font?> <?Pub _font FontColor="white"?>D#2026-12-31;<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>(* Интервал 3: произвольный интервал (пример) *)<?Pub /_font?>
<?Pub _font FontColor="white"?>DP[<?Pub /_font?><?Pub _font
FontColor="#FF99CC"?>3<?Pub /_font?><?Pub _font FontColor="white"
?>, <?Pub /_font?><?Pub _font FontColor="#FF99CC"?>0<?Pub /_font?><?Pub _font
FontColor="white"?>]<?Pub /_font?> <?Pub _font FontColor="#EF7244"
?>:=<?Pub /_font?> <?Pub _font FontColor="white"?>D#2027-03-01;<?Pub /_font
?>
<?Pub _font FontColor="white"?>DP[<?Pub /_font?><?Pub _font
FontColor="#FF99CC"?>3<?Pub /_font?><?Pub _font FontColor="white"
?>, <?Pub /_font?><?Pub _font FontColor="#FF99CC"?>1<?Pub /_font?><?Pub _font
FontColor="white"?>]<?Pub /_font?> <?Pub _font FontColor="#EF7244"
?>:=<?Pub /_font?> <?Pub _font FontColor="white"?>D#2027-03-31;<?Pub /_font
?>
<?Pub _font FontColor="white"?>xIn<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.PERIOD2(<?Pub /_font?>
    <?Pub _font FontColor="white"?>DP<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>DP<?Pub /_font?><?Pub _font FontColor="white"?>,<?Pub /_font?>
    <?Pub _font FontColor="white"?>dx<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>dx<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* вернёт TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124992"></a>

### REFRACTION

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | ELEV | REAL | Истинная высота светила в градусах |
| Выходы | REFRACTION | REAL | Значение рефракции в градусах |

Функция **REFRACTION** возвращает значение атмосферной рефракции для светила с истинной высотой **ELEV** по формуле Смардсона. Обе величины измеряются в градусах. Диапазон допустимых значений для функции: –1.9 < ELEV < 80

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>elev<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>5.0<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  
    <?Pub _font FontColor="#7B8DF7"?>r<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>REAL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>         <?Pub _font FontColor="#5DA35B"?>(* рефракция, градусы *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>r<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.REFRACTION(ELEV<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>elev)<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 0.166*)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

![REFRACTION](https://docs.owen.ru/book_img/2417/164699.png)

<a id="topic-124993"></a>

### RTC_2

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Сигнал установки опорной даты и времени |
| Входы | SDT | DT | Дата и время начала отсчета |
| Входы | SMS | INT | Значение миллисекунд |
| Входы | DEN | BOOL | Сигнал включения учета летнего времени |
| Входы | OFS | INT | Смещение местного времени относительно SDT в минутах |
| Выходы | UDT | DT | Текущие дата и время в UTC |
| Выходы | LOCAL_DT | DT | Местные дата и время |
| Выходы | DSO | BOOL | Флаг «учет летнего времени» |
| Выходы | XMS | INT | Текущее значение миллисекунд |
| Используемые модули | [RTC_MS](#topic-124994) | [RTC_MS](#topic-124994) | [RTC_MS](#topic-124994) |

Функциональный блок **RTC_2** представляет собой программные часы реального времени. При вызове блока начинается отсчет времени с момента, определяемого значениями входов **SDT** (дата и время в UTC) и **SMS** (миллисекунды). Текущее значение даты и времени в UTC подается на выход **UDT**, текущее значение миллисекунд – на выход **XMS**. По переднему фронту переменной **SET** в часы записываются новые опорные дата и время (**SDT** и **SMS**), относительно которых начинается отсчет. Если вход **DEN** имеет значение **TRUE**, то блок учитывает переход на летнее время, при этом выход **DSO** имеет значение **TRUE**. Вход **OFS** позволяет задать смещение местного времени относительно UTC в минутах. Текущие значения местного даты и времени подаются на выход **LOCAL_DT**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>fbRtc<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>RTC_2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>xSet<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                           <?Pub _font FontColor="#5DA35B"?>(* импульс SET *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dtBase<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DT<?Pub /_font?>   <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#A4FCA2"?>DT#2026-06-18-12:00:00<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* SDT (UTC) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>iSms<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>250<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                    <?Pub _font
FontColor="#5DA35B"?>(* SMS *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>xDen<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                  <?Pub _font
FontColor="#5DA35B"?>(* учет DST отключен *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>iOfs<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>180<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                    <?Pub _font
FontColor="#5DA35B"?>(* OFS = +180 мин (UTC+3) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>udt<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ldt<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dso<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>xms<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Формируем импульс SET на один цикл *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>xSet<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>TRUE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>fbRtc<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
 <?Pub _font FontColor="#DCDCDC"?>SET<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>xSet,<?Pub /_font?>
 <?Pub _font FontColor="#DCDCDC"?>SDT<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>dtBase,<?Pub /_font?>
 <?Pub _font FontColor="#DCDCDC"?>SMS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>iSms,<?Pub /_font?>
 <?Pub _font FontColor="#DCDCDC"?>DEN<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>xDen,<?Pub /_font?>
 <?Pub _font FontColor="#DCDCDC"?>OFS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>iOfs<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>udt<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbRtc<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>UDT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* сразу после SET: UDT = DT#2026-06-18-12:00:00 <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>                  (далее увеличивается) *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ldt<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbRtc<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>LOCAL_DT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* сразу после SET: LOCAL_DT = DT#2026-06-18-15:00:00 <?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>                  при OFS=180 и DEN=FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>dso<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbRtc<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>DSO<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* DSO = FALSE, т.к. DEN=FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>xms<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbRtc<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>XMS<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* сразу после SET: XMS = 250 (далее меняется) *)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Сбрасываем SET, чтобы импульс был только один цикл *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>xSet<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>FALSE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124994"></a>

### RTC_MS

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Сигнал установки опорной даты и времени |
| Входы | SDT | DT | Дата и время начала отсчета |
| Входы | SMS | INT | Значение миллисекунд |
| Выходы | XDT | DT | Текущие дата и время в UTC |
| Выходы | XMS | INT | Текущее значение миллисекунд |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **RTC_MS** представляет собой программные часы реального времени. При вызове блока начинается отсчет времени с момента, определяемого значениями входов **SDT** (дата и время в UTC) и **SMS** (миллисекунды). Текущее значение даты и времени в UTC подается на выход **UDT**, текущее значение миллисекунд – на выход **XMS**. По переднему фронту переменной **SET** в часы записываются новые опорные дата и время (**SDT** и **SMS**), относительно которых начинается отсчет.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>fbRtcMs<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?> <?Pub _font FontColor="#E7C24A"?>RTC_MS<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>xSet<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                        <?Pub _font FontColor="#5DA35B"?>(* импульс SET *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dtBase<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DT<?Pub /_font?><?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#A4FCA2"?>DT#2026-06-18-12:00:00<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* SDT (UTC) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>iSms<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>250<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                  <?Pub _font
FontColor="#5DA35B"?>(* SMS *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>xdt<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>                          <?Pub _font FontColor="#5DA35B"?>(* выход XDT *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>xms<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                         <?Pub _font FontColor="#5DA35B"?>(* выход XMS *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Формируем импульс SET на один цикл *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>xSet<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>TRUE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#E1E1E1"?>fbRtcMs<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>SET<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>xSet,<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>SDT<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>dtBase,<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>SMS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>iSms<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>xdt<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbRtcMs<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>XDT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* сразу после SET: XDT = DT#2026-06-18-12:00:00 <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>                    (далее увеличивается) *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>xms<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbRtcMs<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>XMS<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* сразу после SET: XMS = 250 (далее меняется) *)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Сбрасываем SET, чтобы импульс был только один цикл *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>xSet<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>FALSE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124995"></a>

### SDT_TO_DATE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DTI | [SDT](#topic-124792) | Дата в формате SDT |
| Выходы | SDT_TO_DATE | DATE | Дата в формате DATE |
| Используемые модули | [SET_DATE](#topic-125001) | [SET_DATE](#topic-125001) | [SET_DATE](#topic-125001) |

Функция **SDT_TO_DATE** конвертирует исходную дату **DTI** в формате [SDT](#topic-124792) в переменную типа **DATE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>sdt<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
?><?Pub _font FontColor="#FFCC00"?>SDT<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* дата в формате SDT *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>              <?Pub _font FontColor="#5DA35B"?>(* результат DATE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Заполняем только разряды даты, необходимые для конвертации *)<?Pub /_font?>
<?Pub _font FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>YEAR<?Pub /_font?>  <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2026<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>MONTH<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>6<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>DAY<?Pub /_font?>   <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="gray1"?>d<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.SDT_TO_DATE(DTI<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font FontColor="white"
?>)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* вернёт D#2026-06-18 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124996"></a>

### SDT_TO_DT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DTI | [SDT](#topic-124792) | Дата и время в формате SDT |
| Выходы | SDT_TO_DT | DT | Дата и время в формате DT |
| Используемые модули | [SET_DATE](#topic-125001) | [SET_DATE](#topic-125001) | [SET_DATE](#topic-125001) |

Функция **SDT_TO_DT** конвертирует исходные дату и время **DTI** в формате [SDT](#topic-124792) в переменную типа **DT**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>sdt<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
?><?Pub _font FontColor="#FFCC00"?>SDT<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* дата и время в формате SDT *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                <?Pub _font FontColor="#5DA35B"?>(* результат DT *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Заполняем только разряды даты и времени, необходимые для конвертации *)<?Pub /_font?>
<?Pub _font FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>YEAR<?Pub /_font?>     <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2026<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>MONTH<?Pub /_font?>    <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>6<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>DAY<?Pub /_font?>      <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>HOUR<?Pub /_font?>     <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>13<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>MINUTE<?Pub /_font?>   <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>45<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>SECOND<?Pub /_font?>   <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>15<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="gray1"?>d<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.SDT_TO_DT(DTI<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font FontColor="white"
?>)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* вернёт DT#2026-06-18-13:45:15 *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124997"></a>

### SDT_TO_TOD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DTI | [SDT](#topic-124792) | Время в формате SDT |
| Выходы | SDT_TO_TOD | TOD | Время в формате TOD |
| Используемые модули | [SET_DATE](#topic-125001) | [SET_DATE](#topic-125001) | [SET_DATE](#topic-125001) |

Функция **SDT_TO_TOD** конвертирует исходное время суток **DTI** в формате [SDT](#topic-124792) в переменную типа **TOD**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>sdt<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.<?Pub /_font
?><?Pub _font FontColor="#FFCC00"?>SDT<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* время в формате SDT *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>TOD<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>               <?Pub _font FontColor="#5DA35B"?>(* результат TOD *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Заполняем только разряды времени, необходимые для конвертации *)<?Pub /_font?>
<?Pub _font FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>HOUR<?Pub /_font?>     <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>13<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>MINUTE<?Pub /_font?>   <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>45<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>SECOND<?Pub /_font?>   <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>15<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font
FontColor="white"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>MS<?Pub /_font?>       <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>33<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="white"?>d<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.SDT_TO_TOD(DTI<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="gray1"?>sdt<?Pub /_font?><?Pub _font FontColor="white"
?>)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* вернёт TOD#13:45:15.033 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124998"></a>

### SECOND

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | itod | TOD | Заданное время |
| Выходы | SECOND | REAL | Число секунд и миллисекунд |

Функция **SECOND** возвращает число секунд и миллисекунд, вырезанное из исходного значения времени суток **itod** типа **TOD**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>t<?Pub /_font?>      <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>TOD<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>TOD#13:45:20.200<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* заданное время суток *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>s<?Pub /_font?>      <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>REAL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                     <?Pub _font FontColor="#5DA35B"?>(* число минут *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>s<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.SECOND(itod<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>t)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 20.2 *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-124999"></a>

### SECOND_OF_DT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | XDT | DT | Заданные дата и время |
| Выходы | SECOND_OF_DT | INT | Число секунд |

Функция **SECOND_OF_DT** возвращает число ceкунд, вырезанное из исходного значения даты и времени **XDT** типа **DT**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>ndt<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>DT#2026-06-18-13:45:20<?Pub /_font
?><?Pub _font FontColor="white"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* заданные дата и время *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>s<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                          <?Pub _font FontColor="#5DA35B"?>(* число секунд *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>s<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.SECOND_OF_DT(XDT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>ndt)<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 20 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125000"></a>

### SECOND_TO_TIME

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Количество секунд и миллисекунд |
| Выходы | SECOND_TO_TIME | TIME | Время |

Функция **SECOND_TO_TIME** конвертирует заданное количество секунд **IN** типа **REAL** (в виде числа с плавающей точкой) в значение переменной типа **TIME**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code> <?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>seconds<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>36<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* количество секунд *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>t<?Pub /_font?>       <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>TIME<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>        <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>t<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.SECOND_TO_TIME(<?Pub /_font?><?Pub _font FontColor="white"?>IN<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>seconds)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font
?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт T#36s *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125001"></a>

### SET_DATE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | YEAR | INT | Год |
| Входы | MONTH | INT | Месяц |
| Входы | DAY | INT | День |
| Выходы | SET_DATE | DATE | Дата в формате DATE |

Функция **SET_DATE** возвращает дату типа **DATE**, собранную из значений года **YEAR**, месяца **MONTH** и дня **DAY**. Функция не проверяет корректность входных данных, так что пользователь должен ограничить диапазон их возможных значений (например, 1-12 для **MONTH** и т.д.).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2026<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* YEAR *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>m<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>6<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* MONTH *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* DAY *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>dt<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>         <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>dt<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.SET_DATE(<?Pub /_font?>
    <?Pub _font FontColor="white"?>YEAR<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>y<?Pub /_font?><?Pub _font FontColor="white"?>,<?Pub /_font?>
    <?Pub _font FontColor="white"?>MONTH<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>m<?Pub /_font?><?Pub _font FontColor="white"?>,<?Pub /_font?>
    <?Pub _font FontColor="white"?>DAY<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>d<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* вернёт <?Pub /_font?><?Pub _font FontColor="#5DA35B"?>D#2026-06-18 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125002"></a>

### SET_DT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | YEAR | INT | Год |
| Входы | MONTH | INT | Месяц |
| Входы | DAY | INT | День |
| Входы | hour | INT | Часы |
| Входы | minute | INT | Минуты |
| Входы | second | INT | Секунды |
| Выходы | SET_DT | DT | Дата и время в формате DT |

Функция **SET_DT** возвращает дату и время типа **DT**, собранную из значений года **YEAR**, месяца **MONTH** и дня **DAY**, часов **hour**, минут **minute** и секунд **second**. Функция не проверяет корректность входных данных, так что пользователь должен ограничить диапазон их возможных значений (например, 1-12 для **MONTH** и т.д.).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?>   <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2026<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* YEAR *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>mon<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>6<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* MONTH *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?>   <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* DAY *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>h<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?>   <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>13<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* HOUR *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>m<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?>   <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>45<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* MINUTE *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>s<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?>   <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>20<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* SECOND *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>dt<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?>   <?Pub _font FontColor="#FFCC00"
?>DT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>           <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>dt<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.SET_DT(<?Pub /_font?>
    <?Pub _font FontColor="white"?>YEAR<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>y,<?Pub /_font?>
    <?Pub _font FontColor="white"?>MONTH<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>mon,<?Pub /_font?>
    <?Pub _font FontColor="white"?>DAY<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>d,<?Pub /_font?>
    <?Pub _font FontColor="white"?>HOUR<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>h,<?Pub /_font?>
    <?Pub _font FontColor="white"?>MINUTE<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>m,<?Pub /_font?>
    <?Pub _font FontColor="white"?>SECOND<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>s<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* вернёт DT#2026-06-18-13:45:20<?Pub /_font?><?Pub _font
FontColor="#5DA35B"?> *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125003"></a>

### SET_TOD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Выходы | hour | INT | Часы |
| Выходы | minute | INT | Минуты |
| Выходы | second | INT | Секунды |
| Выходы | SET_TOD | TOD | Дата и время в формате TOD |

Функция **SET_TOD** возвращает время суток типа **TOD**, собранную из значений часов **hour**, минут **minute** и секунд **second**. Функция не проверяет корректность входных данных, так что пользователь должен ограничить диапазон их возможных значений (например, 1-24 для **hour**и т.д.).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>h<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?>   <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>13<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* HOUR *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>m<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?>   <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>45<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* MINUTE *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>s<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?>   <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>20<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* SECOND *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>dt<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?>   <?Pub _font FontColor="#FFCC00"
?>TOD<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>           <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>dt<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.SET_TOD(<?Pub /_font?>
    <?Pub _font FontColor="white"?>hour<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>h,<?Pub /_font?>
    <?Pub _font FontColor="white"?>minute<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>m,<?Pub /_font?>
    <?Pub _font FontColor="white"?>second<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>s<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* вернёт TOD#13:45:20 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125004"></a>

### SUN_MIDDAY

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | LON | REAL | Долгота (в градусах) |
| Входы | UTC | DATE | Дата в UTC |
| Выходы | SUN_MIDDAY | TOD | Время истинного полудня |
| Используемые модули | [DAY_OF_YEAR](#topic-124962) | [DAY_OF_YEAR](#topic-124962) | [DAY_OF_YEAR](#topic-124962) |

Функция **SUN_MIDDAY** вычисляет время истинного полудня (в UTC) для даты **UTC** на долготе **LON**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>lon<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>37.6155<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>      <?Pub _font FontColor="#5DA35B"
?>(* LON *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>dUtc<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2016-02-17<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* UTC *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>midday<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>TOD<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                  <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>midday<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.SUN_MIDDAY(<?Pub /_font?>
   <?Pub _font FontColor="white"?>LON<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>lon,<?Pub /_font?>
   <?Pub _font FontColor="white"?>UTC<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>dUtc<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* вернёт TOD#9:43:23:252<?Pub /_font?><?Pub _font FontColor="#5DA35B"
?> *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125005"></a>

### SUN_POS

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | latitude | REAL | Широта (в градусах) |
| Входы | longitude | REAL | Долгота (в градусах) |
| Входы | utc | DT | Дата и время в UTC |
| Выходы | B | REAL | Азимут (в градусах) |
| Выходы | H | REAL | Высота солнца над горизонтом (в градусах) |
| Выходы | HR | REAL | Высота солнца над горизонтом (в градусах) с учетом рефракции |
| Используемые модули | [MODR](#topic-124847), [RAD](#topic-124850), [DEG](#topic-124819), [REFRACTION](#topic-124992) | [MODR](#topic-124847), [RAD](#topic-124850), [DEG](#topic-124819), [REFRACTION](#topic-124992) | [MODR](#topic-124847), [RAD](#topic-124850), [DEG](#topic-124819), [REFRACTION](#topic-124992) |

Функциональный блок **SUN_POS** вычисляет азимут **B**, высоту солнца над горизонтом **H** и высоту солнца над горизонтом с учетом рефракции **HR** для заданной широты **latitude** и долготы **longitude** в момент **utc** (дата и время по UTC). Расчет рефракции производится для нормального атмосферного давления (101325 Па) и температуры 10 °С. Погрешность расчета в диапазоне дат 2000…2050 не превышает 0.1 градуса.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>fbSunPos<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?><?Pub _font FontColor="#FFCC00"
?>OSCAT_BASIC<?Pub /_font?> <?Pub _font FontColor="white"?>.<?Pub /_font
?><?Pub _font FontColor="#FFCC00"?>SUN_POS<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>lat<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>55.7522<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>lon<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>37.6155<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>xutc<?Pub /_font?><?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DT<?Pub /_font?>   <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>DT#2016-02-17-5:35:22<?Pub /_font
?><?Pub _font FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>B<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>REAL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* азимут, градусы *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>H<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>REAL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* высота, градусы *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>HR<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>REAL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* высота с рефракцией, градусы *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>fbSunPos(<?Pub /_font?>
    <?Pub _font FontColor="white"?>latitude<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>lat<?Pub /_font?><?Pub _font FontColor="white"?>,<?Pub /_font?>
    <?Pub _font FontColor="white"?>longitude<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>lon,<?Pub /_font?>
    <?Pub _font FontColor="white"?>utc<?Pub /_font?>        <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>xutc<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="white"?>B<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>fbSunPos.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"?>B<?Pub /_font
?><?Pub _font FontColor="white"?>;<?Pub /_font?>   <?Pub _font
FontColor="#5DA35B"?>(* 120 *)<?Pub /_font?>
<?Pub _font FontColor="white"?>H<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>fbSunPos.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"?>H<?Pub /_font
?><?Pub _font FontColor="white"?>;<?Pub /_font?>   <?Pub _font
FontColor="#5DA35B"?>(* 4.78 *)<?Pub /_font?>
<?Pub _font FontColor="white"?>HR<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>fbSunPos.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"?>HR<?Pub /_font
?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* 4.95 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125006"></a>

### SUN_TIME

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | latitude | REAL | Широта (в градусах) |
| Входы | longitude | REAL | Долгота (в градусах) |
| Входы | utc | DATE | Дата в UTC |
| Входы | H | REAL | Высота солнца над горизонтом (в градусах) на восходе |
| Выходы | MIDDAY | TOD | Время солнечного полудня (в UTC) |
| Выходы | SUN_RISE | TOD | Время восхода солнца (в UTC) |
| Выходы | SUN_SET | TOD | Время заката солнца (в UTC) |
| Выходы | SUN_DECLINATION | REAL | Склонение солнца над горизонтом в полдень (в градусах) |
| Используемые модули | [SUN_MIDDAY](#topic-125004), [DAY_OF_YEAR](#topic-124962), [DEG](#topic-124819), [HOUR_TO_TIME](#topic-124976), [RAD](#topic-124850), | [SUN_MIDDAY](#topic-125004), [DAY_OF_YEAR](#topic-124962), [DEG](#topic-124819), [HOUR_TO_TIME](#topic-124976), [RAD](#topic-124850), | [SUN_MIDDAY](#topic-125004), [DAY_OF_YEAR](#topic-124962), [DEG](#topic-124819), [HOUR_TO_TIME](#topic-124976), [RAD](#topic-124850), |

Функциональный блок **SUN_TIME** вычисляет для заданной широты **latitude**, долготы **longitude** и даты **utc** (по UTC) время восхода солнца **SUN_RISE**, время заката солнца **SUN_SET**, время солнечного полудня **MIDDAY**, а также склонение солнца над горизонтом в полдень **SUN_DECLINATION**. Функциональный блок использует алгоритм, основанный на уравнении восхода, что минимизирует нагрузку на ПЛК. Не имеет смысла вызывать данный ФБ более одного раза в день – для расчета позиции солнца в течение дня должен использоваться ФБ **SUN_POS**. ФБ возвращает корректные результаты в пределах 65° Южной широты … 65° Северной широты (-65 < latitude < 65).

Вход **H** используется для задания высоты солнечного диска. По умолчанию он имеет значение -0.83(3), которое используется при наблюдениях на земле. При наблюдениях за светилом на морском горизонте или возвышении это значение должно быть скорректировано (см. ссылку на информацию об уравнении восхода).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>fbSunTime<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>SUN_TIME<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>lat<?Pub /_font?>       <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>55.7522<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>lon<?Pub /_font?>       <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>37.6155<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>xutc<?Pub /_font?>      <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DATE<?Pub /_font?>    <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#A4FCA2"?>D#2016-02-17<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>H<?Pub /_font?>         <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>0.833<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>MIDDAY<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>TOD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>       <?Pub _font FontColor="#5DA35B"?>(* время солнечного полудня *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>SUN_RISE<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>TOD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>       <?Pub _font FontColor="#5DA35B"?>(* время восхода солнца *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>SUN_SET<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>TOD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>       <?Pub _font FontColor="#5DA35B"?>(* время заката солнца *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>SUN_DECLINATION<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font
FontColor="#DBB740"?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?><?Pub _font FontColor="#5DA35B"?>(*склонение солнца над горизонтом в полдень в градусах*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>fbSunTime<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
  <?Pub _font FontColor="#DCDCDC"?>latitude<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>lat,<?Pub /_font?>
  <?Pub _font FontColor="#DCDCDC"?>longitude<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>lon,<?Pub /_font?>
  <?Pub _font FontColor="#DCDCDC"?>utc<?Pub /_font?>       <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>xutc,<?Pub /_font?>
  <?Pub _font FontColor="#DCDCDC"?>h<?Pub /_font?>         <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>h<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>MIDDAY<?Pub /_font?>          <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbSunTime<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>MIDDAY<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* TOD#9:43:23.252 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>SUN_RISE<?Pub /_font?>        <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbSunTime<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>SUN_RISE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* TOD#4:50:7.228 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>SUN_SET<?Pub /_font?>         <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbSunTime<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>SUN_SET<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* TOD#14:36:39.276 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>SUN_DECLINATION<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fbSunTime<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>SUN_DECLINATION<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* 22.2 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125007"></a>

### TIMECHECK

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | TD | TOD | Заданное время суток |
| Входы | START | TOD | Нижний предел контролируемого диапазона |
| Входы | STOP | TOD | Верхний предел контролируемого диапазона |
| Выходы | TIMECHECK | BOOL | Флаг «TD принадлежит интервалу» |

Функция **TIMECHECK** возвращает **TRUE**, если заданное время суток **TD** принадлежит интервалу START < TD < STOP. При этом значение **START** может превышать значение **STOP** (в том случае, если в контролируемый диапазон входит часть следующих суток).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>td<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>TOD<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>TOD#23:30:00<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* проверяемое время *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>start1<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>TOD<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>TOD#08:00:00<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>stop1<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>TOD<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>TOD#17:00:00<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>x1<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BOOL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                <?Pub _font FontColor="#5DA35B"?>(* результат 1 *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>start2<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>TOD<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>TOD#22:00:00<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>stop2<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>TOD<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>TOD#06:00:00<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>x2<?Pub /_font?>     <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BOOL<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                <?Pub _font FontColor="#5DA35B"?>(* результат 2 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>x1<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.TIMECHECK(<?Pub /_font?>
    <?Pub _font FontColor="white"?>TD<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>td<?Pub /_font?><?Pub _font FontColor="white"?>,<?Pub /_font?>
    <?Pub _font FontColor="white"?>START<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>start1<?Pub /_font?><?Pub _font FontColor="white"?>,<?Pub /_font
?>
    <?Pub _font FontColor="white"?>STOP<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>stop1<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* вернёт FALSE: 23:30 не входит в 08:00..17:00 *)<?Pub /_font?>
<?Pub _font FontColor="white"?>x2<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#008080"?><?Pub /_font
?><?Pub _font FontColor="white"?>.TIMECHECK(<?Pub /_font?>
    <?Pub _font FontColor="white"?>TD<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>td<?Pub /_font?><?Pub _font FontColor="white"?>,<?Pub /_font?>
    <?Pub _font FontColor="white"?>START<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>start2<?Pub /_font?><?Pub _font FontColor="#7B8DF7"?><?Pub /_font
?><?Pub _font FontColor="white"?>,<?Pub /_font?>
    <?Pub _font FontColor="white"?>STOP<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>stop2<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* вернёт TRUE: интервал 22:00..06:00 проходит через полночь, 23:30 входит *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125008"></a>

### UTC_TO_LTIME

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | UTC | DT | Дата и время в UTC |
| Входы | DST_ENABLE | BOOL | Сигнал включения учета летнего времени |
| Входы | TIME_ZONE_OFFSET | INT | Смещение местного времени относительно UTC в минутах |
| Выходы | UTC_TO_LTIME | DT | Местные дата и время |
| Используемые модули | [DST](#topic-124968) | [DST](#topic-124968) | [DST](#topic-124968) |

Функция **UTC_TO_LTIME** конвертирует дату и время из UTC в местное время. Вход **TIME_ZONE_OFFSET** используется для задания значения смещения местного времени относительно **UTC** в минутах. Если вход **DST_ENABLE** имеет значение **TRUE**, то функция учитывает переход на летнее время.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>utc<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DT<?Pub /_font?>   <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#A4FCA2"?>DT#2026-06-18-09:00:00<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* дата/время в UTC *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dst<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                  <?Pub _font
FontColor="#5DA35B"?>(* учет летнего времени *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>tzOff<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>180<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                    <?Pub _font
FontColor="#5DA35B"?>(* UTC+3 = 180 минут *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>lt<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>                             <?Pub _font FontColor="#5DA35B"?>(* местное дата/время *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>lt<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>UTC_TO_LTIME<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
 <?Pub _font FontColor="#DCDCDC"?>UTC<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>utc,<?Pub /_font?>
 <?Pub _font FontColor="#DCDCDC"?>DST_ENABLE<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>FALSE,<?Pub /_font?>
 <?Pub _font FontColor="#DCDCDC"?>TIME_ZONE_OFFSET<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>tzOff<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* вернёт DT#2026-06-18-12:00:00 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125009"></a>

### WORK_WEEK

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | idate | DATE | Заданная дата |
| Выходы | WORK_WEEK | INT | Номер недели в году |
| Используемые модули | [YEAR_OF_DATE](#topic-125012), [YEAR_BEGIN](#topic-125010), [DAY_OF_WEEK](#topic-124961), [LEAP_YEAR](#topic-124981) | [YEAR_OF_DATE](#topic-125012), [YEAR_BEGIN](#topic-125010), [DAY_OF_WEEK](#topic-124961), [LEAP_YEAR](#topic-124981) | [YEAR_OF_DATE](#topic-125012), [YEAR_BEGIN](#topic-125010), [DAY_OF_WEEK](#topic-124961), [LEAP_YEAR](#topic-124981) |

Функция **WORK_WEEK** возвращает номер недели в году для заданной даты **idate**. Год начинается с 1-ой недели.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC00"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* заданная дата idate *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>ww<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                   <?Pub _font FontColor="#5DA35B"?>(* номер недели *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>ww<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.WORK_WEEK(idate<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>d)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 24 *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125010"></a>

### YEAR_BEGIN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | y | INT | Заданный год |
| Выходы | YEAR_BEGIN | DATE | Дата первого дня года |

Функция **YEAR_BEGIN** возвращает дату первого дня для заданного года **y**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>y<?Pub /_font?>      <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2026<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* заданный год *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>dBegin<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DATE<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>           <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>dBegin<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.YEAR_BEGIN(y<?Pub /_font?><?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* вернёт D#2026-01-01<?Pub /_font?><?Pub _font FontColor="#5DA35B"
?> *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125011"></a>

### YEAR_END

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | y | INT | Заданный год |
| Выходы | YEAR_END | DATE | Дата последнего дня года |

Функция **YEAR_END** возвращает дату последнего дня для заданного года **y**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>y<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2026<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* заданный год *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>dEnd<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DATE<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>           <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>dEnd<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.YEAR_END(y<?Pub /_font?><?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* вернёт D#2026-12-31<?Pub /_font?><?Pub _font FontColor="#5DA35B"
?> *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125012"></a>

### YEAR_OF_DATE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IDATE | DATE | Исходная дата |
| Выходы | YEAR_OF_DATE | INT | Год |

Функция **YEAR_OF_DATE** возвращает значение года, вырезанное из исходной даты **IDATE** типа **DATE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>d<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66FF99"?>D#2026-06-18<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* исходная дата IDATE *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>y<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                   <?Pub _font FontColor="#5DA35B"?>(* год *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>y<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.YEAR_OF_DATE(IDATE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>d)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* вернёт 2026 *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125013"></a>

## Работа со строками

<a id="topic-125014"></a>

### BIN_TO_BYTE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | BIN | STRING(12) | Строка бит (STRING) |
| Выходы | BIN_TO_BYTE | BYTE | Строка бит (BYTE) |

Функция **BIN_TO_BYTE** конвертирует входную строку **BIN**, состоящую из символов **0** и **1**, в значение типа **BYTE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>sBin<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?><?Pub _font FontColor="white"?>(<?Pub /_font
?><?Pub _font FontColor="#FF99CC"?>12<?Pub /_font?><?Pub _font
FontColor="white"?>)<?Pub /_font?> <?Pub _font FontColor="#EF7244"
?>:=<?Pub /_font?> <?Pub _font FontColor="#36b3c9"?>'10101010'<?Pub /_font
?><?Pub _font FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>b<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BYTE<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>b<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.BIN_TO_BYTE(BIN<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>sBin)<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* b = 170 (16#AA) *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125015"></a>

### BIN_TO_DWORD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | BIN | STRING(12) | Строка бит (STRING) |
| Выходы | BIN_TO_DWORD | DWORD | Значение DWORD |

Функция **BIN_TO_DWORD** конвертирует входную строку **BIN**, состоящую из символов **0** и **1**, в значение типа **DWORD**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>sBin<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?><?Pub _font FontColor="white"?>(<?Pub /_font
?><?Pub _font FontColor="#FF99CC"?>40<?Pub /_font?><?Pub _font
FontColor="white"?>)<?Pub /_font?> <?Pub _font FontColor="#EF7244"
?>:=<?Pub /_font?> <?Pub _font FontColor="#36b3c9"?>'0000000000000000000000000000000010101010'<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>dw<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>DWORD<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>dw<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.BIN_TO_DWORD(BIN<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>sBin)<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* dw = 170 (16#000000AA) *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125016"></a>

### BYTE_TO_STRB

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | Строка бит (BYTE) |
| Выходы | BYTE_TO_STRB | STRING(8) | Строка бит (STRING) |

Функция **BYTE_TO_STRB** конвертирует значение **IN** типа **BYTE** в строку, состоящую из символов **0** и **1**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>b<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#AA<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>s<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?><?Pub _font FontColor="white"?>(<?Pub /_font
?><?Pub _font FontColor="#FF99CC"?>8<?Pub /_font?><?Pub _font
FontColor="white"?>)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>s<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.BYTE_TO_STRB(<?Pub /_font?><?Pub _font FontColor="white"?>IN<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>b)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* s = '10101010' *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125017"></a>

### BYTE_TO_STRH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | Строка бит (BYTE) |
| Выходы | BYTE_TO_STRH | STRING(2) | Строка бит в HEX (STRING) |

Функция **BYTE_TO_STRH** конвертирует значение **IN** типа **BYTE** в строку, содержащую это значение в 16-ричной системе счисления.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>b<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#AA<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>sHex<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?><?Pub _font FontColor="white"?>(<?Pub /_font
?><?Pub _font FontColor="#FF99CC"?>2<?Pub /_font?><?Pub _font
FontColor="white"?>)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>sHex<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.BYTE_TO_STRH(<?Pub /_font?><?Pub _font FontColor="white"?>IN<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>b)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* sHex = 'AA' *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125018"></a>

### CAPITALIZE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | CAPITALIZE | STRING | Обработанная строка |
| Используемые модули | [TO_UPPER](#topic-125083) | [TO_UPPER](#topic-125083) | [TO_UPPER](#topic-125083) |

Функция **CAPITALIZE** переводит первые символы слов из строки **str** в верхний регистр. Слова должны быть разделены пробелами. Для работы с символами верхней половины таблицы ASCII глобальная переменная [EXTENDED_ASCII](#topic-124779) должна иметь значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>sIn<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#33CC99"?>'hello world'<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>sOut<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>sOut<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.CAPITALIZE(str<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>sIn)<?Pub /_font?><?Pub _font FontColor="white"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* sOut = 'Hello World' *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125019"></a>

### CHARCODE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | STR | STRING(10) | Символ/идентификатор |
| Выходы | CHARCODE | BYTE | Код символа/идентификатора |
| Используемые модули | [CODE](#topic-125023) | [CODE](#topic-125023) | [CODE](#topic-125023) |

Функция **CHARCODE** возвращает код для заданного ASCII-символа или идентификатора **STR**. Список идентификаторов приведен в таблице ниже. В случае получения неизвестного символа или идентификатора функция возвращает **0**. Работа функции основана на использовании глобальной переменной [CHARNAMES](#topic-124779) должна иметь значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>s<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?><?Pub _font FontColor="white"?>(<?Pub /_font
?><?Pub _font FontColor="#FF99CC"?>10<?Pub /_font?><?Pub _font
FontColor="white"?>)<?Pub /_font?> <?Pub _font FontColor="#EF7244"
?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"?>'&amp;'<?Pub /_font
?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* одиночный символ *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>c<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BYTE<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                    <?Pub _font FontColor="#5DA35B"?>(* код символа *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>c<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.CHARCODE(STR<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>s)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* c = 38 (16#26) *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

| Обозначение | Идентификатор | Код |   | Обозначение | Идентификатор | Код |
| --- | --- | --- | --- | --- | --- | --- |
| ‘’ | quot | 34 |   | Î | Icirc | 206 |
| & | amp | 38 |   | Ï | Iuml | 207 |
|   | lt | 60 |   | Ð | ETH | 208 |
| <  | gt | 62 |   | Ñ | Ntilde | 209 |
| € | euro | 136 |   | Ò | Ograve | 210 |
|   | nbsp | 160 |   | Ó | Oacute | 211 |
| i | iexcl | 161 |   | Ô | Ocirc | 212 |
| ¢ | cent | 162 |   | Õ | Otilde | 213 |
| £ | pound | 163 |   | Ö | Ouml | 214 |
| ¤ | curren | 164 |   | × | times | 215 |
| ¥ | yen | 165 |   | Ø | Oslash | 216 |
| ¦ | brvbar | 166 |   | Ù | Ugrave | 217 |
| § | sect | 167 |   | Ú | Uacute | 218 |
| ¨ | uml | 168 |   | Û | Ucirc | 219 |
| © | copy | 169 |   | Ü | Uuml | 220 |
| ª | ordf | 170 |   | Ý | Yacute | 221 |
| « | laquo | 171 |   | ß | szlig | 223 |
| ¬ | not | 172 |   | à | agrave | 224 |
| - | shy | 173 |   | á | aacute | 225 |
| ® | reg | 174 |   | â | acirc | 226 |
| ¯ | macr | 175 |   | ã | atilde | 227 |
| ° | deg | 176 |   | ä | auml | 228 |
| ± | plusmn | 177 |   | å | aring | 229 |
| ² | sup2 | 178 |   | æ | aelig | 230 |
| ³ | sup3 | 179 |   | ç | ccedil | 231 |
| ´ | acute | 180 |   | è | egrave | 232 |
| µ | micro | 181 |   | é | eacute | 233 |
| ¶ | para | 182 |   | ê | ecirc | 234 |
| · | middot | 183 |   | ë | euml | 235 |
| ¸ | cedil | 184 |   | ì | igrave | 236 |
| ¹ | sup1 | 185 |   | í | iacute | 237 |
| º | ordm | 186 |   | î | icirc | 238 |
| » | raquo | 187 |   | ï | iuml | 239 |

|   |   |   |   |   |   |   |
| --- | --- | --- | --- | --- | --- | --- |
| ½ | frac12 | 189 |   | ð | eth | 240 |
| ¾ | frac34 | 190 |   | ñ | ntilde | 241 |
| ¿ | iquest | 191 |   | ò | ograve | 242 |
| À | Agrave | 192 |   | ó | oacute | 243 |
| Á | Aacute | 193 |   | ô | ocirc | 244 |
| Â | Acirc | 194 |   | õ | otilde | 245 |
| Ã | Atilde | 195 |   | ö | ouml | 246 |
| Ä | Auml | 196 |   | ÷ | divide | 247 |
| Å | Aring | 197 |   | ø | oslash | 248 |
| Æ | AElig | 198 |   | ù | ugrave | 249 |
| Ç | Ccedil | 199 |   | ú | uacute | 250 |
| È | Egrave | 200 |   | û | ucirc | 251 |
| É | Eacute | 201 |   | ü | uuml | 252 |
| Ê | Ecirc | 202 |   | ý | yacute | 253 |
| Ë | Euml | 203 |   | þ | thorn | 254 |
| Ì | Igrave | 204 |   | ÿ | yuml | 255 |
| Í | Iacute | 205 |   |   |   |   |

<a id="topic-125020"></a>

### CHARNAME

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | C | BYTE | Код идентификатора |
| Выходы | CHARNAME | STRING(10) | Идентификатор |
| Используемые модули | [CHR_TO_STRING](#topic-125021) | [CHR_TO_STRING](#topic-125021) | [CHR_TO_STRING](#topic-125021) |

Функция **CHARNAME** возвращает идентификатор по заданному коду **C**. Список идентификаторов приведен в таблице в разделе [CHARCODE](#topic-125019). Работа функции основана на использовании глобальной переменной [CHARNAMES](#topic-124779).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>c<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>38<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* '&amp;' -&gt; amp *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>name<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?><?Pub _font FontColor="white"?>(<?Pub /_font
?><?Pub _font FontColor="#FF99CC"?>10<?Pub /_font?><?Pub _font
FontColor="white"?>)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>        <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>name<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.CHARNAME(C<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="#7B8DF7"?><?Pub /_font?><?Pub _font FontColor="white"?>c)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>     <?Pub _font
FontColor="#5DA35B"?>(* вернёт 'amp' *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125021"></a>

### CHR_TO_STRING

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | C | BYTE | Код ASCII-символа |
| Выходы | CHR_TO_STRING | STRING(1) | ASCII-символ |

Функция **CHR_TO_STRING** возвращает символ заданного ASCII-кода **C**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>c<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>38<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* ASCII-код символа '&amp;' *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>s<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?><?Pub _font FontColor="white"?>(<?Pub /_font
?><?Pub _font FontColor="#FF99CC"?>1<?Pub /_font?><?Pub _font
FontColor="white"?>)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* результат *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>s<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.CHR_TO_STRING(C<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font
FontColor="white"?>c)<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* s = '&amp;' *)<?Pub /_font
?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125022"></a>

### CLEAN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | STRING | Исходная строка |
| Входы | CX | STRING(80) | Допустимые символы |
| Выходы | CLEAN | STRING | Обработанная строка |

Функция **CLEAN** вырезает из строки **IN** все символы, не входящие в строку **CX**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>sIn<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#7B8DF7"?>'Tel:+7(999)12-34.56'<?Pub /_font
?><?Pub _font FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>cx<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?><?Pub _font FontColor="white"?>(<?Pub /_font
?><?Pub _font FontColor="#FF99CC"?>80<?Pub /_font?><?Pub _font
FontColor="white"?>)<?Pub /_font?> <?Pub _font FontColor="#EF7244"
?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"?>'0123456789.'<?Pub /_font
?><?Pub _font FontColor="white"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* допустимые символы *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>sOut<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>sOut<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.CLEAN(<?Pub /_font
?>
    <?Pub _font FontColor="white"?>IN<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>sIn,<?Pub /_font?>
    <?Pub _font FontColor="white"?>CX<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>cx<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* sOut = '79991234.56' *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125023"></a>

### CODE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | STR | STRING | Исходная строка |
| Входы | POS | INT | Позиция символа |
| Выходы | CODE | BYTE | ASCII-код символа |

Функция **CODE** возвращает код ASCII-символа из строки **STR** с позиции **POS**. Если POS = 0 или POS > длины строки, то функция возвращает **0**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>s<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66CC99"?>'ABC'<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>pos<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>c1<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BYTE<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* код символа *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>c0<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BYTE<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* код при POS=0 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>c1<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.CODE(<?Pub /_font
?>
    <?Pub _font FontColor="white"?>STR<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>s<?Pub /_font?><?Pub _font FontColor="white"?>,<?Pub /_font?>
    <?Pub _font FontColor="white"?>POS<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>pos<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* c1 = 66 (16#42) *)<?Pub /_font?>
<?Pub _font FontColor="white"?>c0<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.CODE(<?Pub /_font
?>
    <?Pub _font FontColor="white"?>STR<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>s,<?Pub /_font?>
    <?Pub _font FontColor="white"?>POS<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#FF99CC"
?>0<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* c0 = 0 (16#00) *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125024"></a>

### COUNT_CHAR

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | STR | STRING | Исходная строка |
| Входы | chr | BYTE | ASCII-код символа |
| Выходы | COUNT_CHAR | INT | Кол-во символов в строке |

Функция **COUNT_CHAR** возвращает число символов с ASCII-кодом **chr** в строке **STR**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>s<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66CC99"?>'A-B-C'<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>ch<?Pub /_font?>   <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#2D<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* '-' *)<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>cnt<?Pub /_font?>  <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                <?Pub _font FontColor="#5DA35B"?>(* количество вхождений *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>cnt<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.COUNT_CHAR(<?Pub /_font?>
    <?Pub _font FontColor="white"?>STR<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>s,<?Pub /_font?>
    <?Pub _font FontColor="white"?>chr<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>ch<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* cnt = 2 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125025"></a>

### COUNT_SUBSTRING

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SEARCH | STRING | Искомый фрагмент |
| Входы | STR | STRING | Исходная строка |
| Выходы | COUNT_SUBSTRING | INT | Кол-во вхождений фрагмента в строку |

Функция **COUNT_SUBSTRING** возвращает число вхождений строки **SEARCH** в строку **STR**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>s<?Pub /_font?>      <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66CC99"?>'one two one one'<?Pub /_font
?><?Pub _font FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>search<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF7244"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66CC99"?>'one'<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7B8DF7"?>cnt<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:<?Pub /_font?> <?Pub _font FontColor="#FFCC33"
?>INT<?Pub /_font?><?Pub _font FontColor="white"?>;<?Pub /_font?>                <?Pub _font FontColor="#5DA35B"?>(* количество вхождений *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="white"?>cnt<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="#7B8DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="white"?>.COUNT_SUBSTRING(<?Pub /_font?>
    <?Pub _font FontColor="white"?>SEARCH<?Pub /_font?> <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>search,<?Pub /_font?>
    <?Pub _font FontColor="white"?>STR<?Pub /_font?>    <?Pub _font
FontColor="#EF7244"?>:=<?Pub /_font?> <?Pub _font FontColor="white"
?>s<?Pub /_font?>
<?Pub _font FontColor="white"?>)<?Pub /_font?><?Pub _font
FontColor="white"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* cnt = 3 *)<?Pub /_font?>
<?Pub _font FontColor="#7B8DF7"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125026"></a>

### DEC_TO_BYTE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DEC | STRING(10) | Значение в символьном виде |
| Выходы | DEC_TO_BYTE | BYTE | Значение в целочисленном виде |

Функция **DEC_TO_BYTE** конвертирует символьное значение **DEC** в целочисленное значение типа **BYTE**. Учитываются только символы ‘0’ – ‘9’ в пределах допустимого для типа **BYTE** диапазона ‘0’ – ‘255’.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>strInput<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'255'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>bResult<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>bResult<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DEC_TO_BYTE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>strInput<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* bResult = 255 (0xFF) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125027"></a>

### DEC_TO_DWORD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DEC | STRING(10) | Значение в символьном виде |
| Выходы | DEC_TO_DWORD | DWORD | Значение в целочисленном виде |

Функция **DEC_TO_DWORD** конвертирует символьное значение **DEC** в целочисленное значение типа **DWORD**. Учитываются только символы ‘0’ – ‘9’ в пределах допустимого для типа DWORD диапазона ‘0’ – ‘4294967295’.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>strInput<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'4096'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>dResult<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>dResult<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DEC_TO_DWORD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>strInput<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* dResult = 4096 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125028"></a>

### DEC_TO_INT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DEC | STRING(10) | Значение в символьном виде |
| Выходы | DEC_TO_INT | INT | Значение в целочисленном виде |

Функция **DEC_TO_DWORD** конвертирует символьное значение **DEC** в целочисленное значение типа **INT**. Учитываются только символы ‘0’ – ‘9’ и '-' в пределах допустимого для типа INT диапазона ‘-32768’ – ‘32767’.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>strInput<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'-1024'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>iResult<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>iResult<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DEC_TO_INT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>strInput<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* iResult = -1024 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125029"></a>

### DEL_CHARS

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | STRING | Исходная строка |
| Входы | CX | STRING(80) | Запрещенные символы |
| Выходы | DEL_CHARS | STRING | Обработанная строка |

Функция **DEL_CHARS** вырезает из строки **IN** все символы, входящие в строку **CX**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>strIN<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>80<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'Hello, World! 123'<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>strCX<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>80<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'o,'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* что удалить*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>strRes<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>strRes<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DEL_CHARS<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>strIN,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>CX<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>strCX<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* результат: 'Hell Wrld' *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125030"></a>

### DT_TO_STRF

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DTI | DT | Дата и время |
| Входы | MS | INT | Число миллисекунд |
| Входы | FMT | STRING | Формат строкового представления даты и времени |
| Входы | LANG | INT | Язык приложения |
| Выходы | DT_TO_STRF | STRING | Строка с форматированной меткой времени |
| Используемые модули | [YEAR_OF_DATE](#topic-125012), [MONTH_OF_DATE](#topic-124988), [MONTH_TO_STRING](#topic-125073),  [DAY_OF_MONTH](#topic-124960), [DAY_OF_WEEK](#topic-124961), [WEEKDAY_TO_STRING](#topic-125088), [HOUR](#topic-124974), [MINUTE](#topic-124983), [SECOND](#topic-124998) | [YEAR_OF_DATE](#topic-125012), [MONTH_OF_DATE](#topic-124988), [MONTH_TO_STRING](#topic-125073),  [DAY_OF_MONTH](#topic-124960), [DAY_OF_WEEK](#topic-124961), [WEEKDAY_TO_STRING](#topic-125088), [HOUR](#topic-124974), [MINUTE](#topic-124983), [SECOND](#topic-124998) | [YEAR_OF_DATE](#topic-125012), [MONTH_OF_DATE](#topic-124988), [MONTH_TO_STRING](#topic-125073),  [DAY_OF_MONTH](#topic-124960), [DAY_OF_WEEK](#topic-124961), [WEEKDAY_TO_STRING](#topic-125088), [HOUR](#topic-124974), [MINUTE](#topic-124983), [SECOND](#topic-124998) |

Функция **DT_TO_STRF** конвертирует значение даты и времени **DTI** типа **DT** в форматированную строку. Вход **MS** позволяет указать число миллисекунд. Вход **LANG** определяет язык приложения (см. глобальную переменную [LANGUAGE](#topic-124783)). Вход **FMT** представляет собой строку, состоящую из текста и заполнителей, которая определяет форматирование даты и времени. Список заполнителей приведен ниже.

| Заполнитель | Описание |
| --- | --- |
| #A | Полное значение года (2008) |
| #B | Сокращенное значение года (08) |
| #C | Значение месяца без ведущего нуля (5) |
| #D | Значение месяца с ведущим нулем (05) |
| #E | Сокращенное название месяца (Jan) |
| #F | Полное название месяца (January) |
| #G | Значение дня без ведущего нуля (5) |
| #H | Значение дня с ведущим нулем (05) |
| #I | Номер дня недели (1 – понедельник, 7 – воскресение) |
| #J | Сокращенное название дня (Mo) |
| #K | Полное название дня (Monday) |
| #L | Утро/вечер (AM/PM) |
| #M | Значение часа в 24-часовом формате без ведущего нуля (2, 22) |
| #N | Значение часа в 24-часовом формате с ведущим нулем (02, 22) |
| #O | Значение часа в 12-часовом формате без ведущего нуля (1, 11) |
| #P | Значение часа в 12-часовом формате с ведущим нулем (01, 11) |
| #Q | Значение минут без ведущего нуля (5) |
| #R | Значение минут с ведущим нулем (05) |
| #S | Значение секунд без ведущего нуля (5) |
| #T | Значение секунд с ведущим нулем (05) |
| #U | Значение миллисекунд без ведущего нуля (5) |
| #V | Значение миллисекунд с ведущим нулем (005) |
| #W | Значение дня с ведущим нулем и пробелом (‘ 05’) |
| #X | Значение месяца с ведущим нулем и пробелом (‘ 05’) |

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dt<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#A4FCA2"?>DT#2026-06-18-13:45:20<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ms<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>250<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>fmt<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'#A-#D-#H #N:#R:#T.#V'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font
FontColor="#5DA35B"?>(* YYYY-MM-DD HH:MM:SS.mmm *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>lang<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                           <?Pub _font
FontColor="#5DA35B"?>(* язык EN *)<?Pub /_font?>
    <?Pub _font FontColor="#FFF2C5"?>s<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>s<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DT_TO_STRF<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>DTI<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>dt,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>MS<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>ms,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>FMT<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>fmt,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>LANG<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>lang<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* s = '2026-06-18 13:45:20.250' *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125031"></a>

### DWORD_TO_STRB

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | DWORD | Набор бит |
| Выходы | DWORD_TO_STRB | STRING(32) | Строка бит |

Функция **DWORD_TO_STRB** конвертирует переменную **IN** типа **DWORD**, представляющую собой набор бит, в строку фиксированной длины, состоящую из символов ‘0’ и ‘1’. При необходимости можно подавать на вход функции переменные типа **BYTE** и **WORD**, обрезая строку до нужных размеров с помощью функции **RIGHT** из библиотеки **Standard**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>dwValue<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#FF00FF00<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* Шестнадцатеричное значение *)<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>strBinary<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>32<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>strBinary<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DWORD_TO_STRB<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>dwValue<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"?>(* Результат: <?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>                                              '11111111000000001111111100000000'<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>                                              битовое представление 16#FF00FF00*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125032"></a>

### DWORD_TO_STRF

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | DWORD | Заданное значение |
| Входы | N | INT | Длина строки |
| Выходы | DWORD_TO_STRF | STRING(20) | Значение в виде строки заданной длины |
| Используемые модули | [FIX](#topic-125044) | [FIX](#topic-125044) | [FIX](#topic-125044) |

Функция **DWORD_TO_STRF** конвертирует значение переменной **IN** типа **DWORD** в строку с заданной длиной **N**. Если **N** > кол-ва разрядов **IN**, то строка дополняется ведущими нулями. Если **N** < кол-ва разрядов **IN**, то старшие разряды обрезаются.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dwValue<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12345<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>strRes<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>20<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>strRes2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>20<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>strRes<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DWORD_TO_STRF<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>dwValue,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>8<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* вернет '00012345' (дополнено ведущими нулями до 8 символов) *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>strRes2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?>  <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DWORD_TO_STRF<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>dwValue,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* вернет '345' (обрезаны старшие разряды) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125033"></a>

### DWORD_TO_STRH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | DWORD | Заданное значение |
| Выходы | DWORD_TO_STRH | STRING(8) | Значение в виде HEX-форматированной строки |

Функция **DWORD_TO_STRH** конвертирует значение переменной **IN** типа **DWORD** в строку фиксированной длины, содержащую это значение в 16-ричной системе счисления.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>dwIN<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#CAFEBABE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>hexStr<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>8<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>hexStr<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DWORD_TO_STRH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>dwIN<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* результат 'CAFEBABE' *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125034"></a>

### EXEC

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Математическое выражение |
| Выходы | EXEC | STRING | Результат |
| Используемые модули | [UPPERCASE](#topic-125087), [TRIM](#topic-125084), [FIND_NONUM](#topic-125038) | [UPPERCASE](#topic-125087), [TRIM](#topic-125084), [FIND_NONUM](#topic-125038) | [UPPERCASE](#topic-125087), [TRIM](#topic-125084), [FIND_NONUM](#topic-125038) |

Функция **EXEC** вычисляет математическое выражение, заданное в виде строки **str**, и возвращает его результат (также в виде строки). Выражение может включать только два операнда и не должно содержать скобки. В случае некорректной операции (например, деления на ноль) функция возвращает значение ‘**ERROR**’.

Список возможных операторов: +, -, \*, /, ^, SIN, COS, TAN, SQRT.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>strExp<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66CC99"?>'15 + 27'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>strExp1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66CC99"?>'15/0'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>strRes<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#8080FF"?>strRes1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>strRes<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>EXEC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>strExp<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* результат '42' *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>strRes1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>EXEC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>strExp1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* результат 'ERROR' *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125035"></a>

### FILL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | C | BYTE | ASCII-код символа |
| Входы | L | INT | Длина строки |
| Выходы | FILL | STRING | Строка заданной длины, заполненная заданным символом |
| Используемые модули | [CHR_TO_STRING](#topic-125021) | [CHR_TO_STRING](#topic-125021) | [CHR_TO_STRING](#topic-125021) |

Функция **FILL** формирует строку длиной **L**, заполненную символом с ASCII-кодом **C**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>fChar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>65<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* ASCII-код 'A' *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>len<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FILL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(C<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>fChar,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>L<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>len<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* результат: result = "AAAAA" *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125036"></a>

### FIND_CHAR

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Входы | pos | INT | Начальная позиция для поиска |
| Выходы | FIND_CHAR | INT | Позиция первого символа, который не является управляющим |

Функция **FIND_CHAR** анализирует исходную строку **str** с позиции **pos** и возвращает позицию первого символа, который не является управляющим. Для работы с символами верхней половины таблицы ASCII глобальная переменная [EXTENDED_ASCII](#topic-124779) должна иметь значение **TRUE**. Управляющими считаются символы c ASCII-кодом **< 27** и **127**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>testStr<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'$1812'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>position<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>startPos<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>position<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FIND_CHAR<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>testStr,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>pos<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>startPos<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* вернет 2, т.к. $18 - управляющий символ *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125037"></a>

### FIND_CTRL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Входы | pos | INT | Начальная позиция для поиска |
| Выходы | FIND_CTRL | INT | Позиция первого управляющего символа в строке |

Функция **FIND_CTRL** анализирует исходную строку **str** с позиции **pos** и возвращает позицию первого управляющего символа. Для работы с символами верхней половины таблицы ASCII глобальная переменная [EXTENDED_ASCII](#topic-124779) должна иметь значение **TRUE**. Управляющими считаются символы c ASCII-кодом **< 27** и **127**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>testStr<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'12$18'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>position<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>startPos<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>position<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FIND_CTRL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>testStr,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>pos<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>startPos<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* вернет 3, т.к. $18 - управляющий символ *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125038"></a>

### FIND_NONUM

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Входы | pos | INT | Начальная позиция для поиска |
| Выходы | FIND_NONUM | INT | Позиция первого символа, который не является числом |

Функция **FIND_NONUM** анализирует исходную строку **str** с позиции **pos** и возвращает позицию первого символа, который не является числом (символом ‘1’ – ‘9’ или ‘.’).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>testStr<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'+7495-727-30-16'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>position<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>startPos<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>position<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FIND_NONUM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>testStr,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>pos<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>startPos<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* вернет 6, т.к проверка со второго символа *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125039"></a>

### FIND_NUM

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Входы | pos | INT | Начальная позиция для поиска |
| Выходы | FIND_NUM | INT | Позиция первого символа, который является числом |

Функция **FIND_NUM** анализирует исходную строку **str** с позиции **pos** и возвращает позицию первого символа, который является числом (символом ‘1’ – ‘9’ или ‘.’).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>testStr<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'+7495-727-30-16'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>position<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>startPos<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>position<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FIND_NUM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>testStr,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>pos<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>startPos<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* вернет 2 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125040"></a>

### FINDB

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str1 | STRING | Анализируемая строка |
| Входы | str2 | STRING | Искомая строка |
| Выходы | FINDB | INT | Позиция последнего вхождения искомой строки |

Функция **FINDB** возвращает позицию последнего вхождения строки **str2** в строку **str1**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>s1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'one two one one'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>s2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'one'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>p<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>p<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FINDB<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str1<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>s1,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>str2<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>s2<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* p = 13 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125041"></a>

### FINDB_NONUM

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | FINDB_NONUM | INT | Позиция последнего символа, который не является числом |

Функция **FINDB_NONUM** возвращает позицию последнего символа строки **str**, который не является числом (символом ‘1’ – ‘9’ или ‘.’).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>testStr<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'+7495-727-30-16'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>position<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>position<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FINDB_NONUM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>testStr<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* 13 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125042"></a>

### FINDB_NUM

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | FINDB_NUM | INT | Позиция последнего символа, который является числом |

ФФункция **FINDB_NUM** возвращает позицию последнего символа строки **str**, который является числом (символом ‘1’ – ‘9’ или ‘.’).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>testStr<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'+7495-727-30-16'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>position<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>position<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FINDB_NUM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>testStr<?Pub /_font?> <?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* вернет 15 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125043"></a>

### FINDP

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Анализируемая строка |
| Входы | src | STRING | Искомая строка |
| Входы | pos | INT | Начальная позиция для поиска |
| Выходы | FINDP | INT | Позиция первого вхождения искомой строки |

Функция **FINDP** анализирует исходную строку **str** с позиции **pos** и возвращает позицию первого вхождения в нее строки **src**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>testStr<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'hello hell'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>testStc<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'hel'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>position<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?>      <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FINDP<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>testStr,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>src<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>testStc,<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>pos<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>position<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* вернет 7, т.к. проверка со второй позиции *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125044"></a>

### FIX

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Входы | C | BYTE | ASCII-код символа-заполнителя |
| Входы | L | INT | Длина дополненной строки |
| Входы | M | INT | Режим заполнения |
| Выходы | FIX | STRING | Дополненная строка |
| Используемые модули | [FILL](#topic-125035) | [FILL](#topic-125035) | [FILL](#topic-125035) |

Функция **FIX** дополняет исходную строку **str** до длины **L** с помощью символа-заполнителя с ASCII-кодом **С**. Переменная **M** определяет режим дополнения:

- M=0 – строка дополняется справа;
- M=1 – строка дополняется слева;
- M=2 – строка дополняется с обоих сторон.

Если длина **str** является нечетной, то правая часть дополненной строки будет больше левой.

Если L ≤ длина str, то исходная строка не дополняется, а обрезается слева (для M=0 и M=2) или справа (для M=1).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>inStr<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'1'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ascii<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#61<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>lon<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>varM<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>f0<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>f1<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>f2<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>varM<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>f0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FIX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>inStr,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>C<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>ascii,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>L<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>lon,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>M<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>varM<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
  <?Pub _font FontColor="#5DA35B"?>(* вернет '1aaa' *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>varM<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>f1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FIX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>inStr,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>C<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>ascii,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>L<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>lon,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>M<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>varM<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
  <?Pub _font FontColor="#5DA35B"?>(* вернет 'aaa1' *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>varM<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>f2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FIX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>inStr,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>C<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>ascii,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>L<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>lon,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>M<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>varM<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
  <?Pub _font FontColor="#5DA35B"?>(* вернет 'a1aa' *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125045"></a>

### FLOAT_TO_REAL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | FLT | STRING(20) | Значение с плавающей точкой в формате STRING |
| Выходы | FLOAT_TO_REAL | REAL | Значение с плавающей точкой в формате REAL |
| Используемые модули | [DEC_TO_INT](#topic-125028), [EXPN](#topic-124825) | [DEC_TO_INT](#topic-125028), [EXPN](#topic-124825) | [DEC_TO_INT](#topic-125028), [EXPN](#topic-124825) |

Функция **FLOAT_TO_REAL** конвертирует строку **FLT**, содержащую значение с плавающей точкой, в переменную типа **REAL**.

Строка **FLT** может содержать цифры и символы «.», «,», «-», «E», «e».

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>str1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>20<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'123.45'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>str2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>20<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'-67.89'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>str3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>20<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'1.23E-4'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>str4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>20<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'-5.67E+3'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>real1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>real2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>real3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>real4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>real1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FLOAT_TO_REAL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* 123.45 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>real2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FLOAT_TO_REAL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* -67.89 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>real3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FLOAT_TO_REAL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str3<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* 0.000123 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>real4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FLOAT_TO_REAL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* -5670.0 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125046"></a>

### FSTRING_TO_BYTE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | STRING(12) | Значение байта в виде форматированной строки |
| Выходы | FSTRING_TO_BYTE | BYTE | Значение байта |
| Используемые модули | [BIN_TO_BYTE](#topic-125014), [OCT_TO_BYTE](#topic-125074), [HEX_TO_BYTE](#topic-125052), [DEC_TO_BYTE](#topic-125026) | [BIN_TO_BYTE](#topic-125014), [OCT_TO_BYTE](#topic-125074), [HEX_TO_BYTE](#topic-125052), [DEC_TO_BYTE](#topic-125026) | [BIN_TO_BYTE](#topic-125014), [OCT_TO_BYTE](#topic-125074), [HEX_TO_BYTE](#topic-125052), [DEC_TO_BYTE](#topic-125026) |

Функция **FSTRING_TO_BYTE** конвертирует форматированную строку **IN**, содержащую значение байта, в переменную типа **BYTE**. Поддерживаются следующие форматы:

- двоичный (‘2#01100100’);
- восьмеричный (‘8#144’);
- шестнадцатеричный (‘16#64FS’);
- десятичный (‘100’).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>str1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>12<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'2#01100100'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>str2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>12<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'8#144'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>str3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>12<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'16#64'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>str4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>12<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'100'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>real1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>real2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>real3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>real4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>real1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FSTRING_TO_BYTE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* 100 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>real2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FSTRING_TO_BYTE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* 100 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>real3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FSTRING_TO_BYTE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str3<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* 100 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>real4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FSTRING_TO_BYTE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* 100 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125047"></a>

### FSTRING_TO_DT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SDT | STRING(60) | Значение даты и времени в виде строки |
| Входы | FMT | STRING(60) | Формат строки |
| Выходы | FSTRING_TO_DT | DT | Дата и время |
| Используемые модули | [SET_DT](#topic-125002) | [SET_DT](#topic-125002) | [SET_DT](#topic-125002) |

Функция **FSTRING_TO_DT** конвертирует форматированную строку **SDT**, содержащую значение даты и времени, в переменную типа **DT**. Вход **FMT** определяет используемое форматирование, т.е. представляет строку **SDT** в виде последовательности заполнителей. Список заполнителей приведен ниже.

| Заполнитель | Описание |
| --- | --- |
| #Y | Значение года (08 или 2008). |
| #M | Значение месяца в виде числа (1 или 01). |
| #N | Значение месяца в виде названия (Jan или January). Регистр не учитывается. |
| #D | Значение дня (1 или 01) |
| #h | Значение часов (1 или 01) |
| #m | Значение минут (1 или 01) |
| #s | Значение секунд (1 или 01) |
| \* | Заполнитель для статического текста |

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dt1<?Pub /_font?>      <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dateStr1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>60<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'2026 Jul 09 at 14:30:45'<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>format1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>60<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'#Y #N #D ** #h:#m:#s'<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>dt1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FSTRING_TO_DT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>SDT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>dateStr1,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>FMT<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>format1<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// dt1 = 2026-07-09-14:30:45<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125048"></a>

### FSTRING_TO_DWORD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | STRING(40) | Значение даты и времени в виде форматированной строки |
| Выходы | FSTRING_TO_DWORD | DDORD | Значение DWORD |
| Используемые модули | [BIN_TO_DWORD](#topic-125015), [OCT_TO_DWORD](#topic-125075), [HEX_TO_DWORD](#topic-125053), [DEC_TO_DWORD](#topic-125027) | [BIN_TO_DWORD](#topic-125015), [OCT_TO_DWORD](#topic-125075), [HEX_TO_DWORD](#topic-125053), [DEC_TO_DWORD](#topic-125027) | [BIN_TO_DWORD](#topic-125015), [OCT_TO_DWORD](#topic-125075), [HEX_TO_DWORD](#topic-125053), [DEC_TO_DWORD](#topic-125027) |

Функция **FSTRING_TO_DWORD** конвертирует форматированную строку **IN**, содержащую значение **DWORD**, в переменную типа **DWORD**. Поддерживаются следующие форматы:

- двоичный (‘2#01100100’);
- восьмеричный (‘8#144’);
- шестнадцатеричный (‘16#64FS’);
- десятичный (‘100’).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>sBin<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>40<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'2#01100100'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>sOct<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>40<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'8#144'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>sHex<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>40<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'16#64'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>sDec<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>40<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'100'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dw1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>dw2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>dw3<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>dw4<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>dw1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FSTRING_TO_DWORD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>sBin<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* dw1 = 100 (16#00000064) *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>dw2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FSTRING_TO_DWORD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>sOct<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* dw2 = 100 (16#00000064) *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>dw3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FSTRING_TO_DWORD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>sHex<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* dw3 = 100 (16#00000064) *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>dw4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FSTRING_TO_DWORD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>sDec<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* dw4 = 100 (16#00000064) *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125049"></a>

### FSTRING_TO_MONTH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | MTH | STRING(20) | Значение месяца в виде строки |
| Входы | LANG | INT | Язык приложения |
| Выходы | FSTRING_TO_MONTH | INT | Значение месяца в виде числа |
| Используемые модули | [TRIM](#topic-125084), [CAPITALIZE](#topic-125018), [LOWERCASE](#topic-125069) | [TRIM](#topic-125084), [CAPITALIZE](#topic-125018), [LOWERCASE](#topic-125069) | [TRIM](#topic-125084), [CAPITALIZE](#topic-125018), [LOWERCASE](#topic-125069) |

Функция **FSTRING_TO_MONTH** конвертирует строку, содержащую значение месяца в виде числа или названия, в переменную типа **INT**, содержащую номер месяца. Вход **LANG** определяет язык приложения (см. глобальную переменную [LANGUAGE](#topic-124783)).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>month1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#8080FF"?>month2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>month1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FSTRING_TO_MONTH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>MTH<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'January'<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>,LANG<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>// 1<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>month2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FSTRING_TO_MONTH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>MTH<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'März'<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>,LANG<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>// 3<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125050"></a>

### FSTRING_TO_WEEK

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | WEEK | STRING(20) | Название или номер для недели |
| Входы | LANG | INT | Язык приложения |
| Выходы | FSTRING_TO_WEEK | BYTE | Номер дня недели в виде битовой маски |
| Используемые модули | [FSTRING_TO_WEEKDAY](#topic-125051) | [FSTRING_TO_WEEKDAY](#topic-125051) | [FSTRING_TO_WEEKDAY](#topic-125051) |

Функция **FSTRING_TO_WEEK** конвертирует строку **WEEK**, содержащую номер или название (полное или сокращенное, регистронезависимое) дня недели, в битовую маску (типа **BYTE**), где бит, имеющий значение **TRUE**, определяет текущий день недели (**бит 6** – понедельник, **бит 0** – воскресение). Вход **LANG** определяет язык приложения (см. глобальную переменную [LANGUAGE](#topic-124783)).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>weekMask1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#8080FF"?>weekMask2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>weekMask1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FSTRING_TO_WEEK<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>WEEK<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'Monday'<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>, LANG<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>    
                                        <?Pub _font FontColor="#5DA35B"
?>(* 2#0000010 Понедельник*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>weekMask2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FSTRING_TO_WEEK<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>WEEK<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'Sonntag'<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>, LANG<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   
                                        <?Pub _font FontColor="#5DA35B"
?>(* 2#00000001 Воскресенье*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125051"></a>

### FSTRING_TO_WEEKDAY

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | WEEK | STRING(20) | Название или номер для недели |
| Входы | LANG | INT | Язык приложения |
| Выходы | FSTRING_TO_WEEKDAY | INT | Номер дня недели |
| Используемые модули | [TRIM](#topic-125084), [CAPITALIZE](#topic-125018), [LOWERCASE](#topic-125069) | [TRIM](#topic-125084), [CAPITALIZE](#topic-125018), [LOWERCASE](#topic-125069) | [TRIM](#topic-125084), [CAPITALIZE](#topic-125018), [LOWERCASE](#topic-125069) |

Функция **FSTRING_TO_WEEKDAY**конвертирует строку **WEEK**, содержащую номер или название (полное или сокращенное, регистронезависимое) дня недели в переменную типу **INT**, содержащую номер дня недели (**1** – понедельник, **7** – воскресение). Вход **LANG** определяет язык приложения (см. глобальную переменную [LANGUAGE](#topic-124783)).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>wDay1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#8080FF"?>wDay2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>wDay1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FSTRING_TO_WEEKDAY<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>WDAY<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'Monday'<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>, LANG<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>    
                                        <?Pub _font FontColor="#5DA35B"
?>(* результат 1*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>wDay2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>FSTRING_TO_WEEKDAY<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>WDAY<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'Sonntag'<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>, LANG<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   
                                        <?Pub _font FontColor="#5DA35B"
?>(* результат 7 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125052"></a>

### HEX_TO_BYTE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | HEX | STRING(5) | HEX-значение в виде строки |
| Выходы | HEX_TO_BYTE | BYTE | HEX-значение в виде байта |

Функция **HEX_TO_BYTE** конвертирует строку **HEX**, содержащую значение в 16-ричной системе счисления, в соответствующее значение типа **BYTE**. Исходная строка должна содержать только числа и символы от ‘A’ до ‘F’ (в любом регистре).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>str1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'1A'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>str2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'ED'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>HEX_TO_BYTE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* 16#1A *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>HEX_TO_BYTE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* 16#ED *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125053"></a>

### HEX_TO_DWORD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | HEX | STRING(20) | HEX-значение в виде строки |
| Выходы | HEX_TO_DWORD | DWORD | HEX-значение в виде DWORD |

Функция **HEX_TO_DWORD** конвертирует строку **HEX**, содержащую значение в 16-ричной системе счисления, в соответствующее значение типа **DWORD**. Исходная строка должна содержать только числа и символы от ‘A’ до ‘F’ (в любом регистре).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>str1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>20<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'1A1A2B3C'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>str2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>20<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'BABE'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>HEX_TO_DWORD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* 16#1A1A2B3C *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>HEX_TO_DWORD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* 16#BABE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125054"></a>

### IS_ALNUM

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | IS_ALNUM | BOOL | Флаг «только буквы и цифры» |
| Используемые модули | [ISC_ALPHA](#topic-125063), [ISC_NUM](#topic-125067) | [ISC_ALPHA](#topic-125063), [ISC_NUM](#topic-125067) | [ISC_ALPHA](#topic-125063), [ISC_NUM](#topic-125067) |

Функция **IS_ALNUM** возвращает **TRUE**, если исходная строка **str** состоит только из букв и цифр. Если в строку входит хотя бы один символ, не попадающий в эти категории (например, пробел), то функция возвращает **FALSE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>test1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'Hello123'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>test2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'Test@123'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>result1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>result2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_ALNUM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(str<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>test1<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* TRUE - только буквы и цифры *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_ALNUM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(str<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>test2<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* FALSE - содержит @ *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125055"></a>

### IS_ALPHA

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | IS_ALPHA | BOOL | Флаг «только буквы» |
| Используемые модули | [ISC_ALPHA](#topic-125063) | [ISC_ALPHA](#topic-125063) | [ISC_ALPHA](#topic-125063) |

Функция **IS_ALPHA** возвращает **TRUE**, если исходная строка **str** состоит только из букв. Во всех остальных случаях функция возвращает **FALSE**. Для работы с символами верхней половины таблицы ASCII глобальная переменная [EXTENDED_ASCII](#topic-124779) должна иметь значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>test1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'Hello'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>test2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'Hello123'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>result1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>result2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_ALPHA<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>test1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_ALPHA<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>test2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font
FontColor="#5DA35B"?>(* FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125056"></a>

### IS_CC

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Входы | cmp | STRING | Строка с разрешенными символами |
| Выходы | IS_CC | BOOL | Флаг «только разрешенные символы» |

Функция **IS_СС** возвращает **TRUE**, если исходная строка **str** состоит только из символов, включенных в строку **cmp**. Во всех остальных случаях функция возвращает **FALSE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>test1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'test'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>test2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'Test'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>cmp0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'tse'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>result1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>result2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_CC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(str<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>test1, cmp<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>cmp0)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* TRUE *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>result2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_CC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(str<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>test2, cmp<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#E1E1E1"?>cmp0)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* FALSE *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125057"></a>

### IS_CTRL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | IS_CTRL | BOOL | Флаг «только управляющие символы» |
| Используемые модули | [ISC_CTRL](#topic-125064) | [ISC_CTRL](#topic-125064) | [ISC_CTRL](#topic-125064) |

Функция **IS_CTRL** возвращает **TRUE**, если исходная строка **str** состоит только из управляющих символов. Управляющими считаются символы c ASCII-кодом **< 27** и **127**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'$18'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'11$18'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
   <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_CTRL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_CTRL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125058"></a>

### IS_HEX

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | IS_HEX | BOOL | Флаг «только HEX–символы» |
| Используемые модули | [ISC_HEX](#topic-125065) | [ISC_HEX](#topic-125065) | [ISC_HEX](#topic-125065) |

Функция **IS_HEX** возвращает **TRUE**, если исходная строка **str** состоит только из HEX–символов (‘0’ – ‘9’, ‘a’ – ‘f’, ‘A’ – ‘F’). Во всех остальных случаях функция возвращает **FALSE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'3AEB1C'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'2XL'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
   <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_HEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_HEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125059"></a>

### IS_LOWER

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | IS_LOWER | BOOL | Флаг «все символы в нижнем регистре» |
| Используемые модули | [ISC_LOWER](#topic-125066) | [ISC_LOWER](#topic-125066) | [ISC_LOWER](#topic-125066) |

Функция **IS_LOWER** возвращает **TRUE**, если исходная строка **str** состоит только из букв в нижнем регистре. Во всех остальных случаях функция возвращает **FALSE**. Для работы с символами верхней половины таблицы ASCII глобальная переменная [EXTENDED_ASCII](#topic-124779) должна иметь значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'test'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'Test'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str3<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'test1'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
   <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
   <?Pub _font FontColor="#988DF7"?>res3<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_LOWER<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_LOWER<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_LOWER<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125060"></a>

### IS_NCC

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Входы | cmp | STRING | Строка с запрещенными символами. |
| Выходы | IS_NCC | BOOL | Флаг «без запрещенных символов». |

Функция **IS_NСС** возвращает **TRUE**, если исходная строка **str** не включает в себя ни один символ из строки **cmp**. Во всех остальных случаях функция возвращает **FALSE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str0<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'test'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>cmp1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'abcd'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>cmp2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'efgd'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
   <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_NCC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str0, cmp<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>cmp1)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?> 
<?Pub _font FontColor="#5DA35B"?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_NCC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str0, cmp<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>cmp2)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?> 
<?Pub _font FontColor="#5DA35B"?>(* FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125061"></a>

### IS_NUM

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | IS_NUM | BOOL | Флаг «только числа» |
|   | [ISC_NUM](#topic-125067) | [ISC_NUM](#topic-125067) | [ISC_NUM](#topic-125067) |

Функция **IS_NUM** возвращает **TRUE**, если исходная строка **str** состоит только из чисел. Во всех остальных случаях функция возвращает **FALSE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'123'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'a123'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
   <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_NUM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_NUM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125062"></a>

### IS_UPPER

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | IS_UPPER | BOOL | Флаг «все символы в верхнем регистре» |
| Используемые модули | [ISC_UPPER](#topic-125068) | [ISC_UPPER](#topic-125068) | [ISC_UPPER](#topic-125068) |

Функция **IS_UPPER** возвращает **TRUE**, если исходная строка **str** состоит только из букв в верхнем регистре. Во всех остальных случаях функция возвращает **FALSE**. Для работы с символами верхней половины таблицы ASCII глобальная переменная [EXTENDED_ASCII](#topic-124779) должна иметь значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'TEST'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'Test'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str3<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'TEST1'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
   <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
   <?Pub _font FontColor="#988DF7"?>res3<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_UPPER<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_UPPER<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>IS_UPPER<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125063"></a>

### ISC_ALPHA

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | ASCII-код символа |
| Выходы | ISC_ALPHA | BOOL | Флаг «только буквы» |

Функция **ISC_ALPHA** возвращает **TRUE**, если символ с ASCII-кодом **IN** является буквой. Во всех остальных случаях функция возвращает **FALSE**. Для работы с символами верхней половины таблицы ASCII глобальная переменная [EXTENDED_ASCII](#topic-124779) должна иметь значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>test1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#61<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* английский язык *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>test2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#E0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* русский язык *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>test3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#21<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>res3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ISC_ALPHA<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>test1<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ISC_ALPHA<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>test2<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ISC_ALPHA<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>test3<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125064"></a>

### ISC_CTRL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | ASCII-код символа |
| Выходы | ISC_CTRL | BOOL | Флаг «управляющий символ» |

Функция **ISC_CTRL** возвращает **TRUE**, если символ с ASCII-кодом **IN** является управляющим символом. Управляющими считаются символы c ASCII-кодом < 27 (16#1B) и 127 (16#7F). Во всех остальных случаях функция возвращает **FALSE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>test1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#61<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>test2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#14<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ISC_CTRL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>test1<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ISC_CTRL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>test2<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125065"></a>

### ISC_HEX

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | ASCII-код символа |
| Выходы | ISC_HEX | BOOL | Флаг «HEX–символ» |

Функция **ISC_HEX** возвращает **TRUE**, если символ с ASCII-кодом **IN** является HEX-символом (‘0’ – ‘9’, ‘a’ – ‘f’, ‘A’ – ‘F’). Во всех остальных случаях функция возвращает **FALSE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#46<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* F *)<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#47<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* G *)<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
   <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ISC_HEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ISC_HEX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125066"></a>

### ISC_LOWER

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | ASCII-код символа |
| Выходы | ISC_LOWER | BOOL | Флаг «буква в нижнем регистре» |

Функция **ISC_LOWER** возвращает **TRUE**, если символ с ASCII-кодом **IN** является буквой в нижнем регистре. Во всех остальных случаях функция возвращает **FALSE**. Для работы с символами верхней половины таблицы ASCII глобальная переменная [EXTENDED_ASCII](#topic-124779) должна иметь значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#46<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* F *)<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#66<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* f *)<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
   <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ISC_LOWER<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ISC_LOWER<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125067"></a>

### ISC_NUM

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | ASCII-код символа |
| Выходы | ISC_NUM | BOOL | Флаг «цифра» |

Функция **ISC_NUM** возвращает **TRUE**, если символ с ASCII-кодом **IN** является цифрой. Во всех остальных случаях функция возвращает **FALSE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#31<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* 1 *)<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#46<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* F *)<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
   <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ISC_NUM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ISC_NUM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125068"></a>

### ISC_UPPER

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | ASCII-код символа |
| Выходы | ISC_UPPER | BOOL | Флаг «буква в верхнем регистре» |

Функция **ISC_UPPER** возвращает **TRUE**, если символ с ASCII-кодом **IN** является буквой в верхнем регистре. Во всех остальных случаях функция возвращает **FALSE**. Для работы с символами верхней половины таблицы ASCII глобальная переменная [EXTENDED_ASCII](#topic-124779) должна иметь значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#46<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* F *)<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>str2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#66<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* f *)<?Pub /_font?>
   <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
   <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ISC_UPPER<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* TRUE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>ISC_UPPER<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* FALSE *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125069"></a>

### LOWERCASE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | LOWERCASE | STRING | Строка в нижнем регистре |

Функция **LOWERCASE** конвертирует исходную строку **str** в соответствующую строку нижнего регистра. Для работы с символами верхней половины таблицы ASCII глобальная переменная [EXTENDED_ASCII](#topic-124779) должна иметь значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>TestVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66CC99"?>' tEsT '<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>// исходная строка<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResVar<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.LOWERCASE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>TestVar<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* результат 'test'*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125070"></a>

### MASSAGE_8

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN1…IN8 | BOOL | Сигналы генерации сообщений |
| Выходы | M | STRING | Текущее сообщение |
| Параметры | S1…S8 | STRING | Сообщения 1…8 |

Функциональный блок **MESSAGE_8** используется для генерации на выходе одного из 8-ми заданных сообщений по фронту соответствующего логического сигнала. Если логический сигнал **IN1… IN8** имеет значение **TRUE**, то на выход **M** поступает соответствующее ему сообщение. Если несколько сигналов имеют значение **TRUE**, то на выход поступает сообщение с наименьшим номером (т.е. если IN1=IN2=IN3=TRUE, то на выходе будет сообщение S1; если S3=S5=S8=TRUE, то на выходе будет сообщение S3 и т.д.). Если все сигналы имеют значение **FALSE**, то на выходе – пустая строка.

<a id="topic-125071"></a>

### MASSAGE_4R

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | M0…M3 | STRING | Сообщения 0…3 |
| Входы | MM | INT | Число используемых сообщений |
| Входы | ENQ | BOOL | Сигнал запуска ФБ |
| Входы | CLK | BOOL | Сигнал переключения сообщений |
| Входы | T1 | TIME | Время автоматического переключения сообщений |
| Выходы | MX | STRING | Текущее сообщение |
| Выходы | MN | INT | Номер текущего сообщения (0...4) |
| Выходы | TR | BOOL | Флаг «новое сообщение» |
| Используемые модули | [INC1](#topic-124839) | [INC1](#topic-124839) | [INC1](#topic-124839) |

Функциональный блок **MESSAGE_4R** используется для последовательной циклической генерации на выходе 4-х заданных информационных сообщений по фронту логического сигнала. Когда на входе **CLK** проходит импульс по переднему фронту, то на выход **MX** поступает сообщение **M0**. При следующем импульсе на входе **CLK** на выход попадет сообщение **M1** и т.д. Вход **MM** определяет число используемых сообщений (например, при MM=2 на выход будут поступать только сообщения M0 и M1). Вход **ENQ** используется для запуска/остановки работы блока (блок работает только при ENQ=TRUE). Вход **T1** используется для автоматического переключения сообщений на выходе **MX** – если в течение времени **T1** вход **CLK** сохраняет значение **TRUE**, то на выход **MX** поступает следующее сообщение. Выход **MN** содержит номер текущего сообщения на выходе (**0** – M0, **3** – M3). На выходе **TR** генерируется единичный импульс при смене сообщения.

<a id="topic-125072"></a>

### MIRROR

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | MIRROR | STRING | Зеркальная строка |

Функция **MIRROR** конвертирует исходную строку **str** в строку с зеркальным расположением символов.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>str1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'this is test'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
   <?Pub _font FontColor="#988DF7"?>res<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
 <?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>MIRROR<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>str1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* 'tset si siht' *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125073"></a>

### MONTH_TO_STRING

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | MTH | INT | Номер месяца |
| Входы | LANG | INT | Язык приложения |
| Входы | LX | INT | Тип названия (полное/сокращенное) |
| Выходы | MONTH_TO_STRING | STRING(10) | Название месяца |

Функция **MONTH_TO_STRING** возвращает название месяца с номером **MTH**. Вход **LANG** определяет язык приложения (см. глобальную переменную [LANGUAGE](#topic-124783)). Вход **LX** определяет тип названия месяца: **0** – полное (January), **3**– сокращенное (Jan).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>month<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>MONTH_TO_STRING<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>MTH<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>month,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>LANG<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>, LX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* March *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>MONTH_TO_STRING<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>MTH<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>month,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>LANG<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>, LX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>3<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* Mrz *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125074"></a>

### OCT_TO_BYTE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | OCT | STRING(10) | Восьмеричное значение в символьном виде |
| Выходы | OCT_TO_BYTE | BYTE | Восьмеричное значение в целочисленном виде |

Функция **OCT_TO_BYTE** конвертирует восьмеричное символьное значение **OCT** в целочисленное восьмеричное значение типа **BYTE**. Учитываются только символы ‘0’ – ‘7’ в пределах допустимого для типа BYTE диапазона ‘0’ – ‘255’.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>oct1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'11'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>oct2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'400'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>byte1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>byte2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>byte1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.OCT_TO_BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>OCT<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>oct1<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* 9 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>byte2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.OCT_TO_BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>OCT<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>oct2<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* 0 - переполнение *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125075"></a>

### OCT_TO_DWORD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | OCT | STRING(20) | Восьмеричное значение в символьном виде |
| Выходы | OCT_TO_DWORD | DWORD | Восьмеричное значение в целочисленном виде |

Функция **OCT_TO_DWORD** конвертирует восьмеричное символьное значение **OCT** в целочисленное восьмеричное значение типа **BYTE**. Учитываются только символы ‘0’ – ‘7’ в пределах допустимого для типа **DWORD** диапазона ‘0’ – ‘4294967295’.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>oct1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>20<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'1265'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>oct2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>20<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'8989'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.OCT_TO_DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>OCT<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>oct1<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* 693 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.OCT_TO_DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>OCT<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>oct2<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* 0 - недопустимые символы *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125076"></a>

### REAL_TO_STRF

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Значение с плавающей точкой в формате REAL |
| Входы | N | INT | Кол-во знаков после запятой |
| Входы | D | STRING(1) | Символ-разделитель |
| Выходы | REAL_TO_STRF | STRING(20) | Значение с плавающей точкой в формате STRING |
| Используемые модули | [EXP10](#topic-124824) | [EXP10](#topic-124824) | [EXP10](#topic-124824) |

Функция **REAL_TO_STRF** конвертирует переменную **IN** типа **REAL** в строку, содержащую соответствующее значение с плавающей точкой. Вход **N** определяет количество знаков после запятой, до которого будет округлено значение **IN**; он может принимать значения из диапазона **0…7** – это связано с максимальной возможной точностью для типа **REAL**. Вход **D** определяет символ-разделитель для целой и дробной части.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rVal<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.1415<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rD1<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'.'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>rD2<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'_'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>20<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>res2<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>20<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>REAL_TO_STRF<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>rVal,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>, D<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>rD1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>);<?Pub /_font
?> <?Pub _font FontColor="#5DA35B"?>(* 3.14 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>res2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>REAL_TO_STRF<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>rVal,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>5<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>, D<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>rD2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>);<?Pub /_font
?> <?Pub _font FontColor="#5DA35B"?>(* 3_14150 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125077"></a>

### REPLACE_ALL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Входы | src | STRING | Искомая строка |
| Входы | rep | STRING | Замещающая строка |
| Выходы | REPLACE_ALL | STRING | Обработанная строка |
| Используемые модули | [FINDP](#topic-125043) | [FINDP](#topic-125043) | [FINDP](#topic-125043) |

Функция **REPLACE_ALL** осуществляет поиск в исходной строке **str** всех текстовых фрагментов **src** и заменяет их на **rep**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputText<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'Hello, world! Hello, everyone!'<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(*Исходная строка*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>SearchStr<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'Hello'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                          <?Pub _font
FontColor="#5DA35B"?>(*Искомая строка*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ReplaceStr<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'Hi'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                             <?Pub _font
FontColor="#5DA35B"?>(*Замещающая строка*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultText<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultText<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>REPLACE_ALL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>InputText,<?Pub /_font?>
                                       <?Pub _font FontColor="#DCDCDC"
?>src<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>SearchStr,<?Pub /_font?>
                                       <?Pub _font FontColor="#DCDCDC"
?>rep<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>ReplaceStr<?Pub /_font?> <?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* результат 'Hi, world! Hi, everyone!'*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125078"></a>

### REPLACE_CHARS

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Входы | SRC | STRING | Строка с набором искомых символов |
| Входы | REP | STRING | Строка с набором замещающих символов |
| Выходы | REPLACE_CHARS | STRING | Обработанная строка |

Функция **REPLACE_CHARS** осуществляет поиск в исходной строке **str** всех символов, входящих в строку **SRC**, после чего замещает их символами с идентичной (для строки **SRC**) позицией из строки **REP**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputText<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'29738956'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(*Исходная строка*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>SearchStr<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'123456789'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(*Искомые символы*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ReplaceStr<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'abcdefghi'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(*Замещающие символы*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultText<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultText<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>REPLACE_CHARS<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>InputText,<?Pub /_font?>
                                         <?Pub _font FontColor="#DCDCDC"
?>SRC<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>SearchStr,<?Pub /_font?>
                                         <?Pub _font FontColor="#DCDCDC"
?>REP<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>ReplaceStr<?Pub /_font?> <?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* результат 'bigchief'*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125079"></a>

### REPLACE_UML

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | REPLACE_UML | STRING | Обработанная строка |
| Используемые модули | [TO_UML](#topic-125082) | [TO_UML](#topic-125082) | [TO_UML](#topic-125082) |

Функция **REPLACE_UML** заменяет все умляуты в исходной строке **str** на соответствующие сочетания латинских букв:

|   |   |
| --- | --- |
| Умляут | Транслитерация умляута |
| Ä | Ae |
| Ö | Oe |
| Ü | Ue |
| ä | ae |
| ö | oe |
| ü | ue |
| ß | Ss |

Если строка состоит из умляутов в верхнем регистре, но предварительно необходимо перевести ее в нижний регистр с помощью функции [LOWERCASE](#topic-125069), после чего обработать функцией **REPLACE_UML**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputText<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'äöü'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(*Исходная строка*)<?Pub /_font?>
     <?Pub _font FontColor="#988DF7"?>ResultText<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultText<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>REPLACE_UML<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>InputText);<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* результат 'aeoeue'*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125080"></a>

### TICKER

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | N | INT | Длина фрагмента сообщения |
| Входы | PT | TIME | Время переключения фрагментов |
| Выходы | Display | STRING | Фрагмент сообщения |
| Входы-выходы | Text | STRING | Сообщение |

Функциональный блок **TICKER** используется для реализации бегущей строки. Фрагмент исходного сообщения **Text** длиной **N** передается на выход **Display**, причем с интервалом **PT** происходит смещение фрагмента на один символ вправо относительно полного текста сообщения. Блок работает корректно только при N < Длина (Text). На рисунке ниже приведен пример работы с блоком.

T#5s, Text=\`hello\`, длина N=3

|   |   |   |   |   |   |   |   |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Время от начала работы ФБ, с | 0 | 5 | 10 | 15 | 20 | 25 | … |
| Значение выхода Display | hel | ell | llo | lo | o | hel | … |

<a id="topic-125081"></a>

### TO_LOWER

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | ASCII-код символа верхнего регистра |
| Выходы | TO_LOWER | BYTE | ASCII-код символа нижнего регистра |

Функция **TO_LOWER** конвертирует ASCII-код символа верхнего регистра в ASCII-код аналогичного символа нижнего регистра. Для работы с символами верхней половины таблицы ASCII глобальная переменная [EXTENDED_ASCII](#topic-124779) должна иметь значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>UppVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#41<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>// ASCII-код 'A'<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>LowVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>LowVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.TO_LOWER<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>UppVar<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* результат = 16#61 ASCII-код 'a'*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125082"></a>

### TO_UML

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | ASCII-код умляута |
| Выходы | TO_UML | STRING(2) | Транслитерация умляута |
| Используемые модули | [CHR_TO_STRING](#topic-125021) | [CHR_TO_STRING](#topic-125021) | [CHR_TO_STRING](#topic-125021) |

Функция **TO_UML** конвертирует ASCII-код умляута в строку, содержащую его транслитерацию.

|   |   |   |
| --- | --- | --- |
| Умляут | ASCII-код | Транслитерация умляута |
| Ä | 16#C4 | Ae |
| Ö | 16#D6 | Oe |
| Ü | 16#DC | Ue |
| ä | 16#E4 | ae |
| ö | 16#F6 | oe |
| ü | 16#FC | ue |
| ß | 16#DF | Ss |

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>UmlVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#C4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>// Ä<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.TO_UML<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>UmlVar<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* результат 'Ae'*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125083"></a>

### TO_UPPER

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | ASCII-код символа нижнего регистра |
| Выходы | TO_UPPER | BYTE | ASCII-код символа верхнего регистра |

Функция **TO_UPPER** конвертирует ASCII-код символа нижнего регистра в ASCII-код аналогичного символа верхнего регистра. Для работы с символами верхней половины таблицы ASCII глобальная переменная [EXTENDED_ASCII](#topic-124779) должна иметь значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>LowVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#61<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>// ASCII-код 'a'<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>UppVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>UppVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.TO_UPPER<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>LowVar<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* результат = 16#41 ASCII-код 'A'*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125084"></a>

### TRIM

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | TRIM | STRING | Строка без пробелов |

Функция **TRIM** удаляет из строки **str** пробелы и возвращает обработанную строку.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>TestVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66CC99"?>'hello world !'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>// исходная строка<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResVar<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.TRIM<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>TestVar<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* результат 'helloworld!'*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125085"></a>

### TRIM1

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | TRIM1 | STRING | Строка без последовательных пробелов |

Функция **TRIM1** заменяет в строке **str** последовательные пробелы на один пробел, а также удаляет все пробелы в начале и конце строки.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>TestVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66CC99"?>' hello   world! '<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>    <?Pub _font
FontColor="#5DA35B"?>// исходная строка<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResVar<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.TRIM1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>TestVar<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* результат 'hello world!'*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125086"></a>

### TRIME

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | TRIME | STRING | Строка без пробелов в начале и конце |

Функция **TRIME** удаляет пробелы в начале и конце строки **str**, после чего возвращает обработанную строку.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>TestVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66CC99"?>' hello world! '<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>// исходная строка<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResVar<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.TRIME<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>TestVar<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* результат 'hello world!'*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125087"></a>

### UPPERCASE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | str | STRING | Исходная строка |
| Выходы | UPPERCASE | STRING | Строка в верхнем регистре |
| Используемые модули | [TO_UPPER](#topic-125083) | [TO_UPPER](#topic-125083) | [TO_UPPER](#topic-125083) |

Функция **UPPERCASE** конвертирует исходную строку **str** в соответствующую строку верхнего регистра. Для работы с символами верхней половины таблицы ASCII глобальная переменная [EXTENDED_ASCII](#topic-124779) должна иметь значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>TestVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66CC99"?>' tEsT '<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>// исходная строка<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResVar<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.UPPERCASE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>str<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>TestVar<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* результат 'TEST'*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125088"></a>

### WEEKDAY_TO_STRING

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | WDAY | INT | Номер дня недели |
| Входы | LANG | INT | Язык приложения |
| Входы | LX | INT | Тип названия (полное/сокращенное) |
| Выходы | WEEKDAY_TO_STRING | STRING(10) | Название дня недели |

Функция **WEEKDAY_TO_STRING** возвращает название дня недели с номером **WDAY**. Вход **LANG** определяет язык приложения (см. глобальную переменную [LANGUAGE](#topic-124783)). Вход **LX** определяет тип названия месяца: **0** – полное (Monday), **2** – сокращенное (Mo).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>DayNumber<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>// 1 = Понедельник, 7 = Воскресенье<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Language<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>// 1 = Английский <?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>NameType<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>// 0 = Полное название<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>DayName<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>10<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>DayName<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>WEEKDAY_TO_STRING<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>WDAY<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>DayNumber,<?Pub /_font?>
                                          <?Pub _font
FontColor="#DCDCDC"?>LANG<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>Language,<?Pub /_font
?>
                                          <?Pub _font
FontColor="#DCDCDC"?>LX<?Pub /_font?>   <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>NameType<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// Результат: 'Friday'<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125089"></a>

## Модули памяти

<a id="topic-125090"></a>

### FIFO_16

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | Din | DWORD | Данные, записываемые в буфер |
| Входы | E | BOOL | Сигнал управления блоком (вкл./откл.) |
| Входы | RD | BOOL | Сигнал чтения данных из буфера |
| Входы | WD | BOOL | Сигнал записи данных в буфер |
| Входы | RST | BOOL | Сигнал очистки буфера. |
| Выходы | Dout | DWORD | Данные, считанные из буфера. |
| Выходы | EMPTY | BOOL | Флаг «буфер пуст» |
| Выходы | FULL | BOOL | Флаг «буфер полон» |
| Используемые модули | [INC1](#topic-124839) | [INC1](#topic-124839) | [INC1](#topic-124839) |

Функциональный блок **FIFO_16** представляет собой буфер размером 16 значений типа **DWORD**, организованный по принципу **First In – First Out** (FIFO). Если вход **E=TRUE,** то блок находится в работе. Если **WD=TRUE**, то каждый цикл ПЛК значение входа **Din** записывается в буфер. Если **RD=TRUE**, то каждый цикл ПЛК значения из буфера подаются на выход **Dout** (в том порядке, в котором они были записаны в буфер). Чтобы записать/считать один элемент, необходимо подать на вход **RD/WD** единичный импульс. Выход **EMPTY** принимает значение **TRUE**, если буфер пуст (например, при попытке прочитать четвертое значение из буфера, в который было записано только 3 значения, этот флаг станет активным). Выход **FULL** принимает значение **TRUE**, если буфер заполнен. По переднему фронту на входе **RST** происходит очистка буфера.

<a id="topic-125091"></a>

### FIFO_32

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | Din | DWORD | Данные, записываемые в буфер |
| Входы | E | BOOL | Сигнал управления блоком (вкл./откл.) |
| Входы | RD | BOOL | Сигнал чтения данных из буфера |
| Входы | WD | BOOL | Сигнал записи данных в буфер |
| Входы | RST | BOOL | Сигнал очистки буфера. |
| Выходы | Dout | DWORD | Данные, считанные из буфера. |
| Выходы | EMPTY | BOOL | Флаг «буфер пуст» |
| Выходы | FULL | BOOL | Флаг «буфер полон» |
| Используемые модули | [INC1](#topic-124839) | [INC1](#topic-124839) | [INC1](#topic-124839) |

Функциональный блок **FIFO_32** представляет собой буфер размером 32 значений типа **DWORD**. Принцип работы полностью соответствует ФБ [FIFO_16](#topic-125090). Можно создать буфер любого размера, изменив константу **n** в разделе объявления переменных блока.

<a id="topic-125092"></a>

### STACK_16

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | Din | DWORD | Данные, записываемые в буфер |
| Входы | E | BOOL | Сигнал управления блоком (вкл./откл.) |
| Входы | RD | BOOL | Сигнал чтения данных из буфера |
| Входы | WD | BOOL | Сигнал записи данных в буфер |
| Входы | RST | BOOL | Сигнал очистки буфера. |
| Выходы | Dout | DWORD | Данные, считанные из буфера. |
| Выходы | EMPTY | BOOL | Флаг «буфер пуст» |
| Выходы | FULL | BOOL | Флаг «буфер полон» |

Функциональный блок **STACK_16** представляет собой буфер размером 16 значений типа **DWORD**, организованный по принципу **Last In – First Out** (LIFO). Если вход **E=TRUE,** то блок находится в работе. Если **WD=TRUE**, то каждый цикл ПЛК значение входа **Din** записывается в буфер. Если **RD=TRUE**, то каждый цикл ПЛК значения из буфера подаются на выход **Dout** (в том порядке, обратном порядку их записи в буфер). Чтобы записать/считать один элемент, необходимо подать на вход **RD/WD** единичный импульс. Выход **EMPTY** принимает значение **TRUE**, если буфер пуст (например, при попытке прочитать четвертое значение из буфера, в который было записано только 3 значения, этот флаг станет активным). Выход **FULL** принимает значение **TRUE**, если буфер заполнен. По переднему фронту на входе **RST** происходит очистка буфера.

<a id="topic-125093"></a>

### STACK_32

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | Din | DWORD | Данные, записываемые в буфер |
| Входы | E | BOOL | Сигнал управления блоком (вкл./откл.) |
| Входы | RD | BOOL | Сигнал чтения данных из буфера |
| Входы | WD | BOOL | Сигнал записи данных в буфер |
| Входы | RST | BOOL | Сигнал очистки буфера. |
| Выходы | Dout | DWORD | Данные, считанные из буфера. |
| Выходы | EMPTY | BOOL | Флаг «буфер пуст» |
| Выходы | FULL | BOOL | Флаг «буфер полон» |

Функциональный блок **STACK_32** представляет собой буфер размером 32 значения типа **DWORD**. Принцип работы полностью соответствует ФБ [STACK_16](#topic-125092). Можно создать буфер любого размера, изменив константу **n** в разделе объявления переменных блока.

<a id="topic-125094"></a>

## Генераторы импульсов

<a id="topic-125095"></a>

### A_TRIG

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Контролируемое значение |
| Входы | RES | REAL | Допустимое изменение |
| Выходы | Q | BOOL | Импульс превышения допустимого значения |
| Выходы | D | REAL | Разность между текущим и предыдущим недопустимым значением |

Функциональный блок **A_TRIG** контролирует входное значение **IN** и при изменении его относительно последнего сохраненного значения на величину, превышающую **RES**, генерирует единичный импульс на выходе **Q** и сохраняет текущее значение **IN**. Разность между последним сохраненным значением **IN** и текущим значением **IN** подается на выход **D**. В момент импульса на выходе **Q** значение **D** обнуляется.

Пример работы блока:

| Номер цикла | IN | RES | Q | D |
| --- | --- | --- | --- | --- |
| 1 | **0** | 5 | FALSE | 0 |
| 2 | 2 | 5 | FALSE | 2 (2-0) |
| 3 | **10** | 5 | TRUE (импульс на цикл) \[ (10-2)>5 \] | 0 |
| 4 | 7 | 5 | FALSE | -3 (7-10) |
| 5 | **4** | 5 | TRUE (импульс на цикл) \[ (10-4)>5 \] | 0 |
| 6 | 0 | 5 | FALSE | -4 (0-4) |

<a id="topic-125096"></a>

### B_TRIG

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | CLK | BOOL | Контролируемый сигнал |
| Выходы | Q | BOOL | Выход триггера |

Функциональный блок **B_TRIG** генерирует единичный импульс на выходе **Q** при изменении входного сигнала **CLK**. В отличие от блоков **R_TRIG** и **F_TRIG** из библиотеки Standard, которые детектируют только импульсы переднего/заднего фронта соответственно, данный блок детектирует импульсы обоих фронтов.

![B TRIG](https://docs.owen.ru/book_img/2417/164698.png)

<i>Трассировка работы ФБ **B_TRIG**</i>

<a id="topic-125097"></a>

### CLICK_CNT

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Контролируемый сигнал |
| Входы | N | INT | Ожидаемое число импульсов |
| Входы | TC | TIME | Период времени |
| Выходы | Q | BOOL | Выход счетчика |

Функциональный блок **CLICK_CNT** генерирует единичный импульс на выходе **Q**, если логический сигнал **IN** в течение заданного времени **TC** получает ровно **N** импульсов по заднему фронту. Генерация единичного импульса на выходе осуществляется по истечении времени **TC**. Работа блока (отсчет времени) начинается по импульсу переднего фронта на входе **IN**. Если **N=0**, то единичный импульс на выходе генерируется в том случае, если входной логический сигнал **IN** в течение времени **TC** не получает импульсов по заднему фронту.

![CLICK CNT](https://docs.owen.ru/book_img/2417/164877.png)

<i>Трассировка работы ФБ **CLICK_CNT**</i>

<a id="topic-125098"></a>

### CLICK_DEC

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Контролируемый сигнал |
| Входы | TC | TIME | Период |
| Выходы | Q0 | BOOL | Флаг «импульсов не было» |
| Выходы | Q1 | BOOL | Флаг «был один импульс» |
| Выходы | Q2 | BOOL | Флаг «было два импульса» |
| Выходы | Q3 | BOOL | Флаг «было три импульса» |

Функциональный блок **CLICK_DEC** генерирует единичный импульс на одном из выходов блока, если логический сигнал **IN** в течение заданного времени **TC** получает соответствующее количество импульсов по заднему фронту (см. таблицу ниже). Генерация единичного импульса на выходе осуществляется по истечении времени **TC**. Работа блока (отсчет времени) начинается по импульсу переднего фронта на входе **IN**.

| Число импульсов по заднему фронту за время TC | Единичный импульс на выходе: |
| --- | --- |
| 0 | Q0 |
| 1 | Q1 |
| 2 | Q2 |
| 3 | Q3 |
| >3 | - |

![CLICK DEC](https://docs.owen.ru/book_img/2417/164876.png)

<i>Трассировка работы ФБ **CLICK_DEC**</i>

<a id="topic-125099"></a>

### CLK_DIV

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | clk | BOOL | Исходный сигнал |
| Входы | rst | BOOL | Сброс выходов |
| Выходы | Q0…Q7 | BOOL | Модулированный сигнал с частотой 1/2, 1/4...1/256 от исходного |

Функциональный блок **CLK_DIV** модулирует единичные импульсы, поступающие на вход **clk**, уменьшая их частоту в 1/2, 1/4...1/256 раз и подает обработанные сигналы на выходы **Q0…Q7**. Вход **rst** используется для обнуления выходов блока. Обратите внимание, что на вход **clk** должны подаваться только единичные импульсы; если исходный сигнал не является таковым, то можно обработать его с помощью ФБ [TP_X](#topic-125118).

![CLK DIV](https://docs.owen.ru/book_img/2417/164875.png)

<i>Трассировка работы ФБ **CLK_DIV**</i>

<a id="topic-125100"></a>

### CLK_N

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | N | INT | Период между импульсами |
| Выходы | Q | BOOL | Выходной сигнал |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **CLK_N** генерирует единичные импульсы с периодом 2<sup>N</sup>мс. На рисунке ниже приведена трассировка работы блока в случае:

- N=3 (период между импульсами – 8 мс);
- N=4 (период между импульсами – 16 мс);
- N=5 (период между импульсами – 32 мс);
- N=6 (период между импульсами – 64 мс).

Время цикла ПЛК – 1 мс. По очевидным причинам период между импульсами не может быть меньше реального цикла ПЛК.

![CLK N](https://docs.owen.ru/book_img/2417/164874.png)

<i>Трассировка работы ФБ **CLK_N**</i>

<a id="topic-125101"></a>

### CLK_PRG

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT | TIME | Период между импульсами |
| Выходы | Q | BOOL | Выходной сигнал |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **CLK_PRG** генерирует единичные импульсы с периодом **PT**. По очевидным причинам период между импульсами не может быть меньше реального цикла ПЛК.

![CLK PRG](https://docs.owen.ru/book_img/2417/164873.png)

<i>Трассировка работы ФБ **CLK_PRG**</i>

<a id="topic-125102"></a>

### CLK_PULSE

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT | TIME | Период между импульсами |
| Входы | N | INT | Кол-во импульсов за рабочий цикл |
| Входы | rst | BOOL | Сигнал запуска блока |
| Выходы | Q | BOOL | Выходной сигнал |
| Выходы | cnt | INT | Кол-во сгенерированных импульсов |
| Выходы | run | BOOL | Флаг «блок в работе» |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **CLK_PULSE** генерирует **N** единичных импульсов с заданным периодом **PT**. Импульс по переднему фронту на входе **rst** запускает блок в работу. На выходе **cnt** отображается текущее число сгенерированных импульсов. Выход **run** имеет значение **TRUE**, пока работа блока не завершена. После завершение работы блока выход **run** принимает значение **FALSE**. По очевидным причинам период между импульсами не может быть меньше реального цикла ПЛК. Ниже приведена трассировка ФБ для **PT=T#1s** и **N=5**:

![CLK PULSE](https://docs.owen.ru/book_img/2417/164872.png)

<i>Трассировка работы ФБ **CLK_PULSE**</i>

<a id="topic-125103"></a>

### CYCLE_4

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | E | BOOL | Вход управления блоком |
| Входы | T0 | TIME | Время в состоянии 0 |
| Входы | T1 | TIME | Время в состоянии 1 |
| Входы | T2 | TIME | Время в состоянии 2 |
| Входы | T3 | TIME | Время в состоянии 3 |
| Входы | S0 | BOOL | Режим работы блока |
| Входы | SX | INT | Номер состояния сброса |
| Входы | SL | BOOL | Сброс в состояние SX |
| Выходы | STATE | INT | Номер текущего состояния |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **CYCLE_4** является переключателем для четырех состояний (0-3). Если вход **E= TRUE**, то блок находится в работе, и на выход **STATE** подаются номера состояний (0-3), причем время, проводимое в каждом из состояний, задается переменными **T0… T3**. Вход **S0** определяет режим работы блока:

- Если **S0=TRUE**, то переключение состояний происходит циклически, пока **E=TRUE**.
- Если **S0=FALSE**, то происходит однократное переключение всех состояний, и по достижению состояния 3 блок прекращает работу.

По переднему фронту на входе **SL** происходит переход в состояние с номером **SX**, после чего автоматически начинается очередная смена состояний.

Если **E=FALSE**, то блок прекращает работу и переходит в состояние 0.

На рисунке ниже приведена трассировка работы блока для S0=TRUE, T0=1мс, T1=2мс, T3=4мс, T3=2мс:

![CYCLE 4](https://docs.owen.ru/book_img/2417/164871.png)

<i>Трассировка работы ФБ **CYCLE_4**</i>

<a id="topic-125104"></a>

### D_TRIG

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT | DWORD | Контролируемое значение |
| Выходы | Q | BOOL | Флаг «значение изменилось» |
| Выходы | X | DWORD | Разность между текущим и предыдущим значением |

Функциональный блок **D_TRIG** генерирует единичный импульс при изменении входного значения **in**. На выход **X** подается разность между значениями **in** текущего и предыдущего цикла. На рисунке ниже приведен пример работы с блоком. Начальное значение **in** – **0**, далее оно изменяется до **12**, после чего – до **6**.

Поскольку выход **X** имеет тип **DWORD**, а значение **in** может уменьшиться по сравнению с предыдущим циклом (т.е. разность будет отрицательной), то необходимо преобразовать его с помощью стандартного оператора **DWORD_TO_DINT**.

<a id="topic-125105"></a>

### GEN_BIT

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in0…in3 | DWORD | Генерируемые последовательности бит |
| Входы | clk | BOOL | Вход управления блоком |
| Входы | steps | INT | Кол-во используемых бит последовательностей |
| Входы | rep | INT | Число повторений последовательностей |
| Входы | rst | BOOL | Вход сброса блока |
| Выходы | Q0…Q3 | BOOL | Выходы генератора |
| Выходы | cnt | INT | Номер текущего бита последовательностей |
| Выходы | run | BOOL | Флаг «блок в работе» |

Функциональный блок **GEN_BIT** используется для генерации битовых последовательностей на выходах **Q0… Q3** по заданным паттернам **in0… in3**. Если вход **clk=TRUE**, то блок находится в работе, и на выходы **Q0… Q3** каждый цикл ПЛК последовательно подаются значения бит входов **in0… in3** (от младшего бита **DWORD** к старшему). Вход **steps** определяет число используемых бит из паттернов **in0… in3**. Вход **rep** определяет число повторов битовых последовательностей на выходе; если **rep=0**, то последовательность повторяется циклически. На выход **cnt** поступает номер битов паттернов, в данный момент поданных на выход. Выход **run** имеет значение **TRUE**, пока работа блока не завершена. Импульс по переднему фронту на входе **rst** обнуляет все выходы блока.

На рисунке ниже приведен пример работы с блоком и его трассировка для ПЛК с циклом= 1 с.

В t=11 с на вход **xEnable** было подано значение **TRUE**, после чего блок два раза подряд (**rep=2**) сгенерировал последовательность размером 8 бит (**steps=8**), созданную на основе паттерна **in0** (2#0000_1111).

![GEN BIT](https://docs.owen.ru/book_img/2417/164870.png)

<i>Трассировка работы ФБ **GEN_BIT**</i>

<a id="topic-125106"></a>

### GEN_SQ

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT | TIME | Период между импульсами |
| Выходы | Q | BOOL | Выход генератора |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **GEN_SQ** с заданным периодом **PT** генерирует импульсы длиной **0.5 PT** (соответственно, пауза между импульсами также составляет 0.5 PT).

![GEN SQ](https://docs.owen.ru/book_img/2417/164869.png)

<i>Трассировка работы ФБ **GEN_SQ**</i>

<a id="topic-125107"></a>

### SCHEDULER

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | E0…E3 | BOOL | Вход управления каналом генератора |
| Выходы | Q0…Q3 | BOOL | Выход канала генератора |
| Параметры | T0…T3 | TIME | Время между импульсами |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **SCHEDULER** представляй собой четырехканальный генератор единичных импульсов. Если один из входов **E** принимает значение **TRUE**, то на соответствующем выходе **Q** начинают генерироваться единичные импульсы с периодом **T**. В каждом цикле ПЛК импульс генерируется только в одном из каналов.

На рисунке ниже приведена трассировка работы блока для T0=1мс, T1=2мс, T2=3мс, T3=4мс.

![SCHEDULER](https://docs.owen.ru/book_img/2417/164868.png)

<i>Трассировка работы ФБ **SCHEDULER**</i>

<a id="topic-125108"></a>

### SCHEDULER_2

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | E0…E3 | BOOL | Вход управления каналом генератора |
| Выходы | Q0…Q3 | BOOL | Выход канала генератора |
| Параметры | С0…С3 | UINT | Кол-во циклов между импульсами |
| Параметры | O0…O3 | UINT | Кол-во циклов начальной задержки |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **SCHEDULER_2** представляй собой четырехканальный генератор единичных импульсов. Если один из входов **E** принимает значение **TRUE**, то на соответствующем выходе **Q** начинают генерироваться единичные импульсы, пауза между которыми составляет **C** циклов ПЛК. Параметр **O** позволяет настроить задержку (в циклах ПЛК) перед первым импульсом.

На рисунке ниже приведена трассировка работы блока для ПЛК с циклом 100 мс со следующими значениями параметров: C0=10, C1=20, C2=30, C3=40, O0=O1=5, O2=O3=20. Все каналы генератора были запущены в работу одновременно.

![SCHEDULER 2](https://docs.owen.ru/book_img/2417/164897.png)

<i>Трассировка работы ФБ **SCHEDULER_2**</i>

<a id="topic-125109"></a>

### SEQUENCE_4

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in0…in3 | BOOL | Контролируемый сигнал |
| Входы | start | BOOL | Вход управления блоком |
| Входы | rst | BOOL | Вход сброса блока |
| Входы | wait0…wait3 | TIME | Время ожидания сигнала |
| Входы | delay0…delay3 | TIME | Задержка |
| Выходы | Q0…Q3 | BOOL | Выход секвенсора |
| Выходы | QX | BOOL | Флаг «один из выходов активен» |
| Выходы | run | BOOL | Флаг «блок в работе». |
| Выходы | step | INT | Номер обрабатываемого канала |
| Выходы | status | BYTE | Код ошибки/сообщения |
| Параметры | stop_on_error | BOOL | Режим обработки ошибок |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **SEQUENCE_4** представляет собой четырехбитный секвенсор. Блок запускается в работу импульсом по переднему фронту на входе **start** и в течение времени **wait0** ожидает сигнала **TRUE** на входе **in0**. Когда **in0** принимает значение **TRUE**, выход **Q0** устанавливается в **TRUE** и блок делает задержку на время **delay0**, после чего переходит к ожиданию сигнала **TRUE** на входе **in1** в течение времени **wait1** и т.д. После задержки **delay3** блок прекращает работу. Вход **rst** используется для сброса выходных переменных блока (по переднему фронту). Выход **QX** принимает значение **TRUE**, если хотя бы один из выходов **Q0…Q3** имеет значение **TRUE**. Выход **run** принимает значение **TRUE**, если блок находится в работе. Выход **step** сигнализирует о номере текущего обрабатываемого входа (**-1** – блок не в работе, **0** – in0, …, **3** – in3).

Выход **status** возвращает код ошибки:

|   |   |
| --- | --- |
| Код ошибки | Описание |
| 1 | Вход in0 не стал активным в течение времени wait0 |
| 2 | Вход in1 не стал активным в течение времени wait1 |
| 3 | Вход in2 не стал активным в течение времени wait2 |
| 4 | Вход in3 не стал активным в течение времени wait3 |
| 110 | Блок не запущен |
| 111 | Блок в работе |

Параметр **stop_on_error** определяет поведение блока при возникновении ошибок с кодом 1-4: **FALSE** – блок продолжает работу, **TRUE** – блок прекращает работу.

На рисунке ниже приведена трассировка работы блока в случае, когда **delay0=delay2=10 мс**, **delay1=delay3=20 мс**. На входы **in0… in3** не заведены переменные – и по умолчанию они имеют значения **TRUE**. Из-за этого времена **wait0…wait3** не обрабатываются блоком (т.к. сигнал изначально =**TRUE**, то время ожидания =**0**). Иными словами, в данном случае выходы **Q0…Q3** последовательно принимают значение **TRUE** на время **delay0…delay3**.

![SEQUENCE 4](https://docs.owen.ru/book_img/2417/164896.png)

<i>Трассировка работы ФБ **SEQUENCE_4**</i>

<a id="topic-125110"></a>

### SEQUENCE_8

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in0…in7 | BOOL | Контролируемый сигнал |
| Входы | Start | BOOL | Вход управления блоком |
| Входы | rst | BOOL | Вход сброса блока |
| Входы | wait0…wait7 | TIME | Время ожидания сигнала |
| Входы | delay0…delay7 | TIME | Задержка |
| Выходы | Q0…Q7 | BOOL | Выход секвенсора |
| Выходы | QX | BOOL | Флаг «один из выходов активен» |
| Выходы | run | BOOL | Флаг «блок в работе» |
| Выходы | step | INT | Номер обрабатываемого канала |
| Выходы | status | BYTE | Код ошибки/сообщения |
| Параметры | stop_on_error | BOOL | Режим обработки ошибок |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **SEQUENCE_8** представляет собой восьмибитный секвенсор. Принцип работы полностью соответствует [SEQUENCE_4](#topic-125109).

<a id="topic-125111"></a>

### SEQUENCE_64

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | START | BOOL | Вход управления блоком |
| Входы | SMAX | INT | Кол-во состояний последовательности |
| Входы | PROG | ARRAY \[0..63\] OF TIME | Периоды состояний последовательности |
| Входы | RST | BOOL | Вход сброса блока |
| Выходы | STATE | INT | Выход секвенсора |
| Выходы | TRIG | BOOL | Сигнал смены состояний |
| Используемые модули | [T_PLC_MS](#topic-125261), [INC2](#topic-124840) | [T_PLC_MS](#topic-125261), [INC2](#topic-124840) | [T_PLC_MS](#topic-125261), [INC2](#topic-124840) |

Функциональный блок **SEQUENCE_64** представляет собой 64-х битный секвенсор. Пока блок не запущен, выход **STATE = -1**. Блок запускается в работу импульсом по переднему фронту на входе **START**, после чего выход **STATE** имеет значение **0** в течение времени **PROG\[0\],** затем **1** в течение времени **PROG\[1\]** и т.д. вплоть до **STATE=(SMAX-1)** в течение времени **PROG\[SMAX-1\],** после чего **STATE** снова принимает значение **-1** и блок прекращает работу. Вход **RST** используется для принудительного прекращения работы блока. На выходе **TRIG** генерируется единичный импульс при каждом изменении выхода **STATE**.

<a id="topic-125112"></a>

### TMAX

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Вход таймера |
| Входы | PT | TIME | Максимальное время работы |
| Выходы | Q | BOOL | Выход таймера |
| Выходы | Z | BOOL | Флаг «завершение работы» |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **TMAX** представляет собой таймер с ограничением на максимальное время включения. Пока вход **IN** имеет значение **TRUE**, таймер находится в работе и выход **Q** имеет значение **TRUE**. По истечении времени **PT** выход **Q** принимает значение **FALSE**, а на выходе **Z** генерируется единичный импульс. Если вход **IN** принимает значение **FALSE** до истечения времени **PT**, то таймер прекращает работу и обнуляет выходы.

![TMAX](https://docs.owen.ru/book_img/2417/164895.png)

<i>Трассировка работы ФБ **TMAX**</i>

<a id="topic-125113"></a>

### TMIN

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Вход таймера |
| Входы | PT | TIME | Минимальное время работы |
| Выходы | Q | BOOL | Выход таймера |

Функциональный блок **TMIN** представляет собой таймер с ограничением на минимальное время включения. Пока вход **IN** имеет значение **TRUE**, таймер находится в работе и выход **Q** имеет значение **TRUE**. Если вход **IN** принимает значение **FALSE** до истечения времени **PT**, то по истечении времени **PT** выход **Q** принимает значение **FALSE**. Если вход **IN** принимает значение **FALSE** после истечения времени **PT**, то выход **Q** сразу принимает значение **FALSE**.

![TMIN](https://docs.owen.ru/book_img/2417/164894.png)

<i>Трассировка работы ФБ **TMIN**</i>

<a id="topic-125114"></a>

### TOF_1

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Вход таймера |
| Входы | PT | TIME | Время работы |
| Входы | RST | BOOL | Сброс таймера |
| Выходы | Q | BOOL | Выход таймера |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **TOF1** представляет собой таймер с задержкой отключения. Блок запускается в работу по переднему фронту на входе **IN**, после чего выход **Q** принимает значение **TRUE**. По истечении времени **PT** выход **Q** принимает значение **FALSE**. По переднему фронту на входе **RST** блок прекращает работу и обнуляет выход.

Как можно заметить, в отличие от таймера **TOF** из библиотеки **Standard**, данный ФБ запускается по фронту (а не по уровню) и имеет дополнительный вход для сброса.

![TOF 1](https://docs.owen.ru/book_img/2417/164893.png)

<i>Трассировка работы ФБ **TOF1**</i>

<a id="topic-125115"></a>

### TONOF

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Вход таймера |
| Входы | T_ON | TIME | Задержка включения |
| Входы | T_OFF | TIME | Задержка отключения |
| Выходы | Q | BOOL | Выход таймера |

Функциональный блок **TONOF** представляет собой таймер с настраиваемыми задержками включения и отключения. Если вход **IN** принимает значение **TRUE**, то блок начинает работу. Спустя время **T_ON** выход **Q** принимает значение **TRUE**. Если вход **IN** принимает значение **FALSE**, то спустя время **T_OFF** выход **Q** принимает значение **FALSE**.

![TONOF](https://docs.owen.ru/book_img/2417/164892.png)

*Трассировка работы ФБ **TONOF** (T_ON=T#5s, T_OFF=T#10s)*

<a id="topic-125116"></a>

### TP_1

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Вход таймера |
| Входы | PT | TIME | Время импульса |
| Входы | RST | BOOL | Сброс таймера |
| Выходы | Q | BOOL | Выход таймера |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **TP_1** представляет собой таймер. Блок запускается в работу по переднему фронту на входе **IN**, после чего выход **Q** принимает значение **TRUE**. Каждый импульс по переднему фронту на входе **IN** обнуляет счетчик таймера. По истечении времени **PT** выход **Q** принимает значение **FALSE**. По переднему фронту на входе **RST** блок прекращает работу и обнуляет выход.

Как можно заметить, в отличие от таймера **TP** из библиотеки **Standard**, данный ФБ перезапускается после каждого импульса на входе **IN** (в свою очередь **TP** детектирует первый импульс и отрабатывает в независимости от состояния **IN**, после чего может детектировать следующий импульс).

![TP 1](https://docs.owen.ru/book_img/2417/164891.png)

<i>Трассировка работы ФБ **TP_1**</i>

<a id="topic-125117"></a>

### TP_1D

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Вход таймера |
| Входы | PT1 | TIME | Время импульса |
| Входы | PTD1 | TIME | Время задержки |
| Входы | RST | BOOL | Сброс таймера |
| Выходы | Q | BOOL | Выход таймера |
| Выходы | W | BOOL | Флаг «задержка» |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **TP_1D** представляет собой таймер с задержкой. Блок запускается в работу по переднему фронту на входе **IN**, после чего выход **Q** принимает значение **TRUE**. Каждый импульс по переднему фронту на входе **IN** обнуляет счетчик таймера. По истечении времени **PT1** выход **Q** принимает значение **FALSE**. После этого выход **W** принимает значение **TRUE** и таймер делает задержку на время **PTD1**, во время которой не детектирует импульсы на входе **IN**. По переднему фронту на входе **RST** блок прекращает работу и обнуляет выход.

![TP 1D](https://docs.owen.ru/book_img/2417/164890.png)

<i>Трассировка работы ФБ **TP_1D**</i>

<a id="topic-125118"></a>

### TP_X

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Вход таймера |
| Входы | PT | TIME | Время импульса |
| Выходы | Q | BOOL | Выход таймера |
| Выходы | ET | TIME | Текущее время таймера |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **TP_X** представляет собой таймер. Блок запускается в работу по переднему фронту на входе **IN**, после чего выход **Q** принимает значение **TRUE**. Каждый импульс по переднему фронту на входе **IN** обнуляет счетчик таймера. По истечении времени **PT** выход **Q** принимает значение **FALSE**. На выходе **ET** отображается текущее время таймера.

Как можно заметить, в отличие от таймера **TP** из библиотеки **Standard**, данный ФБ перезапускается после каждого импульса на входе **IN** (в свою очередь **TP** детектирует первый импульс и отрабатывает в независимости от состояния **IN**, после чего может детектировать следующий импульс).

Как можно заметить, в отличие от таймера **TP** из библиотеки **Standard**, данный ФБ перезапускается после каждого импульса на входе **IN** (в свою очередь **TP** детектирует первый импульс и отрабатывает в независимости от состояния **IN**, после чего может детектировать следующий импульс).

![TP 1](https://docs.owen.ru/book_img/2417/164891.png)

<i>Трассировка работы ФБ **TP_X**</i>

<a id="topic-125119"></a>

## Логические модули

<a id="topic-125120"></a>

### BCDC_TO_INT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | Двухзначное число в формате BCD |
| Выходы | BCDC_TO_INT | INT | Двухзначное число в формате DEC |

Функция **BCDC_TO_INT** конвертирует двухзначное число из двоично-десятичного формата в десятичный. См. также обратную функцию [INT_TO_BCDC](#topic-125146).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bcdInput<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2#01000010<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>decOutput<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>decOutput<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BCDC_TO_INT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>bcdInput<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>// результат 42<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125121"></a>

### BIT_COUNT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | DWORD | Строка бит |
| Выходы | BIT_COUNT | INT | Число бит со значением TRUE |

Функция **BIT_COUNT** возвращает число бит со значением **TRUE** в переменной **IN** типа **DWORD**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVal<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2#0011_0001<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BIT_COUNT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>InputVal<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>// результат 3<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125122"></a>

### BIT_LOAD_B

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | Строка бит |
| Входы | VAL | BOOL | Значение бита |
| Входы | POS | INT | Номер бита (0…7) |
| Выходы | BIT_LOAD_B | BYTE | Строка бит с записанным битом |

Функция **BIT_LOAD_B** устанавливает бит номер **POS** переменной **IN** типа **BYTE** в значение **VAL**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVal<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2#0011_0001<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>NewVal<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>PosVal<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BIT_LOAD_B<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(IN<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#DCDCDC"?>InputVal, VAL<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>NewVal, POS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>PosVal)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?> 
<?Pub _font FontColor="#5DA35B"?>// результат 2#00110011<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125123"></a>

### BIT_LOAD_B2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | I | BYTE | Строка бит |
| Входы | D | BOOL | Значение бита |
| Входы | P | INT | Номер начального бита для записи (0…7) |
| Входы | N | INT | Число записываемых бит |
| Выходы | BIT_LOAD_B2 | BYTE | Строка бит с записанными битами |

Функция **BIT_LOAD_B2** устанавливает **N** бит переменной **I** типа **BYTE**, начиная с **P**-го, в значение **D**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVal<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2#0011_0001<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>NewVal<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>PosVal<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>AmVal<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BIT_LOAD_B2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(I<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#DCDCDC"?>InputVal, D<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>NewVal, P<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>PosVal, N<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>AmVal);<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// результат 2#00111111<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125124"></a>

### BIT_LOAD_DW

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | DWORD | Строка бит |
| Входы | VAL | BOOL | Значение бита |
| Входы | POS | INT | Номер бита (0…31) |
| Выходы | BIT_LOAD_DW | DWORD | Строка бит с записанным битом |

Функция **BIT_LOAD_DW** устанавливает бит номер **POS** переменной **IN** типа **DWORD** в значение **VAL**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVal<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2#0000_0000_0000_0000_0000_0000_0000_0000<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>NewVal<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>PosVal<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>   <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.BIT_LOAD_DW<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>InputVal,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>VAL<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>NewVal,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>POS<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>PosVal<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* результат 2#00000000000000000000000000000100*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125125"></a>

### BIT_LOAD_DW2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | I | DWORD | Строка бит |
| Входы | D | BOOL | Значение бита |
| Входы | P | INT | Номер начального бита для записи (0…31) |
| Входы | N | INT | Число записываемых бит |
| Выходы | BIT_LOAD_DW2 | DWORD | Строка бит с записанными битами |

Функция **BIT_LOAD_DW2** устанавливает **N** бит переменной **I** типа **DWORD**, начиная с **P**-го, в значение **D**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVal<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2#0000_0000_0000_0000_0000_0000_0000_0000<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>NewVal<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>PosVal<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>AmVal<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BIT_LOAD_DW2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(I<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#DCDCDC"?>InputVal, 
                     D<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>NewVal, P<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#E1E1E1"?>PosVal, N<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>AmVal);<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* результат 2#00000000000000000000000000001110 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125126"></a>

### BIT_LOAD_W

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | WORD | Строка бит |
| Входы | VAL | BOOL | Значение бита |
| Входы | POS | INT | Номер бита (0…15) |
| Выходы | BIT_LOAD_W | WORD | Строка бит с записанным битом |

Функция **BIT_LOAD_W** устанавливает бит номер **POS** переменной **IN** типа **WORD** в значение **VAL**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVal<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>WORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2#0000_0000_0000_0000<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>NewVal<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?>  <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>PosVal<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?>   <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>WORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.BIT_LOAD_W<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font
FontColor="#DCDCDC"?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>InputVal,<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>VAL<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>NewVal,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>POS<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>PosVal<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>(* результат 2#0000000000000100*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125127"></a>

### BIT_LOAD_W2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | I | WORD | Строка бит |
| Входы | D | BOOL | Значение бита |
| Входы | P | INT | Номер начального бита для записи (0…15) |
| Входы | N | INT | Число записываемых бит |
| Выходы | BIT_LOAD_W2 | WORD | Строка бит с записанными битами |

Функция **BIT_LOAD_W2** устанавливает **N** бит переменной **I** типа **WORD**, начиная с **P**-го, в значение **D**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVal<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>WORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2#0000_0000_0000_0000<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>NewVal<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>PosVal<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>AmVal<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>WORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BIT_LOAD_W2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(I<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#DCDCDC"?>InputVal, 
                     D<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>NewVal, P<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#E1E1E1"?>PosVal, N<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>AmVal);<?Pub /_font?> 
<?Pub _font FontColor="#5DA35B"?>// результат 2#0000000000001110<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125128"></a>

### BIT_OF_DWORD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | DWORD | Строка бит |
| Входы | N | INT | Номер бита (0…31) |
| Выходы | BIT_OF_DWORD | BOOL | Значение бита |

Функция **BIT_OF_DWORD** возвращает значение бита номер **N** переменной **in**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVal<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2#0000_1111_0000_1100_0011_1001_1111_0000<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>NumberVal<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
     <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BIT_OF_DWORD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(in<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#DCDCDC"?>InputVal, N<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#E1E1E1"?>NumberVal)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>// результат TRUE<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125129"></a>

### BIT_TOGGLE_B

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | Строка бит |
| Входы | POS | INT | Номер бита (0…7) |
| Выходы | BIT_TOGGLE_B | BYTE | Строка бит с инвертированным битом |

Функция **BIT_TOGGLE_B** инвертирует бит номер **POS** переменной **in**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVal<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2#111_0000<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>PosVal<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BIT_TOGGLE_B<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(IN<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#DCDCDC"?>InputVal,<?Pub /_font
?>  <?Pub _font FontColor="#DCDCDC"?>POS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>PosVal)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?> 
<?Pub _font FontColor="#5DA35B"?>// результат 2#11111000<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125130"></a>

### BIT_TOGGLE_DW

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | DWORD | Строка бит |
| Входы | POS | INT | Номер бита (0…31) |
| Выходы | BIT_TOGGLE_DW | DWORD | Строка бит с инвертированным битом |

Функция **BIT_TOGGLE_DW** инвертирует бит номер **POS** переменной **in**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVal<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2#0000_0000_0000_0000_0000_0000_1111_0000<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>PosVal<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BIT_TOGGLE_DW<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(IN<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#DCDCDC"?>InputVal,<?Pub /_font
?>  <?Pub _font FontColor="#DCDCDC"?>POS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>PosVal)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?> 
<?Pub _font FontColor="#5DA35B"?>// результат 2#00000000000000000000000011111000<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125131"></a>

### BIT_TOGGLE_W

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | WORD | Строка бит |
| Входы | POS | INT | Номер бита (0…15) |
| Выходы | BIT_TOGGLE_W | WORD | Строка бит с инвертированным битом |

Функция **BIT_TOGGLE_W** инвертирует бит номер **POS** переменной **in**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVal<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>WORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2#0000_0000_1111_0000<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>PosVal<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>WORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BIT_TOGGLE_W<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(IN<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?><?Pub _font FontColor="#DCDCDC"?>InputVal,<?Pub /_font
?>  <?Pub _font FontColor="#DCDCDC"?>POS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>PosVal)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?> 
<?Pub _font FontColor="#5DA35B"?>// результат 2#0000000011111000<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125132"></a>

### BYTE_OF_BIT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | B0…B7 | BOOL | Отдельные биты (B0 – младший) |
| Выходы | BYTE_OF_BIT | BYTE | Байт, собранный из отдельных бит |

Функция **BYTE_OF_BIT** собирает 8 **BOOL** переменных в переменную типа **BYTE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bit0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>// младший бит<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bit1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bit2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bit3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bit4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bit5<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bit6<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bit7<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>// старший бит<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>resultByte<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>resultByte<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BYTE_OF_BIT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?> 
           <?Pub _font FontColor="#DCDCDC"?>B0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>bit0,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>B1<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>bit1,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>B2<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>bit2,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>B3<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>bit3,<?Pub /_font
?> 
           <?Pub _font FontColor="#DCDCDC"?>B4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>bit4,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>B5<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>bit5,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>B6<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>bit6,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>B7<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>bit7<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// результат 10010101 (старший бит слева)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125133"></a>

### BYTE_OF_DWORD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | DWORD | Исходная переменная |
| Входы | N | BYTE | Номер считываемого байта (0…3) |
| Выходы | BYTE_OF_DWORD | BYTE | Выделенный байт |

Функция **BYTE_OF_DWORD** свыделяет из переменной **in** типа **DWORD** байт с номер **N**. См. также обратную функцию [DWORD_OF_BYTE](#topic-125143).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#AABBCCDD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>NumberVar<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>resultByte<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>resultByte<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BYTE_OF_DWORD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>InputVar, N<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>NumberVar);<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// результат 16#CC<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125134"></a>

### BYTE_TO_BITS

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | BYTE | Исходная переменная |
| Выходы | B0...B7 | BOOL | Выделенные биты (B0 – младший) |

ФБ **BYTE_TO_BITS** извлекает отдельные биты из переменной **in** типа **BYTE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>inputByte<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#95<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                  <?Pub _font
FontColor="#5DA35B"?>// 2#1001_0101<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ByteToBitsInst<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>BYTE_TO_BITS<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>// экземпляр ФБ<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bit0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>bit1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#988DF7"?>bit2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>bit3<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:<?Pub /_font
?> <?Pub _font FontColor="#DBB740"?>BOOL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>              <?Pub _font
FontColor="#5DA35B"?>// выходные биты<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bit4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>bit5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font
?> <?Pub _font FontColor="#988DF7"?>bit6<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>bit7<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:<?Pub /_font
?> <?Pub _font FontColor="#DBB740"?>BOOL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>              <?Pub _font
FontColor="#5DA35B"?>// выходные биты<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#19A3B5"?>ByteToBitsInst<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>in<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>inputByte<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font
?> 
    <?Pub _font FontColor="#DCDCDC"?>B0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>=&gt;<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>bit0,<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"?>// bit0 = TRUE<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>B1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>=&gt;<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>bit1,<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"?>// bit1 = FALSE<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>B2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>=&gt;<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>bit2,<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"?>// bit2 = TRUE <?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>B3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>=&gt;<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>bit3,<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"?>// bit3 = FALSE<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>B4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>=&gt;<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>bit4,<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"?>// bit4 = TRUE<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>B5<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>=&gt;<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>bit5,<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"?>// bit5 = FALSE    <?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>B6<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>=&gt;<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>bit6,<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"?>// bit6 = FALSE<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>B7<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>=&gt;<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>bit7<?Pub /_font?>      <?Pub _font FontColor="#5DA35B"?>// bit7 = TRUE<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125135"></a>

### BYTE_TO_GRAY

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | BYTE | Число в двоичном коде |
| Выходы | BYTE_TO_GRAY | BYTE | Число в коде Грея |

Функция **BYTE_TO_GRAY** преобразует число в двоичном коде **in** в число в коде Грея. См. также обратную функцию [GRAY_TO_BYTE](#topic-125145).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVal<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2#0001_0110<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BYTE_TO_GRAY<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>InputVal<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>// результат 2#0001_1101<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125136"></a>

### CHECK_PARITY

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | DWORD | Проверяемая переменная |
| Входы | p | BOOL | Бит четности |
| Выходы | CHECK_PARITY | BOOL | Результат проверки |

Функция **CHECK_PARITY** проверяет переменную **in** типа **DWORD** с битом четности **p** на четность и возвращает **TRUE** в случае, есть общее число битов со значением **TRUE** (включая значение бита четности) является четным числом. См. также функцию [PARITY](#topic-125150).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#1110_0000<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>ParityVar<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CHECK_PARITY<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(in<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>InputVar, p<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#E1E1E1"?>ParityVar)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>// результат TRUE<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125137"></a>

### CHK_REAL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Проверяемое число с плавающей точкой |
| Выходы | CHK_REAL | BYTE | Код состояния числа |

Функция **CHK_REAL** проверяет состояние числа с плавающей точкой **X** и возвращает код состояния согласно стандарту IEEE 754-2008:

- 16#00 – число с плавающей точкой;

- 16#20 – +∞;

- 16#40 – −∞;

- 16#80 – NaN\*.

  \* — не число.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVal<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>11.22<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CHK_REAL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>InputVal<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>// результат 16#00<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125138"></a>

### CRC_GEN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT | POINTER TO ARRAY \[0..32000\] OF BYTE | Пакет данных, для которого будет сгенерирована контрольная сумма |
| Входы | SIZE | INT | Размер пакета данных (в байтах) |
| Входы | PL | INT | Степень порождающего полинома |
| Входы | PN | DWORD | Порождающий полином |
| Входы | INIT | DWORD | Стартовые данные |
| Входы | REV_IN | BOOL | Направление вычислений |
| Входы | REV_OUT | BOOL | Инверсия порядка битов |
| Входы | XOR_OUT | DWORD | Значение для XOR |
| Выходы | CRG_GEN | DWORD | Сгенерированная контрольная сумма |
| Используемые модули | [REVERSE](#topic-125153), [REFLECT](#topic-125152) | [REVERSE](#topic-125153), [REFLECT](#topic-125152) | [REVERSE](#topic-125153), [REFLECT](#topic-125152) |

Функция **CRC_GEN** генерирует контрольную сумму (по алгоритму CRC) для пакета данных размером **SIZE** байт, расположенных по указателю **PT**. В большинстве случаев при вызове функции используются операторы **ADR()** и **SIZEOF()** – первый возвращает указатель на заданную переменную (массив байт), а второй – ее размер в байтах.

Входная переменная **PN** определяет производящий полином для функции, **PL** – его степень. Максимально допустимая степень полинома, используемого в функции – **32**. Вход **INIT** определяет стартовые данные для генерации (обычно **0x0000** или **0xFFFF**). Вход **REV_IN** определяет порядок вычислений: **FALSE** – со старшего значащего бита, **TRUE** – с младшего. Вход **REV_OUT** определяет порядок бит при входе на элемент **XOR**: **FALSE** – прямой, **TRUE** – инвертированный. Вход **XOR_OUT** определяет число, которое используется при операции **XOR**.

Функция способна работать с пакетами данных с длиной **не менее 4 байта**.

Ниже приведены значения входов функции для некоторых алгоритмов **CRC**. Более подробная информация может быть найдена в сети. Приведем несколько полезных ссылок:

[**http://reveng.sourceforge.net/crc-catalogue/**](http://reveng.sourceforge.net/crc-catalogue/) (каталог алгоритмов CRC)

[**http://zorc.breitbandkatze.de/crc.html**](http://zorc.breitbandkatze.de/crc.html) (онлайн-генератор контрольных сумм)

[**http://www.tahapaksu.com/crc/**](http://www.tahapaksu.com/crc/) (еще один онлайн-генератор, удобен при работе с Modbus)

**Таблица аргументов функции **CRC_GEN** для некоторых алгоритмов CRC**

| CRC | PL (DEC) | PN (HEX) | INIT (HEX) | REV_IN | REV_OUT | XOR_OUT (HEX) |
| --- | --- | --- | --- | --- | --- | --- |
| CRC-3/ROHC | 3 | 0x3 | 0x7 | TRUE | TRUE | 0x0 |
| CRC-4/ITU | 4 | 0x3 | 0x0 | TRUE | TRUE | 0x0 |
| CRC5/EPC | 5 | 0x9 | 0x9 | FALSE | FALSE | 0x0 |
| CRC-5/ITU | 5 | 0x15 | 0x0 | TRUE | TRUE | 0x0 |
| CRC-5/USB | 5 | 0x5 | 0x1F | TRUE | TRUE | 0x1F |
| CRC-6/DARC | 6 | 0x19 | 0x0 | TRUE | FALSE | 0x0 |
| CRC-6/ITU | 6 | 0x3 | 0x0 | TRUE | TRUE | 0x0 |
| CRC-7 | 7 | 0x9 | 0x0 | FALSE | FALSE | 0x0 |
| CRC-7/ROHC | 7 | 0x4F | 0x7F | TRUE | TRUE | 0x0 |
| CRC-8 | 8 | 0x7 | 0x0 | FALSE | FALSE | 0x0 |
| CRC-8/DARC | 8 | 0x39 | 0x0 | TRUE | TRUE | 0x0 |
| CRC-8/I-CODE | 8 | 0x1D | 0xFD | FALSE | FALSE | 0x0 |
| CRC-8/ITU | 8 | 0x7 | 0x0 | FALSE | FALSE | 0x55 |
| CRC-8/MAXIM | 8 | 0x31 | 0x0 | TRUE | TRUE | 0x0 |
| CRC-8/ROHC | 8 | 0x7 | 0xFF | TRUE | TRUE | 0x0 |
| CRC-8/WCDNA | 8 | 0x9B | 0x0 | TRUE | TRUE | 0x0 |
| CRC-10 | 10 | 0x233 | 0x0 | FALSE | FALSE | 0x0 |
| CRC-11 | 11 | 0x385 | 0x1A | FALSE | FALSE | 0x0 |
| CRC-12/3GPP | 12 | 0x80F | 0x0 | FALSE | TRUE | 0x0 |
| CRC-12/DECT | 12 | 0x80F | 0x0 | FALSE | FALSE | 0x0 |
| CRC-14/DARC | 14 | 0x805 | 0x0 | TRUE | TRUE | 0x0 |
| CRC-15 | 15 | 0x4599 | 0x0 | FALSE | FALSE | 0x0 |
| CRC-16/LHA | 16 | 0x8005 | 0x0 | TRUE | TRUE | 0x0 |
| CRC-16/CCITT-AUG | 16 | 0x1021 | 0x1D0F | FALSE | FALSE | 0x0 |
| CRC-16/BUYPASS | 16 | 0x8005 | 0x0 | FALSE | FALSE | 0x0 |
| CRC-16/CCITT-FALSE | 16 | 0x1021 | 0xFFFF | FALSE | FALSE | 0x0 |
| CRC-16/DDS | 16 | 0x8005 | 0x800D | FALSE | FALSE | 0x0 |
| CRC-16/DECT-R | 16 | 0x589 | 0x0 | FALSE | FALSE | 0x1 |
| CRC | PL (DEC) | PN (HEX) | INIT (HEX) | REV_IN | REV_OUT | XOR_OUT (HEX) |
| CRC-16/DECT-X | 16 | 0x589 | 0x0 | FALSE | FALSE | 0x0 |
| CRC-16/DNP | 16 | 0x3D65 | 0x0 | TRUE | TRUE | 0xFFFF |
| CRC-16/EN13757 | 16 | 0x3D65 | 0x0 | FALSE | FALSE | 0xFFFF |
| CRC-16/GENIBUS | 16 | 0x1021 | 0xFFFF | FALSE | FALSE | 0xFFFF |
| CRC-16/MAXIM | 16 | 0x8005 | 0x0 | TRUE | TRUE | 0xFFFF |
| CRC-16/MCRF4XX | 16 | 0x1021 | 0xFFFF | TRUE | TRUE | 0x0 |
| CRC-16/RIELLO | 16 | 0x1021 | 0xB2AA | TRUE | TRUE | 0x0 |
| CRC-16/T10-DIF | 16 | 0x8BB7 | 0x0 | FALSE | FALSE | 0x0 |
| CRC-16/TELEDISK | 16 | 0xA097 | 0x0 | FALSE | FALSE | 0x0 |
| CRC-16/USB | 16 | 0x8005 | 0xFFFF | TRUE | TRUE | 0xFFFF |
| CRC-16/CCITT-TRUE | 16 | 0x1021 | 0x0 | TRUE | TRUE | 0x0 |
| CRC-16/MODBUS | 16 | 0x8005 | 0x0 | TRUE | TRUE | 0x0 |
| CRC-16/X-25 | 16 | 0x1021 | 0xFFFF | TRUE | TRUE | 0xFFFF |
| CRC-16/XMODEM | 16 | 0x1021 | 0x0 | FALSE | FALSE | 0x0 |
| CRC-24/OPENPGP | 24 | 0x864CFB | 0xB704CE | FALSE | FALSE | 0x0 |
| CRC-24/FLEXRAY-A | 24 | 0x5D6DCB | 0xFEDCBA | FALSE | FALSE | 0x0 |
| CRC-24/FLEXRAY-B | 24 | 0x5D6DCB | 0xABCDEF | FALSE | FALSE | 0x0 |
| CRC-32/PKZIP | 32 | 0x04C11DB7 | 0xFFFFFFFF | TRUE | TRUE | 0xFFFFFFFF |
| CRC-32/BZIP2 | 32 | 0x04C11DB7 | 0xFFFFFFFF | FALSE | FALSE | 0xFFFFFFFF |
| CRC-32/CASTAGNOLI | 32 | 0x1EDC6F41 | 0xFFFFFFFF | TRUE | TRUE | 0xFFFFFFFF |
| CRC-32/D | 32 | 0xA833982B | 0xFFFFFFFF | TRUE | TRUE | 0xFFFFFFFF |
| CRC-32/MPEG2 | 32 | 0x04C11DB7 | 0xFFFFFFFF | FALSE | FALSE | 0x0 |
| CRC-32/POSIX | 32 | 0x04C11DB7 | 0x0 | FALSE | FALSE | 0xFFFFFFFF |
| CRC-32/Q | 32 | 0x814141AB | 0x0 | FALSE | FALSE | 0x0 |
| CRC-32/JAM | 32 | 0x04C11DB7 | 0xFFFFFFFF | TRUE | TRUE | 0x0 |
| CRC-32/XFER | 32 | 0xAF | 0x0 | FALSE | FALSE | 0x0 |

Ниже приведен пример использования функции **CRC_GEN** для расчета контрольной суммы пакета данных протокола Modbus.

> [!NOTE]
> **Примечание.** Рассчитанная контрольная сумма представляет собой переменную типа **DWORD**, младший байт которой соответствует старшему байту контрольной суммы, прикладываемой к пакету данных.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code/></td></tr></tbody></table></div></div>

<a id="topic-125139"></a>

### DEC_2

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | D | BOOL | Вход декодера |
| Входы | A | BOOL | Бит разрешения |
| Выходы | Q0 | BOOL | Выход 0 |
| Выходы | Q1 | BOOL | Выход 1 |

Функциональный блок **DEC_2** представляет собой двухбитный декодер. Принцип работы блока:

- если A=FALSE, тоQ0:=D;
- если A=TRUE, тоQ1:=D.

![DEC 2](https://docs.owen.ru/book_img/2417/164889.png)

<i>Трассировка работы ФБ **DEC_2**</i>

<a id="topic-125140"></a>

### DEC_4

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | D | BOOL | Вход декодера |
| Входы | A0 | BOOL | Бит разрешения 0 |
| Входы | A1 | BOOL | Бит разрешения 1 |
| Выходы | Q0 | BOOL | Выход 0 |
| Выходы | Q1 | BOOL | Выход 1 |
| Выходы | Q2 | BOOL | Выход 2 |
| Выходы | Q3 | BOOL | Выход 3 |

Функциональный блок **DEC_4** представляет собой четырехбитный декодер. Принцип работы блока:

- если A0=FALSE и A1=FALSE, тоQ0:=D;
- если A0=TRUE и A1=FALSE , то Q1:=D;
- если A0=FALSE и A1=TRUE, то Q2:=D;
- если A0=TRUE и A1=TRUE , то Q3:=D.

![DEC 4](https://docs.owen.ru/book_img/2417/164888.png)

<i>Трассировка работы ФБ **DEC_4**</i>

<a id="topic-125141"></a>

### DEC_8

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | D | BOOL | Вход декодера |
| Входы | A0 | BOOL | Бит разрешения 0 |
| Входы | A1 | BOOL | Бит разрешения 1 |
| Входы | A2 | BOOL | Бит разрешения 2 |
| Выходы | Q0 | BOOL | Выход 0 |
| Выходы | Q1 | BOOL | Выход 1 |
| Выходы | Q2 | BOOL | Выход 2 |
| Выходы | Q3 | BOOL | Выход 3 |
| Выходы | Q4 | BOOL | Выход 4 |
| Выходы | Q5 | BOOL | Выход 5 |
| Выходы | Q6 | BOOL | Выход 6 |
| Выходы | Q7 | BOOL | Выход 7 |

Функциональный блок **DEC_8** представляет собой восьмибитный декодер. Принцип работы блока:

- если A0=FALSE и A1=FALSE и A2=FALSE, то Q0:=D;
- если A0=TRUE и A1=FALSE и A2=FALSE, то Q1:=D;
- если A0=FALSE и A1=TRUE и A2=FALSE, то Q2:=D;
- если A0=TRUE и A1=TRUE и A2=FALSE, то Q3:=D;
- если A0=FALSE и A1=FALSE и A2=TRUE, то Q4:=D;
- если A0=TRUE и A1=FALSE и A2=TRUE, то Q5:=D;
- если A0=FALSE и A1=TRUE и A2=TRUE, то Q6:=D;
- если A0=TRUE и A1=TRUE и A2=TRUE, то Q7:=D.

![DEC 8](https://docs.owen.ru/book_img/2417/164937.png)

<i>Трассировка работы ФБ **DEC_8**</i>

<a id="topic-125142"></a>

### DW_TO_REAL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | DWORD | Входное значение |
| Выходы | DW_TO_REAL | REAL | Представление входного значения как REAL |

Функция **DW_TO\_ REAL** интерпретирует входную переменную **X** типа **DWORD** как значение с плавающей точкой, представленное в формате IEEE 754. В отличие от стандартного оператора конверсии **DWORD_TO_REAL**, который преобразует десятичное представление переменной типа **DWORD** в соответствующее число c плавающей точкой (например, 5->5.0), данная функция не меняет исходное значение, а только представляет его в другом формате. В частности, это необходимо при передаче переменных типа **REAL** по протоколу Modbus, который не стандартизирует передаваемые типы данных.

См. также обратную функцию [REAL_TO_DW](#topic-125151).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVar<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#4133851F<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DW_TO_REAL<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>InputVar)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>// результат 11.22<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125143"></a>

### DWORD_OF_BYTE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | B3…B0 | BYTE | Исходные байты (B0 – младший) |
| Выходы | DWORD_OF_BYTE | DWORD | Собранное значение |

Функция **DWORD_OF_BYTE** возвращает значение типа **DWORD**, собранное из отдельных байтов **B3…B0**, где **B0** является младшим байтом.

См. также обратную функцию [BYTE_OF_DWORD](#topic-125133).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bt0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#AA<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>// младший байт<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bt1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#BB<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bt2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#CC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bt3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#DD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>resultDW<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>resultDW<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DWORD_OF_BYTE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?> 
           <?Pub _font FontColor="#DCDCDC"?>B0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>bt0,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>B1<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>bt1,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>B2<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>bt2,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>B3<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>bt3
           );<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// результат 16#DDCCBBAA<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125144"></a>

### DWORD_OF_WORD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | W1…W0 | WORD | Исходные слова (W0 – младшее) |
| Выходы | DWORD_OF_WORD | DWORD | Собранное значение |

Функция **DWORD_OF_WORD** возвращает значение типа **DWORD**, собранное из отдельных слов **W1** и **W0**, где **W0** является младшим cловом.

См. также обратную функцию [WORD_OF_DWORD](#topic-125159).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>word0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>WORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#BBAA<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>//младшее слово<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>word1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>WORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#DDCC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>resultDW<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>resultDW<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DWORD_OF_WORD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?> 
           <?Pub _font FontColor="#DCDCDC"?>W0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>word0,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>W1<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>word1);<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>// результат 16#DDCCBBAA<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125145"></a>

### GRAY_TO_BYTE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | Число в коде Грея |
| Выходы | GRAY_TO_BYTE | BYTE | Число в двоичном коде |

Функция **GRAY_TO_BYTE** преобразует число в коде Грея **IN** в число в двоичном коде.

См. также обратную функцию [BYTE_TO_GRAY](#topic-125135).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>inVar<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2#0001_1101<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>GRAY_TO_BYTE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>inVar);<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* результат 2#0001_0110 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125146"></a>

### INT_TO_BCDC

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | INT | Двухзначное число в формате DEC |
| Выходы | INT_TO_BCDC | BYTE | Двухзначное число в формате BCD |

Функция **INT_TO_BCDC** конвертирует двухзначное число из десятичного формата в двоично-десятичный.

См. также обратную функцию [BCDC_TO_INT](#topic-125120).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>inVar<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>31<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>INT_TO_BCDC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>inVar);<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* результат 2#0011_0001 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125147"></a>

### MATRIX

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | x1…x5 | BOOL | Сигналы строк |
| Выходы | code | BYTE | Код нажатия |
| Выходы | TP | BOOL | Флаг «произошло нажатие» |
| Выходы | y1…y4 | BOOL | Сигналы опроса столбцов |
| Параметры | Release | BOOL | Обработка отпускания кнопки |

Функциональный блок **MATRIX** используется для опроса матричной клавиатуры размером **5x4**. На входы **x1…5** заводятся сигналы от строк. ФБ последовательно генерирует импульсы на выходах **y1…y4**, которые должны использоваться для опроса соответствующих столбцов. Если один из входов имеет значение **TRUE**, то на выход **code** поступает код нажатой кнопки, содержащий номер ее строки и столбца, а на выходе **TP** генерируется единичный импульс. Если параметр **Release** имеет значение **TRUE**, то отрабатывается также отпускание кнопки.

| Расшифровка битов кода | Расшифровка битов кода | Расшифровка битов кода |
| --- | --- | --- |
| Бит 7 | **TRUE** – кнопка нажата, **FALSE** – кнопка отпущена | **TRUE** – кнопка нажата, **FALSE** – кнопка отпущена |
| Бит 6 | Номер столбца (бит 2) | От 0 до 3 |
| Бит 5 | Номер столбца (бит 1) | От 0 до 3 |
| Бит 4 | Номер столбца (бит 0) | От 0 до 3 |
| Бит 3 | Всегда **FALSE** | Всегда **FALSE** |
| Бит 2 | Номер строки (бит 2) | От 1 до 5 |
| Бит 1 | Номер строки (бит 1) | От 1 до 5 |
| Бит 0 | Номер строки (бит 0) | От 1 до 5 |

![MATRIX](https://docs.owen.ru/book_img/2417/164936.png)

*Диаграмма опроса столбцов*

![MATRIX1](https://docs.owen.ru/book_img/2417/164935.png)

*Принципиальная схема матричной клавиатуры*

<a id="topic-125148"></a>

### MUX_2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | D0 | BOOL | Информационный вход 0 |
| Входы | D1 | BOOL | Информационный вход 1 |
| Входы | A0 | BOOL | Адресный вход |
| Выходы | MUX_2 | BOOL | Выход мультиплексора |

Функция **MUX_2** реализует двухбитный мультиплексор. Принцип работы функции:

- если A0=FALSE, то MUX_2:=D0;
- если A0=TRUE, то MUX_2:=D1.

![MUX 2](https://docs.owen.ru/book_img/2417/164934.png)

<i>Трассировка работы функции **MUX_2**</i>

<a id="topic-125149"></a>

### MUX_4

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | D0 | BOOL | Информационный вход 0 |
| Входы | D1 | BOOL | Информационный вход 1 |
| Входы | D2 | BOOL | Информационный вход 2 |
| Входы | D3 | BOOL | Информационный вход 3 |
| Входы | A0 | BOOL | Адресный вход 0 |
| Входы | A1 | BOOL | Адресный вход 1 |
| Выходы | MUX_4 | BOOL | Выход мультиплексора |

Функция **MUX_4** реализует четырехбитный мультиплексор. Принцип работы функции:

- если A0=FALSE и A1=FALSE, то MUX_4:=D0;
- если A0=TRUE и A1=FALSE, то MUX_4:=D1;
- если A0=FALSE и A1=TRUE, то MUX_4:=D2;
- если A0=TRUE и A1=TRUE, то MUX_4:=D3.

![MUX 4](https://docs.owen.ru/book_img/2417/164933.png)

<i>Трассировка работы функции **MUX_4**</i>

<a id="topic-125150"></a>

### PARITY

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | BYTE | Исходный байт |
| Выходы | PARITY | BOOL | Бит четности |

Функция **PARITY** вычисляет бит четности для байта **in**. Соответственно, если число битов в состоянии **TRUE** в байте является нечетным, то бит четности = **TRUE**. В противном случает бит четности = **FALSE**.

См. также функцию [CHECK_PARITY](#topic-125136).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2#1111_1000<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> 
    <?Pub _font FontColor="#988DF7"?>result<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>PARITY<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(in<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>InputVar);<?Pub /_font
?> <?Pub _font FontColor="#5DA35B"?>// результат TRUE<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125151"></a>

### REAL_TO_DW

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Входное значение |
| Выходы | REAL_TO_DW | DWORD | Представление входного значения как DWORD |

Функция **REAL_TO_DW** интерпретирует входную переменную **X** типа **REAL** как значение в шестнадцатеричной системе. В отличие от стандартного оператора конверсии **REAL_TO_DWORD**, который округляет значение с плавающей точкой до ближайшего меньшего целого (например, 5.7->5), данная функция не меняет исходное значение, а только представляет его в другом формате. В частности, это необходимо при передаче переменных типа **REAL** по протоколу Modbus, который не стандартизирует передаваемые типы данных.

См. также обратную функцию [DW_TO_REAL](#topic-125142).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>inVar<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>11.22<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>REAL_TO_DW<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>inVar);<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* результат 16#4133851F *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125152"></a>

### REFLECT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | D | DWORD | Строка бит |
| Входы | L | INT | Длина отражаемой части |
| Выходы | REFLECT | DWORD | Строка бит с обратным порядком бит |

Функция **REFLECT** меняет порядок **L** младших бит переменной **D** на обратный.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>inVar<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2#1100_0001<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>LVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>REFLECT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>D<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>inVar, L<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LVar);<?Pub /_font?>
 <?Pub _font FontColor="#5DA35B"?>(* результат 2#0000_0000_0000_0000_0000_0000_1100_1000 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125153"></a>

### REVERSE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BYTE | Строка бит |
| Выходы | REVERSE | BYTE | Строка бит с обратным порядком бит |

Функция **REVERSE** меняет порядок бит переменной **IN** на обратный.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>inVar<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2#1100_0001<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>REVERSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>inVar);<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* результат 2#1000_0011 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125154"></a>

### SHL1

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | DWORD | Строка бит |
| Входы | N | INT | Кол-во сдвигаемых бит |
| Выходы | SHL1 | DWORD | Строка бит, сдвинутая влево |

Функция **SHL1** выполняет побитный сдвиг переменной **IN** влево на **N** бит с дополнением единицами справа (в отличие от стандартного оператора **SHL**, который производит дополнение нулями).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>inVar<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2#0000_0000_1100_0001<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>NVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>8<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SHL1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>inVar, N<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>NVar);<?Pub /_font?>
 <?Pub _font FontColor="#5DA35B"?>(* результат 2#0000_0000_0000_0000__1100_0001_1111_1111 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125155"></a>

### SHR1

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | DWORD | Строка бит |
| Входы | N | INT | Кол-во сдвигаемых бит |
| Выходы | SHR1 | DWORD | Строка бит, сдвинутая вправо |

Функция **SHR1** выполняет побитный сдвиг переменной **IN** вправо на **N** бит с дополнением единицами слева (в отличие от стандартного оператора **SHR**, который производит дополнение нулями).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>inVar<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>2#0000_0000_0000_0000_0000_0000_1100_0001<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>NVar<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SHR1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>inVar, N<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>NVar);<?Pub /_font?>
 <?Pub _font FontColor="#5DA35B"?>(* результат 2#1111_0000_0000_0000_0000_0000_0000_1100 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125156"></a>

### SWAP_BYTE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | WORD | Исходная переменная |
| Выходы | SWAP_BYTE | WORD | Переменная с переставленными байтами |

Функция **SWAP_BYTE** меняет порядок байт переменной **IN**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>inVar<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>WORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#ADDE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>WORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SWAP_BYTE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>inVar);<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* результат 16#DEAD *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125157"></a>

### SWAP_BYTE2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | DWORD | Исходная переменная |
| Выходы | SWAP_BYTE | DWORD | Переменная с обратным порядком байт |

Функция **SWAP_BYTE2** меняет порядок байт переменной **IN** на обратный.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>inVar<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#AABBCCDD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>resVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SWAP_BYTE2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>IN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>inVar);<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(* результат 16#DDCCBBAA *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125158"></a>

### WORD_OF_BYTE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | B1…B0 | BYTE | Исходные байты (B0 – младший) |
| Выходы | WORD_OF_BYTE | WORD | Собранное значение |

Функция **WORD_OF_BYTE** возвращает значение типа **DWORD**, собранное из отдельных байтов **B1…B0**, где **B0** является младшим байтом.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bt0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#AD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>// младший байт<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>bt1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#DE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>resW<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>WORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>resW<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>WORD_OF_BYTE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>B0<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>bt0,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>B1<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>bt1);<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>// результат 16#DEAD<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125159"></a>

### WORD_OF_DWORD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | DWORD | Исходная переменная |
| Входы | N | BYTE | Номер считываемого слова (0…1) |
| Выходы | WORD_OF_DWORD | WORD | Выделенное слово |

Функция **WORD_OF_DWORD** выделяет из переменной **in** типа **DWORD** слово с номером **N**.

См. также обратную функцию [DWORD_OF_WORD](#topic-125144).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>dwVar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>16#AABBCCDD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>//младшее слово<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>num<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#FF99CC"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>resultW<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>WORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>resultW<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>WORD_OF_DWORD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>dwVar,<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>N<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>num);<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>// результат 16#CCDD<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125160"></a>

## Триггеры, элементы хранения и регистры сдвига

<a id="topic-125161"></a>

### COUNT_BR

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Сигнал установки начального значения. |
| Входы | in | BYTE | Начальное значение. |
| Входы | UP | BOOL | Импульс «добавить» |
| Входы | DN | BOOL | Импульс «отнять». |
| Входы | STEP | BYTE | Шаг счетчика. |
| Входы | MX | BYTE | Максимальное значение счетчика. |
| Входы | RST | BOOL | Сигнал сброса блока. |
| Выходы | CNT | BYTE | Текущее значение счетчика. |
| Используемые модули | [INC](#topic-124838) | [INC](#topic-124838) | [INC](#topic-124838) |

Функциональный блок **COUNT_BR** представляет собой счетчик импульсов. По переднему фронту входа **SET** на выход счетчика **CNT** устанавливается начальное значение **in**. По переднему фронту входов **UP/DN** происходит увеличение/уменьшение счетчика на величину **STEP**. Вход **MX** определяет максимальное значение счетчика. При достижении этого значения счетчик переходит через ноль. Иными словами, при значениях in=0, STEP=100 и MX=255 во время счета в положительном направлении счетчик будет принимать следующие значения: 0, 100, 200, 44, 144, 244, 88 и т.д. По переднему фронту входа **RST** происходит сброс счетчика в **0** в независимости от состояния остальных входов.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Экземпляр ФБ *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Cnt<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>COUNT_BR<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Управление *)<?Pub /_font
?>
    <?Pub _font FontColor="#8080FF"?>xTrig<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>xMode<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"
?>(* TRUE = вверх, FALSE = вниз *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Для фронта *)<?Pub /_font
?>
    <?Pub _font FontColor="#8080FF"?>xTrig_Edge<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#8080FF"?>xTrig_Old<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат *)<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Value<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Инициализация настроек (однократно) *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>Cnt<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>in<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>, STEP<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>100<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"?>, MX<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>255<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>Cnt<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>SET<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* Устанавливаем начальное значение 0 *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>Cnt<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>Cnt<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>SET<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Основной цикл *)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Детектор фронта *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>xTrig_Edge<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>xTrig AND NOT<?Pub /_font?>   <?Pub _font FontColor="#DCDCDC"?>xTrig_Old<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>xTrig_Old<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>xTrig<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>(* По фронту xTrig выполняем счет *)<?Pub /_font?>
<?Pub _font FontColor="#A4DBD2"?>IF<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>xTrig_Edge<?Pub /_font?> <?Pub _font
FontColor="#A4DBD2"?>THEN<?Pub /_font?>
    <?Pub _font FontColor="#A4DBD2"?>IF<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>xMode<?Pub /_font?> <?Pub _font FontColor="#A4DBD2"
?>THEN<?Pub /_font?>
        <?Pub _font FontColor="#DCDCDC"?>Cnt<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>UP<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* Увеличение *)<?Pub /_font?>
    <?Pub _font FontColor="#A4DBD2"?>ELSE<?Pub /_font?>
        <?Pub _font FontColor="#DCDCDC"?>Cnt<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>DN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* Уменьшение *)<?Pub /_font?>
    <?Pub _font FontColor="#A4DBD2"?>END_IF<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Cnt<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(* Выполняем ФБ *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Сбрасываем управляющие сигналы *)<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Cnt<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>UP<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>DN<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#A4DBD2"?>END_IF<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Сохраняем текущее значение *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Value<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Cnt<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>CNT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125162"></a>

### COUNT_DR

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Сигнал установки начального значения. |
| Входы | in | DWORD | Начальное значение. |
| Входы | UP | BOOL | Импульс «добавить» |
| Входы | DN | BOOL | Импульс «отнять». |
| Входы | STEP | DWORD | Шаг счетчика. |
| Входы | MX | DWORD | Максимальное значение счетчика. |
| Входы | RST | BOOL | Сигнал сброса блока. |
| Выходы | CNT | DWORD | Текущее значение счетчика. |

Функциональный блок **COUNT_DR** представляет собой счетчик импульсов. Принцип работы полностью соответствует ФБ [COUNT_BR](#topic-125161), единственным отличием является тип используемых переменных – **DWORD**.

<a id="topic-125163"></a>

### FF_D2E

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | D0 | BOOL | Контролируемое значение 0 |
| Входы | D1 | BOOL | Контролируемое значение 1 |
| Входы | CLK | BOOL | Сигнал сохранения значений |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Q0 | BOOL | Сохраненное значение 0 |
| Выходы | Q1 | BOOL | Сохраненное значение 1 |

Функциональный блок **FF_D2E** представляет собой двухбитный D-триггер. По переднему фронту входа **CLK** значения входов **D0** и **D1** присваиваются выходам **Q0** и **Q1**. По переднему фронту входа **RST** значения выходов сбрасываются в **FALSE** в независимости от состояния остальных входов.

![FF D2E](https://docs.owen.ru/book_img/2417/164932.png)

<a id="topic-125164"></a>

### FF_D4E

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | D0 | BOOL | Контролируемое значение 0 |
| Входы | D1 | BOOL | Контролируемое значение 1 |
| Входы | D2 | BOOL | Контролируемое значение 2 |
| Входы | D3 | BOOL | Контролируемое значение 3 |
| Входы | CLK | BOOL | Сигнал сохранения значений |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Q0 | BOOL | Сохраненное значение 0 |
| Выходы | Q1 | BOOL | Сохраненное значение 1 |
| Выходы | Q2 | BOOL | Сохраненное значение 2 |
| Выходы | Q3 | BOOL | Сохраненное значение 3 |

Функциональный блок **FF_D4E** представляет собой четырехбитный D-триггер. По переднему фронту входа **CLK** значения входов **D0,** **D1,** **D2** и **D3** присваиваются выходам **Q0,** **Q1,** **Q2** и **Q3** соответственно. По переднему фронту входа **RST** значения выходов сбрасываются в **FALSE** в независимости от состояния остальных входов. См. также описание ФБ [FF_D2E](#topic-125163).

<a id="topic-125165"></a>

### FF_DRE

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Сигнал активации выхода |
| Входы | D | BOOL | Контролируемое значение |
| Входы | CLK | BOOL | Управляющий сигнал |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Q | BOOL | Сохраненное значение |

Функциональный блок **FF_DRE** представляет собой D-триггер с асинхронным управлением выходом. По переднему фронту входа **CLK** значения входа **D** присваивается выходу **Q**. По переднему фронту входа **SET** выход принимает значение **TRUE**. По переднему фронту входа **RST** выход сбрасывается в **FALSE** в независимости от состояния остальных входов. Вход **RST** имеет приоритет над входом **SET**, и при их одновременном срабатывании сигнал на входе **SET** не обрабатывается. Вход **SET** имеет приоритет над входом **CLK**.

![FF DRE](https://docs.owen.ru/book_img/2417/164931.png)

<a id="topic-125166"></a>

### FF_JKE

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Сигнал активации выхода |
| Входы | J | BOOL | Вход «Jump» |
| Входы | CLK | BOOL | Управляющий сигнал |
| Входы | K | BOOL | Вход «Kill» |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Q | BOOL | Выход триггера |

Функциональный блок **FF_JKE** представляет собой JK-триггер. По переднему фронту входа **SET** выход принимает значение **TRUE**. По переднему фронту входа **RST** выход сбрасывается в **FALSE** в независимости от состояния остальных входов. По переднему фронту входа **CLK** выход Q меняет свое значение в зависимости от состояний входов **J** и **K**:

- если J=TRUE, то Q:=TRUE;
- если K=TRUE, то Q:=FALSE;
- если J=TRUE и K=TRUE, то Q:=NOT(Q) \[значение выхода инвертируется\].

Вход **SET** имеет приоритет над входом **CLK**.

*СХЕМА НЕ СООТВЕТСТВУЕТ ФБ*

<a id="topic-125167"></a>

### FF_RSE

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | CS | BOOL | Вход «Set» |
| Входы | CR | BOOL | Вход «Reset» |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Q | BOOL | Выход триггера |

Функциональный блок **FF_RSE** представляет собой RS-триггер с асинхронным сбросом. По переднему фронту входа **CS** выход **Q** принимает значение **TRUE**. По переднему фронту входа **CR** выход **Q** принимает значение **FALSE**. Вход **CR** имеет приоритет над входом **CS**, и при их одновременном срабатывании сигнал на входе **CS** не обрабатывается. По переднему фронту входа **RST** выход сбрасывается в **FALSE** в независимости от состояния остальных входов.

<a id="topic-125168"></a>

### LTCH

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | D | BOOL | Контролируемое значение |
| Входы | L | BOOL | Режим «сохранение значений» |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Q | BOOL | Сохраненное значение |

Функциональный блок **LTCH** представляет собой одноступенчатый триггер («защелку»). Пока вход **L** имеет значение **TRUE**, значение на выходе **Q** равно значению входа **D**. По заднему фронту входа **L** выход **Q** фиксируется в своем текущем состоянии. По переднему фронту входа **RST** выход сбрасывается в **FALSE** в независимости от состояния остальных входов.

![LTCH](https://docs.owen.ru/book_img/2417/164930.png)

<a id="topic-125169"></a>

### LTCH_4

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | D0…D3 | BOOL | Контролируемые значения |
| Входы | L | BOOL | Режим «сохранение значений» |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Q | BOOL | Сохраненные значения |

Функциональный блок **LTCH_4** представляет собой четырехбитный одноступенчатый триггер («защелку»). Пока вход **L** имеет значение **TRUE**, значения на выходах **Q0...Q3** равны значениям входов **D0...D3**. По заднему фронту входа **L** выходы фиксируется в своих текущих состояниях. По переднему фронту входа **RST** выходы сбрасываются в **FALSE** в независимости от состояния остальных входов.

<a id="topic-125170"></a>

### SELECT_8

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | E | BOOL | Вход управления блоком |
| Входы | SET | BOOL | Сигнал установки выхода номер IN |
| Входы | IN | BYTE | Номер устанавливаемого выхода |
| Входы | UP | BOOL | Включение следующего выхода |
| Входы | DN | BOOL | Включение предыдущего выхода |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Q0…Q7 | BOOL | Выходы блока |
| Выходы | STATE | INT | Номер активного выхода (0...7) |
| Используемые модули | [INC](#topic-124838) | [INC](#topic-124838) | [INC](#topic-124838) |

Функциональный блок **SELECT_8** представляет собой восьмибитный селектор - в каждый момент времени только один из выходов **Q0…Q7** является активным. Пока вход **E** имеет значение **TRUE** блок находится в работе. По переднему фронту на входе **SET** выход с номером **IN** принимает значение **TRUE**, а все остальные выходы сбрасываются в **FALSE**. По переднему фронту на входе **UP** активным становится следующий выход, по переднему фронту на входе **DN** – предыдущий. Соответственно, если активным является **Q7**, то после импульса на входе **UP** активным становится **Q0**; если же активным является **Q0**, то после импульса на входе **DN** активным становится **Q7**. Выход **STATE** содержит номер активного выхода. По переднему фронту входа **RST** выход сбрасывается в **FALSE** в независимости от состояния остальных входов.

<a id="topic-125171"></a>

### SHR_4E

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Сигнал активации выходов |
| Входы | D0 | BOOL | Вход данных |
| Входы | CLK | BOOL | Управляющий сигнал |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Q0…Q3 | BOOL | Выходы блока |

Функциональный блок **SHR_4E** представляет собой четырехбитный регистр сдвига. По переднему фронту входа **SET** выходы **Q0…Q3** принимают значение **TRUE**. По переднему фронту входа **RST** выходы **Q0...Q3** сбрасываются в **FALSE** в независимости от состояния остальных входов. По переднему фронту входа **CLK** значения на выходах **Q0…Q3** сдвигаются по следующему алгоритму:

- Q2---- > Q3
- Q1---- > Q2
- Q0---- > Q1
- D0---- > Q0

Вход **SET** имеет приоритет над входом **CLK**.

<b>*Обратите внимание*</b>, что сдвиг не является циклическим.

![SHR 4R](https://docs.owen.ru/book_img/2417/164929.png)

<i>Трассировка работы ФБ **SHR_4E**</i>

<a id="topic-125172"></a>

### SHR_4UDE

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Сигнал активации выходов |
| Входы | D0 | BOOL | Вход данных (при счете вверх) |
| Входы | D3 | BOOL | Вход данных (при счете вниз) |
| Входы | CLK | BOOL | Управляющий сигнал |
| Входы | DN | BOOL | Направление счета (TRUE – вниз, FALSE – вверх) |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Q0…Q3 | BOOL | Выходы блока |

Функциональный блок **SHR_4UDE** представляет собой четырехбитный регистр сдвига c выбором направления сдвига. По переднему фронту входа **SET** выходы **Q0…Q3** принимают значение **TRUE**. По переднему фронту входа **RST** выходы **Q0...Q3** сбрасываются в **FALSE** в независимости от состояния остальных входов. По переднему фронту входа **CLK** значения на выходах **Q0…Q3** сдвигаются по алгоритму, определяемому состоянием входа **DN**:

- Ø  DN=FALSE (сдвиг вверх):

  - Q2---- > Q3;
  - Q1---- > Q2;
  - Q0---- > Q1;
  - D0---- > Q0.

- Ø  DN=TRUE (сдвиг вниз):

  - Q1---- > Q0;
  - Q2---- > Q1;
  - Q3---- > Q2;
  - D3---- > Q3.

Вход **SET** имеет приоритет над входом **CLK**.

<b>*Обратите внимание*</b>, что сдвиг не является циклическим.

![SHR 4UDE](https://docs.owen.ru/book_img/2417/164928.png)

<i>Трассировка работы ФБ **SHR_4UDE**</i>

<a id="topic-125173"></a>

### SHR_8PLE

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | Din | BOOL | Значение для записи |
| Входы | Dload | BYTE | Вход данных |
| Входы | CLK | BOOL | Управляющий сигнал |
| Входы | UP | BOOL | Направление счета  (TRUE – вверх, FALSE – вниз) |
| Входы | load | BOOL | Режим загрузки данных в блок |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | DOut | BOOL | Выход блока |

Функциональный блок **SHR_8PLE** представляет собой восьмибитный регистр сдвига c выбором направления сдвига. Вход **UP** определяет направление сдвига: **TRUE** – вверх (при этом выход **DOut** соответствует старшему биту регистра), **FALSE** – вниз (при этом выход **DOut** соответствует младшему биту регистра). По переднему фронту на входе **CLK** происходит сдвиг регистра в соответствующем направлении, при этом младший (при **UP=TRUE**) или старший (при **UP=FALSE**) бит принимает значение **Din**. Если вход **load** имеет значение **TRUE**, то по переднему фронту на входе **CLK** происходит запись значения **Dload** в регистр.

<b>*Обратите внимание*</b>, что сдвиг не является циклическим.

<a id="topic-125174"></a>

### SHR_8UDE

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Сигнал активации выходов |
| Входы | D0 | BOOL | Вход данных (при счете вверх) |
| Входы | D7 | BOOL | Вход данных (при счете вниз) |
| Входы | CLK | BOOL | Управляющий сигнал |
| Входы | DN | BOOL | Направление счета (TRUE – вниз, FALSE – вверх) |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Q0…Q7 | BOOL | Выходы блока |

Функциональный блок **SHR_8UDE** представляет собой восьмибитный регистр сдвига c выбором направления сдвига. Принцип работы блока полностью соответствует ФБ [SHR_4UDE](#topic-125172).

<a id="topic-125175"></a>

### STORE_8

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Сигнал активации выходов |
| Входы | D0…D7 | BOOL | Вход данных (при счете вверх) |
| Входы | Clr | BOOL | Сигнал сброса выхода с наименьшим номером |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Q0…Q7 | BOOL | Выходы блока |

Функциональный блок **STORE_8** представляет собой восьмибитный элемент хранения. По переднему фронту входов **D0…D7** выходы **Q0…Q7** принимают значение **TRUE**. Пока вход **SET** имеет значение **TRUE**, выходы **Q0…Q7** принимают значение **TRUE** в независимости от состояния входов. По переднему фронту входа **RST** выходы **Q0...Q7** сбрасываются в **FALSE**. По переднему фронту входа **Clr** происходит сброс в **FALSE** активного выхода с наименьшим номером (только в том случае, если соответствующий вход имеет значение **FALSE**).

<a id="topic-125176"></a>

### TOGGLE

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | CLK | BOOL | Управляющий сигнал |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Q | BOOL | Выход блока |

Функциональный блок **TOGGLE** представляет собой переключатель со сбросом. По переднему фронту входа **CLK** значение выхода **Q** инвертируется. По переднему фронту входа **RST** выход **Q** принимает значение **FALSE** в независимости от состояния входа **CLK**.

<a id="topic-125177"></a>

## Генераторы сигналов

<a id="topic-125178"></a>

### \_RMP_B

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DIR | BOOL | Направление изменения выхода |
| Входы | E | BOOL | Сигнал управления блоком |
| Входы | TR | TIME | Полное время генерации (от 0 до 255) |
| Выходы | RMP | BYTE | Выход блока |
| Используемые модули | [T_PLC_MS](#topic-125261), [FRMP_B](#topic-124926) | [T_PLC_MS](#topic-125261), [FRMP_B](#topic-124926) | [T_PLC_MS](#topic-125261), [FRMP_B](#topic-124926) |

Функциональный блок **\_RMP_B** представляет собой генератор линейной функции. Пока вход **E** имеет значение **TRUE** блок находится в работе и значение переменной, связанной со входом-выходом **RMP**, линейно изменяется от текущего значения до максимального (при **DIR=TRUE**) или минимального (при **DIR=FALSE**). Минимальное и максимальное значения определяются диапазоном типа **BYTE** и соответственно составляют **0** и **255**. Скорость изменения выходного сигнала определяется отношением (**255/TR**). Для повторного запуска блока после окончания его работы достаточно изменить значение **RMP** (например, обнулив его). Если вход **E** принимает значение **FALSE**, то блок прекращает работу, при этом **RMP** сохраняет свое последнее значение.

![RMP B](https://docs.owen.ru/book_img/2417/164987.png)

*Трассировка работы ФБ **\_RMP_B** (TR=T#10s)*

<a id="topic-125179"></a>

### \_RMP_NEXT

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | E | BOOL | Сигнал управления блоком |
| Входы | IN | BYTE | Контролируемый сигнал |
| Входы | TR | TIME | Время нарастания сигнала |
| Входы | TF | TIME | Время спада сигнала |
| Входы | TL | TIME | Время задержки |
| Выходы | DIR | BOOL | Флаг «направление изменения» |
| Выходы | UP | BOOL | Импульс «начало нарастания» |
| Выходы | DN | BOOL | Импульс «начало спада» |
| Входы-выходы | OUT | BYTE | Выход блока |
| Используемые модули | [\_RMP_B](#topic-125178), [TREND_DW](#topic-125235) | [\_RMP_B](#topic-125178), [TREND_DW](#topic-125235) | [\_RMP_B](#topic-125178), [TREND_DW](#topic-125235) |

Функциональный блок **\_RMP_NEXT** представляет собой генератор линейной функции. Пока вход **E** имеет значение **TRUE** блок находится в работе и значение переменной, связанной со входом-выходом **OUT**, линейно изменяется от текущего значения до ближайшего значения относительно входа **IN**. Время достижения этого значения определяется переменными **TR** (в случае нарастания сигнала) и **TF** (в случае спада сигнала). Время **TL** определяет задержку изменения выходного сигнала относительно изменения входного. Выход **DIR** определяет текущее изменение выхода (**TRUE** – нарастание, **FALSE** – спад); если изменений не происходит, то **DIR** сохраняет свое последнее значение. Выход **UP** принимает значение **TRUE** на время нарастания выходного сигнала, выход **DN** – на время его спада. В остальные периоды времени выходы имеют значение **FALSE**. Если вход **E** принимает значение **FALSE**, то блок прекращает работу, при этом **OUT** сохраняет свое последнее значение.

![RMP NEXT](https://docs.owen.ru/book_img/2417/164986.png)

*Трассировка работы ФБ **\_RMP_NEXT**(TR=T#10s, TF=T#20s, TL=T#5s)*

<a id="topic-125180"></a>

### \_RMP_W

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DIR | BOOL | Направление изменения выхода |
| Входы | E | BOOL | Сигнал управления блоком |
| Входы | TR | TIME | Полное время генерации (от 0 до 65535) |
| Входы-выходы | RMP | WORD | Выход блока |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **\_RMP_W** представляет собой генератор линейной функции. Принцип работы блока полностью соответствует блоку [\_RMP_B](#topic-125178), единственным отличие является тип выхода генератора – у данного блока он имеет тип **WORD**.

<a id="topic-125181"></a>

### GEN_PULSE

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | ENQ | BOOL | Сигнал управления блоком |
| Входы | PTH | TIME | Время сигнала верхнего уровня |
| Входы | PTL | TIME | Время сигнала нижнего уровня |
| Выходы | Q | BOOL | Выход генератора |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **GEN_PULSE** представляет собой генератор прямоугольных импульсов. Когда вход **EHQ** принимает значение **TRUE**, блок запускается в работу, и на выходе **Q** начинают генерироваться прямоугольные импульсы с длительностью **PTL** (нижний уровень) и **PTH** (верхний уровень) соответственно. Блок начинает работу с импульса нижнего уровня. Если вход **ENQ** принимает значение **FALSE**, то блок прекращает работу; выход **Q** при этом принимает значение **FALSE**. Импульс с длительностью **0** соответствует импульсу длиной в цикл ПЛК.

![GEN PULSE](https://docs.owen.ru/book_img/2417/164985.png)

*Трассировка работы ФБ **GEN_PULSE** (PTH=T#5s, PTL=T#10s)*

<a id="topic-125182"></a>

### GEN_PW2

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | ENQ | BOOL | Сигнал управления блоком |
| Входы | TH1 | TIME | Время сигнала верхнего уровня (набор 1) |
| Входы | TL1 | TIME | Время сигнала нижнего уровня (набор 1) |
| Входы | TH2 | TIME | Время сигнала верхнего уровня (набор 2) |
| Входы | TL2 | TIME | Время сигнала нижнего уровня (набор 2) |
| Входы | TS | BOOL | Сигнал переключения наборов |
| Выходы | Q | BOOL | Выход генератора |
| Выходы | TH | TIME | Текущее время импульса (верхний уровень) |
| Выходы | TL | TIME | Текущее время импульса (нижний уровень) |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **GEN_PW2** представляет собой генератор прямоугольных импульсов c двумя наборами параметров. Когда вход **ENQ** принимает значение **TRUE**, блок запускается в работу, и на выходе **Q** начинают генерироваться прямоугольные импульсы. Если вход **TS** имеет значение **FALSE**, то длительность генерируемых импульсов определяется значениями входов **TH1** (верхний уровень) и **TL1** (нижний уровень). Если вход **TS** имеет значение **TRUE**, то длительность генерируемых импульсов определяется значениями входов **TH2** (верхний уровень) и **TL2** (нижний уровень). Выходы **TH** и **TL** содержат время, прошедшее с начала генерации текущего импульса (верхнего и нижнего уровня соответственно). Блок начинает работу с импульса нижнего уровня. Если вход **ENQ** принимает значение **FALSE**, то блок прекращает работу; выход **Q** при этом принимает значение **FALSE**. Импульс с длительностью **0** соответствует импульсу длиной в цикл ПЛК.

![GEN PW2](https://docs.owen.ru/book_img/2417/164984.png)

*Трассировка работы ФБ **GEN_PW2** (TH1=TL1=T#4s, TH2=TL2=T#2s)*

<a id="topic-125183"></a>

### GEN_RDM

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT | BOOL | Период генерации значений |
| Входы | AM | REAL | Амплитуда |
| Входы | OS | REAL | Смещение |
| Выходы | Q | BOOL | Флаг «новое значение» |
| Выходы | Out | REAL | Выход генератора |
| Используемые модули | [T_PLC_MS](#topic-124851), [RDM](#topic-125261) | [T_PLC_MS](#topic-124851), [RDM](#topic-125261) | [T_PLC_MS](#topic-124851), [RDM](#topic-125261) |

Функциональный блок **GEN\_ RDM** представляет собой генератор псевдослучайных значений. На выходе **Out** с интервалом **PT** генерируется псевдослучайное значение с амплитудой **AM** и смещением **OS**. При появлении нового значения на выходе **Q** генерируется единичный импульс.

Связь значения на выходе **Out** с амплитудой и смещением определяется формулой:

```
OUT = AM * (RDM - 0.5) + OS
```

, где

RDM – псевдослучайное число в диапазоне \[0,1\].

![GEN RDM](https://docs.owen.ru/book_img/2417/164983.png)

*Трассировка работы ФБ **GEN_RDM** (PT=T#1s, AM=10.0, OS=4.0)*

<a id="topic-125184"></a>

### GEN_RDT

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | Enable | BOOL | Сигнал управления блоком |
| Входы | Min_Time_ms | TIME | Минимальная пауза между импульсами |
| Входы | Max_Time_ms | TIME | Максимальная пауза между импульсами |
| Входы | TP_Q | TIME | Длительность импульса |
| Выходы | xQ | BOOL | Выход генератора |
| Используемые модули | [RDM](#topic-124851) | [RDM](#topic-124851) | [RDM](#topic-124851) |

Функциональный блок **GEN_RDT** представляет собой генератор импульсов заданной длины с псевдослучайным периодом. Когда вход **Enable** принимает значение **TRUE**, блок запускается в работу, и на выходе **xQ** начинают генерироваться импульсы длительностью **TP_Q**, причем пауза между импульсами является псевдослучайными числом из диапазона **Min_Time_ms…Max_Time_ms**. Импульс с длительностью **0** соответствует импульсу длиной в цикл ПЛК. Если вход **Enable** принимает значение **FALSE**, то блок прекращает работу; выход **xQ** при этом принимает значение **FALSE**.

![GEN RDT](https://docs.owen.ru/book_img/2417/164982.png)

*Трассировка работы ФБ **GEN_RDT** (Min_Time_ms=T#5s, Max_Time_Ms=T#10s, TP_Q=T#1s)*

<a id="topic-125185"></a>

### GEN_RMP

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT | BOOL | Период генерации значений |
| Входы | AM | REAL | Амплитуда |
| Входы | OS | REAL | Смещение сигнала относительно нуля |
| Входы | DL | REAL | Задержка включения в долях от PT (0…1) |
| Выходы | Q | BOOL | Флаг «новое значение» |
| Выходы | Out | REAL | Выход генератора |
| Используемые модули | [T_PLC_MS](#topic-125261), [MODR](#topic-124847), [MULTIME](#topic-124989) | [T_PLC_MS](#topic-125261), [MODR](#topic-124847), [MULTIME](#topic-124989) | [T_PLC_MS](#topic-125261), [MODR](#topic-124847), [MULTIME](#topic-124989) |

Функциональный блок **GEN_RMP** представляет собой генератор пилообразного сигнала. На выходе блока **Out** циклически с периодом **PT** генерируется выходной пилообразный сигнал с амплитудой **AM**, смещением относительно нуля **OS** и задержкой включения **DL**. Задержка используется для генерации нескольких сигналов (с помощью нескольких экземпляров ФБ), смещенных относительно друг друга, и задается в долях от периода **PT**:

- DL=0 – задержки нет;
- DL=0.5 – задержка составляет 50% от времени **PT**;
- DL=1 – задержка равна времени **PT**.

На выходе **Q** генерируется единичный импульс в начале каждого цикла генерации.

На рисунке ниже приведена трассировка работы двух экземпляров блока для значений входных переменных:

|   | fbGEN_RMP_1 | fbGEN_RMP_2 |
| --- | --- | --- |
| PT | T#10s | T#10s |
| AM | 10 | 8 |
| OS | 4 | 2 |
| DL | 0.3 | 0.6 |

![GEN RMP](https://docs.owen.ru/book_img/2417/164981.png)

<i>Трассировка работы экземпляров ФБ **GEN_RMP**</i>

<a id="topic-125186"></a>

### GEN_SIN

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT | TIME | Период колебаний |
| Входы | AM | REAL | Амплитуда |
| Входы | OS | REAL | Смещение сигнала относительно нуля |
| Входы | DL | REAL | Задержка включения в долях от PT (0…1) |
| Выходы | Q | BOOL | Флаг «знак полупериода» |
| Выходы | Out | REAL | Выход генератора |
| Используемые модули | [T_PLC_MS](#topic-125261), [MODR](#topic-124847), [MULTIME](#topic-124989), [SIGN_R](#topic-124860) | [T_PLC_MS](#topic-125261), [MODR](#topic-124847), [MULTIME](#topic-124989), [SIGN_R](#topic-124860) | [T_PLC_MS](#topic-125261), [MODR](#topic-124847), [MULTIME](#topic-124989), [SIGN_R](#topic-124860) |

Функциональный блок **GEN_SIN** представляет собой генератор синусоидального сигнала. На выходе блока **Out** циклически с периодом **PT** генерируется выходной синусоидальный сигнал с амплитудой **AM**, смещением относительно нуля **OS** и задержкой включения **DL**. Задержка используется для генерации нескольких сигналов (с помощью нескольких экземпляров ФБ), смещенных относительно друг друга, и задается в долях от периода **PT**:

- DL=0 – задержки нет;
- DL=0.5 – задержка составляет 50% от времени **PT**;
- DL=1 – задержка равна времени **PT**.

Выход **Q** имеет значение **TRUE** во время положительного полупериода синусоиды и **FALSE** – во время отрицательного.

На рисунке ниже приведена трассировка работы двух экземпляров блока для значений входных переменных:

|   | fbGEN_SIN_1 | fbGEN_SIN_2 |
| --- | --- | --- |
| PT | T#10s | T#10s |
| AM | 16 | 16 |
| OS | 0 | 8 |
| DL | 0.0 | 0.5 |

![GEN SIN](https://docs.owen.ru/book_img/2417/164980.png)

<i>Трассировка работы экземпляров ФБ **GEN_SIN**</i>

<a id="topic-125187"></a>

### GEN_SQR

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT | BOOL | Период |
| Входы | AM | REAL | Амплитуда |
| Входы | OS | REAL | Смещение сигнала относительно нуля |
| Входы | DC | REAL | Время сигнала верхнего уровня в долях от PT (0…1). |
| Входы | DL | REAL | Задержка включения в долях от PT (0…1). |
| Выходы | Q | BOOL | Флаг «знак полупериода» |
| Выходы | Out | REAL | Выход генератора |
| Используемые модули | [T_PLC_MS](#topic-125261), [MODR](#topic-124847), [MULTIME](#topic-124989) | [T_PLC_MS](#topic-125261), [MODR](#topic-124847), [MULTIME](#topic-124989) | [T_PLC_MS](#topic-125261), [MODR](#topic-124847), [MULTIME](#topic-124989) |

Функциональный блок **GEN_SQR** представляет собой генератор прямоугольного сигнала. На выходе блока **Out** циклически с периодом **PT** генерируется выходной прямоугольный сигнал с амплитудой **AM**, смещением относительно нуля **OS** и задержкой включения **DL**. Задержка используется для генерации нескольких сигналов (с помощью нескольких экземпляров ФБ), смещенных относительно друг друга, и задается в долях от периода **PT**:

- DL=0 – задержки нет;
- DL=0.5 – задержка составляет 50% от времени **PT**;
- DL=1 – задержка равна времени **PT**.

Вход **DC** определяет время сигнала верхнего уровня в долях от периода **PT**. Например, если **PT=T#1s** и **DC=0.5**, то на выходе блока в течение 500 мс будет сигнал верхнего уровня, затем в течение 500 мс – нижнего, после чего цикл повторится.

Выход **Q** имеет значение **TRUE** во время сигнала верхнего уровня на выходе генератора и **FALSE** – во время сигнала нижнего уровня.

На рисунке ниже приведена трассировка работы двух экземпляров блока для значений входных переменных:

|   | fbGEN_SQR_1 | fbGEN_SQR_2 |
| --- | --- | --- |
| PT | T#1s | T#1s |
| AM | 10 | 10 |
| OS | 0 | 5 |
| DC | 0.5 | 0.25 |
| DL | 0.0 | 0.0 |

![GEN SQR](https://docs.owen.ru/book_img/2417/164979.png)

<i>Трассировка работы экземпляров ФБ **GEN_SQR**</i>

<a id="topic-125188"></a>

### PWM_DC

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | F | TIME | Частота генератора (в Гц) |
| Входы | DC | REAL | Время сигнала верхнего уровня в долях от 1/F (0…1) |
| Выходы | Q | BOOL | Выход генератора |
| Используемые модули | [CLK_PRG](#topic-125101), [TP_X](#topic-124847) | [CLK_PRG](#topic-125101), [TP_X](#topic-124847) | [CLK_PRG](#topic-125101), [TP_X](#topic-124847) |

Функциональный блок **PWM_DC** представляет собой генератор импульсов с задаваемой частотой **F**. Вход **DC** определяет время сигнала верхнего уровня в долях от периода **PT**. Например, если **F=20 Гц** и **DC=0.1**, то период генератора = 1/F = 50 мс, причем время сигнала верхнего уровня = 0.1·50 = 5 мс, а время сигнала нижнего уровня – 45 мс.

Сгенерированный сигнал подается на выход **Q**.

![PWM DC](https://docs.owen.ru/book_img/2417/164978.png)

*Трассировка работы ФБ **PWM_DC** (F=1, DC=0.25)*

<a id="topic-125189"></a>

### PWM_PW

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | F | TIME | Частота генератора (в Гц) |
| Входы | PW | REAL | Время сигнала верхнего уровня |
| Выходы | Q | BOOL | Выход генератора |
| Используемые модули | [CLK_PRG](#topic-125101), [TP_X](#topic-124847) | [CLK_PRG](#topic-125101), [TP_X](#topic-124847) | [CLK_PRG](#topic-125101), [TP_X](#topic-124847) |

Функциональный блок **PWM_PW** представляет собой генератор импульсов с задаваемой частотой **F** и временем сигнала верхнего уровня **PW**. Сгенерированный сигнал подается на выход **Q**.

![PWM PW](https://docs.owen.ru/book_img/2417/165007.png)

*Трассировка работы ФБ **PWM_PW** (F=1, PW=T#800ms)*

<a id="topic-125190"></a>

### RMP_B

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Сигнал установки на выход макс. значения |
| Входы | PT | TIME | Время генерации |
| Входы | E | BOOL | Сигнал управления блоком |
| Входы | UP | BOOL | Направление изменения выхода |
| Входы | RST | BOOL | Сигнал установки на выход мин. значения |
| Выходы | OUT | BYTE | Выход блока |
| Выходы | BUSY | BOOL | Флаг «генератор в работе» |
| Выходы | HIGH | BOOL | Флаг «достигнуто макс. значение» |
| Выходы | LOW | BOOL | Флаг «достигнуто мин. значение» |
| Используемые модули | [\_RMP_B](#topic-125178) | [\_RMP_B](#topic-125178) | [\_RMP_B](#topic-125178) |

Функциональный блок **RMP_B** представляет собой генератор линейной функции. Пока вход **E** имеет значение **TRUE** блок находится в работе и значение выхода **OUT** линейно изменяется от текущего значения до максимального (при **UP=TRUE**) или минимального (при **UP=FALSE**). Минимальное и максимальное значения определяются диапазоном типа **BYTE** и соответственно составляют **0** и **255**. Скорость изменения выходного сигнала определяется отношением (**255/PT**). Сигнал по переднему фронту на входе **SET** устанавливает на выход максимальное значение (**255**), сигнал по переднему фронту на входе **RST** – минимальное (**0**). Выход **BUSY** имеет значение **TRUE**, пока выход меняет свое значение. Выходы **HIGH** и **LOW** принимают значение **TRUE** при достижении выходом **OUT** максимального и минимального значения соответственно.

Если вход **E** принимает значение **FALSE**, то блок прекращает работу, при этом выход **OUT** сохраняет свое последнее значение.

<a id="topic-125191"></a>

### RMP_SOFT

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Сигнал управления блоком |
| Входы | VAL | BYTE | Максимальное значение выхода |
| Входы-выходы | OUT | BYTE | Выход блока |
| Параметры | PT_OFF | TIME | Время спада сигнала |
| Параметры | PT_ON | TIME | Время нарастания сигнала |
| Используемые модули | [\_RMP_B](#topic-125178) | [\_RMP_B](#topic-125178) | [\_RMP_B](#topic-125178) |

Функциональный блок **RMP_SOFT** представляет собой генератор линейной функции с ограничением выходного сигнала. Пока вход **IN** имеет значение **TRUE**, значение выхода **OUT** линейно изменяется от нулевого значения до значения **VAL** за время **PT_ON**. Пока вход **IN** имеет значение **FALSE**, значение выхода **OUT** линейно изменяется от текущего значения до нулевого за время **PT_OFF**.

Ниже представлена трассировка работы ФБ со значениями:

VAL = 100

PT_ON=T#10s

PT_OFF=T#5s

![RMP SOFT](https://docs.owen.ru/book_img/2417/165006.png)

<i>Трассировка работы ФБ **RMP_SOFT**</i>

<a id="topic-125192"></a>

### RMP_W

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Сигнал установки на выход макс. значения |
| Входы | PT | TIME | Время генерации |
| Входы | E | BOOL | Сигнал управления блоком |
| Входы | UP | BOOL | Направление изменения выхода |
| Входы | RST | BOOL | Сигнал установки на выход мин. значения |
| Выходы | OUT | WORD | Выход блока |
| Выходы | BUSY | BOOL | Флаг «генератор в работе» |
| Выходы | HIGH | BOOL | Флаг «достигнуто макс. значение» |
| Выходы | LOW | BOOL | Флаг «достигнуто мин. значение» |
| Используемые модули | [\_RMP_W](#topic-124851) | [\_RMP_W](#topic-124851) | [\_RMP_W](#topic-124851) |

Функциональный блок **RMP_W** представляет собой генератор линейной функции. Принцип работы блока полностью соответствует блоку [RMP_B](#topic-125190), единственным отличием является тип выхода генератора – у данного блока он имеет тип **WORD**.

<a id="topic-125193"></a>

## Обработка сигналов

<a id="topic-125194"></a>

### AIN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | DWORD | Цифровой сигнал |
| Входы | Bits | BYTE | Число значащих бит |
| Входы | sign | BYTE | Номер бита, определяющего знак |
| Входы | low | REAL | Нижний предел аналогового сигнала |
| Входы | high | REAL | Верхний предел аналогового сигнала |
| Выходы | AIN | REAL | Аналоговый сигнал |

Функция **AIN** используется для преобразования цифрового сигнала **in** в аналоговый **AIN**. Вход **Bits** определяет число значащих бит цифрового сигнала (максимальное значение – **32**). Вход **sign** определяет номер бита, содержащего знак (его значение **FALSE** соответствует знаку «+»); если такого бита нет, то на вход **sign** подается значение **16# FF**. Входы **low** и **high** определяют минимальное и максимальное значение аналогового сигнала. Нумерация бит ведется с нуля.

Ниже приведено несколько примеров настройки входов для разных сигналов:

- Аналоговый сигнал в диапазоне 0–10 представлен цифровым 12-битным сигналом: Bits=12, sign=16#255, low=0.0, high=10.0;
- Аналоговый сигнал в диапазоне -10–10 представлен цифровым 14-битным сигналом (биты 0-13) с битом знака (бит 14): Bits=14, sign=14, low=-10.0, high=10.0;
- Аналоговый сигнал в диапазоне -10–10 представлен цифровым 24-битным сигналом без бита знака: Bits=24, sign=16#255, low=-10.0, high=10.0.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входной цифровой сигнал (например, от АЦП) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>DigitalValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1024<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Настройки преобразования *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>BitCount<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>     <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* 12 значащих бит *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>SignBit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>      <?Pub _font
FontColor="#DBB740"?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>16#FF<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(* Бит знака отсутствует *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>LowLimit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>     <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел аналогового сигнала *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>HighLimit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>    <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел аналогового сигнала *)<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат преобразования *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>AnalogValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции AIN *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>AnalogValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>AIN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>in<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>DigitalValue,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Bits<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>BitCount,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>sign<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>SignBit,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>low<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LowLimit,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>HighLimit<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>);<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Результат: AnalogValue = 2.5 (В)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - 1024 / 4095 = 0.25 (25% от максимального значения)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - 0.25 * 10.0 = 2.5 (В)<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   Таким образом, цифровой код 1024 соответствует напряжению 2.5 В*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125195"></a>

### AIN1

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | DWORD | Цифровой сигнал |
| Выходы | out | REAL | Аналоговый сигнал |
| Выходы | sign | BOOL | Знак сигнала |
| Выходы | error | BOOL | Флаг «ошибка» |
| Выходы | overflow | BOOL | Флаг «переполнение» |
| Параметры | sign_bit | INT | Номер бита, определяющего знак |
| Параметры | error_bit | INT | Номер бита ошибка |
| Параметры | error_code_en | BOOL | Бит обработки кода ошибки |
| Параметры | error_code | DWORD | Код ошибки |
| Параметры | overflow_bit | INT | Номер бита переполнения |
| Параметры | overflow \_code_en | BOOL | Бит обработки кода переполнения |
| Параметры | overflow \_code | DWORD | Код переполнения |
| Параметры | Bit_0 | INT | Номер первого значащего бита |
| Параметры | Bit_N | INT | Номер последнего значащего бита |
| Параметры | out_min | REAL | Нижний предел аналогового сигнала |
| Параметры | out_max | REAL | Верхний предел аналогового сигнала |
| Параметры | code_min | DWORD | Нижний предел цифрового сигнала |
| Параметры | code_max | DWORD | Верхний предел цифрового сигнала |
| Параметры | error_output | REAL | Значение выхода в случае ошибки |
| Параметры | overflow_output | REAL | Значение выхода в случае переполнения |

Функциональный блок **AIN1** используется для преобразования цифрового сигнала **in** в аналоговый **out**. Параметр **sign_bit** определяет номер бита, содержащего знак (его значение **FALSE** соответствует знаку «+»); если такого бита нет, то вход можно оставить пустым. Нумерация бит ведется с нуля.

Параметр **error_bit** определяет номера бита ошибки; если такого бита нет, то вход можно оставить пустым. Некоторые АЦП в случае ошибки транслируют на выход ее код. Этот код может быть задан в параметре **error_code**; параметр **error_code_en** в этом случае должен иметь значение **TRUE** для разрешения обработки кода. Параметр **error_output** определяет значение, которое будет подано на выход **out** в том случае, если диагностирована ошибка.

Параметр **overflow_bit** определяет номера бита переполнения (выхода за диапазон допустимых значений) если такого бита нет, то вход можно оставить пустым. Некоторые АЦП в случае ошибки переполнения транслируют на выход ее код. Этот код может быть задан в параметре **overflow_code**; параметр **overflow_code_en** в этом случае должен иметь значение **TRUE** для разрешения обработки кода. Параметры **code_min** и **code_max** определяют минимальное и максимальное значение цифрового сигнала. Параметр **overflow_output** определяет значение, которое будет подано на выход **out** в том случае, если выходной сигнал выходит за допустимый диапазон.

Параметры **out_min** и **out_max** определяют минимальное и максимальное значение аналогового сигнала.

Параметры **Bit_0** и **Bit_N** определяют номера первого и последнего значащих бит.

Выход **out** содержит полученное аналоговое значение. Выход **sign** определяет значение бита знака. Выходы **error** и **overflow** принимают значение **TRUE** при возникновении ошибки и переполнения соответственно.

<a id="topic-125196"></a>

### AOUT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | REAL | Аналоговый сигнал |
| Выходы | AOUT | DWORD | Цифровой сигнал |
| Параметры | Bits | BYTE | Число значащих бит |
| Параметры | sign | BYTE | Номер бита, определяющего знак |
| Параметры | low | REAL | Нижний предел аналогового сигнала |
| Параметры | high | REAL | Верхний предел аналогового сигнала |

Функция **AOUT** используется для преобразования аналогового сигнала **in** в цифровой **AOUT**. Вход **Bits**определяет число значащих бит цифрового сигнала (максимальное значение – 32). Вход **sign** определяет номер бита, содержащего знак (его значение **FALSE** соответствует знаку «+»); если такой бит не требуется, то на вход подается значение **16#FF**. Входы **low** и **high** определяют минимальное и максимальное значение аналогового сигнала. Нумерация бит ведется с нуля.

Ниже приведено несколько примеров настройки входов для разных сигналов.

- Аналоговый сигнал в диапазоне 0–10 преобразуется в цифровой 12-битный сигнал: Bits=12, sign=16#255, low=0.0, high=10.0;
- Аналоговый сигнал в диапазоне -10–10 преобразуется в цифровой 14-битный сигнал (биты 0-13) с битом знака (бит 14): Bits=14, sign=14, low=-10.0, high=10.0;
- Аналоговый сигнал в диапазоне -10–10 преобразуется в цифровой 24-битный сигнал без бита знака: Bits=24, sign=16#255, low=-10.0, high=10.0.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входной аналоговый сигнал *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>AnalogValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>7.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(*Напряжение 7.5 В*)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Настройки преобразования *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>BitCount<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>     <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(*12 значащих бит*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>SignBit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>      <?Pub _font
FontColor="#DBB740"?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>16#FF<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>    <?Pub _font
FontColor="#5DA35B"?>(*Бит знака отсутствует*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>LowLimit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>     <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(*Нижний предел 0 В*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>HighLimit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>    <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(*Верхний предел 10 В*)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат преобразования *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>DigitalValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции AOUT *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>DigitalValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>AOUT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>in<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>AnalogValue,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Bits<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>BitCount,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>sign<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>SignBit,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>low<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LowLimit,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>HighLimit<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Результат: DigitalValue = 3072 (десятичное) или 16#0C00 (шестнадцатеричное)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   7.5 / 10.0 = 0.75 (75% от диапазона)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   0.75 * 4095 = 3071.25 ≈ 3072*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125197"></a>

### AOUT1

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | REAL | Аналоговый сигнал |
| Выходы | AOUT | DWORD | Цифровой сигнал |
| Параметры | Bits | BYTE | Число значащих бит |
| Параметры | sign | BYTE | Номер бита, определяющего знак |
| Параметры | low | REAL | Нижний предел аналогового сигнала |
| Параметры | high | REAL | Верхний предел аналогового сигнала |
| Параметры |   |   |   |
| Используемые модули | [SIGN_R](#topic-124860) | [SIGN_R](#topic-124860) | [SIGN_R](#topic-124860) |

Функция **AOUT1** используется для преобразования аналогового сигнала **in** в цифровой **AOUT1**. Параметр **sign_bit** определяет номер бита, содержащего знак (его значение **FALSE** соответствует знаку «+»); если такой бит не требуется, то вход можно оставить пустым. Параметры **Bit_0** и **Bit_N** определяют номера первого и последнего значащих бит. Входы **low** и **high** определяют минимальное и максимальное значение аналогового сигнала. Нумерация бит ведется с нуля.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входной аналоговый сигнал *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>AnalogValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* 2.5 В *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Настройки преобразования *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>FirstBit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>     <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(*Номер первого значащего бита*)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>LastBit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>      <?Pub _font
FontColor="#DBB740"?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>11<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(*Номер последнего значащего бита 
                                  (всего 12 бит: 0..11)*)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>SignBit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>      <?Pub _font
FontColor="#DBB740"?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>31<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(*31-й бит — знак*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>LowLimit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>     <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>  <?Pub _font FontColor="#5DA35B"?>(*Нижний предел -10 В*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>HighLimit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>    <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(*Верхний предел 10 В*)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат преобразования*)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>DigitalValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции AOUT1 *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>DigitalValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>AOUT1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>in<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>AnalogValue,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Bit_0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>FirstBit,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Bit_N<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LastBit,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>sign<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>SignBit,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>low<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LowLimit,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>high<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>HighLimit<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Итоговое значение: 31-й бит = 0, младшие 12 бит = 2559*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125198"></a>

### BYTE_TO_RANGE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | x | BYTE | Исходное значение |
| Входы | low | REAL | Нижний предел отмасштабированного значения |
| Входы | high | REAL | Верхний предел отмасштабированного значения |
| Выходы | BYTE_TO_RANGE | REAL | Отмасштабированное значение |

Функция **BYTE_TO_RANGE** линейно масштабирует входное целочисленное значение **x** из диапазона (**0…255**) в значение с плавающей точкой из диапазона (**low…high**). См. также обратную функцию [RANGE_TO_BYTE](#topic-125214).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входное значение *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>RawValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>    <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>25<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* 25 из диапазона 0..255 *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Границы масштабирования *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>LowLimit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>    <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>HighLimit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>   <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ScaledValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции BYTE_TO_RANGE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ScaledValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BYTE_TO_RANGE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>x<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>RawValue,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>low<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LowLimit,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>HighLimit<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Результат: ScaledValue ≈ 9.803922, т.к<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   25 / 255 ≈ 0.09804 (9.8% от диапазона)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   0.09803922 * (100.0 - 0.0) = 9.803922<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   То есть значение 25 из диапазона 0..255 
   соответствует 9.8 из диапазона 0.0..100.0*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?> </code></td></tr></tbody></table></div></div>

<a id="topic-125199"></a>

### DELAY

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Исходное значение |
| Входы | N | INT | Кол-во циклов задержки |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | OUT | REAL | Значение с задержкой |
| Используемые модули | [INC1](#topic-124839) | [INC1](#topic-124839) | [INC1](#topic-124839) |

Функциональный блок **DELAY** транслирует на выход **OUT** значение входа **IN** спустя время задержки, равное **N** циклов ПЛК. По переднему фронту входа **RST** память блока очищается, и задержка начинает отсчитываться заново.

![DELAY](https://docs.owen.ru/book_img/2417/165005.png)

*Трассировка работы ФБ **DELAY** для ПЛК с временем цикла=100 мс, N=10*

<a id="topic-125200"></a>

### DELAY_4

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Исходное значение |
| Выходы | OUT1 | REAL | Значение с задержкой (1 цикл) |
| Выходы | OUT2 | REAL | Значение с задержкой (2 цикла) |
| Выходы | OUT3 | REAL | Значение с задержкой (3 цикла) |
| Выходы | OUT4 | REAL | Значение с задержкой (4 цикла) |

Функциональный блок **DELAY_4** транслирует на выходы **OUT1…OUT4** значение входа **IN** спустя время задержки, равное 1…4 цикла ПЛК.

![DELAY 4](https://docs.owen.ru/book_img/2417/165004.png)

*Трассировка работы ФБ **DELAY_4** для ПЛК с временем цикла=1 с*

<a id="topic-125201"></a>

### FADE

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN1 | REAL | Значение 1 |
| Входы | IN2 | REAL | Значение 2 |
| Входы | F | BOOL | Направление изменения |
| Входы | TF | TIME | Время переключения значений |
| Входы | rst | BOOL | Сигнал сброса блока |
| Выходы | Y | REAL | Выход блока |
| Используемые модули | [RMP_W](#topic-125192) | [RMP_W](#topic-125192) | [RMP_W](#topic-125192) |

Функциональный блок **FADE** реализует плавное переключение входных значений **IN1** и **IN2** на выходе **Y** – от меньшего к большему, если вход **F** имеет значение **TRUE**, или от большего к меньшему, если вход **F** имеет значение **FALSE**.

Вход **TF** определяет время переключения (**T** – время с начала работы блока):

- Y(T=0)=IN1
- Y(T=TF)=IN2
- Y(0\<T\<TF)=(T/TF) \* IN1 + (1 – T/TF) \* IN2

По переднему фронту входа **RST** выход **Y** принимает значение **IN1** (если **F=FALSE**) или **IN2** (если **F=TRUE**).

![FADE](https://docs.owen.ru/book_img/2417/165003.png)

*Трассировка работы ФБ **FADE** (IN1=25.0, IN=70.0, TF=T#20s)*

<a id="topic-125202"></a>

### FILTER_DW

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | DWORD | Фильтруемое значение |
| Входы | T | TIME | Постоянная времени фильтра |
| Выходы | Y | DWORD | Отфильтрованное значение |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **FILTER_DW** представляет собой фильтр нижних частот для входного значения **X** типа **DWORD**. Это может быть полезным при фильтрации шума в сигналах от датчиков. Вход **T** определяет постоянную времени фильтра, которая связана с частотой пропускания следующей формулой: ![FILTER DW формула](https://docs.owen.ru/book_img/2417/165002.png)

На выход **Y** подается отфильтрованное значение.

![FILTER DW](https://docs.owen.ru/book_img/2417/165001.png)

*Трассировка работы ФБ **FILTER_DW** (T=T#1s)*

<a id="topic-125203"></a>

### FILTER_I

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | INT | Фильтруемое значение |
| Входы | T | TIME | Постоянная времени фильтра |
| Выходы | Y | INT | Отфильтрованное значение |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **FILTER_I** представляет собой фильтр нижних частот для входного значения **X** типа **INT**. Это может быть полезным при фильтрации шума в сигналах от датчиков. Вход **T** определяет постоянную времени фильтра, которая связана с частотой пропускания следующей формулой: ![FILTER DW формула](https://docs.owen.ru/book_img/2417/165002.png)

На выход **Y** подается отфильтрованное значение.

Трассировка работы **FILTER_I** аналогичного по принципу блока **FILTER_DW** (который отличается только типом фильтруемой переменной).

<a id="topic-125204"></a>

### FILTER_MAV_DW

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | DWORD | Фильтруемое значение |
| Входы | N | UINT | Число точек усреднения (0..31) |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Y | DWORD | Отфильтрованное значение |
| Используемые модули | [INC1](#topic-124839) | [INC1](#topic-124839) | [INC1](#topic-124839) |

Функциональный блок **FILTER_MAV_DW** представляет собой фильтр скользящей средней для входного значения **X** типа **DWORD**. Это может быть полезным для исключения влияния на сигнал случайной составляющей. Вход **N** определяет сохраняемое число значений входа **X** (**N** принадлежит диапазону 0...31; **0** – только текущее значение, **1** – текущее и предыдущее и т.д.) для вычисления текущего отфильтрованного значения. По переднему фронту входа **RST** информация о предыдущих входных значениях удаляется.

На выход **Y** подается отфильтрованное значение, вычисленное по формуле (**K** – номер текущего цикла ПЛК):

![FILTER MAV DW](https://docs.owen.ru/book_img/2417/165000.png)

![FILTER MAV DW1](https://docs.owen.ru/book_img/2417/164999.png)

*Трассировка работы ФБ **FILTER_MAV_DW** (N=30)*

<a id="topic-125205"></a>

### FILTER_MAV_W

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | WORD | Фильтруемое значение |
| Входы | N | UINT | Число точек усреднения (0..31) |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Y | WORD | Отфильтрованное значение |
| Используемые модули | [INC1](#topic-124839) | [INC1](#topic-124839) | [INC1](#topic-124839) |

Функциональный блок FILTER_MAV_W представляет собой фильтр скользящей средней для входного значения **X** типа **WORD**. Принцип работы блока полностью соответствует блоку [FILTER_MAV_DW](#topic-125204), единственным отличием является тип фильтруемого значения.

<a id="topic-125206"></a>

### FILTER_W

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | WORD | Фильтруемое значение |
| Входы | T | TIME | Постоянная времени фильтра |
| Выходы | Y | WORD | Отфильтрованное значение |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **FILTER****\_****W** представляет собой [фильтр нижних частот](https://ru.wikipedia.org/wiki/%D0%A4%D0%B8%D0%BB%D1%8C%D1%82%D1%80_%D0%BD%D0%B8%D0%B6%D0%BD%D0%B8%D1%85_%D1%87%D0%B0%D1%81%D1%82%D0%BE%D1%82) для входного значения **X** типа **WORD**. Это может быть полезным при фильтрации шума в сигналах от датчиков. Принцип работы блока полностью соответствует блоку [FILTER_DW](#topic-125202), единственным отличием является тип фильтруемого значения.

<a id="topic-125207"></a>

### FILTER_WAV

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Фильтруемое значение |
| Входы | W | ARRAY \[0..15\] OF REAL | Массив коэффициентов |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Y | REAL | Отфильтрованное значение |
| Используемые модули | [INC1](#topic-124839), [DEC1](#topic-124818) | [INC1](#topic-124839), [DEC1](#topic-124818) | [INC1](#topic-124839), [DEC1](#topic-124818) |

Функциональный блок **FILTER_WAV** представляет собой КИХ-фильтр для входного значения **X** типа **REAL**. Вход **W** определяет весовые коэффициенты для входных значений предыдущих 16-ти циклов ПЛК. На выход **Y** подается отфильтрованное значение, вычисленное по формуле (**K** – номер текущего цикла ПЛК): ![FILTER WAV](https://docs.owen.ru/book_img/2417/164998.png)

По переднему фронту входа **RST** информация о предыдущих входных значениях удаляется.

<a id="topic-125208"></a>

### MIX

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A | REAL | Значение 1 |
| Входы | B | REAL | Значение 2 |
| Входы | M | REAL | Коэффициент смешения |
| Выходы | MIX | REAL | Вычисленное значение |

Функция **MIX** возвращается значение, вычисленное по формуле:

```
MIX = (M - 1) * A + M * B
```

Подразумевается, что значение коэффициента смешения **M** должно принадлежать диапазону **\[0,1\]**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Исходные значения *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>ValueA<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>    <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>6.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* Первое значение *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ValueB<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>    <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>15.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* Второе значение *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Коэффициент смешения *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>MixFactor<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.6666<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* 66.66% от B, 33.34% от A *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Result<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>    <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции MIX *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>MIX<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>A<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>ValueA,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>B<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>ValueB,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>M<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>MixFactor<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: Result ≈ 12.0*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125209"></a>

### MUX_R2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN0 | REAL | Информационный вход 0 |
| Входы | IN1 | REAL | Информационный вход 1 |
| Входы | A | BOOL | Адресный вход |
| Выходы | MUX_R2 | REAL | Выход мультиплексора |

Функция **MUX_2R** реализует мультиплексор для двух **REAL** переменных. Принцип работы функции:

- если A=FALSE, то MUX_R2:=IN0;
- если A=TRUE, то MUX_R2:=IN1.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Информационные входы *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Input0<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>   <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* Значение при A = FALSE *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Input1<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>   <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>20.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* Значение при A = TRUE *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Адресный вход *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Selector<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* Выбор входа *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Output<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>   <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции MUX_R2 *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Output<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>MUX_R2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>IN0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Input0,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>IN1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Input1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>A<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Selector<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: Output = 10.0*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125210"></a>

### MUX_R4

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN0 | BOOL | Информационный вход 0 |
| Входы | IN1 | BOOL | Информационный вход 1 |
| Входы | IN2 | BOOL | Информационный вход 2 |
| Входы | IN3 | BOOL | Информационный вход 3 |
| Входы | A0 | BOOL | Адресный вход 0 |
| Входы | A1 | BOOL | Адресный вход 1 |
| Выходы | MUX_R4 | REAL | Выход мультиплексора |

Функция **MUX_4R** реализует мультиплексор для четырех **REAL** переменных. Принцип работы функции:

- если A0=FALSE и A1=FALSE, то MUX_4R:=IN0;
- если A0=TRUE и A1=FALSE, тоMUX_4R:=IN1;
- если A0=FALSE и A1=TRUE то MUX_4R:=IN2;
- если A0=TRUE и A1=TRUE, то MUX_4R:=IN3.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Информационные входы (4 источника) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Input0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* Выбирается при A0=FALSE, A1=FALSE *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Input1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>20.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* Выбирается при A0=TRUE,  A1=FALSE *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Input2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>30.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* Выбирается при A0=FALSE, A1=TRUE *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Input3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>40.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* Выбирается при A0=TRUE,  A1=TRUE *)<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>(* Адресные входы *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Address0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* Младший бит адреса *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Address1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* Старший бит адреса *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат *)<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Output<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции MUX_R4 *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Output<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>MUX_R4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>IN0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Input0,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>IN1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Input1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>IN2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Input2,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>IN3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Input3,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>A0<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Address0,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>A1<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Address1<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: Output = 10.0*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125211"></a>

### OFFSET

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Исходное значение |
| Входы | O1 | BOOL | Режим «смещение 1» |
| Входы | O2 | BOOL | Режим «смещение 2» |
| Входы | O3 | BOOL | Режим «смещение 3» |
| Входы | O4 | BOOL | Режим «смещение 4» |
| Входы | D | BOOL | Режим «имитация входа» |
| Входы | Offset_1 | REAL | Коэффициент смещения 1 |
| Входы | Offset_2 | REAL | Коэффициент смещения 2 |
| Входы | Offset_3 | REAL | Коэффициент смещения 3 |
| Входы | Offset_4 | REAL | Коэффициент смещения 4 |
| Входы | default | REAL | Значение входа в имитации |
| Выходы | OFFSET | REAL | Смещенное значение |

Функция **OFFSET** возвращает смещенное значение входной переменной **X**. Входы **O1…O4** определяют, какие коэффициенты смещения будут прибавляться к входному значению, а входы **Offset_1…Offset_4** определяют величины этих коэффициентов. Если одновременно будут активны несколько входов, то к входному значению будут прибавлены величины нескольких коэффициентов. Если вход **D** имеет значение **TRUE**, то функция вместо **X** использует значение **default**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входное значение *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>InputValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Режимы смещения *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>EnableOffset1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* Включаем смещение 1 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>EnableOffset2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>EnableOffset3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>EnableOffset4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Коэффициенты смещения *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Offset_1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Offset_2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Offset_3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Offset_4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Режим имитации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Simulate<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>DefaultValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>50.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции OFFSET *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?><?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>OFFSET<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InputValue,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>EnableOffset1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>EnableOffset2,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>EnableOffset3,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>EnableOffset4,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>D<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Simulate,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Offset_1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Offset_1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Offset_2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Offset_2,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Offset_3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Offset_3,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Offset_4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Offset_4,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>default<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>DefaultValue<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: Result = 110.0*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125212"></a>

### OFFSET2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Исходное значение |
| Входы | O1 | BOOL | Режим «смещение 1» |
| Входы | O2 | BOOL | Режим «смещение 2» |
| Входы | O3 | BOOL | Режим «смещение 3» |
| Входы | O4 | BOOL | Режим «смещение 4» |
| Входы | D | BOOL | Режим «имитация входа» |
| Входы | Offset_1 | REAL | Коэффициент смещения 1 |
| Входы | Offset_2 | REAL | Коэффициент смещения 2 |
| Входы | Offset_3 | REAL | Коэффициент смещения 3 |
| Входы | Offset_4 | REAL | Коэффициент смещения 4 |
| Входы | default | REAL | Значение входа в имитации |
| Выходы | OFFSET2 | REAL | Смещенное значение |

Функция **OFFSET2** возвращает смещенное значение входной переменной **X**. Входы **O1…O4** определяют, какие коэффициенты смещения будут прибавляться к входному значению, а входы **Offset_1…Offset_4** определяют величины этих коэффициентов. Если одновременно будут активны несколько входов, то к входному значению будет прибавлен коэффициент входа с наибольшим номером (в отличие от функции **OFFSET**, в которой коэффициенты складываются). Если вход **D** имеет значение **TRUE**, то функция вместо X использует значение **default**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входное значение *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>InputValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Режимы смещения *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>EnableOffset1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* Включаем смещение 1 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>EnableOffset2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>EnableOffset3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>EnableOffset4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Коэффициенты смещения *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Offset_1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Offset_2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>20.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Offset_3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>30.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Offset_4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>40.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Режим имитации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Simulate<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>DefaultValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>50.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции OFFSET2 *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>OFFSET2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InputValue,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>EnableOffset1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>EnableOffset2,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>EnableOffset3,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>EnableOffset4,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>D<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Simulate,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Offset_1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Offset_1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Offset_2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Offset_2,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Offset_3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Offset_3,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Offset_4<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Offset_4,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>default<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>DefaultValue<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: Result = 110.0*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125213"></a>

### OVERRIDE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X1 | REAL | Исходное значение 1 |
| Входы | X2 | REAL | Исходное значение 2 |
| Входы | X3 | REAL | Исходное значение 3 |
| Входы | E1 | BOOL | Активация значения 1 |
| Входы | E2 | BOOL | Активация значения 2 |
| Входы | E3 | BOOL | Активация значения 3 |
| Выходы | OVERRIDE | REAL | Наибольшее активное значение |

Функция **OVERRIDE** возвращает наибольшее из активных значений по модулю**X1…X3**. Активность значения определяется входным сигналом **E1…E3** (**TRUE** – значение активно). Если активных значений нет, то функция возвращает ноль.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Исходные значения *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Value1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>50.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Value2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>30.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Value3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>20.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Флаги активности *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Enable1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* Значение 1 активно *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Enable2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Enable3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции OVERRIDE *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>OVERRIDE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>X1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Value1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>X2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Value2,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>X3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Value3,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>E1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Enable1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>E2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Enable2,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>E3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Enable3<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: Result = 50.0*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?> </code></td></tr></tbody></table></div></div>

<a id="topic-125214"></a>

### RANGE_TO_BYTE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Исходное значение |
| Входы | low | REAL | Нижний предел исходного значения |
| Входы | high | REAL | Верхний предел исходного значения |
| Выходы | RANGE_TO_BYTE | BYTE | Отмасштабированное значение |

Функция **RANGE_TO_BYTE** линейное масштабирует входное значение с плавающей точкой **X** из диапазона (**low…high**) в целочисленное значение типа **BYTE** из диапазона (**0…255**). См. также обратную функцию [BYTE_TO_RANGE](#topic-125198).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входное значение с плавающей точкой *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>25.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(* 25.0 из диапазона 0.0…100.0 *)<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>(* Границы исходного диапазона *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>LowLimit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>   <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>HighLimit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат масштабирования *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>OutputByte<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции RANGE_TO_BYTE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>OutputByte<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>RANGE_TO_BYTE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InputValue,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>low<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LowLimit<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font
?>
    <?Pub _font FontColor="#DCDCDC"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>HighLimit<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: OutputByte = 64*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?> </code></td></tr></tbody></table></div></div>

<a id="topic-125215"></a>

### RANGE_TO_WORD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Исходное значение |
| Входы | low | REAL | Нижний предел исходного значения |
| Входы | high | REAL | Верхний предел исходного значения |
| Выходы | RANGE_TO_WORD | WORD | Отмасштабированное значение |

Функция **RANGE_TO_WORD** линейное масштабирует входное значение с плавающей точкой **X** из диапазона (**low…high**) в целочисленное значение типа **WORD** из диапазона (**0…65535**). См. также обратную функцию [WORD_TO_RANGE](#topic-125236).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входное значение с плавающей точкой *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>25.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(* 25.0 из диапазона 0.0…100.0 *)<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>(* Границы исходного диапазона *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>LowLimit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>   <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>HighLimit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат масштабирования *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>OutputWord<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>WORD<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции RANGE_TO_WORD *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>OutputWord<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>RANGE_TO_WORD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InputValue,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>low<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LowLimit<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font
?>
    <?Pub _font FontColor="#DCDCDC"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>HighLimit<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: OutputWord = 16383*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?> </code></td></tr></tbody></table></div></div>

<a id="topic-125216"></a>

### SCALE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Исходное значение |
| Входы | K | REAL | Коэффициент масштабирования |
| Входы | O | REAL | Сдвиг |
| Входы | MX | REAL | Верхний предел отмасштабированного значения |
| Входы | MN | REAL | Нижний предел отмасштабированного значения |
| Выходы | SCALE | REAL | Отмасштабированное значение |

Функция **SCALE** возвращает значение линейной функции с коэффициентом **K** и сдвигом **O** для аргумента **X**. Входы **MN** и **MX** определяют нижний и верхний предел возвращаемого значения.

```
SCALE = LIMIT(MN, K*X + O, MX)
```

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входное значение *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>InputValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>25.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* Исходное значение *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Коэффициенты масштабирования *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Gain<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>       <?Pub _font
FontColor="#DBB740"?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* Коэффициент масштабирования K *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Offset<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>     <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* Сдвиг O *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Границы ограничения *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>MinLimit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>15.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел MN *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>MaxLimit<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>75.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел MX *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Result<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>    <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции SCALE *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SCALE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InputValue,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>K<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Gain,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Offset,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>MX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>MaxLimit,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>MN<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>MinLimit<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Результат: Result = 60.0<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   Расчет:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   1. Промежуточное значение: K * X + O = 2.0 * 25.0 + 10.0 = 60.0<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   2. Проверка ограничений: 15.0 &lt;= 60.0 &lt;= 75.0<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   3. Значение в пределах диапазона, возвращается 60.0 *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>  </code></td></tr></tbody></table></div></div>

<a id="topic-125217"></a>

### SCALE_B

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | BYTE | Исходное значение |
| Входы | I_LO | BYTE | Нижний предел исходного значения |
| Входы | I_HI | BYTE | Верхний предел исходного значения |
| Входы | O_LO | REAL | Нижний предел отмасштабированного значения |
| Входы | O_HI | REAL | Верхний предел отмасштабированного значения |
| Выходы | SCALE_B | REAL | Отмасштабированное значение |

Функция **SCALE_B** линейно масштабирует входное целочисленное значение **X** из диапазона (**I_LO…I_HI**) в значение с плавающей точкой из диапазона (**O_LO…O_HI**).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входное целочисленное значение *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>32<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>            <?Pub _font
FontColor="#5DA35B"?>(* 32 из диапазона 0…128 *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Границы исходного диапазона (целочисленные) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InLow<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>       <?Pub _font
FontColor="#DBB740"?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>             <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InHigh<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>      <?Pub _font
FontColor="#DBB740"?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>128<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>           <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Границы выходного диапазона (вещественные) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>OutLow<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>      <?Pub _font
FontColor="#DBB740"?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>OutHigh<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>     <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел *)<?Pub /_font?>
   <?Pub _font FontColor="#5DA35B"?>(* Результат масштабирования *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>OutputValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции SCALE_B *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>OutputValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SCALE_B<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InputValue,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>I_LO<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InLow,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>I_HI<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InHigh,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O_LO<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>OutLow,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O_HI<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>OutHigh<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: OutputValue = -5.0*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>  </code></td></tr></tbody></table></div></div>

<a id="topic-125218"></a>

### SCALE_B2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN1 | BYTE | Исходное значение 1 |
| Входы | IN2 | BYTE | Исходное значение 2 |
| Входы | K | REAL | Коэффициент |
| Входы | O | REAL | Сдвиг |
| Выходы | SCALE_B2 | REAL | Рассчитанное значение |
| Параметры | IN1_MIN | REAL | Нижний предел отмасштабированного значения 1 |
| Параметры | IN1_MAX | REAL | Верхний предел отмасштабированного значения 1 |
| Параметры | IN2_MIN | REAL | Нижний предел отмасштабированного значения 2 |
| Параметры | IN2_MAX | REAL | Верхний предел отмасштабированного значения 2 |

Функция **SCALE_B2** линейно масштабирует входное целочисленное значение **IN#** из диапазона (**0…255**) в значение с плавающей точкой из диапазона (**IN#\_MIN…IN#\_MAX**), суммирует их и возвращает для суммы значение линейного функции с коэффициентом **K** и сдвигом **O**.

![SCALE B2](https://docs.owen.ru/book_img/2417/165047.png)

Это может быть использовано, например, для расчета общего количества воздуха в системе вентиляции.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входные целочисленные значения (0…255) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Input1<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>32<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                <?Pub _font
FontColor="#5DA35B"?>(* Первое значение *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Input2<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>64<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                <?Pub _font
FontColor="#5DA35B"?>(* Второе значение *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Коэффициенты масштабирования результата *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Gain<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>   <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>               <?Pub _font
FontColor="#5DA35B"?>(* Коэффициент K *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Offset<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>               <?Pub _font
FontColor="#5DA35B"?>(* Сдвиг O *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Границы масштабирования для IN1 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>In1_Min<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>              <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел для IN1 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>In1_Max<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>              <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел для IN1 *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Границы масштабирования для IN2 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>In2_Min<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>              <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел для IN2 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>In2_Max<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>8.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>              <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел для IN2 *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Result<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции SCALE_B2 *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SCALE_B2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>IN1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Input1<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font
?>
    <?Pub _font FontColor="#DCDCDC"?>IN2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Input2<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font
?>
    <?Pub _font FontColor="#DCDCDC"?>K<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Gain<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font
?>
    <?Pub _font FontColor="#DCDCDC"?>O<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Offset<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font
?>
    <?Pub _font FontColor="#DCDCDC"?>IN1_MIN<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>In1_Min<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font
?>
    <?Pub _font FontColor="#DCDCDC"?>IN1_MAX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>In1_Max<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font
?>
    <?Pub _font FontColor="#DCDCDC"?>IN2_MIN<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>In2_Min<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font
?>
    <?Pub _font FontColor="#DCDCDC"?>IN2_MAX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>In2_Max<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Результат 10.0235294118*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>   </code></td></tr></tbody></table></div></div>

<a id="topic-125219"></a>

### SCALE_B4

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN1…IN4 | BYTE | Исходное значение 1…4 |
| Входы | K | REAL | Коэффициент |
| Входы | O | REAL | Сдвиг |
| Выходы | SCALE_B4 | REAL | Рассчитанное значение |
| Параметры | IN1_MIN…IN4_MIN | REAL | Нижний предел отмасштабированного значения 1…4 |
| Параметры | IN1_MAX…IN4_MAX | REAL | Верхний предел отмасштабированного значения 1…4 |

Функция **SCALE_B4** линейно масштабирует входное целочисленное значение **IN#** из диапазона (**0…255**) в значение с плавающей точкой из диапазона (**IN#\_MIN…IN#\_MAX**), суммирует их и возвращает для суммы значение линейного функции с коэффициентом **K** и сдвигом **O**.

![SCALE B4](https://docs.owen.ru/book_img/2417/165046.png)

Это может быть использовано, например, для расчета общего количества воздуха в системе вентиляции.

<a id="topic-125220"></a>

### SCALE_B8

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN1…IN8 | BYTE | Исходное значение 1…8 |
| Входы | K | REAL | Коэффициент |
| Входы | O | REAL | Сдвиг |
| Выходы | SCALE_B8 | REAL | Рассчитанное значение |
| Параметры | IN1_MIN…IN8_MIN | REAL | Нижний предел отмасштабированного значения 1…8 |
| Параметры | IN1_MAX…IN8_MAX | REAL | Верхний предел отмасштабированного значения 1…8 |

Функция **SCALE_B8** линейно масштабирует входное целочисленное значение **IN#** из диапазона (**0…255**) в значение с плавающей точкой из диапазона (**IN#\_MIN…IN#\_MAX**), суммирует их и возвращает для суммы значение линейного функции с коэффициентом **K** и сдвигом **O**.

![SCALE B8](https://docs.owen.ru/book_img/2417/165045.png)

Это может быть использовано, например, для расчета общего количества воздуха в системе вентиляции.

<a id="topic-125221"></a>

### SCALE_D

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | DWORD | Исходное значение |
| Входы | I_LO | DWORD | Нижний предел исходного значения |
| Входы | I_HI | DWORD | Верхний предел исходного значения |
| Входы | O_LO | REAL | Нижний предел отмасштабированного значения |
| Входы | O_HI | REAL | Верхний предел отмасштабированного значения |
| Выходы | SCALE_D | REAL | Отмасштабированное значение |

Функция **SCALE_D** линейно масштабирует входное целочисленное значение **X** из диапазона (**I_LO…I_HI**) в значение с плавающей точкой из диапазона (**O_LO…O_HI**).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входное целочисленное значение DWORD *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>75000<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* 75000 из диапазона 0…100000 *)<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>(* Границы исходного диапазона (DWORD) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InLow<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>       <?Pub _font
FontColor="#DBB740"?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>            <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InHigh<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>      <?Pub _font
FontColor="#DBB740"?>DWORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>100000<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Границы выходного диапазона (REAL) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>OutLow<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>      <?Pub _font
FontColor="#DBB740"?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>OutHigh<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>     <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат масштабирования *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>OutputValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции SCALE_D *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>OutputValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SCALE_D<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InputValue,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>I_LO<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InLow,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>I_HI<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InHigh,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O_LO<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>OutLow,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O_HI<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>OutHigh<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат = 5.0*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>   </code></td></tr></tbody></table></div></div>

<a id="topic-125222"></a>

### SCALE_R

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Исходное значение |
| Входы | I_LO | REAL | Нижний предел исходного значения |
| Входы | I_HI | REAL | Верхний предел исходного значения |
| Входы | O_LO | REAL | Нижний предел отмасштабированного значения |
| Входы | O_HI | REAL | Верхний предел отмасштабированного значения |
| Выходы | SCALE_D | REAL | Отмасштабированное значение |

Функция **SCALE_R** линейно масштабирует входное значение с плавающей точкой **X** из диапазона (**I_LO…I_HI**) в диапазон (**O_LO…O_HI**).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входное значение с плавающей точкой *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>12.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Границы исходного диапазона (REAL) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InLow<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>       <?Pub _font
FontColor="#DBB740"?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>4.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>            <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InHigh<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>      <?Pub _font
FontColor="#DBB740"?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>20.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Границы выходного диапазона (REAL) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>OutLow<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>      <?Pub _font
FontColor="#DBB740"?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>OutHigh<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>     <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат масштабирования *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>OutputValue<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции SCALE_R *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>OutputValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SCALE_R<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InputValue,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>I_LO<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InLow,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>I_HI<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InHigh,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O_LO<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>OutLow,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O_HI<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>OutHigh<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат = 50.0*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>   </code></td></tr></tbody></table></div></div>

<a id="topic-125223"></a>

### SCALE_X2

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN1 | BOOL | Исходное значение 1 |
| Входы | IN2 | BOOL | Исходное значение 2 |
| Входы | K | REAL | Коэффициент |
| Входы | O | REAL | Сдвиг |
| Выходы | SCALE_X2 | REAL | Отмасштабированное значение |
| Параметры | IN1_MIN | REAL | Отмасштабированное значение 1 для IN1=FALSE |
| Параметры | IN1_MAX | REAL | Отмасштабированное значение 1 для IN1=TRUE |
| Параметры | IN2_MIN | REAL | Отмасштабированное значение 2 для IN2=FALSE |
| Параметры | IN2_MAX | REAL | Отмасштабированное значение 2 для IN2=TRUE |

Функция **SCALE_X2** преобразует входное булевское значение **IN#** в значение с плавающей точкой (**IN#\_MIN** для **IN#=FALSE** и **IN#\_MAX** для **IN#=TRUE**), суммирует их и возвращает для суммы значение линейного функции с коэффициентом **K** и сдвигом **O**.

![SCALE X2](https://docs.owen.ru/book_img/2417/165044.png)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входные булевые значения *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Input1<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>TRUE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>              <?Pub _font
FontColor="#5DA35B"?>(* Первое значение *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Input2<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>             <?Pub _font
FontColor="#5DA35B"?>(* Второе значение *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Коэффициенты масштабирования *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Gain<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>    <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                 <?Pub _font
FontColor="#5DA35B"?>(* Коэффициент K *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Offset<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>               <?Pub _font
FontColor="#5DA35B"?>(* Сдвиг O *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Границы масштабирования для IN1 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>In1_Min<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>20.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>             <?Pub _font
FontColor="#5DA35B"?>(* Значение при IN1=FALSE *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>In1_Max<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>40.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>             <?Pub _font
FontColor="#5DA35B"?>(* Значение при IN1=TRUE *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Границы масштабирования для IN2 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>In2_Min<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>30.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>             <?Pub _font
FontColor="#5DA35B"?>(* Значение при IN2=FALSE *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>In2_Max<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>40.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>             <?Pub _font
FontColor="#5DA35B"?>(* Значение при IN2=TRUE *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Result<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции SCALE_X2 *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>SCALE_X2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>IN1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Input1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>IN2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Input2,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>K<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Gain,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>O<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Offset,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>IN1_MIN<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>In1_Min,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>IN1_MAX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>In1_Max,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>IN2_MIN<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>In2_Min,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>IN2_MAX<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>In2_Max<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат  180.0*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>    </code></td></tr></tbody></table></div></div>

<a id="topic-125224"></a>

### SCALE_X4

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN1…IN4 | BYTE | Исходное значение 1…4 |
| Входы | K | REAL | Коэффициент |
| Входы | O | REAL | Сдвиг |
| Выходы | SCALE_X4 | REAL | Рассчитанное значение. |
| Параметры | IN1_MIN…IN4_MIN | REAL | Отмасштабированное значение для IN1…IN4=FALSE |
| Параметры | IN1_MAX…IN4_MAX | REAL | Отмасштабированное значение для IN1…IN4=TRUE |

Функция **SCALE_X4** преобразует входное булевское значение **IN#** в значение с плавающей точкой (**IN#\_MIN** для **IN#=FALSE** и **IN#\_MAX** для **IN#=TRUE**), суммирует их и возвращает для суммы значение линейного функции с коэффициентом **K** и сдвигом **O**.

![SCALE X4](https://docs.owen.ru/book_img/2417/165043.png)

<a id="topic-125225"></a>

### SCALE_X8

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN1…IN8 | BYTE | Исходное значение 1…8 |
| Входы | K | REAL | Коэффициент |
| Входы | O | REAL | Сдвиг |
| Выходы | SCALE_X8 | REAL | Рассчитанное значение |
| Параметры | IN1_MIN…IN8_MIN | REAL | Отмасштабированное значение для IN1…IN8=FALSE |
| Параметры | IN1_MAX…IN8_MAX | REAL | Отмасштабированное значение для IN1…IN8=TRUE |

Функция **SCALE_X8** преобразует входное булевское значение **IN#** в значение с плавающей точкой (**IN#\_MIN** для **IN#=FALSE** и **IN#\_MAX** для **IN#=TRUE**), суммирует их и возвращает для суммы значение линейного функции с коэффициентом **K** и сдвигом **O**.

![SCALE X8](https://docs.owen.ru/book_img/2417/165042.png)

<a id="topic-125226"></a>

### SEL2_OF_3

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN1 | REAL | Контролируемое значение 1 |
| Входы | IN2 | REAL | Контролируемое значение 2 |
| Входы | IN3 | REAL | Контролируемое значение 3 |
| Входы | D | REAL | Допустимое отклонение |
| Выходы | Y | REAL | Усредненное значение |
| Выходы | W | INT | Код состояния |
| Выходы | E | BOOL | Флаг ошибки |

Функциональный блок **SEL2_OF_3** используется для контроля показаний датчиков по схеме «2 из 3». Если входные значения **IN1…IN3** отличаются друг от друга на величину, не превышающую **D**, то на выход **Y** поступает усредненное по трем сигналам значение, а выход **W=0**. Если одно из входных значений отличается от остальных на величину, превышающую **D**, то на выход **Y** поступает усредненное по двум другим сигналам значение, а на выходе **W** отображается номер входа с некорректным значением. Если все три входных значения отличаются на величину, превышающую **D**, то выход **Y** сохраняет свое последнее значение, выход **W=4**, а выход **E** принимает значение **TRUE**, сигнализируя о сбое в системе.

<a id="topic-125227"></a>

### SEL2_OF_3B

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN1 | BOOL | Контролируемый сигнал 1 |
| Входы | IN2 | BOOL | Контролируемый сигнал 2 |
| Входы | IN3 | BOOL | Контролируемый сигнал 3 |
| Входы | TD | TIME | Время задержки индикации ошибки |
| Выходы | Q | BOOL | Выходной сигнал |
| Выходы | W | BOOL | Флаг «ошибка» |

Функциональный блок **SEL2_OF_3B** используется для контроля дискретных сигналов по схеме «2 из 3». Если входные значения **IN1… IN3** совпадают, то выход **Q** равен этому же значению. Если одно из входных значений отличается от остальных, то выход **Q** принимает значение, которое имеют два других входа, а выход **W** принимает значение **TRUE**, сигнализируя об ошибке. Вход **TD** определяет задержку между изменением значений входов и активацией выхода **W**.

<a id="topic-125228"></a>

### SH

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | REAL | Контролируемое значение |
| Входы | CLK | BOOL | Сигнал сохранения данных |
| Выходы | out | REAL | Сохраненное значение |
| Выходы | trig | BOOL | Флаг «произошло сохранение» |

Функциональный блок **SH** представляет собой элемент хранения. По переднему фронту на входе **CLK** выход **out** принимает и запоминает значение входа **in**. Выход **trig** принимает значение **TRUE** на один цикл при изменении значения на выходе **out**.

![SH](https://docs.owen.ru/book_img/2417/165041.png)

<i>Трассировка работы ФБ **SH**</i> 

<a id="topic-125229"></a>

### SH_1

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | REAL | Контролируемое значение |
| Входы | PT | TIME | Период сохранения |
| Выходы | out | REAL | Сохраненное значение |
| Выходы | trig | BOOL | Флаг «произошло сохранение» |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **SH_1** представляет собой элемент хранения. Выход **out** принимает и запоминает значение входа **in** с заданным периодом **PT**. Выход **trig** принимает значение **TRUE** на один цикл при каждом сохранении данных.

![SH 1](https://docs.owen.ru/book_img/2417/165040.png)

<i>Трассировка работы ФБ **SH_1 (PT=T#5s)**</i>

<a id="topic-125230"></a>

### SH_2

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | REAL | Контролируемое значение |
| Входы | PT | TIME | Период сохранения |
| Входы | N | INT | Число значений для статистики (1..16) |
| Входы | disc | INT | Число отбрасываемых экстремумов |
| Выходы | out | REAL | Сохраненное значение |
| Выходы | trig | BOOL | Флаг «произошло сохранение» |
| Выходы | avg | REAL | Среднее значение |
| Выходы | high | REAL | Максимальное значение |
| Выходы | low | REAL | Минимальное значение |
| Используемые модули | [T_PLC_MS](#topic-125261), [EVEN](#topic-124823) | [T_PLC_MS](#topic-125261), [EVEN](#topic-124823) | [T_PLC_MS](#topic-125261), [EVEN](#topic-124823) |

Функциональный блок **SH_2** представляет собой элемент хранения со сбором статистики. Выход **out** принимает и запоминает значение входа **in** с заданным периодом **PT**. Выход **trig** принимает значение **TRUE** на один цикл при каждом сохранении данных. Вход **N** определяет число срезов (до 16-ти) для сбора статистической информации – среднего (выход **avg**), максимального (выход **high**) и минимального значений (выход **low**). Вход **disc** позволяет определить число экстремумов, которые не будут учитываться при статистической обработке (это может быть полезно для фильтрации помех):

- **0** – в статистике учитываются все срезы;
- **1** – не учитывается наименьшее значение;
- **2** – не учитывается наибольшее значение;
- **3** – не учитываются два наименьших и одно наибольшее значение;
- **4** – не учитываются два наименьших и два наибольших значения;
- и т.д.

<a id="topic-125231"></a>

### SH_T

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | REAL | Контролируемое значение |
| Входы | E | BOOL | Режим сохранения значений |
| Выходы | out | REAL | Сохраненное значение |

Функциональный блок **SH_T** представляет собой прозрачный элемент хранения. Пока вход **E** имеет значение **TRUE**, на выход **out** транслируется значение входа **in**. По заднему фронту на входе **E** выход **out** сохраняет свое последнее значение.

<a id="topic-125232"></a>

### STAIR

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Входное значение |
| Входы | D | REAL | Величина ступеньки |
| Выходы | STAIR | REAL | Ступенчатая функция |

Функция **STAIR** возвращает значение ступенчатой функции для входного значения **X**. Вход **D** определяет величину ступеньки. Если **D=0**, то **STAIR=X**. Функция не производит фильтрацию входного значения; в случае ее необходимости следует использовать ФБ [STAIR2](#topic-125233), который учитывает гистерезис.

*Трассировка работы функции **STAIR**![STAIR](https://docs.owen.ru/book_img/2417/165039.png)*

<a id="topic-125233"></a>

### STAIR2

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Входное значение |
| Входы | D | REAL | Величина ступеньки/значение гистерезиса |
| Выходы | Y | REAL | Ступенчатая функция |
| Используемые модули | [FLOOR](#topic-124828) | [FLOOR](#topic-124828) | [FLOOR](#topic-124828) |

Функциональный блок **STAIR2** возвращает на выход **Y** значение ступенчатой функции для входного значения **X**. Вход **D** определяет величину ступеньки. Если **D=0**, то **Y= X**. **D** также определяет величину гистерезиса – если изменение входного значения не превышает **D**, то значение выхода не изменится. Таким образом осуществляется подавление шума исходного сигнала.

![SRAIR2](https://docs.owen.ru/book_img/2417/165038.png)

<i>Трассировка работы ФБ **STAIR2**</i>

<a id="topic-125234"></a>

### TREND

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Входное значение |
| Выходы | Q | BOOL | Флаг “изменение значения” |
| Выходы | TU | BOOL | Флаг “увеличение значения” |
| Выходы | TD | BOOL | Флаг “уменьшение значения” |
| Выходы | D | REAL | Величина изменения |

Функциональный блок **TREND** используется для контроля изменения значения входной переменной **X**. Если в текущем цикле значение **X** изменилось по сравнению с предыдущим, то выход **Q** принимает значение **TRUE**. Если значение увеличилось – то выход **TU** принимает значение **TRUE**, если уменьшилось – выход **TD** принимает значение **TRUE**. На выходе **D** отображается величина, на которую изменилось значение (со знаком) в текущем цикле. Если значение не изменилось по сравнению с предыдущим циклом, то выходы **Q**, **TU** и **TD** имеют значение **FALSE**, а **D=0**.

<a id="topic-125235"></a>

### TREND_DW

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | DWORD | Входное значение |
| Выходы | Q | BOOL | Флаг “изменение значения” |
| Выходы | TU | BOOL | Флаг “увеличение значения” |
| Выходы | TD | BOOL | Флаг “уменьшение значения” |
| Выходы | D | DWORD | Величина изменения |

Блок **TREND_DW** используется для контроля изменения значения входной переменной **X**. Принцип работы полностью соответствует ФБ [TREND](#topic-125234), единственным отличием является тип используемых переменных – **DWORD**.

<a id="topic-125236"></a>

### WORD_TO_RANGE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | WORD | Исходное значение |
| Входы | low | REAL | Нижний предел отмасштабированного значения |
| Входы | high | REAL | Верхний предел отмасштабированного значения |
| Выходы | WORD_TO_RANGE | REAL | Отмасштабированное значение |

Функция **WORD_TO_RANGE** линейно масштабирует входное целочисленное значение **X** из диапазона (**0…65535**) в значение с плавающей точкой из диапазона (**low…high**). См. также обратную функцию [RANGE_TO_WORD](#topic-125215).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входное целочисленное значение WORD (0…65535) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InputValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>WORD<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>8192<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* 8192 из диапазона 0…65535 *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Границы выходного диапазона (REAL) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>LowLimit<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>  <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>-<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>         <?Pub _font FontColor="#5DA35B"?>(* Нижний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>HighLimit<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат масштабирования *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>OutputValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции WORD_TO_RANGE *)<?Pub /_font?>
<?Pub _font FontColor="gray1"?>OutputValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="gray1"?>WORD_TO_RANGE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="gray1"?>X<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="gray1"
?>InputValue,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>low<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LowLimit,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>high<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="gray1"
?>HighLimit<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Результат: OutputValue = -75.0*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125237"></a>

## Термометры сопротивления

<a id="topic-125238"></a>

### MULTI_IN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in_1 | REAL | Значение 1 |
| Входы | in_2 | REAL | Значение 2 |
| Входы | in_3 | REAL | Значение 3 |
| Входы | Default | REAL | Значение по умолчанию |
| Входы | in_min | REAL | Нижняя граница допустимых значений |
| Входы | in_max | REAL | Верхняя граница допустимых значений |
| Входы | mode | BYTE | Режим обработки значений |
| Выходы | MULTI_IN | REAL | Выходное значение |

Функция **MULTI_IN** используется для обработки сигналов от датчиков **in_1…in_3** в режиме, определяемом входом **mode**. Входы **in_min** и **in_max** определяет нижний и верхний допустимый предел входных сигналов. Если значение не входит в заданный диапазон или совпадает с его границами, то в режимах **1-4** вместо него используется величина входа **default**, а в режимах **0** и **5-7** значение не обрабатывается. Описание режимов работы функции приведено в таблице:

| Значение входа mode | Значение выхода MULTI_IN |
| --- | --- |
| 0 | Среднее арифметическое для in_1…in_3 |
| 1 | in_1 |
| 2 | in_2 |
| 3 | in_3 |
| 4 | default |
| 5 | Наименьшее из in_1…in_3 |
| 6 | Наибольшее из in_1…in_3 |
| 7 | Среднее из in_1…in_3 |
| >7 | 0 |

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Исходные значения для обоих вызовов *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Value1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Value2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Value3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результаты *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Result1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>   <?Pub _font FontColor="#5DA35B"?>(* Результат первой функции *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Result2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>   <?Pub _font FontColor="#5DA35B"?>(* Результат второй функции *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Default1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Default2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Min1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Max1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Min2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Max2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Mode1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Mode2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>7<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>Result1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>MULTI_IN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>in_1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Value1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>in_2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Value2,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>in_3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Value3,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Default<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Default1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>in_min<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Min1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>in_max<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Max1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>mode<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Mode1<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Результат: Result1 = 4, т.к. значение in_1 выходит за диапазон (in_min…in_max), <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>поэтому функция возвращает среднее арифметическое для значений in_2 и in_3*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>Result2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>MULTI_IN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>in_1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Value1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>in_2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Value2,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>in_3<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Value3,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Default<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Default2,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>in_min<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Min2,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>in_max<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Max2,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>mode<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Mode2<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Результат: Result2 = 3.5 - среднее из трех значений*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?> </code></td></tr></tbody></table></div></div>

<a id="topic-125239"></a>

### RES_NI

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | T | REAL | Измеренная температура, °C |
| Входы | R0 | REAL | Номинальное сопротивление ТС, Ом |
| Выходы | RES_NI | REAL | Сопротивление ТС, Ом |

Функция **RES_NI** возвращает значение сопротивления **никелевого** термометра сопротивления (ТС) с номинальным сопротивлением **R0** для измеренной температуры **T**, вычисленное по формуле:

```
RES_NI=R0+A∙T+B∙T2+С∙T4 
```

, где

```
A = 0.5485          B = 0.665 ∙ 10-3       C = 2.805 ∙ 10-9
```

Приемлемая точность значений функции ограничена диапазоном температур –60…+180 °C.

См. также обратную функцию [TEMP_NI](#topic-125244)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(*Измеренная температура, °C *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Temperature<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>50.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* 50 °C *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(*Номинальное сопротивление ТС при 0 °C, Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>R0_Nominal<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* ТС 100 Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(*Результат - сопротивление ТС, Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Resistance<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Вызов функции RES_NI *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Resistance<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>RES_NI<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>T<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Temperature<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font
?>
    <?Pub _font FontColor="#DCDCDC"?>R0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>R0_Nominal<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат ≈ 129.11 Ом*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?> </code></td></tr></tbody></table></div></div>

<a id="topic-125240"></a>

### RES_NTC

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | T | REAL | Измеренная температура, °C |
| Входы | RN | REAL | Номинальное сопротивление ТС, Ом при T=25 °C |
| Входы | B | REAL | Коэффициент температурной чувствительности,  К |
| Выходы | RES_NTC | REAL | Сопротивление NTC-термистора, Ом |

Функция **RES_NTC** возвращает значение сопротивления NTC-термистора с номинальным сопротивлением **RN** (для T=25 °C) и коэффициентом температурной чувствительности **B** для измеренной температуры **T**, вычисленное по формуле:

```
RES_NTC=RN∙e(B∙(1/T  - 1/(25+273.15)))
```

Приемлемая точность значений функции ограничена диапазоном температур 0…100 °C.

См. также обратную функцию [TEMP_NTC](#topic-125245)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Измеренная температура, °C *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Temperature<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>30.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* 30 °C *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Номинальное сопротивление при 25 °C, Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>RN_Nominal<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10000.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* 10 кОм при 25 °C *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Коэффициент температурной чувствительности, К *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>B_Coeff<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3950.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>           <?Pub _font
FontColor="#5DA35B"?>(* B = 3950 K *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат - сопротивление NTC-термистора, Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Resistance<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции RES_NTC *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Resistance<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>RES_NTC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>T<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Temperature,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>RN<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>RN_Nominal,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>B<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>B_Coeff<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат ≈ 8037 Ом*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>  </code></td></tr></tbody></table></div></div>

<a id="topic-125241"></a>

### RES_PT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | T | REAL | Измеренная температура, °C |
| Входы | R0 | REAL | Номинальное сопротивление ТС, Ом |
| Выходы | RES_PT | REAL | Сопротивление ТС, Ом |

Функция **RES_PT** возвращает значение сопротивления платинового термометра сопротивления (ТС) с номинальным сопротивлением **R0** для измеренной температуры **T**, вычисленное по формуле:

![RES PT](https://docs.owen.ru/book_img/2417/165077.png)

Приемлемая точность значений функции ограничена диапазоном температур –200…+850 °C.

См. также обратную функцию [TEMP_PT](#topic-125246)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Измеренная температура, °C *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Temperature<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>50.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* 50 °C *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Номинальное сопротивление ТС при 0 °C, Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>R0_Nominal<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* Pt100 *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат - сопротивление ТС, Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Resistance<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции RES_PT *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Resistance<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>RES_PT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>T<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Temperature,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>R0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>R0_Nominal<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат ≈ 119.40 Ом*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?> </code></td></tr></tbody></table></div></div>

<a id="topic-125242"></a>

### RES_SI

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | T | REAL | Измеренная температура, °C |
| Входы | RS | REAL | Номинальное сопротивление ТС, Ом |
| Входы | TS | REAL | Температура при номинальном сопротивлении, °C |
| Выходы | RES_SI | REAL | Сопротивление ТС, Ом |

Функция **RES\_ SI** возвращает значение сопротивления **кремниевого** термометра сопротивления (ТС) с номинальным сопротивлением **RS** при температуре **TS** для измеренной температуры **T**, вычисленное по формуле:

```
RES_SI=RS + A∙(T-TS) + B∙(T-TS)2
```

, где

```
A = 7.64 ∙ 10-3               B = 1.66 ∙ 10-5
```

Приемлемая точность значений функции ограничена диапазоном температур –50…+150 °C.

См. также обратную функцию [TEMP_SI](#topic-125247)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Измеренная температура, °C *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Temperature<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>50.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* 50 °C *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Номинальное сопротивление при температуре TS, Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>RS_Nominal<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1000.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* 1000 Ом при 25 °C *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Температура при номинальном сопротивлении, °C *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>TS_Nominal<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>25.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* 25 °C *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат - сопротивление ТС, Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Resistance<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции RES_SI *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Resistance<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>RES_SI<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>T<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Temperature,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>RS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>RS_Nominal,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>TS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>TS_Nominal<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат ≈ 1201.375 Ом*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?> </code></td></tr></tbody></table></div></div>

<a id="topic-125243"></a>

### SENSOR_INT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | Voltage | REAL | Напряжение, В |
| Входы | Current | REAL | Сила тока, А |
| Входы | RP | REAL | Параллельное паразитное сопротивление, Ом |
| Входы | RS | REAL | Последовательное паразитное сопротивление, Ом |
| Выходы | SENSOR_INT | REAL | Сопротивление ТС, Ом |

Функция **SENSOR_INT** вычисляет значение сопротивления для термометра сопротивления (ТС) на основании измеренных значений напряжения **Voltage** и силы тока **Current** с учетом паразитных сопротивлений **RP** и **RS**. Схема измерения приведена на рисунке ниже. Вычисленное значение сопротивления может быть преобразовано в значение температуры с помощью функций TEMP_xx.

![SENSOR INT](https://docs.owen.ru/book_img/2417/165076.png)

<i>Схема измерения для функции **SENSOR_INT**</i>

<a id="topic-125244"></a>

### TEMP_NI

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | Res | REAL | Измеренное сопротивление, Ом |
| Входы | R0 | REAL | Номинальное сопротивление ТС, Ом |
| Выходы | TEMP_NI | REAL | Температура ТС, °C |

Функция **TEMP_NI** возвращает значение температуры никелевого термометра сопротивления (ТС) с номинальным сопротивлением **R0** для измеренного сопротивления **R**. См. также обратную функцию [RES_NI](#topic-125239).

Приемлемая точность значений функции ограничена диапазоном температур –60…+180 °C.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>    <?Pub _font
FontColor="#5DA35B"?>(* Измеренное сопротивление ТС, Ом *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Resistance<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>129.1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* 129.1 Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Номинальное сопротивление ТС при 0 °C, Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>R0_Nominal<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* ТС 100 Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат - температура, °C *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Temperature<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции TEMP_NI *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Temperature<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>TEMP_NI<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Resistance,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>R0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>R0_Nominal<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат ≈ 50 °C*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>  </code></td></tr></tbody></table></div></div>

<a id="topic-125245"></a>

### TEMP_NTC

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | Res | REAL | Измеренное сопротивление, Ом |
| Входы | RN | REAL | Номинальное сопротивление ТС, Ом при T=25 °C |
| Входы | B | REAL | Коэффициент температурной чувствительности, К |
| Выходы | TEMP_NTC | REAL | Температура NTC-термистора, °C |

Функция **TEMP_NTC** возвращает значение температуры NTC-термистора с номинальным сопротивлением **RN** (для T=25 °C) и коэффициентом температурной чувствительности **B** для измеренного сопротивления **Res**. См. также обратную функцию [RES_NTC](#topic-125240).

Приемлемая точность значений функции ограничена диапазоном температур 0…100 °C.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>    <?Pub _font
FontColor="#5DA35B"?>(* Измеренное сопротивление NTC-термистора, Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Resistance<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>8037.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* 8.037 кОм *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Номинальное сопротивление при 25 °C, Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>RN_Nominal<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10000.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* 10 кОм при 25 °C *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Коэффициент температурной чувствительности, К *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>B_Coeff<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3950.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>           <?Pub _font
FontColor="#5DA35B"?>(* B = 3950 K *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат - температура, °C *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Temperature<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции TEMP_NTC *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Temperature<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>TEMP_NTC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Resistance,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>RN<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>RN_Nominal,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>B<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>B_Coeff<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат ≈ 30.0 °C*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?> </code></td></tr></tbody></table></div></div>

<a id="topic-125246"></a>

### TEMP_PT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | Res | REAL | Измеренное сопротивление, Ом. |
| Входы | R0 | REAL | Номинальное сопротивление ТС, Ом. |
| Выходы | TEMP_PT | REAL | Температура ТС, °C. |
| Используемые модули | [RES_PT](#topic-125241) | [RES_PT](#topic-125241) | [RES_PT](#topic-125241) |

Функция **TEMP_PT** возвращает значение температуры платинового термометра сопротивления (ТС) с номинальным сопротивлением **R0** для измеренного сопротивления **R**. См. также обратную функцию [RES_PT](#topic-125241).

Приемлемая точность значений функции ограничена диапазоном температур –200…+850 °C.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Измеренное сопротивление ТС, Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Resistance<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>119.4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* 119.4 Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Номинальное сопротивление ТС при 0 °C, Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>R0_Nominal<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* Pt100 *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат - температура, °C *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Temperature<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции TEMP_PT *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Temperature<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>TEMP_PT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Resistance,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>R0<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>R0_Nominal<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: Temperature ≈ 50.0 °C*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?> </code></td></tr></tbody></table></div></div>

<a id="topic-125247"></a>

### TEMP_SI

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | Res | REAL | Измеренное сопротивление, Ом |
| Входы | RS | REAL | Номинальное сопротивление ТС, Ом |
| Входы | TS | REAL | Температура при номинальном сопротивлении, °C |
| Выходы | TEMP_SI | REAL | Температура ТС, °C |

Функция **TEMP_SI** возвращает значение температуры кремниевого термометра сопротивления (ТС) с номинальным сопротивлением **RS** при температуре **TS** для измеренного сопротивления **R**. См. также обратную функцию [RES_SI](#topic-125242).

Приемлемая точность значений функции ограничена диапазоном температур –50…+150 °C.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Измеренное сопротивление, Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Resistance<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1200.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* 1200 Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Номинальное сопротивление при температуре TS, Ом *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>RS_Nominal<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1000.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* 1000 Ом при 25 °C *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Температура при номинальном сопротивлении, °C *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>TS_Nominal<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>25.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* 25 °C *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат - стемпература, °C *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Temperature<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции TEMP_SI *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Temperature<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>TEMP_SI<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Res<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Resistance,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>RS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>RS_Nominal,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>TS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>TS_Nominal<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат ≈ 50 °C*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?> </code></td></tr></tbody></table></div></div>

<a id="topic-125248"></a>

## Модули измерения и отсчета времени

<a id="topic-125249"></a>

### ALARM_2

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Контролируемое значение |
| Входы | LO_1 | REAL | Нижний предел 1 |
| Входы | HI_1 | REAL | Верхний предел 1 |
| Входы | LO_2 | REAL | Нижний предел 2 |
| Входы | HI_2 | REAL | Верхний предел 2 |
| Входы | HYS | REAL | Значение гистерезиса |
| Выходы | Q1_LO | BOOL | Флаг «значение меньше нижнего предела 1» |
| Выходы | Q1_HI | BOOL | Флаг «значение больше верхнего предела 1» |
| Выходы | Q2_LO | BOOL | Флаг «значение меньше нижнего предела 2» |
| Выходы | Q2_HI | BOOL | Флаг «значение больше верхнего предела 2» |

Функциональный блок **ALARM_2** проверяет входное значение **X** на принадлежность диапазонам \[**LO_1…HI_1**\] и \[**LO_2…HI_2**\]. Вход **HYS** определяет величину гистерезиса. Выходы блока становятся активными в следующих случаях:

![ALARM 2](https://docs.owen.ru/book_img/2417/165075.png)

Обычно с помощью диапазона \[**LO_1…HI_1**\] задаются пороговые значения для сигнала тревоги, с помощью \[**LO_2…HI_2**\] – для сигнала аварии.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Экземпляр функционального блока ALARM_2 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Alarm<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>ALARM_2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Контролируемое значение (температура) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Temperature<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>85.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* 85 °C *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Настройки пределов *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>LO_1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>60.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел 1 (тревога) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>HI_1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>80.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел 1 (тревога) *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>LO_2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>50.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел 2 (авария) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>HI_2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>90.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел 2 (авария) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>HYS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                  <?Pub _font
FontColor="#5DA35B"?>(* Гистерезис 2 °C *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Выходные флаги *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>AlarmLO1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                    <?Pub _font FontColor="#5DA35B"?>(* Меньше нижнего предела 1 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>AlarmHI1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                    <?Pub _font FontColor="#5DA35B"?>(* Больше верхнего предела 1 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>AlarmLO2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                    <?Pub _font FontColor="#5DA35B"?>(* Меньше нижнего предела 2 *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>AlarmHI2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                    <?Pub _font FontColor="#5DA35B"?>(* Больше верхнего предела 2 *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Состояние системы *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>StatusMessage<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>50<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Настройка параметров блока *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Alarm<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>LO_1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LO_1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>HI_1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>HI_1,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>LO_2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LO_2,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>HI_2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>HI_2,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>HYS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>HYS<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Циклический вызов блока с текущим значением *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>Alarm<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>X<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>Temperature<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Чтение выходных флагов *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>AlarmLO1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Alarm<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Q1_LO<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>AlarmHI1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Alarm<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Q1_HI<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>AlarmLO2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Alarm<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Q2_LO<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>AlarmHI2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Alarm<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Q2_HI<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Логика обработки *)<?Pub /_font
?>
<?Pub _font FontColor="#A4DBD2"?>IF<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>AlarmHI2<?Pub /_font?> <?Pub _font
FontColor="#A4DBD2"?>THEN<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>StatusMessage<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"
?>'АВАРИЯ: превышение верхнего предела 90 °C!'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#A4DBD2"?>ELSIF<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>AlarmLO2<?Pub /_font?> <?Pub _font
FontColor="#A4DBD2"?>THEN<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>StatusMessage<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"
?>'АВАРИЯ: падение ниже нижнего предела 50 °C!'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#A4DBD2"?>ELSIF<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>AlarmHI1<?Pub /_font?> <?Pub _font
FontColor="#A4DBD2"?>THEN<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>StatusMessage<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"
?>'ПРЕДУПРЕЖДЕНИЕ: температура выше 80 °C'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#A4DBD2"?>ELSIF<?Pub /_font?> <?Pub _font
FontColor="#DCDCDC"?>AlarmLO1<?Pub /_font?> <?Pub _font
FontColor="#A4DBD2"?>THEN<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>StatusMessage<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"
?>'ПРЕДУПРЕЖДЕНИЕ: температура ниже 60 °C'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#A4DBD2"?>ELSE<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>StatusMessage<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"
?>'Нормальный режим'<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#A4DBD2"?>END_IF<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат при Temperature = 85 °C:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - AlarmHI1 = TRUE (85 &gt; 80)<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - AlarmHI2 = FALSE (85 &lt; 90)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - StatusMessage = 'ПРЕДУПРЕЖДЕНИЕ: температура выше 80 °C'*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?> <?Pub _font
FontColor="#5DA35B"?>(*Объявление конца программы*)<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125250"></a>

### BAR_GRAPH

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Контролируемое значение |
| Входы | rst | REAL | Сигнал сброса тревоги |
| Выходы | LOW | BOOL | Флаг «значение меньше нижнего предела» |
| Выходы | Q1…Q6 | BOOL | Флаги «значение в зоне 1…6» |
| Выходы | HIGH | BOOL | Флаг «значение больше верхнего предела» |
| Выходы | Alarm | BOOL | Флаг «тревога» |
| Выходы | Status | BYTE | ESR-код |
| Параметры | trigger_Low | REAL | Нижний предел |
| Параметры | trigger_High | REAL | Верхний предел |
| Параметры | Alarm_low | BOOL | Режим «обработка нижнего предела тревоги» |
| Параметры | Alarm_high | BOOL | Режим «обработка верхнего предела тревоги» |
| Параметры | log_scale | BOOL | Режим «логарифмирование интервалов» |

Функциональный блок **BAR_GRAPH** проверяет входное значение **X** на принадлежность диапазону \[**trigger_Low…trigger_High**\]. Выход **LOW** принимает значение **TRUE**, если значение **X** меньше нижней границы диапазона, выход **HIGH** – если больше верхней границы. Если параметры **Alarm_low** и **Alarm_high** имеют значение **TRUE**, то при выходе значения **X** за границы допустимого диапазона выход **Alarm** принимает значение **TRUE**. Выход **Alarm** остается активным до тех пор, пока не будет сброшен с помощью сигнала по переднему фронту на входе **rst**.

Если значение **X** находится в пределах диапазона, то активен один из выходов **Q1…Q6**, характеризующий интервал, в котором находится значение. По умолчанию интервалы являются равными:

![BAR GRAPH](https://docs.owen.ru/book_img/2417/165074.png)

Если параметр **log\_ scale** имеет значение **TRUE**, то размеры интервалов связаны через логарифм:

![BAR GRAPH1](https://docs.owen.ru/book_img/2417/165073.png)

Выход **Status** определяет состояние блока и совместим с [ESR-модулями](#topic-124794):

|   |   |
| --- | --- |
| Значение выхода Status | Описание |
| 110 | Значение X находится в диапазоне \[trigger_Low…trigger_High\] |
| 111 | Значение X меньше trigger_Low, выход LOW равен TRUE |
| 112 | Значение X больше trigger_High выход HIGH равен TRUE |
| 1 | Значение X меньше trigger_Low, выход ALARM равен TRUE |
| 2 | Значение X больше trigger_High выход ALARM равен TRUE |

<a id="topic-125251"></a>

### CALIBRATE

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Сигнал датчика |
| Входы | CO | BOOL | Сигнал датчика для нижнего предела |
| Входы | CS | BOOL | Сигнал датчика для верхнего предела |
| Выходы | Y | REAL | Измеренное значение |
| Параметры | Y_Scale | REAL | Верхний предел измеренного значения |
| Параметры | Y_Offset | REAL | Нижний предел измеренного значения |

Функциональный блок **CALIBRATE** используется для калибровки сигнала аналогового датчика **X**. Параметры **Y_Offset** и **Y_Scale** определяют нижний и верхний предел измеряемого значения. По переднему фронту на входе **CO** в блок записывается измеренное значение для нижнего предела, по переднему фронту на входе **CS** – для верхнего. После этого значение входа **X** будет линейно масштабироваться и подаваться на выход **Y** c учетом рассчитанных коэффициентов. Коэффициенты являются энергонезависимыми (**VAR RETAIN**).

Поясним вышесказанное на примере. Предположим, мы получаем от датчика температуры сигнал **4-20 мА**, который соответствует диапазону **0-100 °C**. Зададим **Y_Offset=0** и **Y_Scale=100**. Поместим датчик в среду с температурой **0 °C** (значение температуры должно быть измерено с помощью эталонного термометра) и подадим импульс по переднему фронту на входе **CO**. Блок вычислит значение смещения сигнала. Нагреем датчик до **100 °C** и подадим импульс по переднему фронту на входе **CS**. Блок вычислит коэффициент масштабирования для входного сигнала. В случае, если датчик изначально откалиброван, смещение должно составить

![CALIBRATE](https://docs.owen.ru/book_img/2417/165072.png)

а коэффициент масштабирования –

![CALIBRATE1](https://docs.owen.ru/book_img/2417/165071.png)

Теперь если подать на вход **X** измеренное датчиком значение (например, **12 мА**), то на выходе **Y** будет получено значение температуры – **50 °C**. Поскольку в реальной жизни по мере эксплуатации характеристики датчиков могут изменяться, использование данного блока позволит поддерживать точность измеренного значения на приемлемом уровне.

<a id="topic-125252"></a>

### CYCLE_TIME

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | ct_min | TIME | Минимальное время цикла |
| Выходы | ct_max | TIME | Максимальное время цикла |
| Выходы | ct_last | TIME | Последнее измеренное время цикла |
| Выходы | systime | TIME | Время, прошедшее со старта ПЛК |
| Выходы | sysdays | INT | Число дней, прошедшее со старта ПЛК |
| Выходы | cycles | DWORD | Число циклов ПЛК с момента старта |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **CYCLE_TIME** используется для получения статистической информации о времени цикла ПЛК. На выходы **ct_min**, **ct_max** и **ct_last** подается минимальное, максимальное и последнее измеренное время цикла. Выходы **systime** и **sysdays** содержат информацию о времени и числе дней, прошедших со старта ПЛК. Выход **cycles** содержит число циклов ПЛК, прошедших с момента его старта. По переднему фронту на входе **RST** выходы блока обнуляются и отсчет начинается заново.

<a id="topic-125253"></a>

### DT_SIMU

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | START | DT | Начальное время часов (точка отсчета) |
| Входы | SPEED | REAL | Коэффициент масштаба времени |
| Выходы | DTS | DT | Текущее время |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **DT_SIMU** представляет собой программный модуль **RTC** с задаваемым масштабом времени. Вход **START** определяет начальное время, которое будет являться точкой отсчета. Выход **DTS** отображает текущее время. Вход **SPEED** определяет масштаб времени относительно стандартного. Например, если **SPEED=5.0**, то каждую секунду к текущему значению времени на выходе **DTS** будет прибавляться 5 секунд – т.е. время будет идти в 5 раз быстрее, чем в реальном мире. Это может быть полезным при отладке проектов, связанных с медленно протекающими процессами.

<a id="topic-125254"></a>

### FLOW_METER

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | VX | REAL | Измеренное значение расхода (ед./час) |
| Входы | E | BOOL | Сигнал управления блоком |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | F | REAL | Мгновенное значение расхода (ед./час) |
| Входы - выходы | X | REAL | Суммарное значение расхода (дробная часть) |
| Входы - выходы | Y | UDINT | Суммарное значение расхода (целая часть) |
| Параметры | PULSE_MODE | BOOL | Режим работы блока |
| Параметры | UPDATE_TIME | TIME | Время опроса входа VX |
| Используемые модули | [INTEGRATE](#topic-125322), [FLOOR](#topic-124828), [T_PLC_MS](#topic-125261) | [INTEGRATE](#topic-125322), [FLOOR](#topic-124828), [T_PLC_MS](#topic-125261) | [INTEGRATE](#topic-125322), [FLOOR](#topic-124828), [T_PLC_MS](#topic-125261) |

Функциональный блок **FLOW_METER** используется для определения суммарного расхода. На вход **VX** подается измеренное значение расхода. Параметр **PULSE_MODE** определяет режим работы блока. Если **PULSE_MODE** имеет значение **FALSE**, то расходомер работает в режиме интегрирования и пока вход **E** имеет значение **TRUE**, значение входа **VX** интерпретируется как расход за час, а на входах-выходах **Y** и **X** отображается целая и дробная часть суммарного расхода за прошедшее с начала работы блока время. На выходе **F** отображается текущее значение расхода. Параметр **UPDATE_TIME** частоту опроса входа **VX**. Если **PULSE_MODE** имеет значение **TRUE**, то расходомер работает в импульсном режиме и при импульсе по переднему фронту входа **E** прибавляет значение **VX** к суммарному значению расхода **Y** и **X** (целая часть/дробная часть). По переднему фронту входа **RST** происходит сброс памяти блока, после чего отсчет начинается заново.

Суммарное значение расхода представлено в виде двух величин – **X** и **Y**. Если суммарный расход = 210.115 л/ч, то Y=210 (целая часть), X=0.115 (дробная часть).

Поясним вышесказанное несколькими примерами.

1. Пусть VX=3600 л/ч, PULSE_MODE=FALSE, UPDATE_TIME=T#100ms.

   Расходомер работает в режиме интегратора, вход **VX** опрашивается каждые 100 мс (т.е если значение входа изменится, то блок начнет использовать его вместо предыдущего с задержкой до 100 мс). Значение **Y** каждую секунду увеличивается на +1 (3600 л/ч = 1 л/с). Значение **X** содержит дробную часть значения и изменяется с частотой цикла ПЛК.

2. Пусть VX=10 л/ч, PULSE_MODE=TRUE, UPDATE_TIME=T#100ms

   Расходомер работает в импульсном режиме, вход **VX** опрашивается каждые 100 мс (т.е если значение входа изменится, то блок начнет использовать его вместо предыдущего с задержкой до 100 мс). Значение **Y** увеличивается на +10 по переднему фронту на входе **E**.

<a id="topic-125255"></a>

### M_D

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | start | BOOL | Сигнала начала отсчета |
| Входы | stop | BOOL | Сигнал окончания отсчета |
| Входы | tmax | TIME | Максимальное время отсчета |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | PT | TIME | Время между сигналом старта и стопа |
| Выходы | ET | TIME | Прошедшее время |
| Выходы | run | BOOL | Флаг «идет отсчет времени» |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный **блок** **M_D** представляет собой модуль измерения времени между двумя импульсами переднего фронта. По переднему фронту на входе **start** блок начинает отсчет времени, при этом на выходе **ET** отображается время, прошедшее с начала отсчета, а выход **RUN** имеет значение **TRUE**. По переднему фронту на входе **stop** отсчет времени прекращается, при этом на выходе **PT** отображается время окончания отсчета (совпадающее с текущим значением выхода **ET**), а выход **RUN** принимает значение **FALSE**. Вход **tmax** используется для ограничения продолжительности отсчета – если **ET > tmax**, то блок прекращает работу, а его выходы обнуляются. По переднему фронту на входе **RST** происходит принудительная остановка блока с обнулением выходов.

<b>*Обратите внимание,*</b> старт начала отсчета возможен только в том случае, если входы **stop** и **RST** имеют значение **FALSE**.

<a id="topic-125256"></a>

### M_T

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Контролируемый сигнал |
| Входы | tmax | TIME | Максимальное время отсчета |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | PT | TIME | Время, которое сигнал был в TRUE |
| Выходы | ET | TIME | Прошедшее время |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный **блок** **M_T** представляет собой модуль измерения времени между импульсами переднего и заднего фронта. По переднему фронту на входе **IN** блок начинает отсчет времени, при этом на выходе **ET** отображается время, прошедшее с начала отсчета. По заднему фронту на входе **IN** отсчет времени прекращается, при этом на выходе **PT** отображается время окончания отсчета (совпадающее с текущим значением выхода **ET**). Таким образом, блок измеряет время, в течение которого вход **IN** находился в значении **TRUE**. Вход **tmax** используется для ограничения продолжительности отсчета – если **ET > tmax**, то блок прекращает работу, а его выходы обнуляются. По переднему фронту на входе **RST** происходит принудительная остановка блока с обнулением выходов.

<b>*Обратите внимание*</b>, старт начала отсчета возможен только в том случае, если вход **RST** имеет значение **FALSE**.

<a id="topic-125257"></a>

### M_TX

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Контролируемый сигнал |
| Входы | tmax | TIME | Максимальное время отсчета |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | TH | TIME | Время, которое IN был в TRUE |
| Выходы | TL | TIME | Время, которое IN был в FALSE |
| Выходы | DC | REAL | Процент времени, которое IN был в TRUE (0…1) |
| Выходы | F | REAL | Частота изменения сигнала на входе IN |
| Выходы | ET | TIME | Прошедшее время |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный **блок** **M_TX** представляет собой модуль сбора статистики о состоянии входа **IN** По переднему фронту на входе **IN** блок начинает отсчет времени, при этом на выходе **ET** отображается время, прошедшее с начала отсчета. По заднему фронту на входе **IN** <b>*отсчет не прекращается*</b>; для остановки работы блока необходим импульс по переднему фронту на входе **RST**, который также обнулит его выходы. На выходах **TH** и **TL** отображается время, которое сигнал **IN** находится в состоянии **TRUE** и **FALSE** соответственно. Выход **DC** сообщает, какой процент времени сигнал находился в состоянии **TRUE** (например, если **DC=0.4**, то в течение 40% времени вход **IN** имел значение **TRUE**, в течение 60% - значение **FALSE**). На выходе **F** отображается частота изменения входа **IN**. Вход **tmax** используется для ограничения продолжительности отсчета – если **ET > tmax**, то блок прекращает работу, а его выходы обнуляются.

<b>*Обратите внимание*</b>, обновление значений на выходах **TH**, **TL**, **DC** и **F** происходит после очередного импульса на входе **IN**. В первый раз значения на этих выходах появятся после **второго** импульса по переднему фронту на входе **IN** с начала работы блока.

<a id="topic-125258"></a>

### METER

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | M1 | REAL | Контролируемое значение 1 |
| Входы | M2 | REAL | Контролируемое значение 2 |
| Входы | I1 | BOOL | Режим контроля значения 1 |
| Входы | I2 | BOOL | Режим контроля значения 2 |
| Входы | D | REAL | Делитель для выхода |
| Входы | RST | BOOL | Сигнал сброса блока |
| Входы – выходы | MX | REAL | Интегральное значение M1 и M2 |
| Используемые модули | [T_PLC_MS](#topic-125261), [R2_ADD](#topic-124916) | [T_PLC_MS](#topic-125261), [R2_ADD](#topic-124916) | [T_PLC_MS](#topic-125261), [R2_ADD](#topic-124916) |

Функциональный блок **METER** используется для определения интегрального значения двух величин за заданный период времени. Пока  вход **I1** имеет значение **TRUE**, значение **M1** каждый цикл ПЛК прибавляется к последнему сохраненному значению. Пока  вход **I2** имеет значение **TRUE**, значение **M2** каждый цикл ПЛК прибавляется к последнему сохраненному значению. Вход **D** определяет значение делителя для cохраненного значения. Выход **MX** содержит сумму всех предыдущих значений **M1** и **M2** за периоды, во время которых **I1** и **I2** имели значение **TRUE**, поделенную на **D**:

![METER](https://docs.owen.ru/book_img/2417/165070.png)

По переднему фронту на входе **RST** значение **MX** обнуляется, после чего суммирование начинается заново.

На рисунке ниже приведена трассировка работы блока, используемого для подсчета суммарной потребляемой электроэнергии для двух нагревателей с мощностью 60 и 85 кВ соответственно. Переменные **xI1** и **xI2** определяют состояние соответствующего нагревателя (**TRUE** – включен, **FALSE** – отключен).

![METER1](https://docs.owen.ru/book_img/2417/165069.png)

<i>Трассировка работы ФБ **METER**</i> 

<a id="topic-125259"></a>

### METER_STAT

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Контролируемое значение |
| Входы | DI | DATE | Текущая дата |
| Входы | RST | BOOL | Сигнал сброса блока |
| Входы – выходы | Last_Day | REAL | Расход за вчерашний день |
| Входы – выходы | Current_Day | REAL | Расход за текущий день |
| Входы – выходы | Last_Week | REAL | Расход за прошлую неделю |
| Входы – выходы | Current_Week | REAL | Расход за текущую неделю |
| Входы – выходы | Last_Month | REAL | Расход за прошлый месяц |
| Входы – выходы | Current_Month | REAL | Расход за текущий месяц |
| Входы – выходы | Last_Year | REAL | Расход за прошлый год |
| Входы – выходы | Current_Year | REAL | Расход за текущий год |
| Используемые модули | [YEAR_OF_DATE](#topic-125012), [MONTH_OF_DATE](#topic-124988), [DAY_OF_YEAR](#topic-124962), [DAY_OF_WEEK](#topic-124961) | [YEAR_OF_DATE](#topic-125012), [MONTH_OF_DATE](#topic-124988), [DAY_OF_YEAR](#topic-124962), [DAY_OF_WEEK](#topic-124961) | [YEAR_OF_DATE](#topic-125012), [MONTH_OF_DATE](#topic-124988), [DAY_OF_YEAR](#topic-124962), [DAY_OF_WEEK](#topic-124961) |

Функциональный блок **METER_STAT** используется для определения суммарного расхода величины **IN** за прошлые день (**Last_Day**), неделю (**Last_Week**), месяц (**Last_Month**) и год (**Last_Year**), а также за текущие день (**Current_Day**), неделю (**Current_Week**), месяц (**Current_Month**) и год (**Current_Year**). На вход **DI** подается текущая дата. По переднему фронту на входе **RST** выходы блока обнуляются, после чего сбор статистики начинается заново.

Логика работы блока подразумевает, что **IN** является возрастающей с течением времени величиной, характеризующий расход какого-либо вещества, потребление электроэнергии и т.п.

<a id="topic-125260"></a>

### ONTIME

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Контролируемый сигнал |
| Входы | RST | BOOL | Сигнал сброса блока |
| Входы – выходы | SECONDS | UDINT | Время активного сигнала |
| Входы – выходы | CYCLES | UDINT | Число периодов активности сигнала |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **ONTIME** представляет собой модуль измерения периода активности сигнала. Если вход **IN** имеет значение **TRUE**, то на входе-выходе **SECONDS** отображается число секунд активности сигнала. Если вход **IN** принимает значение **FALSE**, то отсчет времени останавливается, но будет продолжен при следующем переходе в состояние **TRUE**. По переднему фронту входа **IN** значение входа-выхода **CYCLES** увеличивается на +1 – таким образом, эта величина характеризует число периодов активности сигнала. По переднему фронту на входе **RST** значения **SECONDS** и **CYCLES** обнуляются, после чего подсчет начинается заново.

<a id="topic-125261"></a>

### T_PLC_MS

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Выходы | T_PLC_MS | DWORD | Значение системного таймера ПЛК |
| Константы | debug | BOOL | Управление режимом отладки |
| Константы | N | INT | Коэффициент масштаба времени |
| Константы | offset | DWORD | Смещение времени таймера, мс |

Функция **T_PLC_MS** возвращает значение системного таймера (время, прошедшее со старта ПЛК) в миллисекундах. Функция **T_PLC_MS** представляет собой обвязку вокруг системной функции **TIME()**, но помимо этого позволяет тестировать системный таймер на переполнение. Для этого надо внести изменения в область объявления переменных функции: присвоить константе **debug** значение **TRUE** и задать значения для констант **N** (коэффициент масштаба времени, каждую миллисекунду к значению таймера будет прибавляться 2<sup>N</sup> миллисекунд) и **offset** (смещение значения таймера).

Следует помнить, что реализация программной обвязки для системного таймера может отличаться для разных сред программирования.

<a id="topic-125262"></a>

### T_PLC_US

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Выходы | T_PLC_US | DWORD | Значение системного таймера ПЛК |
| Константы | debug | BOOL | Управление режимом отладки |
| Константы | N | INT | Коэффициент масштаба времени |
| Константы | offset | DWORD | Смещение времени таймера, мс |

Функция **T_PLC_US** возвращает значение системного таймера (время, прошедшее со старта ПЛК) в микросекундах. Функция **T_PLC_US** фактически возвращает значение системной функции **TIME()**, умноженное на 1000. При необходимости эта реализация может быть заменена на вызов системной функции **LTIME****()**, если последняя поддержана на ПЛК. Функция **T_PLC_US** также содержит режим отладки; см. подробности в описании функции [T_PLC_MS](#topic-125261).

<a id="topic-125263"></a>

### TC_MS

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | TC | DWORD | Время системного таймера, мс |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **TC_MS** возвращает значение длительности (в миллисекундах) прошедшего цикла задачи ПЛК, в которой осуществляется вызов блока. Блок представляет собой обвязку для функции [T_PLC_MS](#topic-125261); если блок возвращает некорректное значение, то следует проверить, не используется ли данная функция в режиме отладки.

<a id="topic-125264"></a>

### TC_S

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | TC | REAL | Время системного таймера |
| Используемые модули | [T_PLC_US](#topic-125262) | [T_PLC_US](#topic-125262) | [T_PLC_US](#topic-125262) |

Функциональный блок **TC_S** возвращает значение длительности прошедшего цикла задачи ПЛК, в которой осуществляется вызов блока, в виде переменной с плавающей точкой с разрядностью до миллисекунд (например, 0.01 для T=10 мс). Блок представляет собой обвязку для функции [T_PLC_US](#topic-125262); если блок возвращает некорректное значение, то следует проверить, не используется ли данная функция в режиме отладки. Более подробную информацию (в т.ч. сведения о точности) см. в описании функции [T_PLC_US](#topic-125262).

<a id="topic-125265"></a>

### TC_US

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | TC | DWORD | Время системного таймера, мкс |
| Используемые модули | [T_PLC_US](#topic-125262) | [T_PLC_US](#topic-125262) | [T_PLC_US](#topic-125262) |

Функциональный блок **TC_US** (в микросекундах) прошедшего цикла задачи ПЛК, в которой осуществляется вызов блока. Блок представляет собой обвязку для функции [T_PLC_US](#topic-125262); если блок возвращает некорректное значение, то следует проверить, не используется ли данная функция в режиме отладки. Более подробную информацию (в т.ч. сведения о точности) см. в описании функции [T_PLC_US](#topic-125262).

<a id="topic-125266"></a>

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

<a id="topic-125267"></a>

### 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·10<sup>16</sup> м = 3,2616 светового года;
- 1 световой год = 9 460 730 472 580 800 м ≈ 63 241,077 а.е.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>    <?Pub _font
FontColor="#988DF7"?>AstroConv<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#E7C24A"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E7C24A"?>ASTRO<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Расстояние в световых годах *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>DistanceLJ<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4.24<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* 4.24 световых года до Проксимы Центавра *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результаты *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Meters<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>     <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>AE<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>         <?Pub _font
FontColor="#DBB740"?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Parsecs<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>    <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>LightYears<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов ФБ с входом LJ *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>AstroConv<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>LJ<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>DistanceLJ<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Чтение результатов *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Meters<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>AstroConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFF2C5"?>Ym<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(* ≈ 4.0113E16 м *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>AE<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>AstroConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFF2C5"?>YAE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* ≈ 268144.6 а.е. *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>Parsecs<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>AstroConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFF2C5"?>YPC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* ≈ 1.3 парсека *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>LightYears<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>AstroConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFF2C5"?>YLJ<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* 4.24 световых года *)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Результат:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Ym ≈ 4.0113E16 м<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - YAE ≈ 268144.6 а.е.<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - YPC ≈ 1.3 парсека<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - YLJ = 4.24 световых года*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125268"></a>

### BFT_TO_MS

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | BFT | INT | Скорость ветра в баллах Бофорта (1..12) |
| Выходы | BFT_TO_MS | REAL | Скорость ветра в м/с |

Функция **BFT_TO_MS** конвертирует значение скорости ветра из шкалы Бофорта в метры в секунду. Преобразование выполняется с помощью эмпирической формулы

```
BFT_TO_MS = 0.837 · BFT3/2
```

См. также обратную функцию [MS_TO_BFT](#topic-125281).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Скорость ветра в баллах Бофорта *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>WindForce<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* 4 балла - «Умеренный ветер» (5.5–7.9 м/с) *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>WindSpeed<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции BFT_TO_MS *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>WindSpeed<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>BFT_TO_MS(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>BFT<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>WindForce<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: WindSpeed ≈ 6.696 м/с*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125269"></a>

### C_TO_F

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | celsius | REAL | Температура в градусах Цельсия |
| Выходы | C_TO_F | REAL | Температура в градусах по Фаренгейту |

Функция **C_TO_F** конвертирует значение температуры из градусов Цельсия в градусы Фаренгейта. Преобразование выполняется с помощью формулы

```
C_TO_F = (9/5) · celsius + 32
```

См. также обратную функцию [F_TO_C](#topic-125274).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Температура в градусах Цельсия *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>TempCelsius<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>25.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* 25 °C *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>TempFahrenheit<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции C_TO_F *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>TempFahrenheit<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>C_TO_F<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>celsius<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>TempCelsius<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: TempFahrenheit = 77.0 °F*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125270"></a>

### C_TO_K

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | celsius | REAL | Температура в градусах Цельсия |
| Выходы | C_TO_K | REAL | Температура в градусах Кельвина |

Функция **C_TO_K** конвертирует значение температуры из градусов Цельсия в кельвины. Преобразование выполняется с помощью формулы

```
C_TO_К = celsius + 273.15
```

См. также обратную функцию [К_TO_C](#topic-125278).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Температура в градусах Цельсия *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>TempCelsius<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>30.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* 25 °C *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>TempKelvin<?Pub /_font?>     <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции C_TO_K *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>TempKelvin<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>C_TO_K<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>celsius<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>TempCelsius<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: TempKelvin = 303*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125271"></a>

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

![DEG TO DIR](https://docs.owen.ru/book_img/2417/165068.png)

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

Вход **LANG** определяет язык приложения (см. глобальную переменную [LANGUAGE](#topic-124783); в ней же содержатся и обозначения румбов). См. также обратную функцию [DIR_TO_DEG](#topic-125272).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>    <?Pub _font
FontColor="#5DA35B"?>(* Азимут в градусах *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Azimuth<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>120<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>               <?Pub _font
FontColor="#5DA35B"?>(* 120 градусов *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Количество лучей розы румбов *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Rays<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                    <?Pub _font
FontColor="#5DA35B"?>(* 8 лучей (N=2) *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Язык проекта (0 - английский) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Lang<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                    <?Pub _font
FontColor="#5DA35B"?>(* Английский язык *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат - обозначение румба *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Direction<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции DEG_TO_DIR *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Direction<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DEG_TO_DIR<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>DEG<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Azimuth,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>N<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Rays,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>L<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Lang<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: Direction = 'SE'*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125272"></a>

### DIR_TO_DEG

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | DIR | STRING(3) | Обозначение румба |
| Входы | L | INT | Язык проекта |
| Выходы | DIR_TO_DEG | INT | Азимут, градусы |

Функция **DIR_TO_DEG** конвертирует обозначения румба в значение азимута в градусах. Функция работает с 16-лучевой розой румбов (см. рисунок выше). Вход **L** определяет язык приложения (см. глобальную переменную [LANGUAGE](#topic-124783); в ней же содержатся и названия румбов). См. также обратную функцию [DEG_TO_DIR](#topic-125271).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Обозначение румба *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Direction<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'SE'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(* Юго-восток *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Язык проекта (0 - английский) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Lang<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                    <?Pub _font
FontColor="#5DA35B"?>(* Английский язык *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат - азимут в градусах *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Azimuth<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции DIR_TO_DEG *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Azimuth<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DIR_TO_DEG<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>DIR<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Direction,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>L<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Lang<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: Azimuth = 135*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125273"></a>

### ENERGY

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | J | REAL | Исходное значение энергии, Дж |
| Входы | C | REAL | Исходное значение энергии, кал |
| Входы | WH | REAL | Исходное значение энергии, Вт∙ч |
| Выходы | YJ | REAL | Конвертированное значение энергии, Дж |
| Выходы | YC | REAL | Конвертированное значение энергии, кал |
| Выходы | YWH | REAL | Конвертированное значение энергии, Вт∙ч |

Функциональный блок **ENERGY** конвертирует значение энергии из одних единиц измерения в другие. Подразумевается, что при каждом вызове блока используется только один вход, а остальные имеют нулевые значения. При этом на выходах отображаются конвертированные значения в соответствующих единицах измерения. Если при вызове ФБ есть значения на нескольких входах, то будет произведена конвертация суммы этих значений.

- 1 кал = 4.1868 Дж = 1,163·10<sup>-3</sup> Вт·ч;
- 1 Вт·ч = 3.6·10<sup>-3</sup> Дж = 860 кал.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Экземпляр ФБ ENERGY *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>EnergyConv<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>ENERGY<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Исходное значение энергии в джоулях *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>EnergyJ<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>4186.8<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* 4186.8 Дж = 1000 кал *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результаты конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>ResultJ<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>   <?Pub _font FontColor="#5DA35B"?>(* В джоулях *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>ResultC<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>   <?Pub _font FontColor="#5DA35B"?>(* В калориях *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>ResultWH<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>  <?Pub _font FontColor="#5DA35B"?>(* В ватт-часах *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов ФБ с заполненными входами J*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>EnergyConv<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>J<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>EnergyJ);<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Чтение результатов *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>ResultJ<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>EnergyConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>YJ<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(*4186.8 Дж *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultC<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>EnergyConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>YC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(*1000.0 кал*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultWH<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>EnergyConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>YWH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* ≈ 1.163 Вт·ч*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125274"></a>

### F_TO_C

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | fahrenheit | REAL | Температура в градусах по Фаренгейту |
| Выходы | F_TO_C | REAL | Температура в градусах Цельсия |

Функция **C_TO_F** конвертирует значение температуры из градусов Фаренгейта в градусы Цельсия. Преобразование выполняется с помощью формулы

```
F_TO_C=(5/9)∙(fahrenheit-32)
```

См. также обратную функцию [C_TO_F](#topic-125269)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Температура в градусах Фаренгейта *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>TempFahrenheit<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>77.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(* 77 °F *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>TempCelsius<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции F_TO_C *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>TempCelsius<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.F_TO_C<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>fahrenheit<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>TempFahrenheit<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: TempCelsius = 25.0 °C*)<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125275"></a>

### F_TO_OM

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | F | REAL | Частота, Гц |
| Выходы | F_TO_OM | REAL | Угловая частота, рад/с |

Функция **F_TO_OM** возвращает значение угловой частоты для заданной частоты **F**. Вычисление выполняется по формуле

```
F_TO_OM=2πF
```

См. также обратную функцию [OM_TO_F](#topic-125283)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Частота, Гц *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Frequency<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>50.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>           <?Pub _font
FontColor="#5DA35B"?>(* 50 Гц (промышленная частота) *)<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>AngularFrequency<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font
FontColor="#DBB740"?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>            <?Pub _font FontColor="#5DA35B"?>(* Угловая частота, рад/с *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции F_TO_OM *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>AngularFrequency<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>F_TO_OM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>F<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Frequency<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: AngularFrequency ≈ 314.159 рад/с*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125276"></a>

### F_TO_PT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | F | REAL | Частота колебаний, Гц |
| Выходы | F_TO_PT | TIME | Период колебаний, с |

Функция **F_TO_PT** возвращает значение периода колебаний для заданной частоты **F**. Вычисление выполняется по формуле

```
F_TO_PT=1/F
```

См. также обратную функцию [PT_TO_F](#topic-125285)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Частота колебаний, Гц *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Frequency<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>50.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>           <?Pub _font
FontColor="#5DA35B"?>(* 50 Гц (промышленная частота) *)<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Period<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>TIME<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                      <?Pub _font FontColor="#5DA35B"?>(* Период колебаний, с *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции F_TO_PT *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Period<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.F_TO_PT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>F<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>Frequency<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: Period = T#20ms*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125277"></a>

### 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
```

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Географические координаты в формате DMS *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Degrees<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>55<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                <?Pub _font
FontColor="#5DA35B"?>(* 55 градусов *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Minutes<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>45<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                <?Pub _font
FontColor="#5DA35B"?>(* 45 минут *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Seconds<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>30.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>             <?Pub _font
FontColor="#5DA35B"?>(* 30 секунд *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>DecimalDegrees<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>              <?Pub _font FontColor="#5DA35B"?>(* Десятичные градусы *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции GEO_TO_DEG *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>DecimalDegrees<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>GEO_TO_DEG<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>D<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Degrees,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>M<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Minutes,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SEC<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Seconds<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Результат: DecimalDegrees ≈ 55.758333°*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125278"></a>

### K_TO_C

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | Kelvin | REAL | Температура в градусах Кельвина |
| Выходы | K_TO_C | REAL | Температура в градусах Цельсия |

Функция **K_TO_C** конвертирует значение температуры из кельвинов в градусы Цельсия. Преобразование выполняется с помощью формулы

```
C_TO_К = Kelvin - 273.15
```

См. также обратную функцию [C_TO_K](#topic-125270).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Температура в градусах Цельсия *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>TempKelvin<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>303.15<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         
    <?Pub _font FontColor="#5DA35B"?>(* Результат конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>TempCelsius<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции K_TO_C *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>TempCelsius<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>K_TO_C<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>Kelvin<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>TempKelvin<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: TempCelsius = 30*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125279"></a>

### KMH_TO_MS

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | kmh | REAL | Скорость, км/ч |
| Выходы | KMH_TO_MS | REAL | Скорость, м/с |

Функция **KMH_TO_MS** конвертирует значение скорости из км/ч в м/с. См. также обратную функцию [MS_TO_KMH](#topic-125282).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Скорость в км/ч *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>SpeedKmh<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>180<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         
    <?Pub _font FontColor="#5DA35B"?>(* Результат конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>SpeedMS<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции KMH_TO_MS *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>SpeedMS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>KMH_TO_MS<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>kmh<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>SpeedKmh<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: SpeedMS = 50.0000038*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125280"></a>

### 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 м.

Пример “Конвертация одного значения”

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Экземпляр ФБ LENGTH *)<?Pub /_font
?>
    <?Pub _font FontColor="#8080FF"?>LengthConv<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>LENGTH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Исходное значение длины в метрах *)<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>LengthM<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1000.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>           <?Pub _font
FontColor="#5DA35B"?>(* 1000 м = 1 км *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результаты конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>ResultM<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                     <?Pub _font FontColor="#5DA35B"?>(* В метрах *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultIn<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                    <?Pub _font FontColor="#5DA35B"?>(* В дюймах *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultFt<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                    <?Pub _font FontColor="#5DA35B"?>(* В футах *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultMile<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                  <?Pub _font FontColor="#5DA35B"?>(* В милях *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultSm<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                    <?Pub _font FontColor="#5DA35B"?>(* В морских милях *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов ФБ с заполненным входом m *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>LengthConv<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#FFF2C5"
?>m<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>LengthM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Чтение результатов *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>ResultM<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LengthConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFF2C5"?>Ym<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* 1000.0 м *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultIn<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LengthConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFF2C5"?>Yin<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* ≈ 39370.08 дюймов *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultFt<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LengthConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Yft<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* ≈ 3280.84 футов *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultMile<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LengthConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Ymile<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?> <?Pub _font FontColor="#5DA35B"
?>(* ≈ 0.6214 мили *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultSm<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LengthConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Ysm<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* ≈ 0.5400 морской мили *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125281"></a>

### 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](#topic-125268).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Скорость ветра в м/с *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>WindSpeed<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>6.69<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>               <?Pub _font
FontColor="#5DA35B"?>(* 6.69 м/с) *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>WindForce<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции MS_TO_BFT *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>WindForce<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>MS_TO_BFT(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>MS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>WindSpeed<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: 4 балла "Умеренный ветер"*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125282"></a>

### MS_TO_KMH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | MS | REAL | Скорость, м/с |
| Выходы | MS_TO_KMH | REAL | Скорость, км/ч |

Функция **MS_TO_KMH** конвертирует значение скорости из м/с в км/ч.

```
MS_TO_BFT = (1.196172 · MS)2/3
```

См. также обратную функцию [KMH_TO_MS](#topic-125279).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Скорость в мс *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>SpeedMS<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>50.0000038<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         
    <?Pub _font FontColor="#5DA35B"?>(* Результат конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>SpeedKmh<?Pub /_font?>    <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции MS_TO_KMH *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>SpeedKmh<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>MS_TO_KMH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>MS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>SpeedMS<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: SpeedKmh = 180 км/ч*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125283"></a>

### OM_TO_F

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | OM | REAL | Угловая частота, рад/с |
| Выходы | OM_TO_F | REAL | Частота, Гц |

Функция **OM_TO_F** возвращает значение частоты для заданной угловой частоты **OM**. Вычисление выполняется по формуле

```
OM_TO_F=OM/2π
```

См. также обратную функцию [F_TO_OM](#topic-125275)

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* угловая частота, рад/с *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>AngularFrequency<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font
FontColor="#DBB740"?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>314.15<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Frequency<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>            <?Pub _font FontColor="#5DA35B"?>(* Частота, Гц *)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции OM_TO_F *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Frequency<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>OM_TO_F<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>OM<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>AngularFrequency<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: Frequency = 50 Гц*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125284"></a>

### 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** конвертирует значение давления из одних единиц измерения в другие. Подразумевается, что при каждом вызове блока используется только один вход, а остальные имеют нулевые значения. При этом на выходах отображаются конвертированные значения в соответствующих единицах измерения. Если при вызове ФБ есть значения на нескольких входах, то будет произведена конвертация суммы этих значений.

Соотношения между единицами приведены в [этой статье](https://ru.wikipedia.org/wiki/%D0%94%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5).

Пример “Конвертация одного значения”

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>    <?Pub _font
FontColor="#5DA35B"?>(* Экземпляр ФБ PRESSURE *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>PressureConv<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>PRESSURE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Исходное значение давления в барах *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>PressureBar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>1.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* 1 бар *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результаты конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>ResultBar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                   <?Pub _font FontColor="#5DA35B"?>(* В барах *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultPa<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                    <?Pub _font FontColor="#5DA35B"?>(* В паскалях *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultAtm<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                   <?Pub _font FontColor="#5DA35B"?>(* В физических атмосферах *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultAtt<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                   <?Pub _font FontColor="#5DA35B"?>(* В технических атмосферах *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultTorr<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                  <?Pub _font FontColor="#5DA35B"?>(* В мм ртутного столба *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultMws<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                   <?Pub _font FontColor="#5DA35B"?>(* В метрах водяного столба *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов ФБ с заполненным входом bar *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>PressureConv<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>bar<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>PressureBar<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Чтение результатов *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>ResultBar<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>PressureConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFF2C5"?>Ybar<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* 1.0 бар *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultPa<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>PressureConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>Ypa<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>       <?Pub _font
FontColor="#5DA35B"?>(* 100000.0 Па *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultAtm<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>PressureConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>Yatm<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* ≈ 0.9869 атм *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultAtt<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>PressureConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>Yatt<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* ≈ 1.0197 ат *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultTorr<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>PressureConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>Ytorr<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(* ≈ 750.06 мм рт. ст. *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultMws<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>PressureConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>Ymws<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(* ≈ 10.197 м вод. ст. *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125285"></a>

### PT_TO_F

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT | TIME | Период колебаний, с |
| Выходы | PT_TO_F | REAL | Частота колебаний, Гц |

Функция **PT_TO_F** возвращает значение частоты для заданного периода колебаний **PT**. Вычисление выполняется по формуле

```
PT_TO_F=1/PT
```

См. также обратную функцию [F_TO_PT](#topic-125276).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Период колебаний, с *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Period<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>TIME<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#00FF66"?>T#20ms<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>           
    <?Pub _font FontColor="#5DA35B"?>(* Результат конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Frequency<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                      <?Pub _font FontColor="#5DA35B"?>(*Частота колебаний, Гц *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции PT_TO_F *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Frequency<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.PT_TO_F<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#E1E1E1"?>PT<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>Period<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: Frequency = 50 Гц*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125286"></a>

### 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 м/с

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Экземпляр ФБ SPEED *)<?Pub /_font
?>
    <?Pub _font FontColor="#8080FF"?>SpeedConv<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>SPEED<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Исходное значение скорости в м/с *)<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>SpeedMs<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>10.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>             <?Pub _font
FontColor="#5DA35B"?>(* 10 м/с *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результаты конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>ResultMs<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                    <?Pub _font FontColor="#5DA35B"?>(* В м/с *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultKmh<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                    <?Pub _font FontColor="#5DA35B"?>(* В км/ч *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultKn<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                    <?Pub _font FontColor="#5DA35B"?>(* В узлах *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultMh<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                    <?Pub _font FontColor="#5DA35B"?>(* В милях/ч *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов ФБ с заполненным входом ms *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>SpeedConv<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>ms<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>SpeedMs<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Чтение результатов *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>ResultMs<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>SpeedConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFF2C5"?>Yms<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(* 10.0 м/с *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultKmh<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>SpeedConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFF2C5"?>Ykmh<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>    <?Pub _font FontColor="#5DA35B"
?>(* 36.0 км/ч *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultKn<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>SpeedConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFF2C5"?>Ykn<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(* ≈ 19.44 узла *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultMh<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>SpeedConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFF2C5"?>Ymh<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>      <?Pub _font
FontColor="#5DA35B"?>(* ≈ 22.37 миль/ч *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125287"></a>

### TEMPERATURE

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | K | REAL | Исходное значение температуры, кельвины |
| Входы | C | REAL | Исходное значение температуры, градусы Цельсия |
| Входы | F | REAL | Исходное значение температуры, градусы Фаренгейта |
| Входы | Re | REAL | Исходное значение температуры, градусы Реомюра |
| Входы | Ra | REAL | Исходное значение температуры, градусы Ранкина |
| Выходы | YK | REAL | Конвертированное значение, кельвины |
| Выходы | YC | REAL | Конвертированное значение, градусы Цельсия |
| Выходы | YF | REAL | Конвертированное значение, градусы Фаренгейта |
| Выходы | YRe | REAL | Конвертированное значение, градусы Реомюра |
| Выходы | YRa | REAL | Конвертированное значение, градусы Ранкина |

Функциональный блок **TEMPERATURE** конвертирует значение температуры из одних единиц измерения в другие. Подразумевается, что при каждом вызове блока используется только один вход, а остальные имеют нулевые значения. При этом на выходах отображаются конвертированные значения в соответствующих единицах измерения. Если при вызове ФБ есть значения на нескольких входах, то будет произведена конвертация суммы этих значений.

Соотношения между единицами:

- T<sub>K</sub> = T<sub>C</sub> + 273,15;
- T<sub>C</sub> = T<sub>K</sub> – 273,15;
- T<sub>F</sub>=9/5∙T<sub>C</sub>+32;
- T<sub>RE</sub> = (T<sub>K</sub> -273,15)∙0,8;
- T<sub>RA</sub> = 1,8∙T<sub>K</sub>

Следует помнить, что разные температурные шкалы имеют разные точки отсчета. По умолчанию входы блока имеют следующие значения:

- K= 0.0;
- C= –273,15;
- F= –459,67;
- Re= –218,52;
- Ra= 0.0

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Экземпляр ФБ TEMPERATURE *)<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>TempConv<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>TEMPERATURE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Исходное значение температуры в градусах Цельсия *)<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>TempCelsius<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>        <?Pub _font
FontColor="#5DA35B"?>(* 100 °C (точка кипения воды) *)<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>(* Результаты конвертации *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>ResultK<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                     <?Pub _font FontColor="#5DA35B"?>(* В кельвинах *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultC<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                     <?Pub _font FontColor="#5DA35B"?>(* В градусах Цельсия *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultF<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                     <?Pub _font FontColor="#5DA35B"?>(* В градусах Фаренгейта *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultRe<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                    <?Pub _font FontColor="#5DA35B"?>(* В градусах Реомюра *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ResultRa<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                    <?Pub _font FontColor="#5DA35B"?>(* В градусах Ранкина *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов ФБ с заполненным входом C *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>TempConv<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>C<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#DCDCDC"?>TempCelsius<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Чтение результатов *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>ResultK<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>TempConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>YK<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(*YK  = 373.15 K*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultC<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>TempConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>YC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(*YC  = 100.0 °C*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultF<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>TempConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>YF<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font FontColor="#5DA35B"
?>(*YF  = 212.0 °F*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultRe<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>TempConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>YRe<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(*YRe = 80.0 °Re*)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ResultRa<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>TempConv<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>YRa<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"
?>(*YRa = 671.67 °Ra*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125288"></a>

## Регуляторы

Данная глава содержит описание модулей управления (регуляторов), содержащихся в библиотеке **OSCAT**. Регулятором называется устройство, которое следит за функционированием объекта управления и, постоянно анализируя его состояние, вырабатывает определенное управляющее воздействие (сигнал управления). В тех случаях, когда это возможно, модули управления должны вызываться каждый цикл ПЛК. Преимуществом такого подхода является возможность в пределах одной задачи контролировать процессы, протекающие с разной скоростью. Альтернативный подход подразумевает вызов модулей с заданной частотой (например, по таймеру); его недостатком является возможное нарушение частоты вызова блоков в задачах с низким приоритетом. Величину цикла ПЛК должен определить программист, проанализировав требования и характеристики конкретного технологического процесса.

Ниже описана структура и взаимосвязь основных модулей данной главы:

| Модуль | Основан на | Описание |
| --- | --- | --- |
| [INTEGRATE](#topic-125322) | - | Блок интегрирования |
| [FT_DERIV](#topic-125301) | - | Блок дифференцирования |
| [CTRL_IN](#topic-125292) | - | Блок вычисления сигнала рассогласования |
| [CTRL_OUT](#topic-125293) | - | Блок вычисления управляющего воздействия |
| [FT_INT](#topic-125303) | [INTEGRATE](#topic-125322) | Блок интегрирования c ограничением выхода |
| [FT_PI](#topic-125307) | [FT_INT](#topic-125303) | Блок ПИ-регулирования |
| [FT_PIW](#topic-125311) | [FT_INT](#topic-125303) | Блок ПИ-регулирования с компенсаций эффекта интегрального насыщения |
| [FT_PIWL](#topic-125312) | - | Блок ПИ-регулирования с компенсаций эффекта интегрального насыщения |
| [CTRL_PI](#topic-125294) | [FT_PIWL](#topic-125312), [CTRL_IN](#topic-125292), [CTRL_OUT](#topic-125293) | ПИ-регулятор с обвязкой |
| [FT_PID](#topic-125308) | [FT_INT](#topic-125303), [FT_DERIV](#topic-125301) | Блок ПИД-регулирования |
| [FT_PIDW](#topic-125309) | [INTEGRATE](#topic-125322), [FT_DERIV](#topic-125301) | Блок ПИД-регулирования с компенсаций эффекта интегрального насыщения |
| [FT_PIDWL](#topic-125310) | [FT_PIWL](#topic-125312), [FT_DERIV](#topic-125301) | Блок ПИД-регулирования с компенсаций эффекта интегрального насыщения |
| [CTRL_PID](#topic-125295) | [FT_PIDWL](#topic-125310), [CTRL_IN](#topic-125292), [CTRL_OUT](#topic-125293) | ПИД-регулятор с обвязкой |
| [FT_PD](#topic-125305) | [FT_DERIV](#topic-125301) | ПД-регулятор |
| [FT_PDT1](#topic-125306) | [FT_DERIV](#topic-125301), [FT_PT1](#topic-125313) | ПД-регулятор с А-звеном |

<a id="topic-125289"></a>

### BAND_B

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | BYTE | Входное значение |
| Входы | B | BYTE | Область ограничения |
| Выходы | BAND_B | BYTE | Выходное значение |

Функция **BAND_B** ограничивает диапазон входного сигнала **X** по следующему принципу:

- BAND_B = 0, если X < B;
- BAND_B = X, если B ≤ X ≤ (255-B);
- BAND_B = 255, если X > (255-B).

<a id="topic-125290"></a>

### CONTROL_SET1

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | Kt | REAL | Коэффициент усиления на границе устойчивости. |
| Входы | Tt | REAL | Период установившихся колебаний |
| Входы | PI | BOOL | Режим «Настройки ПИ-регулятора» |
| Входы | PID | BOOL | Режим «Настройки ПИД-регулятора» |
| Выходы | KP | REAL | Рассчитанный коэффициент усиления |
| Выходы | TN | REAL | Постоянная времени интегрирования |
| Выходы | TV | REAL | Постоянная времени дифференцирования |
| Выходы | KI | REAL | Рассчитанный коэффициент интегрирования |
| Выходы | KD | REAL | Рассчитанный коэффициент дифференцирования |
| Параметры | P_K | REAL | Эмпирический коэффициент (0.5) |
| Параметры | PI_K | REAL | Эмпирический коэффициент (0.45) |
| Параметры | PI_TN | REAL | Эмпирический коэффициент (0.83) |
| Параметры | PID_K | REAL | Эмпирический коэффициент (0.6) |
| Параметры | PID_TN | REAL | Эмпирический коэффициент (0.5) |
| Параметры | PID_TV | REAL | Эмпирический коэффициент (0.125) |

Функциональный блок **CONTROL_SET1** используется для настройки регулятора методом Циглера-Никольса (*по частотным параметрам).* Для этого регулятор переводится в режим П-регулятора, коэффициент усиления которого увеличивается до тех пор, пока на выходе системы не установятся колебания с постоянной амплитудой (т.е. система выводится на границу устойчивости). Коэффициент усиления на границе устойчивости и период незатухающих колебаний передаются на входы блока **Kt** и **Tt**. Если вход **PI** имеет значение **TRUE**, то будет проведена настройка ПИ-регулятора; если вход **PID** имеет значение **TRUE**, то будет проведена настройка ПИД-регулятора. Если оба входа имеют значение **FALSE**, то будет проведена настройка П-регулятора. Если оба входа имеют значение **TRUE**, то настройка проведена не будет. Рассчитанные параметры подаются на выходы блока. Они вычисляются по следующим эмпирическим соотношениям:

| Регулятор | PI | PID | KP | TN | TV | KI | KD |
| --- | --- | --- | --- | --- | --- | --- | --- |
| П | FALSE | FALSE | P_K∙Kt |   |   |   |   |
| ПИ | TRUE | FALSE | PI_K∙Kt | PI_TN∙Tt |   | KP/TN |   |
| ПИД | FALSE | TRUE | PID_K∙Kt | PID_TN∙Tt | PID_TV∙Tt |   | KP∙TV |

<a id="topic-125291"></a>

### CONTROL_SET2

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | KS | REAL | Коэффициент усиления |
| Входы | TU | REAL | Время запаздывания |
| Входы | TG | REAL | Постоянная времени |
| Входы | PI | BOOL | Режим «Настройки ПИ-регулятора» |
| Входы | PID | BOOL | Режим «Настройки ПИД-регулятора» |
| Выходы | KP | REAL | Рассчитанный коэффициент усиления |
| Выходы | TN | REAL | Постоянная времени интегрирования |
| Выходы | TV | REAL | Постоянная времени дифференцирования |
| Выходы | KI | REAL | Рассчитанный коэффициент интегрирования |
| Выходы | KD | REAL | Рассчитанный коэффициент дифференцирования |
| Параметры | P_K | REAL | Эмпирический коэффициент (1.0) |
| Параметры | PI_K | REAL | Эмпирический коэффициент (0.9) |
| Параметры | PI_TN | REAL | Эмпирический коэффициент (3.33) |
| Параметры | PID_K | REAL | Эмпирический коэффициент (1.2) |
| Параметры | PID_TN | REAL | Эмпирический коэффициент (2.0) |
| Параметры | PID_TV | REAL | Эмпирический коэффициент (0.5) |

Функциональный блок **CONTROL_SET2** используется для настройки регулятора методом Циглера-Никольса (*по кривой разгона).* Для этого на объект управления подается ступенчатое воздействие и снимается кривая разгона (переходная характеристика). Графическим методом определяются параметры **KS** (коэффициент усиления), **TU** (время запаздывания) и **TG** (постоянная времени), которые подаются на соответствующие входы блока. Если вход **PI** имеет значение **TRUE**, то будет проведена настройка ПИ-регулятора; если вход **PID** имеет значение **TRUE**, то будет проведена настройка ПИД-регулятора. Если оба входа имеют значение **FALSE**, то будет проведена настройка П-регулятора. Если оба входа имеют значение **TRUE**, то настройка проведена не будет. Рассчитанные параметры подаются на выходы блока. Они вычисляются по следующим эмпирическим соотношениям:

| Регулятор | PI | PID | KP | TN | TV | KI | KD |
| --- | --- | --- | --- | --- | --- | --- | --- |
| П | FALSE | FALSE | (P_K∙KS∙TG)/TU |   |   |   |   |
| ПИ | TRUE | FALSE | (PI_K∙KS∙TG)/TU | PI_TN∙TU |   | KP/TN |   |
| ПИД | FALSE | TRUE | (PID_K∙KS∙TG)/TU | PID_TN∙TU | PID_TV∙TU | KP/TN | KP∙TV |

<a id="topic-125292"></a>

### CTRL_IN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET_POINT | REAL | Значение уставки |
| Входы | ACTUAL | REAL | Значение регулируемой величины |
| Входы | NOISE | REAL | Зона нечувствительности |
| Выходы | CTRL_IN | REAL | Сигнал рассогласования |
| Используемые модули | [DEAD_ZONE](#topic-125299) | [DEAD_ZONE](#topic-125299) | [DEAD_ZONE](#topic-125299) |

Функция **CTRL_IN** возвращает сигнал рассогласования между значением уставки **SET_POINT** и измеренным значением регулируемой величины **ACTUAL** с учетом зоны нечувствительности **NOISE**. Если |SET_POINT - ACTUAL| < NOISE, то функция возвращает **0**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Значение уставки *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>SetPoint<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>           <?Pub _font
FontColor="#5DA35B"?>(* Заданная температура 100 °C *)<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>(* Измеренное значение регулируемой величины *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ActualValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>98.5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* Фактическая температура 98.5 °C *)<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>(* Зона нечувствительности *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Noise<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                <?Pub _font
FontColor="#5DA35B"?>(* ±2 °C *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат - сигнал рассогласования *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ControlError<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции CTRL_IN *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>ControlError<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>CTRL_IN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SET_POINT<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>SetPoint,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>ACTUAL<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>ActualValue,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>NOISE<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Noise<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат: ControlError = 0.0<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   |SET_POINT - ACTUAL| = |100.0 - 98.5| = 1.5<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   |1.5| &lt; NOISE (2.0) → функция возвращает 0<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Это означает, что отклонение находится в пределах зоны <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   нечувствительности, и регулятор не должен реагировать.<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125293"></a>

### CTRL_OUT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | CI | REAL | Выход регулятора |
| Входы | OFFSET | REAL | Смещение |
| Входы | MAN_IN | REAL | Сигнал ручного ввода |
| Входы | LIM_L | REAL | Нижний предел управляющего сигнала |
| Входы | LIM_H | REAL | Верхний предел управляющего сигнала |
| Входы | MANUAL | BOOL | Режим управления |
| Выходы | Y | REAL | Величина управляющего воздействия |
| Выходы | LIM | BOOL | Флаг «достигнут предел для Y» |

Функциональный блок **CTRL_OUT** используется для генерации управляющего воздействия. Если вход **MANUAL** имеет значение **FALSE**, система работает в автоматическом режиме управления, и на выход **Y** подается сумма значения выходного сигнала регулятора **CI** и смещения **OFFSET**; если вход **MANUAL** имеет значение **TRUE**, то система работает в режиме ручного управления и на выход **Y** подается сумма значения сигнала ручного ввода **MAN_IN** и смещения **OFFSET**. В обоих случаях значение выхода **Y** ограничивается значениями входов **LIM_L** (минимум) и **LIM\_ H** (максимум). При достижении любой из границ выход **LIM** принимает значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>    <?Pub _font
FontColor="#5DA35B"?>(* Экземпляр ФБ CTRL_OUT *)<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>CtrlOutput<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DBB740"?>CTRL_OUT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входы *)<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>RegulatorOutput<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font
FontColor="#DBB740"?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>75.0<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>     <?Pub _font
FontColor="#5DA35B"?>(* Выход регулятора (CI) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Offset<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>               <?Pub _font
FontColor="#5DA35B"?>(* Смещение (OFFSET) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ManualInput<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>50.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* Ручной ввод (MAN_IN) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>LimitLow<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>             <?Pub _font
FontColor="#5DA35B"?>(* Нижний предел (LIM_L) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>LimitHigh<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>100.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* Верхний предел (LIM_H) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ManualMode<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>FALSE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>         <?Pub _font
FontColor="#5DA35B"?>(* Автоматический режим *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Выходы *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>ControlValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                <?Pub _font FontColor="#5DA35B"?>(* Управляющее воздействие *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>LimitReached<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>                <?Pub _font FontColor="#5DA35B"?>(* Флаг достижения предела *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов ФБ CTRL_OUT *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>CtrlOutput<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>CI<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>RegulatorOutput<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font
?>
    <?Pub _font FontColor="#DCDCDC"?>OFFSET<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Offset,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>MAN_IN<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>ManualInput,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>LIM_L<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LimitLow,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>LIM_H<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>LimitHigh,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>MANUAL<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>ManualMode<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Чтение выходов *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>ControlValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>CtrlOutput<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>Y<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>LimitReached<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>CtrlOutput<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>LIM<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - MANUAL = FALSE → автоматический режим<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Y = CI + OFFSET = 75.0 + 5.0 = 80.0<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - 80.0 находится в пределах [0.0, 100.0]<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - LIM = FALSE (предел не достигнут)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Ответ:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - ControlValue = 80.0<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - LimitReached = FALSE<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?>
</code></td></tr></tbody></table></div></div>

<a id="topic-125294"></a>

### CTRL_PI

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | ACT | REAL | Значение регулируемой величины |
| Входы | SET | REAL | Значение уставки |
| Входы | SUP | REAL | Зона нечувствительности |
| Входы | OFS | REAL | Смещение. |
| Входы | M_I | REAL | Сигнал ручного ввода |
| Входы | MAN | BOOL | Режим управления |
| Входы | RST | BOOL | Сигнал обнуления И-составляющей |
| Входы | KP | REAL | Коэффициент усиления П-составляющей |
| Входы | KI | REAL | Коэффициент усиления И-составляющей |
| Входы | LL | REAL | Нижний предел управляющего сигнала |
| Входы | LH | REAL | Верхний предел управляющего сигнала |
| Выходы | Y | REAL | Величина управляющего воздействия |
| Выходы | DIFF | REAL | Сигнал рассогласования |
| Выходы | LIM | BOOL | Флаг «достигнут предел для Y» |
| Используемые модули | [CTRL_IN](#topic-125292), [FT_PIWL](#topic-125312), [CTRL_OUT](#topic-125293) | [CTRL_IN](#topic-125292), [FT_PIWL](#topic-125312), [CTRL_OUT](#topic-125293) | [CTRL_IN](#topic-125292), [FT_PIWL](#topic-125312), [CTRL_OUT](#topic-125293) |

Функциональный блок **CTRL_PI** представляет собой ПИ-регулятор с автоматической компенсацией эффекта интегрального насыщения и возможностью перехода на ручное управление. Значение управляющего воздействия **Y** вычисляется по формуле:

![CTRL PI](https://docs.owen.ru/book_img/2417/165137.png)

, где

DIFF = SET — ACT;

Δt <sup>изм</sup> — время между двумя измерениями.

На вход **ACT** подается измеренное значение регулируемой величины, на вход **SET**– уставка регулятора. Вход **SUP** определяет зону нечувствительности для регулятора, которая используется, чтобы избежать перерегулирования. Вход **OFS** задает смещение управляющего сигнала. Входы **KP** и **KI** определяют коэффициенты усиления пропорциональной (П) и интегральной (И) составляющей регулятора. Входы **LL** и **LH** определяют нижний и верхний пределы управляющего сигнала **Y**. При достижении любой из границ выход **LIM** принимает значение **TRUE**, и значение выхода **Y** фиксируется. На выход **DIFF** подается сигнал рассогласования, вычисленный с помощью ФБ [CTRL_OUT](#topic-125293). По переднему фронту на входе **RST** происходит обнуление накопленной интегральной составляющей блока.

Если вход **MAN** имеет значение **TRUE**, то система работает в режиме ручного управления и на выход **Y** подается сумма значения сигнала ручного ввода **M_I** и смещения **OFS**.

![CTRL PI1](https://docs.owen.ru/book_img/2417/165136.png)

*Структурная схема ПИ-регулятора*

<a id="topic-125295"></a>

### CTRL_PID

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | ACT | REAL | Значение регулируемой величины |
| Входы | SET | REAL | Значение уставки |
| Входы | SUP | REAL | Зона нечувствительности |
| Входы | OFS | REAL | Смещение |
| Входы | M_I | REAL | Сигнал ручного ввода |
| Входы | MAN | BOOL | Режим управления |
| Входы | RST | BOOL | Сигнал обнуления И-составляющей |
| Входы | KP | REAL | Коэффициент усиления П-составляющей |
| Входы | TN | REAL | Постоянная времени интегрирования |
| Входы | TV | REAL | Постоянная времени дифференцирования |
| Входы | LL | REAL | Нижний предел управляющего сигнала |
| Входы | LH | REAL | Верхний предел управляющего сигнала |
| Выходы | Y | REAL | Величина управляющего воздействия |
| Выходы | DIFF | REAL | Сигнал рассогласования |
| Выходы | LIM | BOOL | Флаг «достигнут предел для Y» |
| Используемые модули | [CTRL_IN](#topic-125292), [FT_PIWL](#topic-125312), [CTRL_OUT](#topic-125293) | [CTRL_IN](#topic-125292), [FT_PIWL](#topic-125312), [CTRL_OUT](#topic-125293) | [CTRL_IN](#topic-125292), [FT_PIWL](#topic-125312), [CTRL_OUT](#topic-125293) |

Функциональный блок **CTRL_PID** представляет собой ПИД-регулятор с компенсацией эффекта интегрального насыщения и возможностью перехода на ручное управление. Значение управляющего воздействия **Y** вычисляется по формуле:

![CTRL PID](https://docs.owen.ru/book_img/2417/165135.png)

, где

DIFF = SET — ACT;

Δt <sup>изм</sup> — время между двумя измерениями.

На вход **ACT** подается измеренное значение регулируемой величины, на вход **SET**– уставка регулятора. Вход **SUP** определяет зону нечувствительности для регулятора, которая используется, чтобы избежать перерегулирования. Вход **OFS** задает смещение управляющего сигнала. Вход **KP** и определяет коэффициент усиления пропорциональной (П) составляющей регулятора, входы **TN** и **TV** – постоянные времени интегрирования и дифференцирования (<b>*обратите внимание*</b>, они не могут быть равны **0** – это приведет к исключению в работе ПЛК). Входы **LL** и **LH** определяют нижний и верхний пределы управляющего сигнала **Y**. При достижении любой из границ выход **LIM** принимает значение **TRUE**, и значение выхода **Y** фиксируется. На выход **DIFF** подается сигнал рассогласования, вычисленный с помощью ФБ [CTRL_OUT](#topic-125293). По переднему фронту на входе **RST** происходит обнуление накопленной интегральной составляющей блока.

Если вход **MAN** имеет значение **TRUE**, то система работает в режиме ручного управления и на выход **Y** подается сумма значения сигнала ручного ввода **M_I** и смещения **OFS**.

Блок использует в качестве параметров постоянные времени интегрирования и дифференцирования **TV** и **TN**. При необходимости можно перейти от них к коэффициентам усиления:

```
KI = KP/TN           KD = KP∙TV
```

![CTRL PID1](https://docs.owen.ru/book_img/2417/165134.png)

*Структурная схема ПИД-регулятора*

<a id="topic-125296"></a>

### CTRL_PWM

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | ACT | REAL | Значение регулируемой величины |
| Входы | SET | REAL | Значение уставки |
| Входы | SUP | REAL | Зона нечувствительности |
| Входы | OFS | REAL | Смещение |
| Выходы | Y | REAL | Величина управляющего воздействия |
| Используемые модули | [PWM_DC](#topic-125188) | [PWM_DC](#topic-125188) | [PWM_DC](#topic-125188) |

Функциональный блок **CTRL_PWM** представляем собой широтно-импульсный модулятор (ШИМ) с возможностью ручного управления. Если вход **MANUAL** имеет значение **FALSE**, то ШИМ находится в работе и на выход **Q** подается широтно-модулированный сигнал с частотой **F** и скважностью **CI** (0…1.0); если вход **MANUAL** имеет значение **TRUE**, то блок работает в режиме ручного управления и на выход **Q** подается значение входа **MAN_IN**.

![CTRL PWM](https://docs.owen.ru/book_img/2417/165133.png)

*Трассировка работы ФБ CTRL_PWM* 

<a id="topic-125297"></a>

### DEAD_BAND

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Входное значение |
| Входы | L | REAL | Смещение |
| Выходы | DEAD_BAND | REAL | Выходное значение |

Функция **DEAD_BAND** ограничивает значение входа X по следующему принципу:

- DEAD_BAND = (X–L), если L < X;
- DEAD_BAND = (X+L), если X < (–L);
- DEAD_BAND = 0.0, если –L ≤ X ≤ L.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Входное значение *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>InputValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>15.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* 15.0 *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Смещение (зона нечувствительности) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Offset<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5.0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>               <?Pub _font
FontColor="#5DA35B"?>(* ±5.0 *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>REAL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции DEAD_BAND *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Result<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>DEAD_BAND<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>X<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InputValue,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>L<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Offset<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(*Результат: Result = 10.0*)<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125298"></a>

### DEAD_BAND_A

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Входное значение |
| Входы | T | TIME | Постоянная времени фильтра |
| Входы | KL | REAL | Коэффициент усиления фильтра |
| Входы | LM | REAL | Максимальная амплитуда высокочастотной составляющей сигнала |
| Выходы | Y | REAL | Отфильтрованное значение |
| Выходы | L | REAL | Смещение сигнала |
| Используемые модули | [FT_PT1](#topic-125313), [MULTIME](#topic-124989) | [FT_PT1](#topic-125313), [MULTIME](#topic-124989) | [FT_PT1](#topic-125313), [MULTIME](#topic-124989) |

Функция **DEAD_BAND_A** ограничивает значение входа X по следующему принципу:

- DEAD_BAND_A = (X–L), если L < X;
- DEAD_BAND_A = (X+L), если X < (–L);
- DEAD_BAND_A = 0.0, если –L ≤ X ≤ L.

Блок содержит фильтр нижних частот для входного сигнала **X** с постоянной времени **T**. Значение **L** определяется как произведение коэффициента усиления фильтра **KL** и текущей амплитуды высокочастотной составляющей входного сигнала; при этом максимальное значение **L** ограничено значением **LM**. Коэффициент **KL** определяет чувствительность фильтра; его значение рекомендуется выбирать из интервала (**1.0…5.0**).

Блок может использоваться в системах регулирования для фильтрации шума входного сигнала, что может являться причиной постоянной работы и как следствие исполнительных механизмов.

![DEAD BAND A](https://docs.owen.ru/book_img/2417/165132.png)

*Трассировка работы ФБ **DEAD_BAND_A** (T=T#5s, KL=2.0, LM=5.0)*

<a id="topic-125299"></a>

### DEAD_ZONE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Входное значение |
| Входы | L | REAL | Зона нечувствительности |
| Выходы | DEAD_ZONE | REAL | Выходное значение |

Функция **DEAD_ZONE** представляет собой передаточную функцию с зоной нечувствительности. Значение входа **X** ограничивается по следующему принципу:

- DEAD_ZONE = X, если L < |X|;
- DEAD_ZONE = 0.0, если |X| ≤ L.

![DEAD ZONE](https://docs.owen.ru/book_img/2417/165131.png)

<i>Принцип работы функции **DEAD_ZONE**</i>

<a id="topic-125300"></a>

### DEAD_ZONE2

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Входное значение |
| Входы | L | REAL | Зона нечувствительности |
| Выходы | Y | REAL | Выходное значение |

Функциональный блок **DEAD_ZONE2** представляет собой передаточную функцию с зоной нечувствительности и гистерезисом. Значение входа **X** ограничивается по следующему принципу:

- DEAD_ZONE2 = X, если L < |X|;
- DEAD_ZONE2 = L, если 0≤|X| ≤ L;
- DEAD_ZONE2 = –L, если –L ≤ |X| ≤ 0.

![DEAD ZONE2](https://docs.owen.ru/book_img/2417/165130.png)

<i>Принцип работы ФБ **DEAD_ZONE2**</i>

<a id="topic-125301"></a>

### FT_DERIV

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | REAL | Входное значение |
| Входы | K | REAL | Коэффициент передачи |
| Входы | run | BOOL | Сигнал управление блоком |
| Выходы | out | REAL | Производная входного сигнала |
| Используемые модули | [T_PLC_US](#topic-125262) | [T_PLC_US](#topic-125262) | [T_PLC_US](#topic-125262) |

Функциональный блок **FT_DERIV** представляет собой Д-звено. Если вход **run** имеет значение **TRUE**, то на выход **out** поступает производная входного сигнала **X** с коэффициентом усиления **K**.

```
out = K · (Δin/ΔT)
```

, где ΔT — время цикла ПЛК секундах.

<a id="topic-125302"></a>

### FT_IMP

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | in | REAL | Входное значение |
| Входы | T | TIME | Постоянная времени |
| Входы | K | REAL | Коэффициент усиления |
| Выходы | out | REAL | Отфильтрованное значение |
| Используемые модули | [FT_PT1](#topic-125313) | [FT_PT1](#topic-125313) | [FT_PT1](#topic-125313) |

Функциональный блок **FT_IMP** представляет собой фильтр верхних частот с коэффициентом усиления **K** и постоянной времени **T**.

После изменения входного значения **IN**, выход **out** изменяется по следующему принципу:

- out(0)=K∙IN;
- out(T)≈0.37∙ K∙IN;
- out(3T)≈0.05∙ K∙IN;
- out(…)=0.

![FT IMP](https://docs.owen.ru/book_img/2417/165129.png)

*Трассировка работы ФБ **FT_IMP** (K=0.5, T=T#5s)*

<a id="topic-125303"></a>

### FT_INT

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Входное значение |
| Входы | K | REAL | Коэффициент передачи |
| Входы | RUN | BOOL | Сигнал управление блоком |
| Входы | RST | BOOL | Сигнал сброса блока |
| Входы | OUT_MIN | REAL | Нижний предел выходного сигнала |
| Входы | OUT_MAX | REAL | Верхний предел выходного сигнала |
| Выходы | OUT | REAL | Значение интеграла |
| Выходы | LIM | BOOL | Флаг «достигнут предел» |
| Используемые модули | [INTEGRATE](#topic-125322) | [INTEGRATE](#topic-125322) | [INTEGRATE](#topic-125322) |

Функциональный блок **FT_INT** представляет собой И-звено. Если вход **RUN** имеет значение **TRUE**, то на выход **out** поступает интеграл входного сигнала **IN** с коэффициентом усиления **K**. Для расчета интеграла используется метод трапеций:

```
OUT(n)=OUT(n-1)+K∙(IN(n)+IN(n-1))/2∙ΔT
```

, где n-номер текущего цикла ПЛК, ΔT-время цикла ПЛК секундах.

Входы **OUT_MIN** и **OUT_MAX** определяют нижний и верхний пределы выхода **OUT**. При достижении любой из границ выход **LIM** принимает значение **TRUE**. По переднему фронту на входе **RST** происходит обнуление выходов блока.

Типичной проблемой интегратора является его точность. Точность переменных типа **REAL**, используемых в данном блоке, ограничена 7-8 знаками после запятой; в результате, если среднее значение входа **X** и его изменение отличаются более чем на 7 порядков (например, X=1000000, ΔX=0.0001), значение интеграла не будет меняться. См. блок [FT_INT2](#topic-125304), использующий числа двойной точности.

<a id="topic-125304"></a>

### FT_INT2

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Входное значение |
| Входы | K | REAL | Коэффициент передачи |
| Входы | RUN | BOOL | Сигнал управление блоком |
| Входы | RST | BOOL | Сигнал сброса блока |
| Входы | OUT_MIN | REAL | Нижний предел выходного сигнала |
| Входы | OUT_MAX | REAL | Верхний предел выходного сигнала |
| Выходы | OUT | REAL | Значение интеграла |
| Выходы | LIM | BOOL | Флаг «достигнут предел» |
| Используемые модули | [INTEGRATE](#topic-125322), [R2_SET](#topic-124919), [R2_ADD](#topic-124916) | [INTEGRATE](#topic-125322), [R2_SET](#topic-124919), [R2_ADD](#topic-124916) | [INTEGRATE](#topic-125322), [R2_SET](#topic-124919), [R2_ADD](#topic-124916) |

Функциональный блок **FT_INT2** представляет собой И-звено. Принцип работы блока полностью соответствует блоку [FT_INT](#topic-125303), единственным отличием является использование чисел двойной точности для промежуточных вычислений (более подробно см. в описании блока [FT_INT](#topic-125303)).

<a id="topic-125305"></a>

### FT_PD

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Сигнал рассогласования |
| Входы | KP | REAL | Коэффициент передачи |
| Входы | TV | REAL | Постоянная времени дифференцирования |
| Выходы | Y | REAL | Величина управляющего воздействия |
| Используемые модули | [FT_DERIV](#topic-125301) | [FT_DERIV](#topic-125301) | [FT_DERIV](#topic-125301) |

Функциональный блок **FT_PD** представляет собой блок ПД-регулирования. Значение управляющего воздействия **Y** вычисляется по формуле:

```
Y=KP∙(IN+FT_DERIV.OUT(IN,TV))
```

Блок может использоваться совместно с модулями [CTRL_IN](#topic-125292) и [CTRL_OUT](#topic-125293) для реализации ПД-регулятора.

<a id="topic-125306"></a>

### FT_PDT1

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Сигнал рассогласования |
| Входы | KP | REAL | Коэффициент передачи |
| Входы | TV | REAL | Постоянная времени дифференцирования |
| Входы | T1 | REAL | Запаздывание |
| Выходы | Y | REAL | Величина управляющего воздействия |
| Используемые модули | [FT_DERIV](#topic-125301), [FT_PT1](#topic-125313) | [FT_DERIV](#topic-125301), [FT_PT1](#topic-125313) | [FT_DERIV](#topic-125301), [FT_PT1](#topic-125313) |

Функциональный блок **FT_PDT1** представляет собой блок ПД-регулирования c апериодическим звеном 1-го порядка. Значение управляющего воздействия **Y** вычисляется по формуле:

```
Y=KP∙(IN+FT_PT1.OUT(FT_DERIV.OUT(IN,TV),T1)))
```

Блок может использоваться совместно с модулями [CTRL_IN](#topic-125292) и [CTRL_OUT](#topic-125293) для реализации ПД-регулятора.

<a id="topic-125307"></a>

### FT_PI

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Сигнал рассогласования |
| Входы | KP | REAL | Коэффициент усиления П-составляющей |
| Входы | KI | REAL | Коэффициент усиления И-составляющей |
| Входы | ILIM_L | REAL | Нижний предел зоны накопления интеграла |
| Входы | ILIM_H | REAL | Верхний предел зоны накопления интеграла |
| Входы | IEN | BOOL | Сигнал управления интегратором |
| Входы | RST | BOOL | Сигнал обнуления И-составляющей |
| Выходы | Y | REAL | Величина управляющего воздействия |
| Выходы | LIM | BOOL | Флаг «достигнут предел» |
| Используемые модули | [FT_INT](#topic-125303) | [FT_INT](#topic-125303) | [FT_INT](#topic-125303) |

Функциональный блок **FT_PI** представляет собой блок ПИ-регулирования. Значение управляющего воздействия **Y** вычисляется по формуле:

![FT PI](https://docs.owen.ru/book_img/2417/165128.png)

, где Δt<sub>изм</sub> время между двумя измерениями.

На вход **IN** подается сигнал рассогласования. Входы **KP** и **KI** определяют коэффициенты усиления пропорциональной (П) и интегральной (И) составляющей регулятора. Входы **ILIM_L** и **ILIM_H** определяют нижний и верхний пределы зоны накопления интеграла. При достижении любой из границ выход **LIM** принимает значение **TRUE**, и значение интегратора перестает увеличиваться. Кроме того, интегратор в любой момент может быть отключен с помощью присвоения значения **FALSE** входу **IEN**. По переднему фронту на входе **RST** происходит обнуление накопленной интегральной составляющей блока.

<a id="topic-125308"></a>

### FT_PID

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Сигнал рассогласования |
| Входы | KP | REAL | Коэффициент усиления П-составляющей |
| Входы | TN | REAL | Постоянная времени интегрирования |
| Входы | TV | REAL | Постоянная времени дифференцирования |
| Входы | ILIM_L | REAL | Нижний предел зоны накопления интеграла |
| Входы | ILIM_H | REAL | Верхний предел зоны накопления интеграла |
| Входы | IEN | BOOL | Сигнал управления интегратором |
| Входы | RST | BOOL | Сигнал обнуления И-составляющей |
| Выходы | Y | REAL | Величина управляющего воздействия |
| Выходы | LIM | BOOL | Флаг «достигнут предел» |
| Используемые модули | [FT_INT](#topic-125303), [FT_DERIV](#topic-125301) | [FT_INT](#topic-125303), [FT_DERIV](#topic-125301) | [FT_INT](#topic-125303), [FT_DERIV](#topic-125301) |

НАДО ЛИ ПИСАТЬ ЧТО БЛОК РАБОТАЕТ НЕКОРРЕКТНО, КАК В ПЕРВОИСТОЧНИКЕ? ИЛИ У НАС — КОРРЕКТНО?

Функциональный блок **FT_PID** представляет собой блок ПИД-регулирования. Значение управляющего воздействия **Y** вычисляется по формуле:

![FT PID](https://docs.owen.ru/book_img/2417/165167.png)

, где Δt<sub>изм</sub> — время между двумя измерениями.

На вход **IN** подается сигнал рассогласования. Вход **KP** и определяет коэффициент усиления пропорциональной (П) составляющей регулятора, входы **TN** и **TV** – постоянные времени интегрирования и дифференцирования (<b>*обратите внимание*</b>, они не могут быть равны **0** – это приведет к исключению в работе ПЛК). Входы **ILIM_L** и **ILIM_H** определяют нижний и верхний пределы зоны накопления интеграла. При достижении любой из границ выход **LIM** принимает значение **TRUE**, и значение интегратора перестает увеличиваться. Кроме того, интегратор в любой момент может быть отключен с помощью присвоения значения **FALSE** входу **IEN**. По переднему фронту на входе **RST** происходит обнуление накопленной интегральной составляющей блока.

<a id="topic-125309"></a>

### FT_PIDW

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Сигнал рассогласования |
| Входы | KP | REAL | Коэффициент усиления П-составляющей |
| Входы | TN | REAL | Постоянная времени интегрирования |
| Входы | TV | REAL | Постоянная времени дифференцирования |
| Входы | LIM_L | REAL | Нижний предел управляющего сигнала |
| Входы | LIM_H | REAL | Верхний предел управляющего сигнала |
| Входы | RST | BOOL | Сигнал обнуления И-составляющей |
| Выходы | Y | REAL | Величина управляющего воздействия |
| Выходы | LIM | BOOL | Флаг «достигнут предел» |
| Используемые модули | [INTEGRATE](#topic-125322), [FT_DERIV](#topic-125301) | [INTEGRATE](#topic-125322), [FT_DERIV](#topic-125301) | [INTEGRATE](#topic-125322), [FT_DERIV](#topic-125301) |

Функциональный блок **FT_PIDW** представляет собой блок ПИД-регулирования c компенсацией эффекта интегрального насыщения. Значение управляющего воздействия **Y** вычисляется по формуле:

![FT PIDW](https://docs.owen.ru/book_img/2417/165166.png)

, где Δt<sub>изм</sub> — время между двумя измерениями.

На вход **IN** подается сигнал рассогласования. Вход **KP** и определяет коэффициент усиления пропорциональной (П) составляющей регулятора, входы **TN** и **TV** – постоянные времени интегрирования и дифференцирования (<b>*обратите внимание*</b>, они не могут быть равны **0** – это приведет к исключению в работе ПЛК). Входы **LIM_L** и **LIM_H** определяют нижний и верхний пределы управляющего сигнала. При достижении любой из границ выход **LIM** принимает значение **TRUE**, и значение выхода **Y** фиксируется. По переднему фронту на входе **RST** происходит обнуление накопленной интегральной составляющей блока.

<a id="topic-125310"></a>

### FT_PIDWL

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Сигнал рассогласования |
| Входы | KP | REAL | Коэффициент усиления П-составляющей |
| Входы | TN | REAL | Постоянная времени интегрирования. |
| Входы | TV | REAL | Постоянная времени дифференцирования |
| Входы | LIM_L | REAL | Нижний предел управляющего сигнала |
| Входы | LIM_H | REAL | Верхний предел управляющего сигнала |
| Входы | RST | BOOL | Сигнал обнуления И-составляющей |
| Выходы | Y | REAL | Величина управляющего воздействия |
| Выходы | LIM | BOOL | Флаг «достигнут предел» |
| Используемые модули | [FT_PIWL](#topic-125312), [FT_DERIV](#topic-125301) | [FT_PIWL](#topic-125312), [FT_DERIV](#topic-125301) | [FT_PIWL](#topic-125312), [FT_DERIV](#topic-125301) |

Функциональный блок **FT_PIDWL** представляет собой блок ПИД-регулирования c компенсацией эффекта интегрального насыщения. Значение управляющего воздействия **Y** вычисляется по формуле:

![FT PIDWL](https://docs.owen.ru/book_img/2417/165165.png)

, где Δt<sub>изм</sub> — время между двумя измерениями.

Принцип работы блока полностью соответствует блоку [FT_PIDW](#topic-125309). Единственным отличием является набор модулей, использованных для реализации блока.

<a id="topic-125311"></a>

### FT_PIW

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Сигнал рассогласования |
| Входы | KP | REAL | Коэффициент усиления П-составляющей |
| Входы | KI | REAL | Коэффициент усиления И-составляющей |
| Входы | LIM_L | REAL | Нижний предел управляющего сигнала |
| Входы | LIM_H | REAL | Верхний предел управляющего сигнала |
| Входы | RST | BOOL | Сигнал обнуления И-составляющей |
| Выходы | Y | REAL | Величина управляющего воздействия |
| Выходы | LIM | BOOL | Флаг «достигнут предел» |
| Используемые модули | [FT_INT](#topic-125303) | [FT_INT](#topic-125303) | [FT_INT](#topic-125303) |

Функциональный блок **FT_PIW** представляет собой блок ПИ-регулирования c компенсацией эффекта интегрального насыщения. Значение управляющего воздействия **Y** вычисляется по формуле:

![FT PIW](https://docs.owen.ru/book_img/2417/165164.png)

, где Δt<sub>изм</sub> — время между двумя измерениями.

На вход **IN** подается сигнал рассогласования. Входы **KP** и **KI** определяют коэффициенты усиления пропорциональной (П) и интегральной (И) составляющей регулятора. Входы **LIM_L** и **LIM_H** определяют нижний и верхний пределы управляющего сигнала. При достижении любой из границ выход **LIM** принимает значение **TRUE**, и значение выхода **Y** фиксируется. По переднему фронту на входе **RST** происходит обнуление накопленной интегральной составляющей блока.

<a id="topic-125312"></a>

### FT_PIWL

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Сигнал рассогласования |
| Входы | KP | REAL | Коэффициент усиления П-составляющей. |
| Входы | KI | REAL | Коэффициент усиления И-составляющей. |
| Входы | LIM_L | REAL | Нижний предел управляющего сигнала. |
| Входы | LIM_H | REAL | Верхний предел управляющего сигнала. |
| Входы | RST | BOOL | Сигнал обнуления И-составляющей. |
| Выходы | Y | REAL | Величина управляющего воздействия |
| Выходы | LIM | BOOL | Флаг «достигнут предел» |
| Используемые модули | [T_PLC_US](#topic-125262) | [T_PLC_US](#topic-125262) | [T_PLC_US](#topic-125262) |

Функциональный блок **FT_PIWL** представляет собой блок ПИ-регулирования c компенсацией эффекта интегрального насыщения. Значение управляющего воздействия **Y** вычисляется по формуле:

![FT PIW](https://docs.owen.ru/book_img/2417/165164.png)

, где Δt<sub>изм</sub> — время между двумя измерениями.

Принцип работы блока полностью соответствует блоку [FT_PIW](#topic-125311). Отличием является внутренняя реализация блока, в которой не используются другие модули регуляторов.

<a id="topic-125313"></a>

### FT_PT1

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Входное значение |
| Входы | T | TIME | Постоянная времени |
| Входы | K | REAL | Коэффициент усиления |
| Выходы | out | REAL | Выходное значение |
| Используемые модули | [T_PLC_US](#topic-125262) | [T_PLC_US](#topic-125262) | [T_PLC_US](#topic-125262) |

Функциональный блок **FT_PT1** представляет собой апериодическое звено 1-го порядка с коэффициентом усиления **K** и постоянной времени **T**.

После изменения входного значения **IN**, выход **out** изменяется по следующему принципу:

- out(0)=0;
- out(T)≈0.63∙ K∙IN;
- out(3T)≈0.95∙ K∙IN;
- out(…)=K∙IN.

<a id="topic-125314"></a>

### FT_PT2

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Входное значение |
| Входы | T | TIME | Постоянная времени |
| Входы | D | REAL | Коэффициент затухания |
| Входы | K | REAL | Коэффициент усиления |
| Выходы | out | REAL | Выходное значение |
| Используемые модули | [INTEGRATE](#topic-125322) | [INTEGRATE](#topic-125322) | [INTEGRATE](#topic-125322) |

Функциональный блок **FT_PT2** представляет собой апериодическое звено 2-го порядка с коэффициентом усиления **K**, коэффициентом затухания **D** и постоянной времени **T**.

После изменения входного значения **IN**, выход **out** изменяется по следующему принципу:

![FT PT2](https://docs.owen.ru/book_img/2417/165163.png)

*Трассировка работы ФБ **FT\_ PT2** (K=0.5, T=T#500ms)*

<a id="topic-125315"></a>

### FT_TN8

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Входное значение |
| Входы | T | TIME | Время задержки |
| Выходы | out | REAL | Выходное значение |
| Выходы | trig | BOOL | Флаг «сохранение значения» |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **FT_TN8** представляет собой модуль задержки сигнала. Входное значение **IN** сохраняется с интервалом **T/8**, при каждом сохранении выход **out** принимает значение **TRUE** на один цикл ПЛК. Блок сохраняет 8 значений переменной **IN**. Эти значения подается на выход **out** спустя время задержки **T**. См. также блоки [FT_TN16](#topic-125316) и [FT_TN64](#topic-125317), которые отличаются частотой дискретизации входного значения.

<a id="topic-125316"></a>

### FT_TN16

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Входное значение |
| Входы | T | TIME | Время задержки |
| Выходы | out | REAL | Выходное значение |
| Выходы | trig | BOOL | Флаг «сохранение значения» |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **FT_TN16** представляет собой модуль задержки сигнала. Входное значение **IN** сохраняется с интервалом **T/16**, при каждом сохранении выход **out** принимает значение **TRUE** на один цикл ПЛК. Блок сохраняет 16 значений переменной **IN**. Эти значения подается на выход **out** спустя время задержки **T**. См. также блоки [FT_TN64](#topic-125317) и [FT_TN8](#topic-125315), которые отличаются частотой дискретизации входного значения.

<a id="topic-125317"></a>

### FT_TN64

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Входное значение |
| Входы | T | TIME | Время задержки |
| Выходы | out | REAL | Выходное значение |
| Выходы | trig | BOOL | Флаг «сохранение значения» |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **FT_TN64** представляет собой модуль задержки сигнала. Входное значение **IN** сохраняется с интервалом **T/64**, при каждом сохранении выход **out** принимает значение **TRUE** на один цикл ПЛК. Блок сохраняет 64 значения переменной **IN**. Эти значения подается на выход **out** спустя время задержки **T**. См. также блоки [FT_TN16](#topic-125316) и [FT_TN8](#topic-125315), которые отличаются частотой дискретизации входного значения.

<a id="topic-125318"></a>

### HYST

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Входное значение |
| Входы | ON | REAL | Порог включения ИМ |
| Входы | OFF | REAL | Порог отключения ИМ |
| Выходы | Q | BOOL | Сигнал управления |
| Выходы | win | BOOL | Флаг «значение в допустимых границах» |

Функциональный блок **HYST** представляет собой двухпозиционный регулятор. На вход **IN** подается измеренное значение, входы **ON** и **OFF** определяют порог включения и отключения исполнительного механизма (ИМ). Значение выхода **Q** определяется по следующему принципу:

1. ON ≥ OFF

   - Q=FALSE, если IN < OFF;
   - Q=TRUE, если IN > ON.

2. ON < OFF

3. Q=FALSE, если IN > OFF;

4. Q=TRUE, если IN < ON.

Выход **WIN** принимает значение **TRUE**, если **IN** принадлежит интервалу \[**OFF, ON**\].

<a id="topic-125319"></a>

### HYST_1

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Входное значение |
| Входы | high | REAL | Порог включения ИМ |
| Входы | low | REAL | Порог отключения ИМ |
| Выходы | Q | BOOL | Сигнал управления |
| Выходы | win | BOOL | Флаг «значение в допустимых границах» |

Функциональный блок **HYST_1** представляет собой двухпозиционный регулятор. На вход **IN** подается измеренное значение, входы **high** и **low** определяют порог включения и отключения исполнительного механизма (при этом значение **high** должно быть больше значения **low**). Значение выхода **Q** определяется по следующему принципу:

- Q=FALSE, если IN < low;
- Q=TRUE, если IN > high;
- Q сохраняет предыдущее значение, если low ≤ IN ≤ high.

Выход **WIN** принимает значение **TRUE**, если **IN** принадлежит интервалу \[**OFF, ON**\].

<a id="topic-125320"></a>

### HYST_2

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Входное значение |
| Входы | VAL | REAL | Граница гистерезиса |
| Входы | HYS | REAL | Ширина гистерезиса |
| Выходы | Q | BOOL | Сигнал управления |
| Выходы | win | BOOL | Флаг «значение в допустимых границах» |

Функциональный блок **HYST_2** представляет собой двухпозиционный регулятор с зоной гистерезиса. На вход **IN** подается измеренное значение, входы **VAL** и **HYS** определяют границу гистерезиса и его ширину. Значение выхода **Q** определяется по следующему принципу:

- Q=FALSE, если IN < (VAL – 0.5∙HYS);
- Q=TRUE, если IN > (VAL + 0.5∙HYS);
- Q сохраняет предыдущее значение, если (VAL – 0.5∙HYS) ≤ IN ≤ (VAL + 0.5∙HYS).

Выход **WIN** принимает значение **TRUE**, если **IN** принадлежит интервалу \[**VAL – 0.5∙HYS, VAL + 0.5∙HYS**\].

<a id="topic-125321"></a>

### HYST_3

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | REAL | Входное значение |
| Входы | hyst | REAL | Ширина гистерезиса |
| Входы | val1 | REAL | Граница гистерезиса 1 |
| Входы | val2 | REAL | Граница гистерезиса 2 |
| Выходы | Q1 | BOOL | Сигнал управления «ход вправо» |
| Выходы | Q2 | BOOL | Сигнал управления «ход влево» |

Функциональный блок **HYST_3** представляет собой трехпозиционный регулятор с двумя зонами гистерезиса. На вход **IN** подается измеренное значение, входы **val1**, **val2** и **hyst** определяют границы гистерезиса и его ширину. Значение выходов **Q1** и **Q2** определяется по следующему принципу:

- Q1=TRUE, если IN < (val1 – 0.5∙hyst);
- Q1=FALSE, если IN > (val1 + 0.5∙hyst);
- Q2=FALSE, если IN < (val2 – 0.5∙hyst);
- Q2=TRUE, если IN > (val2 + 0.5∙hyst).

Пояснить принцип работы блока можно на следующем примере. Пусть **IN** – измеренное значение температуры, **U1** и **U2** – нижняя и верхняя уставки температуры, **Q1** и **Q2** – реле управления задвижкой (**Q1** – открытие, **Q2** – закрытие). Значения **U1** и **U2** определяются следующим образом:

- U1 = (val1 – 0.5∙hyst);
- U2 = (val2 + 0.5∙hyst).

Если текущее значение температуры **IN** меньше уставки **U1**, то замыкается реле **Q1**, заставляя задвижку открываться и увеличивать количество теплоносителя. Как только значение температуры превысит (**U1+hyst**), реле **Q1** разомкнется и задвижка останется в том промежуточном положении, которое успело достигнуть за время **t1**. Если затем значение температуры по какой-либо причине превысит уставку **U2**, сработает реле **U2** и задвижка начнет закрываться до тех пор, пока температура не вернется в диапазон межу значениями \[**U1+hyst, U2-hyst**\].

<a id="topic-125322"></a>

### INTEGRATE

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | E | BOOL | Сигнал управление блоком |
| Входы | X | REAL | Входное значение |
| Входы | K | REAL | Коэффициент передачи |
| Выходы | Y | REAL | Значение интеграла |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **INTEGRATE** представляет собой И-звено. Если вход **E** имеет значение **TRUE**, то на выход **Y** поступает интеграл входного сигнала **X** с коэффициентом усиления **K**. Для расчета интеграла используется метод трапеций:

![INTEGRAL](https://docs.owen.ru/book_img/2417/165162.png)

, где n-номер текущего цикла ПЛК, ΔT-время цикла ПЛК секундах.

<a id="topic-125323"></a>

## Модули управления

<a id="topic-125324"></a>

### DRIVER_1

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Ручное управление выходом |
| Входы | IN | BOOL | Сигнал нажатия на кнопку |
| Входы | RST | BOOL | Переключение выхода в FALSE |
| Выходы | Q | BOOL | Выход кнопки |
| Параметры | Toggle_Mode | BOOL | Режим работы кнопки |
| Параметры | Timeout | TIME | Таймаут сброса выхода |

Функциональный блок **DRIVER_1** представляет собой модуль обработки нажатия кнопки. Если параметр **Toggle_Mode** имеет значение **FALSE**, то по переднему фронту на входе **IN** выход **Q** принимает значение **TRUE** на время **Timeout**, после чего выход будет автоматически сброшен в состояние **FALSE**. В течение этого времени вход **IN** не обрабатывается. Если параметр **Toggle_Mode** имеет значение **TRUE**, то по переднему фронту на входе **IN** значение выхода **Q** инвертируется. Параметр **Timeout** определяет время, через которое выход **Q** будет автоматически сброшен в состояние **FALSE** (если выход имеет значение **TRUE**). Для отключения таймаута необходимо задать **Timeout= T#0ms**.

Вход **SET** позволяет управлять выходом **Q** независимо от состояния входа **IN**. По переднему фронту на входе **RST** выход **Q** принимает значение **FALSE** независимо от состояния входов **SET** и **IN**. См. также ФБ [DRIVER_4](#topic-125325), позволяющий обрабатывать нажатия 4-х кнопок.

<a id="topic-125325"></a>

### DRIVER_4

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Ручное управление выходом |
| Входы | IN0...IN3 | BOOL | Сигнал нажатия на кнопку 0...3 |
| Входы | RST | BOOL | Переключение выхода в FALSE |
| Выходы | Q0...Q3 | BOOL | Выход кнопки 0...3 |
| Параметры | Toggle_Mode | BOOL | Режим работы кнопки |
| Параметры | Timeout | TIME | Таймаут сброса выходов |

Функциональный блок **DRIVER_4** представляет собой модуль обработки нажатий для 4-х кнопок. Принцип работы блока полностью соответствует ФБ [DRIVER_1](#topic-125324), единственным отличием является число обрабатываемых кнопок.

<a id="topic-125326"></a>

### DRIVER_4C

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Сигнал переключения выходов |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | SN | INT | Номер текущего состояния |
| Выходы | Q0…Q3 | BOOL | Выходы блока |
| Параметры | Timeout | TIME | Таймаут переключения в состояние 0 |
| Параметры | SX | ARRAY \[1..7\] OF BYTE | Массив битовых масок выходов |

Функциональный блок **DRIVER_4C** представляет собой модуль управления с 7-ю заданными состояниями выходов, которые устанавливаются в параметре **SX** в виде битовых масок. Выход **SN** определяет номер текущего состояния. По умолчанию модуль находится в состоянии **0**, при этом **SN=0**, а битовая маска выходов = **2#0000**. По переднему фронту на входе **IN** происходит переключение выходов в состояние **SN=1**, при котором битовая маска выходов = **SX****\[1\]** (где **Q0** – младший бит битовой маски). При последующих передних фронтах на входе **IN** модуль будет последовательно переключаться в состояния **2…7**, и после 7-ого состояния вернется в нулевое. Если одна из битовых масок массива **SX** равна **2#0000**, то по ее достижению модуль вернется в состояние **SN=0**. Значение параметра **Timeout** ограничивает время, которое модуль может провести в состояниях, отличных от нулевого. По истечении этого времени модуль вернется в состояние **SN=0**. Для отключения таймаута необходимо задать **Timeout=T#0ms**. По переднему фронту на входе **RST** происходит принудительное переключение модуля в состояние **SN=0**.

Рассмотрим пример работы с модулем. Пусть Timeout=T#0ms, SX=\[2#0001, 2#0011, 2#0111, 2#0000, 2#1111, 2#1100, 2#1110\].

|   |   |   |   |   |   |
| --- | --- | --- | --- | --- | --- |
| Сигнал управления | SN | Q0 | Q1 | Q2 | Q3 |
| - | 0 | FALSE | FALSE | FALSE | FALSE |
| Передний фронт по IN | 1 | TRUE | FALSE | FALSE | FALSE |
| Передний фронт по IN | 2 | TRUE | TRUE | FALSE | FALSE |
| Передний фронт по IN | 3 | TRUE | TRUE | TRUE | FALSE |
| Передний фронт по IN | 0 | FALSE | FALSE | FALSE | FALSE |
| Передний фронт по IN | 1 | TRUE | FALSE | FALSE | FALSE |
| Передний фронт по RST | 0 | FALSE | FALSE | FALSE | FALSE |

<a id="topic-125327"></a>

### FLOW_CONTROL

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Сигнал ручного управления |
| Входы | REQ | BOOL | Сигнал автоматического управления |
| Входы | ENQ | BOOL | Разрешение управления |
| Входы | RST | BOOL | Сигнал сброса |
| Выходы | Q | BOOL | Сигнал управления клапаном |
| Выходы | STATUS | BYTE | ESR-код |
| Параметры | T_AUTO | TIME | Время активности выхода Q |
| Параметры | T_DELAY | TIME | Время блокировки управления REQ |
| Используемые модули | [TP_1D](#topic-125117) | [TP_1D](#topic-125117) | [TP_1D](#topic-125117) |

Функциональный блок **FLOW_CONTROL** используется для управления клапаном. Если вход **ENQ** имеет значение **TRUE**, то блок находится в работе и разрешает управление выходом **Q** через входы **IN** и **REQ**. Вход **IN** позволяет вручную управлять выходом **Q**. По переднему фронту на входе **REQ** выход **Q** принимает значение **TRUE** на время **T_AUTO**, после чего выход сбрасывается **FALSE** и управление через вход **REQ** блокируется на время **T_DELAY**. В течение времени блокировки можно управлять выходом через вход **IN**. В течение времени **T_AUTO** выход может быть сброшен в состояние **FALSE** с помощью переднего фронта на входе **RST**.

Выход **Status** определяет состояние блока и совместим с ESR-модулями:

|   |   |
| --- | --- |
| Значение выхода Status | Описание |
| 100 | Блок готов к работе |
| 101 | Выход включен с помощью входа IN |
| 102 | Выход включен с помощью входа REQ |
| 103 | Выход отключен с помощью входа RST |

<a id="topic-125328"></a>

### FT_PROFILE

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | K | REAL | Коэффициент масштабирования |
| Входы | O | REAL | Смешение |
| Входы | M | REAL | Коэффициент масштаба времени |
| Входы | E | BOOL | Сигнал запуска блока |
| Выходы | Y | REAL | Выход генератора |
| Выходы | RUN | BOOL | Флаг «блок в работе» |
| Выходы | ET | TIME | Время, прошедшее с начала работы |
| Параметры | value_0, value_1, value_2, value_3, value_10, value_11, value_12, value_13 | REAL | Значение уставки |
| Параметры | time_1, time_2, time_3, time_10, time_11, time_12, time_13 | TIME | Время достижения уставки |
| Используемые модули | [T_PLC_MS](#topic-125261), [MULTIME](#topic-124989) | [T_PLC_MS](#topic-125261), [MULTIME](#topic-124989) | [T_PLC_MS](#topic-125261), [MULTIME](#topic-124989) |

Функциональный блок **FT_PROFILE** используется для изменения величины по заданной зависимости «уставка – время достижения» (например, для температурного профиля печи). Профиль разбивается на 7 участков (с номерами 1, 2, 3, 10, 11, 12, 13), продолжительности которых определяют соответствующие параметры **time_x**. Следует заметить, что все интервалы **time\_ x** отсчитываются относительно момента запуска блока, поэтому каждое последующее значение времени должно быть больше предыдущего. Значения крайних точек участков определяются параметрами **value_x**. Переходы между участками происходят по линейной зависимости. Входы **K** и **O** определяют коэффициент масштабирования и смещения выхода **Y**; вход **M** определяет коэффициент масштаба времени. Значение выхода **Y** на участке **b** определяется следующей формулой:

![FT PROFILE](https://docs.owen.ru/book_img/2417/165161.png)

Блок запускается в работу импульсом по переднему фронту на входе **E**; при этом участки 11-13 будут обработаны только в том случае, если к началу времени их обработки **E** уже имеет значение **FALSE**. Выход **RUN** имеет значение **TRUE**, пока блок находится в работе; выход **ET** отображает время, прошедшее с начала работы блока. После завершения обработки всех участков выход **RUN** принимает значение **FALSE**, а на выходе **ET** сохраняется общее время работы блока.

Каждый импульс по переднему фронту на входе **IN** запускает работу блока заново.

<a id="topic-125329"></a>

### INC_DEC

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | CHa | BOOL | Канал A |
| Входы | CHb | BOOL | Канал B |
| Входы | RST | BOOL | Сигнал сброса |
| Выходы | dir | BOOL | Направление вращения |
| Выходы | cnt | INT | Счетчик фронтов |

Функциональный блок **INT_DEC** представляет собой модуль инкрементального квадратурного энкодера. На входы **CHa** и **CHb** должны быть поданы сигналы каналов **A** и **B** энкодера. Выход **dir** определяет направление вращения (**TRUE** – прямое, **FALSE** – обратное). Выход **cnt** содержит сумму подсчитанных фронтов (как передних, так и задних) по обоим каналам. По переднему фронту на входе **RST** счетчик обнуляется.

<a id="topic-125330"></a>

### INTERLOCK

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | I1 | BOOL | Вход 1 |
| Входы | I2 | BOOL | Вход 2 |
| Входы | TL | TIME | Время блокировки |
| Выходы | Q1 | BOOL | Выход 1 |
| Выходы | Q2 | BOOL | Выход 2 |

Функциональный блок **INTERLOCK** содержит два входа (**I1** и **I2**), которые управляют соответствующими выходами (**Q1** и **Q2**). В каждый момент времени только один из выходов может быть активен. Ниже приведена таблица состояний входов и выходов.

|   |   |   |   |
| --- | --- | --- | --- |
| I1 | I2 | Q1 | Q2 |
| FALSE | FALSE | FALSE | FALSE |
| FALSE | TRUE | FALSE | TRUE |
| TRUE | FALSE | TRUE | FALSE |
| TRUE | TRUE | FALSE | FALSE |

Вход **TL** определяет время блокировки между отключением одного выхода и включением другого (т.е. после того, как выход **Q1** примет значение **FALSE**, выход **Q2** не сможет принять значение **TRUE** до истечения времени **TL**).

![INTERLOCK](https://docs.owen.ru/book_img/2417/165160.png)

*Трассировка ФБ **INTERLOCK** (TL=T#10s)*

<a id="topic-125331"></a>

### INTERLOCK_4

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | I0 | BOOL | Вход 0 |
| Входы | I1 | BOOL | Вход 1 |
| Входы | I2 | BOOL | Вход 2 |
| Входы | I3 | BOOL | Вход 3 |
| Входы | E | BOOL | Сигнал управления блоком |
| Входы | MODE | INT | Режим работы блока |
| Выходы | OUT | BYTE | Выход блока |
| Выходы | TP | BOOL | Флаг «значение выхода изменилось» |

Функциональный блок **INTERLOCK_4** содержит четыре входа типа BOOL (**I0…I3**), которые управляют выходом типа BYTE (**OUT**). Если вход **E** имеет значение **FALSE**, то выход **OUT** имеет значение **0**. Если вход **E** имеет значение **TRUE**, то значение выхода **OUT** определяется значениями входов **I0…I3** и режимом работы **MODE**:

| Mode | Описание |
| --- | --- |
| 0 | Все входы транслируются на выход (I0 – младший бит) |
| 1 | На выход транслируется только старший активный бит |
| 2 | На выход транслируется активный бит, изменившийся последним |
| 3 | На выход транслируется активный бит, причем до его отключения остальные входы не обрабатываются |

Выход **TP** принимает значение **TRUE** на 1 цикл ПЛК при каждом изменении выхода **OUT**.

<a id="topic-125332"></a>

### MANUAL

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Сигнал дистанционного управления |
| Входы | ON | BOOL | Сигнал местного управления «Включить» |
| Входы | OFF | BOOL | Сигнал местного управления «Выключить» |
| Выходы | MANUAL | BOOL | Выход функции |

Функция **MANUAL** представляет собой модуль местного/дистанционного управления. Выход функции определяется значением входа дистанционного управления **IN** и входами локального управления **ON/OFF** (“включить” / “выключить”), причем сигналы управления имеют следующие приоритеты:

| IN | ON | OFF | MANUAL |
| --- | --- | --- | --- |
| FALSE | FALSE | FALSE | FALSE |
| TRUE | FALSE | FALSE | TRUE |
| не имеет значения | не имеет значения | TRUE | FALSE |
| не имеет значения | TRUE | FALSE | TRUE |

Таким образом, местное управление имеет приоритет по сравнению с дистанционным, а сигнал местного управления “Выключить” - над сигналом “Включить”.

<a id="topic-125333"></a>

### MANUAL_1

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Сигнал дистанционного управления |
| Входы | MAN | BOOL | Режим управления |
| Входы | M_I | BOOL | Сигнал местного управления |
| Входы | SET | BOOL | Сигнал принудительного включения |
| Входы | RST | BOOL | Сигнал принудительного отключения |
| Выходы | Q | BOOL | Выход блока |
| Выходы | STATUS | BYTE | ESR-код |

Функциональный блок **MANUAL_1** представляет собой модуль местного/дистанционного управления. Если вход **MAN** имеет значение **FALSE**, то значение выхода **Q** определяется значением входа **IN**. Если вход **MAN** имеет значение **TRUE**, то значение выхода **Q** определяется значением входа **M_I** и, кроме того, может быть принудительно изменено на **TRUE/FALSE** по переднему фронту входа **SET/RST**. После импульса на входе **SET** или **RST** значение входа **M_I** перестает влиять на значение выхода; чтобы вернуться к управлению через вход **M_I** необходимо переключить вход **MAN** в состояние **FALSE**, после чего опять вернуть его в **TRUE**.

Выход **Status** определяет состояние блока и совместим с [ESR-модулями](#topic-124794):

| Значение выхода Status | Описание |
| --- | --- |
| 100 | Блок в режиме дистанционного управления (MAN=FALSE). |
| 101 | Выход принудительно взведен в TRUE (через SET). |
| 102 | Выход принудительно сброшен в FALSE (через RST). |
| 103 | Блок в режиме местного управления (MAN=TRUE). |

<a id="topic-125334"></a>

### MANUAL_2

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Сигнал дистанционного управления |
| Входы | ENA | BOOL | Сигнал управления блоком |
| Входы | ON | BOOL | Сигнал принудительного включения |
| Входы | OFF | BOOL | Сигнал принудительного отключения |
| Входы | MAN | BOOL | Сигнал местного управления |
| Выходы | Q | BOOL | Выход блока |
| Выходы | STATUS | BYTE | ESR-код |

Функциональный блок **MANUAL_2** представляет собой модуль местного/дистанционного управления. Если вход **ENA** имеет значение **FALSE**, то блок отключен и выход **Q** имеет значение **FALSE**. Если вход **ENA** имеет значение **TRUE**, то блок находится в работе и значение выхода **Q** определяется состояниями входов **IN**, **ON**, **OFF** и **MAN** («-» –состояние входа не имеет значения, «x» – совпадающие состояния входов и выходов).

Выход **Status** определяет состояние блока и совместим с [ESR-модулями](#topic-124794).

| ENA | IN | ON | OFF | MAN | Q | STATUS | Описание |
| --- | --- | --- | --- | --- | --- | --- | --- |
| FALSE | - | - | - | - | FALSE | 104 | Блок отключен |
| TRUE | x | FALSE | FALSE | - | x | 100 | Блок в режиме дист. управления |
| TRUE | - | TRUE | FALSE | - | TRUE | 101 | Выход принудительно взведен в TRUE |
| TRUE | - | FALSE | TRUE | - | FALSE | 102 | Выход принудительно сброшен в FALSE |
| TRUE | - | TRUE | TRUE | x | x | 103 | Блок в режиме местного управления |

<a id="topic-125335"></a>

### MANUAL_4

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | I0…I3 | BOOL | Сигналы дистанционного управления |
| Входы | MAN | BOOL | Режим управления |
| Входы | STP | BOOL | Сигнал пошагового переключения |
| Входы | M0…M3 | BOOL | Сигналы местного управления |
| Выходы | Q0…Q3 | BOOL | Выходы блока |
| Выходы | STATUS | BYTE | ESR-код |
| Использованные модули | [INC](#topic-124838) | [INC](#topic-124838) | [INC](#topic-124838) |

Функциональный блок **MANUAL_4** представляет собой 4-х канальный модуль местного/дистанционного управления. Если вход **MAN** имеет значение **FALSE**, то значения выходов **Q0…Q3** определяются значениями входов **I0…I3**. Если вход **MAN** имеет значение **TRUE**, то значения выходов **Q0…Q3** определяются значениями входов **M0…M3**. Если вход **MAN** имеет значение **TRUE**, и на входе **STP** детектируется импульс по переднему фронту, то блок переходит в режим пошагового переключения выходов – при этом выход **Q0** принимает значение **TRUE**, а все остальные выходы – **FALSE**. Каждый следующий импульс на входе **STP** будет переключать активный выход блока:

| Действие | Q0 | Q1 | Q2 | Q3 |
| --- | --- | --- | --- | --- |
| Импульс по переднему фронту на входе STP | TRUE | FALSE | FALSE | FALSE |
| Импульс по переднему фронту на входе STP | FALSE | TRUE | FALSE | FALSE |
| Импульс по переднему фронту на входе STP | FALSE | FALSE | TRUE | FALSE |
| Импульс по переднему фронту на входе STP | FALSE | FALSE | FALSE | TRUE |
| Импульс по переднему фронту на входе STP | TRUE | FALSE | FALSE | FALSE |
| … | … | … | … | … |

Выход **Status** определяет состояние блока и совместим с [ESR-модулями](#topic-124794):

| STATUS | Описание |
| --- | --- |
| 100 | Блок в режиме дистанционного управления (MAN=FALSE) |
| 101 | Блок в режиме местного управления (MAN=TRUE) |
| 110/111/112/113 | Блок в режиме пошагового переключения, активен выход Q0/Q1/Q2/Q3 |

<a id="topic-125336"></a>

### PARSET

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | A0 | BOOL | Сигнал переключения выходов 0 |
| Входы | A1 | BOOL | Сигнал переключения выходов 1 |
| Выходы | P1…P4 | REAL | Выходы блока |
| Параметры | X01…X04, X11…X14,<br>X21…X24, X31…X34 | REAL | Возможные значения выходов |
| Параметры | TC | TIME | Время перехода к новому значению |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **PARSET** передает на выходы **P1…P4** одну из 4-х заранее подготовленных групп значения (X01…X04/X11…X14/X21…X24/X31…X34) в зависимости от состояний входов **A0** и **A1**:

| A0 | A1 | P1 | P2 | P3 | P4 |
| --- | --- | --- | --- | --- | --- |
| FALSE | FALSE | X01 | X02 | X03 | X03 |
| FALSE | TRUE | X11 | X12 | X13 | X14 |
| TRUE | FALSE | X21 | X22 | X23 | X24 |
| TRUE | TRUE | X31 | X32 | X33 | X34 |

Если параметр **TC** имеет значение **T#0ms**, то при переключении выходов значения меняются мгновенно; если значение **TC** отлично от нуля, то изменение значения выходов происходит плавно, по линейной зависимости за время **TC**.

<a id="topic-125337"></a>

### PARSET2

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Входное значение |
| Выходы | P1…P4 | REAL | Выходы блока |
| Параметры | X01…X04, X11…X14,<br>X21…X24, X31…X34 | REAL | Возможные значения выходов |
| Параметры | L1…L3 | REAL | Граничные значения для X |
| Параметры | TC | TIME | Время перехода к новому значению |
| Используемые модули | [PARSET](#topic-125336) | [PARSET](#topic-125336) | [PARSET](#topic-125336) |

Функциональный блок **PARSET2** передает на выходы **P1…P4** одну из 4-х заранее подготовленных групп значения (X01…X04/X11…X14/X21…X24/X31…X34) в зависимости от значения входа **X** и заданных для него граничных значений **L1…L3**:

| X | P1 | P2 | P3 | P4 |
| --- | --- | --- | --- | --- |
| X < L1 | X01 | X02 | X03 | X03 |
| L1 < X < L2 | X11 | X12 | X13 | X14 |
| L2 < X < L3 | X21 | X22 | X23 | X24 |
| L3 ≤ X | X31 | X32 | X33 | X34 |

Если параметр **TC** имеет значение **T#0ms**, то при переключении выходов значения меняются мгновенно; если значение **TC** отлично от нуля, то изменение значения выходов происходит плавно, по линейной зависимости за время **TC**.

<a id="topic-125338"></a>

### SIGNAL

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN | BOOL | Сигнал управления блоком |
| Входы | SIG | BYTE | Последовательность бит |
| Входы | TS | TIME | Период переключения выхода |
| Выходы | Q | BOOL | Выход генерации последовательности бит |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **SIGNAL** используется для циклической генерации заданной последовательности бит. Пока вход **IN** имеет значение **TRUE**, на выходе **Q** генерируется последовательность бит, определенная значением входа **SIG**, при этом изменение выхода происходит с периодичностью **TS**. Генерация сигнала начинается с произвольного бита последовательности.

<a id="topic-125339"></a>

### SIGNAL_4

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | IN1…IN4 | BOOL | Сигнал выбора последовательности |
| Входы | TS | TIME | Период переключения выхода |
| Выходы | Q | BOOL | Выход генерации последовательности бит |
| Параметры | S1…S4 | BYTE | Заданные последовательности бит |
| Используемые модули | [SIGNAL](#topic-125338) | [SIGNAL](#topic-125338) | [SIGNAL](#topic-125338) |

Функциональный блок **SIGNAL_4** используется для циклической генерации одной из 4-х заданных последовательностей бит. Пока один из входов **IN1…IN4** имеет значение **TRUE**, на выходе **Q** генерируется соответствующая последовательность бит (**S1…S4**), при этом изменение выхода происходит с периодичностью **TS**. Генерация сигнала начинается с произвольного бита последовательности. Если одновременно активны несколько входов, то на выходе генерируется последовательность с наименьшим номером.

См. также описание ФБ [SIGNAL](#topic-125338).

<a id="topic-125340"></a>

### SRAMP

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | X | REAL | Входной сигнал |
| Входы | A_UP | REAL | Ускорение нарастания выходного сигнала |
| Входы | A_DN | REAL | Ускорение спада выходного сигнала |
| Входы | VU_MAX | REAL | Макс. скорость нарастания выходного сигнала |
| Входы | VD_MAX | REAL | Макс. скорость спада выходного сигнала |
| Входы | LIMIT_HIGH | REAL | Верхний предел выходного сигнала |
| Входы | LIMIT_LOW | REAL | Нижний предел выходного сигнала |
| Входы | RST | BOOL | Сигнал сброса блока |
| Выходы | Y | REAL | Выходной сигнал |
| Выходы | V | REAL | Скорость изменения выходного сигнала |
| Используемые модули | [TC_S](#topic-125264) | [TC_S](#topic-125264) | [TC_S](#topic-125264) |

Функциональный блок **SRAMP** используется для плавного изменения выходного сигнала при изменении входного. Значения входов блока ограничивают скорость нарастания и спада выходного сигнала **Y** (**VU_MAX**, **VD_MAX**), ускорение его нарастания и спада (**A_UP**, **A_DN**) и максимальное/минимальное допустимое значение (**LIMIT_HIGH**, **LIMIT_LOW**). Значения **VU_MAX** и **A_UP** должны быть положительными, а **VD_MAX** и **A_DN** – отрицательными. На выход **V** подается текущая скорость изменения выходного сигнала. По переднему фронту на входе **RST** происходит обнуление выходов блока.

<a id="topic-125341"></a>

### TUNE

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Сигнал установки значения SET_val |
| Входы | SU | BOOL | Сигнал увеличения значения |
| Входы | SD | BOOL | Сигнал уменьшения значения |
| Входы | RST | BOOL | Сигнал установки значения RST_val |
| Выходы | Y | REAL | Изменяемое значение |
| Параметры | SS | REAL | Шаг изменения значения по нажатию кнопок SU/SD |
| Параметры | Limit_H | REAL | Верхний предел значения выхода |
| Параметры | Limit_L | REAL | Нижний предел значения выхода |
| Параметры | SET_val | REAL | Значение для сигнала SET |
| Параметры | RST_val | REAL | Значение для сигнала RST |
| Параметры | T1 | TIME | Время зажатия кнопки для S2 |
| Параметры | T2 | TIME | Время зажатия кнопки для S2 |
| Параметры | S1 | REAL | Шаг изменения значения при зажатии кнопок SU/SD на время T1, ед/с |
| Параметры | S2 | REAL | Шаг изменения значения при зажатии кнопок SU/SD на время T2, ед/с |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **TUNE** представляет собой модуль управления значением. По переднему фронту на входе **SU/SD** значение выхода **Y** увеличивается/уменьшается на величину **SS**. Таким образом, входы **SU** и **SD** могут быть привязаны к кнопкам «больше»/ «меньше». Если вход **SU/SD** сохраняет значение **TRUE** в течение времени **T1/T2** (т.е. кнопка зажата), то значение **Y** начинается каждую секунду увеличиваться/уменьшаться на величину **S1/S2**. По переднему фронту на входе **SET/ RST** выход **Y** принимает значение **SET_val/RST\_ val**. Значение **Y** ограничено диапазоном \[**Limit_L…Limit_H**\].

<a id="topic-125342"></a>

### TUNE2

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SET | BOOL | Сигнал установки значения SET_val |
| Входы | SU | BOOL | Сигнал увеличения значения (SS) |
| Входы | SD | BOOL | Сигнал уменьшения значения (SS) |
| Входы | FU | BOOL | Сигнал увеличения значения (FS) |
| Входы | FD | BOOL | Сигнал уменьшения значения (FS) |
| Входы | RST | BOOL | Сигнал установки значения RST_val |
| Выходы | Y | REAL | Изменяемое значение |
| Параметры | SS | REAL | Шаг изменения значения по нажатию кнопок SU/SD |
| Параметры | FS | REAL | Шаг изменения значения по нажатию кнопок FU/FD |
| Параметры | Limit_H | REAL | Верхний предел значения выхода |
| Параметры | Limit_L | REAL | Нижний предел значения выхода |
| Параметры | SET_val | REAL | Значение для сигнала SET |
| Параметры | RST_val | REAL | Значение для сигнала RST |
| Параметры | TR | TIME | Время зажатия кнопки для S2 |
| Параметры | S1 | REAL | Шаг изменения значения при зажатии кнопок SU/SD на время TR, ед/с |
| Параметры | S2 | REAL | Шаг изменения значения при зажатии кнопок FU/FD на время TR, ед/с |
| Используемые модули | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) | [T_PLC_MS](#topic-125261) |

Функциональный блок **TUNE2** представляет собой модуль управления значением. По переднему фронту на входе **SU/SD** значение выхода **Y** увеличивается/уменьшается на величину **SS**. По переднему фронту на входе **FU/FD** значение выхода **Y**увеличивается/уменьшается на величину **FS**. Таким образом, входы **SU** и **SD** могут быть привязаны к кнопкам «больше»/ «меньше», а входы **FD/ FS** – к кнопкам «значительно больше»/«значительно меньше». Если вход **SU/SD** сохраняет значение **TRUE** в течение времени **TR** (т.е. кнопка зажата), то значение **Y** начинается каждую секунду увеличиваться/уменьшаться на величину **S1**. Если вход **FU/FD** сохраняет значение **TRUE** в течение времени **TR**, то значение **Y** начинается каждую секунду увеличиваться/уменьшаться на величину **S2**. По переднему фронту на входе **SET/RST** выход **Y** принимает значение **SET_val/RST_val**. Значение **Y** ограничено диапазоном \[**Limit_L…Limit_H**\].

<a id="topic-125343"></a>

## Работа с буфером

Функции, описанные в данной главе, используются для операций с буфером. Буфер представляет собой массив байт. Входными переменными для каждой функции являются указатель на массив (**PT**) и размер массива (**SIZE**). В большинстве случаев представляется удобным использовать операторы **ADR** и **SIZEOF**, которые возвращают адрес и размер массива в байтах соответственно.

Обработка массива, полученного по указателю, производится путем прямых манипуляций с памятью ПЛК. Этот тип обработки является крайне эффективным, так как не требует копирования содержимого массива.

<a id="topic-125344"></a>

### \_BUFFER_CLEAR

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT | POINTER TO BYTE | Указатель на буфер |
| Входы | SIZE | UINT | Размер буфера |
| Выходы | \_BUFFER_CLEAR | BOOL | Флаг окончания обработки буфера |

Функция **\_BUFFER_CLEAR** присваивает каждому из элементов буфера значение **0**. Результаты записываются в тот же буфер по указателю. После окончания обработки выход функции принимает значение **TRUE**.

Пример: буфер \[2, 12, 4, 8, 6\] после обработки функцией примет вид \[0, 0, 0, 0, 0\].

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Буфер в виде массива байт *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Buffer<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>12<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>8<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>6<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Флаг окончания обработки *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#5DA35B"?>(* Счетчик для отображения *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>i<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции _BUFFER_CLEAR *)<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>_BUFFER_CLEAR<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>PT<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SIZE<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Buffer = [0, 0, 0, 0, 0]<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - Done = TRUE<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - ADR(Buffer) возвращает адрес массива в памяти<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - SIZEOF(Buffer) возвращает размер массива в байтах (5 байт)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Функция присваивает каждому элементу буфера значение 0<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125345"></a>

### \_BUFFER_INIT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT | POINTER TO BYTE | Указатель на буфер |
| Входы | SIZE | UINT | Размер буфера |
| Входы | INIT | BYTE | Присваиваемое значение |
| Выходы | \_BUFFER_INIT | BOOL | Флаг окончания обработки буфера |

Функция **\_BUFFER_INIT** присваивает каждому из элементов буфера значение **INIT**. Результаты записываются в тот же буфер по указателю. После окончания обработки выход функции принимает значение **TRUE**.

Пример: буфер \[2, 12, 4, 8, 6\] после обработки функцией примет вид \[3, 3, 3, 3, 3\].

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Буфер в виде массива байт *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Buffer<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>5<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>12<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>8<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>6<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Присваиваемое значение *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>InitValue<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>3<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Флаг окончания обработки *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции _BUFFER_INIT *)<?Pub /_font
?>
    <?Pub _font FontColor="#DCDCDC"?>Done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>_BUFFER_INIT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>PT<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SIZE<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>INIT<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InitValue<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Buffer = [3, 3, 3, 3, 3]<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - Done = TRUE<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - ADR(Buffer) возвращает адрес массива в памяти<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - SIZEOF(Buffer) возвращает размер массива в байтах (5 байт)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Функция присваивает каждому элементу буфера значение INIT (3)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125346"></a>

### \_BUFFER_INSERT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | STR | STRING | Записываемая строка |
| Входы | POS | INT | Позиция для записи |
| Входы | PT | POINTER TO ARRAY \[0..32767\] OF BYTE | Указатель на буфер |
| Входы | SIZE | UINT | Размер буфера |
| Выходы | \_BUFFER_INSERT | INT | Позиция в буфере после записи |
| Используемые модули | [\_STRING_TO_BUFFER](#topic-125348) | [\_STRING_TO_BUFFER](#topic-125348) | [\_STRING_TO_BUFFER](#topic-125348) |

Функция **\_BUFFER_INSERT** записывает строку **STR** (в виде ASCII-кодов) в буфер с позиции **POS** (где **0** – позиция первого элемента буфера), смещая оставшуюся часть данных в буфере на длину строки. После окончания операции на выход функции транслируется позиция буфера после вставленной строки.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Буфер в виде массива байт *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Buffer<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>9<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>12<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>8<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>6<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Записываемая строка *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>TextToInsert<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'test'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Позиция для вставки (0 — начало буфера) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>InsertPosition<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат — позиция после вставки *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>NewPosition<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции _BUFFER_INSERT *)<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>NewPosition<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>_BUFFER_INSERT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>STR<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>TextToInsert,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>POS<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>InsertPosition,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>PT<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SIZE<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Buffer = [2, 12, 116, 101, 115, 116, 4, 8, 6, 0]<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - NewPosition = 6<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Исходный буфер: [2, 12, 4, 8, 6, 0, 0, 0, 0, 0]<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Вставляем 'test' с позиции 2 (третья ячейка)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - ASCII-коды: 't'=116, 'e'=101, 's'=115, 't'=116<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Данные после позиции 2 (4, 8, 6, 0, 0, 0, 0) сдвигаются вправо на 4 байта<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Итоговый буфер: [2, 12, 116, 101, 115, 116, 4, 8, 6, 0]<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - NewPosition = 2 + 4 = 6 (позиция сразу после вставленной строки)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

См. также функцию \_[\_STRING_TO_BUFFER](#topic-125348), которая перезаписывает данные буфера, а не смещает их.

<a id="topic-125347"></a>

### \_BUFFER_UPPERCASE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT | POINTER TO BYTE | Указатель на буфер |
| Входы | SIZE | INT | Размер буфера |
| Выходы | \_BUFFER_UPPERCASE | BOOL | Флаг окончания обработки буфера |
| Используемые модули | [TO_UPPER](#topic-125083) | [TO_UPPER](#topic-125083) | [TO_UPPER](#topic-125083) |

Функция **\_BUFFER_UPPERCASE** интерпретирует буфер как набор ASCII-кодов, и конвертирует ASCII-коды букв в коды тех же букв в верхнем регистре.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>    <?Pub _font
FontColor="#5DA35B"?>(* Буфер в виде массива байт *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Buffer<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>3<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>242<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>229<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>241<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>242<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Флаг окончания обработки *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции _BUFFER_UPPERCASE *)<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>Done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>_BUFFER_UPPERCASE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>PT<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(Buffer<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SIZE<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Buffer = [210, 197, 209, 210]<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Done = TRUE<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Исходные ASCII-коды: 242, 229, 241, 242 (буквы "т", "е", "с", "т")<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - После конвертации: 210, 197, 209, 210 (буквы "Т", "Е", "С", "Т")<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Все строчные буквы заменены на заглавные<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

См. также функцию [\_STRING_TO_BUFFER](#topic-125348), которая перезаписывает данные буфера, а не смещает их.

<a id="topic-125348"></a>

### \_STRING_TO_BUFFER

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | STR | STRING | Записываемая строка |
| Входы | POS | INT | Позиция для записи |
| Входы | PT | POINTER TO ARRAY \[0..32767\] OF BYTE | Указатель на буфер |
| Входы | SIZE | UINT | Размер буфера |
| Выходы | \_STRING_TO_BUFFER | INT | Позиция в буфере после записи |

Функция **\_STRING_TO_BUFFER** записывает строку **STR** (в виде ASCII-кодов) в буфер с позиции **POS** (где **0** – позиция первого элемента буфера), перезаписывая хранящиеся в буфере данные. После окончания операции на выход функции транслируется позиция буфера после вставленной строки.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Буфер в виде массива байт *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Buffer<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>9<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>12<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>4<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>8<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>6<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Записываемая строка *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>TextToWrite<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'test'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Позиция для записи (0 — начало буфера) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>WritePosition<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат — позиция после записи *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>NewPosition<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции _STRING_TO_BUFFER *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>NewPosition<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>_STRING_TO_BUFFER<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>STR<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>TextToWrite,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>POS<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>WritePosition,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>PT<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SIZE<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Buffer = [2, 12, 116, 101, 115, 116, 0, 0, 0, 0]<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - NewPosition = 6<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Исходный буфер: [2, 12, 4, 8, 6, 0, 0, 0, 0, 0]<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Записываем 'test' с позиции 2 (третья ячейка)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - ASCII-коды: 't'=116, 'e'=101, 's'=115, 't'=116<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Данные в позициях 2, 3, 4, 5 перезаписываются<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Данные после позиции 5 (0, 0, 0, 0) остаются без изменений<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Итоговый буфер: [2, 12, 116, 101, 115, 116, 0, 0, 0, 0]<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - NewPosition = 2 + 4 = 6 (позиция сразу после записанной строки)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

См. также функцию [\_BUFFER_INSERT](#topic-125346), которая перезаписывает данные буфера, а не смещает их.

<a id="topic-125349"></a>

### BUFFER_COMP

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT1 | POINTER TO ARRAY \[0..32767\] OF BYTE | Указатель на буфер 1 |
| Входы | SIZE1 | INT | Размер буфера 1 |
| Входы | PT2 | POINTER TO ARRAY \[0..32767\] OF BYTE | Указатель на буфер 2 |
| Входы | SIZE2 | INT | Размер буфера 2 |
| Входы | START | INT | Начальная позиция для поиска буфера 2 в буфере 1 |
| Выходы | BUFFER_COMP | INT | Начальная позиция буфера 2 в буфере 1 |

Функция **BUFFER_COMP** производит поиск содержимого буфера, расположенного по адресу **PT2**, в буфере, расположенном по адресу **PT1**, начиная с элемента номер <b>START (</b>нулевому элементу буфера **1** соответствует **START=0**). Функция возвращает номер элемента буфера *1*, начиная с которого в нем было найдено первое вхождение буфера <b>*2*</b>. Если буфер не был найден, то функция возвращает **-1**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Буфер 1 — исходный массив *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Buffer1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>9<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>12<?Pub /_font
?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>4<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>8<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>6<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>12<?Pub /_font
?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>4<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>8<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>6<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Буфер 2 — искомый шаблон *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Buffer2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>1<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>12<?Pub /_font?><?Pub _font FontColor="#EF724B"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>4<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Начальная позиция для поиска *)<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>StartPos<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат — позиция первого вхождения *)<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>FoundPos<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции BUFFER_COMP *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>FoundPos<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BUFFER_COMP<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>PT1<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SIZE1<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>PT2<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SIZE2<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>START<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>StartPos<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат: FoundPos = 1<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Buffer1 = [2, 12, 4, 8, 6, 2, 12, 4, 8, 6]<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Buffer2 = [12, 4]<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - Поиск начинается с позиции 0<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Первое вхождение [12, 4] — позиции 1 и 2<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Функция возвращает номер начального элемента: 1<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Второе вхождение: позиции 6 и 7 (не возвращается, так как найдено первое)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125350"></a>

### BUFFER_SEARCH

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT | POINTER TO ARRAY \[0..32767\] OF BYTE | Указатель на буфер |
| Входы | SIZE | INT | Размер буфера |
| Входы | STR | STRING | Искомая строка |
| Входы | POS | INT | Начальная позиция для поиска |
| Входы | IGN | BOOL | Регистрозависимость поиска |
| Выходы | BUFFER_SEARCH | BOOL | Начальная позиция найденной строки |
| Используемые модули | [TO_UPPER](#topic-125083) | [TO_UPPER](#topic-125083) | [TO_UPPER](#topic-125083) |

Функция **BUFFER_SEARCH** интерпретирует буфер как набор ASCII-кодов, и производит в нем поиск строки **STR** начиная с позиции **POS** (где **0** – позиция первого элемента буфера). Функция возвращает позицию первого вхождения строки в буфер. Если строка не найдена, то функция возвращает **-1**. Если вход **IGN** имеет значение **TRUE**, то поиск будет регистронезависимым, при этом искомая строка **STR** должна состоять только из заглавных букв (т.е. при STR=’AB’ в буфере также будет производиться поиск строк ‘AB’, ‘ab’, ‘Ab’ и ‘aB’). Если вход **IGN** имеет значение **FALSE**, то поиск будет регистрозависимым.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Буфер с двумя строками: "тест" и "ТЕСТ" *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Buffer<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>9<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>242<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>229<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>241<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>242<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>210<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>197<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>209<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>210<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>]<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Искомая строка (только заглавные буквы) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>SearchStr<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'ТЕСТ'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Начальная позиция поиска *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>StartPos<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результаты *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>PosIgnoreCase<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>      <?Pub _font FontColor="#5DA35B"?>(* IGN = TRUE — регистронезависимый *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>PosCaseSensitive<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font
FontColor="#DBB740"?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>   <?Pub _font FontColor="#5DA35B"?>(* IGN = FALSE — регистрозависимый *)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Регистронезависимый поиск *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>PosIgnoreCase<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BUFFER_SEARCH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>PT<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SIZE<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>STR<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>SearchStr,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>POS<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>StartPos,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>IGN<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>TRUE<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Регистрозависимый поиск *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>PosCaseSensitive<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BUFFER_SEARCH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>PT<?Pub /_font?>   <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SIZE<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>STR<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>SearchStr,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>POS<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>StartPos,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>IGN<?Pub /_font?>  <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"
?>FALSE<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результаты:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - PosIgnoreCase = 0<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - PosCaseSensitive = 5<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Буфер: [242, 229, 241, 242, 0, 210, 197, 209, 210, 0]<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Позиции 0–3: 242/229/241/242 = "тест" (строчные)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Позиция 4:    0 = разделитель<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Позиции 5–8: 210/197/209/210 = "ТЕСТ" (заглавные)<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Позиция 9:    0 = разделитель<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   При IGN = TRUE:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Поиск не учитывает регистр<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - Находит "тест" с позиции 0 → возвращает 0<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   При IGN = FALSE:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Поиск учитывает регистр<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - Строчные "тест" не подходят<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - Находит "ТЕСТ" с позиции 5 → возвращает 5<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125351"></a>

### BUFFER_TO_STRING

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | PT | POINTER TO ARRAY \[0..32767\] OF BYTE | Указатель на буфер |
| Входы | SIZE | UINT | Размер буфера |
| Входы | START | START | Начальная позиция |
| Входы | STOP | STOP | Конечная позиция |
| Выходы | BUFFER_TO_STRING | STRING | Извлеченная строка |

Функция **BUFFER_TO_STRING** интерпретирует буфер как набор ASCII-кодов, и возвращает текст, размещенный в нем с позиции **START** по позицию **STOP** в виде строки (где **0** – позиция первого элемента буфера).

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Буфер с ASCII-кодами *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Buffer<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>9<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font
FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>12<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>116<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>101<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>115<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>116<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>,<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>]<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Позиции для извлечения *)<?Pub /_font
?>
    <?Pub _font FontColor="#8080FF"?>StartPos<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                <?Pub _font
FontColor="#5DA35B"?>(* Начало строки *)<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>StopPos<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>5<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>                 <?Pub _font
FontColor="#5DA35B"?>(* Конец строки *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Результат — извлечённая строка *)<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>ExtractedString<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font
FontColor="#DBB740"?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции BUFFER_TO_STRING *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>ExtractedString<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>BUFFER_TO_STRING<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>PT<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>ADR<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SIZE<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#19A3B5"
?>SIZEOF<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>Buffer<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>),<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>START<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>StartPos,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>STOP<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>StopPos<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат: ExtractedString = 'test'<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Buffer = [2, 12, 116, 101, 115, 116, 0, 0, 0, 0]<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Извлекаем с позиции 2 по позицию 5<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - ASCII-коды 116/101/115/116 = 't'/'e'/'s'/'t'<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Результат: 'test'<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125352"></a>

## Работа со списками

Функции, описанные в данной главе, используются для операций над списками. Список представляет собой строковую переменную (типа **STRING**), содержащую записи, каждая из которых начинается со специального символа (этот символ определяется пользователем). Максимальный размер списка определяется [глобальной константой](#topic-124779) **LIST_LENGTH**.

Функции обрабатывают списки через **VAR_IN_OUT** переменные (входы-выходы) – т.е. на вход функции подается исходный список, и на этот же вход возвращается результат его обработки. Такой подход позволяет обрабатывать списки путем прямых манипуляций с памятью ПЛК и является крайне эффективным, так как не требует копирования содержимого списков.

В рамках рассматриваемых примерах в качестве разделителя используется символ ‘**&**’ (ASCII-код – 16#26).

Примеры списков:

- ‘&12&345’ – список с двумя записями (’12’ и ‘345’);
- ‘’ – список без записей;
- ‘&&&’ – список с тремя пустыми записями;
- ‘&12&345&&ABC’ – список с четырьмя записями (’12’, ‘345’, пустая запись, ‘ABC’).

Номера записей отсчитываются с единицы (т.е. первая запись списка имеет номер **1**).

<a id="topic-125353"></a>

### LIST_ADD

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SEP | BYTE | ASCII-код символа-разделителя |
| Входы | INS | STRING | Добавляемая запись |
| Входы-выходы | LIST | STRING(LIST_LENGTH) | Список |
| Выходы | LIST_ADD | BOOL | Флаг завершения операции |
| Используемые модули | [CHR_TO_STRING](#topic-125021) | [CHR_TO_STRING](#topic-125021) | [CHR_TO_STRING](#topic-125021) |

Функция **LIST_ADD** добавляет в конец списка **LIST** с разделителем **SEP** запись **INS**. После выполнения операции выход функции принимает значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Список с разделителем '&amp;' (ASCII 16#26) *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>List<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub _font
FontColor="#988DF7"?>OSCAT_BASIC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub /_font?><?Pub _font
FontColor="#988DF7"?>LIST_LENGTH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'&amp;12&amp;345'<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Разделитель *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Separator<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#26<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* '&amp;' *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Добавляемая запись *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>NewRecord<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'ABC'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Флаг завершения операции *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции LIST_ADD *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>LIST_ADD<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SEP<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Separator,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>INS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>NewRecord,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>LIST<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>List<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - List = '&amp;12&amp;345&amp;ABC'<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Done = TRUE<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Исходный список: '&amp;12&amp;345' (записи '12' и '345')<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Добавляем запись 'ABC' в конец<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Новая запись отделяется разделителем '&amp;'<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Итоговый список: '&amp;12&amp;345&amp;ABC' (записи '12', '345', 'ABC')<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125354"></a>

### LIST_CLEAN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SEP | BYTE | ASCII-код символа-разделителя |
| Входы-выходы | LIST | STRING(LIST_LENGTH) | Список |
| Выходы | LIST_CLEAN | BOOL | Флаг завершения операции |

Функция **LIST_CLEAN** очищает список от пустых записей. После выполнения операции выход функции принимает значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Список с пустыми записями *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>List<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#988DF7"?>OSCAT_BASIC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#988DF7"
?>LIST_LENGTH<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#66D1CD"?>'&amp;12&amp;345&amp;&amp;ABC'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Разделитель *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Separator<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#26<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* '&amp;' *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Флаг завершения операции *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции LIST_CLEAN *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.LIST_CLEAN<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SEP<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Separator<?Pub /_font?><?Pub _font FontColor="#EF724B"?>,<?Pub /_font
?>
    <?Pub _font FontColor="#DCDCDC"?>LIST<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>List<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - List = '&amp;12&amp;345&amp;ABC'<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Done = TRUE<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Исходный список: '&amp;12&amp;345&amp;&amp;ABC' (4 записи: '12', '345', '', 'ABC')<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Пустая запись между '&amp;&amp;' удаляется<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Итоговый список: '&amp;12&amp;345&amp;ABC' (3 записи: '12', '345', 'ABC')<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125355"></a>

### LIST_GET

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SEP | BYTE | ASCII-код символа-разделителя |
| Входы | POS | INT | Номер читаемой записи |
| Входы-выходы | LIST | STRING(LIST_LENGTH) | Список |
| Выходы | LIST_GET | STRING(LIST_LENGTH) | Прочитанная запись |

Функция **LIST_GET** возвращает из списка **LIST** с разделителем **SEP** запись с номером **POS**. Нумерация записей начинается с **1**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Список с записями *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>List<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#988DF7"?>OSCAT_BASIC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#988DF7"
?>LIST_LENGTH<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#66D1CD"?>'&amp;12&amp;345&amp;ABC&amp;XYZ'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>  
    <?Pub _font FontColor="#5DA35B"?>(* Разделитель *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Separator<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#26<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* '&amp;' *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Номер читаемой записи *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>RecordNumber<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Прочитанная запись *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Record<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#988DF7"?>OSCAT_BASIC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#988DF7"
?>LIST_LENGTH<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции LIST_GET *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Record<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>LIST_GET<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SEP<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Separator,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>POS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>RecordNumber,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>LIST<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>List<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат: Record = '345'<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Список: '&amp;12&amp;345&amp;ABC&amp;XYZ'<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Записи: 1='12', 2='345', 3='ABC', 4='XYZ'<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - POS = 2 → возвращается вторая запись '345'<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125356"></a>

### LIST_INSERT

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SEP | BYTE | ASCII-код символа-разделителя |
| Входы | POS | INT | Позиция для вставки записи |
| Входы | INS | STRING | Добавляемая запись |
| Входы-выходы | LIST | STRING(LIST_LENGTH) | Список |
| Выходы | LIST_INSERT | BOOL | Флаг завершения операции |
| Используемые модули | [CHR_TO_STRING](#topic-125021) | [CHR_TO_STRING](#topic-125021) | [CHR_TO_STRING](#topic-125021) |

Функция **LIST_INSERT** добавляет в список **LIST** с разделителем **SEP** запись **INS**. Запись заменяет существующую запись номер **POS**, при этом существующая и все последующие записи смещаются. Если **POS=0**, то запись добавляется в начало списка (так же, как и при **POS=1**). Если значение **POS** превышает число существующих записей списка, то список дополняется пустыми записями.

После выполнения операции выход функции принимает значение **TRUE**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code>
<?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Список с записями *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>List<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#988DF7"?>OSCAT_BASIC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#988DF7"
?>LIST_LENGTH<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#66D1CD"?>'&amp;12&amp;345&amp;ABC'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Разделитель *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Separator<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#26<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* '&amp;' *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Позиция для вставки *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Position<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Вставляемая запись *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>NewRecord<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#66D1CD"?>'NEW'<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Флаг завершения операции *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BOOL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции LIST_INSERT *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>Done<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#988DF7"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>LIST_INSERT<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SEP<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Separator,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>POS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Position,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>INS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>NewRecord,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>LIST<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>List<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - List = '&amp;12&amp;NEW&amp;345&amp;ABC'<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Done = TRUE<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Исходный список: '&amp;12&amp;345&amp;ABC' (записи '12', '345', 'ABC')<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Вставляем 'NEW' в позицию 2<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - Запись '345' и последующие сдвигаются вправо<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Итоговый список: '&amp;12&amp;NEW&amp;345&amp;ABC'<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125357"></a>

### LIST_LEN

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SEP | BYTE | ASCII-код символа-разделителя |
| Входы-выходы | LIST | STRING(LIST_LENGTH) | Список |
| Выходы | LIST_LEN | INT | Число записей в списке |

Функция **LIST_LEN** возвращает число записей в списке **LIST** с разделителем **SEP**.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Список с записями *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>List<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#988DF7"?>OSCAT_BASIC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#988DF7"
?>LIST_LENGTH<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#66D1CD"?>'&amp;12&amp;345&amp;ABC&amp;XYZ'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Разделитель *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Separator<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#26<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* '&amp;' *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Число записей в списке *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>RecordCount<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции LIST_LEN *)<?Pub /_font
?>
<?Pub _font FontColor="#DCDCDC"?>RecordCount<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>LIST_LEN<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SEP<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Separator,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>LIST<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>List<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат: RecordCount = 4<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Список: '&amp;12&amp;345&amp;ABC&amp;XYZ'<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Записи: '12', '345', 'ABC', 'XYZ'<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Всего 4 записи<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125358"></a>

### LIST_NEXT

| Тип модуля: ФБ | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SEP | BYTE | ASCII-код символа-разделителя |
| Входы | RST | BOOL | Сигнал перезапуска блока |
| Входы-выходы | LIST | STRING(LIST_LENGTH) | Список |
| Выходы | LEL | STRING(LIST_LENGTH) | Запись списка |
| Выходы | NUL | BOOL | Флаг «прочитаны все записи» |

Функциональный блок **LIST_NEXT** используется для чтения записей из списка **LIST** с разделителем **SEP**. При каждом последующем вызове блока на выход **LEL** транслируется следующая запись списка. Когда прочитаны все записи (или в списке их нет), выход **NUL** принимает значение **TRUE**. По переднему фронту на входе **RST** происходит перезапуск блока.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>fbListNext<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>       <?Pub _font
FontColor="#DBB740"?>OSCAT_BASIC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#DBB740"
?>LIST_NEXT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>sList<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>            <?Pub _font
FontColor="#DBB740"?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>(<?Pub /_font?><?Pub _font FontColor="#8080FF"?>OSCAT_BASIC<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font
FontColor="#FFFFCC"?>LIST_LENGTH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>:=<?Pub /_font?> <?Pub _font FontColor="#66D1CD"?>'s34&amp;sAB&amp;1122sTest'<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#7F73E9"?>asListElements<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>   <?Pub _font FontColor="#7F73E9"
?>ARRAY<?Pub /_font?> <?Pub _font FontColor="#E1E1E1"?>[<?Pub /_font
?><?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#FFB49C"?>..<?Pub /_font?><?Pub _font FontColor="#F3A1DD"
?>10<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font?> <?Pub _font FontColor="#8080FF"?>OF<?Pub /_font?> <?Pub _font
FontColor="#DBB740"?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>(<?Pub /_font?><?Pub _font FontColor="#8080FF"?>OSCAT_BASIC<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font
FontColor="#FFFFCC"?>LIST_LENGTH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>iPos<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?>             <?Pub _font
FontColor="#DBB740"?>INT<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#8080FF"?>iPos<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"
?>0<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#8080FF"?>fbListNext<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>LIST<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#8080FF"?>sList<?Pub /_font?><?Pub _font
FontColor="#EF724B"?>,<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>SEP<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#26<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#A4DBD2"?>WHILE<?Pub /_font?> <?Pub _font
FontColor="#EBC5DE"?>NOT<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>fbListNext<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#FFFFCC"?>NUL<?Pub /_font?> <?Pub _font
FontColor="#EBC5DE"?>AND<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>iPos<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>&lt;<?Pub /_font
?><?Pub _font FontColor="#EF724B"?>=<?Pub /_font?> <?Pub _font
FontColor="#F3A1DD"?>10<?Pub /_font?> <?Pub _font FontColor="#A4DBD2"
?>DO<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>asListElements<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>[<?Pub /_font?><?Pub _font FontColor="#8080FF"
?>iPos<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>]<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?>    <?Pub _font
FontColor="#8080FF"?>fbListNext<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#FFFFCC"
?>LEL<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font
?>
    <?Pub _font FontColor="#8080FF"?>fbListNext<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?><?Pub _font FontColor="#DCDCDC"
?>list<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#8080FF"?>sList<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
    <?Pub _font FontColor="#8080FF"?>iPos<?Pub /_font?>            <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#8080FF"?>iPos<?Pub /_font?> <?Pub _font FontColor="#EF724B"
?>+<?Pub /_font?> <?Pub _font FontColor="#F3A1DD"?>1<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#A4DBD2"?>END_WHILE<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125359"></a>

### LIST_RETRIEVE

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SEP | BYTE | ASCII-код символа-разделителя |
| Входы | POS | INT | Номер вырезаемой записи |
| Входы-выходы | LIST | STRING(LIST_LENGTH) | Список |
| Выходы | LIST_RETRIEVE | STRING(LIST_LENGTH) | Вырезанная запись |

Функция **LIST_RETRIEVE** вырезает из списка **LIST** с разделителем **SEP** запись с номером **POS**. Нумерация запись начинается с **1**. Если элемент с данным номером отсутствует, то функция возвращает пустую строку. См. также функцию [LIST_RETRIEVE_LAST](#topic-125360), которая используется для вырезания последней записи списка.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Список с записями *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>List<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#988DF7"?>OSCAT_BASIC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#988DF7"
?>LIST_LENGTH<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#66D1CD"?>'&amp;12&amp;345&amp;ABC&amp;XYZ'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Разделитель *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Separator<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#26<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* '&amp;' *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Номер вырезаемой записи *)<?Pub /_font?>
    <?Pub _font FontColor="#988DF7"?>Position<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>INT<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>2<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Вырезанная запись *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>RetrievedRecord<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font
FontColor="#DBB740"?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>(<?Pub /_font?><?Pub _font FontColor="#988DF7"?>OSCAT_BASIC<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font
FontColor="#988DF7"?>LIST_LENGTH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции LIST_RETRIEVE *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>RetrievedRecord<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>LIST_RETRIEVE<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SEP<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Separator,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>POS<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Position,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>LIST<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>List<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - RetrievedRecord = '345'<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - List = '&amp;12&amp;ABC&amp;XYZ'<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Пояснение:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Исходный список: '&amp;12&amp;345&amp;ABC&amp;XYZ' (записи '12', '345', 'ABC', 'XYZ')<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Вырезаем запись с номером 2 ('345')<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - Запись удаляется из списка<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - Итоговый список: '&amp;12&amp;ABC&amp;XYZ' (записи '12', 'ABC', 'XYZ')<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>

<a id="topic-125360"></a>

### LIST_RETRIEVE_LAST

| Тип модуля: функция | Переменная | Тип | Описание |
| --- | --- | --- | --- |
| Входы | SEP | BYTE | ASCII-код символа-разделителя |
| Входы-выходы | LIST | STRING(LIST_LENGTH) | Список |
| Выходы | LIST_RETRIEVE_LAST | STRING(LIST_LENGTH) | Вырезанная запись |

Функция **LIST_RETRIEVE_LAST**вырезает из списка **LIST** с разделителем **SEP** последнюю запись. См. также функцию [LIST_RETRIEVE](#topic-125359), которая используется для вырезания заданной записи списка.

Пример

<div><div><table><tbody><tr><td><?Pub _cellfont Shading="#2E3136"?><code><?Pub _font FontColor="#5684DD"?>VAR<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Список с записями *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>List<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font
?><?Pub _font FontColor="#988DF7"?>OSCAT_BASIC<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font FontColor="#988DF7"
?>LIST_LENGTH<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font
?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font
FontColor="#66D1CD"?>'&amp;12&amp;345&amp;ABC&amp;XYZ'<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>;<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Разделитель *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>Separator<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font FontColor="#DBB740"
?>BYTE<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:=<?Pub /_font
?> <?Pub _font FontColor="#F3A1DD"?>16#26<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>          <?Pub _font
FontColor="#5DA35B"?>(* '&amp;' *)<?Pub /_font?>
    <?Pub _font FontColor="#5DA35B"?>(* Вырезанная запись *)<?Pub /_font
?>
    <?Pub _font FontColor="#988DF7"?>RetrievedRecord<?Pub /_font?> <?Pub _font FontColor="#EF724B"?>:<?Pub /_font?> <?Pub _font
FontColor="#DBB740"?>STRING<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>(<?Pub /_font?><?Pub _font FontColor="#988DF7"?>OSCAT_BASIC<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font?><?Pub _font
FontColor="#988DF7"?>LIST_LENGTH<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font FontColor="#E1E1E1"
?>;<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_VAR<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* Вызов функции LIST_RETRIEVE_LAST *)<?Pub /_font?>
<?Pub _font FontColor="#DCDCDC"?>RetrievedRecord<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#8080FF"
?>OSCAT_BASIC<?Pub /_font?><?Pub _font FontColor="#E1E1E1"?>.<?Pub /_font
?><?Pub _font FontColor="#DCDCDC"?>LIST_RETRIEVE_LAST<?Pub /_font
?><?Pub _font FontColor="#E1E1E1"?>(<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>SEP<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>Separator,<?Pub /_font?>
    <?Pub _font FontColor="#DCDCDC"?>LIST<?Pub /_font?> <?Pub _font
FontColor="#EF724B"?>:=<?Pub /_font?> <?Pub _font FontColor="#DCDCDC"
?>List<?Pub /_font?>
<?Pub _font FontColor="#E1E1E1"?>)<?Pub /_font?><?Pub _font
FontColor="#E1E1E1"?>;<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>(* <?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   Результат:<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>   - RetrievedRecord = 'XYZ'<?Pub /_font
?>
<?Pub _font FontColor="#5DA35B"?>   - List = '&amp;12&amp;345&amp;ABC'<?Pub /_font?>
<?Pub _font FontColor="#5DA35B"?>*)<?Pub /_font?>
<?Pub _font FontColor="#5684DD"?>END_PROGRAM<?Pub /_font?></code></td></tr></tbody></table></div></div>
