FORUM CTRLX AUTOMATION
ctrlX World Partner Apps for ctrlX AUTOMATION
Dear Community User! We have started the migration process.
This community is now in READ ONLY mode.
Read more: Important
information on the platform change.
01-20-2022 10:15 AM
Hello,
I just tried the buffer mode with the axis interface (discrete Motion)
The speed goes to zero between 2 Blocks (Move Absolute) see print screen.
My question : How could we manage a switching from the block N°1 to N°2 without stopping (by defining a speed setpoint at the postion set point) ?
In the MLC there is the FB (Hydraulic) who manage the automatic swithing from one bloc to the next one. it is very usefull in a lot of applications.
I was wondering if the buffer Mode could manage it. Is it plan to improve the buffer mode in the future?
Thak you very much.
Solved! Go to Solution.
01-25-2022 02:21 PM
Please have a look to the example of the motion interface itself that can be inserted as a template:
3: // move absolute - send three commands in one cycle
arAxisCtrl_gb[uiAxisIndex].PosMode.Position := 30;
arAxisCtrl_gb[uiAxisIndex].PosMode.Velocity := 10;
aruliReturnedCmdId[0] := arAxisCtrl_gb[uiAxisIndex].Admin.mTriggerMoveCmd(_OpMode:= ModePosAbs, Buffered:=TRUE, UserID:=CONCAT('my own id ', TO_STRING(uiMyOwnId)) );
uiMyOwnId := uiMyOwnId + 1;
arAxisCtrl_gb[uiAxisIndex].PosMode.Position := -30;
arAxisCtrl_gb[uiAxisIndex].PosMode.Velocity := 20;
aruliReturnedCmdId[1] := arAxisCtrl_gb[uiAxisIndex].Admin.mTriggerMoveCmd(_OpMode:= ModePosAbs, Buffered:=TRUE, UserID:=CONCAT('my own id ', TO_STRING(uiMyOwnId)) );
uiMyOwnId := uiMyOwnId + 1;
arAxisCtrl_gb[uiAxisIndex].PosMode.Position := 60;
arAxisCtrl_gb[uiAxisIndex].PosMode.Velocity := 30;
aruliReturnedCmdId[2] := arAxisCtrl_gb[uiAxisIndex].Admin.mTriggerMoveCmd(_OpMode:= ModePosAbs, Buffered:=TRUE, UserID:=CONCAT('my own id ', TO_STRING(uiMyOwnId)) );
uiMyOwnId := uiMyOwnId + 1;
uiState := uiState + 1; // go direct to next state to avoid entering the commands again
4: // wait for CmdDone
IF arAxisStatus_gb[uiAxisIndex].Admin.CmdDone THEN
uiState := uiState + 1;
END_IF