diff --git a/BasicComponents/BasicComponents.plcproj b/BasicComponents/BasicComponents.plcproj index 124a628..14875d4 100644 --- a/BasicComponents/BasicComponents.plcproj +++ b/BasicComponents/BasicComponents.plcproj @@ -45,6 +45,9 @@ + + Code + Code @@ -72,6 +75,9 @@ Code + + Code + Code diff --git a/BasicComponents/DUTs/E_CmdResult.TcDUT b/BasicComponents/DUTs/E_CmdResult.TcDUT new file mode 100644 index 0000000..7e49151 --- /dev/null +++ b/BasicComponents/DUTs/E_CmdResult.TcDUT @@ -0,0 +1,24 @@ + + + + + + \ No newline at end of file diff --git a/BasicComponents/POUs/Components/AxisPTP/E_AXIS_PTP_STATE.TcDUT b/BasicComponents/POUs/Components/AxisPTP/E_AXIS_PTP_STATE.TcDUT index 40c18a8..7814430 100644 --- a/BasicComponents/POUs/Components/AxisPTP/E_AXIS_PTP_STATE.TcDUT +++ b/BasicComponents/POUs/Components/AxisPTP/E_AXIS_PTP_STATE.TcDUT @@ -6,16 +6,24 @@ {attribute 'to_string'} TYPE E_AXIS_PTP_STATE : ( - OFF := 0, - WAIT_FOR_ENABLE, - ENABLED, - HOMING, - MOVING_ABSOLUTE, - MOVING_RELATIVE, - MOVING_VELOCITY, - MOVING_MODULO, - HALTING, - WAIT_FOR_DISABLE, + IDLE := 0, + START_ENABLE, + WAIT_ENABLE, + START_DISABLE, + WAIT_DISABLE, + START_HOMING, + WAIT_HOMING, + START_MOVING_ABSOLUTE, + WAIT_MOVING_ABSOLUTE, + START_MOVING_RELATIVE, + WAIT_MOVING_RELATIVE, + START_MOVING_VELOCITY, + WAIT_MOVING_VELOCITY, + START_MOVING_MODULO, + WAIT_MOVING_MODULO, + START_HALTING, + WAIT_HALTING, + ENTER_ERROR, ERROR, RESET ); diff --git a/BasicComponents/POUs/Components/AxisPTP/FB_AxisPTP.TcPOU b/BasicComponents/POUs/Components/AxisPTP/FB_AxisPTP.TcPOU index 61f2d5d..6232180 100644 --- a/BasicComponents/POUs/Components/AxisPTP/FB_AxisPTP.TcPOU +++ b/BasicComponents/POUs/Components/AxisPTP/FB_AxisPTP.TcPOU @@ -3,8 +3,6 @@ +xHomed := stIO.io_fbAxisRef.Status.Homed; +lrActPosition := stIO.io_fbAxisRef.NcToPlc.ActPos; +xIsStopped := stIO.io_fbAxisRef.Status.StandStill OR stIO.io_fbAxisRef.Status.Disabled;]]> + + + + + + + + + + + + - - + - - + E_AXIS_PTP_STATE.ERROR: + M_Homing := E_CmdResult.ERROR; + + ELSE + M_Homing := E_CmdResult.BUSY; +END_CASE]]> - - - - + E_AXIS_PTP_STATE.ERROR: + M_MoveModulo := E_CmdResult.ERROR; + + ELSE + M_MoveModulo := E_CmdResult.BUSY; +END_CASE]]> - - + E_AXIS_PTP_STATE.ERROR: + M_MoveRel := E_CmdResult.ERROR; + + ELSE + M_MoveRel := E_CmdResult.BUSY; +END_CASE]]> - - + +CASE _eState OF + E_AXIS_PTP_STATE.IDLE: + _eMoveDirection := eDirection; + _eState := E_AXIS_PTP_STATE.START_MOVING_VELOCITY; + + xBusy := TRUE; + xDone := FALSE; + M_MoveRel := E_CmdResult.ACCEPTED; + + E_AXIS_PTP_STATE.ERROR: + M_MoveRel := E_CmdResult.ERROR; + + ELSE + M_MoveRel := E_CmdResult.BUSY; +END_CASE]]> diff --git a/BasicComponents/POUs/Components/AxisPTP/ST_AxisPTP_IO.TcDUT b/BasicComponents/POUs/Components/AxisPTP/ST_AxisPTP_IO.TcDUT new file mode 100644 index 0000000..6d68578 --- /dev/null +++ b/BasicComponents/POUs/Components/AxisPTP/ST_AxisPTP_IO.TcDUT @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file