TRIPSWITCH(OPCSDEFS)  Optical Printer Control System   TRIPSWITCH(OPCSDEFS)

    NAME
        tripswitch - configure trip switches for axes

    USAGE
        tripswitch [port] [mask] [test] [0]   # (all values in HEX!)

    EXAMPLES
        tripswitch 0000 00 00 0      # disable all trip switch detection
        tripswitch 03bd 40 00 0      # LPT1 pin 10, HI bit detects condition
        tripswitch 03bd 40 40 0      # LPT1 pin 10, LO bit detects condition

    DESCRIPTION
	Tripswitches are set up to stop motion control moves (FEED, GO, etc)
	if an axis is about to go off its track. When a trip occurs, the 
	software will stop the motors and indicate a trip error:
       
                ** TRIP SWITCH ERROR - AXIS WENT TOO FAR **
                RETURN to continue,  or SPACEBAR to ABORT:

	Sensors should be wired so that a light by the trip switch indicates
	which trip switch was activated, so the problem can be corrected.

	A trip condition will occur only when any switch changes from
	its normal state to its trip state. A trip condition will NOT occur
	when the switch changes back to its normal state. This allows the
	operator to back the motor off after a trip occurred, without
	causing reoccuring trip errors.

	    [port] is the port number in the range 0000-03ff.
	    If [port] is 0000, no trip switch checking is done.

	    [mask] is applied to the value received from the port 
	    whenever the software is checking for a trip switch condition.
	    This is applied before comparing to [test].

	    [test] is compared to the value read from the port after
	    [mask] is applied. If the result is the same as [test], a trip
	    condition will occur.

	    [0] is always zero.

    WIRING CONSIDERATIONS
        Normally you would use an optically isolated interface card for the
        buckle and viewer switches, e.g. PIO-100(DOCS).

        If directly connecting switches to the parallel port, use a separate
        dedicated 5 VDC power supply wired through the switches such that
        when the sensing switch is tripped, +5V is supplied to the computer.

        Such a supply can be a store-bought 5 VDC regulated switching 
        transformer, which gives out *exactly* 5VDC. (Avoid older linear
        transformers, as they are often unregulated)

        As with any signal going to the sensing input on a computer, the
        signal should never be open. The signal must pull either 5 volts 
        or ground for a TRUE or FALSE condition. Open inputs can act like
        radio antennas that will oscillate randomly.

        If you have noise problems, shielded wire can help mitigate noise.
        Shield ONLY at the power supply end. Ground the shield to chassis
        ground if possible.  Keep wire lengths as short as possible.

        If noise problems persist, it may be that the wire is simply too
        long for such a low voltage signal. The PIO-100 uses 12VDC to allow
        for longer cable lengths, and an optoisolator to convert to +5V for
        the parallel port input.

        You can find the base port value for the parallel ports from the
        operating system using the DOS 'debug' utility:

        C>debug                               # run 'debug'
        -d40:8 f                              # enter this (not the '-')
        0040:0008  BC 03 78 03 00 00 00 00    # debug spits this out
        -q         ----- -----                # type 'q' to quit debug
                     |     |
                     |     LPT #2's  port base address
                     |
                     LPT #1's  port base address

        Your machine may show different values. In the case above, 03BC
        is the base port value for LPT1..note the bytes are in reverse
        order in typical LSB/MSB fashion.

        See the PARALLEL() man page which shows the pin out and port addresses
        of the IBM PC's parallel ports.

	The following shows an example of how to wire the trip switches.

	    AT THE PARALLEL CONNECTOR
	    -------------------------
	    Using a shielded 2 conductor cable, wire the dark conductor
	    to the computer's parallel port input bit. Then run a 400 ohm
	    resistor from the input pin to one of the GND pins (a pull down
	    configuration).

	    Wire the light conductor to the +5 volt supply. Ground the shield
	    AND the +5 volt supply's ground to all of the parallel port's
	    ground pins (18-25).

	    AT EACH SPDT TRIP SWITCH
	    ------------------------
	    Throughout the wire, you can drop in single pole dual terminal
	    micro switches. Wire the switch's Normally Open (NO) terminal
	    to the dark conductor that goes to the computer. Wire the switch's
	    Common (C) to the light conductor (+5). Wire an LED such that the 
	    negative input is to the Normally Closed (NC) terminal, and the 
	    positive input is connected to C terminal along with the light
	    conductor (+5). Now tie a 400 ohm resistor from the NC terminal
	    to the shield (ground).

	Once wired, the input to the computer will be normally grounded 
	(through the 400 ohm resistor at the connector). All the LEDs will
	be dark, because they are seeing 5 volts across their terminals, and
	5 volts will leak through the associated 400 ohm resistor.

	If a switch is tripped, 5 volts is brought to the computer's input.
	The switch's LED will light because now ground is supplied to its
	negative terminal through the 400 ohm resistor, since NC is no 
	longer shorted to +5 by the switch.

	Set up the OPCSDEFS.OPC file to contain a tripswitch command with the
	appropriate port and bit information. Then enter the software and
	run one of the positional axes.

	If a trip condition occurs only when the switch is RELEASED (instead
	of pressed), you dont have to change the wiring of the switches..just
	change the [test] value. EXAMPLE:

	    tripswitch 03bd 40 40 0     # If this doesn't work...
	    tripswitch 03bd 40 00 0     # Try this, or vice-versa.
	                       --

	If you find that it does not matter whether a switch is pressed or not,
	then the port and/or mask bits may be wrong. You can use the 
	'PARALLEL.EXE' utility to monitor a parallel port's pins, so you can
	see which bit is actually changing when you press a trip switch. When
	executing 'parallel' from DOS, you can specify which port you want
	to monitor:
       
		parallel 1    # This will monitor LPT1
		parallel 2    # This will monitor LPT2

    SEE ALSO
        DEENERGIZE(OPCSDEFS)  - define port/bit to deenergize motors
        ALLSTOP(OPDSDEFS)     - define port/bit to detect the allstop key
        BUCKLE(OPCSDEFS)      - define port/bit to detect film buckles
        VIEWER(OPCSDEFS)      - define port/bit to detect viewer open
        TRIPSWITCH(OPCSDEFS)  - define port/bit to detect trip switches
        SETBIT(OPCSDEFS)      - set bit(s) on a port
        CLRBIT(OPCSDEFS)      - clear bit(s) on a port
        XORBIT(OPCSDEFS)      - invert bit(s) on a port
    	PARALLEL(BIOS)	- parallel port pinout with port/bit masks

    ORIGIN
	Gregory Ercolano, Los Feliz California 10/11/90
© Copyright 1997 Greg Ercolano. All rights reserved.