<root>
<document scada='0' schema='103' license='1,86376536,W8DYB7' title='1  Axis Tracker Code' description='Program Description
   The program uses a real time clock for time keeping. The motion of the array is controlled by 4 time settings, defining when moves occur. The move times are expressed as minutes after midnight.
 For example one is called EightAM, and is set to 8*60= 480.
   The 1st move, at 8AM, is 45 degrees to the east. The second move is defined by a setting, say NineThirtyAM, and it is the first of 24 moves to the west, ending at ThreePM. 
The array movement dwells for 2 hours, before returning to horizontal at FivePM.
   The hardware consists of 4 components. 1.) An Arduino UNO clone. 2.) An LCD display and 5 button keypad from DFRobot. This board plugs directly into the UNO. 3.) A solid state relay board from SainSmart. 
This board gets Vcc and Ground from the UNO. The board has 2 relays, which connect to D2 and D3 on the LCD board. 4.) A Real Time Clock board. 
This board has a button Lithium Cell that keeps the clock running when power is absent. It communicates to the UNO thru an I2C connection. The actuator motor (110 volts AC) is one that rotates 72 RPM, then thru a 9:1 reduction. 
It could be a DC actuator at 12 volts. In this case, the relay is a different style. 

Main and Subroutine description:
1. Main is a while 1 loop with a switch statement. The three elements of the switch statement are Stop, Run, and Set Time. Choose the Up, Down, or Right pushbutton to select Run or Stop or Set Time. 
2. Subroutines -
   Version - Displays software version upon startup.
   Instructions – Displays operating instructions.
   Timer 1 Overflow - The Real Time Clock maintains the time over the long haul. The hour and minute are updated daily. But over a 24 hour period, an interrupt is used to maintain the minute. 
The interrupt is called Timer 1 Overflow. The target chip clock speed is 15,999,552 Hz. This is divided by 8. When a 16 bit register fills 1831 times, a minute variable is incremented. 
But this method is in accurate to the tune of 2 minutes per 24 hours. Hence, the real time clock is used, as its accuracy is better than 1 minute per year. 
   Move1Axis - This switches 110 volts AC to the actuator motor. 2 relays are used. One sets the motor direction; the other applies power to the motor. There are 3 wires to the motor. See the schematic.
   Button Press - an interrupt is called when a button press occurs. The routine sets a variable that determines where to be in the switch statement, or in the case of setting the time, increments the variables.
 Currently this is hours and minutes. In the future, a 2 axis software package will use the day of the year.
   Run - The Run subroutine is divided into 2 sections. Tracking, or stored horizontally when not tracking. 
   MinutesToHour_Minute - converts a global variable Minutes to Hours:Minutes. 
   PowerFromBattery - The real time clock can be set to where it gets its power from the button battery. This does that. 
   GetAndDisplayTime – Obtains the time from the real time clock, at 12:01, each day.  
   SetTime - Does that to the real time clock. This occurs once or twice during the lifetime of the system, when the Lithium button cell needs to be replaced. 

A note about time keeping. In version one of the single axis controller, time was approximated by using a light sensor to count dark minutes during the night time. 
Minutes, as measured from midnight, was simply Dark minutes / 2 plus a correction factor. Version 2 of the controller uses an accurate real time clock (RTC).

