The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 795 - File: showthread.php PHP 7.4.33 (FreeBSD)
File Line Function
/showthread.php 795 errorHandler->error





Post Reply 
(71B) HP 3421A DATA AQUISTION/CONTROL UNIT calibration
01-03-2017, 10:45 PM (This post was last modified: 01-10-2017 07:32 PM by Erwin.)
Post: #1
(71B) HP 3421A DATA AQUISTION/CONTROL UNIT calibration
Hi,

Now I started to work with the DAQ-Unit I planned 2 years ago. I own a HP 3421A Data Acquisition Unit and want to use it for a temperature measuring project in the future. Now with the FRAM71B I have the possibility to have all my necessary programs on board of the HP71B.
Before using the HP 3421A it is necessary to calibrate the multiplexer boards. HP does not provide a calibration program for the HP71B (only in a full automated setting with some additional instruments) and I'm wondering there is not something out in the wild. HP offers two possibilities for calibrating. One is the manual calibrating with the temperature calibration board.
The effort for manual calibrating the multiplexer with the temperature calibrator board is relatively high. So I wrote a small basic program to overtake this manual part and carries out the calibration semi-automatically.
  1. prepare the multiplexer boards like the HP description says. It is important to follow HP's instructions (switch 8!!) The program makes a hint on this switch, the time to wait (10 seconds), and so on - cause I often forgot this.
  2. start the basic program - first it looks for the HP3421A in the HPIL-loop and checks in which slot the multiplexer board is situated (I have two of them)
  3. Then choose the board you want to calibrate. On every pass it displays the calibrated and the reference value and the number of passes
    Code:
    Pass No:slot C:tt.tt [calibrated] R:TT.TT [reference]. The values are in degree celsius (you can change this in line 10)
  4. the program stops if the board is calibrated or with a limited run of 9 passes - normally the board should be calibrated otherwise you can start it again (my second board takes two sequences) or change to another board. The program shows the last values for checking the progress.

I did it fast and so it's not a code optimized program but it works for me and hopefully for others too. Maybe I'll do some code clearance later on. There is no additional comfortable error handling implemented. At the moment there is no calibration report - will be added in the future. I am happy about your feedback.

best regards
Erwin

EDIT 2017-01-06 small code improvements, add check SQR error code, put program in LIF file

Planning next steps:
  • Menue driven
  • Error check during program execution
  • First draft for semi automatic DC calibration


Code:
10 ! HP 3421A DATA AQUISTION/CONTROL UNIT
20 ! Manual temperatur calibration of HP44462A Multiplexer
30 ! using the temperatur calibrator board
40 ! (c) Erwin Grabler, 2017
50 ! BINLEX and DATA-AQ-Module is necessary
60 !
70 DELAY 2 @ DESTROY ALL @ OPTION DEGREES C
80 A$=ADR3421$ @ DISP "** INIT3421 "&A$&" **"
90 DELAY 9 @ PRINT 'Switch 8 on 3421 UP"
100 INIT3421
110 DELAY 9 @ PRINT "Switch 8 on 3421 DOWN"
120 ! Check cardtype in slots
130 GOSUB 'CHECK'
140 DELAY 2 @ DISP "* Start calibration *"
150 DISP "* Load thermo data *"
160 A=.001285498378
170 B=.000230998857
180 C=9.324409398E-8
190 DISP "* Calibration loop *"
200 'LOOP':
210 INPUT "Check slot no: ";I
220 F=VAL(STR$(I)&STR$(4))
230 FOR L=1 TO 10
240 R=CMD3421(S$(I))
250 D=1/(A+B*LOG(R)+C*LOG(R)^3)-273.16 @ D=INT(D*100+.5)/100
280 E=REFTEMP(F) @ OPEN F
270 DISP STR$(L-1)&":"&STR$(I)&" "&"C:"D;"R:";E
280 GOSUB 'KALI'
290 IF D=E THEN 'END3421'
300 NEXT L
310 'EN03421':
320 DELAY 9 @ DISP "** End calibration **"
330 DISP "C"&STR$(I)&":";D;"/ R"&STR$(I)&":";E
340 DISP "* Check SQR register *" @ DELAY 9
350 OUTPUT A$;"SR" @ ENTER A$ ;K,L,M,N
360 DISP "Status Reg: ";DTBIN$(K,8)
370 DISP "Error Reg: ";DTBIN$(L,8)
380 DISP "Hardware Reg: ";DTBIN$(M,8)
390 DISP "Calibr Reg: ";DTBIN$(N,8)
400 DELAY 2 @ DISP "Close port ";F @ OPEN F
410 INPUT "Other slot (Y/N)";X$
420 IF X$="Y" THEN GOTO 'LOOP'
430 DELAY 9 @ PRINT "Switch 8 on 3421 UP"
440 OUTPUT AS ;"SR"
450 DELAY 0
460 END
470 'CHECK': DELAY 2 @ DISP "**** Check slots ****"
480 DELAY 9 @ OPTION BASE 0 @ DIM S$(3)
490 FOR I=0 TO 2 @ PRINT "Slot";I;
500 IF NOT CHANTYPE(I*10) THEN DISP "is empty"
510 IF CHANTYPE(I*10+2)=1 THEN DISP "relay board" @ S$(I)="TWO"&STR$(I)&STR$(4)
520 IF CHANTYPE(I*10)=2 THEN DISP "digital board"
530 NEXT I
540 RETURN
550 'KALI': DELAY 2 ! DISP "** Calibration loop **"
560 OUTPUT A$ ;"REF“&S$(I)
570 OUTPUT A$ ;"C00"&STR$(D)
580 OPEN F
590 WAIT 15
600 RETURN


Attached File(s)
.pdf  HP3421A_calibration.pdf (Size: 356.42 KB / Downloads: 27)
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
(71B) HP 3421A DATA AQUISTION/CONTROL UNIT calibration - Erwin - 01-03-2017 10:45 PM



User(s) browsing this thread: 5 Guest(s)