S E C T I O N S





C O N T E N T S

 

About DaqLinux
What is DaqLinux and what does it do?

 

Download
Download a copy and try it out.

 

User Guide
Description of DAQ operation and commands.

 

What’s New
Description of What’s New in DaqLinux.





User Guide

DAQ Users Guide
This page lists the DAQ Users Guide documentation.  This page is under continuous developement and will be improved as time permits.  I hope you can find the help you need in this page.  Send corrections, comments and additions to Don Carter.


DaqLinux is currently running on Scientific Linux SL release 3.0.9, RedHat 6.2, RedHat 5.2 and Microsoft Windows 98 systems.
 

You can download a copy and give it a try.

This software is provided as-is without any warranty and should be used at your own risk.  Let us know of problems and we will do our best to fix the bugs.




    Support
Email: carter@ohio.edu
Phone: (740) 593-1984
Fax: (740) 593-1436




                           DAQ

                                      Data Acquisition System



PC Data Acquisition Commands Quick Reference List:

    1.  a                           begin acquisition of ADC data
    2.  add                       add two data arrays channel by channel
    3.  cleartime              sets the expired acquire time to zero, must be in stop
    4.  clear                     initialize the values in a data array
    5.  command_files     files of DAQ commands
    6.  dcopy                   copy data array to another name
    7.  define                   define a data array
    8.  delete                   remove the definition of a data array
    9.  disk                      set the default disk number for data save and get
    10. drename               rename a data array
    11. gate                     set gates for replay or acquisition of data
    12. get                       get a data file from disk
    13. goni                     executes goniometer program
    14. help                     online help
    15. learn                    associates a name to a DAQ instruction set
    16. plot                      plot a data array
    17. prescale               [ Name | * ] [ value ]
    18. q                          show information about data arrays, memory, disk, and tag
    19. read                     reads array rump file
    20. rem                      adds remark to DAQ files
    21. replay                   standard replay of event mode data
    22. rgate                    set gates for replay or acquisition of data
    23. rplot                    old plot program for rump - now obsolete
    24. runfor                  specifies how many events the program will run for
    25. runtime                 sets the acquire time
    26. s                          stop acquisition of ADC data
    27. save                    save data arrays to disk
    28. sub                      subtract one data array from another channel by channel
    29. t0                        time zero for interrupt.c
    30. tag                       set the default tag number for data save and get
    31. vector                  pass data array and experiment parameters to interrupt.c
    32. verbose               displays debugging information
    33. write                    saves file in rump format

    User Supplied Functions:

    34. interrup                 processes each interrupt from ADC systems
    35. daquser                called by DAQ during plot and after each keystroke
    36. evuser                  called by DAQ when event mode buffers are full

    Command_files
    A. Variables
        a. Definitions
        b. User Variables
        c. Named Variables
        d. System Variables
    B. Initialization Commands
    C. Reverse Polish Mathmatical Expression Evaluator (&let)
    D. Integer and Logical Commands
    E. Floating Point Commands
    F. Output Commands
    G. Data Array Functions
    H. Conditional and Control Commands
    I.  Miscellaneous
    J. Functions
    K. Interrupts

          12 Input Router Setup                           OU Channel Devices            
          1.Inputs 1-12                                                         Channel Address 1
          2. OR Output                                                         Channel Address 2
          3. Strobe Output                                                    Channel Address 3
          4. General Setup                                                    Channel Address 4
                                                                                       Channel Address 5
          
Data Format                                                Channel Address 11                              
          Histogram Files
          Event Files


 


 

COMMANDS


1. a                               Back To
                                    DAQ List  Back to List

    a

    Begins data acquisition (analyzing).
     

2. add                             Back to List                       

    add <source> <dest>                                         eg. add file1 file2

    Adds data array <source> to data array <dest> channel by channel.
     

3. cleartime                   Back to List

          cleartime

          Sets the expired acquire time to zero.  Must be in stop.

4. clear                           Back to List

    clear <name> [<value>]                                      eg. clear data1 10

    Clears the array 'name' to zero unless the optional value is specified.
    Note:  clear *   clears all data files
     

5. command_files           Back to List

6. dcopy                          Back to List

    dcopy <source> <dest> [start <start channel>] [stop <stop channel>]

    eg. dcopy file1 file2 start 200 stop 300

    Copies data array source to array dest. Optional start and stop channels may
    be specified with keywords 'start' and 'stop' and must be followed by the
    appropriate channel numbers.
     

7. define                         Back to List

    define <arrayname> <length> [type <type>] [clear <initial value>]
              [prescale <prescale value>]

    Creates a named array in memory.

      arrayname:   the name of the array, 1-16 characters
      length:          the number of channels
      type:             the array type

    Defined types are:

        0 = linear (default)
        1 = 64 by 64 two parameter
        5 = rump
        6 = linear histogram cleared and saved at evsave
        7 = linear histogram saved at evsave
        9 = event mode auto_clear but no auto_saved. An automatic STOP, call to
              evuser.c, clear all array type 9, then automatic ANALYZE is issued.
      10 = event mode auto_clear and auto_saved
      999=event mode auto_clear and auto_saved

    Array types and prescale may be re-defined if the length of the array is the same as originally defined

    Types 10 - 255 are auto_saved as .\data\evt(disk)\arrayname.(type) where (disk) is the
    current disk number and (type) is the current type number.  After the save, the type
    number is incremented. Before each auto_save an automatic STOP is issued then the
    optional user function evuser.c is called to process the event_mode data. All defined
    arrays of type 10 or above are saved and cleared then an automatic ANALYZE is
    re-issued.

    Clear may be specified to preset all channels of the array to initial value.

    eg.  define psd 4096 type 1 clear 10
     

8. delete                         Back to List

    delete <name>                                        eg. delete data1

    Deletes the definition of array 'name' and returns the memory to the memory pool.
     

9. disk                            Back to List

    disk [number]

    Disk with no number parameter displays the current system default disk number.  If
    number is specified, the system default disk is set to number. The disk number is
    used by the get and save commands.  
        
     

10. drename                   Back to List

    drename <original name> <new name>                       eg. drename file1 file2

    Renames data array <original name> to data array <new name>.
     

11. gate                           Back to List

    gate [number] [lower] [upper]

    where:
              [number] is the gate number (0-150). If number is not specified all defined
                      gates are specified. If [number] is specified but no other parameters are
                      specified the current values for gate [number] are displayed.
              [lower] is the lower channel number for gate [number].
              [upper] is the upper channel number for gate [number].

    The use of the gates is dependent in the interrupt.c,evuser.c, daquser.c, and replay.c
    functions.  The standard DAQ function replay.c checks the gates and histograms
    [dest vector] at channel [sourc vector] if replaying [gate vector] and data [gate vector]
    is between [lower] and [upper] (normalized to the histogram array specified in the
    replay command).

    See help on replay for more information.
     