The code has been composed with the aid of Flowcode – www.matrixtls.com
' fcversion='655618' target='ARD.ATMEGA.Arduino Uno R3 PDIP' >
	<config data='' clkspd='16000000' simspd='1' usewdt='0' constif='0' commport='6' Use3V3='0' />
	<plugins >
		<dll_models enabled='1' />
	</plugins>
	<supplement use='0' head='' body='' />
	<debug />
	<traces />
	<ghost >
		<FK2 >
			<data name='FK2D0' port='4294967295' pin='4294967295' />
			<data name='FK2D1' port='4294967295' pin='4294967295' />
			<data name='FK2D2' port='4294967295' pin='4294967295' />
			<data name='FK2D3' port='4294967295' pin='4294967295' />
			<data name='FK2D4' port='4294967295' pin='4294967295' />
			<data name='FK2D5' port='4294967295' pin='4294967295' />
			<data name='FK2D6' port='4294967295' pin='4294967295' />
			<data name='FK2D7' port='4294967295' pin='4294967295' />
			<data name='FK2D8' port='4294967295' pin='4294967295' />
			<data name='FK2D9' port='4294967295' pin='4294967295' />
			<data name='FK2D10' port='4294967295' pin='4294967295' />
			<data name='FK2D11' port='4294967295' pin='4294967295' />
			<data name='FK2D12' port='4294967295' pin='4294967295' />
			<data name='FK2D13' port='4294967295' pin='4294967295' />
			<data name='FK2D14' port='4294967295' pin='4294967295' />
			<data name='FK2D15' port='4294967295' pin='4294967295' />
			<data name='FK2A0' port='4294967295' pin='4294967295' />
			<data name='FK2A1' port='4294967295' pin='4294967295' />
			<data name='FK2A2' port='4294967295' pin='4294967295' />
			<data name='FK2A3' port='4294967295' pin='4294967295' />
			<data name='FK2A4' port='4294967295' pin='4294967295' />
			<data name='FK2A5' port='4294967295' pin='4294967295' />
		</FK2>
		<ICD >
			<data name='AnalogPrescaleValue' value='19' />
			<data name='DigitalSampleRate' value='100000' />
			<data name='BreakpointCount' value='8' />
			<data name='CallStackDepthCount' value='8' />
			<data name='ClockPort' value='3' />
			<data name='ClockPin' value='1' />
			<data name='DataPort' value='3' />
			<data name='DataPin' value='0' />
			<data name='UseDefaultPins' value='1' />
			<data name='WrapEnabled' value='1' />
			<data name='CommsDelayOverridden' value='0' />
			<data name='CommsDelay' value='11' />
			<data name='CalculatedCommsDelay' value='11' />
			<data name='AnalogEB2PrescaleValue' value='2' />
			<data name='DigitalEB2SampleRate' value='100000' />
		</ICD>
		<pins >
			<digital A='0' B='0' C='0' D='0' E='0' F='0' G='0' H='0' I='0' J='0' K='0' L='0' M='0' N='0' O='0' P='0' Q='0' R='0' S='0' T='0' U='0' V='0' W='0' X='0' Y='0' Z='0' />
			<analog A='0' B='0' C='0' D='0' E='0' F='0' G='0' H='0' I='0' J='0' K='0' L='0' M='0' N='0' O='0' P='0' Q='0' R='0' S='0' T='0' U='0' V='0' W='0' X='0' Y='0' Z='0' />
		</pins>
	</ghost>
	<components >
		<settings autoimg='1' center='1' unitscale='0' fixedscale='0' fixedx='1' fixedy='1' fixedz='1' headcode='0' />
		<definition guid='e585f071-84d1-4e6d-8602-f1d2dbbd904c' vstate='40' vmin='0' vmaj='1' srcleaf='' visiblename='' description='' category='' category2='' category3='' bIs2dOnly='0' bIs3dOnly='0' catenable='1' author='' manuname='' manucode='' sysinfo='0' keywords='' dynamic='0' scadaCompatible='0' embeddedCompatible='1' showmacros='1' iconpath='' />
		<component class_type='root' codename='panel' panelId='-1' x='0' y='0' z='0' xsz='1' ysz='1' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='0' poslock='0' comp2dType='0' >
			<resources />
			<properties />
			<values />
			<events />
			<apis />
			<variables >
				<variable public='0' >
					<def class_type='variable' name='PackCurrent_Float' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='Delta_Watt_Hours' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='false' type='b1' description='' isconst='1' isHidden='0' isinit='1' usrinit='0' setinit='0' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='SampleDelay' type='s16' description='' isconst='1' isHidden='0' isinit='1' usrinit='60' setinit='60' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='DisplayOffDelay' type='s16' description='' isconst='1' isHidden='0' isinit='1' usrinit='500' setinit='500' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='DisplayOnDelay' type='s16' description='' isconst='1' isHidden='0' isinit='1' usrinit='2' setinit='2' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='Cell_1_Voltage_Float' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='Pack_Watt_Hours' type='f32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0.0' setinit='0' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='true' type='b1' description='' isconst='1' isHidden='0' isinit='1' usrinit='1' setinit='1' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='Cell_2_Voltage_Float' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
				</variable>
			</variables>
			<macros >
				<macro >
					<flowline name='GetVoltages' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<local name='Cell_1_Voltage_Int' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='Pack_Volt_Int' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='Pack_Volt_Float' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<command class_type='comment' title='' comment='Scaling Analog Voltage = (AnalogVoltage/max Analog Value)*SensorMaxVoltage
     so V float = ((.Pack_Voltage_Int / 1024) * 5.0) / .DividerScaleFactor' textarea='12,0,12,0' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' />
						<command class_type='call' title='Cell_1_Voltage_Int' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='Cell_1_Voltage' macro='GetAverageInt' >
							<return exp='.Cell_1_Voltage_Int' />
							<argument exp='10' />
							<argument exp='100' />
						</command>
						<command class_type='calculation' title='Convert .Cell_1_Int to Cell_1_Float' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' >
							<exp exp='Cell_1_Voltage_Float = (.Cell_1_Voltage_Int / 1024) * 5.0' />
						</command>
						<command class_type='call' title='Pack_Volt_Int' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='PackVoltage' macro='GetAverageInt' >
							<return exp='.Pack_Volt_Int' />
							<argument exp='10' />
							<argument exp='100' />
						</command>
						<command class_type='calculation' title='Calculation' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' >
							<exp exp='.Pack_Volt_Float = (.Pack_Volt_Int / 1024) * 5.0 * 5.0' />
							<exp exp='Cell_2_Voltage_Float = .Pack_Volt_Float - Cell_1_Voltage_Float' />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='GetCurrent' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<local name='PackCurrent_Int' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='comment' title='' comment='How to verify operation of the Hall sensor?' textarea='12,0,12,0' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' />
						<command class_type='comment' title='' comment='Hall Sensor
