Support for semantic verification of calls to standard function calls.
authorMario de Sousa <msousa@fe.up.pt>
Fri, 29 Jul 2011 16:05:03 +0100
changeset 351 e7d236750709
parent 350 2c3c4dc34979
child 352 4baeb6d13173
Support for semantic verification of calls to standard function calls.
Adding missing files in previous commit.
lib/create_standard_function_txt.sh
lib/standard_functions.txt
util/strdup.hh
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/create_standard_function_txt.sh	Fri Jul 29 16:05:03 2011 +0100
@@ -0,0 +1,908 @@
+#!/bin/sh 
+#
+# copyright 2011 Mario de Sousa (msousa@fe.up.pt)
+#
+# Offered to the public under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
+# General Public License for more details.
+#
+# This code is made available on the understanding that it will not be
+# used in safety-critical situations without a full and competent review.
+#
+
+echo "(************************************************)"
+echo "(************************************************)"
+echo "(***                                          ***)"
+echo "(***    The IEC 61131-3 standard functions    ***)"
+echo "(***                                          ***)"
+echo "(***    Auto-generated file. Do not edit!     ***)"
+echo "(***                                          ***)"
+echo "(************************************************)"
+echo "(************************************************)"
+
+
+echo "{disable code generation}"
+
+# Lets parse this file with the C pre-processor!
+#cpp <<"END" | sed "s/ FUNCTION/\nFUNCTION/g" | grep -v '#'
+# We usee gcc -E instead, as it seems cpp on OSX works differently! However, it needs an input file parameter...
+#gcc -E <<"END" | sed "s/ FUNCTION/\nFUNCTION/g" | grep -v '#'
+cpp <<"END" | sed "s/ FUNCTION/\nFUNCTION/g" | grep -v '#'
+
+#define __DEFINE_CLASHING_FUNCTIONS 
+
+/* #include "iec_std_lib_generated.h" */
+/* Macro that expand to subtypes */
+#define __ANY(DO)                 __ANY_DERIVED(DO) __ANY_ELEMENTARY(DO)
+#define __ANY_DERIVED(DO)
+#define __ANY_ELEMENTARY(DO)      __ANY_MAGNITUDE(DO) __ANY_BIT(DO) __ANY_STRING(DO) __ANY_DATE(DO)
+#define __ANY_MAGNITUDE(DO)       __ANY_NUM(DO) DO(TIME)
+#define __ANY_BIT(DO)             __ANY_NBIT(DO) DO(BOOL)
+#define __ANY_NBIT(DO)            DO(BYTE) DO(WORD) DO(DWORD) DO(LWORD)
+#define __ANY_STRING(DO)          DO(STRING)
+#define __ANY_DATE(DO)            DO(DATE) DO(TOD) DO(DT)
+#define __ANY_NUM(DO)             __ANY_REAL(DO) __ANY_INT(DO)
+#define __ANY_REAL(DO)            DO(REAL) DO(LREAL)
+#define __ANY_INT(DO)             __ANY_SINT(DO) __ANY_UINT(DO)
+#define __ANY_SINT(DO)            DO(SINT) DO(INT) DO(DINT) DO(LINT)
+#define __ANY_UINT(DO)            DO(USINT) DO(UINT) DO(UDINT) DO(ULINT)
+
+#define __ANY_1(DO,P1)            __ANY_DERIVED_1(DO,P1) __ANY_ELEMENTARY_1(DO,P1)
+#define __ANY_DERIVED_1(DO,P1)
+#define __ANY_ELEMENTARY_1(DO,P1) __ANY_MAGNITUDE_1(DO,P1) __ANY_BIT_1(DO,P1) __ANY_STRING_1(DO,P1) __ANY_DATE_1(DO,P1)
+#define __ANY_MAGNITUDE_1(DO,P1)  __ANY_NUM_1(DO,P1) DO(TIME,P1)
+#define __ANY_BIT_1(DO,P1)        __ANY_NBIT_1(DO,P1) DO(BOOL,P1)
+#define __ANY_NBIT_1(DO,P1)       DO(BYTE,P1) DO(WORD,P1) DO(DWORD,P1) DO(LWORD,P1)
+#define __ANY_STRING_1(DO,P1)     DO(STRING,P1)
+#define __ANY_DATE_1(DO,P1)       DO(DATE,P1) DO(TOD,P1) DO(DT,P1)
+#define __ANY_NUM_1(DO,P1)        __ANY_REAL_1(DO,P1) __ANY_INT_1(DO,P1)
+#define __ANY_REAL_1(DO,P1)       DO(REAL,P1) DO(LREAL,P1)
+#define __ANY_INT_1(DO,P1)        __ANY_SINT_1(DO,P1) __ANY_UINT_1(DO,P1)
+#define __ANY_SINT_1(DO,P1)       DO(SINT,P1) DO(INT,P1) DO(DINT,P1) DO(LINT,P1)
+#define __ANY_UINT_1(DO,P1)       DO(USINT,P1) DO(UINT,P1) DO(UDINT,P1) DO(ULINT,P1)
+
+
+
+/*****************************************************************/
+/*****************************************************************/
+/*****                                                       *****/
+/*****                 IEC 61131-3                           *****/
+/*****      S T A N D A R D     F U N C T I O N S            *****/
+/*****                                                       *****/
+/*****************************************************************/
+/*****************************************************************/
+
+/* NOTE: We only define and declare the explicitly typed standard functions
+ *       (e.g., SIN_REAL, SIN_LREAL, ..., ADD_SINT, ADD_INT, ADD_LINT, ...)
+ *       We do not declare/define the overloaded functions
+ *       (SIN, ADD, ...). 
+ *       When handling a call to an overloaded function, the iec2c compiler 
+ *       will determine in stage3 the data type of the parameter being passed, 
+ *       and in stage4 generate the C code to call the correct
+ *       typed standard function.
+ */
+
+/* NOTE on explicit typing of:
+ *           - Table 25 - Standard bit shift functions
+ *           - Table 29 - Character string Functions
+ *
+ *  In section 2.5.1.4 (Typing, overloading, and type conversion) of the IEC 61131-3 (version 2)
+ *  of the standard, it is stated:
+ * "A standard function, [...] is said to be overloaded when it
+ * can operate on input data elements of various types within a generic type designator as defined in
+ * 2.3.2. For instance, an overloaded addition function on generic type ANY_NUM can operate on data
+ * of types LREAL, REAL, DINT, INT, and SINT."
+ * [...]
+ * "When a function which normally represents an overloaded operator is to be typed, i.e., the types
+ * of its inputs and outputs restricted to a particular elementary or derived data type as defined in
+ * 2.3, this shall be done by appending an "underline" character followed by the required type, as
+ * shown in table 21."
+ *
+ * However, this explanation (as well as the example in table 21) only refers to functions where the same
+ * generic data type is used for the single input and the output parameter.
+ * How can we create explicitly types functions when this is not the case?
+ * It does not seem to be covered by the standard.
+ *
+ * For this reason, we do not define the LEN_SINT, LEN_INT, LEN_STRING, LEN_[ANY_INT], LEN_[ANY_STRING] functions...
+ */
+ 
+
+/*****************************************/  
+/*****************************************/  
+/*  2.5.1.5.1 Type Conversion Functions  */
+/*****************************************/  
+/*****************************************/  
+
+/* macros for non-extensible functions */
+#define __function_1p(fname,to_TYPENAME,p1_NAME,p1_TYPENAME) \
+FUNCTION fname : to_TYPENAME\
+  VAR_INPUT p1_NAME : p1_TYPENAME; END_VAR\
+  RETURN; \
+END_FUNCTION\
+
+#define __function_2p(fname,to_TYPENAME,p1_NAME,p1_TYPENAME,p2_NAME,p2_TYPENAME) \
+FUNCTION fname : to_TYPENAME\
+  VAR_INPUT p1_NAME : p1_TYPENAME; p2_NAME : p2_TYPENAME; END_VAR\
+  RETURN; \
+END_FUNCTION\
+
+#define __function_3p(fname,to_TYPENAME,p1_NAME,p1_TYPENAME,p2_NAME,p2_TYPENAME,p3_NAME,p3_TYPENAME) \
+FUNCTION fname : to_TYPENAME\
+  VAR_INPUT p1_NAME : p1_TYPENAME; p2_NAME : p2_TYPENAME; p3_NAME : p3_TYPENAME; END_VAR\
+  RETURN; \
+END_FUNCTION\
+
+#define __function_4p(fname,to_TYPENAME,p1_NAME,p1_TYPENAME,p2_NAME,p2_TYPENAME,p3_NAME,p3_TYPENAME,p4_NAME,p4_TYPENAME) \
+FUNCTION fname : to_TYPENAME\
+  VAR_INPUT p1_NAME : p1_TYPENAME; p2_NAME : p2_TYPENAME; p3_NAME : p3_TYPENAME; p4_NAME : p4_TYPENAME; END_VAR\
+  RETURN; \
+END_FUNCTION\
+
+
+/* macro for extensible functions */
+#define __function_1e(fname,to_TYPENAME,p1_NAME,p1_TYPENAME, FIRST_INDEX) \
+FUNCTION fname : to_TYPENAME\
+  VAR_INPUT p1_NAME FIRST_INDEX .. : p1_TYPENAME; END_VAR\
+  RETURN; \
+END_FUNCTION\
+
+#define __function_2e(fname,to_TYPENAME,p1_NAME,p1_TYPENAME,p2_NAME,p2_TYPENAME, FIRST_INDEX) \
+FUNCTION fname : to_TYPENAME\
+  VAR_INPUT p1_NAME : p1_TYPENAME; p2_NAME FIRST_INDEX .. : p2_TYPENAME; END_VAR\
+  RETURN; \
+END_FUNCTION\
+
+
+
+
+
+
+#define __to_anynum_(from_TYPENAME)   __ANY_NUM_1(__iec_,from_TYPENAME)
+#define __to_anyint_(from_TYPENAME)   __ANY_INT_1(__iec_,from_TYPENAME)
+#define __to_anybit_(from_TYPENAME)   __ANY_BIT_1(__iec_,from_TYPENAME)
+#define __to_anynbit_(from_TYPENAME) __ANY_NBIT_1(__iec_,from_TYPENAME)
+#define __to_anysint_(from_TYPENAME) __ANY_SINT_1(__iec_,from_TYPENAME)
+#define __to_anyuint_(from_TYPENAME) __ANY_UINT_1(__iec_,from_TYPENAME)
+#define __to_anyreal_(from_TYPENAME) __ANY_REAL_1(__iec_,from_TYPENAME)
+#define __to_anydate_(from_TYPENAME) __ANY_DATE_1(__iec_,from_TYPENAME)
+#define __to_time_(from_TYPENAME)    __iec_(TIME,from_TYPENAME)
+#define __to_string_(from_TYPENAME)  __iec_(STRING,from_TYPENAME)
+
+
+/*****************/
+/*   *_TO_**     */
+/*****************/
+#define __iec_(to_TYPENAME,from_TYPENAME) __function_1p(from_TYPENAME##_TO_##to_TYPENAME, to_TYPENAME, IN, from_TYPENAME)
+
+/******** [ANY_BIT]_TO_[ANY_NUM | ANY_BIT]   ************/ 
+__ANY_BIT(__to_anynum_)
+__ANY_BIT(__to_anybit_)
+
+/******** [ANY_NUM]_TO_[ANY_NUM | ANY_BIT]   ************/ 
+__ANY_NUM(__to_anynum_)
+__ANY_NUM(__to_anybit_)
+
+
+/******** [ANY_BIT | ANY_NUM]_TO_[TIME | ANY_DATE]   ************/ 
+__ANY_BIT(__to_time_)
+__ANY_NUM(__to_time_)
+__ANY_BIT(__to_anydate_)
+__ANY_NUM(__to_anydate_)
+
+
+/******** [TIME | ANY_DATE]_TO_[ANY_BIT | ANY_NUM]   ************/ 
+__to_anynum_(TIME)
+__to_anybit_(TIME)
+__ANY_DATE(__to_anynum_)
+__ANY_DATE(__to_anybit_)
+
+
+/******** [ANY_DATE]_TO_[ANY_DATE | TIME]   ************/ 
+/* Not supported: DT_TO_TIME */
+/*__iec_(to_TYPENAME,from_TYPENAME)*/
+__iec_(DATE,DT)
+__iec_(DT,DT)
+__iec_(TOD,DT)
+/* Not supported: DATE_TO_TIME */
+__iec_(DATE,DATE)
+/* Not supported: DATE_TO_DT */
+/* Not supported: DATE_TO_TOD */
+/* Not supported: TOD_TO_TIME */
+/* Not supported: TOD_TO_DATE */
+/* Not supported: TOD_TO_DT */
+__iec_(TOD,TOD)
+
+
+/******** TIME_TO_[ANY_DATE]   ************/ 
+/* Not supported: TIME_TO_DATE */
+/* Not supported: TIME_TO_DT */
+/* Not supported: TIME_TO_TOD */
+
+/******** TIME_TO_TIME   ************/ 
+__iec_(TIME,TIME)
+
+
+/******** [ANY_BIT]_TO_STRING   ************/ 
+__ANY_BIT(__to_string_)
+
+
+/******** [ANY_NUM]_TO_STRING   ************/ 
+__ANY_NUM(__to_string_)
+
+/******** [ANY_DATE]_TO_STRING   ************/ 
+__ANY_DATE(__to_string_)
+
+
+/******** TIME_TO_STRING   ************/ 
+__iec_(STRING,TIME)
+
+
+/******** STRING_TO_[ANY_BIT]   ************/ 
+__to_anybit_(STRING)
+
+
+/******** STRING_TO_[ANY_NUM]   ************/ 
+__to_anynum_(STRING)
+
+
+/******** STRING_TO_[ANY_DATE]   ************/ 
+__to_anydate_(STRING)
+
+                                   
+/******** STRING_TO_TIME   ************/ 
+__iec_(TIME,STRING)
+
+#undef __iec_
+
+
+
+/**************/
+/*   TRUNC    */
+/**************/
+/* overloaded function! */
+#define __iec_(to_TYPENAME,from_TYPENAME) __function_1p(TRUNC, to_TYPENAME, IN, from_TYPENAME)
+__ANY_REAL(__to_anyint_)
+#undef __iec_
+
+
+/*******************/
+/*   *_TO_BCD_*    */
+/*******************/
+#define __iec_(to_TYPENAME,from_TYPENAME) __function_1p(from_TYPENAME##_TO_BCD_##to_TYPENAME, to_TYPENAME, IN, from_TYPENAME)
+__ANY_UINT(__to_anynbit_)
+#undef __iec_
+
+
+/*******************/
+/*   *_BCD_TO_*    */
+/*******************/
+#define __iec_(to_TYPENAME,from_TYPENAME) __function_1p(from_TYPENAME##_BCD_TO_##to_TYPENAME, to_TYPENAME, IN, from_TYPENAME)
+__ANY_NBIT(__to_anyuint_)
+#undef __iec_
+
+/***********************************/  
+/***********************************/  
+/*  2.5.1.5.2 Numerical Functions  */
+/***********************************/  
+/***********************************/  
+
+/******************************************************************/
+/***   Table 23 - Standard functions of one numeric variable    ***/
+/******************************************************************/
+
+  /**************/
+  /*    ABS     */
+  /**************/
+#define __iec_(TYPENAME) \
+__function_1p(ABS_##TYPENAME, TYPENAME, IN, TYPENAME)  /* explicitly typed function */\
+__function_1p(ABS, TYPENAME, IN, TYPENAME)             /* overloaded function */ 
+__ANY_REAL(__iec_)
+__ANY_INT(__iec_)
+#undef __iec_
+
+  /**************/
+  /*    SQRT    */
+  /**************/
+#define __iec_(TYPENAME) \
+__function_1p(SQRT_##TYPENAME, TYPENAME, IN, TYPENAME)  /* explicitly typed function */\
+__function_1p(SQRT, TYPENAME, IN, TYPENAME)             /* overloaded function */ 
+__ANY_REAL(__iec_)
+#undef __iec_
+
+  /**************/
+  /*     LN     */
+  /**************/
+#define __iec_(TYPENAME) \
+__function_1p(LN_##TYPENAME, TYPENAME, IN, TYPENAME)  /* explicitly typed function */\
+__function_1p(LN, TYPENAME, IN, TYPENAME)             /* overloaded function */ 
+__ANY_REAL(__iec_)
+#undef __iec_
+
+  /**************/
+  /*     LOG    */
+  /**************/
+#define __iec_(TYPENAME) \
+__function_1p(LOG_##TYPENAME, TYPENAME, IN, TYPENAME)  /* explicitly typed function */\
+__function_1p(LOG, TYPENAME, IN, TYPENAME)             /* overloaded function */ 
+__ANY_REAL(__iec_)
+#undef __iec_
+
+  /**************/
+  /*     EXP    */
+  /**************/
+#define __iec_(TYPENAME) \
+__function_1p(EXP_##TYPENAME, TYPENAME, IN, TYPENAME)  /* explicitly typed function */\
+__function_1p(EXP, TYPENAME, IN, TYPENAME)             /* overloaded function */ 
+__ANY_REAL(__iec_)
+#undef __iec_
+
+  /**************/
+  /*     SIN    */
+  /**************/
+#define __iec_(TYPENAME) \
+__function_1p(SIN_##TYPENAME, TYPENAME, IN, TYPENAME)  /* explicitly typed function */\
+__function_1p(SIN, TYPENAME, IN, TYPENAME)             /* overloaded function */ 
+__ANY_REAL(__iec_)
+#undef __iec_
+
+  /**************/
+  /*     COS    */
+  /**************/
+#define __iec_(TYPENAME) \
+__function_1p(COS_##TYPENAME, TYPENAME, IN, TYPENAME)  /* explicitly typed function */\
+__function_1p(COS, TYPENAME, IN, TYPENAME)             /* overloaded function */ 
+__ANY_REAL(__iec_)
+#undef __iec_
+
+  /**************/
+  /*     TAN    */
+  /**************/
+#define __iec_(TYPENAME) \
+__function_1p(TAN_##TYPENAME, TYPENAME, IN, TYPENAME)  /* explicitly typed function */\
+__function_1p(TAN, TYPENAME, IN, TYPENAME)             /* overloaded function */ 
+__ANY_REAL(__iec_)
+#undef __iec_
+
+  /**************/
+  /*    ASIN    */
+  /**************/
+#define __iec_(TYPENAME) \
+__function_1p(ASIN_##TYPENAME, TYPENAME, IN, TYPENAME)  /* explicitly typed function */\
+__function_1p(ASIN, TYPENAME, IN, TYPENAME)             /* overloaded function */ 
+__ANY_REAL(__iec_)
+#undef __iec_
+
+  /**************/
+  /*    ACOS    */
+  /**************/
+#define __iec_(TYPENAME) \
+__function_1p(ACOS_##TYPENAME, TYPENAME, IN, TYPENAME)  /* explicitly typed function */\
+__function_1p(ACOS, TYPENAME, IN, TYPENAME)             /* overloaded function */ 
+__ANY_REAL(__iec_)
+#undef __iec_
+
+  /**************/
+  /*    ATAN    */
+  /**************/
+#define __iec_(TYPENAME) \
+__function_1p(ATAN_##TYPENAME, TYPENAME, IN, TYPENAME)  /* explicitly typed function */\
+__function_1p(ATAN, TYPENAME, IN, TYPENAME)             /* overloaded function */ 
+__ANY_REAL(__iec_)
+#undef __iec_
+
+
+
+/*****************************************************/
+/***   Table 24 - Standard arithmetic functions    ***/
+/*****************************************************/
+
+#define __arith_expand(fname,TYPENAME) \
+__function_1e(fname##_##TYPENAME, TYPENAME, IN, TYPENAME, 1)     /* explicitly typed function */\
+__function_1e(fname, TYPENAME, IN, TYPENAME, 1)                  /* overloaded function */ 
+
+
+#define __arith_static(fname,TYPENAME) \
+__function_1p(fname##_##TYPENAME, TYPENAME, IN, TYPENAME)  /* explicitly typed function */\
+__function_1p(fname, TYPENAME, IN, TYPENAME)               /* overloaded function */ 
+
+  /**************/
+  /*     ADD    */
+  /**************/
+#define __iec_(TYPENAME) __arith_expand(ADD, TYPENAME)
+__ANY_NUM(__iec_)
+#undef __iec_
+
+  /**************/
+  /*     MUL    */
+  /**************/
+#define __iec_(TYPENAME) __arith_expand(MUL, TYPENAME)
+__ANY_NUM(__iec_)
+#undef __iec_
+
+  /**************/
+  /*     SUB    */
+  /**************/
+#define __iec_(TYPENAME) __arith_static(SUB, TYPENAME)
+__ANY_NUM(__iec_)
+#undef __iec_
+
+  /**************/
+  /*     DIV    */
+  /**************/
+#define __iec_(TYPENAME)\
+__function_2p(DIV_##TYPENAME, TYPENAME, IN1, TYPENAME, IN2, TYPENAME)  /* explicitly typed function */\
+__function_2p(DIV, TYPENAME, IN1, TYPENAME, IN2, TYPENAME)             /* overloaded function */ 
+__ANY_NUM(__iec_)
+#undef __iec_
+
+  /**************/
+  /*     MOD    */
+  /**************/
+#ifdef __DEFINE_CLASHING_FUNCTIONS  
+#define __iec_(TYPENAME)\
+__function_2p(MOD_##TYPENAME, TYPENAME, IN1, TYPENAME, IN2, TYPENAME)  /* explicitly typed function */\
+__function_2p(MOD, TYPENAME, IN1, TYPENAME, IN2, TYPENAME)             /* overloaded function */ 
+__ANY_INT(__iec_)
+#undef __iec_
+#endif
+
+  /**************/
+  /*    EXPT    */
+  /**************/
+#define __in1_anyreal_(in2_TYPENAME)   __ANY_REAL_1(__iec_,in2_TYPENAME)
+#define __iec_(in1_TYPENAME,in2_TYPENAME) \
+__function_2p(EXPT, in1_TYPENAME, IN1, in1_TYPENAME, IN2, in2_TYPENAME)             /* overloaded function */ 
+__ANY_NUM(__in1_anyreal_)
+#undef __iec_
+
+  /***************/
+  /*     MOVE    */
+  /***************/
+#define __iec_(TYPENAME) __arith_static(MOVE, TYPENAME)
+__ANY(__iec_)
+#undef __iec_
+
+
+
+
+/***********************************/  
+/***********************************/  
+/*  2.5.1.5.3 Bit String Functions */
+/***********************************/  
+/***********************************/  
+
+/****************************************************/
+/***   Table 25 - Standard bit shift functions    ***/
+/****************************************************/
+/* We do not delcare explcitly typed versions of the functions in table 29.
+ * See note at top of this file regarding explicitly typed functions for more details.
+ */
+#define __in1_anybit_(in2_TYPENAME)   __ANY_BIT_1(__iec_,in2_TYPENAME)
+
+
+  /**************/
+  /*     SHL    */
+  /**************/
+#define __iec_(in1_TYPENAME,in2_TYPENAME) __function_2p(SHL, in1_TYPENAME, IN, in1_TYPENAME, N, in2_TYPENAME)             /* overloaded function */ 
+__ANY_INT(__in1_anybit_)
+#undef __iec_
+
+  /**************/
+  /*     SHR    */
+  /**************/
+#define __iec_(in1_TYPENAME,in2_TYPENAME) __function_2p(SHR, in1_TYPENAME, IN, in1_TYPENAME, N, in2_TYPENAME)             /* overloaded function */ 
+__ANY_INT(__in1_anybit_)
+#undef __iec_
+
+  /**************/
+  /*     ROR    */
+  /**************/
+#define __iec_(in1_TYPENAME,in2_TYPENAME) __function_2p(ROR, in1_TYPENAME, IN, in1_TYPENAME, N, in2_TYPENAME)             /* overloaded function */ 
+__ANY_INT(__in1_anybit_)
+#undef __iec_
+
+  /**************/
+  /*     ROL    */
+  /**************/
+#define __iec_(in1_TYPENAME,in2_TYPENAME) __function_2p(ROL, in1_TYPENAME, IN, in1_TYPENAME, N, in2_TYPENAME)             /* overloaded function */ 
+__ANY_INT(__in1_anybit_)
+#undef __iec_
+
+
+
+/*********************/
+/***   Table 26    ***/
+/*********************/
+
+  /**************/
+  /*     AND    */
+  /**************/
+#ifdef __DEFINE_CLASHING_FUNCTIONS  
+#define __iec_(TYPENAME) \
+__function_1e(AND, TYPENAME, IN, TYPENAME, 1)                /* overloaded function */ \
+__function_1e(AND_##TYPENAME, TYPENAME, IN, TYPENAME, 1)     /* explicitly typed function */ 
+__ANY_BIT(__iec_)
+#undef __iec_
+#endif
+
+  /*************/
+  /*     OR    */
+  /*************/
+#ifdef __DEFINE_CLASHING_FUNCTIONS  
+#define __iec_(TYPENAME) \
+__function_1e(OR, TYPENAME, IN, TYPENAME, 1)                /* overloaded function */ \
+__function_1e(OR_##TYPENAME, TYPENAME, IN, TYPENAME, 1)     /* explicitly typed function */ 
+__ANY_BIT(__iec_)
+#undef __iec_
+#endif
+
+  /**************/
+  /*     XOR    */
+  /**************/
+#ifdef __DEFINE_CLASHING_FUNCTIONS  
+#define __iec_(TYPENAME) \
+__function_1e(XOR, TYPENAME, IN, TYPENAME, 1)                /* overloaded function */ \
+__function_1e(XOR_##TYPENAME, TYPENAME, IN, TYPENAME, 1)     /* explicitly typed function */ 
+__ANY_BIT(__iec_)
+#undef __iec_
+#endif
+
+  /**************/
+  /*     NOT    */
+  /**************/
+#ifdef __DEFINE_CLASHING_FUNCTIONS  
+#define __iec_(TYPENAME) \
+__function_1p(NOT, TYPENAME, IN, TYPENAME)             /* overloaded function */ \
+__function_1p(NOT_##TYPENAME, TYPENAME, IN, TYPENAME)  /* explicitly typed function */ 
+__ANY_BIT(__iec_)
+#undef __iec_
+#endif
+
+
+
+
+
+
+/***************************************************/  
+/***************************************************/  
+/*  2.5.1.5.4  Selection and comparison Functions  */
+/***************************************************/  
+/***************************************************/  
+
+/*********************/
+/***   Table 27    ***/
+/*********************/
+
+    /**************/
+    /*    SEL     */
+    /**************/
+/* The standard states that the inputs for SEL and MUX must be named starting off from 0,
+ * unlike remaining functions, that start off at 1.
+ */
+#define __iec_(TYPENAME) \
+__function_3p(SEL, TYPENAME, G, BOOL, IN0, TYPENAME, IN1, TYPENAME)             /* overloaded function */ \
+__function_3p(SEL_##TYPENAME, TYPENAME, G, BOOL, IN0, TYPENAME, IN1, TYPENAME)  /* explicitly typed function */ 
+__ANY(__iec_)
+#undef __iec_
+
+    /**************/
+    /*     MAX    */
+    /**************/
+/* Should be for: ANY_ELEMENTARY, but we currently do not support WSTRING yet... */
+/* However, we can call __ANY_ELEMENTARY since the __ANY_STRING macro does not call DO(WSTRING) */
+#define __iec_(TYPENAME) \
+__function_1e(MAX, TYPENAME, IN, TYPENAME, 1)             /* overloaded function */ \
+__function_1e(MAX_##TYPENAME, TYPENAME, IN, TYPENAME, 1)  /* explicitly typed function */ 
+__ANY_ELEMENTARY(__iec_)
+#undef __iec_
+
+    /**************/
+    /*     MIN    */
+    /**************/
+/* Should be for: ANY_ELEMENTARY, but we currently do not support WSTRING yet... */
+/* However, we can call __ANY_ELEMENTARY since the __ANY_STRING macro does not call DO(WSTRING) */
+#define __iec_(TYPENAME) \
+__function_1e(MIN, TYPENAME, IN, TYPENAME, 1)             /* overloaded function */ \
+__function_1e(MIN_##TYPENAME, TYPENAME, IN, TYPENAME, 1)  /* explicitly typed function */ 
+__ANY_ELEMENTARY(__iec_)
+#undef __iec_
+
+    /**************/
+    /*   LIMIT    */
+    /**************/
+/* Should be for: ANY_ELEMENTARY, but we currently do not support WSTRING yet... */
+/* However, we can call __ANY_ELEMENTARY since the __ANY_STRING macro does not call DO(WSTRING) */
+#define __iec_(TYPENAME) \
+__function_3p(LIMIT, TYPENAME, MN, TYPENAME, IN, TYPENAME, MX, TYPENAME)             /* overloaded function */ \
+__function_3p(LIMIT_##TYPENAME, TYPENAME, MN, TYPENAME, IN, TYPENAME, MX, TYPENAME)  /* explicitly typed function */ 
+__ANY_ELEMENTARY(__iec_)
+#undef __iec_
+
+    /**************/
+    /*     MUX    */
+    /**************/
+/* The standard states that the inputs for SEL and MUX must be named starting off from 0,
+ * unlike remaining functions, that start off at 1.
+ */
+/* The standard considers the explicit typing of MUX function as a special case... 
+ * It should look like: 
+ *         MUX_SINT_REAL, MUX_SINT_STRING, MUX_SINT_[ANY]
+ *         MUX_INT_REAL,  MUX_INT_STRING,  MUX_INT_[ANY]
+ *         MUX_[ANY_INT]_[ANY]
+ */
+#define __in1_anyint_(in2_TYPENAME)   __ANY_INT_1(__iec_,in2_TYPENAME)
+#define __iec_(in1_TYPENAME,in2_TYPENAME) \
+__function_2e(MUX, in2_TYPENAME, K, in1_TYPENAME, IN, in2_TYPENAME, 0)                                  /* overloaded function */ \
+__function_2e(MUX_##in1_TYPENAME##_##in2_TYPENAME, in2_TYPENAME, K, in1_TYPENAME, IN, in2_TYPENAME, 0)  /* explicitly typed function */ 
+__ANY(__in1_anyint_)
+#undef __iec_
+
+
+
+/******************************************/
+/***             Table 28               ***/
+/***   Standard comparison functions    ***/
+/******************************************/
+
+    /**************/
+    /*     GT     */
+    /**************/
+/* Should be for: ANY_ELEMENTARY, but we currently do not support WSTRING yet... */
+/* However, we can call __ANY_ELEMENTARY since the __ANY_STRING macro does not call DO(WSTRING) */
+#define __iec_(TYPENAME) \
+__function_1e(GT, BOOL, IN, TYPENAME, 1)             /* overloaded function */ \
+__function_1e(GT_##TYPENAME, BOOL, IN, TYPENAME, 1)  /* explicitly typed function */ 
+__ANY_ELEMENTARY(__iec_)
+#undef __iec_
+
+    /**************/
+    /*     GE     */
+    /**************/
+/* Should be for: ANY_ELEMENTARY, but we currently do not support WSTRING yet... */
+/* However, we can call __ANY_ELEMENTARY since the __ANY_STRING macro does not call DO(WSTRING) */
+#define __iec_(TYPENAME) \
+__function_1e(GE, BOOL, IN, TYPENAME, 1)             /* overloaded function */ \
+__function_1e(GE_##TYPENAME, BOOL, IN, TYPENAME, 1)  /* explicitly typed function */ 
+__ANY_ELEMENTARY(__iec_)
+#undef __iec_
+
+    /**************/
+    /*     EQ     */
+    /**************/
+/* Should be for: ANY_ELEMENTARY, but we currently do not support WSTRING yet... */
+/* However, we can call __ANY_ELEMENTARY since the __ANY_STRING macro does not call DO(WSTRING) */
+#define __iec_(TYPENAME) \
+__function_1e(EQ, BOOL, IN, TYPENAME, 1)             /* overloaded function */ \
+__function_1e(EQ_##TYPENAME, BOOL, IN, TYPENAME, 1)  /* explicitly typed function */ 
+__ANY_ELEMENTARY(__iec_)
+#undef __iec_
+
+    /**************/
+    /*     LT     */
+    /**************/
+/* Should be for: ANY_ELEMENTARY, but we currently do not support WSTRING yet... */
+/* However, we can call __ANY_ELEMENTARY since the __ANY_STRING macro does not call DO(WSTRING) */
+#define __iec_(TYPENAME) \
+__function_1e(LT, BOOL, IN, TYPENAME, 1)             /* overloaded function */ \
+__function_1e(LT_##TYPENAME, BOOL, IN, TYPENAME, 1)  /* explicitly typed function */ 
+__ANY_ELEMENTARY(__iec_)
+#undef __iec_
+
+    /**************/
+    /*     LE     */
+    /**************/
+/* Should be for: ANY_ELEMENTARY, but we currently do not support WSTRING yet... */
+/* However, we can call __ANY_ELEMENTARY since the __ANY_STRING macro does not call DO(WSTRING) */
+#define __iec_(TYPENAME) \
+__function_1e(LE, BOOL, IN, TYPENAME, 1)             /* overloaded function */ \
+__function_1e(LE_##TYPENAME, BOOL, IN, TYPENAME, 1)  /* explicitly typed function */ 
+__ANY_ELEMENTARY(__iec_)
+#undef __iec_
+
+    /**************/
+    /*     NE     */
+    /**************/
+/* Should be for: ANY_ELEMENTARY, but we currently do not support WSTRING yet... */
+/* However, we can call __ANY_ELEMENTARY since the __ANY_STRING macro does not call DO(WSTRING) */
+#define __iec_(TYPENAME) \
+__function_1e(NE, BOOL, IN, TYPENAME, 1)             /* overloaded function */ \
+__function_1e(NE_##TYPENAME, BOOL, IN, TYPENAME, 1)  /* explicitly typed function */ 
+__ANY_ELEMENTARY(__iec_)
+#undef __iec_
+
+
+
+/*********************************************/  
+/*********************************************/  
+/*  2.5.1.5.5   Character string  Functions  */
+/*********************************************/  
+/*********************************************/  
+
+/*************************************/
+/***           Table 29            ***/
+/***  Character string  Functions  ***/
+/*************************************/
+
+/* We do not delcare explcitly typed versions of the functions in table 29.
+ * See note at top of this file regarding explicitly typed functions for more details.
+ */
+ 
+#define __A_anyint_(B_TYPENAME)   __ANY_INT_1(__iec_,B_TYPENAME)
+
+
+
+    /***************/
+    /*     LEN     */
+    /***************/
+#define __iec_(A_TYPENAME,B_TYPENAME) \
+__function_1p(LEN, A_TYPENAME, IN, B_TYPENAME)                                  /* overloaded function */ 
+__ANY_STRING(__A_anyint_)
+#undef __iec_
+
+
+    /****************/
+    /*     LEFT     */
+    /****************/
+#define __iec_(A_TYPENAME,B_TYPENAME) \
+__function_2p(LEFT, B_TYPENAME, IN, B_TYPENAME, L, A_TYPENAME)                  /* overloaded function */ 
+__ANY_STRING(__A_anyint_)
+#undef __iec_
+
+
+    /*****************/
+    /*     RIGHT     */
+    /*****************/
+#define __iec_(A_TYPENAME,B_TYPENAME) \
+__function_2p(RIGHT, B_TYPENAME, IN, B_TYPENAME, L, A_TYPENAME)                 /* overloaded function */ 
+__ANY_STRING(__A_anyint_)
+#undef __iec_
+
+
+    /***************/
+    /*     MID     */
+    /***************/
+#define __iec_(A_TYPENAME,B_TYPENAME) \
+__function_3p(MID, B_TYPENAME, IN, B_TYPENAME, L, A_TYPENAME, P, A_TYPENAME)    /* overloaded function */ 
+__ANY_STRING(__A_anyint_)
+#undef __iec_
+
+
+    /******************/
+    /*     CONCAT     */
+    /******************/
+#define __iec_(TYPENAME) \
+__function_1e(CONCAT, TYPENAME, IN, TYPENAME, 1)    /* overloaded function */ 
+__ANY_STRING(__iec_)
+#undef __iec_
+
+
+    /******************/
+    /*     INSERT     */
+    /******************/
+#define __iec_(A_TYPENAME,B_TYPENAME) \
+__function_3p(INSERT, B_TYPENAME, IN1, B_TYPENAME, IN2, B_TYPENAME, P, A_TYPENAME)    /* overloaded function */ 
+__ANY_STRING(__A_anyint_)
+#undef __iec_
+
+
+    /******************/
+    /*     DELETE     */
+    /******************/
+#define __iec_(A_TYPENAME,B_TYPENAME) \
+__function_3p(DELETE, B_TYPENAME, IN, B_TYPENAME, L, A_TYPENAME, P, A_TYPENAME)    /* overloaded function */ 
+__ANY_STRING(__A_anyint_)
+#undef __iec_
+
+
+    /*******************/
+    /*     REPLACE     */
+    /*******************/
+#define __iec_(A_TYPENAME,B_TYPENAME) \
+__function_4p(REPLACE, B_TYPENAME, IN1, B_TYPENAME, IN2, B_TYPENAME, L, A_TYPENAME, P, A_TYPENAME)    /* overloaded function */ 
+__ANY_STRING(__A_anyint_)
+#undef __iec_
+
+
+    /****************/
+    /*     FIND     */
+    /****************/
+#define __iec_(A_TYPENAME,B_TYPENAME) \
+__function_2p(FIND, A_TYPENAME, IN1, B_TYPENAME, IN2, B_TYPENAME)                 /* overloaded function */ 
+__ANY_STRING(__A_anyint_)
+#undef __iec_
+
+
+/*********************************************/  
+/*********************************************/  
+/*  2.5.1.5.6  Functions of time data types  */
+/*********************************************/  
+/*********************************************/  
+
+/**************************************/
+/***           Table 30             ***/
+/***  Functions of time data types  ***/
+/**************************************/
+
+__function_2p(ADD_TIME, TIME, IN1, TIME, IN2, TIME)
+__function_2p(ADD_TOD_TIME, TOD, IN1, TOD, IN2, TIME)
+__function_2p(ADD_DT_TIME, DT, IN1, DT, IN2, TIME)
+
+__function_2p(SUB_TIME, TIME, IN1, TIME, IN2, TIME)
+__function_2p(SUB_DATE_DATE, TIME, IN1, DATE, IN2, DATE)
+__function_2p(SUB_TOD_TIME, TOD, IN1, TOD, IN2, TIME)
+__function_2p(SUB_TOD_TOD, TIME, IN1, TOD, IN2, TOD)
+__function_2p(SUB_DT_TIME, DT, IN1, DT, IN2, TIME)
+__function_2p(SUB_DT_DT, TIME, IN1, DT, IN2, DT)
+
+
+/***  MULTIME  ***/
+#define __iec_(TYPENAME) \
+__function_2p(MULTIME_##TYPENAME, TIME, IN1, TIME, IN2, TYPENAME)    /* explicitly typed function */\
+__function_2p(MULTIME, TIME, IN1, TIME, IN2, TYPENAME)               /* overloaded function */ 
+__ANY_NUM(__iec_)
+#undef __iec_
+
+/***  MUL  ***/
+/* NOTE: We can not include the explicitly typed function
+ * __function_2p(DIV_##TYPENAME, TIME, IN1, TIME, IN2, TYPENAME)    
+ * as it would clash with another function with the exact same name declared above
+ * __function_2p(DIV_##TYPENAME, TYPENAME, IN1, TYPENAME, IN2, TYPENAME)
+ * and the standard does not define this explicitly defined function as being overloaded 
+ * (i.e. having an ANY_***) input or output parameter
+ * Note that our compiler would nevertheless work just fine with this overloaded declaration.
+ */
+#define __iec_(TYPENAME) \
+__function_2p(MUL, TIME, IN1, TIME, IN2, TYPENAME)               /* overloaded function */ 
+__ANY_NUM(__iec_)
+#undef __iec_
+
+/***  DIVTIME  ***/
+#define __iec_(TYPENAME) \
+__function_2p(DIVTIME_##TYPENAME, TIME, IN1, TIME, IN2, TYPENAME)    /* explicitly typed function */\
+__function_2p(DIVTIME, TIME, IN1, TIME, IN2, TYPENAME)               /* overloaded function */ 
+__ANY_NUM(__iec_)
+#undef __iec_
+
+/***  DIV  ***/
+/* NOTE: We can not include the explicitly typed function
+ * __function_2p(DIV_##TYPENAME, TIME, IN1, TIME, IN2, TYPENAME)    
+ * as it would clash with another function with the exact same name declared above
+ * __function_2p(DIV_##TYPENAME, TYPENAME, IN1, TYPENAME, IN2, TYPENAME)
+ * and the standard does not define this explicitly defined function as being overloaded 
+ * (i.e. having an ANY_***) input or output parameter
+ * Note that our compiler would nevertheless work just fine with this overloaded declaration.
+ */
+#define __iec_(TYPENAME) \
+__function_2p(DIV, TIME, IN1, TIME, IN2, TYPENAME)               /* overloaded function */ 
+__ANY_NUM(__iec_)
+#undef __iec_
+
+
+/*** CONCAT_DATE_TOD ***/
+__function_2p(CONCAT_DATE_TOD, DT, IN1, DATE, IN2, TOD)
+
+
+
+
+/****************************************************/  
+/****************************************************/  
+/*  2.5.1.5.6   Functions of enumerated data types  */
+/****************************************************/  
+/****************************************************/  
+
+/********************************************/
+/***              Table 31                ***/
+/***  Functions of enumerated data types  ***/
+/********************************************/
+
+/* Do we support this? */
+
+END
+
+echo "{enable code generation}"
+echo
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/standard_functions.txt	Fri Jul 29 16:05:03 2011 +0100
@@ -0,0 +1,1832 @@
+(************************************************)
+(************************************************)
+(***                                          ***)
+(***    The IEC 61131-3 standard functions    ***)
+(***                                          ***)
+(***    Auto-generated file. Do not edit!     ***)
+(***                                          ***)
+(************************************************)
+(************************************************)
+{disable code generation}
+FUNCTION BYTE_TO_REAL : REAL VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_LREAL : LREAL VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_SINT : SINT VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_INT : INT VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_DINT : DINT VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_LINT : LINT VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_USINT : USINT VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_UINT : UINT VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_UDINT : UDINT VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_ULINT : ULINT VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_REAL : REAL VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_LREAL : LREAL VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_SINT : SINT VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_INT : INT VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_DINT : DINT VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_LINT : LINT VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_USINT : USINT VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_UINT : UINT VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_UDINT : UDINT VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_ULINT : ULINT VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_REAL : REAL VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_LREAL : LREAL VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_SINT : SINT VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_INT : INT VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_DINT : DINT VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_LINT : LINT VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_USINT : USINT VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_UINT : UINT VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_UDINT : UDINT VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_ULINT : ULINT VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_REAL : REAL VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_LREAL : LREAL VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_SINT : SINT VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_INT : INT VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_DINT : DINT VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_LINT : LINT VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_USINT : USINT VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_UINT : UINT VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_UDINT : UDINT VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_ULINT : ULINT VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_REAL : REAL VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_LREAL : LREAL VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_SINT : SINT VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_INT : INT VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_DINT : DINT VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_LINT : LINT VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_USINT : USINT VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_UINT : UINT VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_UDINT : UDINT VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_ULINT : ULINT VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_BYTE : BYTE VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_WORD : WORD VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_DWORD : DWORD VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_LWORD : LWORD VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_BOOL : BOOL VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_BYTE : BYTE VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_WORD : WORD VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_DWORD : DWORD VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_LWORD : LWORD VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_BOOL : BOOL VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_BYTE : BYTE VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_WORD : WORD VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_DWORD : DWORD VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_LWORD : LWORD VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_BOOL : BOOL VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_BYTE : BYTE VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_WORD : WORD VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_DWORD : DWORD VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_LWORD : LWORD VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_BOOL : BOOL VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_BYTE : BYTE VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_WORD : WORD VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_DWORD : DWORD VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_LWORD : LWORD VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_BOOL : BOOL VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+
+
+FUNCTION REAL_TO_REAL : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_LREAL : LREAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_SINT : SINT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_INT : INT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_DINT : DINT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_LINT : LINT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_USINT : USINT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_UINT : UINT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_UDINT : UDINT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_ULINT : ULINT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_REAL : REAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_LREAL : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_SINT : SINT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_INT : INT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_DINT : DINT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_LINT : LINT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_USINT : USINT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_UINT : UINT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_UDINT : UDINT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_ULINT : ULINT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_REAL : REAL VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_LREAL : LREAL VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_SINT : SINT VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_INT : INT VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_DINT : DINT VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_LINT : LINT VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_USINT : USINT VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_UINT : UINT VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_UDINT : UDINT VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_ULINT : ULINT VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_REAL : REAL VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_LREAL : LREAL VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_SINT : SINT VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_INT : INT VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_DINT : DINT VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_LINT : LINT VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_USINT : USINT VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_UINT : UINT VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_UDINT : UDINT VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_ULINT : ULINT VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_REAL : REAL VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_LREAL : LREAL VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_SINT : SINT VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_INT : INT VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_DINT : DINT VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_LINT : LINT VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_USINT : USINT VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_UINT : UINT VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_UDINT : UDINT VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_ULINT : ULINT VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_REAL : REAL VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_LREAL : LREAL VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_SINT : SINT VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_INT : INT VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_DINT : DINT VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_LINT : LINT VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_USINT : USINT VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_UINT : UINT VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_UDINT : UDINT VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_ULINT : ULINT VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_REAL : REAL VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_LREAL : LREAL VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_SINT : SINT VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_INT : INT VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_DINT : DINT VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_LINT : LINT VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_USINT : USINT VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_UINT : UINT VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_UDINT : UDINT VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_ULINT : ULINT VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_REAL : REAL VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_LREAL : LREAL VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_SINT : SINT VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_INT : INT VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_DINT : DINT VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_LINT : LINT VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_USINT : USINT VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_UINT : UINT VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_UDINT : UDINT VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_ULINT : ULINT VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_REAL : REAL VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_LREAL : LREAL VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_SINT : SINT VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_INT : INT VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_DINT : DINT VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_LINT : LINT VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_USINT : USINT VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_UINT : UINT VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_UDINT : UDINT VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_ULINT : ULINT VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_REAL : REAL VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_LREAL : LREAL VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_SINT : SINT VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_INT : INT VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_DINT : DINT VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_LINT : LINT VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_USINT : USINT VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_UINT : UINT VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_UDINT : UDINT VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_ULINT : ULINT VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_BYTE : BYTE VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_WORD : WORD VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_DWORD : DWORD VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_LWORD : LWORD VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_BOOL : BOOL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_BYTE : BYTE VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_WORD : WORD VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_DWORD : DWORD VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_LWORD : LWORD VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_BOOL : BOOL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_BYTE : BYTE VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_WORD : WORD VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_DWORD : DWORD VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_LWORD : LWORD VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_BOOL : BOOL VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_BYTE : BYTE VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_WORD : WORD VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_DWORD : DWORD VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_LWORD : LWORD VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_BOOL : BOOL VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_BYTE : BYTE VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_WORD : WORD VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_DWORD : DWORD VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_LWORD : LWORD VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_BOOL : BOOL VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_BYTE : BYTE VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_WORD : WORD VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_DWORD : DWORD VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_LWORD : LWORD VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_BOOL : BOOL VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_BYTE : BYTE VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_WORD : WORD VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_DWORD : DWORD VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_LWORD : LWORD VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_BOOL : BOOL VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_BYTE : BYTE VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_WORD : WORD VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_DWORD : DWORD VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_LWORD : LWORD VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_BOOL : BOOL VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_BYTE : BYTE VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_WORD : WORD VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_DWORD : DWORD VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_LWORD : LWORD VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_BOOL : BOOL VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_BYTE : BYTE VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_WORD : WORD VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_DWORD : DWORD VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_LWORD : LWORD VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_BOOL : BOOL VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+
+
+
+FUNCTION BYTE_TO_TIME : TIME VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_TIME : TIME VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_TIME : TIME VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_TIME : TIME VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_TIME : TIME VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_TIME : TIME VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_TIME : TIME VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_TIME : TIME VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_TIME : TIME VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_TIME : TIME VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_TIME : TIME VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_TIME : TIME VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_TIME : TIME VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_TIME : TIME VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_TIME : TIME VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_DATE : DATE VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_TOD : TOD VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_TO_DT : DT VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_DATE : DATE VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_TOD : TOD VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_DT : DT VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_DATE : DATE VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_TOD : TOD VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_DT : DT VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_DATE : DATE VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_TOD : TOD VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_DT : DT VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_DATE : DATE VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_TOD : TOD VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_DT : DT VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_DATE : DATE VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_TOD : TOD VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION REAL_TO_DT : DT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_DATE : DATE VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_TOD : TOD VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_DT : DT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_DATE : DATE VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_TOD : TOD VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_DT : DT VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_DATE : DATE VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_TOD : TOD VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_DT : DT VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_DATE : DATE VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_TOD : TOD VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_DT : DT VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_DATE : DATE VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_TOD : TOD VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_DT : DT VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_DATE : DATE VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_TOD : TOD VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_DT : DT VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_DATE : DATE VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_TOD : TOD VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_DT : DT VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_DATE : DATE VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_TOD : TOD VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_DT : DT VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_DATE : DATE VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_TOD : TOD VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_DT : DT VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+
+
+
+FUNCTION TIME_TO_REAL : REAL VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION TIME_TO_LREAL : LREAL VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION TIME_TO_SINT : SINT VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION TIME_TO_INT : INT VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION TIME_TO_DINT : DINT VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION TIME_TO_LINT : LINT VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION TIME_TO_USINT : USINT VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION TIME_TO_UINT : UINT VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION TIME_TO_UDINT : UDINT VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION TIME_TO_ULINT : ULINT VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION TIME_TO_BYTE : BYTE VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION TIME_TO_WORD : WORD VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION TIME_TO_DWORD : DWORD VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION TIME_TO_LWORD : LWORD VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION TIME_TO_BOOL : BOOL VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION DATE_TO_REAL : REAL VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION DATE_TO_LREAL : LREAL VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION DATE_TO_SINT : SINT VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION DATE_TO_INT : INT VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION DATE_TO_DINT : DINT VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION DATE_TO_LINT : LINT VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION DATE_TO_USINT : USINT VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION DATE_TO_UINT : UINT VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION DATE_TO_UDINT : UDINT VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION DATE_TO_ULINT : ULINT VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_REAL : REAL VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_LREAL : LREAL VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_SINT : SINT VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_INT : INT VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_DINT : DINT VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_LINT : LINT VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_USINT : USINT VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_UINT : UINT VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_UDINT : UDINT VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_ULINT : ULINT VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_REAL : REAL VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_LREAL : LREAL VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_SINT : SINT VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_INT : INT VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_DINT : DINT VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_LINT : LINT VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_USINT : USINT VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_UINT : UINT VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_UDINT : UDINT VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_ULINT : ULINT VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DATE_TO_BYTE : BYTE VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION DATE_TO_WORD : WORD VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION DATE_TO_DWORD : DWORD VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION DATE_TO_LWORD : LWORD VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION DATE_TO_BOOL : BOOL VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_BYTE : BYTE VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_WORD : WORD VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_DWORD : DWORD VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_LWORD : LWORD VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_BOOL : BOOL VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_BYTE : BYTE VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_WORD : WORD VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_DWORD : DWORD VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_LWORD : LWORD VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_BOOL : BOOL VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+
+
+
+
+
+FUNCTION DT_TO_DATE : DATE VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_DT : DT VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_TOD : TOD VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+
+FUNCTION DATE_TO_DATE : DATE VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+
+
+
+
+
+FUNCTION TOD_TO_TOD : TOD VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION TIME_TO_TIME : TIME VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+
+
+
+FUNCTION BYTE_TO_STRING : STRING VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_TO_STRING : STRING VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_TO_STRING : STRING VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_TO_STRING : STRING VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION BOOL_TO_STRING : STRING VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+
+
+
+FUNCTION REAL_TO_STRING : STRING VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LREAL_TO_STRING : STRING VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SINT_TO_STRING : STRING VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION INT_TO_STRING : STRING VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION DINT_TO_STRING : STRING VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LINT_TO_STRING : STRING VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_STRING : STRING VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_STRING : STRING VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_STRING : STRING VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_STRING : STRING VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+
+
+FUNCTION DATE_TO_STRING : STRING VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION TOD_TO_STRING : STRING VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION DT_TO_STRING : STRING VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+
+
+
+FUNCTION TIME_TO_STRING : STRING VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+
+
+
+FUNCTION STRING_TO_BYTE : BYTE VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION STRING_TO_WORD : WORD VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION STRING_TO_DWORD : DWORD VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION STRING_TO_LWORD : LWORD VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION STRING_TO_BOOL : BOOL VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+
+
+
+FUNCTION STRING_TO_REAL : REAL VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION STRING_TO_LREAL : LREAL VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION STRING_TO_SINT : SINT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION STRING_TO_INT : INT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION STRING_TO_DINT : DINT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION STRING_TO_LINT : LINT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION STRING_TO_USINT : USINT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION STRING_TO_UINT : UINT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION STRING_TO_UDINT : UDINT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION STRING_TO_ULINT : ULINT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+
+
+
+FUNCTION STRING_TO_DATE : DATE VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION STRING_TO_TOD : TOD VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION STRING_TO_DT : DT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+
+
+
+FUNCTION STRING_TO_TIME : TIME VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : SINT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : INT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : DINT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : LINT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : USINT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : UINT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : UDINT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : ULINT VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : SINT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : INT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : DINT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : LINT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : USINT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : UINT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : UDINT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TRUNC : ULINT VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+
+
+
+
+
+
+
+FUNCTION USINT_TO_BCD_BYTE : BYTE VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_BCD_WORD : WORD VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_BCD_DWORD : DWORD VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION USINT_TO_BCD_LWORD : LWORD VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_BCD_BYTE : BYTE VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_BCD_WORD : WORD VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_BCD_DWORD : DWORD VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UINT_TO_BCD_LWORD : LWORD VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_BCD_BYTE : BYTE VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_BCD_WORD : WORD VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_BCD_DWORD : DWORD VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION UDINT_TO_BCD_LWORD : LWORD VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_BCD_BYTE : BYTE VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_BCD_WORD : WORD VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_BCD_DWORD : DWORD VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ULINT_TO_BCD_LWORD : LWORD VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+
+
+
+
+
+
+
+FUNCTION BYTE_BCD_TO_USINT : USINT VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_BCD_TO_UINT : UINT VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_BCD_TO_UDINT : UDINT VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION BYTE_BCD_TO_ULINT : ULINT VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_BCD_TO_USINT : USINT VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_BCD_TO_UINT : UINT VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_BCD_TO_UDINT : UDINT VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION WORD_BCD_TO_ULINT : ULINT VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_BCD_TO_USINT : USINT VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_BCD_TO_UINT : UINT VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_BCD_TO_UDINT : UDINT VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION DWORD_BCD_TO_ULINT : ULINT VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_BCD_TO_USINT : USINT VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_BCD_TO_UINT : UINT VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_BCD_TO_UDINT : UDINT VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LWORD_BCD_TO_ULINT : ULINT VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS_REAL : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS_LREAL : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS_SINT : SINT VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS : SINT VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS_INT : INT VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS : INT VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS_DINT : DINT VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS : DINT VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS_LINT : LINT VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS : LINT VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS_USINT : USINT VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS : USINT VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS_UINT : UINT VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS : UINT VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS_UDINT : UDINT VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS : UDINT VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS_ULINT : ULINT VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ABS : ULINT VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SQRT_REAL : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SQRT : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SQRT_LREAL : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SQRT : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LN_REAL : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LN : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LN_LREAL : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LN : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LOG_REAL : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LOG : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LOG_LREAL : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LOG : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION EXP_REAL : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION EXP : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION EXP_LREAL : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION EXP : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SIN_REAL : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SIN : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SIN_LREAL : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SIN : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION COS_REAL : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION COS : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION COS_LREAL : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION COS : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TAN_REAL : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TAN : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TAN_LREAL : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION TAN : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ASIN_REAL : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ASIN : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ASIN_LREAL : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ASIN : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ACOS_REAL : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ACOS : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ACOS_LREAL : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ACOS : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ATAN_REAL : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ATAN : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ATAN_LREAL : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ATAN : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD_REAL : REAL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD : REAL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD_LREAL : LREAL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD : LREAL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD_SINT : SINT VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD : SINT VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD_INT : INT VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD : INT VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD_DINT : DINT VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD : DINT VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD_LINT : LINT VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD : LINT VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD_USINT : USINT VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD : USINT VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD_UINT : UINT VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD : UINT VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD_UDINT : UDINT VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD : UDINT VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD_ULINT : ULINT VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD : ULINT VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+
+
+
+
+
+
+FUNCTION MUL_REAL : REAL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : REAL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL_LREAL : LREAL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : LREAL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL_SINT : SINT VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : SINT VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL_INT : INT VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : INT VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL_DINT : DINT VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : DINT VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL_LINT : LINT VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : LINT VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL_USINT : USINT VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : USINT VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL_UINT : UINT VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : UINT VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL_UDINT : UDINT VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : UDINT VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL_ULINT : ULINT VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : ULINT VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+
+
+
+
+
+
+FUNCTION SUB_REAL : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB_LREAL : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB_SINT : SINT VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB : SINT VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB_INT : INT VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB : INT VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB_DINT : DINT VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB : DINT VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB_LINT : LINT VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB : LINT VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB_USINT : USINT VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB : USINT VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB_UINT : UINT VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB : UINT VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB_UDINT : UDINT VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB : UDINT VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB_ULINT : ULINT VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB : ULINT VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV_REAL : REAL VAR_INPUT IN1 : REAL; IN2 : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : REAL VAR_INPUT IN1 : REAL; IN2 : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV_LREAL : LREAL VAR_INPUT IN1 : LREAL; IN2 : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : LREAL VAR_INPUT IN1 : LREAL; IN2 : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV_SINT : SINT VAR_INPUT IN1 : SINT; IN2 : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : SINT VAR_INPUT IN1 : SINT; IN2 : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV_INT : INT VAR_INPUT IN1 : INT; IN2 : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : INT VAR_INPUT IN1 : INT; IN2 : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV_DINT : DINT VAR_INPUT IN1 : DINT; IN2 : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : DINT VAR_INPUT IN1 : DINT; IN2 : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV_LINT : LINT VAR_INPUT IN1 : LINT; IN2 : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : LINT VAR_INPUT IN1 : LINT; IN2 : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV_USINT : USINT VAR_INPUT IN1 : USINT; IN2 : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : USINT VAR_INPUT IN1 : USINT; IN2 : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV_UINT : UINT VAR_INPUT IN1 : UINT; IN2 : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : UINT VAR_INPUT IN1 : UINT; IN2 : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV_UDINT : UDINT VAR_INPUT IN1 : UDINT; IN2 : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : UDINT VAR_INPUT IN1 : UDINT; IN2 : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV_ULINT : ULINT VAR_INPUT IN1 : ULINT; IN2 : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : ULINT VAR_INPUT IN1 : ULINT; IN2 : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD_SINT : SINT VAR_INPUT IN1 : SINT; IN2 : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD : SINT VAR_INPUT IN1 : SINT; IN2 : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD_INT : INT VAR_INPUT IN1 : INT; IN2 : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD : INT VAR_INPUT IN1 : INT; IN2 : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD_DINT : DINT VAR_INPUT IN1 : DINT; IN2 : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD : DINT VAR_INPUT IN1 : DINT; IN2 : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD_LINT : LINT VAR_INPUT IN1 : LINT; IN2 : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD : LINT VAR_INPUT IN1 : LINT; IN2 : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD_USINT : USINT VAR_INPUT IN1 : USINT; IN2 : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD : USINT VAR_INPUT IN1 : USINT; IN2 : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD_UINT : UINT VAR_INPUT IN1 : UINT; IN2 : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD : UINT VAR_INPUT IN1 : UINT; IN2 : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD_UDINT : UDINT VAR_INPUT IN1 : UDINT; IN2 : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD : UDINT VAR_INPUT IN1 : UDINT; IN2 : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD_ULINT : ULINT VAR_INPUT IN1 : ULINT; IN2 : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOD : ULINT VAR_INPUT IN1 : ULINT; IN2 : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : REAL VAR_INPUT IN1 : REAL; IN2 : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : LREAL VAR_INPUT IN1 : LREAL; IN2 : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : REAL VAR_INPUT IN1 : REAL; IN2 : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : LREAL VAR_INPUT IN1 : LREAL; IN2 : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : REAL VAR_INPUT IN1 : REAL; IN2 : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : LREAL VAR_INPUT IN1 : LREAL; IN2 : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : REAL VAR_INPUT IN1 : REAL; IN2 : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : LREAL VAR_INPUT IN1 : LREAL; IN2 : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : REAL VAR_INPUT IN1 : REAL; IN2 : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : LREAL VAR_INPUT IN1 : LREAL; IN2 : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : REAL VAR_INPUT IN1 : REAL; IN2 : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : LREAL VAR_INPUT IN1 : LREAL; IN2 : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : REAL VAR_INPUT IN1 : REAL; IN2 : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : LREAL VAR_INPUT IN1 : LREAL; IN2 : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : REAL VAR_INPUT IN1 : REAL; IN2 : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : LREAL VAR_INPUT IN1 : LREAL; IN2 : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : REAL VAR_INPUT IN1 : REAL; IN2 : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : LREAL VAR_INPUT IN1 : LREAL; IN2 : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : REAL VAR_INPUT IN1 : REAL; IN2 : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EXPT : LREAL VAR_INPUT IN1 : LREAL; IN2 : ULINT; END_VAR RETURN; END_FUNCTION
+
+
+
+
+
+
+
+FUNCTION MOVE_REAL : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : REAL VAR_INPUT IN : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_LREAL : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : LREAL VAR_INPUT IN : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_SINT : SINT VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : SINT VAR_INPUT IN : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_INT : INT VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : INT VAR_INPUT IN : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_DINT : DINT VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : DINT VAR_INPUT IN : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_LINT : LINT VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : LINT VAR_INPUT IN : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_USINT : USINT VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : USINT VAR_INPUT IN : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_UINT : UINT VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : UINT VAR_INPUT IN : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_UDINT : UDINT VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : UDINT VAR_INPUT IN : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_ULINT : ULINT VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : ULINT VAR_INPUT IN : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_TIME : TIME VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : TIME VAR_INPUT IN : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_BYTE : BYTE VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : BYTE VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_WORD : WORD VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : WORD VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_DWORD : DWORD VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : DWORD VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_LWORD : LWORD VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : LWORD VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_BOOL : BOOL VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : BOOL VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_STRING : STRING VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : STRING VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_DATE : DATE VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : DATE VAR_INPUT IN : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_TOD : TOD VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : TOD VAR_INPUT IN : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE_DT : DT VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MOVE : DT VAR_INPUT IN : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BYTE VAR_INPUT IN : BYTE; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : WORD VAR_INPUT IN : WORD; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : DWORD VAR_INPUT IN : DWORD; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : LWORD VAR_INPUT IN : LWORD; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BOOL VAR_INPUT IN : BOOL; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BYTE VAR_INPUT IN : BYTE; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : WORD VAR_INPUT IN : WORD; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : DWORD VAR_INPUT IN : DWORD; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : LWORD VAR_INPUT IN : LWORD; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BOOL VAR_INPUT IN : BOOL; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BYTE VAR_INPUT IN : BYTE; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : WORD VAR_INPUT IN : WORD; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : DWORD VAR_INPUT IN : DWORD; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : LWORD VAR_INPUT IN : LWORD; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BOOL VAR_INPUT IN : BOOL; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BYTE VAR_INPUT IN : BYTE; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : WORD VAR_INPUT IN : WORD; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : DWORD VAR_INPUT IN : DWORD; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : LWORD VAR_INPUT IN : LWORD; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BOOL VAR_INPUT IN : BOOL; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BYTE VAR_INPUT IN : BYTE; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : WORD VAR_INPUT IN : WORD; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : DWORD VAR_INPUT IN : DWORD; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : LWORD VAR_INPUT IN : LWORD; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BOOL VAR_INPUT IN : BOOL; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BYTE VAR_INPUT IN : BYTE; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : WORD VAR_INPUT IN : WORD; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : DWORD VAR_INPUT IN : DWORD; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : LWORD VAR_INPUT IN : LWORD; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BOOL VAR_INPUT IN : BOOL; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BYTE VAR_INPUT IN : BYTE; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : WORD VAR_INPUT IN : WORD; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : DWORD VAR_INPUT IN : DWORD; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : LWORD VAR_INPUT IN : LWORD; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BOOL VAR_INPUT IN : BOOL; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BYTE VAR_INPUT IN : BYTE; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : WORD VAR_INPUT IN : WORD; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : DWORD VAR_INPUT IN : DWORD; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : LWORD VAR_INPUT IN : LWORD; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHL : BOOL VAR_INPUT IN : BOOL; N : ULINT; END_VAR RETURN; END_FUNCTION
+
+
+
+
+
+
+FUNCTION SHR : BYTE VAR_INPUT IN : BYTE; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : WORD VAR_INPUT IN : WORD; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : DWORD VAR_INPUT IN : DWORD; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : LWORD VAR_INPUT IN : LWORD; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : BOOL VAR_INPUT IN : BOOL; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : BYTE VAR_INPUT IN : BYTE; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : WORD VAR_INPUT IN : WORD; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : DWORD VAR_INPUT IN : DWORD; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : LWORD VAR_INPUT IN : LWORD; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : BOOL VAR_INPUT IN : BOOL; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : BYTE VAR_INPUT IN : BYTE; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : WORD VAR_INPUT IN : WORD; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : DWORD VAR_INPUT IN : DWORD; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : LWORD VAR_INPUT IN : LWORD; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : BOOL VAR_INPUT IN : BOOL; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : BYTE VAR_INPUT IN : BYTE; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : WORD VAR_INPUT IN : WORD; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : DWORD VAR_INPUT IN : DWORD; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : LWORD VAR_INPUT IN : LWORD; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : BOOL VAR_INPUT IN : BOOL; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : BYTE VAR_INPUT IN : BYTE; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : WORD VAR_INPUT IN : WORD; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : DWORD VAR_INPUT IN : DWORD; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : LWORD VAR_INPUT IN : LWORD; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : BOOL VAR_INPUT IN : BOOL; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : BYTE VAR_INPUT IN : BYTE; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : WORD VAR_INPUT IN : WORD; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : DWORD VAR_INPUT IN : DWORD; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : LWORD VAR_INPUT IN : LWORD; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : BOOL VAR_INPUT IN : BOOL; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : BYTE VAR_INPUT IN : BYTE; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : WORD VAR_INPUT IN : WORD; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : DWORD VAR_INPUT IN : DWORD; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : LWORD VAR_INPUT IN : LWORD; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : BOOL VAR_INPUT IN : BOOL; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : BYTE VAR_INPUT IN : BYTE; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : WORD VAR_INPUT IN : WORD; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : DWORD VAR_INPUT IN : DWORD; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : LWORD VAR_INPUT IN : LWORD; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SHR : BOOL VAR_INPUT IN : BOOL; N : ULINT; END_VAR RETURN; END_FUNCTION
+
+
+
+
+
+
+FUNCTION ROR : BYTE VAR_INPUT IN : BYTE; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : WORD VAR_INPUT IN : WORD; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : DWORD VAR_INPUT IN : DWORD; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : LWORD VAR_INPUT IN : LWORD; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : BOOL VAR_INPUT IN : BOOL; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : BYTE VAR_INPUT IN : BYTE; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : WORD VAR_INPUT IN : WORD; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : DWORD VAR_INPUT IN : DWORD; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : LWORD VAR_INPUT IN : LWORD; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : BOOL VAR_INPUT IN : BOOL; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : BYTE VAR_INPUT IN : BYTE; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : WORD VAR_INPUT IN : WORD; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : DWORD VAR_INPUT IN : DWORD; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : LWORD VAR_INPUT IN : LWORD; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : BOOL VAR_INPUT IN : BOOL; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : BYTE VAR_INPUT IN : BYTE; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : WORD VAR_INPUT IN : WORD; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : DWORD VAR_INPUT IN : DWORD; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : LWORD VAR_INPUT IN : LWORD; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : BOOL VAR_INPUT IN : BOOL; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : BYTE VAR_INPUT IN : BYTE; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : WORD VAR_INPUT IN : WORD; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : DWORD VAR_INPUT IN : DWORD; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : LWORD VAR_INPUT IN : LWORD; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : BOOL VAR_INPUT IN : BOOL; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : BYTE VAR_INPUT IN : BYTE; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : WORD VAR_INPUT IN : WORD; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : DWORD VAR_INPUT IN : DWORD; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : LWORD VAR_INPUT IN : LWORD; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : BOOL VAR_INPUT IN : BOOL; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : BYTE VAR_INPUT IN : BYTE; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : WORD VAR_INPUT IN : WORD; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : DWORD VAR_INPUT IN : DWORD; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : LWORD VAR_INPUT IN : LWORD; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : BOOL VAR_INPUT IN : BOOL; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : BYTE VAR_INPUT IN : BYTE; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : WORD VAR_INPUT IN : WORD; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : DWORD VAR_INPUT IN : DWORD; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : LWORD VAR_INPUT IN : LWORD; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROR : BOOL VAR_INPUT IN : BOOL; N : ULINT; END_VAR RETURN; END_FUNCTION
+
+
+
+
+
+
+FUNCTION ROL : BYTE VAR_INPUT IN : BYTE; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : WORD VAR_INPUT IN : WORD; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : DWORD VAR_INPUT IN : DWORD; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : LWORD VAR_INPUT IN : LWORD; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : BOOL VAR_INPUT IN : BOOL; N : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : BYTE VAR_INPUT IN : BYTE; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : WORD VAR_INPUT IN : WORD; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : DWORD VAR_INPUT IN : DWORD; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : LWORD VAR_INPUT IN : LWORD; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : BOOL VAR_INPUT IN : BOOL; N : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : BYTE VAR_INPUT IN : BYTE; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : WORD VAR_INPUT IN : WORD; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : DWORD VAR_INPUT IN : DWORD; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : LWORD VAR_INPUT IN : LWORD; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : BOOL VAR_INPUT IN : BOOL; N : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : BYTE VAR_INPUT IN : BYTE; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : WORD VAR_INPUT IN : WORD; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : DWORD VAR_INPUT IN : DWORD; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : LWORD VAR_INPUT IN : LWORD; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : BOOL VAR_INPUT IN : BOOL; N : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : BYTE VAR_INPUT IN : BYTE; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : WORD VAR_INPUT IN : WORD; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : DWORD VAR_INPUT IN : DWORD; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : LWORD VAR_INPUT IN : LWORD; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : BOOL VAR_INPUT IN : BOOL; N : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : BYTE VAR_INPUT IN : BYTE; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : WORD VAR_INPUT IN : WORD; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : DWORD VAR_INPUT IN : DWORD; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : LWORD VAR_INPUT IN : LWORD; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : BOOL VAR_INPUT IN : BOOL; N : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : BYTE VAR_INPUT IN : BYTE; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : WORD VAR_INPUT IN : WORD; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : DWORD VAR_INPUT IN : DWORD; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : LWORD VAR_INPUT IN : LWORD; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : BOOL VAR_INPUT IN : BOOL; N : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : BYTE VAR_INPUT IN : BYTE; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : WORD VAR_INPUT IN : WORD; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : DWORD VAR_INPUT IN : DWORD; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : LWORD VAR_INPUT IN : LWORD; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION ROL : BOOL VAR_INPUT IN : BOOL; N : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION AND : BYTE VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION AND_BYTE : BYTE VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION AND : WORD VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION AND_WORD : WORD VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION AND : DWORD VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION AND_DWORD : DWORD VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION AND : LWORD VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION AND_LWORD : LWORD VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION AND : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION AND_BOOL : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION OR : BYTE VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION OR_BYTE : BYTE VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION OR : WORD VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION OR_WORD : WORD VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION OR : DWORD VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION OR_DWORD : DWORD VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION OR : LWORD VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION OR_LWORD : LWORD VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION OR : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION OR_BOOL : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION XOR : BYTE VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION XOR_BYTE : BYTE VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION XOR : WORD VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION XOR_WORD : WORD VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION XOR : DWORD VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION XOR_DWORD : DWORD VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION XOR : LWORD VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION XOR_LWORD : LWORD VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION XOR : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION XOR_BOOL : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION NOT : BYTE VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION NOT_BYTE : BYTE VAR_INPUT IN : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION NOT : WORD VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION NOT_WORD : WORD VAR_INPUT IN : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION NOT : DWORD VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION NOT_DWORD : DWORD VAR_INPUT IN : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION NOT : LWORD VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION NOT_LWORD : LWORD VAR_INPUT IN : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION NOT : BOOL VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION NOT_BOOL : BOOL VAR_INPUT IN : BOOL; END_VAR RETURN; END_FUNCTION
+
+FUNCTION SEL : REAL VAR_INPUT G : BOOL; IN0 : REAL; IN1 : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_REAL : REAL VAR_INPUT G : BOOL; IN0 : REAL; IN1 : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : LREAL VAR_INPUT G : BOOL; IN0 : LREAL; IN1 : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_LREAL : LREAL VAR_INPUT G : BOOL; IN0 : LREAL; IN1 : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : SINT VAR_INPUT G : BOOL; IN0 : SINT; IN1 : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_SINT : SINT VAR_INPUT G : BOOL; IN0 : SINT; IN1 : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : INT VAR_INPUT G : BOOL; IN0 : INT; IN1 : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_INT : INT VAR_INPUT G : BOOL; IN0 : INT; IN1 : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : DINT VAR_INPUT G : BOOL; IN0 : DINT; IN1 : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_DINT : DINT VAR_INPUT G : BOOL; IN0 : DINT; IN1 : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : LINT VAR_INPUT G : BOOL; IN0 : LINT; IN1 : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_LINT : LINT VAR_INPUT G : BOOL; IN0 : LINT; IN1 : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : USINT VAR_INPUT G : BOOL; IN0 : USINT; IN1 : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_USINT : USINT VAR_INPUT G : BOOL; IN0 : USINT; IN1 : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : UINT VAR_INPUT G : BOOL; IN0 : UINT; IN1 : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_UINT : UINT VAR_INPUT G : BOOL; IN0 : UINT; IN1 : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : UDINT VAR_INPUT G : BOOL; IN0 : UDINT; IN1 : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_UDINT : UDINT VAR_INPUT G : BOOL; IN0 : UDINT; IN1 : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : ULINT VAR_INPUT G : BOOL; IN0 : ULINT; IN1 : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_ULINT : ULINT VAR_INPUT G : BOOL; IN0 : ULINT; IN1 : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : TIME VAR_INPUT G : BOOL; IN0 : TIME; IN1 : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_TIME : TIME VAR_INPUT G : BOOL; IN0 : TIME; IN1 : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : BYTE VAR_INPUT G : BOOL; IN0 : BYTE; IN1 : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_BYTE : BYTE VAR_INPUT G : BOOL; IN0 : BYTE; IN1 : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : WORD VAR_INPUT G : BOOL; IN0 : WORD; IN1 : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_WORD : WORD VAR_INPUT G : BOOL; IN0 : WORD; IN1 : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : DWORD VAR_INPUT G : BOOL; IN0 : DWORD; IN1 : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_DWORD : DWORD VAR_INPUT G : BOOL; IN0 : DWORD; IN1 : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : LWORD VAR_INPUT G : BOOL; IN0 : LWORD; IN1 : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_LWORD : LWORD VAR_INPUT G : BOOL; IN0 : LWORD; IN1 : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : BOOL VAR_INPUT G : BOOL; IN0 : BOOL; IN1 : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_BOOL : BOOL VAR_INPUT G : BOOL; IN0 : BOOL; IN1 : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : STRING VAR_INPUT G : BOOL; IN0 : STRING; IN1 : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_STRING : STRING VAR_INPUT G : BOOL; IN0 : STRING; IN1 : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : DATE VAR_INPUT G : BOOL; IN0 : DATE; IN1 : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_DATE : DATE VAR_INPUT G : BOOL; IN0 : DATE; IN1 : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : TOD VAR_INPUT G : BOOL; IN0 : TOD; IN1 : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_TOD : TOD VAR_INPUT G : BOOL; IN0 : TOD; IN1 : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL : DT VAR_INPUT G : BOOL; IN0 : DT; IN1 : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION SEL_DT : DT VAR_INPUT G : BOOL; IN0 : DT; IN1 : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : REAL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_REAL : REAL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : LREAL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_LREAL : LREAL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : SINT VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_SINT : SINT VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : INT VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_INT : INT VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : DINT VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_DINT : DINT VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : LINT VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_LINT : LINT VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : USINT VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_USINT : USINT VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : UINT VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_UINT : UINT VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : UDINT VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_UDINT : UDINT VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : ULINT VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_ULINT : ULINT VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : TIME VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_TIME : TIME VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : BYTE VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_BYTE : BYTE VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : WORD VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_WORD : WORD VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : DWORD VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_DWORD : DWORD VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : LWORD VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_LWORD : LWORD VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_BOOL : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : STRING VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_STRING : STRING VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : DATE VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_DATE : DATE VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : TOD VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_TOD : TOD VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX : DT VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MAX_DT : DT VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : REAL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_REAL : REAL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : LREAL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_LREAL : LREAL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : SINT VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_SINT : SINT VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : INT VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_INT : INT VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : DINT VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_DINT : DINT VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : LINT VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_LINT : LINT VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : USINT VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_USINT : USINT VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : UINT VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_UINT : UINT VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : UDINT VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_UDINT : UDINT VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : ULINT VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_ULINT : ULINT VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : TIME VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_TIME : TIME VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : BYTE VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_BYTE : BYTE VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : WORD VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_WORD : WORD VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : DWORD VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_DWORD : DWORD VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : LWORD VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_LWORD : LWORD VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_BOOL : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : STRING VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_STRING : STRING VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : DATE VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_DATE : DATE VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : TOD VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_TOD : TOD VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN : DT VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MIN_DT : DT VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : REAL VAR_INPUT MN : REAL; IN : REAL; MX : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_REAL : REAL VAR_INPUT MN : REAL; IN : REAL; MX : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : LREAL VAR_INPUT MN : LREAL; IN : LREAL; MX : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_LREAL : LREAL VAR_INPUT MN : LREAL; IN : LREAL; MX : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : SINT VAR_INPUT MN : SINT; IN : SINT; MX : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_SINT : SINT VAR_INPUT MN : SINT; IN : SINT; MX : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : INT VAR_INPUT MN : INT; IN : INT; MX : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_INT : INT VAR_INPUT MN : INT; IN : INT; MX : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : DINT VAR_INPUT MN : DINT; IN : DINT; MX : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_DINT : DINT VAR_INPUT MN : DINT; IN : DINT; MX : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : LINT VAR_INPUT MN : LINT; IN : LINT; MX : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_LINT : LINT VAR_INPUT MN : LINT; IN : LINT; MX : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : USINT VAR_INPUT MN : USINT; IN : USINT; MX : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_USINT : USINT VAR_INPUT MN : USINT; IN : USINT; MX : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : UINT VAR_INPUT MN : UINT; IN : UINT; MX : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_UINT : UINT VAR_INPUT MN : UINT; IN : UINT; MX : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : UDINT VAR_INPUT MN : UDINT; IN : UDINT; MX : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_UDINT : UDINT VAR_INPUT MN : UDINT; IN : UDINT; MX : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : ULINT VAR_INPUT MN : ULINT; IN : ULINT; MX : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_ULINT : ULINT VAR_INPUT MN : ULINT; IN : ULINT; MX : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : TIME VAR_INPUT MN : TIME; IN : TIME; MX : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_TIME : TIME VAR_INPUT MN : TIME; IN : TIME; MX : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : BYTE VAR_INPUT MN : BYTE; IN : BYTE; MX : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_BYTE : BYTE VAR_INPUT MN : BYTE; IN : BYTE; MX : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : WORD VAR_INPUT MN : WORD; IN : WORD; MX : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_WORD : WORD VAR_INPUT MN : WORD; IN : WORD; MX : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : DWORD VAR_INPUT MN : DWORD; IN : DWORD; MX : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_DWORD : DWORD VAR_INPUT MN : DWORD; IN : DWORD; MX : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : LWORD VAR_INPUT MN : LWORD; IN : LWORD; MX : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_LWORD : LWORD VAR_INPUT MN : LWORD; IN : LWORD; MX : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : BOOL VAR_INPUT MN : BOOL; IN : BOOL; MX : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_BOOL : BOOL VAR_INPUT MN : BOOL; IN : BOOL; MX : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : STRING VAR_INPUT MN : STRING; IN : STRING; MX : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_STRING : STRING VAR_INPUT MN : STRING; IN : STRING; MX : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : DATE VAR_INPUT MN : DATE; IN : DATE; MX : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_DATE : DATE VAR_INPUT MN : DATE; IN : DATE; MX : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : TOD VAR_INPUT MN : TOD; IN : TOD; MX : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_TOD : TOD VAR_INPUT MN : TOD; IN : TOD; MX : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT : DT VAR_INPUT MN : DT; IN : DT; MX : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION LIMIT_DT : DT VAR_INPUT MN : DT; IN : DT; MX : DT; END_VAR RETURN; END_FUNCTION
+
+FUNCTION MUX : REAL VAR_INPUT K : SINT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_REAL : REAL VAR_INPUT K : SINT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : REAL VAR_INPUT K : INT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_REAL : REAL VAR_INPUT K : INT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : REAL VAR_INPUT K : DINT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_REAL : REAL VAR_INPUT K : DINT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : REAL VAR_INPUT K : LINT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_REAL : REAL VAR_INPUT K : LINT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : REAL VAR_INPUT K : USINT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_REAL : REAL VAR_INPUT K : USINT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : REAL VAR_INPUT K : UINT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_REAL : REAL VAR_INPUT K : UINT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : REAL VAR_INPUT K : UDINT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_REAL : REAL VAR_INPUT K : UDINT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : REAL VAR_INPUT K : ULINT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_REAL : REAL VAR_INPUT K : ULINT; IN 0 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LREAL VAR_INPUT K : SINT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_LREAL : LREAL VAR_INPUT K : SINT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LREAL VAR_INPUT K : INT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_LREAL : LREAL VAR_INPUT K : INT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LREAL VAR_INPUT K : DINT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_LREAL : LREAL VAR_INPUT K : DINT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LREAL VAR_INPUT K : LINT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_LREAL : LREAL VAR_INPUT K : LINT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LREAL VAR_INPUT K : USINT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_LREAL : LREAL VAR_INPUT K : USINT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LREAL VAR_INPUT K : UINT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_LREAL : LREAL VAR_INPUT K : UINT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LREAL VAR_INPUT K : UDINT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_LREAL : LREAL VAR_INPUT K : UDINT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LREAL VAR_INPUT K : ULINT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_LREAL : LREAL VAR_INPUT K : ULINT; IN 0 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : SINT VAR_INPUT K : SINT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_SINT : SINT VAR_INPUT K : SINT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : SINT VAR_INPUT K : INT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_SINT : SINT VAR_INPUT K : INT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : SINT VAR_INPUT K : DINT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_SINT : SINT VAR_INPUT K : DINT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : SINT VAR_INPUT K : LINT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_SINT : SINT VAR_INPUT K : LINT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : SINT VAR_INPUT K : USINT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_SINT : SINT VAR_INPUT K : USINT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : SINT VAR_INPUT K : UINT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_SINT : SINT VAR_INPUT K : UINT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : SINT VAR_INPUT K : UDINT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_SINT : SINT VAR_INPUT K : UDINT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : SINT VAR_INPUT K : ULINT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_SINT : SINT VAR_INPUT K : ULINT; IN 0 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : INT VAR_INPUT K : SINT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_INT : INT VAR_INPUT K : SINT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : INT VAR_INPUT K : INT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_INT : INT VAR_INPUT K : INT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : INT VAR_INPUT K : DINT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_INT : INT VAR_INPUT K : DINT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : INT VAR_INPUT K : LINT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_INT : INT VAR_INPUT K : LINT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : INT VAR_INPUT K : USINT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_INT : INT VAR_INPUT K : USINT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : INT VAR_INPUT K : UINT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_INT : INT VAR_INPUT K : UINT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : INT VAR_INPUT K : UDINT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_INT : INT VAR_INPUT K : UDINT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : INT VAR_INPUT K : ULINT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_INT : INT VAR_INPUT K : ULINT; IN 0 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DINT VAR_INPUT K : SINT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_DINT : DINT VAR_INPUT K : SINT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DINT VAR_INPUT K : INT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_DINT : DINT VAR_INPUT K : INT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DINT VAR_INPUT K : DINT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_DINT : DINT VAR_INPUT K : DINT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DINT VAR_INPUT K : LINT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_DINT : DINT VAR_INPUT K : LINT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DINT VAR_INPUT K : USINT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_DINT : DINT VAR_INPUT K : USINT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DINT VAR_INPUT K : UINT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_DINT : DINT VAR_INPUT K : UINT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DINT VAR_INPUT K : UDINT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_DINT : DINT VAR_INPUT K : UDINT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DINT VAR_INPUT K : ULINT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_DINT : DINT VAR_INPUT K : ULINT; IN 0 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LINT VAR_INPUT K : SINT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_LINT : LINT VAR_INPUT K : SINT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LINT VAR_INPUT K : INT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_LINT : LINT VAR_INPUT K : INT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LINT VAR_INPUT K : DINT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_LINT : LINT VAR_INPUT K : DINT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LINT VAR_INPUT K : LINT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_LINT : LINT VAR_INPUT K : LINT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LINT VAR_INPUT K : USINT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_LINT : LINT VAR_INPUT K : USINT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LINT VAR_INPUT K : UINT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_LINT : LINT VAR_INPUT K : UINT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LINT VAR_INPUT K : UDINT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_LINT : LINT VAR_INPUT K : UDINT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LINT VAR_INPUT K : ULINT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_LINT : LINT VAR_INPUT K : ULINT; IN 0 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : USINT VAR_INPUT K : SINT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_USINT : USINT VAR_INPUT K : SINT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : USINT VAR_INPUT K : INT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_USINT : USINT VAR_INPUT K : INT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : USINT VAR_INPUT K : DINT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_USINT : USINT VAR_INPUT K : DINT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : USINT VAR_INPUT K : LINT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_USINT : USINT VAR_INPUT K : LINT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : USINT VAR_INPUT K : USINT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_USINT : USINT VAR_INPUT K : USINT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : USINT VAR_INPUT K : UINT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_USINT : USINT VAR_INPUT K : UINT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : USINT VAR_INPUT K : UDINT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_USINT : USINT VAR_INPUT K : UDINT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : USINT VAR_INPUT K : ULINT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_USINT : USINT VAR_INPUT K : ULINT; IN 0 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UINT VAR_INPUT K : SINT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_UINT : UINT VAR_INPUT K : SINT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UINT VAR_INPUT K : INT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_UINT : UINT VAR_INPUT K : INT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UINT VAR_INPUT K : DINT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_UINT : UINT VAR_INPUT K : DINT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UINT VAR_INPUT K : LINT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_UINT : UINT VAR_INPUT K : LINT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UINT VAR_INPUT K : USINT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_UINT : UINT VAR_INPUT K : USINT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UINT VAR_INPUT K : UINT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_UINT : UINT VAR_INPUT K : UINT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UINT VAR_INPUT K : UDINT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_UINT : UINT VAR_INPUT K : UDINT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UINT VAR_INPUT K : ULINT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_UINT : UINT VAR_INPUT K : ULINT; IN 0 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UDINT VAR_INPUT K : SINT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_UDINT : UDINT VAR_INPUT K : SINT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UDINT VAR_INPUT K : INT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_UDINT : UDINT VAR_INPUT K : INT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UDINT VAR_INPUT K : DINT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_UDINT : UDINT VAR_INPUT K : DINT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UDINT VAR_INPUT K : LINT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_UDINT : UDINT VAR_INPUT K : LINT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UDINT VAR_INPUT K : USINT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_UDINT : UDINT VAR_INPUT K : USINT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UDINT VAR_INPUT K : UINT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_UDINT : UDINT VAR_INPUT K : UINT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UDINT VAR_INPUT K : UDINT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_UDINT : UDINT VAR_INPUT K : UDINT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : UDINT VAR_INPUT K : ULINT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_UDINT : UDINT VAR_INPUT K : ULINT; IN 0 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : ULINT VAR_INPUT K : SINT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_ULINT : ULINT VAR_INPUT K : SINT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : ULINT VAR_INPUT K : INT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_ULINT : ULINT VAR_INPUT K : INT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : ULINT VAR_INPUT K : DINT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_ULINT : ULINT VAR_INPUT K : DINT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : ULINT VAR_INPUT K : LINT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_ULINT : ULINT VAR_INPUT K : LINT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : ULINT VAR_INPUT K : USINT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_ULINT : ULINT VAR_INPUT K : USINT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : ULINT VAR_INPUT K : UINT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_ULINT : ULINT VAR_INPUT K : UINT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : ULINT VAR_INPUT K : UDINT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_ULINT : ULINT VAR_INPUT K : UDINT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : ULINT VAR_INPUT K : ULINT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_ULINT : ULINT VAR_INPUT K : ULINT; IN 0 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TIME VAR_INPUT K : SINT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_TIME : TIME VAR_INPUT K : SINT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TIME VAR_INPUT K : INT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_TIME : TIME VAR_INPUT K : INT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TIME VAR_INPUT K : DINT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_TIME : TIME VAR_INPUT K : DINT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TIME VAR_INPUT K : LINT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_TIME : TIME VAR_INPUT K : LINT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TIME VAR_INPUT K : USINT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_TIME : TIME VAR_INPUT K : USINT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TIME VAR_INPUT K : UINT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_TIME : TIME VAR_INPUT K : UINT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TIME VAR_INPUT K : UDINT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_TIME : TIME VAR_INPUT K : UDINT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TIME VAR_INPUT K : ULINT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_TIME : TIME VAR_INPUT K : ULINT; IN 0 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BYTE VAR_INPUT K : SINT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_BYTE : BYTE VAR_INPUT K : SINT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BYTE VAR_INPUT K : INT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_BYTE : BYTE VAR_INPUT K : INT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BYTE VAR_INPUT K : DINT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_BYTE : BYTE VAR_INPUT K : DINT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BYTE VAR_INPUT K : LINT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_BYTE : BYTE VAR_INPUT K : LINT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BYTE VAR_INPUT K : USINT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_BYTE : BYTE VAR_INPUT K : USINT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BYTE VAR_INPUT K : UINT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_BYTE : BYTE VAR_INPUT K : UINT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BYTE VAR_INPUT K : UDINT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_BYTE : BYTE VAR_INPUT K : UDINT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BYTE VAR_INPUT K : ULINT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_BYTE : BYTE VAR_INPUT K : ULINT; IN 0 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : WORD VAR_INPUT K : SINT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_WORD : WORD VAR_INPUT K : SINT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : WORD VAR_INPUT K : INT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_WORD : WORD VAR_INPUT K : INT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : WORD VAR_INPUT K : DINT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_WORD : WORD VAR_INPUT K : DINT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : WORD VAR_INPUT K : LINT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_WORD : WORD VAR_INPUT K : LINT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : WORD VAR_INPUT K : USINT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_WORD : WORD VAR_INPUT K : USINT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : WORD VAR_INPUT K : UINT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_WORD : WORD VAR_INPUT K : UINT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : WORD VAR_INPUT K : UDINT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_WORD : WORD VAR_INPUT K : UDINT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : WORD VAR_INPUT K : ULINT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_WORD : WORD VAR_INPUT K : ULINT; IN 0 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DWORD VAR_INPUT K : SINT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_DWORD : DWORD VAR_INPUT K : SINT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DWORD VAR_INPUT K : INT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_DWORD : DWORD VAR_INPUT K : INT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DWORD VAR_INPUT K : DINT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_DWORD : DWORD VAR_INPUT K : DINT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DWORD VAR_INPUT K : LINT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_DWORD : DWORD VAR_INPUT K : LINT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DWORD VAR_INPUT K : USINT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_DWORD : DWORD VAR_INPUT K : USINT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DWORD VAR_INPUT K : UINT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_DWORD : DWORD VAR_INPUT K : UINT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DWORD VAR_INPUT K : UDINT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_DWORD : DWORD VAR_INPUT K : UDINT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DWORD VAR_INPUT K : ULINT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_DWORD : DWORD VAR_INPUT K : ULINT; IN 0 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LWORD VAR_INPUT K : SINT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_LWORD : LWORD VAR_INPUT K : SINT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LWORD VAR_INPUT K : INT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_LWORD : LWORD VAR_INPUT K : INT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LWORD VAR_INPUT K : DINT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_LWORD : LWORD VAR_INPUT K : DINT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LWORD VAR_INPUT K : LINT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_LWORD : LWORD VAR_INPUT K : LINT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LWORD VAR_INPUT K : USINT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_LWORD : LWORD VAR_INPUT K : USINT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LWORD VAR_INPUT K : UINT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_LWORD : LWORD VAR_INPUT K : UINT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LWORD VAR_INPUT K : UDINT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_LWORD : LWORD VAR_INPUT K : UDINT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : LWORD VAR_INPUT K : ULINT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_LWORD : LWORD VAR_INPUT K : ULINT; IN 0 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BOOL VAR_INPUT K : SINT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_BOOL : BOOL VAR_INPUT K : SINT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BOOL VAR_INPUT K : INT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_BOOL : BOOL VAR_INPUT K : INT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BOOL VAR_INPUT K : DINT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_BOOL : BOOL VAR_INPUT K : DINT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BOOL VAR_INPUT K : LINT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_BOOL : BOOL VAR_INPUT K : LINT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BOOL VAR_INPUT K : USINT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_BOOL : BOOL VAR_INPUT K : USINT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BOOL VAR_INPUT K : UINT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_BOOL : BOOL VAR_INPUT K : UINT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BOOL VAR_INPUT K : UDINT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_BOOL : BOOL VAR_INPUT K : UDINT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : BOOL VAR_INPUT K : ULINT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_BOOL : BOOL VAR_INPUT K : ULINT; IN 0 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : STRING VAR_INPUT K : SINT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_STRING : STRING VAR_INPUT K : SINT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : STRING VAR_INPUT K : INT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_STRING : STRING VAR_INPUT K : INT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : STRING VAR_INPUT K : DINT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_STRING : STRING VAR_INPUT K : DINT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : STRING VAR_INPUT K : LINT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_STRING : STRING VAR_INPUT K : LINT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : STRING VAR_INPUT K : USINT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_STRING : STRING VAR_INPUT K : USINT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : STRING VAR_INPUT K : UINT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_STRING : STRING VAR_INPUT K : UINT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : STRING VAR_INPUT K : UDINT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_STRING : STRING VAR_INPUT K : UDINT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : STRING VAR_INPUT K : ULINT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_STRING : STRING VAR_INPUT K : ULINT; IN 0 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DATE VAR_INPUT K : SINT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_DATE : DATE VAR_INPUT K : SINT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DATE VAR_INPUT K : INT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_DATE : DATE VAR_INPUT K : INT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DATE VAR_INPUT K : DINT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_DATE : DATE VAR_INPUT K : DINT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DATE VAR_INPUT K : LINT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_DATE : DATE VAR_INPUT K : LINT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DATE VAR_INPUT K : USINT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_DATE : DATE VAR_INPUT K : USINT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DATE VAR_INPUT K : UINT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_DATE : DATE VAR_INPUT K : UINT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DATE VAR_INPUT K : UDINT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_DATE : DATE VAR_INPUT K : UDINT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DATE VAR_INPUT K : ULINT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_DATE : DATE VAR_INPUT K : ULINT; IN 0 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TOD VAR_INPUT K : SINT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_TOD : TOD VAR_INPUT K : SINT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TOD VAR_INPUT K : INT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_TOD : TOD VAR_INPUT K : INT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TOD VAR_INPUT K : DINT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_TOD : TOD VAR_INPUT K : DINT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TOD VAR_INPUT K : LINT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_TOD : TOD VAR_INPUT K : LINT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TOD VAR_INPUT K : USINT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_TOD : TOD VAR_INPUT K : USINT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TOD VAR_INPUT K : UINT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_TOD : TOD VAR_INPUT K : UINT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TOD VAR_INPUT K : UDINT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_TOD : TOD VAR_INPUT K : UDINT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : TOD VAR_INPUT K : ULINT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_TOD : TOD VAR_INPUT K : ULINT; IN 0 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DT VAR_INPUT K : SINT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_SINT_DT : DT VAR_INPUT K : SINT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DT VAR_INPUT K : INT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_INT_DT : DT VAR_INPUT K : INT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DT VAR_INPUT K : DINT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_DINT_DT : DT VAR_INPUT K : DINT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DT VAR_INPUT K : LINT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_LINT_DT : DT VAR_INPUT K : LINT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DT VAR_INPUT K : USINT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_USINT_DT : DT VAR_INPUT K : USINT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DT VAR_INPUT K : UINT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UINT_DT : DT VAR_INPUT K : UINT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DT VAR_INPUT K : UDINT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_UDINT_DT : DT VAR_INPUT K : UDINT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX : DT VAR_INPUT K : ULINT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUX_ULINT_DT : DT VAR_INPUT K : ULINT; IN 0 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_REAL : BOOL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_LREAL : BOOL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_SINT : BOOL VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_INT : BOOL VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_DINT : BOOL VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_LINT : BOOL VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_USINT : BOOL VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_UINT : BOOL VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_UDINT : BOOL VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_ULINT : BOOL VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_TIME : BOOL VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_BYTE : BOOL VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_WORD : BOOL VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_DWORD : BOOL VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_LWORD : BOOL VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_BOOL : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_STRING : BOOL VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_DATE : BOOL VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_TOD : BOOL VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION GT : BOOL VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION GT_DT : BOOL VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_REAL : BOOL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_LREAL : BOOL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_SINT : BOOL VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_INT : BOOL VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_DINT : BOOL VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_LINT : BOOL VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_USINT : BOOL VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_UINT : BOOL VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_UDINT : BOOL VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_ULINT : BOOL VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_TIME : BOOL VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_BYTE : BOOL VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_WORD : BOOL VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_DWORD : BOOL VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_LWORD : BOOL VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_BOOL : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_STRING : BOOL VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_DATE : BOOL VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_TOD : BOOL VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION GE : BOOL VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION GE_DT : BOOL VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_REAL : BOOL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_LREAL : BOOL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_SINT : BOOL VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_INT : BOOL VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_DINT : BOOL VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_LINT : BOOL VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_USINT : BOOL VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_UINT : BOOL VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_UDINT : BOOL VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_ULINT : BOOL VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_TIME : BOOL VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_BYTE : BOOL VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_WORD : BOOL VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_DWORD : BOOL VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_LWORD : BOOL VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_BOOL : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_STRING : BOOL VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_DATE : BOOL VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_TOD : BOOL VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ : BOOL VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION EQ_DT : BOOL VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_REAL : BOOL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_LREAL : BOOL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_SINT : BOOL VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_INT : BOOL VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_DINT : BOOL VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_LINT : BOOL VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_USINT : BOOL VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_UINT : BOOL VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_UDINT : BOOL VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_ULINT : BOOL VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_TIME : BOOL VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_BYTE : BOOL VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_WORD : BOOL VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_DWORD : BOOL VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_LWORD : BOOL VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_BOOL : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_STRING : BOOL VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_DATE : BOOL VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_TOD : BOOL VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION LT : BOOL VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION LT_DT : BOOL VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_REAL : BOOL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_LREAL : BOOL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_SINT : BOOL VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_INT : BOOL VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_DINT : BOOL VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_LINT : BOOL VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_USINT : BOOL VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_UINT : BOOL VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_UDINT : BOOL VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_ULINT : BOOL VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_TIME : BOOL VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_BYTE : BOOL VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_WORD : BOOL VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_DWORD : BOOL VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_LWORD : BOOL VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_BOOL : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_STRING : BOOL VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_DATE : BOOL VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_TOD : BOOL VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION LE : BOOL VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION LE_DT : BOOL VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_REAL : BOOL VAR_INPUT IN 1 .. : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_LREAL : BOOL VAR_INPUT IN 1 .. : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_SINT : BOOL VAR_INPUT IN 1 .. : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_INT : BOOL VAR_INPUT IN 1 .. : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_DINT : BOOL VAR_INPUT IN 1 .. : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_LINT : BOOL VAR_INPUT IN 1 .. : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_USINT : BOOL VAR_INPUT IN 1 .. : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_UINT : BOOL VAR_INPUT IN 1 .. : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_UDINT : BOOL VAR_INPUT IN 1 .. : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_ULINT : BOOL VAR_INPUT IN 1 .. : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_TIME : BOOL VAR_INPUT IN 1 .. : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_BYTE : BOOL VAR_INPUT IN 1 .. : BYTE; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_WORD : BOOL VAR_INPUT IN 1 .. : WORD; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_DWORD : BOOL VAR_INPUT IN 1 .. : DWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_LWORD : BOOL VAR_INPUT IN 1 .. : LWORD; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_BOOL : BOOL VAR_INPUT IN 1 .. : BOOL; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_STRING : BOOL VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_DATE : BOOL VAR_INPUT IN 1 .. : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_TOD : BOOL VAR_INPUT IN 1 .. : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION NE : BOOL VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION NE_DT : BOOL VAR_INPUT IN 1 .. : DT; END_VAR RETURN; END_FUNCTION
+FUNCTION LEN : SINT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION LEN : INT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION LEN : DINT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION LEN : LINT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION LEN : USINT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION LEN : UINT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION LEN : UDINT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION LEN : ULINT VAR_INPUT IN : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION LEFT : STRING VAR_INPUT IN : STRING; L : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LEFT : STRING VAR_INPUT IN : STRING; L : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION LEFT : STRING VAR_INPUT IN : STRING; L : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LEFT : STRING VAR_INPUT IN : STRING; L : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LEFT : STRING VAR_INPUT IN : STRING; L : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LEFT : STRING VAR_INPUT IN : STRING; L : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LEFT : STRING VAR_INPUT IN : STRING; L : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION LEFT : STRING VAR_INPUT IN : STRING; L : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION RIGHT : STRING VAR_INPUT IN : STRING; L : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION RIGHT : STRING VAR_INPUT IN : STRING; L : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION RIGHT : STRING VAR_INPUT IN : STRING; L : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION RIGHT : STRING VAR_INPUT IN : STRING; L : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION RIGHT : STRING VAR_INPUT IN : STRING; L : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION RIGHT : STRING VAR_INPUT IN : STRING; L : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION RIGHT : STRING VAR_INPUT IN : STRING; L : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION RIGHT : STRING VAR_INPUT IN : STRING; L : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MID : STRING VAR_INPUT IN : STRING; L : SINT; P : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MID : STRING VAR_INPUT IN : STRING; L : INT; P : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MID : STRING VAR_INPUT IN : STRING; L : DINT; P : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MID : STRING VAR_INPUT IN : STRING; L : LINT; P : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MID : STRING VAR_INPUT IN : STRING; L : USINT; P : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MID : STRING VAR_INPUT IN : STRING; L : UINT; P : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MID : STRING VAR_INPUT IN : STRING; L : UDINT; P : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MID : STRING VAR_INPUT IN : STRING; L : ULINT; P : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION CONCAT : STRING VAR_INPUT IN 1 .. : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION INSERT : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; P : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION INSERT : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; P : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION INSERT : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; P : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION INSERT : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; P : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION INSERT : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; P : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION INSERT : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; P : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION INSERT : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; P : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION INSERT : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; P : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DELETE : STRING VAR_INPUT IN : STRING; L : SINT; P : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DELETE : STRING VAR_INPUT IN : STRING; L : INT; P : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION DELETE : STRING VAR_INPUT IN : STRING; L : DINT; P : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DELETE : STRING VAR_INPUT IN : STRING; L : LINT; P : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DELETE : STRING VAR_INPUT IN : STRING; L : USINT; P : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DELETE : STRING VAR_INPUT IN : STRING; L : UINT; P : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DELETE : STRING VAR_INPUT IN : STRING; L : UDINT; P : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DELETE : STRING VAR_INPUT IN : STRING; L : ULINT; P : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION REPLACE : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; L : SINT; P : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION REPLACE : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; L : INT; P : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION REPLACE : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; L : DINT; P : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION REPLACE : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; L : LINT; P : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION REPLACE : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; L : USINT; P : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION REPLACE : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; L : UINT; P : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION REPLACE : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; L : UDINT; P : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION REPLACE : STRING VAR_INPUT IN1 : STRING; IN2 : STRING; L : ULINT; P : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION FIND : SINT VAR_INPUT IN1 : STRING; IN2 : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION FIND : INT VAR_INPUT IN1 : STRING; IN2 : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION FIND : DINT VAR_INPUT IN1 : STRING; IN2 : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION FIND : LINT VAR_INPUT IN1 : STRING; IN2 : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION FIND : USINT VAR_INPUT IN1 : STRING; IN2 : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION FIND : UINT VAR_INPUT IN1 : STRING; IN2 : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION FIND : UDINT VAR_INPUT IN1 : STRING; IN2 : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION FIND : ULINT VAR_INPUT IN1 : STRING; IN2 : STRING; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD_TIME : TIME VAR_INPUT IN1 : TIME; IN2 : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD_TOD_TIME : TOD VAR_INPUT IN1 : TOD; IN2 : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION ADD_DT_TIME : DT VAR_INPUT IN1 : DT; IN2 : TIME; END_VAR RETURN; END_FUNCTION
+
+FUNCTION SUB_TIME : TIME VAR_INPUT IN1 : TIME; IN2 : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB_DATE_DATE : TIME VAR_INPUT IN1 : DATE; IN2 : DATE; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB_TOD_TIME : TOD VAR_INPUT IN1 : TOD; IN2 : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB_TOD_TOD : TIME VAR_INPUT IN1 : TOD; IN2 : TOD; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB_DT_TIME : DT VAR_INPUT IN1 : DT; IN2 : TIME; END_VAR RETURN; END_FUNCTION
+FUNCTION SUB_DT_DT : TIME VAR_INPUT IN1 : DT; IN2 : DT; END_VAR RETURN; END_FUNCTION
+
+
+
+
+
+
+FUNCTION MULTIME_REAL : TIME VAR_INPUT IN1 : TIME; IN2 : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME : TIME VAR_INPUT IN1 : TIME; IN2 : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME_LREAL : TIME VAR_INPUT IN1 : TIME; IN2 : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME : TIME VAR_INPUT IN1 : TIME; IN2 : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME_SINT : TIME VAR_INPUT IN1 : TIME; IN2 : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME : TIME VAR_INPUT IN1 : TIME; IN2 : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME_INT : TIME VAR_INPUT IN1 : TIME; IN2 : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME : TIME VAR_INPUT IN1 : TIME; IN2 : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME_DINT : TIME VAR_INPUT IN1 : TIME; IN2 : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME : TIME VAR_INPUT IN1 : TIME; IN2 : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME_LINT : TIME VAR_INPUT IN1 : TIME; IN2 : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME : TIME VAR_INPUT IN1 : TIME; IN2 : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME_USINT : TIME VAR_INPUT IN1 : TIME; IN2 : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME : TIME VAR_INPUT IN1 : TIME; IN2 : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME_UINT : TIME VAR_INPUT IN1 : TIME; IN2 : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME : TIME VAR_INPUT IN1 : TIME; IN2 : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME_UDINT : TIME VAR_INPUT IN1 : TIME; IN2 : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME : TIME VAR_INPUT IN1 : TIME; IN2 : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME_ULINT : TIME VAR_INPUT IN1 : TIME; IN2 : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MULTIME : TIME VAR_INPUT IN1 : TIME; IN2 : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : TIME VAR_INPUT IN1 : TIME; IN2 : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : TIME VAR_INPUT IN1 : TIME; IN2 : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : TIME VAR_INPUT IN1 : TIME; IN2 : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : TIME VAR_INPUT IN1 : TIME; IN2 : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : TIME VAR_INPUT IN1 : TIME; IN2 : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : TIME VAR_INPUT IN1 : TIME; IN2 : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : TIME VAR_INPUT IN1 : TIME; IN2 : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : TIME VAR_INPUT IN1 : TIME; IN2 : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : TIME VAR_INPUT IN1 : TIME; IN2 : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION MUL : TIME VAR_INPUT IN1 : TIME; IN2 : ULINT; END_VAR RETURN; END_FUNCTION
+
+
+
+
+
+
+FUNCTION DIVTIME_REAL : TIME VAR_INPUT IN1 : TIME; IN2 : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME : TIME VAR_INPUT IN1 : TIME; IN2 : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME_LREAL : TIME VAR_INPUT IN1 : TIME; IN2 : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME : TIME VAR_INPUT IN1 : TIME; IN2 : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME_SINT : TIME VAR_INPUT IN1 : TIME; IN2 : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME : TIME VAR_INPUT IN1 : TIME; IN2 : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME_INT : TIME VAR_INPUT IN1 : TIME; IN2 : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME : TIME VAR_INPUT IN1 : TIME; IN2 : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME_DINT : TIME VAR_INPUT IN1 : TIME; IN2 : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME : TIME VAR_INPUT IN1 : TIME; IN2 : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME_LINT : TIME VAR_INPUT IN1 : TIME; IN2 : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME : TIME VAR_INPUT IN1 : TIME; IN2 : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME_USINT : TIME VAR_INPUT IN1 : TIME; IN2 : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME : TIME VAR_INPUT IN1 : TIME; IN2 : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME_UINT : TIME VAR_INPUT IN1 : TIME; IN2 : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME : TIME VAR_INPUT IN1 : TIME; IN2 : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME_UDINT : TIME VAR_INPUT IN1 : TIME; IN2 : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME : TIME VAR_INPUT IN1 : TIME; IN2 : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME_ULINT : TIME VAR_INPUT IN1 : TIME; IN2 : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIVTIME : TIME VAR_INPUT IN1 : TIME; IN2 : ULINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : TIME VAR_INPUT IN1 : TIME; IN2 : REAL; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : TIME VAR_INPUT IN1 : TIME; IN2 : LREAL; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : TIME VAR_INPUT IN1 : TIME; IN2 : SINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : TIME VAR_INPUT IN1 : TIME; IN2 : INT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : TIME VAR_INPUT IN1 : TIME; IN2 : DINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : TIME VAR_INPUT IN1 : TIME; IN2 : LINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : TIME VAR_INPUT IN1 : TIME; IN2 : USINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : TIME VAR_INPUT IN1 : TIME; IN2 : UINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : TIME VAR_INPUT IN1 : TIME; IN2 : UDINT; END_VAR RETURN; END_FUNCTION
+FUNCTION DIV : TIME VAR_INPUT IN1 : TIME; IN2 : ULINT; END_VAR RETURN; END_FUNCTION
+
+
+
+
+FUNCTION CONCAT_DATE_TOD : DT VAR_INPUT IN1 : DATE; IN2 : TOD; END_VAR RETURN; END_FUNCTION
+{enable code generation}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/util/strdup.hh	Fri Jul 29 16:05:03 2011 +0100
@@ -0,0 +1,58 @@
+/*
+ *  matiec - a compiler for the programming languages defined in IEC 61131-3
+ *
+ *  Copyright (C) 2011  Mario de Sousa (msousa@fe.up.pt)
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ *
+ * This code is made available on the understanding that it will not be
+ * used in safety-critical situations without a full and competent review.
+ */
+
+
+/*******************************************/
+/* String Duplication Utility Functions... */
+/*******************************************/
+
+
+
+#ifndef STRDUP__H
+#define STRDUP__H
+
+#include <stdlib.h>   /* required for malloc() */
+#include <string.h>   /* required for strcat() & strlen() */
+
+/*
+ * Join two strings together. Allocate space with malloc(3).
+ */
+static char *strdup2(const char *a, const char *b) {
+  char *res = (char *)malloc(strlen(a) + strlen(b) + 1);
+
+  if (res == NULL) return NULL;
+  return strcat(strcpy(res, a), b);
+}
+
+/*
+ * Join three strings together. Allocate space with malloc(3).
+ */
+static char *strdup3(const char *a, const char *b, const char *c) {
+  char *res = (char *)malloc(strlen(a) + strlen(b) + strlen(c) + 1);
+
+  if (res == NULL) return NULL;
+  return strcat(strcat(strcpy(res, a), b), c);
+}
+
+
+#endif /* STRDUP__H */