diff --git a/Development/Archive.prj b/Development/Archive.prj
index db209a6..5bbf7cf 100644
--- a/Development/Archive.prj
+++ b/Development/Archive.prj
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f301a91165c7ac8216efc8f1856f0f80bdd2089df694206460584a06cc6b53cc
-size 13195612
+oid sha256:64e6f8d1b41cd9f4ecc1ea3782f48552ae86ddefafbcf13cf0ad94f9580b08ab
+size 12785221
diff --git a/Development/cr_barn5-User-ATOM-CRDESKTOP.opt b/Development/cr_barn5-User-ATOM-CRDESKTOP.opt
index 8cd48b7..9518abb 100644
Binary files a/Development/cr_barn5-User-ATOM-CRDESKTOP.opt and b/Development/cr_barn5-User-ATOM-CRDESKTOP.opt differ
diff --git a/Development/cr_barn5.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.bootinfo b/Development/cr_barn5.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.bootinfo
new file mode 100644
index 0000000..ec53beb
--- /dev/null
+++ b/Development/cr_barn5.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.bootinfo
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f6097c821ddb5359fc17b84a020645a1f6591de230c5d15ff3ef3538fb1f9cfe
+size 57652938
diff --git a/Development/cr_barn5.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.bootinfo_guids b/Development/cr_barn5.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.bootinfo_guids
new file mode 100644
index 0000000..7850259
--- /dev/null
+++ b/Development/cr_barn5.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.bootinfo_guids
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:25b8e4375e1bd693f259413d447d2e7926d513dcdec5458d886f31604d472d7a
+size 32
diff --git a/Development/cr_barn5.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.compileinfo b/Development/cr_barn5.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.compileinfo
new file mode 100644
index 0000000..54f30ff
--- /dev/null
+++ b/Development/cr_barn5.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.compileinfo
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e9c4ebccd3f3fc21f5ce7c5a0fbdeed4203eb4149edd4cd648165f8bad3a655a
+size 57543364
diff --git a/Development/cr_barn5.Device.Application.xml b/Development/cr_barn5.Device.Application.xml
index 3486c28..e420d0b 100644
--- a/Development/cr_barn5.Device.Application.xml
+++ b/Development/cr_barn5.Device.Application.xml
@@ -2162,10 +2162,6 @@ CHECKED_OMIT
-
- Wheat mix ration in percent (0-100)
-
-
@@ -2182,9 +2178,6 @@ CHECKED_OMIT
-
-
-
Dq's
@@ -2193,6 +2186,9 @@ CHECKED_OMIT
+
+
+
diff --git a/Development/cr_barn5.project b/Development/cr_barn5.project
index ffc7f4f..d49b481 100644
Binary files a/Development/cr_barn5.project and b/Development/cr_barn5.project differ
diff --git a/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52-AllUsers.opt b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52-AllUsers.opt
new file mode 100644
index 0000000..c3cefcf
Binary files /dev/null and b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52-AllUsers.opt differ
diff --git a/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52-User-ATOM-CRDESKTOP.opt b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52-User-ATOM-CRDESKTOP.opt
new file mode 100644
index 0000000..2820756
Binary files /dev/null and b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52-User-ATOM-CRDESKTOP.opt differ
diff --git a/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.bootinfo b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.bootinfo
new file mode 100644
index 0000000..e457e9a
--- /dev/null
+++ b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.bootinfo
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8c6ea2952f1312363e26129d3c247195e9116a2b4fc12bac50bb37aeae038c80
+size 60811623
diff --git a/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.bootinfo_guids b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.bootinfo_guids
new file mode 100644
index 0000000..e033259
--- /dev/null
+++ b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.bootinfo_guids
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:66964af2460a9454493f01157d29dff92a4437a3c98a99112e35ed24b9cbe53c
+size 32
diff --git a/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.compileinfo b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.compileinfo
new file mode 100644
index 0000000..e457e9a
--- /dev/null
+++ b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52.Device.Application.74ccca2f-50e3-4d5a-9d7a-9fd420284f83.compileinfo
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8c6ea2952f1312363e26129d3c247195e9116a2b4fc12bac50bb37aeae038c80
+size 60811623
diff --git a/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52.Device.Application.xml b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52.Device.Application.xml
new file mode 100644
index 0000000..8aab35d
--- /dev/null
+++ b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52.Device.Application.xml
@@ -0,0 +1,2372 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Detects a falling edge of a boolean signal
+
+ .. code-block:: codesys
+
+ (* Example declaration *)
+ FTRIGInst : F_TRIG ;
+
+ (* Example in ST *)
+ FTRIGInst(CLK := VarBOOL1);
+ VarBOOL2 := FTRIGInst.Q;
+
+ .. cds:ranges::
+
+ :CLK: [TRUE,FALSE]
+ :~CLK_OLD: [TRUE,FALSE]
+ :Q: [TRUE,FALSE]
+
+
+ Boolean signal to be checked
+
+
+ ``TRUE``: Falling edge detected
+
+
+
+
+
+
+
+
+
+
+ Realizes a bistable reset-dominat latch
+
+ .. cds:ranges::
+
+ :SET: [TRUE,FALSE]
+ :RESET1: [TRUE,FALSE]
+ :~Q1_IN: [TRUE,FALSE]
+ :Q1: [TRUE,FALSE]
+
+ .. code-block:: codesys
+
+ (* Example declaration *)
+ RSInst : RS ;
+
+ (* Example in ST *)
+ RSInst(SET:= VarBOOL1 , RESET1:=VarBOOL2 );
+ VarBOOL3 := RSInst.Q1 ;
+
+
+ Rising edge: Set ``Q1`` to ``TRUE``
+
+
+
+ Output value
+
+
+
+ <description>Time and date in structured</description>
+
+ <element="wYear" type="IN">Year (e.g. 2006)</element>
+
+
+ <element="wMonth" type="IN">Month (1..12: January = 1, December = 12)</element>
+
+
+ <element="wDay" type="IN">Day of month (1..31)</element>
+
+
+ <element="wHour" type="IN">Hours after midnight (0..23)</element>
+
+
+ <element="wMinute" type="IN">Minutes after hour (0..59)</element>
+
+
+ <element="wSecond" type="IN">Seconds after minute (0..59)</element>
+
+
+ <element="wMilliseconds" type="IN">Milliseconds after second (0..999). Optional!</element>
+
+
+ <element="wDayOfWeek" type="IN">Day of week (1..7: Monday = 1, Sunday = 7</element>
+
+
+ <element="wYday" type="IN">Day of year (1..365): January 1 = 1, December 31 = 364/365</element>
+
+
+
+ Detects a rising edge of a boolean signal
+
+ .. code-block:: codesys
+
+ (* Example declaration *)
+ RTRIGInst : R_TRIG ;
+
+ (* Example in ST *)
+ RTRIGInst(CLK := VarBOOL1);
+ VarBOOL2 := RTRIGInst.Q;
+
+ .. cds:ranges::
+
+ :CLK: [TRUE,FALSE]
+ :~CLK_OLD: [TRUE,FALSE]
+ :Q: [TRUE,FALSE]
+
+
+ Boolean signal to be checked
+
+
+ ``TRUE``: Rising edge detected
+
+
+
+ Implements a timer with a turn-off delay
+
+ .. code-block:: codesys
+
+ (* Example declaration *)
+ TOFInst : TOF ;
+
+ (* Example in ST *)
+ TOFInst(IN := VarBOOL1, PT:= T#5s);
+ VarBOOL2 := TOFInst.Q;
+
+ .. image:: @(Tof)
+
+ .. cds:ranges::
+
+ :IN: [TRUE,FALSE]
+ :PT: [0..255]
+ :~PT_OLD: [0..255]
+ :Q: [TRUE,FALSE]
+ :ET: [0..4294967295]
+
+
+ | Falling edge: starts delay counter
+ | Rising edge: resets delay counter
+
+
+ Time for the delay counter [ms]
+
+
+ | ``TRUE`` if ``IN`` is ``TRUE``
+ | ``FALSE`` if ``IN`` is ``FALSE`` and delay time ``PT`` elapsed
+
+
+ Elapsed time since falling edge at ``IN``
+
+
+
+ Implements a timer with a turn-on delay
+
+ .. code-block:: codesys
+
+ (* Example declaration *)
+ TONInst : TON ;
+
+ (* Example in ST *)
+ TONInst(IN := VarBOOL1, PT:= T#5s);
+ VarBOOL2 := TONInst.Q;
+
+ .. image:: @(Ton)
+
+ .. cds:ranges::
+
+ :IN: [TRUE,FALSE]
+ :PT: [0..255]
+ :~PT_OLD: [0..255]
+ :Q: [TRUE,FALSE]
+ :ET: [0..4294967295]
+
+
+ | Rising edge: starts delay counter
+ | Falling edge: resets delay counter
+
+
+ Time for the delay counter [ms]
+
+
+ | ``FALSE`` if ``IN`` is ``FALSE``
+ | ``TRUE`` if ``IN`` is ``TRUE`` and delay time ``PT`` elapsed
+
+
+ Elapsed time since rising edge at ``IN``
+
+
+
+ Implements a pulse timer
+
+ .. code-block:: codesys
+
+ (* Example declaration *)
+ TPInst : TP ;
+
+ (* Example in ST *)
+ TPInst(IN := VarBOOL1, PT:= T#5s);
+ VarBOOL2 := TPInst.Q;
+
+ .. image:: @(Tp)
+
+ .. cds:ranges::
+
+ :IN: [TRUE,FALSE]
+ :PT: [0..255]
+ :~PT_OLD: [0..255]
+ :Q: [TRUE,FALSE]
+ :ET: [0..4294967295]
+
+
+ Rising edge starts the pulse timer and sets ``Q`` to ``TRUE``
+
+
+ Length of the pulse (high-signal)
+
+
+ Pulse signal, set to ``TRUE`` for ``PT`` milliseconds if ``EN`` has a rising edge
+
+
+ Elapsed time since pulse timer started. It will then remain constant after ``PT`` is reached.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Auto / Manual - On/Off control
+
+ If in auto then on
+
+
+ Auto / manual mode
+
+
+ IF in manual then on
+
+
+ On output
+
+
+
+
+ Curve point is enabled
+
+
+
+
+
+
+
+
+
+
+
+
+ Default to False but can be inverted if Need Be
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Inrush delay in ms, don't start until this time is in the past
+
+
+ Number of devices in list
+
+
+ Number of machines in list
+
+
+ Number of gadgets in the list
+
+
+
+
+
+
+
+
+
+
+
+
+
+ current value in
+
+
+ filter time in seconds
+
+
+ filtered value
+
+
+
+
+ Name of item
+
+
+
+
+
+
+
+
+
+ The mode is not set, used to clear the setMode setting
+
+
+ Don't use this bin
+
+
+ Primary premix
+
+
+ Backup premix - used when the primary premix runs out
+
+
+ Wheat
+
+
+
+
+
+
+
+
+
+ Calculate target weight for the active ingredient
+
+
+ Filling to target weight
+
+
+ Wait for stable after filling
+
+
+ Move to next ingredient
+
+
+ Wait for weigh hopper to be empty
+
+
+ Dump weigher
+
+
+ Delay to allow dump to close
+
+
+
+
+
+
+
+
+
+
+ Clamp output between outMin and outMax
+
+
+
+
+
+
+
+
+
+
+
+ Clamp output between outMin and outMax
+
+
+
+
+
+ System Enable, bypassed on disable
+
+
+ Demand given to run
+
+
+ Has Permission to run
+
+
+ This is set from device fault.
+
+
+ Motor is running, used for VFD to know when it has stopped
+
+
+ Motor Up to Speed
+
+
+ Parent gives permission to run
+
+
+ Delay after starting before ready
+
+
+ Delay after request to run removed before stopping
+
+
+ Ready for product
+
+
+ Run output
+
+
+ Start delay done
+
+
+ Stop delay done
+
+
+ Start delay elapsed time
+
+
+ Stop delay elapsed time
+
+
+ Request to run status
+
+
+ Start delay is active
+
+
+ Stop delay is active
+
+
+ Start or stop delay active
+
+
+ Sum of in_runPerm and dep.runPerm
+
+
+
+ Tracks run time in seconds
+
+
+ Tracks time since start in seconds
+
+
+
+
+ enable for various control schemes
+
+
+
+
+
+
+
+
+ Running timer that can be reset
+
+ System time when last reset
+
+
+ ms since timer reset
+
+
+ Whole seconds since timer reset
+
+
+ REAL seconds since timer reset
+
+
+
+ Write to system log
+Needs Element Collections library
+
+ The text that will be in the Component column in the log. This is meant to only be set once and then left the same
+
+
+ Used to only have the logger enabled at specific time, like when debugging
+
+
+ Component Id
+
+
+ Message from last write
+
+
+
+
+ Offset from UTC in minutes
+
+
+ Adjustment from hardware real time clock
+
+
+
+
+
+
+
+
+ The major version number. This is typically incremented for significant releases that may include major new features or changes.
+
+
+ The minor version number. This is incremented for releases that add smaller features or improvements and may include significant fixes.
+
+
+ The service pack number. This is used to indicate updates that usually include bug fixes, performance improvements, and minor feature enhancements.
+
+
+ The patch number. This is incremented for very small changes or bug fixes that do not significantly alter the functionality.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Simulates a blinking signal (turning on and off for specific durations)
+
+ | ``TRUE``: Starts blinking
+ | ``FALSE``: Stops blinking whereas ``OUT`` keeps its value
+
+
+ Time for ``OUT`` to be ``FALSE``
+
+
+ Time for ``OUT`` to be ``TRUE``
+
+
+ Output value, starts with ``FALSE`` and switches between ``TRUE`` and ``FALSE`` for the given high and low times
+
+
+
+
+
+ <description>Time and date in structured</description>
+
+ <element="wYear" type="IN">Year (e.g. 2006)</element>
+
+
+ <element="wMonth" type="IN">Month (1..12: January = 1, December = 12)</element>
+
+
+ <element="wDay" type="IN">Day of month (1..31)</element>
+
+
+ <element="wHour" type="IN">Hours after midnight (0..23)</element>
+
+
+ <element="wMinute" type="IN">Minutes after hour (0..59)</element>
+
+
+ <element="wSecond" type="IN">Seconds after minute (0..59)</element>
+
+
+ <element="wMilliseconds" type="IN">Milliseconds after second (0..999). Optional!</element>
+
+
+ <element="wDayOfWeek" type="IN">Day of week (1..7: Monday = 1, Sunday = 7</element>
+
+
+ <element="wYday" type="IN">Day of year (1..365): January 1 = 1, December 31 = 364/365</element>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Alarm will remain active until reset
+
+
+ Alarm will reset when source resets
+
+
+ Latched or unlatched as specified in the program
+
+
+
+
+
+ input index
+
+
+ High output index
+
+
+ Low output index
+
+
+ Ratio between low and high
+
+
+ loop VAR
+
+
+ Highest valid curve idx
+
+
+
+
+
+ This should not be set, but is an input to be able to set attributes of this.
+
+
+ This devices parent.
+
+
+ Motor Faulted - VFD fault or overload trip - this will not run in manual or auto
+
+
+ Disable sequence, for standalone device
+
+
+ Demand to run in auto - normally set by seq controller.
+
+
+
+ Name of this device eg M03_01 Inc Drag
+
+
+ Rated power in kw
+
+
+ Pauses this device and its gadgets
+
+
+ Demand to run in auto, adds pause and inrush control to the in_autorun
+
+
+ Run output
+
+
+ In Auto from sequence, in manual TRUE
+
+
+
+ In Auto from sequence, in manual TRUE
+
+
+ Color used to indicate state
+
+
+ A depenedent has a fault
+
+
+ Power draw in watts
+
+
+ This device is pauses and won't start
+
+
+ Device is waiting for inrush from another motor to decay before it starts
+
+
+ Auto / manual
+
+
+ Tracks run time in seconds
+
+
+ Tracks time since start in seconds
+
+
+
+ List of all devices
+
+
+
+
+ Name of item
+
+
+
+
+
+ Name of item
+
+
+
+
+ One of many ingredients for a mixer
+
+ Output control
+
+
+ Reset totals at midnight
+
+
+ Display name for ingredient or bin
+
+
+ The mode for this ingredient. DO NOT SET THIS DIRECTLY. Use the setMode variable
+
+
+ Current amount in this bin (kg)
+
+
+ This ingredient timed out while filling
+
+
+ For Ingredient list on atom hmi
+
+
+ Amount used today (kg)
+
+
+ Desired mode for this ingredient
+
+
+ Amount of mix desired in percent, this is the initial amount entered (kg)
+
+
+ Amount of mix desired in kg, converts the percent to kg based on the size of the mixing container (kg)
+
+
+ Amount of mix desired including error correction for previous mix actual amount (kg)
+
+
+ Load cell weight at which to stop the auger (kg)
+
+
+ Mix weight actually added for this batch (kg)
+
+
+ Freefall from last fill (kg)
+
+
+ Accumulated error from previous
+
+
+
+
+ Rollover pulse to clear today and update totals
+
+
+
+
+ Number of birds placed
+
+
+ Number of birds dead today
+
+
+
+ Total dead since placed not counting today
+
+
+ Rollover trigger
+
+
+
+
+
+
+
+
+
+ enable for various control schemes
+
+
+ Min Setpoint
+
+
+ Max Setpoint
+
+
+
+
+
+
+
+ Run Demand
+
+
+ Todo Future rename to outofRange to use for above or below (i.e Humidity ctl when top stage is active to deactivate hu control
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Channel input is underrange
+
+
+ Channel input is overrange
+
+
+ Card fault
+
+
+ Channel is faulted, underrange, overrange or card fault.
+
+
+ Alarm reset
+
+
+ Raw input
+
+
+ Comms, power supply, or card fault
+
+
+ Channel overrange setpoint, used to manually calculate overrange
+
+
+ Channel underrange setpoint. used to manually calculate underrange
+
+
+
+
+ Keys for curve
+
+
+ Data for curve
+
+
+ Desired key at which to get the curve values
+
+
+ Output type of the curve, stepped or smooth
+
+
+ Manual setpoint. Indicates the curve output when in auto
+
+
+ Auto/manual mode
+
+
+ output value, either from the curve or the manual setpoint
+
+
+ output from the curve
+
+
+ Function to get the to index values that surround the desired key value
+
+
+ scaling function for smooth result
+
+
+
+
+ Card fault
+
+
+ Channel is faulted, underrange, overrange or card fault.
+
+
+ Alarm reset
+
+
+ Comms, power supply, or card fault
+
+
+ channel fault
+
+
+
+
+ This should not be set, but is an input to be able to set attributes of this.
+
+
+ This devices parent.
+
+
+ Motor Faulted - VFD fault or overload trip - this will not run in manual or auto
+
+
+ Disable sequence, for standalone device
+
+
+ Demand to run in auto - normally set by seq controller.
+
+
+
+ Name of this device eg M03_01 Inc Drag
+
+
+ Rated power in kw
+
+
+ Pauses this device and its gadgets
+
+
+ Demand to run in auto, adds pause and inrush control to the in_autorun
+
+
+ Run output
+
+
+ In Auto from sequence, in manual TRUE
+
+
+
+ In Auto from sequence, in manual TRUE
+
+
+ Color used to indicate state
+
+
+ A depenedent has a fault
+
+
+ Power draw in watts
+
+
+ This device is pauses and won't start
+
+
+ Device is waiting for inrush from another motor to decay before it starts
+
+
+ Auto / manual
+
+
+ Tracks run time in seconds
+
+
+ Tracks time since start in seconds
+
+
+
+ List of all devices
+
+
+ Motor is up to speed. External input (e.g speed sensor) - Defaults true
+
+
+ Maximum manual on time
+
+
+ Delay time remaining for start or stop delay
+
+
+ Delay timer is active
+
+
+
+
+
+ Name of index item. eg. Age
+
+
+ The index of the first displayed row
+
+
+ Count of the rows that are currently in use
+
+
+ Max size for scroll bar
+
+
+ Page size for scroll bar
+
+
+ Loop Var
+
+
+
+
+
+
+ Name of item
+
+
+
+
+
+
+
+
+
+
+
+
+ Process controlled enable. eg only enable rpm lo when motor running
+
+
+
+
+
+ once running this will prevent a quick spike
+
+
+ allows machine to clean out before starting back up
+
+
+ process enable delay on
+
+
+ process enable delay off
+
+
+
+
+ This should not be set, but is an input to be able to set attributes of this.
+
+
+ This devices parent.
+
+
+ Motor Faulted - VFD fault or overload trip - this will not run in manual or auto
+
+
+ Disable sequence, for standalone device
+
+
+ Demand to run in auto - normally set by seq controller.
+
+
+
+ Name of this device eg M03_01 Inc Drag
+
+
+ Rated power in kw
+
+
+ Pauses this device and its gadgets
+
+
+ Demand to run in auto, adds pause and inrush control to the in_autorun
+
+
+ Run output
+
+
+ In Auto from sequence, in manual TRUE
+
+
+
+ In Auto from sequence, in manual TRUE
+
+
+ Color used to indicate state
+
+
+ A depenedent has a fault
+
+
+ Power draw in watts
+
+
+ This device is pauses and won't start
+
+
+ Device is waiting for inrush from another motor to decay before it starts
+
+
+ Auto / manual
+
+
+ Tracks run time in seconds
+
+
+ Tracks time since start in seconds
+
+
+
+ List of all devices
+
+
+ Manual Start
+
+
+ Manual Stop
+
+
+ Motor is up to speed. External input (e.g speed sensor) - Defaults true
+
+
+ Maximum manual on time
+
+
+ Delay time remaining for start or stop delay
+
+
+ Delay timer is active
+
+
+
+ A gadget has a fault
+
+
+
+
+ Gets the time from the real time clock
+
+
+ global settings
+
+
+ UTC time of day in ms since midnight
+
+
+
+
+
+
+ Local time of day
+
+
+
+
+
+
+
+
+
+
+
+ Raw input
+
+
+ Alarm reset
+
+
+ Indicates the the value at raw is now valid. Used at startup to delay updates until remote I/O has replied
+
+
+ fault
+
+
+ input used as an alarm
+
+
+
+ Invert Function Defaults to False
+
+
+
+ Raw input value
+
+
+ Debounced Input
+
+
+ Output is valid. Used to delay using the value until startup overhead is complete, like waiting for remote I/O to respond
+
+
+
+
+
+
+
+
+
+
+
+
+
+ top of stage
+
+
+ bottom of stage
+
+
+
+
+
+
+
+ Current Temperature
+
+
+ For Humidity to enable below and out_ctl
+
+
+ For Humidity ctl to disable fixed devices from running when below set Humidity range
+
+
+
+
+
+
+
+
+ For Humidity ctl to show when devices are being controlled via humidity stage
+
+
+
+
+
+ data for curve
+
+
+
+
+
+
+
+
+ Temperature auto / manual
+
+
+ Temperature manual setpoint
+
+
+ The key to select the current curve index. Likely bird age
+
+
+
+ Temperature output
+
+
+
+
+
+
+
+
+
+
+
+
+ Raw input
+
+
+ Calibrate min value to current input level
+
+
+ Calibrate max value to current input level
+
+
+ Alarm reset
+
+
+ Indicates the the value at raw is now valid. Used at startup to delay updates until remote I/O has replied
+
+
+ Limit inputs
+
+
+ Scaling Raw Input to percent
+
+
+ Scaling percent to EU
+
+
+ fault inputs
+
+
+ Filtering from the scaling EU
+
+
+ Signal value, depending on input type
+
+
+ Name the atAI for HMI visualization
+
+
+ For using a text list in Webvisu if Persistant Variable Space is Limited (i.e. Using a Productivity PLC vs Raspberry)
+
+
+ Converts to Ms DINT for easy HMI entry
+
+
+ Scaled value
+
+
+ Filtered and scaled value
+
+
+ Output is ready for use.
+
+
+
+
+
+
+ Start time with offset
+
+
+ Stop time with offset
+
+
+ Time to check if it is between the start and stop times
+
+
+ On if actual is between start and stop
+
+
+ ratio if postition between start and stop
+
+
+ Function to scale transition
+
+
+
+
+
+ This should not be set, but is an input to be able to set attributes of this.
+
+
+ This devices parent.
+
+
+ Motor Faulted - VFD fault or overload trip - this will not run in manual or auto
+
+
+ Disable sequence, for standalone device
+
+
+ Demand to run in auto - normally set by seq controller.
+
+
+
+ Name of this device eg M03_01 Inc Drag
+
+
+ Rated power in kw
+
+
+ Pauses this device and its gadgets
+
+
+ Demand to run in auto, adds pause and inrush control to the in_autorun
+
+
+ Run output
+
+
+ In Auto from sequence, in manual TRUE
+
+
+
+ In Auto from sequence, in manual TRUE
+
+
+ Color used to indicate state
+
+
+ A depenedent has a fault
+
+
+ Power draw in watts
+
+
+ This device is pauses and won't start
+
+
+ Device is waiting for inrush from another motor to decay before it starts
+
+
+ Auto / manual
+
+
+ Tracks run time in seconds
+
+
+ Tracks time since start in seconds
+
+
+
+ List of all devices
+
+
+ Motor is up to speed. External input (e.g speed sensor) - Defaults true
+
+
+ Maximum manual on time
+
+
+ Delay time remaining for start or stop delay
+
+
+ Delay timer is active
+
+
+
+ In auto position demand
+
+
+ Extend Command
+
+
+ Retract Command
+
+
+ Stop Manual Movement
+
+
+
+ Position demand
+
+
+
+ For controlling inlet fans if applicable
+
+
+
+
+
+ Manual Position setting
+
+
+ Delay to allow for in position
+
+
+ Motion deadband in percent / second
+
+
+ How long before no motion triggers a stall
+
+
+ Delay for at Position Timer
+
+
+ Pulse on Time MS
+
+
+ Pulse off Time MS
+
+
+ Enable Stalled shutdown defaults to FALSE
+
+
+ Open demand
+
+
+ Close demand
+
+
+ At position confirmation
+
+
+ Position active or above zero position
+
+
+ Stalled alarm
+
+
+
+ Inlet fan variable speed demand
+
+
+ Inlet fan fixed run command
+
+
+ Actual Position
+
+
+
+ Time since start in seconds
+
+
+ Allowed error margin
+
+
+ Delay for minor adjustments before Declaring at Position
+
+
+ Start At Position Delay Timer
+
+
+ Toggles for out_open
+
+
+ Toggles for out_close
+
+
+
+
+
+
+
+ Toggle duration (1 second)
+
+
+ Toggle duration (1 second)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Keys for curve
+
+
+ Data for curve
+
+
+ Time zone settings
+
+
+ Desired key at which to get the curve values
+
+
+ Output type of the curve, stepped or smooth
+
+
+ output value
+
+
+ Loop variable
+
+
+
+
+ empty container for calculated values
+
+
+
+
+ Raw input
+
+
+ Calibrate min value to current input level
+
+
+ Calibrate max value to current input level
+
+
+ Alarm reset
+
+
+ Indicates the the value at raw is now valid. Used at startup to delay updates until remote I/O has replied
+
+
+ Limit inputs
+
+
+ Scaling Raw Input to percent
+
+
+ Scaling percent to EU
+
+
+ fault inputs
+
+
+ Filtering from the scaling EU
+
+
+ Signal value, depending on input type
+
+
+ Name the atAI for HMI visualization
+
+
+ For using a text list in Webvisu if Persistant Variable Space is Limited (i.e. Using a Productivity PLC vs Raspberry)
+
+
+ Converts to Ms DINT for easy HMI entry
+
+
+ Scaled value
+
+
+ Filtered and scaled value
+
+
+ Output is ready for use.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ User can calibrate loadcell if the three possible inputs have been populated
+
+
+ User can zero scale manually
+
+
+ If Enabled it will allow program to auto zero
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Offset from setpoint to the top of the highest stage
+
+
+ Offset from setpoint to the bottom fo the lowest stage
+
+
+ Current temperature input
+
+
+
+
+
+
+
+ Number of stages
+
+
+ Gap between stages where nothing changes
+
+
+ Setpoint
+
+
+
+
+ Loop variable
+
+
+ total span from bottom of first stage to top of last stage
+
+
+
+
+
+
+
+
+
+ Raw input
+
+
+ Calibrate min value to current input level
+
+
+ Calibrate max value to current input level
+
+
+ Alarm reset
+
+
+ Indicates the the value at raw is now valid. Used at startup to delay updates until remote I/O has replied
+
+
+ Limit inputs
+
+
+ Scaling Raw Input to percent
+
+
+ Scaling percent to EU
+
+
+ fault inputs
+
+
+ Filtering from the scaling EU
+
+
+ Signal value, depending on input type
+
+
+ Name the atAI for HMI visualization
+
+
+ For using a text list in Webvisu if Persistant Variable Space is Limited (i.e. Using a Productivity PLC vs Raspberry)
+
+
+ Converts to Ms DINT for easy HMI entry
+
+
+ Scaled value
+
+
+ Filtered and scaled value
+
+
+ Output is ready for use.
+
+
+
+
+ Therm Type (i.e 1 = 3K)
+
+
+ Resistor Value (i.e. 3267)
+
+
+ In Supply Voltage
+
+
+
+
+
+
+
+ Raw count from IO
+
+
+ Alarm reset
+
+
+
+ Resets Current Day total
+
+
+ Time Period for averaging
+
+
+ To Convert Counts to Hz (eg. slip sensor with 4 targets = 4, pulse/liter to pulse/gal = 3.78)
+
+
+ Cycles Per second
+
+
+
+
+ Used in Process DI
+
+
+ Timer for long press to reset current day
+
+
+ trigger to force reset of current dailydelta if used as water meter etc.
+
+
+ Pulse Count from digital input
+
+
+ Last count of euTotal from day before
+
+
+
+
+
+
+ Setpoint
+
+
+ Multiplier
+
+
+ Rate of Change Max Percent Per Minute
+
+
+
+ Delay Prevents sudden spikes from demanding pos change
+
+
+ Current Position of Device From (atActuator - in_PosAct)
+
+
+ Analog Input - in_act := out_eu;
+
+
+ Flips the greater then and less then to reverse the demand direction
+
+
+
+
+
+
+ Actuator Demand - in_autoPos := out_posDem;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ramping vars
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Keeps last known intensity setpoint
+
+
+
+
+
+
+
+
+
+
+ Feed weigher / mixer
+
+ dump mechanism control
+
+
+ Pulse to reset totals at midnight
+
+
+ Enable Dump normally on when weigh hopper is empty
+
+
+ Start mixing. Is reset to false immediatly
+
+
+ Capacity of the scale. Recipes will use this to calculate amounts
+
+
+ Delay time for dump to close (seconds)
+
+
+ Wheat demand in percent (0-100)
+
+
+ Mixer enable/disable. When disabled mixer alarms also disabled
+
+
+ Logger enable. Turn on to enable logging to system log.
+
+
+ Reference to an at loadcell
+
+
+ List of ingredients
+
+
+ Alarm reset
+
+
+ Mixer is empty
+
+
+ Alarm to indicate it took to long to fill the weigh hopper to the desired weight
+
+
+ Alarm to indicate it took to long for the weigh hopper to empty
+
+
+ Alarm to indicate there is no premix ingredient defined
+
+
+ Total amount mixed today (kg)
+
+
+ State of the mixer
+
+
+ Delay time in seconds for timeout while filling alarm
+
+
+ Delay time in seconds for timout while dumping alarm
+
+
+ Active ingredient index
+
+
+ Loop variable
+
+
+ Array uppder bound
+
+
+ Zero weight for the current batch
+
+
+
+ Time since this state became active
+
+
+
+ System log writer
+
+
+ Wheat is enabled
+
+
+ Premix demand in percent (0-100)
+
+
+ Internal reset to
+
+
+ Auto switch to other bin is pending for the start of the next batch
+
+
+ Fill timeout while there is a backup premix has occured
+
+
+ Midnight reset trigger
+
+
+ Weight in the weigh hopper that is under the weigher
+
+
+ Amount of weight to remove from wheigher on each scan during dump
+
+
+ used to add some some freefall to the ingredient fill
+
+
+
+
+
+
+
+
+
+ Filtered output temperature
+
+
+ Use Sensor 1
+
+
+ Use Sensor 2
+
+
+ Use Sensor 3
+
+
+ Use Sensor 4
+
+
+
+
+
+
+
+
+ Last value
+
+
+
+
+
+
+
+ This GVL must be initialized before GVL "GloballyForAlarmStorage", because this GVL
+ causes the initialization of the variable g_stApplicationName.
+ We only need the date and time format pattern for the converted code, therefore
+ we can (and must!) omit the rest from conversion
+ We must not use an attribute to hide this GVL, because there are some variables,
+ that a developer might use. Additionally it is necessary, that this GVL in considered
+ in the data server, but not visible for the user, because some variables of this GVL
+ are added to the data source selection implicitely and for this purpose it is necessary,
+ that this GVL is a part of the available items tree.
+
+ A global counter, that counts all the alarm state transitions, that occur.
+ Needed by the alarm table for optimized painting. If this counter doesn't
+ change during subsequent paint calls, the same alarms have been active and
+ in the same state.
+ Conditional show attribute must not be present for this variable, because
+ some architectural problems it can lead in a not correct regitration
+CHECKED_OMIT
+
+
+ A similar counter, that will be incremented each time an alarm is written
+ into the alarm storage. This allows the alarm table to detect, whether
+ some kind of processing has to be done, because there exists a new alarm.
+ Conditional show attribute must not be present for this variable, because
+ some architectural problems it can lead in a not correct regitration
+CHECKED_OMIT
+
+
+ Counts the times when the alarm table has been deleted.
+CHECKED_OMIT
+
+
+
+
+
+ List of all devices
+
+
+
+
+ List of all devices
+
+
+
+
+ List of all devices
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For dialog box selection
+
+
+
+
+
+
+
+
+
+
+
+
+ Alarm reset
+
+
+ Enable simulator mode
+
+
+ atTOD settings
+
+
+ Project Version
+
+
+
+
+ List of all devices
+
+
+
+
+
+
+
+
+
+
+
+ Auger enable
+
+
+
+
+
+
+
+ Wheat mix ration in percent (0-100)
+
+
+
+
+
+ System
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Dq's
+
+
+
+
+
+
+
+
+
+
+
+ DI's
+
+
+
+
+
+
+
+
+
+ AI
+
+
+ Humidity Control
+
+
+ Inlet Conrol
+
+
+ Light Control
+
+
+ AQ
+
+
+
+ Mortality
+
+
+
+
+
+
+
+
+ Stage Control
+
+
+
+
+ Devices
+
+
+
+ Temperature Control
+
+
+
+
+
+
+
+
+
+
+ Wheat curve data
+
+
+ Wheat curve base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Clear all log
+
+
+
+
+ day value for log
+
+
+ Daily Dead Record
+
+
+
+ Hopper 1 Total
+
+
+ Hopper 2 Total
+
+
+ Hopper 3 Total
+
+
+ Humidity log
+
+
+
+ Mortality %
+
+
+ Daily Remaining after Deads
+
+
+
+
+
+ Temperature log
+
+
+ Total Dead not Including Today
+
+
+ Feed usage log
+
+
+ Water usage log
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For the graph on atom HMI
+
+
+ For the graph on atom HMI
+
+
+
+
+
\ No newline at end of file
diff --git a/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52.project b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52.project
new file mode 100644
index 0000000..a10c553
Binary files /dev/null and b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52.project differ
diff --git a/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52_project.precompilecache b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52_project.precompilecache
new file mode 100644
index 0000000..890d13f
Binary files /dev/null and b/Development/cr_barn5_RECOVERED_2025-06-02T14-47-52_project.precompilecache differ
diff --git a/Development/cr_barn5_project.precompilecache b/Development/cr_barn5_project.precompilecache
index 291500e..060b1a5 100644
Binary files a/Development/cr_barn5_project.precompilecache and b/Development/cr_barn5_project.precompilecache differ
diff --git a/Development/notsure.zip b/Development/notsure.zip
new file mode 100644
index 0000000..3acd121
Binary files /dev/null and b/Development/notsure.zip differ