Added Oven Control

This commit is contained in:
Michael Rest
2012-11-21 08:30:52 +01:00
parent 4b9b3cb3d2
commit 21aaccf18f
5 changed files with 118 additions and 0 deletions

10
Logical/oven1/IEC.prg Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.90.22 SP04?>
<Program xmlns="http://br-automation.co.at/AS/Program">
<Files>
<File Description="Cyclic code">ovenCyclic.st</File>
<File Description="Initialization code">oven1Init.st</File>
<File Description="Local variables" Private="true">oven.var</File>
<File Description="Local data types" Private="true">oven.typ</File>
</Files>
</Program>

19
Logical/oven1/oven.typ Normal file
View File

@@ -0,0 +1,19 @@
(********************************************************************
* COPYRIGHT --
********************************************************************
* Program: collectd
* File: collectd.typ
* Author: michi
* Created: July 10, 2012
********************************************************************
* Local data types of program collectd
********************************************************************)
TYPE
Steps_enum :
(
enSTEP_INIT,
enSTEP_PARTS_INSERTED,
enSTEP_TEMP_REACHED
);
END_TYPE

29
Logical/oven1/oven.var Normal file
View File

@@ -0,0 +1,29 @@
(*//Dynamic Variables*)
VAR
iTemperature1 : REFERENCE TO INT; (*Temperature Sensor*)
iTemperature2 : REFERENCE TO INT; (*Temperature Sensor*)
iTemperature3 : REFERENCE TO INT; (*Temperature Sensor*)
iTemperature4 : REFERENCE TO INT; (*Temperature Sensor*)
iTemperature5 : REFERENCE TO INT; (*Temperature Sensor*)
iTemperature6 : REFERENCE TO INT; (*Temperature Sensor*)
iTemperature7 : REFERENCE TO INT; (*Temperature Sensor*)
iTemperature8 : REFERENCE TO INT; (*Temperature Sensor*)
END_VAR
(*//Local Vars*)
VAR
iAverageTemp : INT; (*Average Temp*)
iMinTemp : INT; (*Minimum Temp of the Sensors*)
iMaxTemp : INT; (*Maximum Temp of the Semsors*)
enStep : Steps_enum;
END_VAR
(*//FUBs*)
VAR
TON_Tempertime : TON;
END_VAR
(*//Constants*)
VAR CONSTANT
iTH_PartsInserted : INT := 1750; (*Value to detect parts inserted *)
iTH_StartTemperCycle : INT := 2000; (*Temperature when do start Tempercycle*)
iTH_TemperTemperature : INT := 2000; (*Temperature to keep during Tempercycle*)
tTemperTime : TIME := T#1h; (*Time of Tempercycle*)
END_VAR

View File

@@ -0,0 +1,12 @@
PROGRAM _INIT
iTemperature1 ACCESS ADR (giOven1Temp1);
iTemperature2 ACCESS ADR (giOven1Temp2);
iTemperature3 ACCESS ADR (giOven1Temp3);
iTemperature4 ACCESS ADR (giOven1Temp4);
iTemperature5 ACCESS ADR (giOven1Temp5);
iTemperature6 ACCESS ADR (giOven1Temp6);
iTemperature7 ACCESS ADR (giOven1Temp7);
iTemperature8 ACCESS ADR (giOven1Temp8);
END_PROGRAM

View File

@@ -0,0 +1,48 @@
(********************************************************************
* COPYRIGHT --
********************************************************************
* Program: oven1
* File: oven1Cyclic.st
* Author: michi
* Created: August 06, 2012
********************************************************************
* Implementation of program oven1
********************************************************************)
PROGRAM _CYCLIC
//Calculate Average Temperature
iAverageTemp := (iTemperature1
+ iTemperature2
+ iTemperature3
+ iTemperature4
+ iTemperature5
+ iTemperature6
+ iTemperature7
+ iTemperature8) / 8;
//Get Min / Max Temps
iMinTemp := MIN (iTemperature1, iTemperature2);
iMinTemp := MIN (iMinTemp, iTemperature3);
iMinTemp := MIN (iMinTemp, iTemperature4);
iMinTemp := MIN (iMinTemp, iTemperature5);
iMinTemp := MIN (iMinTemp, iTemperature6);
iMinTemp := MIN (iMinTemp, iTemperature7);
iMinTemp := MIN (iMinTemp, iTemperature8);
iMaxTemp := MAX (iTemperature1, iTemperature2);
iMaxTemp := MAX (iMaxTemp, iTemperature3);
iMaxTemp := MAX (iMaxTemp, iTemperature4);
iMaxTemp := MAX (iMaxTemp, iTemperature5);
iMaxTemp := MAX (iMaxTemp, iTemperature6);
iMaxTemp := MAX (iMaxTemp, iTemperature7);
iMaxTemp := MAX (iMaxTemp, iTemperature8);
CASE enStep OF
//==========================================
enSTEP_INIT:
END_CASE
END_PROGRAM