lib/create_standard_function_header.sh
author Mario de Sousa <msousa@fe.up.pt>
Tue, 05 Apr 2011 14:17:16 +0100
changeset 280 69a307407f7b
parent 269 98fc461e1888
permissions -rwxr-xr-x
Fixing code generation of standard conversion functions.
#!/bin/sh

#/*
# *  matiec - a compiler for the programming languages defined in IEC 61131-3
# *  Copyright (C) 2003-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.
# */
#
#/*
# * An IEC 61131-3 compiler.
# *
# * Based on the
# * FINAL DRAFT - IEC 61131-3, 2nd Ed. (2001-12-10)
# *
# */
#
#
#  A shell script to create the library header file containing the 
#  standard functions defined in IEC 61131-3
#


print_usage()
{
  echo "usage: $0 {c | iec}"
  echo "   c -> produce c file with implementation of standard functions"
  echo " iec -> produce txt file with declaration of standard functions"
  exit 0
}


create_iec_beg()
{
echo
echo {disable code generation}
echo
}


create_iec_end()
{
echo
echo {enable code generation}
echo
}


create_iec()
{
echo
echo
echo FUNCTION $1 : $3
echo "  "VAR_INPUT   IN: $2";" END_VAR
echo "  "VAR_OUTPUT OUT: $3";" END_VAR
echo "  "LD TRUE
echo END_FUNCTION
}


create_c_beg()
{
echo  
}

create_c_end()
{
echo  
}


create_c()
{
echo 
echo inline
echo $1"("$2 IN, $3 *__OUT, BOOL EN, BOOL *__ENO")" 
echo { $4 }
} 
 

##################################
##################################
##                              ##
##    Main code starts here...  ##
##                              ##
##################################
##################################

