cancel
Showing results for 
Search instead for 
Did you mean: 
SOLVED

ML_KinPolyTransP and ST_CONTINUOUS_SLOPE

ML_KinPolyTransP and ST_CONTINUOUS_SLOPE

bostroemc
New Contributor

I am using KinInterface with arKinCtrl_gb[].CoordMode.SlopeType = MB_KIN_CONT_MOTION.ST_CONTINUOUS_SLOPE and ML_KinPolyTransP to traverse a space curve at constant speed.  If I issue the motion commands in quick succession (for example, all within a single scan), this works beautifully:

Screenshot 2023-05-11 050304-1.png

However, if I pause for some time between commands, I see a break in the continuous motion.  For example, if I pause for 50 ms between issuing motion commands 1-6 and motion commands 7-12, the motion pauses at the end of move 6 as shown below.  Note that motion command 1 is still active when then final six motion commands are issued.  (See also attached video.)

Screenshot 2023-05-11 050538-2.png

The associated code looks like this:

move_command_staging.png

Is this there any way to avoid this behavior?  In my actual use case I would like to traverse a very long space curve at constant speed and not all target points are immediately available (i.e. at start). 

Sample ctrlX PLC project attached.

1 REPLY 1

CodeShepherd
Community Moderator
Community Moderator

The thing is that our kernel uses several commands for blending and and then prepares them to a moveable curve. If there are less commands available as expected a stop will be inserted, that will not be overwritten even if more/new commands are coming in.

To tell the kernel to not insert that stop the command option ML_KinContour is needed. Be aware that if not enough commands are available in the buffer at the end of a movement and option is still active an error will occur.

Procedure would be as follows:

  1. switch on ML_KinContour (and as before ML_KinPolyTransP)
  2. insert first commands
  3. movement is started immediately
  4. insert at some point further commands
  5. insert last commands of your contour
  6. switch off ML_KinContour (and as before ML_KinPolyTransP)
  7. commands will all be finished and movement ends

There is also the possibility to delay the start of the movement by inserting a number of must have commands available via the input "PrepCmds".

Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist