
swnnos
|
la fin:
// // Types // typedef short int HCTRLR;
// // Data structures (set packing for 16/32-bit compilers) // #ifndef _WIN32 #pragma pack(2) #else #pragma pack(4) #endif
// // Contouring parameters structure // typedef struct { double VectorAccel; double VectorDecel; double VectorVelocity; double VelocityOverride; } MCCONTOUR;
// // PID Filter parameters structure // typedef struct { double DerivativeGain; double DerSamplePeriod; double IntegralGain; double IntegrationLimit; double VelocityGain; double AccelGain; double DecelGain; double FollowingError; } MCFILTER;
// // Jog control parameters structure // typedef struct { double Acceleration; double MinVelocity; double Deadband; double Gain; double Offset; } MCJOG;
// // Motion parameters structure // typedef struct { double Acceleration; double Deceleration; double Velocity; double MinVelocity; short int Direction; double Gain; double Torque; double Deadband; double DeadbandDelay; short int StepSize; short int Current; short int HardLimitMode; short int SoftLimitMode; double SoftLimitLow; double SoftLimitHigh; short int EnableAmpFault; short int Rate; } MCMOTION;
// // Controller configuration structure // typedef struct { short int ID; short int ControllerType; short int NumberAxes; short int DigitalIO; short int AnalogInput; short int AnalogOutput; short int AxisType[8]; short int PointStorage; short int CanDoScaling; short int CanDoContouring; short int CanChangeProfile; short int CanChangeRates; short int SoftLimits; short int MultiTasking; short int AmpFault; } MCPARAM;
// // Scaling factors data structure // typedef struct { double Constant; double Offset; double Rate; double Scale; double Zero; double Time; } MCSCALE;
// // Restore default packing // #pragma pack()
// // API Function Prototypes // extern void WINAPI MCAbort( HCTRLR hCtlr, WORD wAxis ); extern long int WINAPI MCArcCenter( HCTRLR hCtlr, WORD wAxis, short int nType, double Position ); extern long int WINAPI MCArcEndAngle( HCTRLR hCtlr, WORD wAxis, short int nType, double Angle ); extern long int WINAPI MCArcRadius( HCTRLR hCtlr, WORD wAxis, double Radius ); extern long int WINAPI MCBlockBegin( HCTRLR hCtlr, long int lMode, long int lNum ); extern long int WINAPI MCBlockEnd( HCTRLR hCtlr, long int far* lTaskID ); extern long int WINAPI MCCancelTask( HCTRLR hCtlr, long int lTaskID ); extern long int WINAPI MCCaptureData( HCTRLR hCtlr, WORD wAxis, long int lPoints, double Period, double Delay ); extern short int WINAPI MCClose( HCTRLR hCtlr ); extern short int WINAPI MCConfigureDigitalIO( HCTRLR hCtlr, WORD wChannel, WORD wMode ); extern long int WINAPI MCContourDistance( HCTRLR hCtlr, WORD wAxis, double Distance ); extern long int WINAPI MCContourPath( HCTRLR hCtlr, WORD wAxis, WORD wMode, char far* lpBuffer ); extern long int WINAPI MCDecodeStatus( HCTRLR hCtlr, DWORD dwStatus, long int lBit ); extern void WINAPI MCDirection( HCTRLR hCtlr, WORD wAxis, WORD wDir ); extern void WINAPI MCEnableAxis( HCTRLR hCtlr, WORD wAxis, short int bState ); extern long int WINAPI MCEnableBacklash( HCTRLR hCtlr, WORD wAxis, double Backlash, short int bState ); extern void WINAPI MCEnableDigitalIO( HCTRLR hCtlr, WORD wChannel, short int bState ); extern void WINAPI MCEnableGearing( HCTRLR hCtlr, WORD wAxis, WORD wMaster, double ratio, short int bState ); extern void WINAPI MCEnableJog( HCTRLR hCtlr, WORD wAxis, short int bState ); extern void WINAPI MCEnableSync( HCTRLR hCtlr, WORD wAxis, short int bState ); extern void WINAPI MCErrorNotify( HWND hWnd, HCTRLR hCtlr, DWORD ErrorMask ); extern long int WINAPI MCFindAuxEncIdx( HCTRLR hCtlr, WORD wAxis, double Position ); extern long int WINAPI MCFindEdge( HCTRLR hCtlr, WORD wAxis, double Position ); extern long int WINAPI MCFindIndex( HCTRLR hCtlr, WORD wAxis, double Position ); extern long int WINAPI MCGetAccelerationEx( HCTRLR hCtlr, WORD wAxis, double far* Acceleration ); extern WORD WINAPI MCGetAnalog( HCTRLR hCtlr, WORD wChannel ); extern long int WINAPI MCGetAuxEncIdxEx( HCTRLR hCtlr, WORD wAxis, double far* Index ); extern long int WINAPI MCGetAuxEncPosEx( HCTRLR hCtlr, WORD wAxis, double far* Position ); extern long int WINAPI MCGetBreakpointEx( HCTRLR hCtlr, WORD wAxis, double far* Breakpoint ); extern long int WINAPI MCGetCaptureData( HCTRLR hCtlr, WORD wAxis, long int lType, long int lStart, long int lPoints, double far* lpData ); extern void WINAPI MCGetConfiguration( HCTRLR hCtlr, MCPARAM far* lpParam ); extern short int WINAPI MCGetContourConfig( HCTRLR hCtlr, WORD wAxis, MCCONTOUR far* lpContour ); extern long int WINAPI MCGetContouringCount( HCTRLR hCtlr, WORD wAxis ); extern long int WINAPI MCGetDecelerationEx( HCTRLR hCtlr, WORD wAxis, double far* Deceleration ); extern short int WINAPI MCGetError( HCTRLR hCtlr ); extern short int WINAPI MCGetDigitalIO( HCTRLR hCtlr, WORD wChannel ); extern long int WINAPI MCGetDigitalIOConfig( HCTRLR hCtlr, WORD wChannel, WORD* wMode ); extern short int WINAPI MCGetFilterConfig( HCTRLR hCtlr, WORD wAxis, MCFILTER far* lpFilter ); extern long int WINAPI MCGetFollowingError( HCTRLR hCtlr, WORD wAxis, double far* Error ); extern long int WINAPI MCGetGain( HCTRLR hCtlr, WORD wAxis, double far* Gain ); extern long int WINAPI MCGetIndexEx( HCTRLR hCtlr, WORD wAxis, double far* Index ); extern short int WINAPI MCGetJogConfig( HCTRLR hCtlr, WORD wAxis, MCJOG far* lpJog ); extern long int WINAPI MCGetLimits( HCTRLR hCtlr, WORD wAxis, short int far* HardLimitMode, short int far* SoftLimitMode, double far* SoftLimitMinus, double far* SoftLimitPlus ); extern short int WINAPI MCGetMotionConfig( HCTRLR hCtlr, WORD wAxis, MCMOTION far* lpMotion ); extern long int WINAPI MCGetOptimalEx( HCTRLR hCtlr, WORD wAxis, double far* Optimal ); extern long int WINAPI MCGetPositionEx( HCTRLR hCtlr, WORD wAxis, double far* Position ); extern long int WINAPI MCGetProfile( HCTRLR hCtlr, WORD wAxis, WORD far* wProfile ); extern long int WINAPI MCGetRegister( HCTRLR hCtlr, long int nRegister, void far* Value, long int nType ); extern short int WINAPI MCGetScale( HCTRLR hCtlr, WORD wAxis, MCSCALE far* lpScale ); extern long int WINAPI MCGetServoOutputPhase( HCTRLR hCtlr, WORD wAxis, WORD far* wPhase ); extern DWORD WINAPI MCGetStatus( HCTRLR hCtlr, WORD wAxis ); extern long int WINAPI MCGetTargetEx( HCTRLR hCtlr, WORD wAxis, double far* Target ); extern long int WINAPI MCGetTorque( HCTRLR hCtlr, WORD wAxis, double far* Torque ); extern long int WINAPI MCGetVectorVelocity( HCTRLR hCtlr, WORD wAxis, double far* Velocity ); extern long int WINAPI MCGetVelocityEx( HCTRLR hCtlr, WORD wAxis, double far* Velocity ); extern DWORD WINAPI MCGetVersion( HCTRLR hCtlr ); extern void WINAPI MCGo( HCTRLR hCtlr, WORD wAxis ); extern long int WINAPI MCGoEx( HCTRLR hCtlr, WORD wAxis, double Param ); extern void WINAPI MCGoHome( HCTRLR hCtlr, WORD wAxis ); extern long int WINAPI MCIndexArm( HCTRLR hCtlr, WORD wAxis, double Position ); extern long int WINAPI MCIsAtTarget( HCTRLR hCtlr, WORD wAxis, double TimeOut ); extern long int WINAPI MCIsStopped( HCTRLR hCtlr, WORD wAxis, double TimeOut ); extern long int WINAPI MCLearnPoint( HCTRLR hCtlr, WORD wAxis, long int lIndex, WORD wMode ); extern void WINAPI MCMacroCall( HCTRLR hCtlr, WORD wMacro ); extern void WINAPI MCMoveAbsolute( HCTRLR hCtlr, WORD wAxis, double Position ); extern void WINAPI MCMoveRelative( HCTRLR hCtlr, WORD wAxis, double Distance ); extern long int WINAPI MCMoveToPoint( HCTRLR hCtlr, WORD wAxis, long int lIndex ); extern HCTRLR WINAPI MCOpen( short int nID, WORD wMode, LPCSTR lpszName ); extern long int WINAPI MCReopen( HCTRLR hCtlr, WORD wNewMode ); extern long int WINAPI MCRepeat( HCTRLR hCtlr, long int lCount ); extern void WINAPI MCReset( HCTRLR hCtlr, WORD wAxis ); extern void WINAPI MCSetAcceleration( HCTRLR hCtlr, WORD wAxis, double Rate ); extern void WINAPI MCSetAnalog( HCTRLR hCtlr, WORD wChannel, WORD wValue ); extern void WINAPI MCSetAuxEncPos( HCTRLR hCtlr, WORD wAxis, double Position ); extern short int WINAPI MCSetContourConfig( HCTRLR hCtlr, WORD wAxis, MCCONTOUR far* lpContour ); extern void WINAPI MCSetDeceleration( HCTRLR hCtlr, WORD wAxis, double Rate ); extern short int WINAPI MCSetFilterConfig( HCTRLR hCtlr, WORD wAxis, MCFILTER far* lpFilter ); extern long int WINAPI MCSetGain( HCTRLR hCtlr, WORD wAxis, double Gain ); extern short int WINAPI MCSetJogConfig( HCTRLR hCtlr, WORD wAxis, MCJOG far* lpJog ); extern long int WINAPI MCSetLimits( HCTRLR hCtlr, WORD wAxis, short int HardLimitMode, short int SoftLimitMode, double SoftLimitMinus, double SoftLimitPlus ); extern void WINAPI MCSetModuleOutputMode( HCTRLR hCtlr, WORD wAxis, WORD wMode ); extern short int WINAPI MCSetMotionConfig( HCTRLR hCtlr, WORD wAxis, MCMOTION far* lpMotion ); extern void WINAPI MCSetOperatingMode( HCTRLR hCtlr, WORD wAxis, WORD caxis, WORD mode ); extern void WINAPI MCSetPosition( HCTRLR hCtlr, WORD wAxis, double Position ); extern void WINAPI MCSetProfile( HCTRLR hCtlr, WORD wAxis, WORD wMode ); extern long int WINAPI MCSetRegister( HCTRLR hCtlr, long int nRegister, void far* Value, long int nType ); extern short int WINAPI MCSetScale( HCTRLR hCtlr, WORD wAxis, MCSCALE far* lpScale ); extern void WINAPI MCSetServoOutputPhase( HCTRLR hCtlr, WORD wAxis, WORD wPhase ); extern long int WINAPI MCSetTimeoutEx( HCTRLR hCtlr, double TimeOut, double far* OldTimeOut ); extern long int WINAPI MCSetTorque( HCTRLR hCtlr, WORD wAxis, double Torque ); extern long int WINAPI MCSetVectorVelocity( HCTRLR hCtlr, WORD wAxis, double Velocity ); extern void WINAPI MCSetVelocity( HCTRLR hCtlr, WORD wAxis, double Rate ); extern void WINAPI MCStop( HCTRLR hCtlr, WORD wAxis ); extern long int WINAPI MCTranslateErrorEx( short int nError, LPSTR szBuffer, long int nLength ); extern void WINAPI MCWait( HCTRLR hCtlr, double Period ); extern void WINAPI MCWaitForDigitalIO( HCTRLR hCtlr, WORD wChannel, short int bState ); extern long int WINAPI MCWaitForEdge( HCTRLR hCtlr, WORD wAxis, short int bState ); extern long int WINAPI MCWaitForIndex( HCTRLR hCtlr, WORD wAxis, double TimeOut ); extern void WINAPI MCWaitForPosition( HCTRLR hCtlr, WORD wAxis, double Position ); extern void WINAPI MCWaitForRelative( HCTRLR hCtlr, WORD wAxis, double Distance ); extern void WINAPI MCWaitForStop( HCTRLR hCtlr, WORD wAxis, double Period ); extern void WINAPI MCWaitForTarget( HCTRLR hCtlr, WORD wAxis, double Period );
// // Low level controller access commands // extern short int WINAPI pmccmd( HCTRLR hCtlr, short int nBytes, void far* lpBuffer ); extern long int WINAPI pmccmdex( HCTRLR hCtlr, WORD wAxis, WORD wCmd, void FAR* Argument, long int nType ); extern short int WINAPI pmcgetc( HCTRLR hCtlr ); extern void WINAPI pmcgetram( HCTRLR hCtlr, WORD wOffset, void far* lpBuffer, short int nBytes ); extern short int WINAPI pmcgets( HCTRLR hCtlr, char far* lpszBuffer, short int nBytes ); extern short int WINAPI pmcputc( HCTRLR hCtlr, short int nChar ); extern void WINAPI pmcputram( HCTRLR hCtlr, WORD wOffset, void far* lpBuffer, short int nBytes ); extern short int WINAPI pmcputs( HCTRLR hCtlr, char far* lpszBuffer ); extern short int WINAPI pmcrdy( HCTRLR hCtlr ); extern short int WINAPI pmcrpy( HCTRLR hCtlr, short int nBytes, char far* lpBuffer ); extern long int WINAPI pmcrpyex( HCTRLR hCtlr, void FAR* Reply, long int nType );
// // Old functions supported in 16-bit mode only // #ifndef _WIN32
extern double WINAPI MCGetAcceleration( HCTRLR hCtlr, WORD wAxis ); extern double WINAPI MCGetAuxEncIdx( HCTRLR hCtlr, WORD wAxis ); extern double WINAPI MCGetAuxEncPos( HCTRLR hCtlr, WORD wAxis ); extern double WINAPI MCGetBreakpoint( HCTRLR hCtlr, WORD wAxis ); extern double WINAPI MCGetDeceleration( HCTRLR hCtlr, WORD wAxis ); extern double WINAPI MCGetIndex( HCTRLR hCtlr, WORD wAxis ); extern double WINAPI MCGetOptimal( HCTRLR hCtlr, WORD wAxis ); extern double WINAPI MCGetPosition( HCTRLR hCtlr, WORD wAxis ); extern double WINAPI MCGetTarget( HCTRLR hCtlr, WORD wAxis ); extern double WINAPI MCGetVelocity( HCTRLR hCtlr, WORD wAxis ); extern double WINAPI MCSetTimeout( HCTRLR hCtlr, double TimeOut );
#endif
#ifdef __cplusplus } #endif
#endif
swnnos
|