if [ $# -ne 1 ] 
then
  print_usage
fi

if   [ $1 = "c" ] 
then
  create=create_c
  create_beg=create_c_beg
  create_end=create_c_end
elif [ $1 = "iec" ] 
then 
  create=create_iec
  create_beg=create_iec_beg
  create_end=create_iec_end
else
  print_usage
fi



$create_beg    



$create	BOOL_TO_BYTE	BOOL	BYTE	"*__OUT=(BYTE	)__move_BOOL	(EN,__ENO,IN);"	
$create	BOOL_TO_DINT	BOOL	DINT	"*__OUT=(DINT	)__move_BOOL	(EN,__ENO,IN);"	
$create	BOOL_TO_DWORD	BOOL	DWORD	"*__OUT=(DWORD	)__move_BOOL	(EN,__ENO,IN);"	
$create	BOOL_TO_INT	BOOL	INT	"*__OUT=(INT	)__move_BOOL	(EN,__ENO,IN);"	
$create	BOOL_TO_LINT	BOOL	LINT	"*__OUT=(LINT	)__move_BOOL	(EN,__ENO,IN);"	
$create	BOOL_TO_LREAL	BOOL	LREAL	"*__OUT=(LREAL	)__move_BOOL	(EN,__ENO,IN);"	
$create	BOOL_TO_LWORD	BOOL	LWORD	"*__OUT=(LWORD	)__move_BOOL	(EN,__ENO,IN);"	
$create	BOOL_TO_REAL	BOOL	REAL	"*__OUT=(REAL	)__move_BOOL	(EN,__ENO,IN);"	
$create	BOOL_TO_SINT	BOOL	SINT	"*__OUT=(SINT	)__move_BOOL	(EN,__ENO,IN);"	
$create	BOOL_TO_UDINT	BOOL	UDINT	"*__OUT=(UDINT	)__move_BOOL	(EN,__ENO,IN);"	
$create	BOOL_TO_UINT	BOOL	UINT	"*__OUT=(UINT	)__move_BOOL	(EN,__ENO,IN);"	
$create	BOOL_TO_ULINT	BOOL	ULINT	"*__OUT=(ULINT	)__move_BOOL	(EN,__ENO,IN);"	
$create	BOOL_TO_USINT	BOOL	USINT	"*__OUT=(USINT	)__move_BOOL	(EN,__ENO,IN);"	
$create	BOOL_TO_WORD	BOOL	WORD	"*__OUT=(WORD	)__move_BOOL	(EN,__ENO,IN);"	
$create	BYTE_TO_BOOL	BYTE	BOOL	"*__OUT=(BOOL	)__move_BYTE	(EN,__ENO,IN);"	
$create	BYTE_TO_DINT	BYTE	DINT	"*__OUT=(DINT	)__move_BYTE	(EN,__ENO,IN);"	
$create	BYTE_TO_DWORD	BYTE	DWORD	"*__OUT=(DWORD	)__move_BYTE	(EN,__ENO,IN);"	
$create	BYTE_TO_INT	BYTE	INT	"*__OUT=(INT	)__move_BYTE	(EN,__ENO,IN);"	
$create	BYTE_TO_LINT	BYTE	LINT	"*__OUT=(LINT	)__move_BYTE	(EN,__ENO,IN);"	
$create	BYTE_TO_LREAL	BYTE	LREAL	"*__OUT=(LREAL	)__move_BYTE	(EN,__ENO,IN);"	
$create	BYTE_TO_LWORD	BYTE	LWORD	"*__OUT=(LWORD	)__move_BYTE	(EN,__ENO,IN);"	
$create	BYTE_TO_REAL	BYTE	REAL	"*__OUT=(REAL	)__move_BYTE	(EN,__ENO,IN);"	
$create	BYTE_TO_SINT	BYTE	SINT	"*__OUT=(SINT	)__move_BYTE	(EN,__ENO,IN);"	
$create	BYTE_TO_UDINT	BYTE	UDINT	"*__OUT=(UDINT	)__move_BYTE	(EN,__ENO,IN);"	
$create	BYTE_TO_UINT	BYTE	UINT	"*__OUT=(UINT	)__move_BYTE	(EN,__ENO,IN);"	
$create	BYTE_TO_ULINT	BYTE	ULINT	"*__OUT=(ULINT	)__move_BYTE	(EN,__ENO,IN);"	
$create	BYTE_TO_USINT	BYTE	USINT	"*__OUT=(USINT	)__move_BYTE	(EN,__ENO,IN);"	
$create	BYTE_TO_WORD	BYTE	WORD	"*__OUT=(WORD	)__move_BYTE	(EN,__ENO,IN);"	
$create	DINT_TO_BOOL	DINT	BOOL	"*__OUT=(BOOL	)__move_DINT	(EN,__ENO,IN);"	
$create	DINT_TO_BYTE	DINT	BYTE	"*__OUT=(BYTE	)__move_DINT	(EN,__ENO,IN);"	
$create	DINT_TO_DWORD	DINT	DWORD	"*__OUT=(DWORD	)__move_DINT	(EN,__ENO,IN);"	
$create	DINT_TO_INT	DINT	INT	"*__OUT=(INT	)__move_DINT	(EN,__ENO,IN);"	
$create	DINT_TO_LINT	DINT	LINT	"*__OUT=(LINT	)__move_DINT	(EN,__ENO,IN);"	
$create	DINT_TO_LREAL	DINT	LREAL	"*__OUT=(LREAL	)__move_DINT	(EN,__ENO,IN);"	
$create	DINT_TO_LWORD	DINT	LWORD	"*__OUT=(LWORD	)__move_DINT	(EN,__ENO,IN);"	
$create	DINT_TO_REAL	DINT	REAL	"*__OUT=(REAL	)__move_DINT	(EN,__ENO,IN);"	
$create	DINT_TO_SINT	DINT	SINT	"*__OUT=(SINT	)__move_DINT	(EN,__ENO,IN);"	
$create	DINT_TO_UDINT	DINT	UDINT	"*__OUT=(UDINT	)__move_DINT	(EN,__ENO,IN);"	
$create	DINT_TO_UINT	DINT	UINT	"*__OUT=(UINT	)__move_DINT	(EN,__ENO,IN);"	
$create	DINT_TO_ULINT	DINT	ULINT	"*__OUT=(ULINT	)__move_DINT	(EN,__ENO,IN);"	
$create	DINT_TO_USINT	DINT	USINT	"*__OUT=(USINT	)__move_DINT	(EN,__ENO,IN);"	
$create	DINT_TO_WORD	DINT	WORD	"*__OUT=(WORD	)__move_DINT	(EN,__ENO,IN);"	
$create	DWORD_TO_BOOL	DWORD	BOOL	"*__OUT=(BOOL	)__move_DWORD	(EN,__ENO,IN);"	
$create	DWORD_TO_BYTE	DWORD	BYTE	"*__OUT=(BYTE	)__move_DWORD	(EN,__ENO,IN);"	
$create	DWORD_TO_DINT	DWORD	DINT	"*__OUT=(DINT	)__move_DWORD	(EN,__ENO,IN);"	
$create	DWORD_TO_INT	DWORD	INT	"*__OUT=(INT	)__move_DWORD	(EN,__ENO,IN);"	
$create	DWORD_TO_LINT	DWORD	LINT	"*__OUT=(LINT	)__move_DWORD	(EN,__ENO,IN);"	
$create	DWORD_TO_LREAL	DWORD	LREAL	"*__OUT=(LREAL	)__move_DWORD	(EN,__ENO,IN);"	
$create	DWORD_TO_LWORD	DWORD	LWORD	"*__OUT=(LWORD	)__move_DWORD	(EN,__ENO,IN);"	
$create	DWORD_TO_REAL	DWORD	REAL	"*__OUT=(REAL	)__move_DWORD	(EN,__ENO,IN);"	
$create	DWORD_TO_SINT	DWORD	SINT	"*__OUT=(SINT	)__move_DWORD	(EN,__ENO,IN);"	
$create	DWORD_TO_UDINT	DWORD	UDINT	"*__OUT=(UDINT	)__move_DWORD	(EN,__ENO,IN);"	
$create	DWORD_TO_UINT	DWORD	UINT	"*__OUT=(UINT	)__move_DWORD	(EN,__ENO,IN);"	
$create	DWORD_TO_ULINT	DWORD	ULINT	"*__OUT=(ULINT	)__move_DWORD	(EN,__ENO,IN);"	
$create	DWORD_TO_USINT	DWORD	USINT	"*__OUT=(USINT	)__move_DWORD	(EN,__ENO,IN);"	
$create	DWORD_TO_WORD	DWORD	WORD	"*__OUT=(WORD	)__move_DWORD	(EN,__ENO,IN);"	
$create	INT_TO_BOOL	INT	BOOL	"*__OUT=(BOOL	)__move_INT	(EN,__ENO,IN);"	
$create	INT_TO_BYTE	INT	BYTE	"*__OUT=(BYTE	)__move_INT	(EN,__ENO,IN);"	
$create	INT_TO_DINT	INT	DINT	"*__OUT=(DINT	)__move_INT	(EN,__ENO,IN);"	
$create	INT_TO_DWORD	INT	DWORD	"*__OUT=(DWORD	)__move_INT	(EN,__ENO,IN);"	
$create	INT_TO_LINT	INT	LINT	"*__OUT=(LINT	)__move_INT	(EN,__ENO,IN);"	
$create	INT_TO_LREAL	INT	LREAL	"*__OUT=(LREAL	)__move_INT	(EN,__ENO,IN);"	
$create	INT_TO_LWORD	INT	LWORD	"*__OUT=(LWORD	)__move_INT	(EN,__ENO,IN);"	
$create	INT_TO_REAL	INT	REAL	"*__OUT=(REAL	)__move_INT	(EN,__ENO,IN);"	
$create	INT_TO_SINT	INT	SINT	"*__OUT=(SINT	)__move_INT	(EN,__ENO,IN);"	
$create	INT_TO_UDINT	INT	UDINT	"*__OUT=(UDINT	)__move_INT	(EN,__ENO,IN);"	
$create	INT_TO_UINT	INT	UINT	"*__OUT=(UINT	)__move_INT	(EN,__ENO,IN);"	
$create	INT_TO_ULINT	INT	ULINT	"*__OUT=(ULINT	)__move_INT	(EN,__ENO,IN);"	
$create	INT_TO_USINT	INT	USINT	"*__OUT=(USINT	)__move_INT	(EN,__ENO,IN);"	
$create	INT_TO_WORD	INT	WORD	"*__OUT=(WORD	)__move_INT	(EN,__ENO,IN);"	
$create	LINT_TO_BOOL	LINT	BOOL	"*__OUT=(BOOL	)__move_LINT	(EN,__ENO,IN);"	
$create	LINT_TO_BYTE	LINT	BYTE	"*__OUT=(BYTE	)__move_LINT	(EN,__ENO,IN);"	
$create	LINT_TO_DINT	LINT	DINT	"*__OUT=(DINT	)__move_LINT	(EN,__ENO,IN);"	
$create	LINT_TO_DWORD	LINT	DWORD	"*__OUT=(DWORD	)__move_LINT	(EN,__ENO,IN);"	
$create	LINT_TO_INT	LINT	INT	"*__OUT=(INT	)__move_LINT	(EN,__ENO,IN);"	
$create	LINT_TO_LREAL	LINT	LREAL	"*__OUT=(LREAL	)__move_LINT	(EN,__ENO,IN);"	
$create	LINT_TO_LWORD	LINT	LWORD	"*__OUT=(LWORD	)__move_LINT	(EN,__ENO,IN);"	
$create	LINT_TO_REAL	LINT	REAL	"*__OUT=(REAL	)__move_LINT	(EN,__ENO,IN);"	
$create	LINT_TO_SINT	LINT	SINT	"*__OUT=(SINT	)__move_LINT	(EN,__ENO,IN);"	
$create	LINT_TO_UDINT	LINT	UDINT	"*__OUT=(UDINT	)__move_LINT	(EN,__ENO,IN);"	
$create	LINT_TO_UINT	LINT	UINT	"*__OUT=(UINT	)__move_LINT	(EN,__ENO,IN);"	
$create	LINT_TO_ULINT	LINT	ULINT	"*__OUT=(ULINT	)__move_LINT	(EN,__ENO,IN);"	
$create	LINT_TO_USINT	LINT	USINT	"*__OUT=(USINT	)__move_LINT	(EN,__ENO,IN);"	
$create	LINT_TO_WORD	LINT	WORD	"*__OUT=(WORD	)__move_LINT	(EN,__ENO,IN);"	
$create	LREAL_TO_BOOL	LREAL	BOOL	"*__OUT=(BOOL	)__move_LREAL	(EN,__ENO,IN);"	
$create	LREAL_TO_BYTE	LREAL	BYTE	"*__OUT=(BYTE	)__move_LREAL	(EN,__ENO,IN);"	
$create	LREAL_TO_DINT	LREAL	DINT	"*__OUT=(DINT	)__move_LREAL	(EN,__ENO,IN);"	
$create	LREAL_TO_DWORD	LREAL	DWORD	"*__OUT=(DWORD	)__move_LREAL	(EN,__ENO,IN);"	
$create	LREAL_TO_INT	LREAL	INT	"*__OUT=(INT	)__move_LREAL	(EN,__ENO,IN);"	
$create	LREAL_TO_LINT	LREAL	LINT	"*__OUT=(LINT	)__move_LREAL	(EN,__ENO,IN);"	
$create	LREAL_TO_LWORD	LREAL	LWORD	"*__OUT=(LWORD	)__move_LREAL	(EN,__ENO,IN);"	
$create	LREAL_TO_REAL	LREAL	REAL	"*__OUT=(REAL	)__move_LREAL	(EN,__ENO,IN);"	
$create	LREAL_TO_SINT	LREAL	SINT	"*__OUT=(SINT	)__move_LREAL	(EN,__ENO,IN);"	
$create	LREAL_TO_UDINT	LREAL	UDINT	"*__OUT=(UDINT	)__move_LREAL	(EN,__ENO,IN);"	
$create	LREAL_TO_UINT	LREAL	UINT	"*__OUT=(UINT	)__move_LREAL	(EN,__ENO,IN);"	
$create	LREAL_TO_ULINT	LREAL	ULINT	"*__OUT=(ULINT	)__move_LREAL	(EN,__ENO,IN);"	
$create	LREAL_TO_USINT	LREAL	USINT	"*__OUT=(USINT	)__move_LREAL	(EN,__ENO,IN);"	
$create	LREAL_TO_WORD	LREAL	WORD	"*__OUT=(WORD	)__move_LREAL	(EN,__ENO,IN);"	
$create	LWORD_TO_BOOL	LWORD	BOOL	"*__OUT=(BOOL	)__move_LWORD	(EN,__ENO,IN);"	
$create	LWORD_TO_BYTE	LWORD	BYTE	"*__OUT=(BYTE	)__move_LWORD	(EN,__ENO,IN);"	
$create	LWORD_TO_DINT	LWORD	DINT	"*__OUT=(DINT	)__move_LWORD	(EN,__ENO,IN);"	
$create	LWORD_TO_DWORD	LWORD	DWORD	"*__OUT=(DWORD	)__move_LWORD	(EN,__ENO,IN);"	
$create	LWORD_TO_INT	LWORD	INT	"*__OUT=(INT	)__move_LWORD	(EN,__ENO,IN);"	
$create	LWORD_TO_LINT	LWORD	LINT	"*__OUT=(LINT	)__move_LWORD	(EN,__ENO,IN);"	
$create	LWORD_TO_LREAL	LWORD	LREAL	"*__OUT=(LREAL	)__move_LWORD	(EN,__ENO,IN);"	
$create	LWORD_TO_REAL	LWORD	REAL	"*__OUT=(REAL	)__move_LWORD	(EN,__ENO,IN);"	
$create	LWORD_TO_SINT	LWORD	SINT	"*__OUT=(SINT	)__move_LWORD	(EN,__ENO,IN);"	
$create	LWORD_TO_UDINT	LWORD	UDINT	"*__OUT=(UDINT	)__move_LWORD	(EN,__ENO,IN);"	
$create	LWORD_TO_UINT	LWORD	UINT	"*__OUT=(UINT	)__move_LWORD	(EN,__ENO,IN);"	
$create	LWORD_TO_ULINT	LWORD	ULINT	"*__OUT=(ULINT	)__move_LWORD	(EN,__ENO,IN);"	
$create	LWORD_TO_USINT	LWORD	USINT	"*__OUT=(USINT	)__move_LWORD	(EN,__ENO,IN);"	
$create	LWORD_TO_WORD	LWORD	WORD	"*__OUT=(WORD	)__move_LWORD	(EN,__ENO,IN);"	
$create	REAL_TO_BOOL	REAL	BOOL	"*__OUT=(BOOL	)__move_REAL	(EN,__ENO,IN);"	
$create	REAL_TO_BYTE	REAL	BYTE	"*__OUT=(BYTE	)__move_REAL	(EN,__ENO,IN);"	
$create	REAL_TO_DINT	REAL	DINT	"*__OUT=(DINT	)__move_REAL	(EN,__ENO,IN);"	
$create	REAL_TO_DWORD	REAL	DWORD	"*__OUT=(DWORD	)__move_REAL	(EN,__ENO,IN);"	
$create	REAL_TO_INT	REAL	INT	"*__OUT=(INT	)__move_REAL	(EN,__ENO,IN);"	
$create	REAL_TO_LINT	REAL	LINT	"*__OUT=(LINT	)__move_REAL	(EN,__ENO,IN);"	
$create	REAL_TO_LREAL	REAL	LREAL	"*__OUT=(LREAL	)__move_REAL	(EN,__ENO,IN);"	
$create	REAL_TO_LWORD	REAL	LWORD	"*__OUT=(LWORD	)__move_REAL	(EN,__ENO,IN);"	
$create	REAL_TO_SINT	REAL	SINT	"*__OUT=(SINT	)__move_REAL	(EN,__ENO,IN);"	
$create	REAL_TO_UDINT	REAL	UDINT	"*__OUT=(UDINT	)__move_REAL	(EN,__ENO,IN);"	
$create	REAL_TO_UINT	REAL	UINT	"*__OUT=(UINT	)__move_REAL	(EN,__ENO,IN);"	
$create	REAL_TO_ULINT	REAL	ULINT	"*__OUT=(ULINT	)__move_REAL	(EN,__ENO,IN);"	
$create	REAL_TO_USINT	REAL	USINT	"*__OUT=(USINT	)__move_REAL	(EN,__ENO,IN);"	
$create	REAL_TO_WORD	REAL	WORD	"*__OUT=(WORD	)__move_REAL	(EN,__ENO,IN);"	
$create	SINT_TO_BOOL	SINT	BOOL	"*__OUT=(BOOL	)__move_SINT	(EN,__ENO,IN);"	
$create	SINT_TO_BYTE	SINT	BYTE	"*__OUT=(BYTE	)__move_SINT	(EN,__ENO,IN);"	
$create	SINT_TO_DINT	SINT	DINT	"*__OUT=(DINT	)__move_SINT	(EN,__ENO,IN);"	
$create	SINT_TO_DWORD	SINT	DWORD	"*__OUT=(DWORD	)__move_SINT	(EN,__ENO,IN);"	
$create	SINT_TO_INT	SINT	INT	"*__OUT=(INT	)__move_SINT	(EN,__ENO,IN);"	
$create	SINT_TO_LINT	SINT	LINT	"*__OUT=(LINT	)__move_SINT	(EN,__ENO,IN);"	
$create	SINT_TO_LREAL	SINT	LREAL	"*__OUT=(LREAL	)__move_SINT	(EN,__ENO,IN);"	
$create	SINT_TO_LWORD	SINT	LWORD	"*__OUT=(LWORD	)__move_SINT	(EN,__ENO,IN);"	
$create	SINT_TO_REAL	SINT	REAL	"*__OUT=(REAL	)__move_SINT	(EN,__ENO,IN);"	
$create	SINT_TO_UDINT	SINT	UDINT	"*__OUT=(UDINT	)__move_SINT	(EN,__ENO,IN);"	
$create	SINT_TO_UINT	SINT	UINT	"*__OUT=(UINT	)__move_SINT	(EN,__ENO,IN);"	
$create	SINT_TO_ULINT	SINT	ULINT	"*__OUT=(ULINT	)__move_SINT	(EN,__ENO,IN);"	
$create	SINT_TO_USINT	SINT	USINT	"*__OUT=(USINT	)__move_SINT	(EN,__ENO,IN);"	
$create	SINT_TO_WORD	SINT	WORD	"*__OUT=(WORD	)__move_SINT	(EN,__ENO,IN);"	
$create	UDINT_TO_BOOL	UDINT	BOOL	"*__OUT=(BOOL	)__move_UDINT	(EN,__ENO,IN);"	
$create	UDINT_TO_BYTE	UDINT	BYTE	"*__OUT=(BYTE	)__move_UDINT	(EN,__ENO,IN);"	
$create	UDINT_TO_DINT	UDINT	DINT	"*__OUT=(DINT	)__move_UDINT	(EN,__ENO,IN);"	
$create	UDINT_TO_DWORD	UDINT	DWORD	"*__OUT=(DWORD	)__move_UDINT	(EN,__ENO,IN);"	
$create	UDINT_TO_INT	UDINT	INT	"*__OUT=(INT	)__move_UDINT	(EN,__ENO,IN);"	
$create	UDINT_TO_LINT	UDINT	LINT	"*__OUT=(LINT	)__move_UDINT	(EN,__ENO,IN);"	
$create	UDINT_TO_LREAL	UDINT	LREAL	"*__OUT=(LREAL	)__move_UDINT	(EN,__ENO,IN);"	
$create	UDINT_TO_LWORD	UDINT	LWORD	"*__OUT=(LWORD	)__move_UDINT	(EN,__ENO,IN);"	
$create	UDINT_TO_REAL	UDINT	REAL	"*__OUT=(REAL	)__move_UDINT	(EN,__ENO,IN);"	
$create	UDINT_TO_SINT	UDINT	SINT	"*__OUT=(SINT	)__move_UDINT	(EN,__ENO,IN);"	
$create	UDINT_TO_UINT	UDINT	UINT	"*__OUT=(UINT	)__move_UDINT	(EN,__ENO,IN);"	
$create	UDINT_TO_ULINT	UDINT	ULINT	"*__OUT=(ULINT	)__move_UDINT	(EN,__ENO,IN);"	
$create	UDINT_TO_USINT	UDINT	USINT	"*__OUT=(USINT	)__move_UDINT	(EN,__ENO,IN);"	
$create	UDINT_TO_WORD	UDINT	WORD	"*__OUT=(WORD	)__move_UDINT	(EN,__ENO,IN);"	
$create	UINT_TO_BOOL	UINT	BOOL	"*__OUT=(BOOL	)__move_UINT	(EN,__ENO,IN);"	
$create	UINT_TO_BYTE	UINT	BYTE	"*__OUT=(BYTE	)__move_UINT	(EN,__ENO,IN);"	
$create	UINT_TO_DINT	UINT	DINT	"*__OUT=(DINT	)__move_UINT	(EN,__ENO,IN);"	
$create	UINT_TO_DWORD	UINT	DWORD	"*__OUT=(DWORD	)__move_UINT	(EN,__ENO,IN);"	
$create	UINT_TO_INT	UINT	INT	"*__OUT=(INT	)__move_UINT	(EN,__ENO,IN);"	
$create	UINT_TO_LINT	UINT	LINT	"*__OUT=(LINT	)__move_UINT	(EN,__ENO,IN);"	
$create	UINT_TO_LREAL	UINT	LREAL	"*__OUT=(LREAL	)__move_UINT	(EN,__ENO,IN);"	
$create	UINT_TO_LWORD	UINT	LWORD	"*__OUT=(LWORD	)__move_UINT	(EN,__ENO,IN);"	
$create	UINT_TO_REAL	UINT	REAL	"*__OUT=(REAL	)__move_UINT	(EN,__ENO,IN);"	
$create	UINT_TO_SINT	UINT	SINT	"*__OUT=(SINT	)__move_UINT	(EN,__ENO,IN);"	
$create	UINT_TO_UDINT	UINT	UDINT	"*__OUT=(UDINT	)__move_UINT	(EN,__ENO,IN);"	
$create	UINT_TO_ULINT	UINT	ULINT	"*__OUT=(ULINT	)__move_UINT	(EN,__ENO,IN);"	
$create	UINT_TO_USINT	UINT	USINT	"*__OUT=(USINT	)__move_UINT	(EN,__ENO,IN);"	
$create	UINT_TO_WORD	UINT	WORD	"*__OUT=(WORD	)__move_UINT	(EN,__ENO,IN);"	
$create	ULINT_TO_BOOL	ULINT	BOOL	"*__OUT=(BOOL	)__move_ULINT	(EN,__ENO,IN);"	
$create	ULINT_TO_BYTE	ULINT	BYTE	"*__OUT=(BYTE	)__move_ULINT	(EN,__ENO,IN);"	
$create	ULINT_TO_DINT	ULINT	DINT	"*__OUT=(DINT	)__move_ULINT	(EN,__ENO,IN);"	
$create	ULINT_TO_DWORD	ULINT	DWORD	"*__OUT=(DWORD	)__move_ULINT	(EN,__ENO,IN);"	
$create	ULINT_TO_INT	ULINT	INT	"*__OUT=(INT	)__move_ULINT	(EN,__ENO,IN);"	
$create	ULINT_TO_LINT	ULINT	LINT	"*__OUT=(LINT	)__move_ULINT	(EN,__ENO,IN);"	
$create	ULINT_TO_LREAL	ULINT	LREAL	"*__OUT=(LREAL	)__move_ULINT	(EN,__ENO,IN);"	
$create	ULINT_TO_LWORD	ULINT	LWORD	"*__OUT=(LWORD	)__move_ULINT	(EN,__ENO,IN);"	
$create	ULINT_TO_REAL	ULINT	REAL	"*__OUT=(REAL	)__move_ULINT	(EN,__ENO,IN);"	
$create	ULINT_TO_SINT	ULINT	SINT	"*__OUT=(SINT	)__move_ULINT	(EN,__ENO,IN);"	
$create	ULINT_TO_UDINT	ULINT	UDINT	"*__OUT=(UDINT	)__move_ULINT	(EN,__ENO,IN);"	
$create	ULINT_TO_UINT	ULINT	UINT	"*__OUT=(UINT	)__move_ULINT	(EN,__ENO,IN);"	
$create	ULINT_TO_USINT	ULINT	USINT	"*__OUT=(USINT	)__move_ULINT	(EN,__ENO,IN);"	
$create	ULINT_TO_WORD	ULINT	WORD	"*__OUT=(WORD	)__move_ULINT	(EN,__ENO,IN);"	
$create	USINT_TO_BOOL	USINT	BOOL	"*__OUT=(BOOL	)__move_USINT	(EN,__ENO,IN);"	
$create	USINT_TO_BYTE	USINT	BYTE	"*__OUT=(BYTE	)__move_USINT	(EN,__ENO,IN);"	
$create	USINT_TO_DINT	USINT	DINT	"*__OUT=(DINT	)__move_USINT	(EN,__ENO,IN);"	
$create	USINT_TO_DWORD	USINT	DWORD	"*__OUT=(DWORD	)__move_USINT	(EN,__ENO,IN);"	
$create	USINT_TO_INT	USINT	INT	"*__OUT=(INT	)__move_USINT	(EN,__ENO,IN);"	
$create	USINT_TO_LINT	USINT	LINT	"*__OUT=(LINT	)__move_USINT	(EN,__ENO,IN);"	
$create	USINT_TO_LREAL	USINT	LREAL	"*__OUT=(LREAL	)__move_USINT	(EN,__ENO,IN);"	
$create	USINT_TO_LWORD	USINT	LWORD	"*__OUT=(LWORD	)__move_USINT	(EN,__ENO,IN);"	
$create	USINT_TO_REAL	USINT	REAL	"*__OUT=(REAL	)__move_USINT	(EN,__ENO,IN);"	
$create	USINT_TO_SINT	USINT	SINT	"*__OUT=(SINT	)__move_USINT	(EN,__ENO,IN);"	
$create	USINT_TO_UDINT	USINT	UDINT	"*__OUT=(UDINT	)__move_USINT	(EN,__ENO,IN);"	
$create	USINT_TO_UINT	USINT	UINT	"*__OUT=(UINT	)__move_USINT	(EN,__ENO,IN);"	
$create	USINT_TO_ULINT	USINT	ULINT	"*__OUT=(ULINT	)__move_USINT	(EN,__ENO,IN);"	
$create	USINT_TO_WORD	USINT	WORD	"*__OUT=(WORD	)__move_USINT	(EN,__ENO,IN);"	
$create	WORD_TO_BOOL	WORD	BOOL	"*__OUT=(BOOL	)__move_WORD	(EN,__ENO,IN);"	
$create	WORD_TO_BYTE	WORD	BYTE	"*__OUT=(BYTE	)__move_WORD	(EN,__ENO,IN);"	
$create	WORD_TO_DINT	WORD	DINT	"*__OUT=(DINT	)__move_WORD	(EN,__ENO,IN);"	
$create	WORD_TO_DWORD	WORD	DWORD	"*__OUT=(DWORD	)__move_WORD	(EN,__ENO,IN);"	
$create	WORD_TO_INT	WORD	INT	"*__OUT=(INT	)__move_WORD	(EN,__ENO,IN);"	
$create	WORD_TO_LINT	WORD	LINT	"*__OUT=(LINT	)__move_WORD	(EN,__ENO,IN);"	
$create	WORD_TO_LREAL	WORD	LREAL	"*__OUT=(LREAL	)__move_WORD	(EN,__ENO,IN);"	
$create	WORD_TO_LWORD	WORD	LWORD	"*__OUT=(LWORD	)__move_WORD	(EN,__ENO,IN);"	
$create	WORD_TO_REAL	WORD	REAL	"*__OUT=(REAL	)__move_WORD	(EN,__ENO,IN);"	
$create	WORD_TO_SINT	WORD	SINT	"*__OUT=(SINT	)__move_WORD	(EN,__ENO,IN);"	
$create	WORD_TO_UDINT	WORD	UDINT	"*__OUT=(UDINT	)__move_WORD	(EN,__ENO,IN);"	
$create	WORD_TO_UINT	WORD	UINT	"*__OUT=(UINT	)__move_WORD	(EN,__ENO,IN);"	
$create	WORD_TO_ULINT	WORD	ULINT	"*__OUT=(ULINT	)__move_WORD	(EN,__ENO,IN);"	
$create	WORD_TO_USINT	WORD	USINT	"*__OUT=(USINT	)__move_WORD	(EN,__ENO,IN);"	


########################
# Handling strings...  #
########################
$create	STRING_TO_BOOL	STRING	BOOL	"*__OUT=(BOOL	)__string_to_bool	(EN,__ENO,IN);"	
$create	STRING_TO_BYTE	STRING	BYTE	"*__OUT=(BYTE	)__string_to_bit	(EN,__ENO,IN);"	
$create	STRING_TO_WORD	STRING	WORD	"*__OUT=(WORD	)__string_to_bit	(EN,__ENO,IN);"	
$create	STRING_TO_DWORD	STRING	DWORD	"*__OUT=(DWORD	)__string_to_bit	(EN,__ENO,IN);"	
$create	STRING_TO_LWORD	STRING	LWORD	"*__OUT=(LWORD	)__string_to_bit	(EN,__ENO,IN);"	
$create	STRING_TO_SINT	STRING	SINT	"*__OUT=(SINT	)__string_to_sint	(EN,__ENO,IN);"	
$create	STRING_TO_INT	STRING	INT	"*__OUT=(INT	)__string_to_sint	(EN,__ENO,IN);"	
$create	STRING_TO_DINT	STRING	DINT	"*__OUT=(DINT	)__string_to_sint	(EN,__ENO,IN);"	
$create	STRING_TO_LINT	STRING	LINT	"*__OUT=(LINT	)__string_to_sint	(EN,__ENO,IN);"	
$create	STRING_TO_USINT	STRING	USINT	"*__OUT=(USINT	)__string_to_uint	(EN,__ENO,IN);"	
$create	STRING_TO_UINT	STRING	UINT	"*__OUT=(UINT	)__string_to_uint	(EN,__ENO,IN);"	
$create	STRING_TO_UDINT	STRING	UDINT	"*__OUT=(UDINT	)__string_to_uint	(EN,__ENO,IN);"	
$create	STRING_TO_ULINT	STRING	ULINT	"*__OUT=(ULINT	)__string_to_uint	(EN,__ENO,IN);"	
$create	STRING_TO_REAL	STRING	REAL	"*__OUT=(REAL	)__string_to_real	(EN,__ENO,IN);"	
$create	STRING_TO_LREAL	STRING	LREAL	"*__OUT=(LREAL	)__string_to_real	(EN,__ENO,IN);"	
$create	STRING_TO_DATE	STRING	DATE	"*__OUT=(DATE	)__string_to_time	(EN,__ENO,IN);"
$create	STRING_TO_TIME	STRING	TIME	"*__OUT=(TIME	)__string_to_time	(EN,__ENO,IN);"
$create	STRING_TO_TOD	STRING	TOD	"*__OUT=(TOD	)__string_to_time	(EN,__ENO,IN);"
$create	STRING_TO_DT	STRING	DT	"*__OUT=(DT	)__string_to_time	(EN,__ENO,IN);"

$create	BOOL_TO_STRING	BOOL	STRING	"*__OUT=(STRING	)__bool_to_string	(EN,__ENO,IN);"
$create	BYTE_TO_STRING	BYTE	STRING	"*__OUT=(STRING	)__bit_to_string	(EN,__ENO,IN);"
$create	WORD_TO_STRING	WORD	STRING	"*__OUT=(STRING	)__bit_to_string	(EN,__ENO,IN);"
$create	DWORD_TO_STRING	DWORD	STRING	"*__OUT=(STRING	)__bit_to_string	(EN,__ENO,IN);"
$create	LWORD_TO_STRING	LWORD	STRING	"*__OUT=(STRING	)__bit_to_string	(EN,__ENO,IN);"
$create	INT_TO_STRING	INT	STRING	"*__OUT=(STRING	)__sint_to_string	(EN,__ENO,IN);"
$create	LINT_TO_STRING	LINT	STRING	"*__OUT=(STRING	)__sint_to_string	(EN,__ENO,IN);"
$create	DINT_TO_STRING	DINT	STRING	"*__OUT=(STRING	)__sint_to_string	(EN,__ENO,IN);"
$create	SINT_TO_STRING	SINT	STRING	"*__OUT=(STRING	)__sint_to_string	(EN,__ENO,IN);"
$create	USINT_TO_STRING	USINT	STRING	"*__OUT=(STRING	)__uint_to_string	(EN,__ENO,IN);"
$create	UINT_TO_STRING	UINT	STRING	"*__OUT=(STRING	)__uint_to_string	(EN,__ENO,IN);"
$create	UDINT_TO_STRING	UDINT	STRING	"*__OUT=(STRING	)__uint_to_string	(EN,__ENO,IN);"
$create	ULINT_TO_STRING	ULINT	STRING	"*__OUT=(STRING	)__uint_to_string	(EN,__ENO,IN);"
$create	REAL_TO_STRING	REAL	STRING	"*__OUT=(STRING	)__real_to_string	(EN,__ENO,IN);"
$create	LREAL_TO_STRING	LREAL	STRING	"*__OUT=(STRING	)__real_to_string	(EN,__ENO,IN);"
$create	DATE_TO_STRING	DATE	STRING	"*__OUT=(STRING	)__date_to_string	(EN,__ENO,IN);"
$create	DT_TO_STRING	DT	STRING	"*__OUT=(STRING	)__dt_to_string	(EN,__ENO,IN);"
$create	TIME_TO_STRING	TIME	STRING	"*__OUT=(STRING	)__time_to_string	(EN,__ENO,IN);"
$create	TOD_TO_STRING	TOD	STRING	"*__OUT=(STRING	)__tod_to_string	(EN,__ENO,IN);"

########################
# Handling of dates    #
########################
$create	BOOL_TO_DATE	BOOL	DATE	"*__OUT=(DATE	)__int_to_time	(EN,__ENO,IN);"
$create	BYTE_TO_DATE	BYTE	DATE	"*__OUT=(DATE	)__int_to_time	(EN,__ENO,IN);"
$create	WORD_TO_DATE	WORD	DATE	"*__OUT=(DATE	)__int_to_time	(EN,__ENO,IN);"
$create	DWORD_TO_DATE	DWORD	DATE	"*__OUT=(DATE	)__int_to_time	(EN,__ENO,IN);"
$create	LWORD_TO_DATE	LWORD	DATE	"*__OUT=(DATE	)__int_to_time	(EN,__ENO,IN);"
$create	SINT_TO_DATE	SINT	DATE	"*__OUT=(DATE	)__int_to_time	(EN,__ENO,IN);"
$create	INT_TO_DATE	INT	DATE	"*__OUT=(DATE	)__int_to_time	(EN,__ENO,IN);"
$create	DINT_TO_DATE	DINT	DATE	"*__OUT=(DATE	)__int_to_time	(EN,__ENO,IN);"
$create	LINT_TO_DATE	LINT	DATE	"*__OUT=(DATE	)__int_to_time	(EN,__ENO,IN);"
$create	USINT_TO_DATE	USINT	DATE	"*__OUT=(DATE	)__int_to_time	(EN,__ENO,IN);"
$create	UINT_TO_DATE	UINT	DATE	"*__OUT=(DATE	)__int_to_time	(EN,__ENO,IN);"
$create	UDINT_TO_DATE	UDINT	DATE	"*__OUT=(DATE	)__int_to_time	(EN,__ENO,IN);"
$create	ULINT_TO_DATE	ULINT	DATE	"*__OUT=(DATE	)__int_to_time	(EN,__ENO,IN);"
$create	REAL_TO_DATE	REAL	DATE	"*__OUT=(DATE	)__real_to_time	(EN,__ENO,IN);"
$create	LREAL_TO_DATE	LREAL	DATE	"*__OUT=(DATE	)__real_to_time	(EN,__ENO,IN);"

$create	DATE_TO_BYTE	DATE	BYTE	"*__OUT=(BYTE	)__time_to_int	(EN,__ENO,IN);"	
$create	DATE_TO_WORD	DATE	WORD	"*__OUT=(WORD	)__time_to_int	(EN,__ENO,IN);"	
$create	DATE_TO_DWORD	DATE	DWORD	"*__OUT=(DWORD	)__time_to_int	(EN,__ENO,IN);"	
$create	DATE_TO_LWORD	DATE	LWORD	"*__OUT=(LWORD	)__time_to_int	(EN,__ENO,IN);"	
$create	DATE_TO_SINT	DATE	SINT	"*__OUT=(SINT	)__time_to_int	(EN,__ENO,IN);"	
$create	DATE_TO_INT	DATE	INT	"*__OUT=(INT	)__time_to_int	(EN,__ENO,IN);"	
$create	DATE_TO_DINT	DATE	DINT	"*__OUT=(DINT	)__time_to_int	(EN,__ENO,IN);"	
$create	DATE_TO_LINT	DATE	LINT	"*__OUT=(LINT	)__time_to_int	(EN,__ENO,IN);"	
$create	DATE_TO_USINT	DATE	USINT	"*__OUT=(USINT	)__time_to_int	(EN,__ENO,IN);"	
$create	DATE_TO_UINT	DATE	UINT	"*__OUT=(UINT	)__time_to_int	(EN,__ENO,IN);"	
$create	DATE_TO_UDINT	DATE	UDINT	"*__OUT=(UDINT	)__time_to_int	(EN,__ENO,IN);"	
$create	DATE_TO_ULINT	DATE	ULINT	"*__OUT=(ULINT	)__time_to_int	(EN,__ENO,IN);"	
$create	DATE_TO_REAL	DATE	REAL	"*__OUT=(REAL	)__time_to_real	(EN,__ENO,IN);"	
$create	DATE_TO_LREAL	DATE	LREAL	"*__OUT=(LREAL	)__time_to_real	(EN,__ENO,IN);"	

########################
# Handling of TIME     #
########################
$create	BOOL_TO_TIME	BOOL	TIME	"*__OUT=(TIME	)__int_to_time	(EN,__ENO,IN);"
$create	BYTE_TO_TIME	BYTE	TIME	"*__OUT=(TIME	)__int_to_time	(EN,__ENO,IN);"
$create	WORD_TO_TIME	WORD	TIME	"*__OUT=(TIME	)__int_to_time	(EN,__ENO,IN);"
$create	DWORD_TO_TIME	DWORD	TIME	"*__OUT=(TIME	)__int_to_time	(EN,__ENO,IN);"
$create	LWORD_TO_TIME	LWORD	TIME	"*__OUT=(TIME	)__int_to_time	(EN,__ENO,IN);"
$create	SINT_TO_TIME	SINT	TIME	"*__OUT=(TIME	)__int_to_time	(EN,__ENO,IN);"
$create	INT_TO_TIME	INT	TIME	"*__OUT=(TIME	)__int_to_time	(EN,__ENO,IN);"
$create	DINT_TO_TIME	DINT	TIME	"*__OUT=(TIME	)__int_to_time	(EN,__ENO,IN);"
$create	LINT_TO_TIME	LINT	TIME	"*__OUT=(TIME	)__int_to_time	(EN,__ENO,IN);"
$create	USINT_TO_TIME	USINT	TIME	"*__OUT=(TIME	)__int_to_time	(EN,__ENO,IN);"
$create	UINT_TO_TIME	UINT	TIME	"*__OUT=(TIME	)__int_to_time	(EN,__ENO,IN);"
$create	UDINT_TO_TIME	UDINT	TIME	"*__OUT=(TIME	)__int_to_time	(EN,__ENO,IN);"
$create	ULINT_TO_TIME	ULINT	TIME	"*__OUT=(TIME	)__int_to_time	(EN,__ENO,IN);"
$create	REAL_TO_TIME	REAL	TIME	"*__OUT=(TIME	)__real_to_time	(EN,__ENO,IN);"
$create	LREAL_TO_TIME	LREAL	TIME	"*__OUT=(TIME	)__real_to_time	(EN,__ENO,IN);"

$create	TIME_TO_BYTE	TIME	BYTE	"*__OUT=(BYTE	)__time_to_int	(EN,__ENO,IN);"	
$create	TIME_TO_WORD	TIME	WORD	"*__OUT=(WORD	)__time_to_int	(EN,__ENO,IN);"	
$create	TIME_TO_DWORD	TIME	DWORD	"*__OUT=(DWORD	)__time_to_int	(EN,__ENO,IN);"	
$create	TIME_TO_LWORD	TIME	LWORD	"*__OUT=(LWORD	)__time_to_int	(EN,__ENO,IN);"	
$create	TIME_TO_SINT	TIME	SINT	"*__OUT=(SINT	)__time_to_int	(EN,__ENO,IN);"	
$create	TIME_TO_INT	TIME	INT	"*__OUT=(INT	)__time_to_int	(EN,__ENO,IN);"	
$create	TIME_TO_DINT	TIME	DINT	"*__OUT=(DINT	)__time_to_int	(EN,__ENO,IN);"	
$create	TIME_TO_LINT	TIME	LINT	"*__OUT=(LINT	)__time_to_int	(EN,__ENO,IN);"	
$create	TIME_TO_USINT	TIME	USINT	"*__OUT=(USINT	)__time_to_int	(EN,__ENO,IN);"	
$create	TIME_TO_UINT	TIME	UINT	"*__OUT=(UINT	)__time_to_int	(EN,__ENO,IN);"	
$create	TIME_TO_UDINT	TIME	UDINT	"*__OUT=(UDINT	)__time_to_int	(EN,__ENO,IN);"	
$create	TIME_TO_ULINT	TIME	ULINT	"*__OUT=(ULINT	)__time_to_int	(EN,__ENO,IN);"	
$create	TIME_TO_REAL	TIME	REAL	"*__OUT=(REAL	)__time_to_real	(EN,__ENO,IN);"	
$create	TIME_TO_LREAL	TIME	LREAL	"*__OUT=(LREAL	)__time_to_real	(EN,__ENO,IN);"	


##############################
# Handling of DATE_AND_TIME  #
##############################
$create	BOOL_TO_DT	BOOL	DT	"*__OUT=(DT	)__int_to_time	(EN,__ENO,IN);"
$create	BYTE_TO_DT	BYTE	DT	"*__OUT=(DT	)__int_to_time	(EN,__ENO,IN);"
$create	WORD_TO_DT	WORD	DT	"*__OUT=(DT	)__int_to_time	(EN,__ENO,IN);"
$create	DWORD_TO_DT	DWORD	DT	"*__OUT=(DT	)__int_to_time	(EN,__ENO,IN);"
$create	LWORD_TO_DT	LWORD	DT	"*__OUT=(DT	)__int_to_time	(EN,__ENO,IN);"
$create	SINT_TO_DT	SINT	DT	"*__OUT=(DT	)__int_to_time	(EN,__ENO,IN);"
$create	INT_TO_DT	INT	DT	"*__OUT=(DT	)__int_to_time	(EN,__ENO,IN);"
$create	DINT_TO_DT	DINT	DT	"*__OUT=(DT	)__int_to_time	(EN,__ENO,IN);"
$create	LINT_TO_DT	LINT	DT	"*__OUT=(DT	)__int_to_time	(EN,__ENO,IN);"
$create	USINT_TO_DT	USINT	DT	"*__OUT=(DT	)__int_to_time	(EN,__ENO,IN);"
$create	UINT_TO_DT	UINT	DT	"*__OUT=(DT	)__int_to_time	(EN,__ENO,IN);"
$create	UDINT_TO_DT	UDINT	DT	"*__OUT=(DT	)__int_to_time	(EN,__ENO,IN);"
$create	ULINT_TO_DT	ULINT	DT	"*__OUT=(DT	)__int_to_time	(EN,__ENO,IN);"
$create	REAL_TO_DT	REAL	DT	"*__OUT=(DT	)__real_to_time	(EN,__ENO,IN);"
$create	LREAL_TO_DT	LREAL	DT	"*__OUT=(DT	)__real_to_time	(EN,__ENO,IN);"

$create	DT_TO_BYTE	DT	BYTE	"*__OUT=(BYTE	)__time_to_int	(EN,__ENO,IN);"	
$create	DT_TO_WORD	DT	WORD	"*__OUT=(WORD	)__time_to_int	(EN,__ENO,IN);"	
$create	DT_TO_DWORD	DT	DWORD	"*__OUT=(DWORD	)__time_to_int	(EN,__ENO,IN);"	
$create	DT_TO_LWORD	DT	LWORD	"*__OUT=(LWORD	)__time_to_int	(EN,__ENO,IN);"	
$create	DT_TO_SINT	DT	SINT	"*__OUT=(SINT	)__time_to_int	(EN,__ENO,IN);"	
$create	DT_TO_INT	DT	INT	"*__OUT=(INT	)__time_to_int	(EN,__ENO,IN);"	
$create	DT_TO_DINT	DT	DINT	"*__OUT=(DINT	)__time_to_int	(EN,__ENO,IN);"	
$create	DT_TO_LINT	DT	LINT	"*__OUT=(LINT	)__time_to_int	(EN,__ENO,IN);"	
$create	DT_TO_USINT	DT	USINT	"*__OUT=(USINT	)__time_to_int	(EN,__ENO,IN);"	
$create	DT_TO_UINT	DT	UINT	"*__OUT=(UINT	)__time_to_int	(EN,__ENO,IN);"	
$create	DT_TO_UDINT	DT	UDINT	"*__OUT=(UDINT	)__time_to_int	(EN,__ENO,IN);"	
$create	DT_TO_ULINT	DT	ULINT	"*__OUT=(ULINT	)__time_to_int	(EN,__ENO,IN);"	
$create	DT_TO_REAL	DT	REAL	"*__OUT=(REAL	)__time_to_real	(EN,__ENO,IN);"	
$create	DT_TO_LREAL	DT	LREAL	"*__OUT=(LREAL	)__time_to_real	(EN,__ENO,IN);"	


####################
# Handling of TOD  #
####################

$create	BOOL_TO_TOD	BOOL	TOD	"*__OUT=(TOD	)__int_to_time	(EN,__ENO,IN);"
$create	BYTE_TO_TOD	BYTE	TOD	"*__OUT=(TOD	)__int_to_time	(EN,__ENO,IN);"
$create	WORD_TO_TOD	WORD	TOD	"*__OUT=(TOD	)__int_to_time	(EN,__ENO,IN);"
$create	DWORD_TO_TOD	DWORD	TOD	"*__OUT=(TOD	)__int_to_time	(EN,__ENO,IN);"
$create	LWORD_TO_TOD	LWORD	TOD	"*__OUT=(TOD	)__int_to_time	(EN,__ENO,IN);"
$create	SINT_TO_TOD	SINT	TOD	"*__OUT=(TOD	)__int_to_time	(EN,__ENO,IN);"
$create	INT_TO_TOD	INT	TOD	"*__OUT=(TOD	)__int_to_time	(EN,__ENO,IN);"
$create	DINT_TO_TOD	DINT	TOD	"*__OUT=(TOD	)__int_to_time	(EN,__ENO,IN);"
$create	LINT_TO_TOD	LINT	TOD	"*__OUT=(TOD	)__int_to_time	(EN,__ENO,IN);"
$create	USINT_TO_TOD	USINT	TOD	"*__OUT=(TOD	)__int_to_time	(EN,__ENO,IN);"
$create	UINT_TO_TOD	UINT	TOD	"*__OUT=(TOD	)__int_to_time	(EN,__ENO,IN);"
$create	UDINT_TO_TOD	UDINT	TOD	"*__OUT=(TOD	)__int_to_time	(EN,__ENO,IN);"
$create	ULINT_TO_TOD	ULINT	TOD	"*__OUT=(TOD	)__int_to_time	(EN,__ENO,IN);"
$create	REAL_TO_TOD	REAL	TOD	"*__OUT=(TOD	)__real_to_time	(EN,__ENO,IN);"
$create	LREAL_TO_TOD	LREAL	TOD	"*__OUT=(TOD	)__real_to_time	(EN,__ENO,IN);"

$create	TOD_TO_BYTE	TOD	BYTE	"*__OUT=(BYTE	)__time_to_int	(EN,__ENO,IN);"	
$create	TOD_TO_WORD	TOD	WORD	"*__OUT=(WORD	)__time_to_int	(EN,__ENO,IN);"	
$create	TOD_TO_DWORD	TOD	DWORD	"*__OUT=(DWORD	)__time_to_int	(EN,__ENO,IN);"	
$create	TOD_TO_LWORD	TOD	LWORD	"*__OUT=(LWORD	)__time_to_int	(EN,__ENO,IN);"	
$create	TOD_TO_SINT	TOD	SINT	"*__OUT=(SINT	)__time_to_int	(EN,__ENO,IN);"	
$create	TOD_TO_INT	TOD	INT	"*__OUT=(INT	)__time_to_int	(EN,__ENO,IN);"	
$create	TOD_TO_DINT	TOD	DINT	"*__OUT=(DINT	)__time_to_int	(EN,__ENO,IN);"	
$create	TOD_TO_LINT	TOD	LINT	"*__OUT=(LINT	)__time_to_int	(EN,__ENO,IN);"	
$create	TOD_TO_USINT	TOD	USINT	"*__OUT=(USINT	)__time_to_int	(EN,__ENO,IN);"	
$create	TOD_TO_UINT	TOD	UINT	"*__OUT=(UINT	)__time_to_int	(EN,__ENO,IN);"	
$create	TOD_TO_UDINT	TOD	UDINT	"*__OUT=(UDINT	)__time_to_int	(EN,__ENO,IN);"	
$create	TOD_TO_ULINT	TOD	ULINT	"*__OUT=(ULINT	)__time_to_int	(EN,__ENO,IN);"	
$create	TOD_TO_REAL	TOD	REAL	"*__OUT=(REAL	)__time_to_real	(EN,__ENO,IN);"	
$create	TOD_TO_LREAL	TOD	LREAL	"*__OUT=(LREAL	)__time_to_real	(EN,__ENO,IN);"	



                                                                                                                                                 
$create DATE_AND_TIME_TO_TIME_OF_DAY	DT       TOD	"*__OUT = (TOD	)__date_and_time_to_time_of_day(EN,__ENO,IN);" 
$create DATE_AND_TIME_TO_DATE	DT	DATE	"*__OUT = (DATE	)__date_and_time_to_date(EN,__ENO,IN);" 
                                                                                                                     



$create_end    

                                                                                          
# *BCD_TO_**   and   **_TO_BCD*     are not yet supported                        
# We comment them out for now...                                                  
exit 0                                                                                     
create   UDINT_TO_BCD_BYTE               UDINT                BYTE                             
create   UDINT_TO_BCD_WORD               UDINT                WORD                             
create   UDINT_TO_BCD_DWORD              UDINT                DWORD                            
create   UDINT_TO_BCD_LWORD              UDINT                LWORD                            
create    UINT_TO_BCD_BYTE                UINT                BYTE                             
create    UINT_TO_BCD_WORD                UINT                WORD                             
create    UINT_TO_BCD_DWORD               UINT                DWORD                            
create    UINT_TO_BCD_LWORD               UINT                LWORD                            
create   USINT_TO_BCD_BYTE               USINT                BYTE                             
create   USINT_TO_BCD_WORD               USINT                WORD                             
create   USINT_TO_BCD_DWORD              USINT                DWORD                            
create   USINT_TO_BCD_LWORD              USINT                LWORD               
create   ULINT_TO_BCD_BYTE               ULINT                BYTE                
create   ULINT_TO_BCD_WORD               ULINT                WORD                
create   ULINT_TO_BCD_DWORD              ULINT                DWORD               
create   ULINT_TO_BCD_LWORD              ULINT                LWORD               
                                                                                  
create   BYTE_BCD_TO_UDINT               BYTE                 UDINT                
create   WORD_BCD_TO_UDINT               WORD                 UDINT                
create  DWORD_BCD_TO_UDINT               DWORD                UDINT                
create  LWORD_BCD_TO_UDINT               LWORD                UDINT                
create   BYTE_BCD_TO_UINT                BYTE                 UINT                   
create   WORD_BCD_TO_UINT                WORD                 UINT                   
create  DWORD_BCD_TO_UINT                DWORD                UINT                   
create  LWORD_BCD_TO_UINT                LWORD                UINT                   
create   BYTE_BCD_TO_USINT               BYTE                 USINT                      
create   WORD_BCD_TO_USINT               WORD                 USINT                      
create  DWORD_BCD_TO_USINT               DWORD                USINT                      
create  LWORD_BCD_TO_USINT               LWORD                USINT                      
create   BYTE_BCD_TO_ULINT               BYTE                 ULINT                      
create   WORD_BCD_TO_ULINT               WORD                 ULINT                      
create  DWORD_BCD_TO_ULINT               DWORD                ULINT                      
create  LWORD_BCD_TO_ULINT               LWORD                ULINT                      



exit 0

    ABS             
    SQRT
    LN
    LOG
    EXP
    SIN
    COS
    TAN
    ASIN
    ACOS
    ATAN
    ADD
    MUL
    SUB
    DIV
    MOD
    EXPT
    MOVE
    SHL
    SHR
    ROR
    ROL
    AND
    OR
    XOR
    NOT
    SEL
    MAX
    MIN
    LIMIT
    MUX
    GT
    GE
    EQ
    LT
    LE
    NE
    LEN
    LEFT
    RIGHT
    MID
    CONCAT
    INSERT
    DELETE
    REPLACE
    FIND
    
    TRUNC