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

126 lines
4.3 KiB
C

/*
FILENAME... drvMVP2001.h
USAGE... This file contains driver "include" information that is specific to
the MicroMo MVP 2001 B02 (Linear, RS-485).
Version: $Revision: 1.5 $
Modified By: $Author: rivers $
Last Modified: $Date: 2004-08-17 21:29:32 $
*/
/*
* Original Author: Kevin Peterson
* Date: 08/27/2002
*
* Illinois Open Source License
* University of Illinois
* Open Source License
*
*
* Copyright (c) 2004, UNICAT. All rights reserved.
*
*
* Developed by:
*
* UNICAT, Advanced Photon Source, Argonne National Laboratory
*
* Frederick Seitz Materials Research Laboratory,
* University of Illinois at Urbana-Champaign
*
* http://www.uni.aps.anl.gov
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal with the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimers.
*
*
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimers in the
* documentation and/or other materials provided with the distribution.
*
*
* Neither the names of UNICAT, Frederick Seitz Materials Research
* Laboratory, University of Illinois at Urbana-Champaign,
* nor the names of its contributors may be used to endorse or promote
* products derived from this Software without specific prior written
* permission.
*
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE.
*
*
* Modification Log:
* -----------------
* .01 08/27/2002 kmp copied from drvIM483.h (rev 1.1, mod .01) and
* customized for the MVP2001.
* .02 07/12/2004 rls Converted from MPF to asyn.
*
*/
#ifndef INCdrvMVP2001h
#define INCdrvMVP2001h 1
#include "motor.h"
#include "motordrvCom.h"
#include "asynDriver.h"
#include "asynOctetSyncIO.h"
#define COMM_TIMEOUT 2 /* Command timeout in seconds. */
/* MVP2001 (chain) specific data is stored in this structure. */
struct MVPcontroller
{
asynUser *pasynUser; /* For RS-232 */
char asyn_port[80]; /* asyn port name */
int maxCurrent[MAX_AXIS]; /* Maximum current (in mA) */
int encoderCpr[MAX_AXIS]; /* Encoder counts per revolution */
CommStatus status; /* Controller communication status. */
};
/* Motor status response for MVP2001. */
typedef union
{
epicsUInt16 All;
struct
{
bool minusLS :1; /* negative limit switch hit */
bool extEvent2 :1; /* external event #2 */
bool plusLS :1; /* positive limit switch hit */
bool extEvent1 :1; /* external event #1 */
bool emergencyStop :1; /* emergency stop flag is active */
bool localMode :1; /* 1:local mode - 0:remote mode */
bool softLimit :1; /* soft-limit has been reached */
bool NOT_power :1; /* motor power 0 - ON; 1 - OFF. */
bool offTraj :1; /* off traj (more than FD com. value) */
bool devicenetErr :1; /* error in devicenet message packets */
bool devicenet :1; /* devicenet connection active */
bool trajComplete :1; /* 1=traj (set by T com.) is complete */
bool aiState :1; /* ANM mode not used--always 1 */
bool operatingMode :1; /* 1:Velocity - 0:Position */
bool inPosition :1; /* in-position indicator */
bool inMotion :1; /* in-motion indicator */
} Bits;
} MOTOR_STATUS;
/* Function prototypes. */
extern RTN_STATUS MVP2001Setup(int, int);
extern RTN_STATUS MVP2001Config(int, const char *);
#endif /* INCdrvMVP2001h */