|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 25344 (0x6300) Types: TextFile Names: »venpaper«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt. └─⟦0364f57e3⟧ └─⟦603a38981⟧ »cpaper« └─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦603a38981⟧ »cpaper« └─⟦this⟧ └─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt. └─⟦0364f57e3⟧ └─⟦eff6851b3⟧ »cpaper« └─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦eff6851b3⟧ »cpaper« └─⟦this⟧
<se *< *pn 0,0**pl 297,28,250,4,10* *lm8**lw 175* *ld 12* *ps15* *ct* The Use of Computers for Control of and Datacollection ------------------------------------------------------ from Small Experiments. ----------------------- *ld 12* *0010**nl 1* Anders Lindgård Chemistry Laboratory III H. C. Ørstedinstitutet Københavns Universitet Universitetsparken 5 DK-2100 København Ø *rj* *ld12**ns 1,3,Abstract. * *0020* ---------*nl**np* Small equipment like simple titrating systems etc. can hardly justify a dedicated minicomputer to do datacollection and datahandling (Hunter et al, 1975). Further the support of a minicomputer to develop programs is rather poor. In this work it is discussed how a multiprogrammed computer can give a cheap yet very powerful support to simple experiments. Giving each apparatus a process running under a time-sharing swopping operating system gives a very low load on the computer. Datacollection and data- refinement can be done by a simple program in a high level language. *0030*The design of some titrating and of density measuring equipment is described. *pn 2,1* *ld12**ns 1,3,Introduction. * -------------*nl**np* Much interest has been devoted to computerizing larger complicated experimental equipment with typical large data rates and tight response time requirements. However, most equipment actually used in the chemical laboratory *0040*is relatively simple and has low data rates. They do not have serious response time requirements, since they are normally operated by a human operator or by low speed devices. *np* Even simple equipment can gain considerably in accuracy and versatility by being computerized. In a computerized system data accuracy will in general be higher and the number of datapoints collected can easily be made sufficiently large to provide a good sample for a statistical data refinement. *ld12**ns 1,2,Tools for Process control* *0050**np* Convenient tools in processcontrol are really needed today. The prizes of computer equipment are declining so rapidly and prices of skilled human power raising. It is really not the best economy to buy the cheapest computer system available, where the software and hardware support is very poor. Although, of course to buy a small mini computer system or micro computer system as a part of an apparatus may be a good investment provided nobody tries to use it as a general purpose computer.*np* Easy to use interface for computers is well developed, to most computers analog and digital interface hardware are available at a *0060*reasonable cost. Many computers can interface to standardized systems like CAMAC. The problems of interfacing computers and experiments are certainly not in interfacing hardware unless requirements are extreme. Of course the usual problems of noise and grounding persist modern technology. *np* An on-line computer may be so powerful that it is practical to analyze the data by immediate fitting to some model. In an on-line system this procedure may give very low turn around times for a complete analysis.*np* *0070*An on-line graphical system can provide the experimentalist with the fitted or otherwise refined curves in minutes after completion of an experiment and/or may be used to monitor the experiment.*np* To operate the interface equipment, the graphical equipment, and to do the data analysis and refinement one needs a decent high level language capable of doing it all in a well structured manner within the same program. Candidates for such a language could be ALGOL60, SIMULA67, PASCAL, or ALGOL68. These languages with some extensions, can support process control of experiments effectively. It is simple to change *0080*strategy in programs written in any of these languages.*np* The hardware and software tools mentioned are normally not found in laboratory computer systems. Besides the process interface, a laboratory computer is typically only equipped with a noisy teletype and some simple minded language like BASIC.*nl**np* This paper is a contribution to the discussion on one computer per experiment or a shared computer for many experiments. Micro computers are not specifically considered as they are just the very low end of mini computers and are it is more usefull to regard them as complicated logic rather than true programmable devices. *ld12**ns 1,3,General considerations.* -----------------------*nl**np* *0090*Simple experiments hardly justify a single dedicated computer. Some systems has what is called multi user BASIC, where several experiments may share a computer (Anfælt and Jagner, 1975). The programs running the experiments are not well protected against each other, making software crashes a problem when debugging new programs or changing existing. *np* What the experimentalist needs, is a computer system which gives a feeling of being on-line having reasonable response *0100*time for data collection. However an experimentalist does have a need like any ordinary time sharing user for handling files, edit programs, compile programs etc., and for a reasonable response time for these jobs. *np* A time sharing swopping operating system on a medium size computer may offer these facilities provided the user area in primary store is large enough to run editor, compilers and ordinary relatively small programs in a high level language (Graae Sørensen and Lindgård, 1973), and the computer has a random access secondary store i.e. a disc file. *np* It must be easier to a programmer if the program for handling *0110*experiment, do data refinement and data analysis can be written as one single program in a single high level language, rather than writing some part for a small dedicated computer in BASIC and some part for a larger computer in another language. Using two computers also gives the problem of moving data from one to the other. *np* The dedicated computer may give a very low turn around time for interrupt driven data collection, but the convenience of one's own computer is really lost if data has to be transferred to a large computer. Often it is *0120*also even impossible from the raw data to see whether the experiment worked satisfactorily, thus giving a large turn around time for doing experiments. *np* If a DMA (direct memory access) channel is used for data collection the medium sized computer will generally be slightly faster than the minicomputer because the primary store of the larger mashine is normally faster, but this is hardly ever an argument to prefer one for the other. At present day prizes of electronics DMA controllers should not be much more expensive than instruction controlled channels, and the DMA channelse requires much less investment in software. On a multiprogrammed computer DMA type controllers can be used even for fairly slow data collection (Lindgård et al., 1976a). *0130**ld12**ns 1,3,Operating environment.* ----------------------*nl**np* Each part of a computer system which is used in an application program is part of what may be called the operating environment. For the program types described here the most important software components are the multiprogramming system (monitor), the peripheral handlers, the swopping operating system, the compiler used and its run time system.*np* A good operating environment is characterized by the quality of its components and the ability of the components to cooperate *0140*in a harmonic way.*nl**np* In the HCØ RC4000 system the following features makes life easy both to the users and to basic software implementers: The interface between the various modules are welldefined and simple. The monitor (Brinch Hansen, 1973) is extremely reliable. The swopping operating system designed and implemented by us (Graae sørensen and Lindgård, 1973) supports process control jobs and ordinary time sharing jobs, minimizing the load on the computer from the process control jobs. The compiler implements virtually all ALGOL 60 and has a number of extensions similar to what is found *0150*in more modern languages. Both run time errors and compile time errors are given to the programmer as meaningful diagnostic messages, making debugging fast. The ALGOL run time system and the compiler implement a segmentation scheme for the code (Naur, 1963), making it possible to have virtually unlimited size programs.*np* For process control of experiments segmentation should be preferred to paging since segmentation gives the programmer control over the data space.*nl**np* It is believed that this system is pretty much contrary in its behaviour to what is described by Barron (Barron, 1971). *ld12**ns 1,3,Densimeter.* -----------*nl**np* Measurement of densities of solutions as a function of concentration is an important method in polymer chemistry for determining partial cpesific volumes. It can be done very accurately using a digital densimeter like PAAR Digital Densimeter DMA02 (Leopold, 1970). The liquid is a part of an oscillator and the frequency is a measure of the density of the liquid. The following formula apply. *ct* *0170**ld12* *se !* d1-d2=A(T1**2-T2**2) !se *! *rj* T1 and T2 are counts in a given time for two liquids with densities d1 and d2 respectively, A is a calibration constant. The apparatus needs calibration with two known references. If the determination has to be very *0180*accurate a good temperature control is needed. A way of checking that the temperature of the liquid has reached equilibrium is to measure at short time intervals until the countnumber has approached a limiting value. On the most sensitive scale a measurement takes 30 seconds. It is a very tedious job to operate the densimeter manually and it is clearly an apparatus worths computerizing. *ns 1,2,Densimeter 1.* *np* *0190*This was bought as a stand alone unit, with high impedance BCD-output. It may be used either in local or in computer controlled mode. It is interfaced to the RC4000 using 28 bit digital input bit, one interrupt bit and one digital output bit.*np* A pulse from the digital output bit starts the densimeter. When finished an interrupt is generated and the countnumber is ready on the digital input. *ns 1,2,Densimeter 2.* *np* The whole system (figure 1) except the cell itself was built at our institute. A pulse from a digital output bit resets *0200*and starts the interface. Data are transferred to two cascaded 12 bit binary counters in the RC4000. A very presize 10 kHz signal from an oven heated quartz oscillator is sent to the counters, gated with the signal from the counter in the interface connected to the measuring cell oscillator. When the measuring cell oscillator counter overflows the pulse train to the computer is stopped and an interrupt is generated. *ld12**ns 1,3,Titrations* -----------*nl**np* Titration is one of the mostly used analytical method in the chemical laboratory. Titrators which are simple are easy to interface. Automatic *0210*titrators, where data are lost if they are not collected within a relatively small timelimit are a problem for a multiprogrammed computer, which has other things to do than waiting for a ready signal from a titrator.*np* Determination of dissociation constants are best performed using an on-line computer (Frazer et al., 1975). Computerized data collection and control of the titration itself permits greater precision and more versatility than hardwired controllers (Hunter et al., 1975). Titrators using computers as an integral part of the instrument has been described previously (Anfælt and Jagner, 1971). pH-stats and potentiostats are easy to design using a computer as an integral part of the instrument (Pomernacki, 1975). *0220**np* Determination of dissociation constants for polyaminoacids require accurate differential titration curves, and are virtually impossible without using a computer for data analysis. A method using polynomials which can handle up to 20 different constants has been developed (Heilmann, 1975). This method requires a very large number of accurately determined data points. *np* Simple titrators with a pHmeter and a burette are easy to interface to a computer. They are nice demonstration devices to use in teaching *0230*(Wilkins et al.,1975) as it is simple do write programs for such devices (figure 3). *nl* *ns 1,1,An accurate titrator.* *np* A titration system consisting of an automatic burette ABU13, pH-meter PHM64 and a titrator TIT60 (Radiometer, Copenhagen), has been interfaced to the RC4000 using a digital output bit, an interrupt bit and four digital sense bits. Whenever the automatic burette has turned a certain angle it generates an interrupt. The handler may now read the pH value digit for digit *0240*by reading the four sense bits and writing on the pulsed digital output bit. As the apparatus cannot stop the multi buffering technique (Graae Sørensen and Lindgård, 1973) is used. *nl* *ns 1,1,A simple titrator.* *np* The simple titrator consists of a PHM53 specific ion meter (Radiometer, Copenhagen) and a hand driven type piston burette E274 (Metrohm, Switzerland) equipped with a stepping motor and high limit, low limit, manual control. The titrator is connected to a channel on the multiplexed A/D-converter and the stepping motor to an interface capable of handling up to 8 motors. *0250**nl* *ns 1,1,A complex titrator* *np* For studying oscillatory chemical reactions a system using both the multiprogrammed computer and a slave microcomputer has been constructed (Graae Sørensen, 1975; Lindgård et al., 1976b). *ld12**ns 1,3,Model programs* --------------*nl**np* In figure 2 and 3 two fairly realistic model programs for handling the densimeters and the simple titrator are shown., written in *0260*the RC4000 ALGOL60 dialect (Lauesen, 1969). *ns 1,2,Densimeter program (figure 2).* *np* The densimeter program is, except for leaving out device reservations and checking of hardware malfunctioning, the actual program used for the densimeters. The operator may start the program from any terminal. The run mode is determined by typing the appropriate textstring. The operator has to switch samples on the apparatus manually, as this is a crucial step for obtaining high accuracy. *np* *0270*The program uses the general "send message", "wait answer" procedures (Brinch Hansen, 1973) in the two measurement procedures measuredensity1 and measuredensity2. *np* The measurement cycle continues until either the wanted number of experiments has been performed or the human operator from the terminal interrupts the program. The latter condition is tested in the while condition by the procedure "waitkey" only. The mechanism disguised by "waitkey" is a message to the clock and to the terminal. If the clock returns the answer first, i.e. after elapse of the delay, the procedure value *0280*is false. If the terminal gives the answer it is true and the clock message is regretted. *np* The lack of decent string handling facilities makes the string reading and testing part somewhat complicated. *ns 1,2,Titration program (figure 3).* *np* The program plots the titration curve on one of the plotters while measuring. The initial value of pH is measured and a fixed amount of titrant added. A wait is performed before a new measurement takes place. The program continues until either the endpoint pH has been reached or the maximum *0290*volume has been added. The final curve from a test run is shown on figure 4. *ns 1,2,Discussion of the programs.* *np* It is the hope of the author that the two model programs are essentially self documenting to a reader familiar with algol, and the reader does not bother too much about the procedure bodies of the procedures to handle the peripheral devices and about the pecularities of the algol dialect used. *np* *0300*Having a manual of the dialect it should be a simple matter to make changes in the programs, f.ex. in the titration program (figure 4), to implement the strategy of adding titrant given a constant change in pH, or to put in a Gran plot (Gran, 1952), or to turn the device into a pH-stat. *np* Redundancy is a nice feature for the users of the programs, especially when giving parameter values to the running programs. The procedures "readil" and "readrl" gives such a *0310*check by only accepting parameters having values in the range given as the last two actual parameters in the call of the procedures. *np* Besides the titration program figure 3 contains the full communication with the operating system and the use of the job control language. *ld12**ns 1,3,Acknowledgement. * ----------------*nl**np* Dr. P. Graae Sørensen designed most of the equipment used in the titration systems. He has contributed much through *0320*discussions about process control of experiments, and as a very active user of the system. E. Møller designed and built the two densimeter interfaces. Dr. Aa. Hvidt was a great help in reading through the paper. M. Torpe, F. Junager, J. Oxenbøll participated in parts of the titration projects. *ns 1,3,References.**ld12* -----------*ld12**nl1* *sj* Anfælt T. and Jagner D. *0330*Anal. Chim. Acta 57 177 (1971) *nl 1* Anfælt T. and Jagner D. Anal. Chim. 47 759 (1975) *nl 1* Barron D. W., Computer Bulletin 15 153 (1971) *nl 1* Brinch Hansen P., Operating Systems Principles, Prentice-Hall, Englewood Cliffs, N.J., 1973. *nl 1* *0340*Frazer J. W., Kray A. M., Selig W. and Lim R. Anal. Chem 47 869 (1975) *nl 1* Gran G., Analyst 77 661 (1952) *nl 1* Graae Sørensen P. and Lindgård A., Computers in Chemical Research and Education. Ed. Hadzi, Elsevier, Amsterdam, 1973. *nl 1* Graae Sørensen P., *0350*Faraday Symposia of the Chemical Society 9 88 (1974) *nl 1* Heilmann O. J. H., Private communication. *nl 1* Hunter T. W., Sinamon J. T. and Hieftje G. M., Anal. Chem. 47 497 (1975) *nl 1* Lauesen S., Algol 5 User's Manual RCSL 55-D42 Regnecentralen, København, 1969 *nl 1* Leopold H., Elektronik 19 297 (1970) *nl 1* Lindgård A., Moss R., and Oxenbøll J., Computers and Chemistry 1 7 (1976a) *nl 1* Lindgård A., Graae Sørensen P. and Oxenbøll J., submitted to J. Phys. E. (1976b) *nl 1* Naur P., BIT 3 124 (1963) *nl 1* Pomernacki C. L. and Harrar J. E., Anal. Chim. 47 1894 (1975) *nl 1* Wilkins C.L., Perone S.P., Klopfenstein C.E., *0370* Williams R.G., Jones D.E., Digital Electronics and laboratory Computer Experiments, Plenum, New York, 1975. *rh* *pn 0,0* *ps0* *ct* Figure Captions *nl 3* Figure 1 *nl1**rj* *0380*The interface for digital densimeter 2. bct7 and bct8 are two 12-bit counters in the RC4000. ik17 is an interrupt bit. dot12 is a digital output bit. *nl 3**ct* Figure 2 *nl 1**rj* Program for handling the two densimeters. Device reservation and checking of hardware malfunctioning has been left out. The program is written in the RC4000 algol dialect (Lauesen, 1969). The program consist of two measurement procedures "measuredensity1" and "measuredensity2", where use has been made of the monitor procedures (Brinch Hansen, 1973). *0390*In the main part of the program the human operator selects between various run modes. *nl 3**ct* Figure 3 *nl**rj* Program for doing titrations with a stepping motor driven piston burrette and a simple pH-meter. Checking of device reservation and device malfunctioning has been left out. The program is written in the RC4000 algol dialect (Lauesen, 1969). In the measurement and control procedures "movemotor" and "readpH" use have made of the monitor procedures (Brinch Hansen, 1973). *0400*The program plots the titration curve on one of the plotters while collecting data. Plotter output is shown on figure 4. The figure includes the communication with the operating system and the job control language interpreter. *nl 3**ct* Figure 4 *nl**rj* Titration curve for HCl titrated with NaOH. Program and run shown in figure 3. *sj* *pl 297,10,260,5,4* *0410**ps15* *se "* "ct" Figure 2 "sj" program for control of digital densimeter begin integer i,mode,n,delay,type; real data,dens,A; boolean running; "0420"real array CALI,DENS(1:2),MTEXT(1:5); long procedure measuredensity1; begin integer i,d1,d2,dot11,ba; long data; integer array M,A(1:8); M(1):=0; ba:=sendmessage(<:ik3:>,M); waitanswer(sendmessage(<:dot11:>,M),A); dot11:=logand(A(2),logneg(1 shift 2)); "0430" M(1):=8 shift 12; M(2):=dot11+(1 shift 2); waitanswer(sendmessage(<:dot11:>,M),A); wait(1); M(2):=dot11; waitanswer(sendmessage(<:dot11:>,M),A); waitanswer(ba,A); wait(1); M(1):=0; waitanswer(sendmessage(<:dst1:>,M),A); d1:=A(2); waitanswer(sendmessage(<:dst2:>,M),A); data:=logand(15,A(2) shift (-20)); "0440" for i:=20 step -4 until 0 do begin d2:= logand(15,d1 shift (-i)); data:= data*10+d2; end; measuredensity1:=data; end measuredensity1; long procedure measuredensity2; begin integer buf; long count; "0450"integer array M,A(1:8); M(1):=2; M(2):=0; waitanswer(sendmessage(<:bc7:>,M),A); waitanswer(sendmessage(<:bc8:>,M),A); M(1):=8 shift 12; M(2):=0; waitanswer(sendmessage(<:dot12:>,M),A); M(1):=0; buf:=sendmessage(<:ik17:>,M); M(1):=8 shift 12; M(2):=1 shift 2; waitanswer(sendmessage(<:dot12:>,M),A); "0460" waitanswer(buf,A); M(1):=0; waitanswer(sendmessage(<:bc8:>,M),A); count:=A(2)//2*4096+A(1) extract 12; waitanswer(sendmessage(<:bc7:>,M),A); measuredensity2:=count shift 12 + (A(1) extract 12); end measuredensity2; "ps" type:=readil(<:densimeter:>,1,2); A:=CALI(1):=CALI(2):=DENS(1):=DENS(2):=0; running:=true; "0470"for A:=A while running do begin mode:=0; for mode:=mode while mode=0 do begin reads(<:run mode:>,MTEXT); for i:=1 step 1 until 4 do if MTEXT(1) shift (-8) shift 8=real (case i of (<:initi:>,<:calib:>,<:measu:>,<:end:>)) then mode:=i; end; if mode<4 then begin if mode=1 then begin "0480" CALI(1):=readl(<:calibration value 1:>); DENS(1):=readr(<:standard density 1:>); CALI(2):=readl(<:calibration value 2:>); DENS(2):=readr(<:standard density 2:>); end else begin n:=readil(<:number of measurements:>,0,1000); delay:=readil(<:time between measurements (s):>,1,1000); i:=0; for i:=i+1 while i<=n and -,waitkey(delay) do begin data:=case type of (measuredensity1,measuredensity2); "0490" if mode=2 then write(out,<:<10>:>,<<dd ddd ddd>,data) else if mode=3 and A<>0 then write(out,<:<10>:>,<< d.ddd ddd d>, DENS(2)+A*(data**2-CALI(2)**2),<: g/ml:>); writeend; end i; if mode=2 then begin i:=readil(<:calibration 1 or 2:>,1,2); CALI(i):=data; DENS(i):=readr(<:standard density:>); "0500" end read calibration values; end mode 1 and 2; if CALI(1)<>0 and CALI(2)<>0 and mode<3 then begin A:=(DENS(1)-DENS(2))/(CALI(1)**2-CALI(2)**2); write(out,<:<10>calibration constant =:>, <<-d.ddd ddd d'-dd>,A); end; end else running:=false; end; "0510"end; "ps8""ct" Figure 3 "sj" att p pass alplot alplot started 8 07 76 18 52 40. to alplot titration=algol titrattxt list.yes program for operating a titration assembly "0520" 1 begin 2 integer stp,dstp,stpmax,range,channel; 3 real pH,pHendpoint,dml,titrant,buretteconstant,pHconstant,mlmax; 4 4 procedure movemotor(steps); 5 value steps; integer steps; 6 begin integer array M,A(1:8); 7 M(1):=8 shift 12; M(2):=steps; 8 waitanswer(sendmessage(<:spt4:>,M),A); 9 end movemotor; "0530" 10 10 real procedure readpH; 11 begin integer array M,A(1:8); 12 M(1):=0; M(2):=range shift 10+channel; 13 waitanswer(sendmessage(<:aic:>,M),A); 14 readpH:=pHconstant*A(1)/204.8*10**(range-3); 15 end readpH; 16 16 range:=2; channel:=12; pHconstant:=99.6; 17 reserveproc(<:spt4:>,0); "0540" 18 buretteconstant:=readrl(<:buretteconstant:>,1,200); 19 pHendpoint:=readrl(<:endpoint pH:>,0,13); 20 mlmax:=readrl(<:ml maximum:>,0,100); 21 dml:=readrl(<:ml resolution:>,0,mlmax); 22 stpmax:=mlmax*buretteconstant; 23 dstp:=dml*buretteconstant; 24 plotform(0,16,15); 25 plotadmini(0,mlmax,0,13,0); 26 pH:=readpH; 27 titrant:=if pH>7 then -1 else 1; "0550" 28 plotmove(0,pH); pendown; 29 for stp:=dstp,stp+dstp while 30 stp<=stpmax and pH*titrant<pHendpoint*titrant do begin 31 movemotor(dstp); wait(15); 32 pH:=readpH; plotmove(stp/buretteconstant,pH); 33 end; 34 end; algol end 115 titration buretteconstant = 135.12 "0560"endpoint pH = 12 ml maximum = 10 ml resolution = 0.05 end 294 finis from p alplot removed 8 07 76 20 11 38. Run time 33.25 s. "ef" ▶EOF◀