30#ifndef INC_CINOSPHYSICALAXIS_H
31#define INC_CINOSPHYSICALAXIS_H
37#define DF_INOS_PHYSICAL_AXIS_DBT "INOS-PHYSICAL-AXIS"
38#define DF_INOS_COUPLED_AXES_DBT "INOS-COUPLED-AXES"
39#define DF_INOS_PHYSICAL_AXIS_NAME "CINOSPhysicalAxis"
43#define DF_INOS_AXIS_SUBSTATE_MOVINGEX_WAIT_FOR_BORDER 10
44 #define DF_INOS_AXIS_SUBSTATE_MOVINGEX_WAIT_FOR_BORDER_DELAY 11
45#define DF_INOS_AXIS_SUBSTATE_MOVINGEX_WAIT_FOR_EVENT 20
46 #define DF_INOS_AXIS_SUBSTATE_MOVINGEX_WAIT_FOR_EVENT_BORDER_DELAY 21
47 #define DF_INOS_AXIS_SUBSTATE_MOVINGEX_WAIT_FOR_EVENT_BORDER_DELAY1 22
48#define DF_INOS_AXIS_SUBSTATE_MOVINGEX_WAIT_FOR_STOP 30
49#define DF_INOS_AXIS_SUBSTATE_MOVINGEX_WAIT_FOR_END 40
53#define DF_MOVEEX_FLAGS(X) \
54 X( DF_MOVEEX_STOP_AT_EVENT, 0x00000001) \
56 X( DF_MOVEEX_HANDLE_RANGE, 0x00000002) \
58 X( DF_MOVEEX_HANDLE_BORDER, 0x00000004) \
60 X( DF_MOVEEX_NEEDS_BORDER, 0x00000008) \
62 X( DF_MOVEEX_REDUCE_CURRENT, 0x00000010) \
64 X( DF_MOVEEX_RANGE_IS_POS, 0x00000020) \
67 X( DF_MOVEEX_RANGE_IS_LIMIT, 0x00000040) \
69 X( DF_MOVEEX_SET_ACT_POS, 0x00000000) \
74 X( DF_MOVEEX_SET_TRG_POS, 0x00000080) \
76 X( DF_MOVEEX_NO_ERROR, 0x00000100) \
78 X( DF_MOVEEX_BACK_TO_ORIGIN, 0x00000200) \
81 X( DF_MOVEEX_SIGNAL_AT_EVENT, 0x00000400) \
83 X( DF_MOVEEX_AWAY_FROM_BORDER, 0x00000800) \
85 X( DF_MOVEEX_LET_CURRENT_REDUCED, 0x00001000) \
87 X( DF_MOVEEX_BACK_TO_EVENT, 0x00002000) \
90 X( DF_MOVEEX_TRG_MASK, 0x00ff0000) \
92 X( DF_MOVEEX_TRG_TYPE_MASK, 0x00070000) \
95 X( DF_MOVEEX_TRG_LS, 0x00000000) \
97 X( DF_MOVEEX_TRG_LE, 0x00010000) \
99 X( DF_MOVEEX_TRG_EQ, 0x00020000) \
101 X( DF_MOVEEX_TRG_GE, 0x00030000) \
103 X( DF_MOVEEX_TRG_GR, 0x00040000) \
105 X( DF_MOVEEX_TRG_NE, 0x00050000) \
108 X( DF_MOVEEX_TRG_EDGE, 0x00080000) \
110 X( DF_MOVEEX_TRG_ACTUAL, 0x00100000) \
113 X( DF_MOVEEX_TRG_SPECIAL, 0x00200000) \
115 X( DF_MOVEEX_TRG_SYNC, DF_MOVEEX_TRG_SPECIAL + 0x00000000) \
117 X( DF_MOVEEX_TRG_BORDER, DF_MOVEEX_TRG_SPECIAL + 0x00010000) \
120 X( DF_MOVEEX_EVT_BORDER, 0x01000000) \
122 X( DF_MOVEEX_DIRECT_MOVE, 0x02000000) \
124 X( DF_MOVEEX_DIRECT_MOVE_REL, 0x04000000)
128#define DF_INOS_AXIS_CPD_SEQUENTIAL 0x00000001
129#define DF_INOS_AXIS_CPD_OWN_POS 0x00000002
130#define DF_INOS_AXIS_CPD_READY 0x00000004
131#define DF_INOS_AXIS_CPD_CORR 0x00000008
132#define DF_INOS_AXIS_CPD_LOAD_BALANCE 0x00000010
133#define DF_INOS_AXIS_CPD_SIM_ALWAYS 0x00000020
134#define DF_INOS_AXIS_CPD_SEQUENTIAL_FORCED 0x40000000
135#define DF_INOS_AXIS_CPD_ACTIVE 0x80000000
156INOS_DEFINE_ENUM_CODE(DF_MOVEEX_FLAGS)
191 #if defined(INOS_FORCE_CONTROL_SUPPORT)
197 #if defined(INOS_MOTORCONFIG_LOAD_SUPPORT)
325 virtual uint32 Commutate();
327 virtual uint32 ForceCommutate(
bool abAlways =
false);
330 virtual uint32 ReActivate(uint32
auDelayMs = 100);
454 { m_eBorderType =
auType;};
461 {
auType = m_eBorderType;};
832 #if defined(INOS_FORCE_CONTROL_SUPPORT)
945 virtual void SetPathPosition(real64
arPosition)
override
955 virtual void GetActVelocity(real64&
arVelocity,
bool abRamp =
true)
override;
963 virtual void GetActJerk(real64&
arJerk,
bool abRamp =
true)
override;
965 virtual void GetActPosError(real64&
arPosError)
override;
977 virtual void GetRealVelocity(real64&
arVelocity)
override;
979 virtual void GetRealVelocityFiltered(real64&
arVelocity);
983 virtual void GetRealJerk(real64&
arJerk)
override;
991 virtual void GetUnitsPerInc(
double&
adUnits)
override;
993 virtual void SetIncsPerUnit(
double adIncs);
995 virtual void GetIncsPerUnit(
double&
adIncs)
override;
1013 virtual void SetInertia(
double adInertia);
1015 virtual void GetInertia(
double&
adInertia);
1020 virtual uint8 GetOversampling()
override;
1022 virtual uint16 GetCycleNumber()
override;
1024 virtual uint16 GetCycleId()
override;
1026 virtual void UpdateCycleId(uint16
auCycleId)
override;
1028 virtual uint8 GetBusId()
override;
1030 virtual uint32 SetParam(
const char*
apName, real64
arValue)
override;
1032 virtual uint32 GetParam(
const char*
apName, real64&
arResult)
override;
1035 virtual int32 GetState()
override;
1055 virtual bool IsErrorFatal()
override;
1071 virtual uint32 AcceptError()
override;
1073 virtual uint32 AcceptError(uint32
auError)
override;
1080 virtual uint32 AcceptWarning()
override;
1082 virtual uint32 AcceptWarning(uint32
auWarning)
override;
1089 virtual uint32 SetParam(
const char*
apName, uint64
auValue)
override
1092 virtual uint32 GetParam(
const char*
apName, uint64&
auResult)
override
1098 virtual CINCOObject* GetRegister()
override;
1101 {
return m_pControl;};
1104 {
return m_pMotor;};
1106 #ifdef INOS_FORCE_CONTROL_SUPPORT
1108 {
return m_pForce;};
1112 virtual bool IsEmgInActivating();
1117 virtual void EnableSync(real64
arPosition = REAL64(0.0),
1118 uint8
auSyncMode = DF_INOS_AXIS_SYNC_NOADJ)
override;
1120 virtual void DisableSync()
override;
1122 virtual void GetSyncCount(uint32&
auSyncCount)
override;
1124 virtual void SetSyncCount(uint32
auSyncCount)
override;
1126 virtual void GetSyncCorr(real64&
arSyncCorr);
1128 virtual bool EnableSafeSync();
1130 virtual void DisableSafeSync();
1147 virtual void EnableCurLimit()
override;
1149 virtual void DisableCurLimit()
override;
1151 virtual void SetCurLimit(
bool abEnable);
1153 virtual bool GetCurLimit()
override;
1164 {
return m_pCpdAxis;};
1166 uint32 GetCoupledOptions()
1168 {
return m_uCpdOptions;};
1169 virtual bool IsCouplingEnabled()
1178 virtual uint32 EnableCoupling();
1180 virtual uint32 DisableCoupling();
1182 virtual uint32 EnableLoadBalancing(
const char*
apAxis, real64
arFactor);
1184 virtual uint32 DisableLoadBalancing();
1186 virtual void SetCpdOption(uint32
auOption) {
1189 virtual void ClrCpdOption(uint32
auOption) {
1200 virtual void ResetBorderLimit()
1202 { m_pLimitPos = m_pLimitNeg =
NULL;};
1208 virtual bool IsPowerReady();
1210 virtual bool IsOnline()
const;
1223 #ifdef INOS_SAFETY_SUPPORT
1233 #if defined(INOS_MOTORCONFIG_LOAD_SUPPORT)
1243 return !((
nullptr !=
desc) && (0 !=
strlen(
desc->m_cMotorConfig)) && (0 == (
desc->m_uMotorConfigFlags & 1)));
1249 return ((
nullptr !=
desc) && ((0 ==
strlen(
desc->m_cMotorConfig)) || (2 == (
desc->m_uMotorConfigFlags & 2))));
1262 virtual void iInActivate()
override;
1266 virtual void iEmergencyStop(
bool abLive =
false)
override;
1268 virtual void iSetCycleTime(real64
arCycleTime)
override;
1270 virtual void iRegisterAxis()
override;
1280 bool iMoveExBorderReached();
1282 bool iMoveExBorder();
1284 bool iMoveExTriggerOccured();
1286 void iMoveExRestoreControl();
1288 void iMoveExCleanup();
1290 void iMoveExWaitForBorderDelayDone();
1292 void iMoveExWaitForEventBorderDelayDone();
1294 void iMoveExBorderOccured();
1296 void iMoveExBorderRelaxStart();
1298 void iMoveExBorderRelaxStop();
1300 ICACHE
virtual void iPostMap()
override;
1302 ICACHE
virtual void iPostMapCpd();
1304 ICACHE
virtual void iPostWrite()
override;
1306 ICACHE
virtual void iPostWriteCpd();
1308 virtual uint32 iEnableCoupling();
1310 virtual void iActivateCoupling();
1312 virtual void iInActivateCoupling();
1314 void iCheckErrors();
1316 void iCheckWarnings();
1318 virtual void iSetActRampPosition(real64
arPosition)
override;
1339 void iLoadBalancingHook();
1342#ifdef INOS_SAFETY_SUPPORT
1355 bool m_bPowerOnCtr0;
1364 uint32 m_uMeCtrFlag;
1366 uint32 m_uMeRmpFlag;
1382 real64 m_rBorderLimit;
1384 real64 m_rBorderRelax;
1387 uint32 m_uBorderDelay;
1390 bool m_bBorderRelaxActive;
1392 void* m_pMeTrgSrcAdr;
1394 uint64 m_uMeTrgLevel;
1398 uint16 m_uMeTrgSrcTyp;
1400 uint16 m_uMeTrgSrcBit;
1402 real64 m_rMePositionVel;
1404 real64 m_rMeVelocity;
1406 real64 m_rMePositionMove;
1410 bool m_bMeCurrentLimit;
1412 bool m_bMeRestoreControlFlags;
1414 bool m_bMeTriggerMasked;
1416 real64 m_rMePositionAtBorder;
1421 uint32 m_uCpdOptions;
1429 uint16 m_uCpdWaitCns;
1431 real64 m_rCpdOffset;
1433 real64 m_rCpdMaxDelta;
1435 real64 m_rCpdMaxCorr;
1439 uint32 m_uRelaxTime;
1455 uint32 m_ueFlagsSync;
1457 uint32 m_ueFlagsMoveEx;
1461 real64 m_reTrgLevel;
1464 char m_ceCpdAxis[16];
1466 uint32 m_ueCpdOptions;
1468 real64 m_reCpdMaxDelta;
1470 real64 m_reCpdMaxCorr;
1472 real64 m_reStretchFactor;
1477 #if defined(INOS_FORCE_CONTROL_SUPPORT)
1478 double m_deForce = 5.0;
1479 double m_deForceLimit = 10.0;
1480 double m_deForceTara = 0.0;
1481 uint32 m_uForceControlFlags = 0;
1482 inosName32 m_ceForceParam{};
1484 uintid m_uForceHookId = 0;
1486 uint32 eForceActivate(
const char*);
1487 uint32 eForceInactivate();
1488 uint32 eForceInactivate(
double);
1489 uint32 eForceApproach(
double,
double,
double,
double,
double,
const char*);
1490 uint32 eForceDepart(
double,
double,
double,
double,
const char*);
1491 uint32 eForceMove(
double,
const char*);
1492 uint32 eForceMoveStop(
const char*);
1493 uint32 eForceBreak(
double,
const char*);
1494 uint32 eForceTara(
double);
1495 uint32 eForceSelect(
const char*);
1500 void ForcePosition();
1502 void ForceHookEnable();
1503 void ForceHookDisable();
#define DF_INOS_AXIS_NORM_MOVE_DIR_NO
Definition cinosbaseaxis.h:184
#define DF_INOS_AXIS_NORM_AFTER
Definition cinosbaseaxis.h:167
#define DECLARE_DYNAMIC(aClass)
Definition cinospartitionmemory.h:328
#define DF_INOS_AXIS_CPD_READY
coupled axis ready to activate
Definition cinosphysicalaxis.h:124
Provides axis functionality.
Definition cinosbaseaxis.h:676
Definition cinosbasecontrol.h:319
Definition cinosbasemotor.h:204
Definition cinosbaseramp.h:752
Definition cinosdacchannel.h:52
Definition cinosmcmodule.h:1900
Provides physical aka real axis functionality.
Definition cinosphysicalaxis.h:286
virtual uint32 Relax(uint32 auTimeMs, CINOSSync *apSync=DF_INOS_SYNCHRONOUS) override
Relax a coupled slave axis for a given time.
virtual void DisableNorm() override
virtual uint32 ReleaseFromBorder()
Release from border (used after MoveToBorder)
virtual uint32 ForceMoveStop(const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Stop a running ForceMove with the given param set.
virtual uint32 ForcePull(double adForce)
Set a new force point start force pull mode if not et done. If one is running an axis in force pull m...
virtual uint32 SyncMove(real64 arPosition, real64 arSyncPos, real64 arMovePos, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search reference till max. arPosition. If reference found, set position at reference to arSyncPos and...
virtual uint32 ForceActivate(const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Switch from position to force mode.
virtual uint32 ForceApproach(double adPosition, double adPositionVel, double adVelocity, double adForce, double adForcelimit, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search requested force [N], stop if found and switch to force mode.
virtual uint32 MoveToDigitalSensor(const char *apName, real64 arPosition, bool abSet, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search digital sensor till arPosition and stop if found. If not found, the axis will go into "Failed"...
virtual uint32 InActivate(CINOSSync *apSync=DF_INOS_SYNCHRONOUS) override
Inactivate axis.
virtual uint32 ForceDepart(double adPosition, double adPositionVel, double adVelocity, double adForceLimit, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Switch to position mode and depart from force point.
virtual void SetBorderRelax(real64 arRelax)
Set border relax value (used in MoveToBorder method)
Definition cinosphysicalaxis.h:474
virtual void SetBorderLimit(real64 arLimit)
Set border limit value (used in MoveToBorder method)
Definition cinosphysicalaxis.h:460
virtual void GetActPosition(real64 &arPosition, bool abRamp=true) override
Gets the actual axis position.
virtual uint32 Connect() override
Connect axis to hardware.
virtual uint32 SetRealPosition(real64 arPosition) override
Sets the real axis position. This method ignores a current following error and should therefore NOT b...
virtual uint32 Sync(real64 arPosition, CINOSSync *apSync=DF_INOS_SYNCHRONOUS) override
Search reference mark till arPosition and set actual position to 0.0 at mark.
virtual void EnableNorm(uint8 auMode=DF_INOS_AXIS_NORM_AFTER, uint8 auMoveDir=DF_INOS_AXIS_NORM_MOVE_DIR_NO, real64 arNormPos=REAL64(0.0)) override
virtual uint32 ForceSelect(const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Select given param set.
virtual uint32 MoveToBorder(real64 arPosition, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search border till arPosition and stop if found (use ReleaseFromBorder before other moves are initiat...
virtual void GetBorderLimit(real64 &arLimit)
Get border limit value (used in MoveToBorder method)
Definition cinosphysicalaxis.h:467
virtual uint32 ForceMove(double adForce, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Ramp the commanded force to the requested value [N] with the given param set.
virtual void SetNormMode(uint8 auNormMode) override
EBorderType
The different border types the system supports.
Definition cinosphysicalaxis.h:429
@ eBorderSpeed
use the current speed error to detect border
Definition cinosphysicalaxis.h:431
@ eBorderPosition
use the current position check error to detect border
Definition cinosphysicalaxis.h:430
@ eBorderSpeedAbs
use real speed to detect border
Definition cinosphysicalaxis.h:433
@ eBorderSensor
use a digital input to detect border
Definition cinosphysicalaxis.h:432
virtual uint32 DisableForceLimit()
Disable force limitation.
virtual void SetBorderType(EBorderType auType)
Set border limit type (used in MoveToBorder method)
Definition cinosphysicalaxis.h:446
virtual uint32 MoveToAnalogSensorApp(const char *apName, real64 arPosition, real64 arLevel, bool abGreater, real64 arPositionVel, real64 arVelocity, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search analog sensor till arPosition and stop if found.
virtual uint32 MoveToDigitalSensorApp(const char *apName, real64 arPosition, bool abSet, real64 arPositionVel, real64 arVelocity, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search digital sensor till arPosition and stop if found.
virtual uint32 Activate(bool abCheckPos=true, bool abSimulatePos=false, bool abSimulateOut=false, bool abSimulateAct=false, CINOSSync *apSync=DF_INOS_SYNCHRONOUS) override
Activate axis in a given mode, e.g Activate(true,true,true,true) enables the axis in a full simulated...
void SetLifetimeDistance(real64 arDistance)
set lifetime distance (only used at startup by either mcrobot or user code)
virtual void GetBorderType(EBorderType &auType)
Get border limit type (used in MoveToBorder method)
Definition cinosphysicalaxis.h:453
virtual uint32 EnableForceLimit(double adLimit)
Enable force limitation to given limit.
void SetAxisEnableInput(const char *apInputName)
set name of axis enable input
virtual void GetBorderRelax(real64 &arRelax)
Get border relax value (used in MoveToBorder method)
Definition cinosphysicalaxis.h:481
virtual uint32 SetActPosition(real64 arPosition) override
Sets the actual axis position. This method doesn't change a current following error and it is therefo...
virtual uint32 ForceInactivate(double adLimit, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Switch from force to position mode but still limit force to given value [N].
virtual uint32 ForceBreak(double adForce, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Ramp the commanded force to the requested value [N] with the given param set. Expect a collapse befor...
EBorderStop
The different border stopping types the system supports.
Definition cinosphysicalaxis.h:438
@ eBorderStopRamp
stop the move with a stopping ramp (cmdB)
Definition cinosphysicalaxis.h:440
@ eBorderStopHard
immediately stop the trajectory by setting cmdV = 0.0
Definition cinosphysicalaxis.h:439
virtual uint32 MoveToBorderApp(real64 arPosition, real64 arPositionVel, real64 arVelocity, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search border till arPosition and stop if found. The current limitation is switched on at the reduced...
void GetAxisEnableInput(char *apResult, uint32 auSize) const
get name of axis enable input
virtual uint32 ForceInactivate(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Switch from force to position mode.
void GetLifetimeDistance(real64 &arDistance)
get current lifetime distance
virtual uint32 ForceCancel()
Cancels force controller.
virtual uint32 ForceTara(double adForce=0.0, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Set current force [N] to given value.
virtual uint32 Sync(real64 arPosition, real64 arSyncPos, CINOSSync *apSync=DF_INOS_SYNCHRONOUS) override
Search reference mark till arPosition and set actual position to arSyncPos at mark.
virtual void GetRealPosition(real64 &arPosition, bool abMapped=true) override
Gets the real axis position.
virtual uint32 MoveToAnalogSensor(const char *apName, real64 arPosition, real64 arLevel, bool abGreater, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search analog sensor till arPosition and stop if found.
The macro definition file.
#define INOS_OR(variable, mask)
Definition inosmacro.h:201
#define DF_INOS_SYNCHRONOUS
Definition inosmacro.h:332
#define INOS_AND(variable, mask)
Definition inosmacro.h:210
Descriptor structure used to configure a base axis. It is usually only used in conjunction with SINOS...
Definition cinosbaseaxis.h:390
torque limitation
Definition cinosbaseramp.h:661
Descriptor structure used to configure the behaviour of two coupled axes It is usually defined in a c...
Definition cinosphysicalaxis.h:234
real64 m_rMaxDelta
Max. allowed delta [units] of the two coupled axes before an error is triggered.
Definition cinosphysicalaxis.h:245
inosName64 m_cName1
Name of first axis to be coupled.
Definition cinosphysicalaxis.h:237
inosName32 m_cLoadBalanceAxis
Axis whose position determines the load balancing (used only when option DF_INOS_AXIS_CPD_LOAD_BALANC...
Definition cinosphysicalaxis.h:257
real64 m_rLoadBalanceFactor
load balance factor (used only when option DF_INOS_AXIS_CPD_LOAD_BALANCE is set)
Definition cinosphysicalaxis.h:261
uint32 m_uOptions
Coupling options, see DF_INOS_AXIS_CPD_SEQUENTIAL.
Definition cinosphysicalaxis.h:253
inosName64 m_cName2
Name of second axis to be coupled.
Definition cinosphysicalaxis.h:241
real64 m_rMaxCorr
Max. allowed correction if auto correction enabled, see DF_INOS_AXIS_CPD_CORR.
Definition cinosphysicalaxis.h:249
Definition cinosphysicalaxis.h:267
CINOSDacChannel * m_pItrqSlave
pointer to Itrq output of slave axis (aka Y1)
Definition cinosphysicalaxis.h:273
uintid m_uHookId
load scale hook
Definition cinosphysicalaxis.h:277
CINOSDacChannel * m_pItrqMaster
pointer to Itrq output of master axis (aka Y)
Definition cinosphysicalaxis.h:271
CINOSBaseAxis * m_pAxis
pointer to the axis whose position determines the load balancing (aka X)
Definition cinosphysicalaxis.h:269
real64 m_rFactor
load balancing factor
Definition cinosphysicalaxis.h:275
torque limitation
Definition cinosbasemotor.h:188
Descriptor structure used to configure a physical axis. It is usually defined in a corresponding xxx....
Definition cinosphysicalaxis.h:175
uint32 m_uBorderDelay
Defines the time [ms] to wait at the border till controller settled.
Definition cinosphysicalaxis.h:222
inosName32 m_cMotorType
Motor type name. Currently only INOSBaseMotor is a valid name.
Definition cinosphysicalaxis.h:183
inosName32 m_cForceType
Force control type name.
Definition cinosphysicalaxis.h:188
uint32 m_uBorderType
Defines the type of border detection or in other words, tells the system what kind of border detectio...
Definition cinosphysicalaxis.h:218
real64 m_rBorderLimit
Border limit. If working with border methods like CINOSPhysicalAxis::MoveToBorder this value defines ...
Definition cinosphysicalaxis.h:208
inosName32 m_cControlType
Controller type name. Valid types are INOSPosControl, INOSCurControl or a customer specific controlle...
Definition cinosphysicalaxis.h:179
uint32 m_uBorderStop
Defines how to stop a move after a border detection, see CINOSPhysicalAxis::EBorderStop.
Definition cinosphysicalaxis.h:226
real64 m_rBorderRelax
This value defines the move away distance [units] after border detection before reactivating position...
Definition cinosphysicalaxis.h:213
ramp parameters
Definition cinosbaseramp.h:503