Added Oven Control
This commit is contained in:
10
Logical/oven1/IEC.prg
Normal file
10
Logical/oven1/IEC.prg
Normal 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
19
Logical/oven1/oven.typ
Normal 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
29
Logical/oven1/oven.var
Normal 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
|
||||
12
Logical/oven1/oven1Init.st
Normal file
12
Logical/oven1/oven1Init.st
Normal 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
|
||||
|
||||
48
Logical/oven1/ovenCyclic.st
Normal file
48
Logical/oven1/ovenCyclic.st
Normal 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
|
||||
Reference in New Issue
Block a user