12. get                           Back to List

    get <name> [disk ####] [tag ####] [incr ####] [replace] [evfname.typ]

    Gets a data array from disk. The file is retrieved using the path:
         ./data/dsk####/tag####.dat
         or if the event file evfname.typ is specified:
         ./data/evt####/evfname.type (where #### is DISK number) 

    That is, the current directory's DATA.DIR directory will contain one or more
    dsk####.dsk or evt#### directories, each containing data files named tag####.dat
    or event files.  The disk and tag numbers are taken from the global values set by the
    'disk' and 'tag' commands.  The default disk and tag numbers may be overridden by
    using the 'disk####' and 'tag####' options.  

    It is important to remember the TAG NUMBER IS INCREMENTED BY ONE
    AFTER THE DATA IS RETRIEVED, unless the disk, tag number, evfname.typ
    option or 'incr ####' is used. If the disk or tag number is specified, the global tag
    number is NOT changed UNLESS 'incr ####' is also used. If the 'incr ####' option is
    used, the tag number will be incremented by #### after the data is retrieved in all
    circumstances.  

    The option replace will replace an existing file in memory with the new
    data if the size of the existing file is the same an the file being requested.
     

13. goni                         Back to List

    goni

    Executes goniometer program.
     

14. help                         Back to List

    help

    Provides online help.

integrate                       Back to List

    integrate array start stop

    integrate channels start to stop of array and return the sum in &return1

15. learn                       Back to List

    learn (commands terminated by #)

    Learn assigns commands entered to a single character string assignment.
    The command string is terminated with a # character.

    Examples:

                   learn "clr"
                   clear data1 123
                   clear data2 456#

                   learn "ddir"
                   "ls -l ./data"#
                   
                   learn "sav"
                   save data1
                   save data2#

loadint                         Back to List

            loadint NAME_OF_INTERRUPT_SERVICE_ROUTINE

            Command to select the desired interrupt service routine to use for this experiment.
            The names of the available interrupt service routines compiled into this version of DAQ
            can be displayed by typing loadint with no parameter.

            example:
                  loadint npcoinc2

overlay                       Back to List

            overlay histogram | vector

            Overlay the currently active plot with another histogram of the same length.

            The original plot is in black and the overlay plot is in color.  Only one additional
            histogram can be overlaid.  If a subsequent overlay command is issued, only
            the new overlay spectrum will be overlaid.  Plot data (sum, cursor counts etc.)
            are for the original spectrum that was plotted.            

16. plot (windows version)                        Back to List

             1.plot help menu         2.using a mouse in the help menu

    plot <name> [start <start channel>] [stop <stop channel>]
                        [overlay | over | ov <name2>]

    Displays array 'name'.

    If keyword 'start' is found, it must be followed by the start channel. 
    If keyword 'stop' is found, it must be followed by the stop channel.
    If keyword 'overlay' or 'over' or 'ov' is found, it must be followed by array 'name2'.

    Overlay, over or ov plots a specturm on top of another spectrum in a different color.
      
    While plotting a spectrum, a help menu is displayed when the '?' key is depressed.

    Help Menu ( '?' )               * Back to plot
    F5                            displays a single parameter
    F6                            displays 2 parameters ( 3-dimension projection )
    F7                            displays 2 parameters ( color contor )
    left, right, up &
       down arrow keys   move cursor
    control + arrow key  moves cursor slowly
    z                              zoom
    control + z                zooms slowly
    shift + z                    unzoom
    ,                               pan left
    <                             slow pan left
    .                               pan right
    >                             slow pan right
    End                         autoscale
    Page Up                  sets start channel to cursur channel
    Page Down             sets stop channel to cursor channel
    a                             begin accepting data
    s                             stop accepting data
    1, 2, 3, 4                displays the first, second, third or fourth quarter of display
                                  (For Example:  If you divide the screen into four equal sections
                                  and the part you wish to examine is in the third quarter press '3'.)
    Home                    displays the entire spectrum
    +                           multiplies the Y scale by 2
    -                           divides the Y scale by 2
    l                            linear display
    shift + l                  log display ( 100.0  log10 (counts) )
    c                           clear DISPLAYED spectrum to 0
    d                           set color dot size for color contour plot
    g                           displays no grid
    shift + g                 displays grid
    p                           changes 3D perspective
    m                          dispalys mean and standard deviation (with fit option)
    t                            change preset acquire time (0 = infinite)
    alt + c                   enter calibration data
    alt + f                    linear fit
    shift + r                 begins new fit
    Enter                    continue
    ~                          simulate runfor complete (set oual_terminate = 1)
    control + x, alt + x, or esc                  exits plot
    control + F1, F2, F3, F4, F9, F10     saves plot in F1, F2, F3, F4, F9, F10
    F1, F2, F3, F4, F9, F10                    restores saved region

    Using a Mouse in the Help Menu             * Back to plot
    * move the mouse to display the cursor
    * move the cursor near the double lines at the top of the screen to display the menu
    * the menu contains the following commands:
       Exit, Fit, Zoom, Pan, Cursor, Cnts, Auto, Grid, Home
    * For the following: L -denotes left mouse button, and R -denotes right mouse button
    * To use the below, place cursor on the command and click L or R button
    Exit          L - exit
    Fit            L - refresh screen
    Zoom       L - expands screen, R - contracts screen
    Pan          L - pans left, R - pans right
    Cursor     L - turns off cursor
    Cnts         L - full scale reduced, R - full scale increased
    Auto        L - autoscale
    Grid         L - toggles between grid on and off
    Home       L - home, R - help
     

16. plot (linux version)                          Back to plot              

         plot <name | vector>
                    [start <start channel>]
                    [stop <stop channel>]
                    [overlay | over <name2>]
                    [loops <# plot refreshes then exit>]
                    [geometry <X-window geometry>]
                    [ex1 | ex2 | ex3 | ex4 <program name (no extension) to execute when pressed>]
                    

         Displays array 'name' in an new window created for the plot.

         If keyword 'start' is found, it must be followed by the start channel. 
         If keyword 'stop' is found, it must be followed by the stop channel.
         If keyword 'overlay' or 'over' is found, it must be followed by array 'name2'.
           overlay or over plots a specturm on top of another spectrum in a different color.
         If keyword 'loops' is found, it must be followed by the number of refresh loops to plot before exiting.
         If keyword 'geometry' is found, it must be followed by the X windows window geometry specification.
         If keyword 'ex[1-4]' is found, it must be followed by the command to execute if the button is pushed.
            example:  plot tof ex1 clr
            would define the button ex1 to execute clr when pushed.

         The plot window displays in real-time the histogram for array 'name'.  The system will only display a
         single spectrum real-time.  If another plot command is executed any previous plot windows will become
         'STATIC' meaning that the data will not be updated in real-time.  Only the last plotted spectrum will be
         real-time.

         The plot window contains the following information and functionality...
         The window title (upper left) is displayed as the computer name:spectrum name.
         Line 2 contains a row of buttons followed again by the machine name: spectrum name.
         'Quit' will remove the plot.
         'Ex1' will execute command 'Ex1' when pressed (or whatever Ex1 was set to by parameter ex1)
         'Ex2' will execute command 'Ex2' when pressed (or whatever Ex2 was set to by parameter ex2)
         'Ex3' will execute command 'Ex3' when pressed (or whatever Ex3 was set to by parameter ex3)
         'Ex4' will execute command 'Ex4' when pressed (or whatever Ex4 was set to by parameter ex4)
         The default function of Ex1, Ex2, Ex3 and Ex4 is to zoom the display to the 1,2,3,4th quarter
             of the screen.
         'Home' will display the entire spectrum autoscaled
         'Auto/L' will toggle between Linear Autoscale and Log y-axis scales.
         'Ydn' will fix the Y scale down by a factor of 2
         'Yup' will fix the Y scale up by a factor of 2
         'Zoom' will increase the start channel and decrease the stop channel by about 10%
         'UnZoom' will decrease the start channel and increase the stop channel by about 10%
         'PanL' will decrease the start channel and decrease the stop channel by about 10%
         'PanR' will increase the start channel and increase the stop channel by about 10%
         'Ref' will toggle between 2 views of a 2 parameter 3-dimensional plot, contour or projection.

         The next line on the plot displays:  MaxCounts = Maximum Y-axis value, Count Rate
             in counts per second of the displayed channels, the Sum of the displayed Y channels
             and the last number is the total number of channels displayed on the X-Axis.

         The bottom line of the plot displays the X-axis start channel, The Y-value of the channel
             under the cursor that is moved by the mouse, followed by the X-axis stop channel.

         To zoom a region...
          to set the start channel to the current mouse position, push the left mouse button
          to set the stop channel to the current mouse position, push the right mouse button
          or depress left mouse button starting at left of desired region and with the mouse button
          depressed drag the line to the right of the desired region, then release the left button
          to zoom into the desired region.

17. prescale                    Back to List

         prescale [ Name | * ] [value]

         prescale = 0 : Do not do auto prescale.
         prescale > 1 : If a data point in the array reaches full scale,
                              all data in array is divided by 2 and the prescale is doubled.

18. q                              Back to List

    q

    Displays the currently defined arrays, lengths and types.

rcmd                    Back to List


      Alters the spectral headings of [rump].rbs files.

      rcmd [defined filename] [commands and values]

      commands:             values(units):
      [filename]               "text"           set filename
      [date]                     "text"           date string
      [ltct]                       "text"           live time, clock time information                                                       
      [id]                         "text"           identifier string                      
      [e0]                        value           incident energy in MeV                                                         
      [beam]                    value           follow format of  4He++
      [q]                          value           total accumulated charge (uC)                       
      [current]                  value           average beam current (nA)                          
      [conv]                     value value   keV / channel and offset             
      [first]                       value           channel number of  first data point                         
      [fwhm]                    value            detector resolution (keV)                                  
      [geom]                    value            geometry identifier
                                     valid values: General = -1 | Cornell = 0 | IMB = 1
      [phi]                        value            detector angle (degrees)
      [theta]                     value             target angle (degrees)
      [psi]                        value             geometry dependent angle (degrees)                              
      [omega]                  value             detector solid angle (mSr)                     
      [corr]                      value             random correction factor                     
      [npt]                        value             number of data points
      [show]                                         displays current information of  [filename]

      Example:     rbs mev 3.04 charge 10 conv 8.04 34.5

      READ init.daq to examine system setup.

      <RET> for command prompt.


19. read                        Back to List

    read

    Gets and reads a rump file from disk.
     

20. rem                         Back to List

    rem comment

    Usually used to enter comments into *.daq command files.

    Example:

      rem this is a setup file
      rem used to setup daq for
      rem the experiment
       

21. replay                     Back to List

    replay <event vector> <histogram vector>

    Replays the events from <event vector> and histogram the vector
    <histogram vector>. Both <event vector> and <histogram vector> may be
    specified by the vector number or the associated array name specified in the vector. 
     
    The vector <histogram vector> is histogrammed for each event in <event vector>.
    The channel number that is histogrammed is then checked against the lower and
    upper channel numbers for each gate that has a gate vector equal to <event vector>.
    If this gate is satisfied, the corresponding event is read from source vector and the
    array dest vector is histogrammed. The vectors gate vector, source vector, and dest
    vector as well as the lower and upper channel numbers corresponding to the gate are
    defined by the gate command.

    See help on gate for more information. Also see help on command vector.
     

22. rgate                       Back to List
            
Seegate.
         rgate [number] [lower] [upper] [gate vector] [sourc vector] [dest vector]

    where:
              [number] is the gate number (0-150). If number is not specified all defined
                      gates are specified. If [number] is specified but no other parameters are
                      specified the current values for gate [number] are displayed.
              [lower] is the lower channel number for gate [number].
              [upper] is the upper channel number for gate [number].
              [gate vector] is the event mode vector on which this gate is set, this may be the
                      array name or the vector number.
              [sourc vector] is the event mode array used as input data if this event satisfies
                      the gate, this may be the array name or the vector number.
              [dest vector] is the data array to histogram if the gate is satisfied, this may be
                      the array name or the vector number.

    The use of the gates is dependent in the interrupt.c,evuser.c, daquser.c, and replay.c
    functions.  The standard DAQ function replay.c checks the gates and histograms
    [dest vector] at channel [sourc vector] if replaying [gate vector] and data [gate vector]
    is between [lower] and [upper] (normalized to the histogram array specified in the
    replay command).

    See help on replay for more information.
       

23. rplot                       Back to List

    rplot

    Old plot program that was used in the rump only version of  DAQ.
    Now Obsolete.

24. runfor                     Back to List

    runfor [count]

    Runs for [count] events.  Initailizes oual_runfor to be used by interrup.c.  
    $done.daq will be executed when oual_terminate is set to one by interrup.c.

25. runtime                     Back to List
      
runtime

         Sets the acquire time.

         Enter the acquire time with the command runtime, or after the command
         runtime is entered you will be asked to enter the acquire time.
         Either method is valid.

26. s                               Back to List

    s

    Stops data acquisition.
     

27. save                          Back to List

    save <name> [disk ####] [tag ####] [incr ####] [stop ####] [rump]

    Writes a data array to disk. The file created is placed using the path:
         ./data/dsk####/tag####.dat

    That is, the current directory's data directory will contain one or more
    dsk#### directories, each containing data files named tag####.dat. The disk
    and tag numbers are taken from the global values set by the 'disk' and 'tag' commands.  
    The default disk and tag numbers may be overridden by using the 'disk ####' and
    'tag ####' options.  

    It is important to remember the TAG NUMBER IS INCREMENTED BY ONE
    AFTER THE DATA IS SAVED, unless the disk or tag number option or 'incr ####'
    option is used.   If the disk or tag number is specified, the global tag number is NOT
    changed UNLESS 'incr####'is also used.  If the 'incr ####' option is used, the tag number
    will be incremented by #### after the data is saved in all circumstances.   <name> is the
    name of the data array to be saved.  If the name is  *  all event mode arrays
    (type 10 or above) are saved.  

    [rump] saves data in rump format.
     
    If the file already exists, an extension is automatically appended to the file name to
    prevent overwriting previous data files of the same name.  A warning message is
    also generated on the terminal window.

28. sub                           Back to List

    sub <source> <dest>                                                    eg. sub file1 file2

    Subtracts data array <source> from data array <dest> channel by channel.
     

29. t0                             Back to List

    t0 [number]

    t0 with no number parameter displays the current system t0 number. If number is
    specified, the system t0 is set to number. The t0 number may be used by the
    interrupt.c function.
     

30. tag                                Back to List

    tag [number]

    Tag with no number parameter displays the current system default tag number. If
    number is specified, the system default tag is set to number. The tag number is used
    and modified by the get and save commands.
     

31. vector                      Back to List

    vector <number> <name> [conversion gain] [uld] [lld] [offset]

      eg. vector 10 data1 4096 2999 2000 2000

    If no parameters are specified, a list of defined vectors is displayed.  Associates
    interrupt routine vector number <number> with previously defined array <name>.
    The following parameters are optional and position dependent:

      [conversion gain] The conversion gain to be associated with this data.  
                Possible values are 4096(default), 2048, 1024, 512, 256, 128, 64.
      [uld] The digital upper level discriminator to be associated with this vector.
                The default is the last channel of the array.
      [lld] The digital lower level discriminator to be associated with this vector.  
                The default is 0.
      [offset] The digital offset to be associated with this vector. This allows
                offsetting the starting data channel to channel 0 of the array.  
                The default is 0.

32. verbose                    Back to List

    verbose [0,1]

    0 = Quiet
    1 = Verbose

33. write                        Back to List

    write

    Saves file in rump format.
    If type 5, Ft = .rbs else .cdf.


     

User Supplied Functions:

34. interrupt               
  Back to List
      
interrupt.c

         The user supplied function that is called by DAQ for every interrupt that is
         received from the ADC's.  You should begin by modifying an existing
         interrupt.c routine to suite your needs.

         You should write/keep your own interrupt functions in your
         own directory under some other name ( eg.  int001.dec ).  When you
         wish to generate a version of DAQ that employes your version of the interrupt
         routine you should copy your interrupt to d:\daq\interrupt.c along with your versions
         of evuser.c  and daquser.c.  When you have done this, you can go to directory d:/daq
         and execute the command tc daq.prj.  You should then issue a <alt>c m (make exe. file).
         This will build your version (daq.exe) that you should copy and rename to your own
         directory.  Remember that the files interrupt.c, daquser.c, evuser.c and daq.exe are names
         used by others in the d:\daq directory. The main DAQ routines will be kept current in this
         directory for all users of DAQ.


35. daquser                   Back to List

         daquser.c

       A user supplied function that DAQ will call after each plot refresh or after each keystroke
         is entered.  This function can be useful if the user wishes to periodically check the progress
         of the experiment or possibly do background analysis of incoming data.


36. evuser                      Back to List

      evuser.c

        A user supplied function that DAQ will call after the event mode buffers fill.  When this
        happens, the DAQ system will issue a STOP to stop more data from coming in from the
        ADC's and then call evuser.c so it can process the data if desired.  After the call to evuser.c
        all arrays of type 10 or above are saved to disk as .\data\evt(disk)\name.(type), the type
        numbers are incremented, the arrays of type 9 or greater are cleared, and ANALYZE is
        issued to begin acquiring data.  Also see help on define.

        If you have no need for this function, you need to supply a default routine evuser.c that does
        nothing but return.  See help on interrupt.c for information on building DAQ with user supplied
        functions and interrupt routines.


 


 

                                                           command_files


Command files can be created by editing a file <filename>.daq and placing             Back to List
commands in the file.  Command files may contain DAQ main commands, names of
other command files, or DOS commands.                                            

    DAQ searches for commands as follows:

      1. known internal commands (define, clear, get, etc.)
      2. <command>.daq command files in the current directory
      3. DOS commands

          eg. file SETUP.DAQ could contain:

            define data1 1024
            define data2 1024
            vector 1 data1
            vector 2 data2
            clr
            dir

          file clr.daq could contain:

            clear data1
            clear data2

        The result when 'setup' was typed would be:

        1. data1 defined as 1024 channels
        2. data2 defined as 1024 channels
        3. array data1 assigned to vector 1
        4. array data2 assigned to vector 2
        5. the command file clr.daq is executed, clearing data1 and data2
        6. the DOS dir command is executed

    Note:  Only main commands can be executed during data acquisition.
     

A. Variables                                              Back to List

    Each recursion level has 20 variables defined as &0 to &19. If you call a subroutine
    or function, its variables are different from the calling function variables. The
    command line level may call a function that calls 3 additional levels of functions. If
    you prefer to use names for variables you can use "learn" to assign a character string
    to a &n variable.

    For example:  learn "sum" &1#       will equivalence the name sum to &1.

    You should delete any learned variables before exiting the function,
    eg. (delete"sum"). Since each recursion level has a different set of variables, each
    assigned the names &0 - &19, a method of directly referencing a specific variable
    at a specific recursion level is employed. Recursion level 0 (command line level)
    variables &0 - &19 may be explicitly referenced as variables &100 - &119.
    Level 1 (first level of function or subroutine) variables are referenced as variables
    &200 -&219. Similarly for all levels up to &500 - &519 at the uppermost level.

    Three types of variables are supported:

        1. String variables may contain up to 15 characters.
        2. Integer variables may contain 15 digits.
        3. Floating point numbers must be represented in 15 characters.

    The type of the variable is set when the variable is initialized.  Initialization is
    done using the &move or &[I] [f] [ ] read commands.

    For example:

      &move 1 &0             would define &0 as an integer = 1
      &move 1.0 &0          would define &0 as a floating value 1.0
      &move abcdef &0     would define &0 to the string 'abcdef'

    There are three different &read commands (read from the keyboard):

      &read     will read a string
      &iread    will read an integer
      &fread    will read a floating value

    The precision of the floating point variables is set with &precision n where n is the
    number of places after the decimal point to keep.  

    The command &? will display a list of all variables and their current values.
     

    a. Definitions                                      Back to List

    &n      denotes one of the user variables

    &&n   this notation may be used to reference a variable by a variable

        For Example:

          &move 100 &3
          &move 200 &4
          &move 3 &1
          &type &&1 (this will type the contents of &3 (100))
          &add 1 &1
          &type &&1 (this will type the contents of &4 (200))

    token     denotes a user variable, system variable or constant expression

    For example:

      "&move token &n" indicates that the command &move can move any option
      of token to a system user variable such as &move &0 &1, &move no &0,
      &move &tag &0
       

    b. User Variables                               Back to List

    level 0 => &0 - &19 (&100 - &119)
    level 1 => &0 - &19 (&200 - &219)
    level 2 => &0 - &19 (&300 - &319)
    level 3 => &0 - &19 (&400 - &419)
    level 4 => &0 - &19 (&500 - &519)
     

    c. Named Variables                            Back to List

    The command interpreter operates most efficiently when variables are specified
    using the &nn format when nn denotes an integer and the variable may be directly
    referenced using nn as an index to the variable array. This eliminates the search
    required to match a variable name with a variable location. Any programs that must
    be coded as speed efficient as possible should be the &nn variable type.

    If a maximal speed is not necessary and readability is more important, variables may
    be assigned names that are used as pointers to the real variables &nn. DAQ then
    searches the variable name table for a match with the user variable &user_defined
    variable then uses the index as the variable &index. The command to define variable
    names is &var or &vars. The format for &var(s) is:
                                                       &vars [nn] [string1] [nn] [string2] . . .
    Where :
    The first [nn] may optionally be used to specify the variable nn index point
    (defaults to 0) and assigns string1 to variable &nn. Optionally more [nn] index
    points and [strings] may define more strings to [nn] (default = sequential) to
    &nn variables. This is most easily described by examples of the various forms.
    The programmer must be aware that the &var command is assigning equivalence
    strings to the system variables &0 - &19, not defining variables.

    Here are some valid forms:
             &vars alpha beta charlie
                        &alpha = &0, &beta = &1, &charlie = &2
             &var 10 counter
                        &counter = &10
             &var alpha beta 10 counter start 19 dummy
                        &alpha = &0, &beta = &1, &counter = &10, &start = &11,
                        &dummy = &19

    Note that these variable definitions are dynamic and are known by name only to the
    command file executing on this recursion level. This means that re-entrant programs
    may be written (a function may call itself) if local variable definitions &0 - &19 are
    used (or their equivalence named variables). These variables may still be directly
    referenced using the &1nn where 1 denotes the recursion level. Global or common
    variables (variables know by all routines) should be defined with the &global
    command. Global variables will be defined starting at &119 and count down by
    default instead of up as in the &var command. The local (&var) table is searched
    before the global table is searched so if a locally defined variable has the same name
    as a globally defined variable the local name dominates.

    Below are some examples

                           &global first second third
                                    &first = &119, &second = &118, &third = &117
                           &global first second third 10 v10 v9 5 five
                                    &first = &119, &second = &118, &third = &117,
                                    &v10 = &110, &v9 = 109, &five = &105

           &stack     Display the current stack values
           &?           Displays contents of variables
           &$           Displays current names associated with variables

    d. System Variables                           Back to List

    &anal             = 1 if in analyze mode
    &disk             = current DISK value
    &inplot           = 1 if currently plotting a spectrum, else 0
    &level             = current recursion level
    &nextlevel      = (current recursion level + 2) * 100
    &nstack         = number of stack elements on stack
    &sofint           = current hex (6 bit) value of interrupt inputs
    &t0                = current value of T0
    &tag              = current TAG value
    &date            = system date and time string
    &hostname    = system hostname
    &fullname      = system hostname including domain
     

B. Initialization Commands                     Back to List

    &move token &n    initialize the variable &n with token and set variable type
                                  dependent on token (12 = integer, 12.0 = float, abc = string)
    &read &n               read a string from keyboard into &n
    &iread &n              read a integer from keyboard into &n
    &fread &n              read a floating point value from keyboard into &n
     

C. Reverse Polish Mathmatical Expression Evaluator (&let)

    &let &n [=] token [token | oper] . . .                                         Back to List

    &let evaluates mathmatical expressions similar to an RPN (Reverse Polish Notation)
    calculator. The process begins from left to right with the first token and places it on
    the 10 element stack. For all succeeding [token | oper]'s; if not a known operation,
    the token is placed on the stack (last in, first out) else if it is a known operation, the
    operation is performed on the lower element(s) of the stack (bottom element for
    unary operations, bottom 2 elements for binary operations). The stack is then
    collapsed with the result of the operation left at the bottom of the stack. The type
    of operation (integer or floating point) is determined by the type currently at the
    bottom of the stack for +, -, *, /, and sqrt. Otherwise the type is float.

    Note:  Tokens may not be the result of functions.
               i.e.  & .LLD  &name, etc...

    A list of known operations:

      +            add I, F
      -             subtract I, F
      *             multiply I, F
      /              divide I, F
      sqrt         square root I, F
      **           power F
      sin           sine F
      cos          cosine F
      tan           tangent F
      log           log base e F
      log10       log base 10 F
      exp          e ** n F
      pow10    10 ** n F
      float         set type = floatF
      int            set type = int I
      pop          pop stack element into variable

    For Example:

      to perform the algebraic x = sqrt ( ( a + 10 ) * ( b * c ) )
                  &let &x = &a 10 + &b &c * * sqrt

      to convert variable x to type float
                 &let &x = &x float

      to assign y the value of x
                 &let &y = &x

      to perform the algebraic avg = ( a + b + c + d + e )/ 5
                1. &let &avg = &a &b + &c + &d + &e + 5 / or
                2. &let &avg = &a &b &c &d &e + + + + 5 / or
                3. &let &avg = &a &b + &c &d + &e + + 5 /
                Note: Solution 1 might be considered better because the stack only
                needs to be two elements high max.  Solution 2 requires the stack
                to be five elements high. The stack is ten elements high.
       

D. Integer and Logical Commands         Back to List

    &add token &n         integer add token to &n
    &sub token &n          integer subtract token from &n
    &mul token &n          integer multiply &n by token
    &div token &n           integer divide &n by token
    &and token &n          logical and &n with token
    &xor token &n          logical exclusive or &n with token
    &or token &n            logical or &n with token
    &mod token &n        &n = &n mod token (remainder)
    &add$ token &n       concatenate (add string)  token to &n
    $addi$ token &n       concatenate (add character) the ascii character of value token to &n

E. Floating Point Commands                   Back to List

    &add token &n       floating add token to &n
    &sub token &n       floating subtract token from &n
    &mul token &n       floating multiply &n by token
    &div token &n        floating divide &n by token
    &precision n          set number of decimal digits to n (valid range 1 - 9)

    Format Conversion Commands

    &int &n         convert &n to type integer
    &float &n      convert &n to type float
    &string &n    convert &n to type string

F. Output Commands (some DOS only)                               Back to List

    &type token token token       types tokens on display
                                                 Example: &type "The sum is" &1
    &cat token token                   concatenates tokens (type with no spaces or returns)
                                                 Example: &cat "DSK" &1
    &log token token token ...       print tokens into the daq.log file as a note
    &nl                                        prints a carriage return
    &clrscr                                  clears screen
    &gotoxy tokenx tokeny          moves text curser to x,y (1,1 = top left)
    &opentop                              creates window in top half of screen
    &openbottom                        creates window in bottom half of screen
    &typew                                 same as &type except types in opened window
    &catw                                   same as &cat except types in open window

    Colors for following commands:

      0 = Black          1 = Blue           2 = Green        3 = Cyan         4 = Red           
      5 = Magenta      6 = Brown       7 = LtGray       8 = DkGray    9 = LtBlue   
      10 = LtGreen   11 = LtCyan    12 = LtRed       13 = LtMagnta
      14 = Yellow     15 = White      16 = Blank

    &textattr token                   sets text attributes (Bbbbffff)
    &textcolor token                sets text color
    &textbackground token      sets background color
    &textmode token               1 = C40, 3 = C80, 64 = EGA43
     

G. Data Array Functions                          Back to List

    &peek array_name token          function value is token channel of array array_name
                                                  Example: "&move &peek data 10 &1" will move the
                                                  contents of array data channel 10 to &1
    &poke array_name token1 token2     write into array_name channel token1 the value
                                                   of token2;  Example: "&poke data 10 100" will write
                                                   100 at channel 10 of array data
    &peek$                                    peek value of element of string
         eg.  &move abcd &0, &move &peek$ &0 1 &1, &type &1, => 98, decimal value for 'b'

    &_length token                        function value is length of array token
    &_type token                          function value is type of array token
    &_uld token                            function value is uld of array token
    &_lld token                             function value is lld of array token
    &_offset token                        function value is digital offset of array token
    &_shift token                          function value is shift count for conversion gain
    &_prescale token                    function value is prescale for array token
    &_ndat token                          function value is num data pts in fit for array
    &_cg token                             function value is conversion gain for array token
                                                   Example: &move &_prescale data &1 will set &1
                                                   to the prescale value for array data
     

H. Conditional and Control Commands      Back to List

    &goto [int] label [lable2]         transfer control to the line that is label (Labels must
                                                  begin with a ; and be the only entry on the line. They
                                                  must also not be an integer, i.e. a label cannot be ;2.)

                           Example:         &goto loop
                                                    :
                                                   ;loop

    A computed goto is also available by specifying an integer variable after the &goto
    command. In this form the [int] label will be the destination label. [int] = 1 for the
    first label, [int] = 2 for the second label etc. [int] = 0 will attempt to go to label ;0.

             For Example:
         
                             &goto &1 first secnd third
                                      will goto first if &1 = 1
                                      will goto secnd if &1 = 2
                                      will goto third if &1 = 3
                                      will print error if &1 > 3 (number of labels)and continue
                                                    with statement following the computed goto

                              &if token1 oper token2 {
                                                                      statement1
                                                                      statement2
                                                                       . . .
                                                                     }
                              or . . .
                              If token1 oper token2 statement(s)
                                       valid oper are:
                                               .gt.      ">"      token1 greater than token2
                                               .lt.       "<"      token1 less than token2
                                               .gteq.  ">="    token1 greater than or equal to token2
                                               .lteq.   "<="    token1 less than or equal to token2
                                               .eqgt.   "=>"   token1 greater than or equal to token2
                                               .eqlt.    "=<"   token1 less than or equal to token2
                                               .neq.    "!="   token1 not equal to token2
                                               .neq$.  "!==" (string) token1 not equal to (string) token2
                                               .ne.      "!="    token1 not equal to token2
                                               .ne$.    "!=="  (string) token1 not equal to (string) token2
                                               .eq.      "="     token1 equal to token2
                                               .eq$.    "=="   (srting) token1 equal to (string) token2

                         &ifgtzero &n statement(s)       execute statements if &n greater than zero
                                                                       (multiple statements are allowed on a line,
                                                                        but if one of the statements is &type or &cat
                                                                        it must be the last statement on the line)
                         &ifgteqzero &n stmt(s)            greater than or equal to zero
                         &ifltzero &n statement(s)         less than zero
                         &iflteqzero &n statement(s)     less than or equal to zero
                         &ifzero &n statement(s)           zero
                         &ifnotzero &n statement(s)      not zero

                         &ifdef token statement(s)         if array token is defined
                         &ifndef token statement(s)       if token array is not defined

                         &ifeq token1 token2 stmt(s)    if (string) token1 equals (string) token2
                         &ifneq token1 token2 stmt(s)  if (string) token1 does not equal (string) token2

                        &ifgt token1 token2 stmt(s)     if token1 is greater than token2
                        &iflt token1 token2 stmt(s)      if token1 is less than token2
                        &ifgteq token1 token2 stmt(s) if token1 is greater than or equal to token2
                        &iflteq token1 token2 stmt(s)  if token1 is less than or equal to token2
                        Example: &ifneq &1 100 &add 1 &1 &goto -lpoop

                         &wtkbd                                  wait for keypress at keyboard
                         &ifnkbd statement(s)               executes statement(s) if no keys pressed
                         &ifkbd statement(s)                 executes statement(s) if keys pressed

                         &ret [param] [param]  . . .       return from function or exit
                                                                        (parameters are returned LIFO on stack
                                                                        and are obtained by using &let &n = pop)
                        &ret[stackop] [stackop] . . .    (may optionally return paremeters LIFO on stack)

I. Miscellaneous                                        Back to List

    &sleep token              wait for token seconds then return
    &delay token              wait for token milliseconds then return
    &usleep token            wait for token microsends then return

    &clrstack                   set number of parameters on stack equal to zero
    &mask                       prevents software interrupts from being processed
    &unmask                   allows software interrupts to be processed ($intn.daq)

    &return1                    variable that some commands return a result
                                    eg: integrate e 10 20 will return &return1 = sum of e channels 10-20

    &in addr fun               reads channel device e.g. &move &in 1 2 &0
    &out addr fun &n        output &n to channel device addr function fun

    &inport port                reads io port eg. &move &inport 796 &0
    &outport port &n        output &n to io port eg.&outport 796 0 

    Comments can use the command "rem" or begin with a ;
     

J. Functions                                              Back to List

    When calling a function parameters can be passed. These parameters are passed to
    the function starting with variable &1...&n with &0 containing the number of
    parameters passed. For example, if a function was written to integrate an array from
    starting channel to stopping channel and was called as "integrate array 100 200"
    when the function integrate was invoked &0 would = 3, &1 = array, &2 = 100, and
    &3 = 200.
     
    Functions must be edited as filename.daq
     

K. Interrupts                                             Back to List

    Interrupts are provided to respond to real time control events. At present two
    different types are provided. The OU channel controller has 6 BNC connectors
    that are labeled $int0 - $int1. These connections will initiate DAQ execution of the
    corresponding files named $int0.daq - $int5.daq when the following conditions are
    met.

    1) The interrupts must be "unmasked" using the &unmask command.
    2) The input must be pulled to ground.

    Another interrupt can be initiated using the "runfor" command. This command can
    be used to count a certain number of events in the DAQ adc interrupt response
    program and initiate execution of the file $done.daq when this count equals a
    specified number. The runfor command sets the global variable oual_counter. When
    oual_counter reaches a predetermined value the interrupt.c program sets global
    variable oual_terminate = 1 and this will initiatw the $done.daq program if the
    interrupts are not masked (&mask and &unmask commands respectively).

    Upon receipt of an interrupt ($intn.daq of $done.daq) DAQ will issue a stop "s"
    command and a "&mask" command to prevent further data from being processed
    and also to prevent more interrupts. The interrupt service routines
    ($intn.daq or $done.daq) must issue an "a" command to begin data acquisition again
    (if desired) and also an "&unmask" command before exiting to allow further interrupts.


    ___________________________________________________________________________________


    Example command language program fun3.daq

     
    &global flag pos_decay neg_decay search
    &vars index start stop fun fun1 10 dx y x z1 z2 starty startx resp
    &precision 7
    &if &flag .eq$. Undefined {
      &let &pos_decay = 6.28
      &let &neg_decay = 6.28
      &move defined &flag
      }
    &if &index .gt. 0 {
      &let &search = &index
    ;scan
      &if &&search .eq$. decay {
        &type enter positive decay...
        &fread &pos_decay
        &type enter negative decay...
        &fread &neg_decay
        &if &index .eq. 5 {
          &type assuming &start &stop &fun
          &goto have_decays
          }
        &goto get_start
        }
      &sub 1 &search
      &if &search .gt. 0 &goto scan
      }
    ;
    &if &index .neq. 4 {
      &add 1 &index
      &goto &index get_start get_stop get_fun get_fun1
    ;get_start
       &type enter start value ...
       &fread &start
    ;get_stop
       &type enter stop value ...
       &fread &stop
    ;get_fun
       &type enter function...
       &read &fun
    ;get_fun1
       &type enter function...
       &read &fun1
       }
    ;have_decays
    &let &start = &start float
    &let &stop  = &stop  float
         &let &index = &index int
    &if &stop .lteq. &start {
       &type Error:(fun) start must be less than stop
       &goto get_start
       }
    ;
    &let &dx = &stop &start - 63.0 /
    &ifndef &fun define &fun 4096 type 1
    ;
    &type Computing...
    &let &x = 0
    &let &y = 0
    &let &startx = &start
    &let &starty = &start
    ;loopy
      &if &starty .gteq. 0.0 {
        &let &z1 = &starty &fun1 1.02 + 100.0 * 0.0 &starty - &stop / &pos_decay * exp *
        }
      &if &starty .lt. 0.0 {
        &let &z1 = &starty &fun1 1.02 + 100.0 * &starty &stop / &neg_decay * exp *
        }
    ;loopx
     &ifkbd {
    ;* plot &fun
       &type ENTER (again, exit or c/r=continue)
       &read &resp
       &if &resp .eq$. "exit" &ret
       &if &resp .eq$. "again" &goto get_start
       }
      &if &startx .gteq. 0.0 {
        &let &z2 = &startx &fun 1.02 + 100.0 * 0.0 &startx - &stop / &pos_decay * exp *
        }
      &if &startx .lt. 0.0 {
        &let &z2 = &startx &fun 1.02 + 100.0 * &startx &stop / &neg_decay * exp *
        }
      &let &index = 64 &y * &x +
      &let &z2 = &z1 &z2 *
      &if &z2 .gt. 32760.0 &let &z2 = 32760.0
      &let &z2 = &z2 int
      &poke &fun &index &z2
      &let &startx = &startx &dx +
      &add 1 &x  &move 0 &x
      &let &startx = &start
      &let &starty = &starty &dx +
      &cat .
      &if &y .lt. 64 &goto loopy
    ;plot &fun
    &ret

 


 

12 Input Router Setup


 

1. Inputs 1 - 12                                           Back to List

    These inputs trigger internal 6 ns monostables. Each input is AC coupled width and
    terminated in 50 Ohms. Each input will trigger on > 4 Volts and 50ns width or > 2 Volts
    if the input is > 100 ns wide. A 552 B slow output is fine.

                                                Figure to be inserted here.

2. OR Output                                             Back to List

    Each monostable output is "OR"ed and inverted to produce an output to view during
    setup to see how long the monostables are triggered.

                                              Figure to be inserted here.

3. Strobe Output                                               Back to List

    The strobe output is the pulse that shifts the contents of the router monostables into
    the FIFO with ADC data.

                                              Figure to be inserted here.

4. General Setup                                        Back to List

    Trigger the router with the positive edge of a logic signal that happens when this
    detector is fired.  The general setup requires that the first ADC read out will also
    read the contents of the route FIFO. Make sure that the route monostable is true
    in all cases when the strobe output occurs.  The strobe output of the router will
    occur ~ 1ns after the strobe to the ADC unless the ADC is busy with another
    detector.

                                                   Figure to be inserted here.

 



                               Data Format



Histogram Files                                                 Back to List
     ./data/dsknnnn/tagnnnn.dat
     All are I8 format.

     Record #
         1         Disk  Tag  Start  Stop  Date  Time
         2         CH0  CH1  CH2  CH3  CH4  CH5  CH6  CH7  CH8  CH9
         3         CH10  CH11  CH12  CH13  .  .  .


Event Files                                                         Back to List
     ./data/evtnnnn/fn.nnn

     Record #
         1         Disk  Tag  Start  Stop  Date  Time
         2         #events  event1  event2  .  .  .  event9
         3         event10  event11  .  .  .

         *  Each event word is a sum of (4096*ADC#) + the 12 bit digitized value.
              The digitized value can be extracted as: value = event & 0xfff;
              The ADC# can be extracted as: adc = (event & 0x7000) >> 12;


         **  Date and Time are integer coded as
              Date = (10000 * years past 1900) + (100 * month) + (day of month)
              Time = (10000 * hour) + (100 * minute) + (seconds



                                                      OU Channel Devices



Use $in and $out to communicate to channel.

Channel Address 1

    Analog Input Module                                                                            Back to List
    16 Independent Single Ended Analog Inputs

    ICEOS I/O Format
                   &IN  1  Input
                                Where  1  =  Device Address
                                       Input  =  Input Number (0-15)

    The inputs are unipolar 0 - 10V single ended.  The digitized value is 12 bits (0-4095).
     



    Channel Address 2

    Digital Output Module                                                                           Back to List
    4 OPTO-Isolated Digital Outputs

    ICEOS I/O Format
                   &OUT  2  1  Token
                                Where  2  =  Device Address
                                            1  =  Function Must Be 1
                                    Token  =  Value to Output

    The value to output may range from 0 - 15.  The 4 outputs represent the 4 binary bits in
    the range 0 - 15.  For example, to turn on outputs 2 and 8 simultaneously, the command
    &OUT  2  1  10 could be used.

    1  =  BCI Reset
    2  =  Swinger  ON/OFF
    4  =  Swinger Direction
    8  =  Sample Changer



    Channel Address 3

    Digital Output Module                                                                            Back to List
    4 OPTO-Isolated Digital Outputs

    ICEOS I/O Format
                   &OUT  3  1  Token
                                Where  3  =  Device Address
                                            1  =  Function Must be 1
                                    Token  =  Value to Output

    The value to output may range from 0 - 15.  The 4 outputs represent the 4 binary bits in
    the range 0 - 15.  For example, to turn on outputs 2 and 8 simultaneously, the command
    &OUT  3  1  10 could be used.
       


    Channel Address 4

    Real Time Clock Module                                                                       Back to List
    Keeps Date and Time Information

    ICEOS I/O Format
                   &IN  4  Function               (Read Clock)
                   &OUT  4  Function  Token  (Set Clock)
                               Where       4  =  Device Address
                                         Token  =  Value to Set Clock
                                      Function  =  See Table


     FUNCTION TABLE                                                                         FUNCTION

ADDRESS INPUTS

INTERNAL
COUNTER

DATA I/O

DATA
LIMITS

NOTES

READ

WRITE

A0    A1    A2    A3


D0 D1 D2 D3





0       0       0       0

S 1

*    *    *    *

0 ~ 9

S1 or S10 are reset to zero
irrespective of input data
D
0 ~ D3 when write
instruction is executed
with address selection.

16

32

1       0       0       0

S 10

*    *    *    *

0 ~ 5


17

33

0       1       0       0

MI 1

*    *    *    *

0 ~ 9


18

34

1       1       0       0

MI 10

*    *    *    *

0 ~ 5


19

35

0       0       1       0

H 1

*    *    *    *

0 ~ 9


20

36

1       0       1       0

H 10

*    *    +    +

0 ~ 1/
0 ~ 2

D2 = "1" for PM
D
2 = "0" for AM    
D
3 = "1" for 24 hr format   
D
3 = "0" for 24 hr format

21

37

0       1       1       0

W

*    *    *

0 ~ 6


22

38

1       1       1       0

D 1

*    *    *    *

0 ~ 9


23

39

0       0       0       1

D 10

*    *    +

0 ~ 3

D2 = "1" for 29 days
         in month 2
D2 = "0" for 28 days
         in month 2
               (2)

24

40

1       0       0       1

MO 1

*    *    *    *

0 ~ 9


25

41

0       1       0       1      

MO 10

*

0 ~ 1


26

42

1       1       0       1

Y 1

*    *    *    *

0 ~ 9


27

43

0       0       1       1

Y 10

*    *    *    *

0 ~ 9


28

44

(1) * data valid as "0" or "1"
         blank does not exist (unrecognized during a write and held at "0" during a read)
     +  data bits used for AM / PM, 12 / 24 HOUR and Leap Year
(2)  If D
2 previously set to "1", upon completion of month 2 day 29, D2 will be internally reset to "0"



  

Channel Address 5

Dual Scalar Module                                                                               Back to List
Two Independent Nim and Slow Input Scalars

ICEOS I/O Format
               &IN  5  Function              (Read Scaler)
               &OUT  5  Function  Token  (Set Mode)
                           Where        5 = Device Address
                                         &N = Variable to Place Count
                                     Token = Value to Set Prescaler
                                  Function = See Table

The scalar is a 16 bit binary counter with a prescale of 1, 10, 100, or 1000.  The
counter can count to 65,535 in the /1 prescale or 65,535,000 in the /1000 prescale.

                                                                          TABLE                                              

&OUT

5

1

0

Reset Both Scalers

&OUT

5

2

0

Reset Scaler A

&OUT

5

4

0

Reset Scaler B

&IN

5

8


Read Scaler A

&IN

5

16


Read Scaler B

&OUT

5

32

Token

Set Prescaler


                                                                    PRESCALE TABLE

Token

Prescale A

Prescale B

  

Token

Prescale A

Prescale B

0

/1

/1


8

/1

/100

1

/10

/1


9

/10

/100

2

/100

/1


10

/100

/100

3

/1000

/1


11

/1000

/100

4

/1

/10


12

/1

/1000

5

/10

/10


13

/10

/1000

6

/100

/10


14

/100

/1000

7

/1000

/10


15

/1000

/1000




Channel Address 11

Dual RS232 Serial Port                                                                          Back to List
300 baud, 140 parity, 2 stop, 7 bits

&OUT

11

4

0

Reset Both Varts

&OUT

11

2

(DATA)

Send Data to Channel A

&OUT

11

10

(DATA)

Send Data to Channel B

                             

&IN

11

0

Sense Status Channel A

&IN

11

8

Sense Status Channel B

STATUS  |___|___|___|___|___|___|___|___|x______|_______|
                                               d       X      o       f        p       <------ 7 data bits ----->
                                                 a      M      v      r        a
                                                 t        I       e      a        r
                                                 a      T       r      m        i
                                                         b       r       i         t
                                                 a      u       u      n       y
                                                 v      f        n     g       
                                                 a      f                         e
                                                 i       e       e      e        r
                                                 l       r        r      r         r
                                                                  r      r         o
                                                        a       o      o        r
                                                        v       r       r 
                                                        a
                                                        i
                                                        l

 

&IN

11

1

Read Data at Channel A and Reset DAV

&IN

11

9

Read Data at Channel B and Reset DAV

IN WORD
|_x_|_x_|_x_|___|___|___|___|___|_x_|_______|_______|
                   D       T      O      F       P                <------7 Data Bits------>
                         A      B       V      E       E
                         V       E      E     
                                           R
                                           R
                                           U
                                           N 


FUNCTION BITS
|         3          |         2         |         1         |         0          |
0 = Chan A        r                          d                          r
1 = Chan B        e                         a                          e
                          s                          t                           s
                          e                         a                          e
                          t                                                       t
                                                      s 
                           v                          t                          D
                           a                          r                          A
                           r                           o                         V
                           t                           b
                           s                           e
                      (both)

     
















     



[DaqLinux] [About DaqLinux] [Download] [User Guide] [What's New] [SiteMap]

Please contact Don Carter with questions or comments.
© Copyright 2016 Don Carter.  All rights reserved.