Amps = (2.5- V_Hall) / 0.185
May have to take the absolute value of the current' textarea='12,0,12,0' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' />
						<command class_type='call' title='Getr Pack Current' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='PackCurrent' macro='GetAverageInt' >
							<return exp='.PackCurrent_Int' />
							<argument exp='10' />
							<argument exp='100' />
						</command>
						<command class_type='calculation' title='Convert to Amperes' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' >
							<exp exp='PackCurrent_Float = ((2.5 - .PackCurrent_Int / 1024)) / 0.185' />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Main' description='Prigramming:
1. Arduino UNO R3 PDIP
2. Disconnect  RTC from TxRx' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<command class_type='comment' title='' comment='I could test the program by connecting some voltage to the inputs. 
However it may be a challenge. 
1. Currrent = 2.6
2. Module voltage = 8
3. Celll voltage  = 4' textarea='12,0,12,0' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' />
						<command class_type='comment' title='' comment='ToDo
1. Calculate the discharge time to see how many elements are in an array.
   ( Leaf pack size is 40kwh.) One cell is 480 wh. So discharge time is 
    480wh/(8 Volts x 24 amps)= 2.5 Hours = 150 Minutes = 300 intervals 
    at 30 seconds.This would imply an array with this many elements.
    How many elements are in a Flowcode array?' textarea='12,0,12,0' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' />
						<command class_type='comment' title='' comment='Scaling Analog Voltage = (AnalogVoltage/max Analog Value)*SensorMaxVoltage
     so V float = ((.Pack_Voltage_Int / 1024) * 5.0) / .DividerScaleFactor' textarea='12,0,12,0' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' />
						<command class_type='comment' title='' comment='Divider
YouTube - https://www.youtube.com/watch?v=dNRzPUBmh_Q
HallSensor
YouTube - https://www.youtube.com/watch?v=DVp9k3xu9IQ
      ' textarea='12,0,12,0' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' />
						<command class_type='comment' title='' comment='Hall Sensor
Amps = (2.5- V_Hall) / 0.185
May have to take the absolute value of the current' textarea='12,0,12,0' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' />
						<command class_type='comment' title='' comment='The sequence of commands for the uno is as follows:
0. Measure voltage and display module voltage. If below minimum, terminate program.
1. Close Relay A which connects the battery to the load.
2. Measure the current with the hall sensor
3. Measure the module voltage with the pack divider. Apply factor.
4. Measure cell 1 voltage. Compute Cell 2  
    Cell 2 = Module voltage - Cell 1 voltage 
