! Jerry Firebaugh, keeper, x4749 ! (Carl Schumann, originator) ! MOOC Vacuum dabbel template ! This template should be used in conjunction with the ! "Controls Software Release No. 101" document. ! ! For a given vacuum device the SSDN is the same for ! all properties and is encoded as given below. ! MOOC vacuum SSDN encoding: ! (0A1D/0015/0000/1500) ! |||| |||| |||| ||-->>> channel: ! see comments below for how channels ! are assigned ! if type == 0x34 (ie heater parameters) ! heater # in crate (0 to 63 = 8 chan per card * 8 cards) ! if type == 0x20 ! unused ! else ! this is the starting array index ! |||| |||| |||| -->>>>> type/class id: ! 0x15 Pirani ! 0x16 Misc Cold Cathode ! 0x17 Cold Cathode ! 0x18 Misc Ion Pump ! 0x19 Ion Pump ! 0x1A Misc Roughing Station ! 0x1B Roughing Station ! 0x1C Misc Manifold Valve ! 0x1D Manifold Valve ! 0x1E Misc Sector Valve ! 0x1F Sector Valve ! 0x20 Ion Pump Average ! 0x21 Software Version(1-byte unsigned integer) ! 0x22 pbar special roughing pump ! 0x23 pbar roughing pump ! 0x24 subpump group A ! 0x25 subpump group B ! 0x26 misc subpump group A ! 0x27 misc subpump group B ! 0x28 subpump group A log 1 hist 1 ! 0x29 subpump group A log 1 hist 2 ! 0x2A subpump group A log 2 hist 1 ! 0x2B subpump group A log 2 hist 2 ! 0x2C subpump group B log 1 hist 1 ! 0x2D subpump group B log 1 hist 2 ! 0x2E subpump group B log 2 hist 1 ! 0x2F subpump group B log 2 hist 2 ! Note on log terminology: ! log 1 is last turn on ! log 2 is previous last turn on ! hist 1 is 1 second after turn on ! hist 2 is 30 seconds after turn on ! 0x30 subpump log timestamps ! timestamp order is A1, B1, A2, B2 ! 0x31 subpump current timestamp ! timestamps are 4 byte wide 15 Hz counters ! 0x32 Thermocouples ! 0x33 Heaters ! 0x34 Heater parameters ! |||| |||| ---->>>>>>>> misc: ! unused. or ! if type == 0x34 (ie heater parameters) ! which parameter ! if type = 0x20 ! leftmost nybble is array index of ! first Ion Pump in set to be averaged ! rightmost nybble is array index of ! last Ion Pump in set to be averaged ! |||| ||-->>>>>>>>>>>>> type/class id: ! repeat type/class id within oid to insure unique oid (object ID) ! (the 2 byte word here that has class id and crate makes up the oid) ! bit 8 is set to make unique oids for crates > 0x1F (see example in next byte) ! |||| -->>>>>>>>>>>>>>> crate: ! if type != 0x21 ! for a node, field 2 is alternate crate name, field (3) is PA subpages ! MIVAC PBVAC TEVAC SYVAC ECVAC ! 0x00 8 gev crate / A16R08 1D (D60,D10,D/A) / C4 / LB / EC ! 0x01 MI10 crt #1 / A33R010 4D (D20,D30,AP3) / D1 / ! 0x02 MI10 crt #2 / A57R03 7D (D40,D50,AP2) / A1 / ! 0x03 MI20 crt #1 / THSBSR2 1T (AP1) / A2 / G2 ! 0x04 MI20 crt #2 / B11R04 1A-1 (A60) / A3 / NWA ! 0x05 MI30 crt #1 / B11R05 1A-2 (A10) / A4 ! 0x06 MI30 crt #2 / B31R03 4A-1 (A20) / B1 ! 0x07 MI40 crt #1 / B31R05 4A-2 (A30) / B2 ! 0x08 MI40 crt #2 / B51R03 7A (A40,A50) / B3 ! 0x09 MI50 crt #1 / / B4 ! 0x0A MI50 crt #2 / / C1 ! 0x0B MI60S crt #1/ / C2 ! 0x0C MI60S crt #2 (P150)/ / C3 ! 0x0D MI60C (RF) / / D2 ! 0x0E MI60N crt #1/ / D3 ! 0x0F MI60N crt #2 (A150)/ / D4 ! 0x10 MI10 crt #4 / / E1 ! 0x11 MI40 crt #3 / / E2 ! 0x12 MI30 crt #4 / / E3 ! 0x13 former F0 / / E4 ! 0x14 MI20 crt #3 / / F1 ! 0x15 MI10 crt #3 / / F2 ! 0x16 MI62 / / F3 ! 0x17 MI40 crt #4 / / F4 ! 0x18 MI30 crt #3 / / A0 ! 0x19 MI50 crt #3 / / B0 ! 0x1A MI60S crt #3/ / C0 ! 0x1B / / D0 ! 0x1C / / E0 ! 0x1D / / AS (B0-1) ! 0x1E / / BS (B0-2) ! 0x1F / / BA (A1-2) ! For crates > 0x1F (ie below this line), set bit 8 of previous byte (to make unique oid) ! (For example, crate BC would have |||| 02B2 |||| 32|| for thermocouples device) ! 0x00 / / BB (B1-2) ! 0x01 / / AT (A0-2) ! 0x02 / / BC (C1-2) ! 0x03 / / CS (D0-1) ! 0x04 / / DS (D0-2) ! 0x05 / / DD (D4-2) ! 0x06 / / G9 (from SWYD) ! 0x07 / / D1-2 ! 0x08 / / F0 ! 0x09 / / BD (B4-1) ! 0x0A / / EA (E1-1) ! else ! 0x00 ! NOTE on setting the ARCNET address ! on the CIA crate controller: ! 1. The address is set to the value on ! high byte of the DIP switch. ! 2. The address should be the crate number ! given above for the SSDN plus 2. ! 3. A switch reads zero (one) when the ! switch is thrown away from (towards) ! the board. ! ! ||-->>>>>>>>>>>>>>>>>> node ! -->>>>>>>>>>>>>>>>>>>> trunk ! ! How channels are assigned, aka, what happened to slot? ! ! For a given card type with N channels per card channels in the ! SSDN will map to card and channel within a card as follows ! SSDN channel Card Channel on card ! 0 1st 0 ! 1 1st 1 ! .... ! N-1 1st N-1 ! N 2nd 0 ! N+1 2nd 1 ! ... ! 2N-1 2nd N-1 ! 2N 3rd 0 ! etc. ! Cards are ordered by increasing slot number. So 1st above means ! first card of that type, 2nd means 2nd card of that type, etc. ! This sucks. If a card is removed SSDNs need to be changed. ! Why did I do it that way? This was the way GAS did it with its famed ! TAN maps and I was told to be compatible and in my inexperience ! at the time I did not realize that was not a characteristic that ! was needed for compatibility. I would not have been able to find ! enough room in a MOOC SSDN for an orthogonal encoding of both ! slot and channel, anyway. ! ! Ok, so now you want to know how many channels there are per card for ! each type/class. ! ! type/class card chnls/ notes ! card ! 0x15 Pirani Pirani 8 last 2 are calibration ! 0x16 Misc Cold Cathode Cold Cathode 1 ! 0x17 Cold Cathode Cold Cathode 16 last 4 are calibration ! 0x18 Misc Ion Pump Ion Pump 1 ! 0x19 Ion Pump Ion Pump 8 last 2 are calibration ! 0x1A Misc Roughing Station Roughing Station 1 ! 0x1B Roughing Station Roughing Station 2 ! 0x1C Misc Manifold Valve Manifold Valve 1 ! 0x1D Manifold Valve Manifold Valve 2 ! 0x1E Misc Sector Valve Sector Valve 1 ! 0x1F Sector Valve Sector Valve 6 ! 0x22 pbar spcl rghng pump status and analog 10 last 4 are calibration ! 0x23 pbar roughing pump status and analog 1 ! 0x24 subpump A status and analog 13 last 4 are calibration ! 0x25 subpump B status and analog 13 last 4 are calibration ! 0x26 misc subpump A status and analog - 1 channel per crate ! 0x27 misc subpump B status and analog - 1 channel per crate ! 0x28 to 0x31 --- used for software classes --- ! 0x32 Thermocouples Thermocouples 96 = 12 chan/station * 8 stations, (2 readings/ chan) ! 0x33 Heaters Heaters 8 1 channel per heater ! ! MOOC vacuum no longer needs EMCs since MOOC now reports alarms by Device Index (DI). ! MOD I:I8ASV ( "ARRAY SECTOR VALVE I8 ", MIVAC, , 07FFFFFE ) SSDNHX BASTAT (0A1D/001F/0000/1F00) PRO BASTAT ( 1, 24, 60) ! || ! --> 4 sector valve cards at MI8 * 6 valves per card ! MOD I:I8APG ( "ARRAY PIRANI GAUGE I8 ", MIVAC, , 07FFFFFE ) SSDNHX BASTAT (0A1D/0015/0000/1500) PRO BASTAT ( 1, 8, 60) ! || ! --> 1 pirani card at MI8 * (6 gauges + 2 calibrations) per card ! SSDNHX READNG (0A1D/0015/0000/1500) PRO READNG ( 2, 16, 60) ! || ! --> 1 pirani card at MI8 * (6 gauges + 2 calibrations) per card ! * 2 bytes per reading ! MOD I:I8AIP ( "ARRAY ION PUMP I8 ", MIVAC, , 07FFFFFE ) SSDNHX BASTAT (0A1D/0019/0000/1900) PRO BASTAT ( 1, 64, 60) ! || ! --> 8 ion pump cards at MI8 * (6 pumps + 2 calibrations) per card ! MOD I:I8AIPS ( "Array Ion Pmp Crd Sts I8", MIVAC , , 07FFFFFE ) SSDNHX BASTAT (0A1D/0018/0000/1800) PRO BASTAT ( 1, 8, 60) ! || ! --> 8 ion pump cards at MI8 * 1 byte per card ! ! SSDNHX READNG (0A1D/0019/0000/1900) PRO READNG ( 2, 128, 60) ! || ! --> 8 ion pump cards at MI8 * (6 pumps + 2 calibrations) per card ! * 2 bytes per reading ! ! MOD I:I8ASVS ( "AR SEC VALVE CRD STS I8", MIVAC, , 07FFFFFE ) SSDNHX BASTAT (0A1D/001E/0000/1E00) PRO BASTAT ( 1, 4, 60) ! || ! --> 4 sector valve cards at MI8 * 1 card status per card ! ! MOD I:I8BVS1 ( "SECTOR VALVE RESET I8 ", MIVAC, , 07FFFFFE ) SSDNHX BCNTRL (0A1D/001E/0000/1E00) PRO BCNTRL ( 4, 4, 60, 00, 00, 00, 00) PDB BCNTRL ( 01, 00000000, 00000000, 00000000, 00000000, 00000000) SSDNHX BASTAT (0A1D/001E/0000/1E00) PRO BASTAT ( 1, 1, 60) ! MOD I:BV809 ( "SECTOR VALVE I8 ", MIVAC, , 07FFFFFE ) SSDNHX BCNTRL (0A1D/001F/0000/1F00) PRO BCNTRL ( 4, 4, 60, FF, 00, 00, 00) PDB BCNTRL ( 06, 00000000, 000000FF, 00000000, 00000000, 00000000) SSDNHX BASTAT (0A1D/001F/0000/1F00) PRO BASTAT ( 1, 1, 60) PDB BASTAT ( 01, 00, 00000001, 00000000, 00000000, 00000000, 1, 00000000, 00000000, 00000000, 00000000) SSDNHX DGALBL (0A1D/001F/0000/1F00) PRO DGALBL ( 1, 20, 60, 00000000, 00000008, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0) PRO DGALTX ( 00000001, 00000001, 7, "CLOSED") ! MOD I:PG810 ( "PIRANI GAUGE I8 ", MIVAC, , 07FFFFFE ) SSDNHX ANALBL (0A1D/0015/0000/1500) PRO ANALBL ( 1, 20, 60, 00000000, 000004A0, 2, 2, 1, 1, 0, 0, 0, 1, 3, 0, 0) PRO ANALTX ( 7, "TOLERANCE !RP") SSDNHX BASTAT (0A1D/0015/0000/1500) PRO BASTAT ( 1, 1, 60) PDB BASTAT ( 02, 00, 00000000, 00000001, 00000000, 00000000, 1, 00000000, 00000000, 00000000, 00000000) SSDNHX READNG (0A1D/0015/0000/1500) PRO READNG ( 2, 2, 60) PDB READNG ( "VOLT", "TORR", 0, 14, 2, 1, 1, 0, .002571, -.02205, .004729, .93910003, -2.625, .1) ! MOD I:IP809 ( "Ion Pump I8 ", MIVAC , , 07FFFFFE ) SSDNHX BCNTRL (0A1D/0019/0000/1900) PRO BCNTRL ( 4, 4, 60, FF, 00, 00, 00) PDB BCNTRL ( 07, 00010000, 000000FF, 00000000, 00000000, 00000000) SSDNHX BASTAT (0A1D/0019/0000/1900) PRO BASTAT ( 1, 1, 60) PDB BASTAT ( 03, 00, 00000001, 00000002, 00000000, 00000000, 1, 00000000, 00000000, 00000000, 00000000) SSDNHX READNG (0A1D/0019/0000/1900) PRO READNG ( 2, 2, 60) PDB READNG ( "Volt", "Torr", 42, 44, 2, 1, 1, 0, 2.8, 1.400E+10, -12.7, .00014, -1.3916, 0) ! ! A setting for degassing should be supplied for ion gauges, but not for ! ion pumps. ! SSDNHX SETTNG (0A1D/0019/0000/1900) PRO SETTNG ( 2, 2, 60, 00, 00) PDB SETTNG ( "SECS", "SECS", 20, 0, 2, 0, 0, 0) ! MOD I:I8VAC1 ( "BV809 -> BV828 Vacuum ", MIVAC , , 07FFFFFE ) SSDNHX ANALBL (0A1D/0020/0019/2000) PRO ANALBL ( 2, 20, 60, 38D1B717, 00000000, 2, 4, 1, 1, 0, 0, 0, 0, 1, 0, 0) PRO ANALTX ( 1, "Poor Vacuum!") SSDNHX BCNTRL (0A1D/0020/0019/2000) PRO BCNTRL ( 4, 4, 60, 00, 00, 00, 00) PDB BCNTRL ( 07, 00010000, 000000FF, 00000000, 00000000, 00000000) SSDNHX BASTAT (0A1D/0020/0019/2000) PRO BASTAT ( 2, 2, 60) PDB BASTAT ( 03, 03, 00000001, 00000002, 00000000, 00000000, 2, 042A022E, 0454022E, 00000000, 00000000) SSDNHX DGALBL (0A1D/0020/0019/2000) PRO DGALBL ( 1, 20, 60, 00000000, 00000003, 2, 1, 1, 0, 0, 0, 1, 1, 0, 0) PRO DGALTX ( 00000001, 00000001, 7, "< 80% ION PUMPS ON", 00000002, 00000002, 7, "3 CONSECUTIVE ION PUMPS OFF") PRO EXTEXT ( 1, 1, 2, "No ", 4, "Yes ", "3 Consecutive IP's off ", 1, 0, 2, "No ", 4, "Yes ", "< 80% of Ion Pumps on ") SSDNHX READNG (0A1D/0020/0019/2000) ! The first float is the average vacuum. ! The second float is the ratio of pumps that are on. This will be a float ! in the range [0.0,1.0] PRO READNG ( 4, 8, 60) PDB READNG ( "Torr", "Torr", 24, 0, 4, 1, 1, 0, 0, 0, 0, 0, 0, 0) ! MOD I:41ARV ( "Array Roughing Stn. Misc", MIVAC , , 07FFFFFE ) SSDNHX BCNTRL (0A1D/071B/0000/1B00) PRO BCNTRL ( 4, 8, 60, 00, 00, 00, 00, 00, 00, 00, 00) PDB BCNTRL ( 06, 00000000, 000000FF, 00000000, 00000000, 00000000) SSDNHX BASTAT (0A1D/071A/0000/1A00) PRO BASTAT ( 1, 2, 60) PDB BASTAT ( FF, 00, 00000001, 00000002, 00000004, 00000008, 1, 072E0330, 072E0343, 072E0352, 072E0344) ! MOD I:41ARP ( "Array Roughing Station ", MIVAC , , 07FFFFFE ) SSDNHX BCNTRL (0A1D/071B/0000/1B00) PRO BCNTRL ( 4, 4, 60, 00, 00, 00, 00) PDB BCNTRL ( 07, 00010000, 000000FF, 00000000, 00000000, 00000000) SSDNHX BASTAT (0A1D/071B/0000/1B00) PRO BASTAT ( 1, 1, 60) PDB BASTAT ( FF, 00, 00000001, 00000010, 00000020, 00000080, 1, 072E0352, 072E0354, 072E0347, 072E0341) !