lib/time_math.txt
changeset 40 873a5b60a7ea
parent 39 e08c65e27557
child 41 8998c8b24b60
--- a/lib/time_math.txt	Wed Jul 11 09:53:27 2007 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,360 +0,0 @@
-(*
- * (c) 2005 Mario de Sousa
- *
- * Offered to the public under the terms of the GNU 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 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.
- *)
-
-(*
- * An IEC 61131-3 IL and ST compiler.
- *
- * Based on the
- * FINAL DRAFT - IEC 61131-3, 2nd Ed. (2001-12-10)
- *
- *)
-
-(*
- * This is part of the library conatining the functions
- * and function blocks defined in the standard.
- *
- * Math functions on Time and Date data types.
- * -------------------------------------------
- *
- * We also include the two data type conversions defined in table 30 of the IEC 61131-3 standard (version
- *)
-
-
-(* NOTE: The IEC 61131-3 standard library includes overloaded functions, which are not
- * allowed in user code. Since our compiler does not yet support overloaded functions, these
- * are commented out in the following library for the moment...
- *)
-
-(***************)
-(* TIME + TIME *)
-(***************)
-
-FUNCTION ADD : TIME
-  VAR_INPUT
-    IN1 : TIME;
-    IN2 : TIME;
-  END_VAR
-
-  ADD := IN1 + IN2;
-END_FUNCTION
-
-
-FUNCTION ADD_TIME : TIME
-  VAR_INPUT
-    IN1 : TIME;
-    IN2 : TIME;
-  END_VAR
-
-  ADD_TIME := IN1 + IN2;
-END_FUNCTION
-
-
-FUNCTION SUB : TIME
-  VAR_INPUT
-    IN1 : TIME;
-    IN2 : TIME;
-  END_VAR
-
-  SUB := IN1 - IN2;
-END_FUNCTION
-
-
-FUNCTION SUB_TIME : TIME
-  VAR_INPUT
-    IN1 : TIME;
-    IN2 : TIME;
-  END_VAR
-
-  SUB_TIME := IN1 - IN2;
-END_FUNCTION
-
-
-
-(**************)
-(* TIME + TOD *)
-(**************)
-
-FUNCTION ADD : TOD
-  VAR_INPUT
-    IN1 : TOD;
-    IN2 : TIME;
-  END_VAR
-
-  ADD := IN1 + IN2;
-END_FUNCTION
-
-
-(* The following function is not defined in the standard, but its existance makes sense. *)
-FUNCTION ADD : TOD
-  VAR_INPUT
-    IN1 : TIME;
-    IN2 : TOD;
-  END_VAR
-
-  ADD := IN1 + IN2;
-END_FUNCTION
-
-
-FUNCTION ADD_TOD_TIME : TOD
-  VAR_INPUT
-    IN1 : TOD;
-    IN2 : TIME;
-  END_VAR
-
-  ADD_TOD_TIME := IN1 + IN2;
-END_FUNCTION
-
-
-FUNCTION SUB : TOD
-  VAR_INPUT
-    IN1 : TOD;
-    IN2 : TIME;
-  END_VAR
-
-  SUB := IN1 - IN2;
-END_FUNCTION
-
-
-FUNCTION SUB_TOD_TIME : TOD
-  VAR_INPUT
-    IN1 : TOD;
-    IN2 : TIME;
-  END_VAR
-
-  SUB_TOD_TIME := IN1 - IN2;
-END_FUNCTION
-
-
-
-(*************)
-(* TIME + DT *)
-(*************)
-
-FUNCTION ADD : DT
-  VAR_INPUT
-    IN1 : DT;
-    IN2 : TIME;
-  END_VAR
-
-  ADD := IN1 + IN2;
-END_FUNCTION
-
-
-(* The following function is not defined in the standard, but its existance makes sense. *)
-FUNCTION ADD : DT
-  VAR_INPUT
-    IN1 : TIME;
-    IN2 : DT;
-  END_VAR
-
-  ADD := IN1 + IN2;
-END_FUNCTION
-
-
-FUNCTION ADD_DT_TIME : DT
-  VAR_INPUT
-    IN1 : DT;
-    IN2 : TIME;
-  END_VAR
-
-  ADD_DT_TIME := IN1 + IN2;
-END_FUNCTION
-
-
-
-(***************)
-(* DATE + DATE *)
-(***************)
-
-FUNCTION SUB : TIME
-  VAR_INPUT
-    IN1 : DATE;
-    IN2 : DATE;
-  END_VAR
-
-  SUB := IN1 - IN2;
-END_FUNCTION
-
-
-FUNCTION SUB_DATE_DATE : TIME
-  VAR_INPUT
-    IN1 : DATE;
-    IN2 : DATE;
-  END_VAR
-
-  SUB_DATE_DATE := IN1 - IN2;
-END_FUNCTION
-
-
-
-(*************)
-(* TOD + TOD *)
-(*************)
-
-FUNCTION SUB : TIME
-  VAR_INPUT
-    IN1 : TOD;
-    IN2 : TOD;
-  END_VAR
-
-  SUB := IN1 - IN2;
-END_FUNCTION
-
-
-FUNCTION SUB_TOD_TOD : TIME
-  VAR_INPUT
-    IN1 : TOD;
-    IN2 : TOD;
-  END_VAR
-
-  SUB_TOD_TOD := IN1 - IN2;
-END_FUNCTION
-
-
-
-(*************)
-(* TIME + DT *)
-(*************)
-
-FUNCTION SUB : DT
-  VAR_INPUT
-    IN1 : DT;
-    IN2 : TIME;
-  END_VAR
-
-  SUB := IN1 - IN2;
-END_FUNCTION
-
-
-FUNCTION SUB_DT_TIME : DT
-  VAR_INPUT
-    IN1 : DT;
-    IN2 : TIME;
-  END_VAR
-
-  SUB_DT_TIME := IN1 - IN2;
-END_FUNCTION
-
-
-
-(***********)
-(* DT + DT *)
-(***********)
-
-FUNCTION SUB : TIME
-  VAR_INPUT
-    IN1 : DT;
-    IN2 : DT;
-  END_VAR
-
-  SUB := IN1 - IN2;
-END_FUNCTION
-
-
-FUNCTION SUB_DT_DT : TIME
-  VAR_INPUT
-    IN1 : DT;
-    IN2 : DT;
-  END_VAR
-
-  SUB_DT_DT := IN1 - IN2;
-END_FUNCTION
-
-
-
-(******************)
-(* TIME * ANY_NUM *)
-(******************)
-
-FUNCTION MUL : TIME
-  VAR_INPUT
-    IN1 : TIME;
-    IN2 : LREAL;
-  END_VAR
-
-  MUL := IN1 * IN2;
-END_FUNCTION
-
-
-FUNCTION MULTIME : TIME
-  VAR_INPUT
-    IN1 : TIME;
-    IN2 : LREAL;
-  END_VAR
-
-  MULTIME := IN1 * IN2;
-END_FUNCTION
-
-
-FUNCTION DIV : TIME
-  VAR_INPUT
-    IN1 : TIME;
-    IN2 : LREAL;
-  END_VAR
-
-  DIV := IN1 / IN2;
-END_FUNCTION
-
-
-FUNCTION DIVTIME : TIME
-  VAR_INPUT
-    IN1 : TIME;
-    IN2 : LREAL;
-  END_VAR
-
-  DIVTIME := IN1 / IN2;
-END_FUNCTION
-
-
-
-(*************)
-(* DATE + DT *)
-(*************)
-
-FUNCTION CONCAT_DATE_TOD : DT
-  VAR_INPUT
-    IN1 : DATE;
-    IN2 : TOD;
-  END_VAR
-
-  CONCAT_DATE_TOD := IN1 + IN2;
-END_FUNCTION
-
-
-
-(*************************)
-(* Data Type Conversions *)
-(*************************)
-
-FUNCTION DT_TO_DATE : DATE
-  VAR_INPUT
-    IN1 : DT;
-  END_VAR
-
-  {DT_TO_DATE = IN1.__to_DATE();}
-END_FUNCTION
-
-
-
-FUNCTION DT_TO_TOD : TOD
-  VAR_INPUT
-    IN1 : DT;
-  END_VAR
-
-  {DT_TO_TOD = IN1.__to_TOD();}
-END_FUNCTION
-
-