5. If cell 1 or cell 2 is less than X?? open relay A. Report results.
6. Compute the wattage
7. Wait 30 seconds. Repead until item 5 ioens the circuit.' textarea='36,45,36,45' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' />
						<command class_type='call' title='LCD Start' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='LCD1' macro='Start' />
						<command class_type='call' title='Call Version' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' macro='Version' />
						<command class_type='call' title='Get Voltages' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' macro='GetVoltages' />
						<command class_type='call' title='Turn Load on' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='GroveRelay1' macro='SwitchOn' />
						<command class_type='delay' title='Dealy 1 second' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' exp='1' type='2' />
						<command class_type='loop' title='Loop' cmdcolor='4767473' cmdcolor_sec='11337727' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' type='0' exp='1' >
							<flowline >
								<command class_type='label' title='Declare Connection Point' cmdcolor='4767473' cmdcolor_sec='11337727' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' labelid='1' labelname='B' />
								<command class_type='decision' title='Decision' cmdcolor='4767473' cmdcolor_sec='11337727' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' exp='Cell_1_Voltage_Float OR Cell_2_Voltage_Float &lt; 3.0' swap='0' >
									<flowline >
										<command class_type='call' title='&quot;Test Terminated&quot;' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='LCD1' macro='PrintString' >
											<argument exp='&quot;Test Terminated&quot;' />
										</command>
										<command class_type='delay' title='Delay' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' exp='DisplayOnDelay' type='2' />
										<command class_type='call' title='CLS' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='LCD1' macro='Clear' />
										<command class_type='call' title='&quot;Cell 1 = &quot;' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='LCD1' macro='PrintString' >
											<argument exp='&quot;Cell 1 = &quot;' />
										</command>
										<command class_type='call' title='Cell 1' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='LCD1' macro='PrintFloat' >
											<argument exp='Cell_1_Voltage_Float' />
											<argument exp='5' />
										</command>
										<command class_type='call' title='&quot;Cell 2 = &quot;' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='LCD1' macro='PrintString' >
											<argument exp='&quot;Cell 2 = &quot;' />
										</command>
										<command class_type='call' title='Cell 2' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='LCD1' macro='PrintFloat' >
											<argument exp='Cell_2_Voltage_Float' />
											<argument exp='5' />
										</command>
										<command class_type='delay' title='Delay' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' exp='DisplayOnDelay * 5' type='2' />
										<command class_type='call' title='CLS' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='LCD1' macro='Clear' />
										<command class_type='call' title='Turn Load OFF' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='GroveRelay1' macro='SwitchOff' />
										<command class_type='goto' title='Goto Connection Point' cmdcolor='4767473' cmdcolor_sec='11337727' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' labelid='0' labelname='' />
									</flowline>
									<flowline >
										<command class_type='comment' title='' comment='I could maybe have a countdown clock here.' textarea='12,0,12,0' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' />
										<command class_type='delay' title='Delay 59 seconds' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' exp='SampleDelay - 2' type='2' />
										<command class_type='calculation' title='Calculation' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' >
											<exp exp='Delta_Watt_Hours = ((Cell_1_Voltage_Float + Cell_2_Voltage_Float) * PackCurrent_Float) / 60' />
											<exp exp='Pack_Watt_Hours = Pack_Watt_Hours + Delta_Watt_Hours' />
										</command>
										<command class_type='call' title='&quot;WH=&quot;' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='LCD1' macro='PrintString' >
											<argument exp='&quot;WH=&quot;' />
										</command>
										<command class_type='call' title='Print Pack WH' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='LCD1' macro='PrintFloat' >
											<argument exp='Pack_Watt_Hours' />
											<argument exp='5' />
										</command>
										<command class_type='delay' title='Delay' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' exp='DisplayOnDelay' type='2' />
										<command class_type='goto' title='Goto Connection Point' cmdcolor='4767473' cmdcolor_sec='11337727' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' labelid='1' labelname='' />
									</flowline>
								</command>
							</flowline>
						</command>
						<command class_type='label' title='Declare Connection Point' cmdcolor='4767473' cmdcolor_sec='11337727' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' labelid='0' labelname='A' />
					</flowline>
				</macro>
				<macro >
					<flowline name='Version' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<local name='CLS_Delay' type='s16' description='' isconst='0' isHidden='0' isinit='1' usrinit='2' setinit='2' />
						<command class_type='delay' title='Delay' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' exp='.CLS_Delay' type='2' />
						<command class_type='call' title='&quot;June19_Lf_Cell&quot;' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='LCD1' macro='PrintString' >
							<argument exp='&quot;June19_Lf_Cell&quot;' />
						</command>
						<command class_type='call' title='Cursor 0,1' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='LCD1' macro='Cursor' >
							<argument exp='0' />
							<argument exp='1' />
						</command>
						<command class_type='call' title='Key In Version' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='LCD1' macro='PrintString' >
							<argument exp='&quot;       V1&quot;' />
						</command>
						<command class_type='delay' title='Delay' cmdcolor='4206456' cmdcolor_sec='10785756' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' exp='.CLS_Delay' type='2' />
						<command class_type='call' title='CLS' cmdcolor='4487093' cmdcolor_sec='11066367' cmdcolor_txt='16777215' cmdgradient='4' cmdopacity='0.64' component='LCD1' macro='Clear' />
					</flowline>
				</macro>
			</macros>
			<component class_type='ref' guid='0953aac0-9c23-4c2f-9843-88954a4191ea' vmin='5' vmaj='2' codename='LCD1' panelId='-1' x='100' y='90' z='0.55' xsz='6.06359' ysz='14.6042' zsz='1.1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='1' poslock='0' comp2dType='0' >
				<resources />
				<properties />
				<values >
					<value target='LCD_Mode' data='000' />
					<value target='Pin_Data_0' data='$PORTD.4' />
					<value target='Pin_Data_1' data='$PORTD.5' />
					<value target='Pin_Data_2' data='$PORTD.6' />
					<value target='Pin_Data_3' data='$PORTD.7' />
					<value target='Pin_Data_4' data='$PORTA.1' />
					<value target='Pin_Data_5' data='$PORTA.1' />
					<value target='Pin_Data_6' data='$PORTA.1' />
					<value target='Pin_Data_7' data='$PORTA.1' />
					<value target='LCD_Port' data='$PORTA' />
					<value target='Pin_RS' data='$PORTB.0' />
					<value target='Pin_E' data='$PORTB.1' />
					<value target='LCD_Use_Write' data='0' />
					<value target='RemapCharacters' data='0' />
					<value target='Pin_RW' data='$PORTA.0' />
					<value target='Rows' data='002' />
					<value target='Columns' data='016' />
					<value target='ctrl_lcd::Base_GLCD1::ShowBackground' data='1' />
					<value target='ctrl_lcd::Base_GLCD1::ComponentLabel' data='000' />
					<value target='ctrl_lcd::Base_GLCD1::GdiText1::sText' data='panel' />
					<value target='ctrl_lcd::Base_GLCD1::GdiText1::dScale' data='1.400000' />
					<value target='ctrl_lcd::TextColour' data='0' />
					<value target='TextBg' data='14803425' />
					<value target='DispalyBg' data='16777215' />
					<value target='DelayTiming' data='100' />
					<value target='CursorPosX' data='0' />
					<value target='CursorPosY' data='0' />
					<value target='DoubleDelay' data='0' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
			<component class_type='ref' guid='8462ac99-ca8f-429b-953a-36dbe58ada72' vmin='4' vmaj='1' codename='PackVoltage' panelId='-1' x='96' y='188' z='12.8961' xsz='80' ysz='80' zsz='85.9737' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='1' poslock='1' comp2dType='0' >
				<resources />
				<properties />
				<values >
					<value target='angle_start' data='225.000000' />
					<value target='angle_sweep' data='270.000000' />
					<value target='color' data='16777215' />
					<value target='ScopeTraces' data='0' />
					<value target='RetainValue' data='0' />
					<value target='SetValue' data='0.492593' />
					<value target='channel' data='5' />
					<value target='vrefvol' data='500' />
					<value target='vrefop' data='001' />
					<value target='adc_base::convspd' data='6' />
					<value target='actime' data='40' />
					<value target='bits' data='10' />
					<value target='bitmul' data='0.004883' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
			<component class_type='ref' guid='8462ac99-ca8f-429b-953a-36dbe58ada72' vmin='4' vmaj='1' codename='PackCurrent' panelId='-1' x='6' y='98' z='12.8961' xsz='80' ysz='80' zsz='85.9737' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='1' poslock='1' comp2dType='0' >
				<resources />
				<properties />
				<values >
					<value target='angle_start' data='225.000000' />
					<value target='angle_sweep' data='270.000000' />
					<value target='color' data='16777215' />
					<value target='ScopeTraces' data='0' />
					<value target='RetainValue' data='0' />
					<value target='SetValue' data='0.492593' />
					<value target='channel' data='3' />
					<value target='vrefvol' data='500' />
					<value target='vrefop' data='001' />
					<value target='adc_base::convspd' data='6' />
					<value target='actime' data='40' />
					<value target='bits' data='10' />
					<value target='bitmul' data='0.004883' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
			<component class_type='ref' guid='2f95990b-1dc6-4cb4-a6b1-e000a487b702' vmin='2' vmaj='1' codename='GroveRelay1' panelId='-1' x='10' y='280' z='0' xsz='25' ysz='25' zsz='25' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='1' poslock='1' comp2dType='0' >
				<resources />
				<properties />
				<values >
					<value target='Control' data='$PORTD.2' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
			<component class_type='ref' guid='8462ac99-ca8f-429b-953a-36dbe58ada72' vmin='4' vmaj='1' codename='Cell_1_Voltage' panelId='-1' x='6' y='188' z='12.8961' xsz='80' ysz='80' zsz='85.9737' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='1' poslock='1' comp2dType='0' >
				<resources />
				<properties />
				<values >
					<value target='angle_start' data='225.000000' />
					<value target='angle_sweep' data='270.000000' />
					<value target='color' data='16777215' />
					<value target='ScopeTraces' data='0' />
					<value target='RetainValue' data='0' />
					<value target='SetValue' data='0.492593' />
					<value target='channel' data='4' />
					<value target='vrefvol' data='500' />
					<value target='vrefop' data='001' />
					<value target='adc_base::convspd' data='6' />
					<value target='actime' data='40' />
					<value target='bits' data='10' />
					<value target='bitmul' data='0.004883' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
		</component>
	</components>
	<scadaresourcelookup />
	<keymap />
	<panel2d shadows='0' lighting='2' brightness='0' >
		<background rgb='9737364' img='' style='0' />
		<camera xe='16.5849' ye='168.105' ze='253.737' xt='16.5849' yt='168.105' zt='0' xquat='0' yquat='0' zquat='0' wquat='1' />
		<viewport dx='196' dy='321' zoom='93.4669' fix_topleft='0' />
		<page x='1000' y='1000' show='0' rgb='7360576' />
		<winpos ID='7005' RectRecentFloat='1650,496,1874,931' RectRecentDocked='1659,65,1881,1006' RecentFrameAlignment='16384' RecentRowIndex='0' IsFloating='1' MRUWidth='32767' PinState='0' IsMaximized='0' IsVisible='1' />
	</panel2d>
	<panel3d shadows='0' lighting='2' brightness='0' perspective='1' >
		<background rgb='8409120' img='' style='0' />
		<table rgb='7360576' img='' style='0' size='100' />
		<camera xe='0' ye='0' ze='300' xt='0' yt='0' zt='0' xquat='0' yquat='0' zquat='0' wquat='1' />
		<camerakey0 xe='0' ye='0' ze='300' xt='0' yt='0' zt='0' xquat='0' yquat='0' zquat='0' wquat='1' />
		<camerakey1 xe='-3.67394e-14' ye='0' ze='-300' xt='0' yt='0' zt='0' xquat='0' yquat='1' zquat='0' wquat='6.12323e-17' />
		<camerakey2 xe='0' ye='-300' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-0.707107' yquat='0' zquat='0' wquat='0.707107' />
		<camerakey3 xe='-3.67394e-14' ye='300' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-4.32978e-17' yquat='0.707107' zquat='0.707107' wquat='4.32978e-17' />
		<camerakey4 xe='-300' ye='-6.66134e-14' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-0.5' yquat='0.5' zquat='0.5' wquat='0.5' />
		<camerakey5 xe='300' ye='-6.66134e-14' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-0.5' yquat='-0.5' zquat='-0.5' wquat='0.5' />
		<camerakey6 xe='-173.205' ye='-173.205' ze='173.205' xt='0' yt='0' zt='0' xquat='-0.424708' yquat='0.17592' zquat='0.339851' wquat='0.820473' />
		<winpos ID='7004' RectRecentFloat='153,370,807,947' RectRecentDocked='0,0,303,558' RecentFrameAlignment='16384' RecentRowIndex='0' IsFloating='0' MRUWidth='32767' PinState='0' IsMaximized='0' IsVisible='0' />
	</panel3d>
	<panels2d count='0' />
	<layout >
		<view type='0' name='Main' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAkAAAAOQUAAKgDAAA' zoom='125' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Version' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAkAAAAOQUAAKgDAAA' zoom='140' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='GetVoltages' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAkAAAAOQUAAKgDAAA' zoom='130' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='GetCurrent' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAkAAAAOQUAAKgDAAA' zoom='140' scrollx='0' scrolly='0' flags='0' />
	</layout>
</document>
</root>
