//_Header //******************************************************************* // NOVA Central Controls --- Lawrence Livermore Laboratory //******************************************************************* // //_Module_Name: TABLES _File: [TDVAX.CRYOFEP]TABLES.PRX // //_Description: Temperature conversion tables and interploation tables // for dt-500 diode temperature guages and // Chromel vs. Gold-.07% Fe thermocouples // //_Call: //_Identifier: { none } //******************************************************************* //_Author: John Severyn _Creation_Date: 16-DEC-82 //_Revisions: // 1.000 16-dec-82 JRS Initial Key-in. // 2.000 03-JAN-83 JRS Interpolation for diode and tc //******************************************************************* //_End MODULE TABLES %SET ENCODE_EXTERNAL_NAMES=TRUE EXPORT TC_VOLTAGE, TC_TEMP, DIODE_VOLTAGE, DIODE_TEMP DECLARE TC_TABLE IS ARRAY [0..280] OF REAL D_TABLE IS ARRAY [0..400] OF REAL // The following table is from National Bureau of Standards Interim Report 9712 // and is simply the temperature in degrees K verses the voltage output of a // Chromel vs. gold-0.07 at. % iron thermocouple. TC : STATIC TC_TABLE INITIALLY TC_TABLE ( [0]: 0.0 ,[1]: 7.85E-6 ,[2]: 17.21E-6 ,[3]: 27.86E-6 ,[4]: 39.59E-6 ,[5]: 52.26E-6 ,[6]: 65.69E-6 ,[7]: 79.70E-6 ,[8]: 94.40E-6 ,[9]: 109.45E-6 ,[10]: 124.86E-6 ,[11]: 140.54E-6 ,[12]: 156.44E-6 ,[13]: 172.50E-6 ,[14]: 188.68E-6 ,[15]: 204.94E-6 ,[16]: 221.26E-6 ,[17]: 237.60E-6 ,[18]: 253.95E-6 ,[19]: 270.29E-6 ,[20]: 286.60E-6 ,[21]: 302.89E-6 ,[22]: 319.15E-6 ,[23]: 335.36E-6 ,[24]: 351.54E-6 ,[25]: 367.67E-6 ,[26]: 383.77E-6 ,[27]: 399.82E-6 ,[28]: 415.85E-6 ,[29]: 431.84E-6 ,[30]: 447.81E-6 ,[31]: 463.76E-6 ,[32]: 479.69E-6 ,[33]: 495.61E-6 ,[34]: 511.52E-6 ,[35]: 527.43E-6 ,[36]: 543.35E-6 ,[37]: 559.27E-6 ,[38]: 575.20E-6 ,[39]: 591.15E-6 ,[40]: 607.12E-6 ,[41]: 623.12E-6 ,[42]: 639.14E-6 ,[43]: 655.19E-6 ,[44]: 671.28E-6 ,[45]: 687.40E-6 ,[46]: 703.56E-6 ,[47]: 719.76E-6 ,[48]: 736.00E-6 ,[49]: 752.29E-6 ,[50]: 768.62E-6 ,[51]: 785.00E-6 ,[52]: 801.42E-6 ,[53]: 817.89E-6 ,[54]: 834.42E-6 ,[55]: 850.99E-6 ,[56]: 867.61E-6 ,[57]: 884.29E-6 ,[58]: 901.01E-6 ,[59]: 917.79E-6 ,[60]: 934.61E-6 ,[61]: 951.49E-6 ,[62]: 968.42E-6 ,[63]: 985.42E-6 ,[64]: 1002.43E-6 ,[65]: 1019.51E-6 ,[66]: 1036.64E-6 ,[67]: 1053.82E-6 ,[68]: 1071.05E-6 ,[69]: 1088.33E-6 ,[70]: 1105.66E-6 ,[71]: 1123.03E-6 ,[72]: 1140.46E-6 ,[73]: 1157.94E-6 ,[74]: 1175.46E-6 ,[75]: 1193.03E-6 ,[76]: 1210.65E-6 ,[77]: 1228.31E-6 ,[78]: 1246.03E-6 ,[79]: 1263.79E-6 ,[80]: 1281.59E-6 ,[81]: 1299.44E-6 ,[82]: 1317.34E-6 ,[83]: 1335.29E-6 ,[84]: 1353.28E-6 ,[85]: 1373.31E-6 ,[86]: 1389.39E-6 ,[87]: 1407.51E-6 ,[88]: 1425.68E-6 ,[89]: 1443.89E-6 ,[90]: 1462.14E-6 ,[91]: 1480.44E-6 ,[92]: 1498.78E-6 ,[93]: 1517.16E-6 ,[94]: 1535.59E-6 ,[95]: 1554.06E-6 ,[96]: 1572.56E-6 ,[97]: 1591.11E-6 ,[98]: 1609.70E-6 ,[99]: 1628.34E-6 ,[100]: 1647.01E-6 ,[101]: 1665.72E-6 ,[102]: 1684.47E-6 ,[103]: 1703.26E-6 ,[104]: 1772.09E-6 ,[105]: 1740.95E-6 ,[106]: 1759.86E-6 ,[107]: 1778.80E-6 ,[108]: 1797.78E-6 ,[109]: 1816.80E-6 ,[110]: 1835.85E-6 ,[111]: 1854.94E-6 ,[112]: 1874.06E-6 ,[113]: 1893.22E-6 ,[114]: 1912.42E-6 ,[115]: 1931.65E-6 ,[116]: 1950.91E-6 ,[117]: 1970.21E-6 ,[118]: 1989.54E-6 ,[119]: 2008.91E-6 ,[120]: 2028.31E-6 ,[121]: 2047.74E-6 ,[122]: 2067.20E-6 ,[123]: 2086.70E-6 ,[124]: 2106.23E-6 ,[125]: 2125.78E-6 ,[126]: 2145.37E-6 ,[127]: 2165.00E-6 ,[128]: 2184.65E-6 ,[129]: 2204.33E-6 ,[130]: 2224.04E-6 ,[131]: 2243.79E-6 ,[132]: 2263.56E-6 ,[133]: 2283.36E-6 ,[134]: 2303.20E-6 ,[135]: 2323.06E-6 ,[136]: 2342.95E-6 ,[137]: 2362.87E-6 ,[138]: 2382.82E-6 ,[139]: 2402.30E-6 // 30 OR 80? ,[140]: 2422.80E-6 ,[141]: 2442.83E-6 ,[142]: 2462.90E-6 ,[143]: 2482.99E-6 ,[144]: 2503.10E-6 ,[145]: 2523.25E-6 ,[146]: 2543.42E-6 ,[147]: 2563.62E-6 ,[148]: 2583.85E-6 ,[149]: 2604.10E-6 ,[150]: 2624.38E-6 ,[151]: 2644.69E-6 ,[152]: 2665.02E-6 ,[153]: 2685.38E-6 ,[154]: 2705.76E-6 ,[155]: 2726.18E-6 ,[156]: 2746.61E-6 ,[157]: 2767.07E-6 ,[158]: 2787.56E-6 ,[159]: 2808.07E-6 ,[160]: 2828.61E-6 ,[161]: 2849.17E-6 ,[162]: 2869.75E-6 ,[163]: 2890.36E-6 ,[164]: 2910.99E-6 ,[165]: 2931.65E-6 ,[166]: 2952.33E-6 ,[167]: 2973.03E-6 ,[168]: 2993.76E-6 ,[169]: 3014.50E-6 ,[170]: 3035.27E-6 ,[171]: 3056.06E-6 ,[172]: 3076.88E-6 ,[173]: 3097.71E-6 ,[174]: 3118.57E-6 ,[175]: 3139.45E-6 ,[176]: 3160.35E-6 ,[177]: 3181.27E-6 ,[178]: 3202.21E-6 ,[179]: 3223.17E-6 ,[180]: 3244.15E-6 ,[181]: 3265.15E-6 ,[182]: 3286.17E-6 ,[183]: 3307.21E-6 ,[184]: 3328.27E-6 ,[185]: 3349.34E-6 ,[186]: 3370.44E-6 ,[187]: 3391.56E-6 ,[188]: 3412.69E-6 ,[189]: 3433.85E-6 ,[190]: 3455.02E-6 ,[191]: 3476.21E-6 ,[192]: 3497.41E-6 ,[193]: 3518.64E-6 ,[194]: 3539.88E-6 ,[195]: 3561.14E-6 ,[196]: 3582.42E-6 ,[197]: 3603.72E-6 ,[198]: 3625.03E-6 ,[199]: 3646.36E-6 ,[200]: 3667.71E-6 // ,[X0]: 124.86E-6 // ,[X1]: 140.54E-6 // ,[X2]: 17.21E-6 // ,[X3]: 27.86E-6 // ,[X4]: 39.59E-6 // ,[X5]: 52.26E-6 // ,[X6]: 65.69E-6 // ,[X7]: 79.70E-6 // ,[X8]: 94.40E-6 // ,[X9]: 109.45E-6 ) // The following table was generated by using the DT-500 detailed response curves // from Lake Shore Cryogenics Inc. Exitation current=10 ua., voltage is Vf(forward biased voltage) // I don't have actual tables at this time // so the tables were generated by manually reading the graph JRS DIODE : STATIC D_TABLE INITIALLY D_TABLE ( [0]: 2.42 ,[1]: 2.40 ,[2]: 2.31 ,[3]: 2.23 ,[4]: 2.16 ,[5]: 2.11 ,[6]: 2.05 ,[7]: 2.00 ,[8]: 1.96 ,[9]: 1.92 ,[10]: 1.88 ,[11]: 1.84 ,[12]: 1.80 ,[13]: 1.76 ,[14]: 1.72 ,[15]: 1.67 ,[16]: 1.63 ,[17]: 1.58 ,[18]: 1.54 ,[19]: 1.50 ,[20]: 1.45 ,[21]: 1.41 ,[22]: 1.37 ,[23]: 1.32 ,[24]: 1.27 ,[25]: 1.22 ,[26]: 1.18 ,[27]: 1.17 ,[28]: 1.16 ,[29]: 1.15 ,[30]: 1.14 ,[31]: 1.136 ,[32]: 1.132 ,[33]: 1.128 ,[34]: 1.124 ,[35]: 1.120 ,[36]: 1.116 ,[37]: 1.112 ,[38]: 1.108 ,[39]: 1.104 ,[40]: 1.100 ) ENDDECLARE PROCEDURE TC_VOLTAGE (TEMPERATURE: IN REF REAL, VOLTAGE: OUT REF REAL) VOLTAGE:=(TC[INTEGER(TEMPERATURE)])+(TEMPERATURE-REAL(INTEGER(TEMPERATURE)))* (TC[1+INTEGER(TEMPERATURE)]-TC[INTEGER(TEMPERATURE)]) ENDPROCEDURE PROCEDURE TC_VOLTAGE_2 (TEMPERATURE: IN REF REAL, VOLTAGE: OUT REF REAL) declare r : real initially temperature t : integer initially integer (r) enddeclare VOLTAGE:=(TC[ t ])+(r-REAL(t)) * (TC[t + 1]-TC[t]) ENDPROCEDURE PROCEDURE TC_VOLTAGE_3 (TEMPERATURE: IN REF REAL, VOLTAGE: OUT REF REAL) declare r : real initially temperature t : integer enddeclare t := integer (r) VOLTAGE:=(TC[ t ])+(r-REAL(t)) * (TC[t + 1]-TC[t]) ENDPROCEDURE PROCEDURE TC_TEMP (VOLTAGE: IN REF REAL, TEMPERATURE: OUT REF REAL) FOR I:=0 TO 200 DO IF TC[I]>VOLTAGE DO TEMPERATURE:=REAL(I-1)+ (VOLTAGE-TC[I-1])/(TC[I]-TC[I-1]) RETURN ENDIF ENDFOR ENDPROCEDURE PROCEDURE DIODE_VOLTAGE (TEMPERATURE: IN REF REAL, VOLTAGE: OUT REF REAL) // interpolate between points in the diode table for temp less than or equal to 40 deg k IF TEMPERATURE<=40 DO VOLTAGE:=(DIODE[INTEGER(TEMPERATURE)])-(TEMPERATURE-REAL(INTEGER(TEMPERATURE)))* (DIODE[INTEGER(TEMPERATURE)]-DIODE[1+INTEGER(TEMPERATURE)]) // use one straight line from 40 thur 67.5 ORIF (TEMPERATURE>40.0 AND TEMPERATURE<=67.5) DO VOLTAGE:=1.2362 - (3.49925E-3*TEMPERATURE) // and another if temp is >67.5 and less than 431 deg k ORIF (TEMPERATURE>67.5 AND TEMPERATURE<431) DO VOLTAGE:=1.1825 - (2.751E-3*TEMPERATURE) OTHERWISE VOLTAGE:=9999.0 // to flag errors ENDIF ENDPROCEDURE PROCEDURE DIODE_TEMP (VOLTAGE: IN REF REAL, TEMPERATURE: OUT REF REAL) // if the voltage is greater than 1.1 use the table for the non-linear region IF (VOLTAGE>=1.10 AND VOLTAGE<2.42) DO FOR I:=0 TO 40 DO IF DIODE[I]<VOLTAGE DO TEMPERATURE:=REAL(I)+ (VOLTAGE-DIODE[I])/(DIODE[I-1]-DIODE[I]) RETURN ENDIF ENDFOR // if voltage is between 1.10 and 1.00, use the first linear region equation and compute the temperature ORIF (VOLTAGE<1.1 AND VOLTAGE>=1.00)DO TEMPERATURE:=431.0-(289.92*VOLTAGE) // if voltage is between 1.00 and 0.02, use the second linear region equation and compute the temperature ORIF (VOLTAGE<1.00 AND VOLTAGE>0.02)DO TEMPERATURE:=431.0-(363.5*VOLTAGE) OTHERWISE TEMPERATURE:=9999.9 // just to flag opens or shorts in the sensor ENDIF ENDPROCEDURE ENDMODULE