remark,"CSV-Import-Export" remark,"Date = Thu May 08 15:39:05 2008" remark,"Version = RSLogix 5000 v13.00" remark,"Owner = Hall C" remark,"Company = JLAB" 0.2 TYPE,SCOPE,NAME,DESCRIPTION,DATATYPE,SPECIFIER TAG,"","Q3:1:C","","AB:1756_DI:C:0","" ALIAS,"","Q3:1:I","","","Q3:I.Slot[1]" TAG,"","Q3:2:C","","AB:1756_DI:C:0","" ALIAS,"","Q3:2:I","","","Q3:I.Slot[2]" TAG,"","Q3:3:C","","AB:1756_DO:C:0","" ALIAS,"","Q3:3:I","","","Q3:I.Slot[3]" ALIAS,"","Q3:3:O","","","Q3:O.Slot[3]" TAG,"","Q3:4:C","","AB:1756_DO:C:0","" ALIAS,"","Q3:4:I","","","Q3:I.Slot[4]" ALIAS,"","Q3:4:O","","","Q3:O.Slot[4]" COMMENT,"","Q3:4:O","CL_N_Open",,"Q3:4:O.DATA.0" COMMENT,"","Q3:4:O","CL_N_Close",,"Q3:4:O.DATA.1" COMMENT,"","Q3:4:O","WR_Open",,"Q3:4:O.DATA.2" COMMENT,"","Q3:4:O","WR_Close",,"Q3:4:O.DATA.3" COMMENT,"","Q3:4:O"," ",,"Q3:4:O.DATA.4" COMMENT,"","Q3:4:O"," ",,"Q3:4:O.DATA.5" COMMENT,"","Q3:4:O","Enables The constant current source. Turn off when warm",,"Q3:4:O.DATA.6" COMMENT,"","Q3:4:O"," ",,"Q3:4:O.DATA.7" COMMENT,"","Q3:4:O"," ",,"Q3:4:O.DATA.8" COMMENT,"","Q3:4:O"," ",,"Q3:4:O.DATA.9" COMMENT,"","Q3:4:O","Dump_Relay",,"Q3:4:O.DATA.10" COMMENT,"","Q3:4:O"," ",,"Q3:4:O.DATA.11" COMMENT,"","Q3:4:O"," ",,"Q3:4:O.DATA.12" COMMENT,"","Q3:4:O","PSU Reset",,"Q3:4:O.DATA.13" COMMENT,"","Q3:4:O"," ",,"Q3:4:O.DATA.14" COMMENT,"","Q3:4:O","QD Reset",,"Q3:4:O.DATA.15" TAG,"","Q3:5:C","","AB:1756_IF16_Float_No_Alm:C:0","" TAG,"","Q3:5:I","","AB:1756_IF16_Float_No_Alm:I:0","" TAG,"","Q3:6:C","","AB:1756_IF16_Float_No_Alm:C:0","" TAG,"","Q3:6:I","","AB:1756_IF16_Float_No_Alm:I:0","" COMMENT,"","Q3:6:I","Mass flow CL",,"Q3:6:I.CH7DATA" COMMENT,"","Q3:6:I","Mass Flow CR",,"Q3:6:I.CH8DATA" COMMENT,"","Q3:6:I","Mass flow Neck",,"Q3:6:I.CH9DATA" TAG,"","Q3:7:C","","AB:1756_IF16_Float_No_Alm:C:0","" TAG,"","Q3:7:I","","AB:1756_IF16_Float_No_Alm:I:0","" TAG,"","Q3:8:C","","AB:1756_AO6_Float:C:0","" TAG,"","Q3:8:I","","AB:1756_AO6_Float:I:0","" TAG,"","Q3:8:O","","AB:1756_AO6_Float:O:0","" TAG,"","Q3:9:C","","AB:1756_IF8_Float:C:0","" TAG,"","Q3:9:I","","AB:1756_IF8_Float:I:0","" TAG,"","Q3:I","","AB:1756_CNB_10SLOT:I:0","" TAG,"","Q3:O","","AB:1756_CNB_10SLOT:O:0","" TAG,"","Q1:1:C","","AB:1756_DI:C:0","" ALIAS,"","Q1:1:I","","","Q1:I.Slot[1]" TAG,"","Q1:2:C","","AB:1756_DI:C:0","" ALIAS,"","Q1:2:I","","","Q1:I.Slot[2]" TAG,"","Q1:3:C","","AB:1756_DO:C:0","" ALIAS,"","Q1:3:I","","","Q1:I.Slot[3]" ALIAS,"","Q1:3:O","","","Q1:O.Slot[3]" TAG,"","Q1:4:C","","AB:1756_DO:C:0","" ALIAS,"","Q1:4:I","","","Q1:I.Slot[4]" ALIAS,"","Q1:4:O","","","Q1:O.Slot[4]" TAG,"","Q1:5:C","","AB:1756_IF16_Float_No_Alm:C:0","" TAG,"","Q1:5:I","","AB:1756_IF16_Float_No_Alm:I:0","" COMMENT,"","Q1:5:I","CG1",,"Q1:5:I.CH12DATA" COMMENT,"","Q1:5:I","CG2",,"Q1:5:I.CH13DATA" COMMENT,"","Q1:5:I","CG3",,"Q1:5:I.CH14DATA" COMMENT,"","Q1:5:I","CG4",,"Q1:5:I.CH15DATA" TAG,"","Q1:6:C","","AB:1756_IF16_Float_No_Alm:C:0","" TAG,"","Q1:6:I","","AB:1756_IF16_Float_No_Alm:I:0","" COMMENT,"","Q1:6:I"," $N",,"Q1:6:I.CH0DATA" COMMENT,"","Q1:6:I"," $N",,"Q1:6:I.CH1DATA" COMMENT,"","Q1:6:I"," $N",,"Q1:6:I.CH2DATA" COMMENT,"","Q1:6:I"," $N",,"Q1:6:I.CH4DATA" COMMENT,"","Q1:6:I","He pressure",,"Q1:6:I.CH10DATA" COMMENT,"","Q1:6:I","N2 pressure",,"Q1:6:I.CH11DATA" COMMENT,"","Q1:6:I","Vacuum Pirani Gauge",,"Q1:6:I.CH12DATA" COMMENT,"","Q1:6:I","Vacuum Penning Gauge",,"Q1:6:I.CH13DATA" COMMENT,"","Q1:6:I","He liquid level",,"Q1:6:I.CH15DATA" TAG,"","Q1:7:C","","AB:1756_IF16_Float_No_Alm:C:0","" TAG,"","Q1:7:I","","AB:1756_IF16_Float_No_Alm:I:0","" COMMENT,"","Q1:7:I","LVDT_JT_8",,"Q1:7:I.CH1DATA" COMMENT,"","Q1:7:I","LVDT_JT_6",,"Q1:7:I.CH2DATA" COMMENT,"","Q1:7:I","LVDT_JT_4",,"Q1:7:I.CH3DATA" COMMENT,"","Q1:7:I","LVDT_JT_3",,"Q1:7:I.CH4DATA" COMMENT,"","Q1:7:I","LVDT_JT_1",,"Q1:7:I.CH5DATA" COMMENT,"","Q1:7:I","LVDT_JT_13",,"Q1:7:I.CH6DATA" COMMENT,"","Q1:7:I","LVDT_JT_19",,"Q1:7:I.CH7DATA" COMMENT,"","Q1:7:I","LVDT_JT_CL_1",,"Q1:7:I.CH8DATA" COMMENT,"","Q1:7:I","LVDT_JT_CL_N",,"Q1:7:I.CH9DATA" COMMENT,"","Q1:7:I","Warm Return Valve postion",,"Q1:7:I.CH10DATA" TAG,"","Q1:8:C","","AB:1756_AO6_Float:C:0","" TAG,"","Q1:8:I","","AB:1756_AO6_Float:I:0","" TAG,"","Q1:8:O","","AB:1756_AO6_Float:O:0","" TAG,"","Q1:9:C","","AB:1756_IF8_Float:C:0","" TAG,"","Q1:9:I","","AB:1756_IF8_Float:I:0","" TAG,"","Q1:I","","AB:1756_CNB_10SLOT:I:0","" TAG,"","Q1:O","","AB:1756_CNB_10SLOT:O:0","" TAG,"","Rotation:1:C","","AB:1756_DO:C:0","" ALIAS,"","Rotation:1:I","","","Rotation:I.Slot[1]" ALIAS,"","Rotation:1:O","Signals to VFD and Horns","","Rotation:O.Slot[1]" COMMENT,"","Rotation:1:O","SOS Run Fwd Signal",,"Rotation:1:O.DATA.0" COMMENT,"","Rotation:1:O","HMS Run Fwd Signal",,"Rotation:1:O.DATA.1" COMMENT,"","Rotation:1:O","SOS Run Rev Signal",,"Rotation:1:O.DATA.2" COMMENT,"","Rotation:1:O","HMS Run Rev Signal",,"Rotation:1:O.DATA.3" COMMENT,"","Rotation:1:O","PLC System Reset Signal",,"Rotation:1:O.DATA.4" COMMENT,"","Rotation:1:O","VF Drives External Stop NC",,"Rotation:1:O.DATA.5" COMMENT,"","Rotation:1:O","Dipole$'s Flex reset",,"Rotation:1:O.DATA.6" COMMENT,"","Rotation:1:O","Horn SOS",,"Rotation:1:O.DATA.9" COMMENT,"","Rotation:1:O","Horn HMS",,"Rotation:1:O.DATA.10" COMMENT,"","Rotation:1:O","Q1 Flex reset RS232",,"Rotation:1:O.DATA.11" COMMENT,"","Rotation:1:O","Q2 Flex reset$NRS232",,"Rotation:1:O.DATA.12" COMMENT,"","Rotation:1:O","Q3 Flex reset$NRS232",,"Rotation:1:O.DATA.13" COMMENT,"","Rotation:1:O","Lakeshore Control rs232 reset",,"Rotation:1:O.DATA.14" COMMENT,"","Rotation:1:O","PLC Fault Panel Light",,"Rotation:1:O.DATA.15" TAG,"","Rotation:2:C","","AB:1756_DI:C:0","" ALIAS,"","Rotation:2:I","Limit Switches and turnkeys inputs","","Rotation:I.Slot[2]" COMMENT,"","Rotation:2:I","Seperation Angle Limit Switch",,"Rotation:2:I.DATA.0" COMMENT,"","Rotation:2:I","Counting House E/S PB SOS",,"Rotation:2:I.DATA.1" COMMENT,"","Rotation:2:I","Counting House E/S PB HMS",,"Rotation:2:I.DATA.2" COMMENT,"","Rotation:2:I","SOS L/S Fwd",,"Rotation:2:I.DATA.3" COMMENT,"","Rotation:2:I","HMS L/S Fwd",,"Rotation:2:I.DATA.4" COMMENT,"","Rotation:2:I","SOS L/S Rev",,"Rotation:2:I.DATA.5" COMMENT,"","Rotation:2:I","HMS L/S Rev",,"Rotation:2:I.DATA.6" COMMENT,"","Rotation:2:I","SOS Remote Floor L/S",,"Rotation:2:I.DATA.7" COMMENT,"","Rotation:2:I","HMS Remote Floor L/S",,"Rotation:2:I.DATA.8" COMMENT,"","Rotation:2:I","24V DC Power Supply Active",,"Rotation:2:I.DATA.9" COMMENT,"","Rotation:2:I","Auto Selection Turnkey",,"Rotation:2:I.DATA.10" COMMENT,"","Rotation:2:I","Manual Selection Turnkey",,"Rotation:2:I.DATA.11" COMMENT,"","Rotation:2:I","Remote Selection Turnkey",,"Rotation:2:I.DATA.12" COMMENT,"","Rotation:2:I","Local Selection Turnkey",,"Rotation:2:I.DATA.13" COMMENT,"","Rotation:2:I","SOS Selected Turnkey",,"Rotation:2:I.DATA.14" COMMENT,"","Rotation:2:I","HMS Selected Turnkey",,"Rotation:2:I.DATA.15" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.16" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.17" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.18" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.19" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.20" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.21" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.22" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.23" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.24" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.25" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.26" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.27" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.28" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.29" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.30" COMMENT,"","Rotation:2:I","N/A",,"Rotation:2:I.DATA.31" TAG,"","Rotation:3:C","","AB:1756_DI:C:0","" ALIAS,"","Rotation:3:I","Inputs from switches and Panel","","Rotation:I.Slot[3]" COMMENT,"","Rotation:3:I","Move Forward PB",,"Rotation:3:I.DATA.0" COMMENT,"","Rotation:3:I","Move Reverse PB",,"Rotation:3:I.DATA.1" COMMENT,"","Rotation:3:I","Reset PB",,"Rotation:3:I.DATA.2" COMMENT,"","Rotation:3:I","Keep Alive Relay$'s 2nd contact",,"Rotation:3:I.DATA.3" COMMENT,"","Rotation:3:I","Start PB (Slew On)",,"Rotation:3:I.DATA.4" COMMENT,"","Rotation:3:I","Stop PB (Slew OFF)",,"Rotation:3:I.DATA.5" COMMENT,"","Rotation:3:I","SOS High Range Selector",,"Rotation:3:I.DATA.6" COMMENT,"","Rotation:3:I","SOS Low Range Selector",,"Rotation:3:I.DATA.7" COMMENT,"","Rotation:3:I","Horn PB",,"Rotation:3:I.DATA.8" COMMENT,"","Rotation:3:I","SOS Prox. Fwd Active",,"Rotation:3:I.DATA.9" COMMENT,"","Rotation:3:I","HMS Prox. Fwd Active",,"Rotation:3:I.DATA.10" COMMENT,"","Rotation:3:I","SOS Prox. Rev Active",,"Rotation:3:I.DATA.11" COMMENT,"","Rotation:3:I","HMS Prox. Rev Active",,"Rotation:3:I.DATA.12" COMMENT,"","Rotation:3:I","UPS is Active",,"Rotation:3:I.DATA.13" COMMENT,"","Rotation:3:I","Spare",,"Rotation:3:I.DATA.14" COMMENT,"","Rotation:3:I","Spare",,"Rotation:3:I.DATA.15" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.16" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.17" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.18" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.19" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.20" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.21" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.22" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.23" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.24" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.25" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.26" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.27" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.28" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.29" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.30" COMMENT,"","Rotation:3:I","N/A",,"Rotation:3:I.DATA.31" TAG,"","Rotation:4:C","","AB:1756_DO:C:0","" ALIAS,"","Rotation:4:I","","","Rotation:I.Slot[4]" ALIAS,"","Rotation:4:O","Panel Lights and strobes","","Rotation:O.Slot[4]" COMMENT,"","Rotation:4:O","SOS Fwd Limit PL",,"Rotation:4:O.DATA.0" COMMENT,"","Rotation:4:O","HMS Fwd Limit PL",,"Rotation:4:O.DATA.1" COMMENT,"","Rotation:4:O","SOS Rev Limit PL",,"Rotation:4:O.DATA.2" COMMENT,"","Rotation:4:O","HMS Rev Limit PL",,"Rotation:4:O.DATA.3" COMMENT,"","Rotation:4:O","Reset PL",,"Rotation:4:O.DATA.4" COMMENT,"","Rotation:4:O","Emergency Stop PL",,"Rotation:4:O.DATA.5" COMMENT,"","Rotation:4:O","Move Fwd PL",,"Rotation:4:O.DATA.6" COMMENT,"","Rotation:4:O","Move Rev PL",,"Rotation:4:O.DATA.7" COMMENT,"","Rotation:4:O","PLC Heart Beat Output",,"Rotation:4:O.DATA.8" COMMENT,"","Rotation:4:O","Seperation Limit PL",,"Rotation:4:O.DATA.9" COMMENT,"","Rotation:4:O","SOS LED Strobe",,"Rotation:4:O.DATA.10" COMMENT,"","Rotation:4:O","HMS LED Strobe",,"Rotation:4:O.DATA.11" COMMENT,"","Rotation:4:O","BCD 5-1",,"Rotation:4:O.DATA.12" COMMENT,"","Rotation:4:O","Spare",,"Rotation:4:O.DATA.13" COMMENT,"","Rotation:4:O","Spare",,"Rotation:4:O.DATA.14" COMMENT,"","Rotation:4:O","Spare",,"Rotation:4:O.DATA.15" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.16" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.17" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.18" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.19" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.20" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.21" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.22" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.23" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.24" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.25" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.26" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.27" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.28" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.29" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.30" COMMENT,"","Rotation:4:O","N/A",,"Rotation:4:O.DATA.31" TAG,"","Rotation:5:C","","AB:1756_DO:C:0","" ALIAS,"","Rotation:5:I","","","Rotation:I.Slot[5]" ALIAS,"","Rotation:5:O","BCD Display for Angles","","Rotation:O.Slot[5]" COMMENT,"","Rotation:5:O","BCD Angle Display",,"Rotation:5:O.DATA" COMMENT,"","Rotation:5:O","BCD 1-1",,"Rotation:5:O.DATA.0" COMMENT,"","Rotation:5:O","BCD 1-2",,"Rotation:5:O.DATA.1" COMMENT,"","Rotation:5:O","BCD 1-4",,"Rotation:5:O.DATA.2" COMMENT,"","Rotation:5:O","BCD 1-8",,"Rotation:5:O.DATA.3" COMMENT,"","Rotation:5:O","BCD 2-1",,"Rotation:5:O.DATA.4" COMMENT,"","Rotation:5:O","BCD 2-2",,"Rotation:5:O.DATA.5" COMMENT,"","Rotation:5:O","BCD 2-4",,"Rotation:5:O.DATA.6" COMMENT,"","Rotation:5:O","BCD 2-8",,"Rotation:5:O.DATA.7" COMMENT,"","Rotation:5:O","BCD 3-1",,"Rotation:5:O.DATA.8" COMMENT,"","Rotation:5:O","BCD 3-2",,"Rotation:5:O.DATA.9" COMMENT,"","Rotation:5:O","BCD 3-4",,"Rotation:5:O.DATA.10" COMMENT,"","Rotation:5:O","BCD 3-8",,"Rotation:5:O.DATA.11" COMMENT,"","Rotation:5:O","BCD 4-1",,"Rotation:5:O.DATA.12" COMMENT,"","Rotation:5:O","BCD 4-2",,"Rotation:5:O.DATA.13" COMMENT,"","Rotation:5:O","BCD 4-4",,"Rotation:5:O.DATA.14" COMMENT,"","Rotation:5:O","BCD 4-8",,"Rotation:5:O.DATA.15" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.16" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.17" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.18" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.19" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.20" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.21" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.22" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.23" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.24" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.25" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.26" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.27" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.28" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.29" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.30" COMMENT,"","Rotation:5:O","N/A",,"Rotation:5:O.DATA.31" TAG,"","Rotation:6:C","","AB:1756_AO6_Float:C:0","" TAG,"","Rotation:6:I","","AB:1756_AO6_Float:I:0","" TAG,"","Rotation:6:O","Voltage output for Freq. setting","AB:1756_AO6_Float:O:0","" COMMENT,"","Rotation:6:O","SOS Mtr #1 Frequency",,"Rotation:6:O.CH0DATA" COMMENT,"","Rotation:6:O","HMS Mtr #1 Frequency",,"Rotation:6:O.CH1DATA" COMMENT,"","Rotation:6:O","SOS Mtr #2 Frequency",,"Rotation:6:O.CH2DATA" COMMENT,"","Rotation:6:O","HMS Mtr #2Frequency",,"Rotation:6:O.CH3DATA" TAG,"","Rotation:7:C","","AB:1756_HSC:C:0","" TAG,"","Rotation:7:I","High Speed Counter","AB:1756_HSC:I:0","" TAG,"","Rotation:7:O","","AB:1756_HSC:O:0","" TAG,"","Rotation:8:C","","AB:1756_DI:C:0","" ALIAS,"","Rotation:8:I","ThumbWheel Input for Angle","","Rotation:I.Slot[8]" COMMENT,"","Rotation:8:I","BCD 1-1",,"Rotation:8:I.DATA.0" COMMENT,"","Rotation:8:I","BCD 1-2",,"Rotation:8:I.DATA.1" COMMENT,"","Rotation:8:I","BCD 1-4",,"Rotation:8:I.DATA.2" COMMENT,"","Rotation:8:I","BCD 1-8",,"Rotation:8:I.DATA.3" COMMENT,"","Rotation:8:I","BCD 2-1",,"Rotation:8:I.DATA.4" COMMENT,"","Rotation:8:I","BCD 2-2",,"Rotation:8:I.DATA.5" COMMENT,"","Rotation:8:I","BCD 2-4",,"Rotation:8:I.DATA.6" COMMENT,"","Rotation:8:I","BCD 2-8",,"Rotation:8:I.DATA.7" COMMENT,"","Rotation:8:I","BCD 3-1",,"Rotation:8:I.DATA.8" COMMENT,"","Rotation:8:I","BCD 3-2",,"Rotation:8:I.DATA.9" COMMENT,"","Rotation:8:I","BCD 3-4",,"Rotation:8:I.DATA.10" COMMENT,"","Rotation:8:I","BCD 3-8",,"Rotation:8:I.DATA.11" COMMENT,"","Rotation:8:I","BCD 4-1",,"Rotation:8:I.DATA.12" COMMENT,"","Rotation:8:I","BCD 4-2",,"Rotation:8:I.DATA.13" COMMENT,"","Rotation:8:I","BCD 4-4",,"Rotation:8:I.DATA.14" COMMENT,"","Rotation:8:I","BCD$T4-8",,"Rotation:8:I.DATA.15" TAG,"","Rotation:I","","AB:1756_CNB_10SLOT:I:0","" TAG,"","Rotation:O","","AB:1756_CNB_10SLOT:O:0","" TAG,"","Dipole:1:C","","AB:1756_DI:C:0","" ALIAS,"","Dipole:1:I","","","Dipole:I.Slot[1]" TAG,"","Dipole:2:C","","AB:1756_DO:C:0","" ALIAS,"","Dipole:2:I","","","Dipole:I.Slot[2]" ALIAS,"","Dipole:2:O","","","Dipole:O.Slot[2]" TAG,"","Dipole:3:C","","AB:1756_DO:C:0","" ALIAS,"","Dipole:3:I","","","Dipole:I.Slot[3]" ALIAS,"","Dipole:3:O","","","Dipole:O.Slot[3]" COMMENT,"","Dipole:3:O","JT1_Open",,"Dipole:3:O.DATA.0" COMMENT,"","Dipole:3:O","JT1_Close",,"Dipole:3:O.DATA.1" COMMENT,"","Dipole:3:O","JT2_Open",,"Dipole:3:O.DATA.2" COMMENT,"","Dipole:3:O","JT2_Close",,"Dipole:3:O.DATA.3" COMMENT,"","Dipole:3:O","JT3_Open",,"Dipole:3:O.DATA.4" COMMENT,"","Dipole:3:O","JT3_Close",,"Dipole:3:O.DATA.5" COMMENT,"","Dipole:3:O","JT4_Open",,"Dipole:3:O.DATA.6" COMMENT,"","Dipole:3:O","JT4_Close",,"Dipole:3:O.DATA.7" COMMENT,"","Dipole:3:O","JT5_Open",,"Dipole:3:O.DATA.8" COMMENT,"","Dipole:3:O","JT5_Close",,"Dipole:3:O.DATA.9" COMMENT,"","Dipole:3:O","JT6_Open",,"Dipole:3:O.DATA.10" COMMENT,"","Dipole:3:O","JT6_Close",,"Dipole:3:O.DATA.11" COMMENT,"","Dipole:3:O","JT7_Open",,"Dipole:3:O.DATA.12" COMMENT,"","Dipole:3:O","JT7_Close",,"Dipole:3:O.DATA.13" COMMENT,"","Dipole:3:O","JT8_Open",,"Dipole:3:O.DATA.14" COMMENT,"","Dipole:3:O","JT8_Close",,"Dipole:3:O.DATA.15" TAG,"","Dipole:4:C","","AB:1756_DO:C:0","" ALIAS,"","Dipole:4:I","","","Dipole:I.Slot[4]" ALIAS,"","Dipole:4:O","","","Dipole:O.Slot[4]" COMMENT,"","Dipole:4:O","JT9_Open",,"Dipole:4:O.DATA.0" COMMENT,"","Dipole:4:O","JT9_Close",,"Dipole:4:O.DATA.1" COMMENT,"","Dipole:4:O","JT10_Open",,"Dipole:4:O.DATA.2" COMMENT,"","Dipole:4:O","JT10_Close",,"Dipole:4:O.DATA.3" COMMENT,"","Dipole:4:O","Warm_return_Open",,"Dipole:4:O.DATA.4" COMMENT,"","Dipole:4:O","Warm_return_Close",,"Dipole:4:O.DATA.5" COMMENT,"","Dipole:4:O","h_LHe_current_enabled",,"Dipole:4:O.DATA.6" COMMENT,"","Dipole:4:O","Penning_HV_enabled",,"Dipole:4:O.DATA.7" COMMENT,"","Dipole:4:O","24V_KA_On; this bit has been changed and has to be on to energise the keep alive relay",,"Dipole:4:O.DATA.8" COMMENT,"","Dipole:4:O","Keep_Alive",,"Dipole:4:O.DATA.9" COMMENT,"","Dipole:4:O","NMR_120VAC_Pwr_relay",,"Dipole:4:O.DATA.10" COMMENT,"","Dipole:4:O","MPS_Fast_Discharge",,"Dipole:4:O.DATA.11" COMMENT,"","Dipole:4:O","MPS_Slow_Discharge",,"Dipole:4:O.DATA.12" COMMENT,"","Dipole:4:O","MPS_CPU_Reset",,"Dipole:4:O.DATA.13" COMMENT,"","Dipole:4:O","MPS_Diodes_Reset",,"Dipole:4:O.DATA.14" COMMENT,"","Dipole:4:O","Danfysik QD reset",,"Dipole:4:O.DATA.15" TAG,"","Dipole:5:C","","AB:1756_IF16_Float_No_Alm:C:0","" TAG,"","Dipole:5:I","","AB:1756_IF16_Float_No_Alm:I:0","" COMMENT,"","Dipole:5:I","T_He_L_CL_W",,"Dipole:5:I.CH0DATA" COMMENT,"","Dipole:5:I","T_He_R_CL_W",,"Dipole:5:I.CH1DATA" COMMENT,"","Dipole:5:I","T_LN2_1",,"Dipole:5:I.CH2DATA" COMMENT,"","Dipole:5:I","T_LN2_2",,"Dipole:5:I.CH3DATA" COMMENT,"","Dipole:5:I","T_LN2_3",,"Dipole:5:I.CH4DATA" COMMENT,"","Dipole:5:I","T_LN2_4",,"Dipole:5:I.CH5DATA" COMMENT,"","Dipole:5:I","T_LN2_In",,"Dipole:5:I.CH6DATA" COMMENT,"","Dipole:5:I","T_LN2_Out",,"Dipole:5:I.CH7DATA" COMMENT,"","Dipole:5:I","T_LHe_1",,"Dipole:5:I.CH8DATA" COMMENT,"","Dipole:5:I","T_LHe_2",,"Dipole:5:I.CH9DATA" COMMENT,"","Dipole:5:I","T_LHe_3",,"Dipole:5:I.CH10DATA" COMMENT,"","Dipole:5:I","T_LHe_4",,"Dipole:5:I.CH11DATA" COMMENT,"","Dipole:5:I","T_LHe_In",,"Dipole:5:I.CH12DATA" COMMENT,"","Dipole:5:I","T_LHe_Out",,"Dipole:5:I.CH13DATA" COMMENT,"","Dipole:5:I","T_LHe_L_CL_C",,"Dipole:5:I.CH14DATA" COMMENT,"","Dipole:5:I","T_LHe_R_CL_C",,"Dipole:5:I.CH15DATA" TAG,"","Dipole:6:C","","AB:1756_IF16_Float_No_Alm:C:0","" TAG,"","Dipole:6:I","","AB:1756_IF16_Float_No_Alm:I:0","" COMMENT,"","Dipole:6:I","m_flow_Lx",,"Dipole:6:I.CH0DATA" COMMENT,"","Dipole:6:I","m_flow_Rx",,"Dipole:6:I.CH1DATA" COMMENT,"","Dipole:6:I","WR_BV_position",,"Dipole:6:I.CH2DATA" COMMENT,"","Dipole:6:I","h_LN2",,"Dipole:6:I.CH4DATA" COMMENT,"","Dipole:6:I","p_He",,"Dipole:6:I.CH10DATA" COMMENT,"","Dipole:6:I","p_N2",,"Dipole:6:I.CH11DATA" COMMENT,"","Dipole:6:I","Thermo_x",,"Dipole:6:I.CH12DATA" COMMENT,"","Dipole:6:I","Penning_x",,"Dipole:6:I.CH13DATA" COMMENT,"","Dipole:6:I","Temp_12",,"Dipole:6:I.CH14DATA" COMMENT,"","Dipole:6:I","h_LHe",,"Dipole:6:I.CH15DATA" TAG,"","Dipole:7:C","","AB:1756_IF16_Float_No_Alm:C:0","" TAG,"","Dipole:7:I","","AB:1756_IF16_Float_No_Alm:I:0","" COMMENT,"","Dipole:7:I","Temp_HX_He",,"Dipole:7:I.CH0DATA" COMMENT,"","Dipole:7:I","s1_true",,"Dipole:7:I.CH1DATA" COMMENT,"","Dipole:7:I","s2_true",,"Dipole:7:I.CH2DATA" COMMENT,"","Dipole:7:I","s3_true",,"Dipole:7:I.CH3DATA" COMMENT,"","Dipole:7:I","s4_true",,"Dipole:7:I.CH4DATA" COMMENT,"","Dipole:7:I","s5_true",,"Dipole:7:I.CH5DATA" COMMENT,"","Dipole:7:I","s6_true",,"Dipole:7:I.CH6DATA" COMMENT,"","Dipole:7:I","s7_true",,"Dipole:7:I.CH7DATA" COMMENT,"","Dipole:7:I","s8_true",,"Dipole:7:I.CH8DATA" COMMENT,"","Dipole:7:I","s9_true",,"Dipole:7:I.CH9DATA" COMMENT,"","Dipole:7:I","s10_true HX_LN2$N",,"Dipole:7:I.CH10DATA" COMMENT,"","Dipole:7:I","T_HX_N2",,"Dipole:7:I.CH11DATA" COMMENT,"","Dipole:7:I","LVDT_12",,"Dipole:7:I.CH12DATA" COMMENT,"","Dipole:7:I","MPS_Current",,"Dipole:7:I.CH13DATA" COMMENT,"","Dipole:7:I","s10_true",,"Dipole:7:I.CH14DATA" TAG,"","Dipole:8:C","","AB:1756_IF16_Float_No_Alm:C:0","" TAG,"","Dipole:8:I","","AB:1756_IF16_Float_No_Alm:I:0","" COMMENT,"","Dipole:8:I","Force_R1",,"Dipole:8:I.CH8DATA" COMMENT,"","Dipole:8:I","Force_L1",,"Dipole:8:I.CH9DATA" COMMENT,"","Dipole:8:I","Force_R2",,"Dipole:8:I.CH10DATA" COMMENT,"","Dipole:8:I","Force_L2",,"Dipole:8:I.CH11DATA" COMMENT,"","Dipole:8:I","Force_R3",,"Dipole:8:I.CH12DATA" COMMENT,"","Dipole:8:I","Force_L3",,"Dipole:8:I.CH13DATA" COMMENT,"","Dipole:8:I","Force_R4",,"Dipole:8:I.CH14DATA" COMMENT,"","Dipole:8:I","Force_L4",,"Dipole:8:I.CH15DATA" TAG,"","Dipole:9:C","","AB:1756_IF8_Float:C:0","" TAG,"","Dipole:9:I","","AB:1756_IF8_Float:I:0","" TAG,"","Dipole:I","","AB:1756_CNB_10SLOT:I:0","" TAG,"","Dipole:O","","AB:1756_CNB_10SLOT:O:0","" TAG,"","Q2:1:C","","AB:1756_DI:C:0","" ALIAS,"","Q2:1:I","","","Q2:I.Slot[1]" TAG,"","Q2:2:C","","AB:1756_DI:C:0","" ALIAS,"","Q2:2:I","","","Q2:I.Slot[2]" TAG,"","Q2:3:C","","AB:1756_DO:C:0","" ALIAS,"","Q2:3:I","","","Q2:I.Slot[3]" ALIAS,"","Q2:3:O","","","Q2:O.Slot[3]" TAG,"","Q2:4:C","","AB:1756_DO:C:0","" ALIAS,"","Q2:4:I","","","Q2:I.Slot[4]" ALIAS,"","Q2:4:O","","","Q2:O.Slot[4]" TAG,"","Q2:5:C","","AB:1756_IF16_Float_No_Alm:C:0","" TAG,"","Q2:5:I","","AB:1756_IF16_Float_No_Alm:I:0","" TAG,"","Q2:6:C","","AB:1756_IF16_Float_No_Alm:C:0","" TAG,"","Q2:6:I","","AB:1756_IF16_Float_No_Alm:I:0","" TAG,"","Q2:7:C","","AB:1756_IF16_Float_No_Alm:C:0","" TAG,"","Q2:7:I","","AB:1756_IF16_Float_No_Alm:I:0","" TAG,"","Q2:8:C","","AB:1756_AO6_Float:C:0","" TAG,"","Q2:8:I","","AB:1756_AO6_Float:I:0","" TAG,"","Q2:8:O","","AB:1756_AO6_Float:O:0","" TAG,"","Q2:9:C","","AB:1756_IF8_Float:C:0","" TAG,"","Q2:9:I","","AB:1756_IF8_Float:I:0","" TAG,"","Q2:I","","AB:1756_CNB_10SLOT:I:0","" TAG,"","Q2:O","","AB:1756_CNB_10SLOT:O:0","" TAG,"","ASCII:0:C","","AB:FLEX_MODULE_INT:C:0","" TAG,"","ASCII:0:I","","AB:FLEX_MODULE_INT_20Bytes:I:0","" TAG,"","ASCII:0:O","","AB:FLEX_MODULE_INT_14Bytes:O:0","" TAG,"","ASCII:1:C","","AB:FLEX_MODULE_INT:C:0","" TAG,"","ASCII:1:I","","AB:FLEX_MODULE_INT_20Bytes:I:0","" TAG,"","ASCII:1:O","","AB:FLEX_MODULE_INT_14Bytes:O:0","" TAG,"","ASCII:2:C","","AB:FLEX_MODULE_INT:C:0","" TAG,"","ASCII:2:I","","AB:FLEX_MODULE_INT_20Bytes:I:0","" TAG,"","ASCII:2:O","","AB:FLEX_MODULE_INT_14Bytes:O:0","" TAG,"","ASCII:3:C","","AB:FLEX_MODULE_INT:C:0","" TAG,"","ASCII:3:I","","AB:FLEX_MODULE_INT_20Bytes:I:0","" TAG,"","ASCII:3:O","","AB:FLEX_MODULE_INT_14Bytes:O:0","" COMMENT,"","ASCII:3:O","Status Bit to NMR here$NReversed characters",,"ASCII:3:O.DATA[2]" TAG,"","ASCII:4:C","","AB:FLEX_MODULE_INT:C:0","" TAG,"","ASCII:4:I","","AB:FLEX_MODULE_INT_20Bytes:I:0","" TAG,"","ASCII:4:O","","AB:FLEX_MODULE_INT_14Bytes:O:0","" TAG,"","ASCII:I","","AB:1794_ACN15_8SLOT:I:0","" TAG,"","ASCII:O","","AB:1794_ACN15_8SLOT:O:0","" TAG,"","cd_pipe_Dipole","","BOOL","" TAG,"","cd_pipe_Q1","","BOOL","" TAG,"","cd_pipe_Q2","","BOOL","" TAG,"","cd_pipe_Q3","","BOOL","" TAG,"","cd_warm_gas_Dipole","","BOOL","" TAG,"","cd_warm_gas_Q1","","BOOL","" TAG,"","cd_warm_gas_Q2","","BOOL","" TAG,"","cd_warm_gas_Q3","","BOOL","" TAG,"","CEV6711C","Hall C 4K Flow Limit","REAL","" TAG,"","CEV6711C_ORBV","","REAL","" TAG,"","CEV6721C_ORBV","","REAL","" TAG,"","CEV6731C_ORBV","","REAL","" TAG,"","CEV6741C_ORBV","","REAL","" TAG,"","CEV6751C_ORBV","","REAL","" TAG,"","CEV6781C_ORBV","","REAL","" TAG,"","CFI6010","Warm He Supply Flow","REAL","" TAG,"","CFI6030","","REAL","" TAG,"","CFI60DLP","Warm He Ret Flow","REAL","" TAG,"","CFI60DLP_Limit","","REAL","" TAG,"","CFI6711A","Hall A 4K supply","REAL","" TAG,"","CFI6711B","Hall B 4K supply","REAL","" TAG,"","CFI6711C","Hall C 4K supply","REAL","" TAG,"","CFI6731C","","REAL","" TAG,"","CFI6751C","","REAL","" TAG,"","CLL671SC","","REAL","" TAG,"","CLL675SC","","REAL","" TAG,"","CLL6763","","REAL","" TAG,"","CPI6010","Warm He Supp Pres","REAL","" TAG,"","CPI6030","","REAL","" TAG,"","CPI603QC","Quench Return Line Pressure","REAL","" TAG,"","CPI60DLP","Warm He Ret Pres","REAL","" TAG,"","CPI671SC","4K Supply Press ESR","REAL","" TAG,"","CPI671T","4K Supply Press Hall","REAL","" TAG,"","CPI672","","REAL","" TAG,"","CPI673","","REAL","" TAG,"","CPI674","","REAL","" TAG,"","CPI6751","","REAL","" TAG,"","CPI9521","4K Ret Press","REAL","" TAG,"","CTD671SC","4K supply temp","REAL","" TAG,"","CTD672","","REAL","" TAG,"","CTD673","","REAL","" TAG,"","CTD674","","REAL","" TAG,"","CTD9521","4K Ret Temp","REAL","" TAG,"","CTP6751","","REAL","" ALIAS,"","Dipole_flex_reset","","","Rotation:1:O.Data.7" TAG,"","Encoder_reset","","MESSAGE","" TAG,"","Golden_tune","","BOOL","" TAG,"","hallc_Mev","","REAL","" TAG,"","Hall_C_4K_flow_limit","","REAL","" TAG,"","HX_Control","","INT","" TAG,"","IBC_CRCUR4","","REAL","" TAG,"","plc_hlc","","REAL","" TAG,"","P_HMS","","REAL","" TAG,"","Q1HallP","","REAL","" ALIAS,"","Q1_flex_reset","","","Rotation:1:O.Data.11" TAG,"","Q2HallP","","REAL","" ALIAS,"","Q2_flex_reset","","","Rotation:1:O.Data.12" TAG,"","Q3HallP","","REAL","" ALIAS,"","Q3_flex_reset","","","Rotation:1:O.Data.13" TAG,"","T_HX_set_Dipole","","REAL","" TAG,"","T_HX_set_Q1","","REAL","" TAG,"","T_HX_set_Q2","","REAL","" TAG,"","T_HX_set_Q3","","REAL","" TAG,"","T_TL_1","He Supply Temp 1 Transfer Line","REAL","" TAG,"","T_TL_2","He Supply Temp 2 Transfer Line","REAL","" TAG,"","T_TL_3","Ln2 Temp Transfer Line","REAL","" TAG,"","T_TL_4","He Return Temp Transfer Line","REAL","" TAG,"","T_TL_5","He Supply Temp Transfer Line","REAL","" TAG,"","T_TL_6","Q1 Warm Return Temp","REAL","" TAG,"","T_TL_7","Q2 Warm Return Temp","REAL","" TAG,"","T_TL_8","Q3 Warm Return Temp","REAL","" TAG,"","wu_warm_gas_Dipole","","BOOL","" TAG,"","wu_warm_gas_Q1","","BOOL","" TAG,"","wu_warm_gas_Q2","","BOOL","" TAG,"","wu_warm_gas_Q3","","BOOL","" TYPE,SCOPE,ROUTINE,COMMENT,OWNING_ELEMENT,LOCATION RCOMMENT,"Cryo_Program","ASCII_SubRoutine_1","Read Input Image from MVI94ASCII module. This message instruction addresses the MVI94ASCII module in slot 0. The instance name in the message tag is the slot number of the module + 1. For example if the MVI94ASCII module needs to be in slot 5, set the instance name to 6.","COP(ASCII:4:I.Data[0],MVI94ASCII.Input_Data[0],16)","0" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_1","Write Output Image to MVI94-ASCII module.","COP(MVI94ASCII.Output_Data[0],ASCII:4:O.Data[0],MVI94ASCII.Output_Data[2])","2" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","This rung will move the current block ID number to the Last_Read_Blk. This makes sure that only new blocks of data are processed.","MOV(MVI94ASCII.Input_Data[0],MVI94ASCII.Last_Read_Blk)","0" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Commands are stored in SString, which is triggered by the response from the command sent earlier.$NTimer is for debugging, use it to slow down controls.","OTE(next)","1" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Only 8 Lakeshore status commands go out. $Ncount = 0 is a manually sent command$Ncount =1-8 reads the temperature$Ncounts9 is a PLC command$NAfter sending out the command, wait for new data before sending out any new commands.$NIf the output string is a null, no new data will come in.","OTU(LS_208_GetStatus)","2" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","A command can be sent individually in this rung.","OTU(send_LS_208_cmd)","3" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Checks if the string being sent to the LS-208 is greater than 1. $NA zero length means no command is to be sent.$NAlso sends the first ten characters of the command and resets the timer.$N","RES(Timer)","4" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Checks if the outgoing string is greater than 10. Outgoing strings greater than 10 have to be processed in batches as the Flex can handle 10 (outgoing) bytes at a time. In this rung Char_Cnt_Overflow is latched which implies the above.This bit is checked(in rung 25) when the next character has to be sent out to the MPS, if it$'s still latched no new characters are sent.$NCharacter length is limited to be 40 or less by this subroutine.","OTL(Char_Cnt_OverFlow)","5" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Calculates the number of characters that need to be processed in the next rung","MOV(Char_Hold,Xmit.PRE)","6" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","If the character length is longer then 40, then no commands are sent at all.","OTE(Send_2_Long)","7" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Writes the characters 10 at a time that need to be processed and sent out to the MPS UP TO 40 CHARACTERS.","MOV(Xmit_Length,MVI94ASCII.WriteLength)","8" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Upon seeing that the number of character transmitted on last block is equal to the WriteLength, the output image of the module will be cleared, and the WriteLength set to 0. This will clear the output image of the module (necessary, otherwise the module will constantly write data out the port), and set the length to zero (so that the same string is not written out the port again). $N","OTU(Write_Sent)","9" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","The string with more then ten characters has been written out to the MPS, resets/clears the respective bits.","RES(Xmit)","10" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","This rung will process incoming data that is less than 14 characters, the data is moved into MVI94ASCII_multiblock_rec_data, from where it is processed. Also the $Qcarriage return$Q that is appended at the end of each imcoming string is deleted in this rung. The bit New_Data is set, which represents incoming of new data which needs to be processed.","OTL(New_Data)","11" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","This rung determines if the incoming data has greater than 14 characters.","ADD(1,MVI94ASCII.block_count,MVI94ASCII.block_count)","12" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","A string having greater than fourteen characters, is processed in the 4 and 5th rungs. In this rung the last fourteen characters are processed.","OTL(New_Data)","13" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","If new data exist, reset the 208 Timer.$NLocation of this rung is important as New_data tag gets reset within one scan.","RES(LS_timer)","14" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","In this rung a timer is used to check for communication errors with the Lake shore temp control.$NThe timer is set expire 1 sec after debug timer.$N","OTL(LS_comm_error)","15" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Count = 0 is for Manual input commands from RS5000 logix","OTU(New_Data)","16" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Count = 1 is for PLC / HMI commands","OTU(New_Data)","17" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Probe ChannelS","OTE(n1)","18" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Probe channel 1","OTU(New_Data)","19" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Probe channel 2","OTU(New_Data)","20" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Probe channel 3","OTU(New_Data)","21" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Probe channel 4","OTU(New_Data)","22" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Probe channel 5","OTU(New_Data)","23" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Probe channel 6","OTU(New_Data)","24" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Probe channel 7","OTU(New_Data)","25" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Probe channel 8","OTU(New_Data)","26" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","This block copies status information from the MVI94ASCII module. Status blocks are sent when no receive data is available.","COP(MVI94ASCII.Input_Data[14],MVI94ASCII.InStat.Port_Tx_State,1)","27" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","Once the LS-208 has replied to the command that was sent out, restart the ls_208_GetStatus$NOr if no command went out, go to next command.","RES(LS_cmd_tim)","29" RCOMMENT,"Cryo_Program","ASCII_SubRoutine_2","This last block moves the block ID number back to the module. When the module receives a new block of data on the Output image, this triggers the module to begin a new block of input data. Without this rung, the module will only present a new block of data to the processor every 1.5 seconds.","MOV(MVI94ASCII.Last_Read_Blk,MVI94ASCII.Output_Data[0])","30" RCOMMENT,"Cryo_Program","LS_208_Commands","Commands for talking to the lakeshore 208 temperature monitor$NR = rest$NYab = Channel dwell time where a = channel and b= dwell selector (0=none, 1=5, 2=10,etc.)$NYs = begin scan$NYh= halt scan$Nws= sample sensor reading and Alarm status","COP(Reset_cmd,SString[1],1)","0" TYPE,SCOPE,ROUTINE,COMMENT,OWNING_ELEMENT,LOCATION RCOMMENT,"Dipole_Program","ASCII_SubRoutine_1","Read Input Image from MVI94ASCII module. This message instruction addresses the MVI94ASCII module in slot 0. The instance name in the message tag is the slot number of the module + 1. For example if the MVI94ASCII module needs to be in slot 5, set the instance name to 6.","COP(ASCII:3:I.Data[0],MVI94ASCII.Input_Data[0],16)","0" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_1","This rung will process the data for the MVI94ASCII module only when a new block of data has been received from the module. If there is not a new block pending, then this subroutine will not be called.","JSR(ASCII_SubRoutine_2,0)","1" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_1","Write Output Image to MVI94-ASCII module.","COP(MVI94ASCII.Output_Data[0],ASCII:3:O.Data[0],7)","2" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This rung will move the current block ID number to the Last_Read_Blk. This makes sure that only new blocks of data are processed.","MOV(MVI94ASCII.Input_Data[0],MVI94ASCII.Last_Read_Blk)","0" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This rung will process incoming data that is less than 14 characters, the data is moved into MVI94ASCII_multiblock_rec_data, from where it is processed. Also the $Qcarriage return$Q that is appended at the end of each imcoming string is deleted in this rung. The bit New_Data is set, which represents incoming of new data which needs to be processed.","OTE(cont_cnt)","1" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This rung determines if the incoming data has greater than 14 characters.","ADD(1,MVI94ASCII.block_count,MVI94ASCII.block_count)","2" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","A string having greater than fourteen characters, is processed in the 4 and 5th rungs. In this rung the last fourteen characters are processed.","OTE(cont_cnt1)","3" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","In this rung, when no response from the NMR/MPS is expected, the NMR_GetStatus bit is latched to trigger the next command.","OTL(NMR_GetStatus)","5" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This rung processes the string, when EBS command is sent to the NMR. Multiples lines of strings are sent by the NMR as response and each of these lines are copied to an element of an array.","OTL(NMR_GetStatus)","6" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This rung reads the status bits from the NMR.","OTU(NMR_GetStatus)","7" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","The NMR enquire command that is sent out twice for faster updates, is read and processed in this rung.","OTL(NMR_GetStatus)","8" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","Reads the response from the MPS when a command has been sent, when it comes back with a ?(63) the error number sent by the MPS is read. If nothing comes back from the NMR, it waits 20 msecs to check for a response if nothing comes back it reset the timer and sends out the next commad.","OTL(NMR_GetStatus)","9" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","Reads the state of the MPS, whether in LOCAL REMOTE or LOCK.","OTL(NMR_GetStatus)","10" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","Reads the slew rate of the MPS","OTL(NMR_GetStatus)","11" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","Reads the ADC set value of the MPS","OTL(NMR_GetStatus)","12" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","Reads the ADC readback value of the MPS$N","OTL(NMR_GetStatus)","13" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","Reads the output voltage of the MPS","OTL(NMR_GetStatus)","14" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","Reads the ADC for current output","OTL(NMR_GetStatus)","15" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This rung processes the MPS status bits and copies them into the MPS_Status_Read array.","OTL(NMR_GetStatus)","16" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This processes the Status bits NMR, converting them from ASCII to a decimal number.$NCount=1 means S7 status. ","OTU(New_Data)","17" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This processes the Status bits NMR, converting them from ASCII to a decimal number.$NCount=4 means S1 Status","OTU(New_Data)","18" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This processes the Status bits NMR, converting them from ASCII to a decimal number.$NCount=5 means S5 Status","OTU(New_Data)","19" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This processes the Status bits NMR, converting them from ASCII to a decimal number.$NCount=16 means S2 Status","OTU(New_Data)","20" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This processes the Status bits NMR, converting them from ASCII to a decimal number.$NCount=17 means S3 Status","OTU(New_Data)","21" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This processes the Status bits NMR, converting them from ASCII to a decimal number.$NCount=18 means S6 Status","OTU(New_Data)","22" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This processes the Status bits from S4 of the NMR, converts it from ASCII into a decimal number.","OTU(New_Data)","23" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This block copies status information from the MVI94ASCII module. Status blocks are sent when no receive data is available.","COP(MVI94ASCII.Input_Data[14],MVI94ASCII.InStat.Port_Tx_State,1)","24" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This block copies status information from the MVI94ASCII module. Status blocks are sent when no receive data is available.","COP(MVI94ASCII.Input_Data[14],MVI94ASCII.InStat.Port_Tx_State,1)","25" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","Commands are stored in SString, which is triggered by the response from the command sent to the NMR.","OTL(send_string)","26" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","Sends the string to be written to the NMR","OTU(NMR_GetStatus)","27" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","Checks if the string being sent to the NMR is greater than 1.","OTL(Write_Sent)","28" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","Checks if the outgoing string is greater than 10. Outgoing strings greater than 10 have to be processed in batches as the Flex can handle 10 (outgoing) bytes at a time.In this rung Char_Cnt_Overflow is latched which implies the above.This bit is checked(in rung 25) when the next character has to be sent out to the NMR, if it$'s still latched no new characters are sent.","OTL(Char_Cnt_OverFlow)","29" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","Calculates the number of characters that need to be processed in the next rung","MOV(Char_Hold,Xmit.PRE)","30" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","Writes the chracters 10 at a time that need to be processed and sent out to the NMR.","MOV(Xmit_Length,MVI94ASCII.WriteLength)","31" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","If number of characters transmitted on last block is equal to the WriteLength, the output image of the module will be cleared, and the WriteLength set to 0. This will clear the output image of the module (necessary, otherwise the module will constantly write data out the port), and set the length to zero (so that the same string is not written out the port again). $N","OTU(Write_Sent)","32" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","Implies that the string has been written out to the NMR, and resets/clears the respective bits.","MOV(0,Xmit.PRE)","33" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","In this rung a timer is used to check for communication errors with the Power supply and the NMR$N","OTE(NMR_comm_error)","34" RCOMMENT,"Dipole_Program","ASCII_SubRoutine_2","This last block moves the block ID number back to the module. When the module receives a new block of data on the Output image, this triggers the module to begin a new block of input data. Without this rung, the module will only present a new block of data to the processor every 1.5 seconds.","MOV(MVI94ASCII.Last_Read_Blk,MVI94ASCII.Output_Data[0])","35" RCOMMENT,"Dipole_Program","MPS_Commands","This command is used to write a value between 0 to 999999 to the regulation module.A leading Zero format has been used.","COP(MPS_Wa_cmd_send,SString[7],1)","0" RCOMMENT,"Dipole_Program","MPS_Commands","This command is used to set MPS current to zero, when it HMI resets interlocks.","COP(MPS_Wa_zero_cmd,SString[7],1)","1" RCOMMENT,"Dipole_Program","MPS_Commands","Writes the slew rate to the MPS.","COP(MPS_Slew_write_send,SString[7],1)","2" RCOMMENT,"Dipole_Program","MPS_Commands","The N command us used to swtich-on the power supply(main contact).","COP(MPS_PowerN,SString[7],1)","3" RCOMMENT,"Dipole_Program","MPS_Commands","This command is used to switch-off the power supply(main contactor).","COP(MPS_PowerF,SString[7],1)","4" RCOMMENT,"Dipole_Program","MPS_Commands","This command is used to clear all non pending interlocks","COP(MPS_RS,SString[7],1)","5" RCOMMENT,"Dipole_Program","MPS_Commands","This command is used to change the polarity of the power supply to negative.","COP(MPS_PONeg,SString[7],1)","6" RCOMMENT,"Dipole_Program","MPS_Commands","This command is used to change the polarity of the power supply to positive.","COP(MPS_POPos,SString[7],1)","7" RCOMMENT,"Dipole_Program","MPS_Commands","This command is used to switch the power supply to remote.","COP(MPS_Remote,SString[7],1)","8" RCOMMENT,"Dipole_Program","MPS_Commands","This command us used to switch-on the Auxiliary output port.","COP(MPS_GlobalF,SString[7],1)","9" RCOMMENT,"Dipole_Program","MPS_Commands","This command us used to switch-off the power supply(main contactor) and automatically set the set value to zero (WA 000000).","COP(MPS_SlowF,SString[7],1)","10" RCOMMENT,"Dipole_Program","MPS_Commands","This command is used to release the local LOCK state.","COP(MPS_Unlock,SString[7],1)","11" RCOMMENT,"Dipole_Program","MPS_Commands","Changes to local control.","COP(MPS_Loc_cmd,SString[7],1)","12" RCOMMENT,"Dipole_Program","MPS_Commands","This command puts the controller into a mode, in which all errors will respond with a code number representing the error.","COP(MPS_ERRC_cmd,SString[7],1)","13" RCOMMENT,"Dipole_Program","NMR_commands","This rung is used to send the $QER0$Q command, which stops regulation.","COP(NMR_ER0_cmd,SString[2],1)","0" RCOMMENT,"Dipole_Program","NMR_commands","This rung is used to send $QLR$Q command sent after ER0 command is sent to stop regulation.","COP(NMR_LR_cmd,SString[2],1)","1" RCOMMENT,"Dipole_Program","NMR_commands","This rung is used to start regulation by sending out $QEB$Q command , and a field value.","COP(NMR_EB_cmd_send,SString[2],1)","2" RCOMMENT,"Dipole_Program","NMR_commands","This rung is used to send a manual $QEB$Q command.","COP(NMR_EB_man_cmd,SString[2],1)","3" RCOMMENT,"Dipole_Program","NMR_commands","This rung sends a $QRS$Q command to reset the NMR.","COP(NMR_Rst_cmd,SString[2],1)","4" RCOMMENT,"Dipole_Program","NMR_commands","This rung sends $QER1$Q or start regulation command to the NMR.","COP(NMR_ER1_cmd,SString[2],1)","5" RCOMMENT,"Dipole_Program","NMR_commands","ECL command alongwith the Low point decimal number is sent to the NMR.","COP(NMR_ECL_cmd_send,SString[2],1)","6" RCOMMENT,"Dipole_Program","NMR_commands","ECH command alongwith the High point decimal number is sent to the NMR.","COP(NMR_ECH_cmd_send,SString[2],1)","7" RCOMMENT,"Dipole_Program","NMR_commands","ECS command is sent out which measure the curve of the magnetic field as a function of the current parameter.","COP(NMR_ECS_cmd,SString[2],1)","8" RCOMMENT,"Dipole_Program","NMR_commands","Starts the search mode.","COP(NMR_StartSearch,SString[2],1)","9" RCOMMENT,"Dipole_Program","NMR_commands","Turns the search more off.","COP(NMR_QuitSearch,SString[2],1)","10" RCOMMENT,"Dipole_Program","NMR_commands","This rung is used to send $QR$Q command to the NMR to put the NMR in Remote control.","COP(NMR_Rem,SString[2],1)","11" RCOMMENT,"Dipole_Program","NMR_commands","This rung is used to send a $QL$Q command to put the NMR in local control.","COP(NMR_Loc,SString[2],1)","12" RCOMMENT,"Dipole_Program","NMR_commands","Displays the field in Tesla","COP(NMR_DisT,SString[2],1)","13" RCOMMENT,"Dipole_Program","NMR_commands","This command selects the AUTO mode.","COP(NMR_A1,SString[2],1)","14" RCOMMENT,"Dipole_Program","NMR_commands","This command selects the MANUAL mode","COP(NMR_A0,SString[2],1)","15" RCOMMENT,"Dipole_Program","NMR_commands","This command determines whether the sense of the field to be measured with repect to the orientation of the probe is positive.","COP(NMR_POP,SString[2],1)","16" RCOMMENT,"Dipole_Program","NMR_commands","This command determines whether the sense of the field to be measured with repect to the orientation of the probe is negative.","COP(NMR_PON,SString[2],1)","17" RCOMMENT,"Dipole_Program","NMR_commands","This command allows the speed of the search to be changed.","COP(NMR_speedR,SString[2],1)","18" RCOMMENT,"Dipole_Program","NMR_commands","This command represents the appropriate multiplexer channel ranging from A-H.","COP(NMR_Mux_chan,SString[2],1)","19" RCOMMENT,"Dipole_Program","NMR_commands","This command selects the multiplexer channel range.","COP(NMR_Mux,SString[2],1)","20" RCOMMENT,"Dipole_Program","NMR_commands","MPS settling time is sent out to the NMR, this represents the time in seconds to achieve the MPS maximum current paramter value in the EFC command.","COP(ES_settlingtime_send,SString[2],1)","21" RCOMMENT,"Dipole_Program","NMR_commands","This command represents the adjustement of the intergral coefficient, a decimal number that indicates the adjustement rate of the correction factor in %.","COP(NMR_EKI_cmd_send,SString[2],1)","22" RCOMMENT,"Dipole_Program","NMR_commands","This command represents the adjustement of the proportioanl coefficient, a decimal number that indicates the adjustement rate of the correction factor in %.","COP(NMR_EKP_cmd_send,SString[2],1)","23" RCOMMENT,"Dipole_Program","NMR_commands","This is a trigger delay command, that iundicates the delay in 1/10 seconds between one correction and the start of the next field measurement.","COP(NMR_ET_cmd_send,SString[2],1)","24" RCOMMENT,"Dipole_Program","NMR_commands","This command indicates the number of samples in the sliding average.","COP(NMR_EM_cmd_send,SString[2],1)","25" RCOMMENT,"Dipole_Program","NMR_commands","This command indicates the length of the digital filter buffer","COP(NMR_EX_cmd_send,SString[2],1)","26" RCOMMENT,"Dipole_Program","NMR_commands","This indicates the digital filter threshold in units of 10^-7","COP(NMR_EH_cmd_send,SString[2],1)","27" RCOMMENT,"Dipole_Program","NMR_commands","Regulation message to the MPS.","COP(NMR_EFC_cmd,SString[2],1)","28" RCOMMENT,"Dipole_Program","NMR_commands","This rung FiLLs the array NMR_EB_Test_Read so new data can be read into it, by sending the EB(S)(1)..commands.","OTL(NMR_EB_cmd_sent)","29" RCOMMENT,"Dipole_Program","NMR_commands","Whenever needed the data readback from the NMR after sending the EBS(c) command, is processed in this rung. The EC low value and the EC High value are extracted and converted from a string to a DINT.The HMI triggers the Process_EBS_data bit.","OTU(Process_EBS_data)","30" RCOMMENT,"Dipole_Program","NMR_commands","Clears the command array of the NMR and MPS.Triggered by the HMI when needed.","OTU(clr_cmd_array)","31" TYPE,SCOPE,ROUTINE,COMMENT,OWNING_ELEMENT,LOCATION RCOMMENT,"Q1","ASCII_SubRoutine_1","Copy New block data from Module to it$'s input image name. Block Sequence Number, Byte [0], is indexed evey scan of the port.$NByte [1] of the block contains the count of the number of bytes to process in the current block.$N-3 and -4 indicate status blocks are being sent over.$N-1 means more then 14 characters are being sent.","COP(ASCII:0:I.Data[0],MVI94ASCII.Input_Data[0],16)","0" RCOMMENT,"Q1","ASCII_SubRoutine_1","This rung will process the data for the MVI94ASCII module only when a new block of data has been received from the module. If there is not a new block pending, then this subroutine will not be called.","JSR(ASCII_SubRoutine_2,0)","1" RCOMMENT,"Q1","ASCII_SubRoutine_1","Write Output Image to MVI94-ASCII module.","COP(MVI94ASCII.Output_Data[0],ASCII:0:O.Data[0],7)","2" RCOMMENT,"Q1","ASCII_SubRoutine_2","This rung will move the current block ID number to the Last_Read_Blk. This makes sure that only new blocks of data are processed.","MOV(MVI94ASCII.Input_Data[0],MVI94ASCII.Last_Read_Blk)","0" RCOMMENT,"Q1","ASCII_SubRoutine_2","Commands are stored in SString, which is triggered by the response from the command sent earlier.$NTimer is for debugging, use it to slow down controls.","OTE(next)","1" RCOMMENT,"Q1","ASCII_SubRoutine_2","Only 9 MPS status commands go out. $Ncount = 0 is a manually sent command$Ncount =1 is a PLC sent command$Ncounts 2 thru 9 are status request commands$NAfter sending out the command, wait for new data before sending out any new commands.$NIf the output string is a null, no new data will come in.","OTU(MPS_GetStatus)","2" RCOMMENT,"Q1","ASCII_SubRoutine_2","A command can be sent individually in this rung.","OTU(send_MPS_cmd)","3" RCOMMENT,"Q1","ASCII_SubRoutine_2","Checks if the string being sent to the MPS is greater than 1. $NA zero length means no command is to be sent.$NAlso sends the first ten characters of he command and resets the timer.$N","RES(Timer)","4" RCOMMENT,"Q1","ASCII_SubRoutine_2","Checks if the outgoing string is greater than 10. Outgoing strings greater than 10 have to be processed in batches as the Flex can handle 10 (outgoing) bytes at a time. In this rung Char_Cnt_Overflow is latched which implies the above.This bit is checked(in rung 25) when the next character has to be sent out to the MPS, if it$'s still latched no new characters are sent.$NCharacter length is limited to be 40 or less by this subroutine.","OTL(Char_Cnt_OverFlow)","5" RCOMMENT,"Q1","ASCII_SubRoutine_2","Calculates the number of characters that need to be processed in the next rung","MOV(Char_Hold,Xmit.PRE)","6" RCOMMENT,"Q1","ASCII_SubRoutine_2","If the character length is longer then 40, then no commands are sent at all.","OTE(Send_2_Long)","7" RCOMMENT,"Q1","ASCII_SubRoutine_2","Writes the characters 10 at a time that need to be processed and sent out to the MPS UP TO 40 CHARACTERS.","MOV(Xmit_Length,MVI94ASCII.WriteLength)","8" RCOMMENT,"Q1","ASCII_SubRoutine_2","Upon seeing that the number of character transmitted on last block is equal to the WriteLength, the output image of the module will be cleared, and the WriteLength set to 0. This will clear the output image of the module (necessary, otherwise the module will constantly write data out the port), and set the length to zero (so that the same string is not written out the port again). $N","OTU(Write_Sent)","9" RCOMMENT,"Q1","ASCII_SubRoutine_2","The string with more then ten characters has been written out to the MPS, resets/clears the respective bits.","RES(Xmit)","10" RCOMMENT,"Q1","ASCII_SubRoutine_2","This rung will process incoming data that is less than 14 characters, the data is moved into MVI94ASCII_multiblock_rec_data, from where it is processed. Also the $Qcarriage return$Q that is appended at the end of each imcoming string is deleted in this rung. The bit New_Data is set, which represents incoming of new data which needs to be processed.","OTE(continue1)","11" RCOMMENT,"Q1","ASCII_SubRoutine_2","NMR and MPS have LF and CR reversed. Flex only looks at LF so must remove CR from string$N","OTL(New_Data)","12" RCOMMENT,"Q1","ASCII_SubRoutine_2","This rung determines if the incoming data has greater than 14 characters.","ADD(1,MVI94ASCII.block_count,MVI94ASCII.block_count)","13" RCOMMENT,"Q1","ASCII_SubRoutine_2","A string having greater than fourteen characters, is processed in the 4 and 5th rungs. In this rung the last fourteen characters are processed.","OTL(New_Data)","14" RCOMMENT,"Q1","ASCII_SubRoutine_2","If new data exist and the count is between zero and 9 reset the MPS Timer.$NLocation of this rung is important as New_data tag gets reset within one scan.","RES(MPS_timer)","15" RCOMMENT,"Q1","ASCII_SubRoutine_2","In this rung a timer is used to check for communication errors with the Power supply.$NThe timer is set expire 1 sec after debug timer.$NAfter timer has gone off, check for new message.$N","OTL(PSU_comm_error)","16" RCOMMENT,"Q1","ASCII_SubRoutine_2","Count = 0 is for Manual input commands from RS5000 logix","OTL(MPS_GetStatus)","17" RCOMMENT,"Q1","ASCII_SubRoutine_2","Count = 1 is for PLC / HMI commands","OTL(MPS_GetStatus)","18" RCOMMENT,"Q1","ASCII_SubRoutine_2","Reads the state of the MPS, whether in LOCAL REMOTE or LOCK.","OTL(MPS_GetStatus)","19" RCOMMENT,"Q1","ASCII_SubRoutine_2","Reads the output current of the MPS","OTL(MPS_GetStatus)","20" RCOMMENT,"Q1","ASCII_SubRoutine_2","Reads the output voltage of the MPS","OTL(MPS_GetStatus)","21" RCOMMENT,"Q1","ASCII_SubRoutine_2","Reads the ADC readback value of the MPS$N","OTL(MPS_GetStatus)","22" RCOMMENT,"Q1","ASCII_SubRoutine_2","Reads the ADC set value of the MPS","OTL(MPS_GetStatus)","23" RCOMMENT,"Q1","ASCII_SubRoutine_2","Reads the slew rate of the MPS","OTL(MPS_GetStatus)","24" RCOMMENT,"Q1","ASCII_SubRoutine_2","This rung processes the MPS status bits and copies them into the MPS_Status_Read array.","OTL(MPS_GetStatus)","25" RCOMMENT,"Q1","ASCII_SubRoutine_2","Reads the Polarity of the MPS","OTL(MPS_GetStatus)","26" RCOMMENT,"Q1","ASCII_SubRoutine_2","This block copies status information from the MVI94ASCII module. Status blocks are sent when no receive data is available.","COP(MVI94ASCII.Input_Data[14],MVI94ASCII.InStat.Port_Tx_State,1)","27" RCOMMENT,"Q1","ASCII_SubRoutine_2","Once the MPS has replied to the command that was sent out, restart the MPS_GetStatus$NOr if no command went out, go to next command.","RES(MPS_cmd_tim)","29" RCOMMENT,"Q1","ASCII_SubRoutine_2","This last block moves the block ID number back to the module. When the module receives a new block of data on the Output image, this triggers the module to begin a new block of input data. Without this rung, the module will only present a new block of data to the processor every 1.5 seconds.","MOV(MVI94ASCII.Last_Read_Blk,MVI94ASCII.Output_Data[0])","30" RCOMMENT,"Q1","MPS_Commands","This command is used to write a value between 0 to 999999 to the regulation module. Leading Zero format must be used.$NSix numbers are to be used.$N","OTE(cont1)","0" RCOMMENT,"Q1","MPS_Commands","Add the value to the command Wa, then add carriage return and send it out.$NCopying to the send string clears any previous stored command.$N","MOV(0,count)","1" RCOMMENT,"Q1","MPS_Commands","This command is used to set MPS current to zero, when the HMI resets interlocks.$NIf SString Length is greater then 30 characters, copy the commad to SString as this will ensure previous commands stored in SString will be erased and the MPS command will go out intact.$N","MOV(0,count)","2" RCOMMENT,"Q1","MPS_Commands","Writes the slew rate to the MPS.","MOV(0,count)","3" RCOMMENT,"Q1","MPS_Commands","The N command is used to swtich-on the power supply (main contact).","MOV(0,count)","4" RCOMMENT,"Q1","MPS_Commands","This command is used to switch-off the power supply (main contactor).","MOV(0,count)","5" RCOMMENT,"Q1","MPS_Commands","This command is used to clear interlocks","MOV(0,count)","6" RCOMMENT,"Q1","MPS_Commands","This command is used to change the polarity of the power supply to negative.","MOV(0,count)","7" RCOMMENT,"Q1","MPS_Commands","This command is used to change the polarity of the power supply to positive.","MOV(0,count)","8" RCOMMENT,"Q1","MPS_Commands","This command is used to switch the power supply to remote.","MOV(0,count)","9" RCOMMENT,"Q1","MPS_Commands","This command us used to switch-off the power supply(main contactor) and automatically set the set value to zero (WA 000000).","MOV(0,count)","10" RCOMMENT,"Q1","MPS_Commands","Changes to local control.","MOV(0,count)","11" RCOMMENT,"Q1","MPS_Commands","This command puts the controller into a mode, in which all errors will respond with a code number representing the error.","MOV(0,count)","12" RCOMMENT,"Q1","MPS_Commands","This command puts the controller into a mode, in which all errors will respond with a code number representing the error.","MOV(0,count)","13" RCOMMENT,"Q1","Q1_carbon_glass","$NEqn to calculate temperature of a carbon Glass thermometer.$NTwo curves fits given for each thermometer.$NX=Ln(Ln(R)*a+B$NG(I) = X*G(I-1)-G(I-2)+Coeff $NTemp=e^[0.5*(G(I)-G(I-2))]$N$NOxford$'s carbon glass are accurate from 1.5K to 77K but can be read up to 300K.$N$NQ1 CG-1 C13824 Calib # 25430$N$N","CPT(T1_CG,2.7182817**(0.5*(X1**7*-0.0001+(X1**6*-0.00014)+(X1**5*0.00025)+(X1**4*0.0059)+(X1**3*-0.0334)+(X1**2*0.1273)+(X1*-1.3955)+3.3745-(X1**5*-0.0001+(X1**4*-0.00014)+(X1**3*0.00005)+(X1**2*0.00562)+(X1*-0.0334)+0.1384))))","2" RCOMMENT,"Q1","Q1_carbon_glass","$NQ1 CG-1 C13824 Calib # 25430","CPT(T1_CG,2.7182817**(0.5*(X1**8*0.000052+(X1**7*-0.000015)+(X1**6*-0.000508)+(X1**5*0.001277)+(X1**4*-0.002901)+(X1**3*0.000375)+(X1**2*0.09435)+(X1*-1.256349)+8.682733-(X1**6*0.000052+(X1**5*-0.000015)+(X1**4*-0.000404)+(X1**3*0.001247)+(X1**2*-0.003657)+(X1*0.002854)+0.086736))))","3" RCOMMENT,"Q1","Q1_carbon_glass","Q1 CG-2 C13867 Calib # 25622$N","CPT(T2_CG,2.7182817**(0.5*(X2**7*0.00006+(X2**6*0.00007)+(X2**5*-0.00057)+(X2**4*0.00669)+(X2**3*-0.03426)+(X2**2*0.13522)+(X2*-1.38865)+3.34168-(X2**5*0.00006+(X2**4*0.00007)+(X2**3*-0.00045)+(X2**2*0.00683)+(X2*-0.0351)+0.14895))))","4" RCOMMENT,"Q1","Q1_carbon_glass","Q1 CG-2 C13867 Calib # 25622$N","CPT(T2_CG,2.7182817**(0.5*(X2**8*0.000034+(X2**7*0.000014)+(X2**6*-0.000443)+(X2**5*0.001217)+(X2**4*-0.002786)+(X2**3*-0.00126)+(X2**2*0.10095)+(X2*-1.251593)+8.665208-(X2**6*0.000034+(X2**5*0.000014)+(X2**4*-0.000375)+(X2**3*0.001245)+(X2**2*-0.003502)+(X2*0.001244)+0.093639))))","5" RCOMMENT,"Q1","Q1_carbon_glass","Q1 CG-3 C13970 Calib # 25730","CPT(T3_CG,2.7182817**(0.5*(X3**7*0.00011+(X3**6*0.00005)+(X3**5*-0.00097)+(X3**4*0.00605)+(X3**3*-0.03421)+(X3**2*0.13545)+(X3*-1.38541)+3.35189-(X3**5*0.00011+(X3**4*0.00005)+(X3**3*-0.00075)+(X3**2*0.00615)+(X3*-0.0356)+0.1478))))","6" RCOMMENT,"Q1","Q1_carbon_glass","CG3:Calibration No: 25730 I=8","CPT(T3_CG,2.7182817**(0.5*(X3**8*0.000119+(X3**7*-0.000138)+(X3**6*-0.001497)+(X3**5*0.003294)+(X3**4*0.000257)+(X3**3*-0.009722)+(X3**2*0.102729)+(X3*-1.238977)+8.658143-(X3**6*0.000119+(X3**5*-0.000138)+(X3**4*-0.001259)+(X3**3*0.003018)+(X3**2*-0.002142)+(X3*-0.003824)+0.097424))))","7" RCOMMENT,"Q1","Q1_carbon_glass","CG4:Calibration No: 25416 I=7","CPT(T4_CG,2.7182817**(0.5*(X4**7*0+(X4*6*0.00011)+(X4**5*0.00006)+(X4**4*0.00543)+(X4**3*-0.03398)+(X4**2*0.12933)+(X4*-1.39564)+3.36384-(X4**5*0+(X4**4*0.00011)+(X4**3*0.00006)+(X4**2*0.00565)+(X4*-0.03386)+0.14074))))","8" RCOMMENT,"Q1","Q1_carbon_glass","CG4:Calibration No: 25416 I=8","CPT(T4_CG,2.7182817**(0.5*(X4**8*0.000046+(X4**7*0.000013)+(X4**6*-0.000506)+(X4**5*0.001098)+(X4**4*-0.002802)+(X4**3*0.000792)+(X4**2*0.093977)+(X4*-1.256773)+8.683564-(X4**6*0.000046+(X4**5*0.000013)+(X4**4*-0.000414)+(X4**3*0.001124)+(X4**2*-0.003584)+(X4*0.003053)+0.086487))))","9" RCOMMENT,"Q1","Q1_carbon_glass","Determine the integral field strength needed for a given Momentum.$NGOLDEN TUNE","CPT(BL_Q1,P_HMS*0.4472785)","10" RCOMMENT,"Q1","Q1_carbon_glass","Calculate the Current needed to produce the Integral Field Strength.$NGOLDEN TUNE$NCutoff=2.146, C=-0.139, L=297.56,CB=10.15,Norm=0.979151528","CPT(I_Q1,Norm*(C+(L*BL_Q1)+(CB*((BL_Q1-Cutoff)**3))))","11" RCOMMENT,"Q1","Q1_carbon_glass","Pirani Vaccum Gauge Curve fit to the Voltage.$NCurve #1","CPT(Pirani_vac,0.000005021*(Q1:6:I.Ch12Data**6.4485))","12" RCOMMENT,"Q1","Q1_carbon_glass","Pirani Vaccum Gauge Curve fit to the Voltage.$NCurve #2$N","CPT(Pirani_vac,22.684*(Q1:6:I.Ch12Data**4)-(799.1*(Q1:6:I.Ch12Data**3))+(10560.4*(Q1:6:I.Ch12Data**2))-(62040.6*Q1:6:I.Ch12Data)+136697.0)","13" RCOMMENT,"Q1","Q1_carbon_glass","Pirani Vaccum Gauge Curve fit to the Voltage.$NCurve #3","CPT(Pirani_vac,15753.3*(Q1:6:I.Ch12Data**3)-(453598.0*(Q1:6:I.Ch12Data**2))+(4352640.0*Q1:6:I.Ch12Data)-13919100.0)","14" RCOMMENT,"Q1","Q1_carbon_glass","Penning Vaccum Gauge Curve fit to the Voltage.$NCurve #1 $NHigh Vacuum","CPT(Penning_vac,5.368e-11*(Q1:6:I.Ch12Data**6.1503))","15" RCOMMENT,"Q1","Q1_carbon_glass","Penning Vaccum Gauge Curve fit to the Voltage.$NCurve #2 $NHigh Vacuum","CPT(Penning_vac,(3.3144e-4*(Q1:6:I.Ch13Data**4))-(1.1515e-2*(Q1:6:I.Ch13Data**3))+(1.5008e-1*(Q1:6:I.Ch13Data**2))-(8.6962e-1*Q1:6:I.Ch13Data)+1.8900)","16" RCOMMENT,"Q1","Q1_carbon_glass","Penning Vaccum Gauge Curve fit to the Voltage.$NCurve #3$NHigh Vacuum","CPT(Penning_vac,0.0065*(Q1:6:I.Ch13Data**2)-(0.1226*Q1:6:I.Ch13Data)+0.57832)","17" RCOMMENT,"Q1","Q1_carbon_glass","Penning Vaccum Gauge Curve fit to the Voltage.$NCurve #4$NHigh Vacuum","CPT(Penning_vac,0.032*Q1:6:I.Ch13Data-0.3125)","18" TYPE,SCOPE,ROUTINE,COMMENT,OWNING_ELEMENT,LOCATION RCOMMENT,"Q2","ASCII_SubRoutine_1","Read Input Image from MVI94ASCII module. This message instruction addresses the MVI94ASCII module in slot 0. The instance name in the message tag is the slot number of the module + 1. For example if the MVI94ASCII module needs to be in slot 5, set the instance name to 6.","COP(ASCII:1:I.Data[0],MVI94ASCII.Input_Data[0],16)","0" RCOMMENT,"Q2","ASCII_SubRoutine_1","This rung will process the data for the MVI94ASCII module only when a new block of data has been received from the module. If there is not a new block pending, then this subroutine will not be called.","JSR(ASCII_SubRoutine_2,0)","1" RCOMMENT,"Q2","ASCII_SubRoutine_1","Write Output Image to MVI94-ASCII module.","COP(MVI94ASCII.Output_Data[0],ASCII:1:O.Data[0],7)","2" RCOMMENT,"Q2","ASCII_SubRoutine_2","This rung will move the current block ID number to the Last_Read_Blk. This makes sure that only new blocks of data are processed.","MOV(MVI94ASCII.Input_Data[0],MVI94ASCII.Last_Read_Blk)","0" RCOMMENT,"Q2","ASCII_SubRoutine_2","Commands are stored in SString, which is triggered by the response from the command sent earlier.$NTimer is for debugging, use it to slow down controls.","OTE(next)","1" RCOMMENT,"Q2","ASCII_SubRoutine_2","Only 9 MPS status commands go out. $Ncount = 0 is a manually sent command$Ncount =1 is a PLC sent command$Ncounts 2 thru 9 are status request commands$NAfter sending out the command, wait for new data before sending out any new commands.$NIf the output string is a null, no new data will come in.","OTU(MPS_GetStatus)","2" RCOMMENT,"Q2","ASCII_SubRoutine_2","A command can be sent individually in this rung.","OTU(send_MPS_cmd)","3" RCOMMENT,"Q2","ASCII_SubRoutine_2","Checks if the string being sent to the MPS is greater than 1. $NA zero length means no command is to be sent.$NAlso sends the first ten characters of he command and resets the timer.$N","RES(Timer)","4" RCOMMENT,"Q2","ASCII_SubRoutine_2","Checks if the outgoing string is greater than 10. Outgoing strings greater than 10 have to be processed in batches as the Flex can handle 10 (outgoing) bytes at a time. In this rung Char_Cnt_Overflow is latched which implies the above.This bit is checked(in rung 25) when the next character has to be sent out to the MPS, if it$'s still latched no new characters are sent.$NCharacter length is limited to be 40 or less by this subroutine.","OTL(Char_Cnt_OverFlow)","5" RCOMMENT,"Q2","ASCII_SubRoutine_2","Calculates the number of characters that need to be processed in the next rung","MOV(Char_Hold,Xmit.PRE)","6" RCOMMENT,"Q2","ASCII_SubRoutine_2","If the character length is longer then 40, then no commands are sent at all.","OTE(Send_2_Long)","7" RCOMMENT,"Q2","ASCII_SubRoutine_2","Writes the characters 10 at a time that need to be processed and sent out to the MPS UP TO 40 CHARACTERS.","MOV(Xmit_Length,MVI94ASCII.WriteLength)","8" RCOMMENT,"Q2","ASCII_SubRoutine_2","Upon seeing that the number of character transmitted on last block is equal to the WriteLength, the output image of the module will be cleared, and the WriteLength set to 0. This will clear the output image of the module (necessary, otherwise the module will constantly write data out the port), and set the length to zero (so that the same string is not written out the port again). $N","OTU(Write_Sent)","9" RCOMMENT,"Q2","ASCII_SubRoutine_2","The string with more then ten characters has been written out to the MPS, resets/clears the respective bits.","RES(Xmit)","10" RCOMMENT,"Q2","ASCII_SubRoutine_2","This rung will process incoming data that is less than 14 characters, the data is moved into MVI94ASCII_multiblock_rec_data, from where it is processed. Also the $Qcarriage return$Q that is appended at the end of each imcoming string is deleted in this rung. The bit New_Data is set, which represents incoming of new data which needs to be processed.","OTE(continue1)","11" RCOMMENT,"Q2","ASCII_SubRoutine_2","NMR and MPS have LF and CR reversed. Flex only looks at LF so must remove CR from string$N","OTL(New_Data)","12" RCOMMENT,"Q2","ASCII_SubRoutine_2","This rung determines if the incoming data has greater than 14 characters.","ADD(1,MVI94ASCII.block_count,MVI94ASCII.block_count)","13" RCOMMENT,"Q2","ASCII_SubRoutine_2","A string having greater than fourteen characters, is processed in the 4 and 5th rungs. In this rung the last fourteen characters are processed.","OTL(New_Data)","14" RCOMMENT,"Q2","ASCII_SubRoutine_2","If new data exist and the count is between zero and 9 reset the MPS Timer.$NLocation of this rung is important as New_data tag gets reset within one scan.","RES(MPS_timer)","15" RCOMMENT,"Q2","ASCII_SubRoutine_2","In this rung a timer is used to check for communication errors with the Power supply.$NThe timer is set expire 1 sec after debug timer.$NAfter timer has gone off, check for new message.$N","OTL(PSU_comm_error)","16" RCOMMENT,"Q2","ASCII_SubRoutine_2","Count = 0 is for Manual input commands from RS5000 logix","OTL(MPS_GetStatus)","17" RCOMMENT,"Q2","ASCII_SubRoutine_2","Count = 1 is for PLC / HMI commands","OTL(MPS_GetStatus)","18" RCOMMENT,"Q2","ASCII_SubRoutine_2","Reads the state of the MPS, whether in LOCAL REMOTE or LOCK.","OTL(MPS_GetStatus)","19" RCOMMENT,"Q2","ASCII_SubRoutine_2","Reads the output current of the MPS","OTL(MPS_GetStatus)","20" RCOMMENT,"Q2","ASCII_SubRoutine_2","Reads the output voltage of the MPS","OTL(MPS_GetStatus)","21" RCOMMENT,"Q2","ASCII_SubRoutine_2","Reads the ADC readback value of the MPS$N","OTL(MPS_GetStatus)","22" RCOMMENT,"Q2","ASCII_SubRoutine_2","Reads the ADC set value of the MPS","OTL(MPS_GetStatus)","23" RCOMMENT,"Q2","ASCII_SubRoutine_2","Reads the slew rate of the MPS","OTL(MPS_GetStatus)","24" RCOMMENT,"Q2","ASCII_SubRoutine_2","This rung processes the MPS status bits and copies them into the MPS_Status_Read array.","OTL(MPS_GetStatus)","25" RCOMMENT,"Q2","ASCII_SubRoutine_2","Reads the Polarity of the MPS","OTL(MPS_GetStatus)","26" RCOMMENT,"Q2","ASCII_SubRoutine_2","This block copies status information from the MVI94ASCII module. Status blocks are sent when no receive data is available.","COP(MVI94ASCII.Input_Data[14],MVI94ASCII.InStat.Port_Tx_State,1)","27" RCOMMENT,"Q2","ASCII_SubRoutine_2","Once the MPS has replied to the command that was sent out, restart the MPS_GetStatus$NOr if no command went out, go to next command.","RES(MPS_cmd_tim)","29" RCOMMENT,"Q2","ASCII_SubRoutine_2","This last block moves the block ID number back to the module. When the module receives a new block of data on the Output image, this triggers the module to begin a new block of input data. Without this rung, the module will only present a new block of data to the processor every 1.5 seconds.","MOV(MVI94ASCII.Last_Read_Blk,MVI94ASCII.Output_Data[0])","30" RCOMMENT,"Q2","MPS_Commands","This command is used to write a value between 0 to 999999 to the regulation module.A leading Zero format must be used.$NSix numbers are to be used.$N","OTE(cont1)","0" RCOMMENT,"Q2","MPS_Commands","Add the value to the command Wa, then add carriage return and send it out.$NCopying to the send string clears any previous stored command.$N","MOV(0,count)","1" RCOMMENT,"Q2","MPS_Commands","This command is used to set MPS current to zero, when it HMI resets interlocks.$NIf SString Length is greater then 30 characters, Copy the commad to SString as this will ensure the command is sent out.","MOV(0,count)","2" RCOMMENT,"Q2","MPS_Commands","Writes the slew rate to the MPS.","MOV(0,count)","3" RCOMMENT,"Q2","MPS_Commands","The N command us used to swtich-on the power supply(main contact).","MOV(0,count)","4" RCOMMENT,"Q2","MPS_Commands","This command is used to switch-off the power supply(main contactor).","MOV(0,count)","5" RCOMMENT,"Q2","MPS_Commands","This command is used to clear all non pending interlocks","MOV(0,count)","6" RCOMMENT,"Q2","MPS_Commands","This command is used to change the polarity of the power supply to negative.","MOV(0,count)","7" RCOMMENT,"Q2","MPS_Commands","This command is used to change the polarity of the power supply to positive.","MOV(0,count)","8" RCOMMENT,"Q2","MPS_Commands","This command is used to switch the power supply to remote.","MOV(0,count)","9" RCOMMENT,"Q2","MPS_Commands","This command us used to switch-off the power supply(main contactor) and automatically set the set value to zero (WA 000000).","MOV(0,count)","10" RCOMMENT,"Q2","MPS_Commands","Changes to local control.","MOV(0,count)","11" RCOMMENT,"Q2","MPS_Commands","This command puts the controller into a mode, in which all errors will respond with a code number representing the error.","MOV(0,count)","12" RCOMMENT,"Q2","MPS_Commands","This command puts the controller into a mode, in which all errors will respond with a code number representing the error.","MOV(0,count)","13" RCOMMENT,"Q2","Q2_carbon_glass","$NEqn to calculate temperature of a carbon Glass thermometer.$NTwo curves fits given for each thermometer.$NX=Ln(Ln(R)*a+B$NG(I) = X*G(I-1)-G(I-2)+Coeff $NTemp=e^[0.5*(G(I)-G(I-2))]$N$NOxford$'s carbon glass are accurate from 1.5K to 77K but can be read up to 300K.$N$NQ2 CG-1 Calib # 25311$N$N","CPT(T1_CG,2.7182817**(0.5*(X1**7*0.00002+(X1**6*-0.00013)+(X1**5*-0.00041)+(X1**4*0.00544)+(X1**3*-0.03404)+(X1**2*0.13296)+(X1*-1.39335)+3.35736-(X1**5*0.00002+(X1**4*-0.00013)+(X1**3*-0.00037)+(X1**2*0.00518)+(X1*-0.03476)+0.14319))))","2" RCOMMENT,"Q2","Q2_carbon_glass","$NQ2 CG-1 Calib # 25311","CPT(T1_CG,2.7182817**(0.5*(X1**8*0.000126+(X1**7*0.000027)+(X1**6*-0.001264)+(X1**5*0.001236)+(X1**4*-0.000549)+(X1**3*-0.001527)+(X1**2*0.093903)+(X1*-1.254126)+8.685402-(X1**6*0.000126+(X1**5*0.000027)+(X1**4*-0.001012)+(X1**3*0.00129)+(X1**2*-0.002447)+(X1*0.00108)+0.088249))))","3" RCOMMENT,"Q2","Q2_carbon_glass","Q2 CG-2 Calib # 25334","CPT(T2_CG,2.7182817**(0.5*(X2**7*-0.00005+(X2**6*0.00001)+(X2**5*0.00006)+(X2**4*0.00725)+(X2**3*-0.03722)+(X2**2*0.14872)+(X2*-1.38608)+3.28717-(X2**5*-0.00005+(X2**4*0.00001)+(X2**3*-0.00004)+(X2**2*0.00727)+(X2*-0.03735)+0.16327))))","4" RCOMMENT,"Q2","Q2_carbon_glass","Q2 CG-2 C13867 Calib # 25334","CPT(T2_CG,2.7182817**(0.5*(X2**8*0.000029+(X2**7*0.000081)+(X2**6*-0.000517)+(X2**5*0.000953)+(X2**4*-0.002116)+(X2**3*-0.002712)+(X2**2*0.102939)+(X2*-1.249577)+8.660101-(X2**6*0.000029+(X2**5*0.000081)+(X2**4*-0.000459)+(X2**3*0.001115)+(X2**2*-0.003005)+(X2*-0.000401)+0.096528))))","5" RCOMMENT,"Q2","Q2_carbon_glass","Q2 CG-3 Calib # 25318","CPT(T3_CG,2.7182817**(0.5*(X3**7*0.00002+(X3**6*-0.00014)+(X3**5*-0.0003)+(X3**4*0.00546)+(X3**3*-0.03425)+(X3**2*0.13429)+(X3*-1.39385)+3.35357-(X3**5*0.00002+(X3**4*-0.00014)+(X3**3*-0.00026)+(X3**2*0.00518)+(X3*-0.03475)+0.14451))))","6" RCOMMENT,"Q2","Q2_carbon_glass","Q2 CG3:Calibration No: 25318","CPT(T3_CG,2.7182817**(0.5*(X3**8*-0.000045+(X3**7*0.000129)+(X3**6*0.000091)+(X3**5*0.000412)+(X3**4*-0.00374)+(X3**3*0.001012)+(X3**2*0.094521)+(X3*-1.257083)+8.689641-(X3**6*-0.000045+(X3**5*0.000129)+(X3**4*0.000001)+(X3**3*0.00067)+(X3**2*-0.003783)+(X3*0.002481)+0.086866))))","7" RCOMMENT,"Q2","Q2_carbon_glass","Q2 CG4:Calibration No:25512 I=7","CPT(T4_CG,2.7182817**(0.5*(X4**7*-0.00016+(X4**6*-0.00016)+(X4**5*0.00045)+(X4**4*0.00783)+(X4**3*-0.03601)+(X4**2*0.13008)+(X4*-1.3871)+3.35052-(X4**5*-0.00016+(X4**4*-0.00016)+(X4**3*0.00013)+(X4**2*0.00751)+(X4*-0.03591)+0.14494))))","8" RCOMMENT,"Q2","Q2_carbon_glass","Q2 CG4:Calibration No:25512","CPT(T4_CG,2.7182817**(0.5*(X4**8*0.000017+(X4**7*0.000033)+(X4**6*-0.00038)+(X4**5*0.001057)+(X4**4*-0.002729)+(X4**3*-0.00131)+(X4**2*0.102046)+(X4*-1.246859)+8.663909-(X4**6*0.000017+(X4**5*0.000033)+(X4**4*-0.000346)+(X4**3*0.001123)+(X4**2*-0.003404)+(X4*0.000969)+0.094926))))","9" RCOMMENT,"Q2","Q2_carbon_glass","Determine the integral field strength needed for a given Momentum.$NGOLDEN TUNE","CPT(BL_Q2,P_HMS*0.5566527)","10" RCOMMENT,"Q2","Q2_carbon_glass","Calculate the Current needed to produce the Integral Field Strength.$NGOLDEN TUNE$NCutoff=2.423, C=-0.277, L=190.19,CB=13.18,Norm=0.979151528","CPT(I_Q2,Norm*(C+(L*BL_Q2)+(CB*((BL_Q2-Cutoff)**3))))","11" RCOMMENT,"Q2","Q2_carbon_glass","Pirani Vaccum Gauge Curve fit to the Voltage.$NCurve #1","CPT(Pirani_vac,0.000005021*(Q2:6:I.Ch12Data**6.4485))","12" RCOMMENT,"Q2","Q2_carbon_glass","Pirani Vaccum Gauge Curve fit to the Voltage.$NCurve #2$N","CPT(Pirani_vac,22.684*(Q2:6:I.Ch12Data**4)-(799.1*(Q2:6:I.Ch12Data**3))+(10560.4*(Q2:6:I.Ch12Data**2))-(62040.6*Q2:6:I.Ch12Data)+136697.0)","13" RCOMMENT,"Q2","Q2_carbon_glass","Pirani Vaccum Gauge Curve fit to the Voltage.$NCurve #3","CPT(Pirani_vac,15753.3*(Q2:6:I.Ch12Data**3)-(453598.0*(Q2:6:I.Ch12Data**2))+(4352640.0*Q2:6:I.Ch12Data)-13919100.0)","14" RCOMMENT,"Q2","Q2_carbon_glass","Penning Vaccum Gauge Curve fit to the Voltage.$NCurve #1 $NHigh Vacuum","CPT(Penning_vac,5.368e-11*(Q2:6:I.Ch12Data**6.1503))","15" RCOMMENT,"Q2","Q2_carbon_glass","Penning Vaccum Gauge Curve fit to the Voltage.$NCurve #2 $NHigh Vacuum","CPT(Penning_vac,(3.3144e-4*(Q2:6:I.Ch13Data**4))-(1.1515e-2*(Q2:6:I.Ch13Data**3))+(1.5008e-1*(Q2:6:I.Ch13Data**2))-(8.6962e-1*Q2:6:I.Ch13Data)+1.8900)","16" RCOMMENT,"Q2","Q2_carbon_glass","Penning Vaccum Gauge Curve fit to the Voltage.$NCurve #3$NHigh Vacuum","CPT(Penning_vac,0.0065*(Q2:6:I.Ch13Data**2)-(0.1226*Q2:6:I.Ch13Data)+0.57832)","17" RCOMMENT,"Q2","Q2_carbon_glass","Penning Vaccum Gauge Curve fit to the Voltage.$NCurve #4$NHigh Vacuum","CPT(Penning_vac,0.032*Q2:6:I.Ch13Data-0.3125)","18" TYPE,SCOPE,ROUTINE,COMMENT,OWNING_ELEMENT,LOCATION RCOMMENT,"Q3","ASCII_SubRoutine_1","Read Input Image from MVI94ASCII module. This message instruction addresses the MVI94ASCII module in slot 0. The instance name in the message tag is the slot number of the module + 1. For example if the MVI94ASCII module needs to be in slot 5, set the instance name to 6.","COP(ASCII:2:I.Data[0],MVI94ASCII.Input_Data[0],16)","0" RCOMMENT,"Q3","ASCII_SubRoutine_1","This rung will process the data for the MVI94ASCII module only when a new block of data has been received from the module. If there is not a new block pending, then this subroutine will not be called.","JSR(ASCII_SubRoutine_2,0)","1" RCOMMENT,"Q3","ASCII_SubRoutine_1","Write Output Image to MVI94-ASCII module.","COP(MVI94ASCII.Output_Data[0],ASCII:2:O.Data[0],7)","2" RCOMMENT,"Q3","ASCII_SubRoutine_2","This rung will move the current block ID number to the Last_Read_Blk. This makes sure that only new blocks of data are processed.","MOV(MVI94ASCII.Input_Data[0],MVI94ASCII.Last_Read_Blk)","0" RCOMMENT,"Q3","ASCII_SubRoutine_2","Commands are stored in SString, which is triggered by the response from the command sent earlier.$NTimer is for debugging, use it to slow down controls.","OTE(next)","1" RCOMMENT,"Q3","ASCII_SubRoutine_2","Only 9 MPS status commands go out. $Ncount = 0 is a manually sent command$Ncount =1 is a PLC sent command$Ncounts 2 thru 9 are status request commands$NAfter sending out the command, wait for new data before sending out any new commands.$NIf the output string is a null, no new data will come in.","OTU(MPS_GetStatus)","2" RCOMMENT,"Q3","ASCII_SubRoutine_2","A command can be sent individually in this rung.","OTU(send_MPS_cmd)","3" RCOMMENT,"Q3","ASCII_SubRoutine_2","Checks if the string being sent to the MPS is greater than 1. $NA zero length means no command is to be sent.$NAlso sends the first ten characters of he command and resets the timer.$N","RES(Timer)","4" RCOMMENT,"Q3","ASCII_SubRoutine_2","Checks if the outgoing string is greater than 10. Outgoing strings greater than 10 have to be processed in batches as the Flex can handle 10 (outgoing) bytes at a time. In this rung Char_Cnt_Overflow is latched which implies the above.This bit is checked(in rung 25) when the next character has to be sent out to the MPS, if it$'s still latched no new characters are sent.$NCharacter length is limited to be 40 or less by this subroutine.","OTL(Char_Cnt_OverFlow)","5" RCOMMENT,"Q3","ASCII_SubRoutine_2","Calculates the number of characters that need to be processed in the next rung","MOV(Char_Hold,Xmit.PRE)","6" RCOMMENT,"Q3","ASCII_SubRoutine_2","If the character length is longer then 40, then no commands are sent at all.","OTE(Send_2_Long)","7" RCOMMENT,"Q3","ASCII_SubRoutine_2","Writes the characters 10 at a time that need to be processed and sent out to the MPS UP TO 40 CHARACTERS.","MOV(Xmit_Length,MVI94ASCII.WriteLength)","8" RCOMMENT,"Q3","ASCII_SubRoutine_2","Upon seeing that the number of character transmitted on last block is equal to the WriteLength, the output image of the module will be cleared, and the WriteLength set to 0. This will clear the output image of the module (necessary, otherwise the module will constantly write data out the port), and set the length to zero (so that the same string is not written out the port again). $N","OTU(Write_Sent)","9" RCOMMENT,"Q3","ASCII_SubRoutine_2","The string with more then ten characters has been written out to the MPS, resets/clears the respective bits.","RES(Xmit)","10" RCOMMENT,"Q3","ASCII_SubRoutine_2","This rung will process incoming data that is less than 14 characters, the data is moved into MVI94ASCII_multiblock_rec_data, from where it is processed. Also the $Qcarriage return$Q that is appended at the end of each imcoming string is deleted in this rung. The bit New_Data is set, which represents incoming of new data which needs to be processed.","OTE(continue1)","11" RCOMMENT,"Q3","ASCII_SubRoutine_2","NMR and MPS have LF and CR reversed. Flex only looks at LF so must remove CR from string$N","OTL(New_Data)","12" RCOMMENT,"Q3","ASCII_SubRoutine_2","This rung determines if the incoming data has greater than 14 characters.","ADD(1,MVI94ASCII.block_count,MVI94ASCII.block_count)","13" RCOMMENT,"Q3","ASCII_SubRoutine_2","A string having greater than fourteen characters, is processed in the 4 and 5th rungs. In this rung the last fourteen characters are processed.","OTL(New_Data)","14" RCOMMENT,"Q3","ASCII_SubRoutine_2","If new data exist and the count is between zero and 9 reset the MPS Timer.$NLocation of this rung is important as New_data tag gets reset within one scan.","RES(MPS_timer)","15" RCOMMENT,"Q3","ASCII_SubRoutine_2","In this rung a timer is used to check for communication errors with the Power supply.$NThe timer is set expire 1 sec after debug timer.$NAfter timer has gone off, check for new message.$N","OTL(PSU_comm_error)","16" RCOMMENT,"Q3","ASCII_SubRoutine_2","Count = 0 is for Manual input commands from RS5000 logix","OTL(MPS_GetStatus)","17" RCOMMENT,"Q3","ASCII_SubRoutine_2","Count = 1 is for PLC / HMI commands","OTL(MPS_GetStatus)","18" RCOMMENT,"Q3","ASCII_SubRoutine_2","Reads the state of the MPS, whether in LOCAL REMOTE or LOCK.","OTL(MPS_GetStatus)","19" RCOMMENT,"Q3","ASCII_SubRoutine_2","Reads the output current of the MPS","OTL(MPS_GetStatus)","20" RCOMMENT,"Q3","ASCII_SubRoutine_2","Reads the output voltage of the MPS","OTL(MPS_GetStatus)","21" RCOMMENT,"Q3","ASCII_SubRoutine_2","Reads the ADC readback value of the MPS$N","OTL(MPS_GetStatus)","22" RCOMMENT,"Q3","ASCII_SubRoutine_2","Reads the ADC set value of the MPS","OTL(MPS_GetStatus)","23" RCOMMENT,"Q3","ASCII_SubRoutine_2","Reads the slew rate of the MPS","OTL(MPS_GetStatus)","24" RCOMMENT,"Q3","ASCII_SubRoutine_2","This rung processes the MPS status bits and copies them into the MPS_Status_Read array.","OTL(MPS_GetStatus)","25" RCOMMENT,"Q3","ASCII_SubRoutine_2","Reads the Polarity of the MPS","OTL(MPS_GetStatus)","26" RCOMMENT,"Q3","ASCII_SubRoutine_2","This block copies status information from the MVI94ASCII module. Status blocks are sent when no receive data is available.","COP(MVI94ASCII.Input_Data[14],MVI94ASCII.InStat.Port_Tx_State,1)","27" RCOMMENT,"Q3","ASCII_SubRoutine_2","Once the MPS has replied to the command that was sent out, restart the MPS_GetStatus$NOr if no command went out, go to next command.","RES(MPS_cmd_tim)","29" RCOMMENT,"Q3","ASCII_SubRoutine_2","This last block moves the block ID number back to the module. When the module receives a new block of data on the Output image, this triggers the module to begin a new block of input data. Without this rung, the module will only present a new block of data to the processor every 1.5 seconds.","MOV(MVI94ASCII.Last_Read_Blk,MVI94ASCII.Output_Data[0])","30" RCOMMENT,"Q3","MPS_Commands","This command is used to write a value between 0 to 999999 to the regulation module.A leading Zero format must be used.$NSix numbers are to be used.$N","OTE(cont1)","0" RCOMMENT,"Q3","MPS_Commands","Add the value to the command Wa, then add carriage return and send it out.$NCopying to the send string clears any previous stored command.$N","MOV(0,count)","1" RCOMMENT,"Q3","MPS_Commands","This command is used to set MPS current to zero, when it HMI resets interlocks.$NIf SString Length is greater then 30 characters, Copy the commad to SString as this will ensure the command is sent out.","MOV(0,count)","2" RCOMMENT,"Q3","MPS_Commands","Writes the slew rate to the MPS.","MOV(0,count)","3" RCOMMENT,"Q3","MPS_Commands","The N command us used to swtich-on the power supply(main contact).","MOV(0,count)","4" RCOMMENT,"Q3","MPS_Commands","This command is used to switch-off the power supply(main contactor).","MOV(0,count)","5" RCOMMENT,"Q3","MPS_Commands","This command is used to clear all non pending interlocks","MOV(0,count)","6" RCOMMENT,"Q3","MPS_Commands","This command is used to change the polarity of the power supply to negative.","MOV(0,count)","7" RCOMMENT,"Q3","MPS_Commands","This command is used to change the polarity of the power supply to positive.","MOV(0,count)","8" RCOMMENT,"Q3","MPS_Commands","This command is used to switch the power supply to remote.","MOV(0,count)","9" RCOMMENT,"Q3","MPS_Commands","This command us used to switch-off the power supply(main contactor) and automatically set the set value to zero (WA 000000).","MOV(0,count)","10" RCOMMENT,"Q3","MPS_Commands","Changes to local control.","MOV(0,count)","11" RCOMMENT,"Q3","MPS_Commands","This command puts the controller into a mode, in which all errors will respond with a code number representing the error.","MOV(0,count)","12" RCOMMENT,"Q3","MPS_Commands","This command puts the controller into a mode, in which all errors will respond with a code number representing the error.","MOV(0,count)","13" RCOMMENT,"Q3","Q3_carbon_glass","$NEqn to calculate temperature of a carbon Glass thermometer.$NTwo curves fits given for each thermometer.$NX=Ln(Ln(R)*a+B$NG(I) = X*G(I-1)-G(I-2)+Coeff $NTemp=e^[0.5*(G(I)-G(I-2))]$N$NOxford$'s carbon glass are accurate from 1.5K to 77K but can be read up to 300K.$N$NQ3 CG-1 Calib # 25319$N$N","CPT(T1_CG,2.7182817**(0.5*(X1**7*-0.00005+(X1**6*0.00002)+(X1**5*0.00085)+(X1**4*0.00512)+(X1**3*-0.03473)+(X1**2*0.13829)+(X1*-1.40143)+3.33946-(X1**5*-0.00005+(X1**4*0.00002)+(X1**3*0.00075)+(X1**2*0.00516)+(X1*-0.03328)+0.14863))))","2" RCOMMENT,"Q3","Q3_carbon_glass","$NQ3 CG-1 Calib # 25319","CPT(T1_CG,2.7182817**(0.5*(X1**8*0.000047+(X1**7*-0.000022)+(X1**6*-0.000343)+(X1**5*0.001126)+(X1**4*-0.003588)+(X1**3*0.002497)+(X1**2*0.086288)+(X1*-1.263385)+8.716404-(X1**6*0.000047+(X1**5*-0.000022)+(X1**4*-0.000249)+(X1**3*0.001082)+(X1**2*-0.004039)+(X1*0.004639)+0.078055))))","3" RCOMMENT,"Q3","Q3_carbon_glass","Q3 CG-2 Calib # 25316","CPT(T2_CG,2.7182817**(0.5*(X2**7*-0.00002+(X2**6*-0.00003)+(X2**5*0.00047)+(X2**4*0.0056)+(X2**3*-0.03391)+(X2**2*0.13967)+(X2*-1.40115)+3.33225-(X2**5*-0.00002+(X2**4*-0.00003)+(X2**3*0.00043)+(X2**2*0.00554)+(X2*-0.03307)+0.15072))))","4" RCOMMENT,"Q3","Q3_carbon_glass","Q3 CG-2 Calib # 25316","CPT(T2_CG,2.7182817**(0.5*(X2**8*0.000056+(X2**7*0.000056)+(X2**6*-0.000724)+(X2**5*0.00096)+(X2**4*-0.001766)+(X2**3*0.000704)+(X2**2*0.08789)+(X2*-1.259098)+8.705581-(X2**6*0.000056+(X2**5*0.000056)+(X2**4*-0.000612)+(X2**3*0.001072)+(X2**2*-0.002934)+(X2*0.002904)+0.081522))))","5" RCOMMENT,"Q3","Q3_carbon_glass","Q3 CG-3 Calib # 25317","CPT(T3_CG,2.7182817**(0.5*(X3**7*-0.00011+(X3**6*0.00006)+(X3**5*0.00084)+(X3**4*0.00445)+(X3**3*-0.03431)+(X3**2*0.13899)+(X3*-1.40051)+3.34258-(X3**5*-0.00011+(X3**4*0.00006)+(X3**3*0.00062)+(X3**2*0.00457)+(X3*-0.03318)+0.14819))))","6" RCOMMENT,"Q3","Q3_carbon_glass","Q3 CG3:Calibration No: 25317","CPT(T3_CG,2.7182817**(0.5*(X3**8*0.000113+(X3**7*-0.000009)+(X3**6*-0.000901)+(X3**5*0.001164)+(X3**4*-0.001994)+(X3**3*0.000801)+(X3**2*0.08626)+(X3*-1.259122)+8.711757-(X3**6*0.000113+(X3**5*-0.000009)+(X3**4*-0.000675)+(X3**3*0.001146)+(X3**2*-0.003231)+(X3*0.003084)+0.079349))))","7" RCOMMENT,"Q3","Q3_carbon_glass","Q3 CG4:Calibration No:25326","CPT(T4_CG,2.7182817**(0.5*(X4**7*-0.00009+(X4**6*-0.00007)+(X4**5*0.00032)+(X4**4*0.00718)+(X4**3*-0.03796)+(X4**2*0.14613)+(X4*-1.38505)+3.29851-(X4**5*-0.00009+(X4**4*-0.00007)+(X4**3*0.00014)+(X4**2*0.00704)+(X4*-0.03777)+0.16014))))","8" RCOMMENT,"Q3","Q3_carbon_glass","Q3 CG4:Calibration No:25326","CPT(T4_CG,2.7182817**(0.5*(X4**8*0.000031+(X4**7*0.000067)+(X4**6*-0.000481)+(X4**5*0.000908)+(X4**4*-0.002076)+(X4**3*-0.002678)+(X4**2*0.10194)+(X4*-1.248791)+8.661207-(X4**6*0.000031+(X4**5*0.000067)+(X4**4*-0.000419)+(X4**3*0.001042)+(X4**2*-0.002883)+(X4*-0.000527)+0.095817))))","9" RCOMMENT,"Q3","Q3_carbon_glass","Determine the integral field strength needed for a given Momentum.$NGOLDEN TUNE","CPT(BL_Q3,P_HMS*0.27478734)","10" RCOMMENT,"Q3","Q3_carbon_glass","Calculate the Current needed to produce the Integral Field Strength.$NGOLDEN TUNE$NCutoff=2.402, C=-0.271, L=189.56,CB=12.84,Norm=0.979151528","CPT(I_Q3b,Norm*(C+(L*BL_Q3)+(CB*((BL_Q3-Cutoff)**3))))","11" RCOMMENT,"Q3","Q3_carbon_glass","Q3 has a special calibration to offset the current readback misscale.","CPT(I_Q3,I_Q3b/(1.0107*(1.004-(0.0136/P_HMS))))","12" RCOMMENT,"Q3","Q3_carbon_glass","Pirani Vaccum Gauge Curve fit to the Voltage.$NCurve #1","CPT(Pirani_vac,0.000005021*(Q3:6:I.Ch12Data**6.4485))","13" RCOMMENT,"Q3","Q3_carbon_glass","Pirani Vaccum Gauge Curve fit to the Voltage.$NCurve #2$N","CPT(Pirani_vac,22.684*(Q3:6:I.Ch12Data**4)-(799.1*(Q3:6:I.Ch12Data**3))+(10560.4*(Q3:6:I.Ch12Data**2))-(62040.6*Q3:6:I.Ch12Data)+136697.0)","14" RCOMMENT,"Q3","Q3_carbon_glass","Pirani Vaccum Gauge Curve fit to the Voltage.$NCurve #3","CPT(Pirani_vac,15753.3*(Q3:6:I.Ch12Data**3)-(453598.0*(Q3:6:I.Ch12Data**2))+(4352640.0*Q3:6:I.Ch12Data)-13919100.0)","15" RCOMMENT,"Q3","Q3_carbon_glass","Penning Vaccum Gauge Curve fit to the Voltage.$NCurve #1 $NHigh Vacuum","CPT(Penning_vac,5.368e-11*(Q3:6:I.Ch12Data**6.1503))","16" RCOMMENT,"Q3","Q3_carbon_glass","Penning Vaccum Gauge Curve fit to the Voltage.$NCurve #2 $NHigh Vacuum","CPT(Penning_vac,(3.3144e-4*(Q3:6:I.Ch13Data**4))-(1.1515e-2*(Q3:6:I.Ch13Data**3))+(1.5008e-1*(Q3:6:I.Ch13Data**2))-(8.6962e-1*Q3:6:I.Ch13Data)+1.8900)","17" RCOMMENT,"Q3","Q3_carbon_glass","Penning Vaccum Gauge Curve fit to the Voltage.$NCurve #3$NHigh Vacuum","CPT(Penning_vac,0.0065*(Q3:6:I.Ch13Data**2)-(0.1226*Q3:6:I.Ch13Data)+0.57832)","18" RCOMMENT,"Q3","Q3_carbon_glass","Penning Vaccum Gauge Curve fit to the Voltage.$NCurve #4$NHigh Vacuum","CPT(Penning_vac,0.032*Q3:6:I.Ch13Data-0.3125)","19" TYPE,SCOPE,ROUTINE,COMMENT,OWNING_ELEMENT,LOCATION RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Determine if power is on$NStart 10 sec timer when power comes on","TON(Power_on_Timer,?,?)","0" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Wait ten seconds for Modules to come to life","OTE(Pwr_On)","1" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Load the Mid-range angles and the encoders$' coefficents.$NLoad the Last Angles and reset the offset to zero.$NEncoder Coefficents are (#counts) / (Change in actual angle) x 100,000 (to get rid of decimal point)","OTE(Cont1)","2" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Configure the HSC Module and the encoder.$NThe rollover bit should be set to max.$N$NCalculate what the Encoders should be reading based upon the last Angles.$NThe encoders are set to read 8388607 at the midrange value.$N","OTE(Cont2)","3" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","One must tell the HSC module to reset itself.$NServiceCode:4c Class:4 Instance:16 Attribute:0 SourceLength:124 SourceElement:Rotation:7:C $NIf Encoder_reset gets ER (error) go to control tag $QEncoder_reset.ST$Q and change bit to 1. (I think)","MSG(Encoder_reset)","4" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Set the Preload Bit to 3 to preload both encoders values. Then start the timer to reset the preload bit back to 0.","TON(Preload,?,?)","5" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","After a short time period, reset Encoders Load Preset Bit back to 0.$NThen reset the HSC $Qenable reset$Q module back to zero as well.","OTU(Power_was_Off)","6" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Calculate HMS and SOS Angles$NNOTE: To recalibrate the encoders change the Encoder Cofficent. $NTo make small angle adjustments, change the Angle_Offset.$NThe ES_PB_PL_Power is just to provide 24Vdc power to the panel light.","OTE(ES_PB_PL_Power)","7" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Auto / Manual Turn Key.$NLocated on user panel in Hall.$NIn Manual Mode, there is no voltage going to I/O.$N","OTE(Manual)","8" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Auto / Manual Turn Key.$NLocated on User panel in hall.$N","OTE(Auto)","9" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Local / Remote Control Turn Key.$NNo Voltage going to I/O module in Local Mode.$NEither Manual or Auto mode is allowed in Local Mode.","OTE(Local)","10" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Remote Turn Key$NOnly Auto mode is allowed in remote.","OTE(Remote_Rotate)","11" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Reset the timer for remote rotation health checker","OTU(HMI_Reset)","12" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Health check of the ethernet and HMI.$NKeep alive for remote rotation.","TON(HMI_Keep_alive,?,?)","13" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Select the HMS for rotation, Default for power up.$NIf rotating, do NOT allow changing of selection","OTU(SOS_selected_for_rotation)","14" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Unlatch / Turn HMS Selected OFF, when SOS selected is on","OTU(HMS_selected_for_rotation)","15" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Select the SOS for rotation","OTU(HMS_selected_for_rotation)","16" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Unlatch / Turn SOS Selected OFF, when HMS selected is on","OTU(SOS_selected_for_rotation)","17" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Slew On / Start Rotation","OTE(Slew_On)","18" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Slew Off / Stop Rotation","OTE(Slew_Off)","19" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","UPS is On / Battery Backup is On","OTE(UPS_On)","20" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Reset Timer","OTE(Reset)","21" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Reset Signal to Motor controllers / Must stay on for 2 sec.","OTE(Reset_VFD_Mtrs)","22" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","SOS Limit Switch FWD","OTE(SOS_LS_FWD_PL)","23" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","SOS Limit Switch REV$N","OTE(SOS_LS_Rev_PL)","24" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","HMS Limit Switch FWD","OTE(HMS_LS_Fwd_PL)","25" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","HMS Limit Switch REV","OTE(HMS_LS_Rev_PL)","26" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Emergency Stop and External Stop","OTE(Emergency_Stop_Light_Reset_needed)","27" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","If there is no Emergency Stop, then provide P24V to the VFD external stop bit.$NVFD E/S requires P24V to enable motors to run. $NSet C012 to 1 on the VFD controllers.","OTE(VFD_Mtrs_Emerg_Stop)","28" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Foward Rotation in Local / Manual Mode.$NProximity switches are wired to be $QNC$Q when Okay.$NI.E. a lose of supply voltage will be seen as a fault.","OTE(Fwd_Man)","29" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Reverse Rotation in Local / Manual Mode","OTE(Rev_Man)","30" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Load GoTo Angle from the thumbwheel ( Local / Auto Mode)","FRD(Thumbwheel_Input,GoTo_Angle_Local)","31" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Get The GoTo Angle either from Remote or Thumbwheel","MOV(GoTo_Angle_Local,GoTo_Angle)","32" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Check for SOS Angle within Range selection.$NPrevents SOS from being moved from 135.00 to 20.00 without checking data cable trunk","OTE(SOS_Out_of_Range)","33" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Check for Minium Angle for HMS and SOS","OTE(GoTo_Angle_Exceeds_Min_Angle)","34" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Check for Maximum Angle for HMS and SOS","OTE(GoTo_Angle_Exceeds_Max_Angle)","35" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Determine which direction to rotate Fwd or Rev","OTE(SOS_at_Angle)","36" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Check Seperation Angle limit","OTE(Seperation_Angle_Error)","37" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","It not moving, set all motor speeds to zero.","MOV(Mtr_Spd_0,SOS_Mtr_B)","38" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Preload the motor speed to max speed for Auto Mode","MOV(Mtr_Spd_4,SOS_Mtr_B)","39" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Load motor speed for manual operation. Go Slow","MOV(Mtr_Spd_1,SOS_Mtr_B)","40" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Fwd Motion Enabled (Manual & Auto Mode)","OTE(Fwd_Enabled)","43" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Rev Motion Enabled (Manual & Auto Mode)$N","OTE(Rev_Enabled)","44" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","SOS Foward Auto and Manual","OTE(Fwd_Light_SOS)","45" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","HMS Forward Auto & Manual$N","OTE(Fwd_Light_HMS)","46" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","HMS Reverse Auto and Manual","OTE(Rev_Light_HMS)","47" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","SOS Reverse Auto and Manual","OTE(Rev_Light_SOS)","48" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Turn on Fwd panel light","OTE(Fwd_Light)","49" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Turn on Rev panel light","OTE(Rev_Light)","50" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Timers for the Keep Alive Relays and angle display LED strobe.","RTO(LED_Timer2,?,?)","51" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Fire off the Keep alive relay every other cycle.","OTE(Keep_Alive_Relay)","52" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Reset the first timer.","RES(LED_Timer_1)","53" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Output the carriage$'s position angle to their LED Display.$NUnits must be Strobed.$NSOS display can be greater the 100.00.","OTE(Strobe_SOS_LED_Unit)","54" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","This is timer #1. tricky ain$'t it.","RTO(LED_Timer_1,?,?)","55" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Reset the timer #2.","RES(LED_Timer2)","56" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Determine angles for speed reductions for reverse","ADD(GoTo_Angle,20,Speed_Reduction_angle_3)","57" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Determine angles for speed reductions for forward","SUB(GoTo_Angle,20,Speed_Reduction_angle_3)","58" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Compare Angle to 1st speed reduction angle for REV","OTE(Rev_1st_Spd_Red)","59" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Compare Angle to 2nd speed reduction angle for REV","OTE(Rev_2nd_Spd_Red)","60" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Compare Angle to 3rd speed reduction angle for REV","OTE(Rev_3rd_Spd_Red)","61" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Compare Angle to 1st speed reduction angle for FWD","OTE(Fwd_1st_Spd_Red)","62" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Compare Angle to 2nd speed reduction angle for FWD","OTE(Fwd_2nd_Spd_Red)","63" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Compare Angle to 3rd speed reduction angle for FWD","OTE(Fwd_3rd_Spd_Red)","64" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","HMS 1st Speed Reduction occurred. Change Motor Speed","OTE(HMS_1st_speed_reduction_done)","65" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","HMS 2ndSpeed Reduction occurred. Change Motor Speed","OTE(HMS_2nd_speed_reduction_done)","66" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","HMS 3rd Speed Reduction occurred. Change Motor Speed","OTE(HMS_3rd_speed_reduction_done)","67" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","SOS 1st Speed Reduction occurred. Change Motor Speed","OTE(SOS_1st_speed_reduction_done)","68" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","SOS 2nd Speed Reduction occurred. Change Motor Speed","OTE(SOS_2nd_speed_reduction_done)","69" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","SOS 1st Speed Reduction occurred. Change Motor Speed","OTE(SOS_3rd_speed_reduction_done)","70" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Enable Horn to blow every 15 seconds","RTO(Horn_Timer,?,?)","71" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Blow the Horn for 1/2 second duration during rotation","RTO(Horn_Duration,?,?)","72" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","At Begining of a auto rotation $NGive a long blast for startup","TON(Horn_Duration_Long,?,?)","73" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Blow the Horn","OTE(Horn_SOS)","74" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Reset Timer for Horn delay","RES(Horn_Duration)","75" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","A Spectrometer is moving","OTE(Rotating_in_Progress)","76" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Check to see if the other spectrometer moved during rotation.","OTL(ES_HMS_Moved)","77" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Timer to check for encoders working or other carriage moved$N$N","RTO(Check_Encoders_Angle,?,?)","78" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Verify that encoders are updating and that the spectrometers are moving.","OTL(ES_SOS_Encoder)","79" RCOMMENT,"Rotation_Program","Rotation_Ladder_Program","Last rung of program.$Nmoving updating angles into checking location.","RES(Check_Encoders_Angle)","80"