Working State

This commit is contained in:
Michael Rest
2012-11-21 08:30:24 +01:00
parent 409a40994c
commit 4b9b3cb3d2
84 changed files with 22632 additions and 22382 deletions

View File

@@ -14,9 +14,10 @@ udSwitchYears = ((gDTSActTimeUTC.year - 1) - 1968) / 4\
- ((gDTSActTimeUTC.year - 1) - 1900) / 100\
+ ((gDTSActTimeUTC.year - 1) - 1600) / 400
udUnixTime = gDTSActTimeUTC.second + 60 * gDTSActTimeUTC.minute + 3600 * gDTSActTimeUTC.hour + \
udUnixTime = gDTSActTimeUTC.second + UDINT (60) * gDTSActTimeUTC.minute + UDINT (3600) * gDTSActTimeUTC.hour + \
(uiDaysToMonthStart[gDTSActTimeUTC.month - 1] + gDTSActTimeUTC.day -1 + udYears * 365 + udSwitchYears) * 86400
IF (gDTSActTimeUTC.month > 2) AND (gDTSActTimeUTC.year MOD 4 = 0) AND ((gDTSActTimeUTC.year MOD 100 <> 0) OR (gDTSActTimeUTC.year MOD 400 = 0)) THEN
udUnixTime = udUnixTime + 86400
ENDIF

View File

