Files
motorBase/motorApp/PiSrc/drvPI.h
T
2004-08-17 21:29:52 +00:00

114 lines
4.0 KiB
C

/*
FILENAME... drvPI.h
USAGE... This file contains driver "include" information that is specific to
Physik Instrumente (PI) GmbH & Co. motor controller driver support.
Version: $Revision: 1.3 $
Modified By: $Author: rivers $
Last Modified: $Date: 2004-08-17 21:29:52 $
*/
/*
* Original Author: Ron Sluiter
* Date: 12/17/03
*
* Experimental Physics and Industrial Control System (EPICS)
*
* Copyright 1991, the Regents of the University of California,
* and the University of Chicago Board of Governors.
*
* This software was produced under U.S. Government contracts:
* (W-7405-ENG-36) at the Los Alamos National Laboratory,
* and (W-31-109-ENG-38) at Argonne National Laboratory.
*
* Initial development by:
* The Controls and Automation Group (AT-8)
* Ground Test Accelerator
* Accelerator Technology Division
* Los Alamos National Laboratory
*
* Co-developed with
* The Controls and Computing Group
* Accelerator Systems Division
* Advanced Photon Source
* Argonne National Laboratory
*
*
*
* Modification Log:
* -----------------
* .01 12/17/03 rls - copied from drvIM483.h
* .02 07/12/04 rls - Converted from MPF to asyn.
*/
#ifndef INCdrvPIh
#define INCdrvPIh 1
#include "motor.h"
#include "motordrvCom.h"
#include "asynDriver.h"
#include "asynOctetSyncIO.h"
#define COMM_TIMEOUT 2 /* Timeout in seconds. */
/* PIC844 specific data is stored in this structure. */
struct PIC844controller
{
asynUser *pasynUser; /* For RS-232 */
int asyn_address; /* Use for GPIB or other address with asyn */
char asyn_port[80]; /* asyn port name */
CommStatus status; /* Controller communication status. */
};
/* Motion Condition register */
typedef union
{
unsigned short All;
struct
{
#ifdef MSB_First
unsigned int axis4ML :1; /* Axis#4 Minus Limit Switch */
unsigned int axis3ML :1; /* Axis#3 Minus Limit Switch */
unsigned int axis2ML :1; /* Axis#2 Minus Limit Switch */
unsigned int axis1ML :1; /* Axis#1 Minus Limit Switch */
unsigned int axis4PL :1; /* Axis#4 Plus Limit Switch */
unsigned int axis3PL :1; /* Axis#3 Plus Limit Switch */
unsigned int axis2PL :1; /* Axis#2 Plus Limit Switch */
unsigned int axis1PL :1; /* Axis#1 Plus Limit Switch */
unsigned int axis4ME :1; /* Axis#4 Motion-Error */
unsigned int axis3ME :1; /* Axis#3 Motion-Error */
unsigned int axis2ME :1; /* Axis#2 Motion-Error */
unsigned int axis1ME :1; /* Axis#1 Motion-Error */
unsigned int axis4IM :1; /* Axis#4 in motion */
unsigned int axis3IM :1; /* Axis#3 in motion */
unsigned int axis2IM :1; /* Axis#2 in motion */
unsigned int axis1IM :1; /* Axis#1 in motion */
#else
unsigned int axis1IM :1; /* Axis#1 in motion */
unsigned int axis2IM :1; /* Axis#2 in motion */
unsigned int axis3IM :1; /* Axis#3 in motion */
unsigned int axis4IM :1; /* Axis#4 in motion */
unsigned int axis1ME :1; /* Axis#1 Motion-Error */
unsigned int axis2ME :1; /* Axis#2 Motion-Error */
unsigned int axis3ME :1; /* Axis#3 Motion-Error */
unsigned int axis4ME :1; /* Axis#4 Motion-Error */
unsigned int axis1PL :1; /* Axis#1 Plus Limit Switch */
unsigned int axis2PL :1; /* Axis#2 Plus Limit Switch */
unsigned int axis3PL :1; /* Axis#3 Plus Limit Switch */
unsigned int axis4PL :1; /* Axis#4 Plus Limit Switch */
unsigned int axis1ML :1; /* Axis#1 Minus Limit Switch */
unsigned int axis2ML :1; /* Axis#2 Minus Limit Switch */
unsigned int axis3ML :1; /* Axis#3 Minus Limit Switch */
unsigned int axis4ML :1; /* Axis#4 Minus Limit Switch */
#endif
} Bits;
} C844_Cond_Reg;
/* Function prototypes. */
extern RTN_STATUS PIC844Setup(int, int);
extern RTN_STATUS PIC844Config(int, const char *, int);
#endif /* INCdrvPIh */