Methods are used corresponding to the following FSM. There is no internal FSM. Methods are called by an external FSM corresponding to events it processes.
In the table below, external events are in bold font. The internal events are in italic font. It is the client's responsibility to query the component to determine if an internal event has occurred. Upon detection of internal event, action associated with transition to new state should be executed.
First State = *
Beginning State | Event | Ending State | Action |
AbnormalStopped | reset | Resetting | resetAxisAbsPositioningAction |
AbnormalStopping | update | AbnormalStopping | updateAbnormalStoppingAxisAbsPositioningAction |
AbnormalStopping | completed | AbnormalStopped | n/a |
HardStopping | completed | HardStopped | n/a |
HardStopping | update | HardStopping | updateHardStoppingAxisAbsPositioningAction |
* | start | AbsPositioning | startAxisAbsPositioningAction |
AbsPositioning | update | AbsPositioning | updateAxisAbsPositioningAction |
AbsPositioning | hardstop | HardStopping | hardStopAbsPositioningAction |
AbsPositioning | stop | Stopping | stopAxisAbsPositioningAction |
* | error | Faulted | catastrophic error use special plug to resolve error |
Resetting | update | Resetting | resettingAxisAbsPositioningAction |
Resetting | completed | (H) | resumes from History state |
Stopping | update | Stopping | updateStoppingAxisAbsPositioningAction |
Stopping | completed | Stopped | n/a |
The following table represents the states and its associated query method.
State | Query | Comments |
Faulted | isFaulted() | Clients should query component each cycle to determine if internal error occurred. |
* | isCompleted() | Clients should query component each cycle to determine if internal completion has occurred. Transition to next state, and associated action can be performed. |
HardStopped | isHardStopped() | If hardStopped is true, then hardStopping completed. Power can now be disabled. |
HardStopping | isHardStopping() | If true, performing panic stop, exceed any limits, break any rules, stop as soon as possible. This is part of an ESTOP is mapped into two events, first a hard stop event, then a disable power event after motion has ceased. Estopping may or may not take more than one cycle. |
AbnormalStopped | isAbnormalStopped() | Abnormal stopped, can resume after issue with either internal failure or safety violation resolved. |
AbnormalStopping | isAbnormalStopping() | Abnormal stop means stop as quickly as possible, but save the hardware. Internal failure or safety violation detected to triggers an abnormal stop. |
Finished | isFinished() | AbsPositioning finished. |
AbsPositioning | isAbsPositioning() | Component is performing a absolute positioning. |
Resetting | isResetting() | Component is resetting the absolute positioning operation. |
Stopping | isNormalStoppingAbsPositioning() | Component is normal stopping the absolute positioning. |
Stopped | isNormalStopped() | Component has stopped absolute positioning normally. |
Stopping| AbnormalStopping| HardStopping |
isStoppingAbsPositioning() | Component is stopping the absolute positioning in some form. |
Stopping| AbnormalStopping| HardStopping |
isStoppedAbsPositioning() | Component has stopped absolute positioning in some form. |
Methods in interface IAxisAbsolutePos |
, finishedAbsolutePosAction (), hardStopAbsolutePosAction (), isAbnormalStopped (boolean * b), isAbnormalStopping (boolean * b), isCompleted (boolean * b), isFaulted (boolean * b), isFinished (boolean * b), isHardStopped (boolean * b), isHardStopping (boolean * b), isNormalStopped (boolean * b), isNormalStopping (boolean * b), isResetting (boolean * b), isStopped (boolean * b), isStopping (boolean * b), resetAbsolutePosAction (), startAbsolutePosAction (double position), stopAbsolutePosAction (), updateAbnormalStoppingAbsolutePosAction (), updateAbsolutePosAction (), updateHardStoppingAbsolutePosAction (), updateResettingAbsolutePosAction (), updateStoppingAbsolutePosAction ()
|
Methods inherited from interface IOmacAxis |
setAxisReference(IAxis *)
|
Methods inherited from interface IOmac |
configToString(BSTR *), configure(BSTR,BSTR), doneConnecting(), donePublishing(), getIIDs(IEnumGUID **), getName(BSTR *), getOmacIID(_GUID *), init(), isConfigured(BSTR *), isFullyConfigured(boolean *), isNamed(BSTR,boolean *), prepare(), quit(), restore(), save(), setName(BSTR), shutdown(), start(), startConnecting(), startPublishing(), toString(BSTR *), update()
|
Methods inherited from interface IUnknown |
AddRef(), QueryInterface(REFIID,void **), Release()
|
Method Detail |
HRESULT abnormalStopAbsolutePosAction()
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT finishedAbsolutePosAction()
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT hardStopAbsolutePosAction()
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT isAbnormalStopped(/*[out,retval]*/ boolean * b)
b
- return true if in state, false if not in state.
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT isAbnormalStopping(/*[out,retval]*/ boolean * b)
b
- return true if in state, false if not in state.
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT isCompleted(/*[out,retval]*/ boolean * b)
b
- return true if done, false if not done.
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT isFaulted(/*[out, retval]*/ boolean * b)
b
- return true if error has occurred, false if not.
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT isFinished(/*[out,retval]*/ boolean * b)
b
- return true if done, false if not done.
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT isHardStopped(/*[out,retval]*/ boolean * b)
b
- return true if in state, false if not in state.
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT isHardStopping(/*[out,retval]*/ boolean * b)
b
- return true if in state, false if not in state.
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT isNormalStopped(/*[out,retval]*/ boolean * b)
b
- return true if stopped normally, false if not.
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT isNormalStopping(/*[out,retval]*/ boolean * b)
b
- return true if stopping normally, false if not.
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT isResetting(/*[out,retval]*/ boolean * b)
b
- return true if state, false if not.
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT isStopped(/*[out,retval]*/ boolean * b)
b
- return true if stopped, false if not.
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT isStopping(/*[out,retval]*/ boolean * b)
b
- return true if stopping, false if not.
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT resetAbsolutePosAction()
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT startAbsolutePosAction(/*[in]*/ double position)
position
- absolute position to move to.
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT stopAbsolutePosAction()
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT updateAbnormalStoppingAbsolutePosAction()
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT updateAbsolutePosAction()
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT updateHardStoppingAbsolutePosAction()
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT updateResettingAbsolutePosAction()
S_OK -
if successful.
E_FAIL -
if unsucessful.
HRESULT updateStoppingAbsolutePosAction()
S_OK -
if successful.
E_FAIL -
if unsucessful.