@@ -76,8 +76,7 @@ PROGRAM _CYCLIC
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
//SGC is already little endian
//ludUnixTimeUTC := H_TO_NDINT (gudUnixTimeUTC);
ludUnixTimeUTC := H_TO_NDINT (gudUnixTimeUTC);
ludNextAdr := memcpy (ludNextAdr, ADR (gudUnixTimeUTC), 4);
//INTERVAL
ludNextAdr := memcpy (ludNextAdr, ADR (PT_INTERVAL), 2);
@@ -90,7 +89,7 @@ PROGRAM _CYCLIC
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$1E'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$0A'), 1);
//PLUGIN
ludNextAdr := memcpy (ludNextAdr, ADR (PT_PLUGIN), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
@@ -350,6 +349,261 @@ PROGRAM _CYCLIC
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) , 1);
//PLUGIN_INSTANCE
ludNextAdr := memcpy (ludNextAdr, ADR (PT_PLUGIN_INSTANCE), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$07'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('02'), 3);
//TYPE
ludNextAdr := memcpy (ludNextAdr, ADR (PT_TYPE), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$10'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('temperature'), 12);
//TYPE_INSTANCE
ludNextAdr := memcpy (ludNextAdr, ADR (PT_TYPE_INSTANCE), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$08'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('t01'), 4);
//VALUES
ludNextAdr := memcpy (ludNextAdr, ADR (PT_VALUES), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$0f'), 1); //15, 24, 33, 42, 51, 60
//valuecount
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$01'), 1);
//Value 1
ludNextAdr := memcpy (ludNextAdr, ADR (VT_GAUGE), 1);
IF giOven2Temp1 < 32767 THEN
lrValue := INT_TO_REAL (giOven2Temp1) / 10.0;
ELSE
lrValue := 0;
END_IF;
memcpy (ADR (ldValue), ADR (lrValue), 4);
ldValue1 := 0;
ldValue2 := ldValue AND 2#10000000_00000000_00000000_00000000;
ldValue2 := ldValue2 OR SHL (INT_TO_DWORD (DWORD_TO_INT (SHR ((ldValue AND 2#01111111_10000000_00000000_00000000), 23)) + 896), 20);
ldValue2 := ldValue2 OR SHR ((ldValue AND 2#00000000_01111111_11111111_11111111), 3);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue1), 4);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 3 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 2 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 1 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) , 1);
//TYPE_INSTANCE
ludNextAdr := memcpy (ludNextAdr, ADR (PT_TYPE_INSTANCE), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$08'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('t02'), 4);
//VALUES
ludNextAdr := memcpy (ludNextAdr, ADR (PT_VALUES), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$0f'), 1); //15, 24, 33, 42, 51, 60
//valuecount
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$01'), 1);
//Value 1
ludNextAdr := memcpy (ludNextAdr, ADR (VT_GAUGE), 1);
IF giOven2Temp2 < 32767 THEN
lrValue := INT_TO_REAL (giOven2Temp2) / 10.0;
ELSE
lrValue := 0;
END_IF;
memcpy (ADR (ldValue), ADR (lrValue), 4);
ldValue1 := 0;
ldValue2 := ldValue AND 2#10000000_00000000_00000000_00000000;
ldValue2 := ldValue2 OR SHL (INT_TO_DWORD (DWORD_TO_INT (SHR ((ldValue AND 2#01111111_10000000_00000000_00000000), 23)) + 896), 20);
ldValue2 := ldValue2 OR SHR ((ldValue AND 2#00000000_01111111_11111111_11111111), 3);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue1), 4);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 3 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 2 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 1 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) , 1);
//TYPE_INSTANCE
ludNextAdr := memcpy (ludNextAdr, ADR (PT_TYPE_INSTANCE), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$08'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('t03'), 4);
//VALUES
ludNextAdr := memcpy (ludNextAdr, ADR (PT_VALUES), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$0f'), 1); //15, 24, 33, 42, 51, 60
//valuecount
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$01'), 1);
//Value 1
ludNextAdr := memcpy (ludNextAdr, ADR (VT_GAUGE), 1);
IF giOven2Temp3 < 32767 THEN
lrValue := INT_TO_REAL (giOven2Temp3) / 10.0;
ELSE
lrValue := 0;
END_IF;
memcpy (ADR (ldValue), ADR (lrValue), 4);
ldValue1 := 0;
ldValue2 := ldValue AND 2#10000000_00000000_00000000_00000000;
ldValue2 := ldValue2 OR SHL (INT_TO_DWORD (DWORD_TO_INT (SHR ((ldValue AND 2#01111111_10000000_00000000_00000000), 23)) + 896), 20);
ldValue2 := ldValue2 OR SHR ((ldValue AND 2#00000000_01111111_11111111_11111111), 3);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue1), 4);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 3 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 2 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 1 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) , 1);
//TYPE_INSTANCE
ludNextAdr := memcpy (ludNextAdr, ADR (PT_TYPE_INSTANCE), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$08'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('t04'), 4);
//VALUES
ludNextAdr := memcpy (ludNextAdr, ADR (PT_VALUES), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$0f'), 1); //15, 24, 33, 42, 51, 60
//valuecount
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$01'), 1);
//Value 1
ludNextAdr := memcpy (ludNextAdr, ADR (VT_GAUGE), 1);
IF giOven2Temp4 < 32767 THEN
lrValue := INT_TO_REAL (giOven2Temp4) / 10.0;
ELSE
lrValue := 0;
END_IF;
memcpy (ADR (ldValue), ADR (lrValue), 4);
ldValue1 := 0;
ldValue2 := ldValue AND 2#10000000_00000000_00000000_00000000;
ldValue2 := ldValue2 OR SHL (INT_TO_DWORD (DWORD_TO_INT (SHR ((ldValue AND 2#01111111_10000000_00000000_00000000), 23)) + 896), 20);
ldValue2 := ldValue2 OR SHR ((ldValue AND 2#00000000_01111111_11111111_11111111), 3);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue1), 4);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 3 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 2 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 1 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) , 1);
//TYPE_INSTANCE
ludNextAdr := memcpy (ludNextAdr, ADR (PT_TYPE_INSTANCE), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$08'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('t05'), 4);
//VALUES
ludNextAdr := memcpy (ludNextAdr, ADR (PT_VALUES), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$0f'), 1); //15, 24, 33, 42, 51, 60
//valuecount
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$01'), 1);
//Value 1
ludNextAdr := memcpy (ludNextAdr, ADR (VT_GAUGE), 1);
IF giOven2Temp5 < 32767 THEN
lrValue := INT_TO_REAL (giOven2Temp5) / 10.0;
ELSE
lrValue := 0;
END_IF;
memcpy (ADR (ldValue), ADR (lrValue), 4);
ldValue1 := 0;
ldValue2 := ldValue AND 2#10000000_00000000_00000000_00000000;
ldValue2 := ldValue2 OR SHL (INT_TO_DWORD (DWORD_TO_INT (SHR ((ldValue AND 2#01111111_10000000_00000000_00000000), 23)) + 896), 20);
ldValue2 := ldValue2 OR SHR ((ldValue AND 2#00000000_01111111_11111111_11111111), 3);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue1), 4);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 3 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 2 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 1 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) , 1);
//TYPE_INSTANCE
ludNextAdr := memcpy (ludNextAdr, ADR (PT_TYPE_INSTANCE), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$08'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('t06'), 4);
//VALUES
ludNextAdr := memcpy (ludNextAdr, ADR (PT_VALUES), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$0f'), 1); //15, 24, 33, 42, 51, 60
//valuecount
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$01'), 1);
//Value 1
ludNextAdr := memcpy (ludNextAdr, ADR (VT_GAUGE), 1);
IF giOven2Temp6 < 32767 THEN
lrValue := INT_TO_REAL (giOven2Temp6) / 10.0;
ELSE
lrValue := 0;
END_IF;
memcpy (ADR (ldValue), ADR (lrValue), 4);
ldValue1 := 0;
ldValue2 := ldValue AND 2#10000000_00000000_00000000_00000000;
ldValue2 := ldValue2 OR SHL (INT_TO_DWORD (DWORD_TO_INT (SHR ((ldValue AND 2#01111111_10000000_00000000_00000000), 23)) + 896), 20);
ldValue2 := ldValue2 OR SHR ((ldValue AND 2#00000000_01111111_11111111_11111111), 3);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue1), 4);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 3 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 2 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 1 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) , 1);
//TYPE_INSTANCE
ludNextAdr := memcpy (ludNextAdr, ADR (PT_TYPE_INSTANCE), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$08'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('t07'), 4);
//VALUES
ludNextAdr := memcpy (ludNextAdr, ADR (PT_VALUES), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$0f'), 1); //15, 24, 33, 42, 51, 60
//valuecount
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$01'), 1);
//Value 1
ludNextAdr := memcpy (ludNextAdr, ADR (VT_GAUGE), 1);
IF giOven2Temp7 < 32767 THEN
lrValue := INT_TO_REAL (giOven2Temp7) / 10.0;
ELSE
lrValue := 0;
END_IF;
memcpy (ADR (ldValue), ADR (lrValue), 4);
ldValue1 := 0;
ldValue2 := ldValue AND 2#10000000_00000000_00000000_00000000;
ldValue2 := ldValue2 OR SHL (INT_TO_DWORD (DWORD_TO_INT (SHR ((ldValue AND 2#01111111_10000000_00000000_00000000), 23)) + 896), 20);
ldValue2 := ldValue2 OR SHR ((ldValue AND 2#00000000_01111111_11111111_11111111), 3);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue1), 4);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 3 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 2 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 1 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) , 1);
//TYPE_INSTANCE
ludNextAdr := memcpy (ludNextAdr, ADR (PT_TYPE_INSTANCE), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$08'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('t08'), 4);
//VALUES
ludNextAdr := memcpy (ludNextAdr, ADR (PT_VALUES), 2);
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$0f'), 1); //15, 24, 33, 42, 51, 60
//valuecount
ludNextAdr := memcpy (ludNextAdr, ADR ('$00'), 1);
ludNextAdr := memcpy (ludNextAdr, ADR ('$01'), 1);
//Value 1
ludNextAdr := memcpy (ludNextAdr, ADR (VT_GAUGE), 1);
IF giOven2Temp8 < 32767 THEN
lrValue := INT_TO_REAL (giOven2Temp8) / 10.0;
ELSE
lrValue := 0;
END_IF;
memcpy (ADR (ldValue), ADR (lrValue), 4);
ldValue1 := 0;
ldValue2 := ldValue AND 2#10000000_00000000_00000000_00000000;
ldValue2 := ldValue2 OR SHL (INT_TO_DWORD (DWORD_TO_INT (SHR ((ldValue AND 2#01111111_10000000_00000000_00000000), 23)) + 896), 20);
ldValue2 := ldValue2 OR SHR ((ldValue AND 2#00000000_01111111_11111111_11111111), 3);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue1), 4);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 3 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 2 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) + 1 , 1);
ludNextAdr := memcpy (ludNextAdr, ADR (ldValue2) , 1);
enStep := enSTEP_SEND;
//==========================================
@@ -362,7 +616,7 @@ PROGRAM _CYCLIC
IF luiStatus = 0 THEN
TON_Delay.IN := 1;
TON_Delay.PT := t#30s;
TON_Delay.PT := t#10s;
enStep := enSTEP_WAIT;
ELSIF luiStatus <> ERR_FUB_BUSY THEN
enStep := enSTEP_ERROR;

View File

@@ -1,12 +1,3 @@
(********************************************************************
* COPYRIGHT --
********************************************************************
* File: Global.var
* Author: Administrator
* Created: November 03, 2011
********************************************************************
* Global variables of project testplc
********************************************************************)
VAR
giOven1Temp1 : INT;
giOven1Temp2 : INT;

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.90.21 SP03?>
<?AutomationStudio Version=3.0.90.22 SP04?>
<Package xmlns="http://br-automation.co.at/AS/Package">
<Objects>
<Object Type="File" Description="Global data types">Global.typ</Object>
@@ -7,5 +7,6 @@
<Object Type="Package" Description="Common Defaults">Common</Object>
<Object Type="Package" Description="Communication">Communication</Object>
<Object Type="Package" Description="Global libraries">Libraries</Object>
<Object Type="Program" Language="IEC" Description="Oven locic">oven1</Object>
</Objects>
</Package>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<?AutomationStudio Version=3.0.90.21 SP03?>
<?AutomationStudio Version=3.0.90.22 SP04?>
<SwConfiguration CpuAddress="SL1" xmlns="http://br-automation.co.at/AS/SwConfiguration">
<TaskClass Name="Cyclic#1">
<Task Name="get_dt" Source="Common.get_dt.prg" Memory="UserROM" Language="IEC" Debugging="true" />
@@ -7,16 +7,19 @@
<TaskClass Name="Cyclic#2">
<Task Name="collectd" Source="Communication.collectd.prg" Memory="UserROM" Language="IEC" Debugging="true" />
</TaskClass>
<TaskClass Name="Cyclic#3" />
<TaskClass Name="Cyclic#3">
<Task Name="oven1" Source="oven1.prg" Memory="UserROM" Language="IEC" Debugging="true" />
</TaskClass>
<TaskClass Name="Cyclic#4" />
<DataObjects />
<NcDataObjects />
<VcDataObjects />
<Binaries>
<BinaryObject Name="asfw" Source="" Memory="SystemROM" Language="Binary" />
<BinaryObject Name="arconfig" Source="" Memory="SystemROM" Language="Binary" />
<BinaryObject Name="iomap" Source="" Memory="UserROM" Language="Binary" />
<BinaryObject Name="gcloader" Source="" Memory="UserROM" Language="Binary" />
<BinaryObject Name="sysconf" Source="" Memory="SystemROM" Language="Binary" />
<BinaryObject Name="iomap" Source="" Memory="UserROM" Language="Binary" />
<BinaryObject Name="arconfig" Source="" Memory="SystemROM" Language="Binary" />
<BinaryObject Name="asfw" Source="" Memory="SystemROM" Language="Binary" />
<BinaryObject Name="rtk68k" Source="" Memory="UserROM" Language="Binary" />
</Binaries>
<Libraries>
@@ -28,7 +31,7 @@
<LibraryObject Name="standard" Source="Libraries.standard.lby" Memory="UserROM" Language="Binary" Debugging="true" />
<LibraryObject Name="asieccon" Source="" Memory="UserROM" Language="Binary" Debugging="true" />
<LibraryObject Name="astime" Source="" Memory="UserROM" Language="Binary" Debugging="true" />
<LibraryObject Name="asima" Source="" Memory="UserROM" Language="Binary" Debugging="true" />
<LibraryObject Name="asstring" Source="" Memory="UserROM" Language="Binary" Debugging="true" />
<LibraryObject Name="asima" Source="" Memory="UserROM" Language="Binary" Debugging="true" />
</Libraries>
</SwConfiguration>