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

How to implement a Cyclic velocity change in CtrlX 1.16 version

How to implement a Cyclic velocity change in CtrlX 1.16 version

wallasmoon
Member

Dear all,

     I was looking in the library section a function or function block that could implement some kind of cyclic velocity control as it exist in previous Indraworks engineering versions: ML_OpenCyclicVelocityChannel.

As I couldn´t find it, I would like to ask anybody if there is a library that I am not looking at, or any suggestion of how to implement this kind of control. 

Thank you very much in advance for any given help, support and/or hint.

 

3 REPLIES 3

CodeShepherd
Community Moderator
Community Moderator

At the moment only a cyclic position channel is implemented and velocity is not planned.

As a workaround you could use the formula: pos = vel*cycleTime. Therefore you need AxsCyclicSetPoint to open the cyclic channel and SetCyclicSetPoint to send the position.

Thank you so much CodeShepherd for your fast answer eventhough it is not the one I would like to red but it is a solution at leats.

I am a little affraid that the solution you propose could cause some kind of minor inestability or not continuos movement because when the position is about to being reached the velocity is decreasing to reach the point with zero velocity or micro changes in velocity that could be felt as vibration or something. Just theoretical speaking (or guessing) of course...but those kind of workaround usually has a hidden cost to pay.

Thanks anyway and again for your help and support.


I think I found another workaround, that is not fully tested right now. Feel free to write me a private message with you contact data if you have questions or need a meeting for testing.

Steps to go:

Add velocity related parameter to the cyclic data
MDT:
S-0-0036 Velocity command value
S-0-0037 Additive velocity command value
AT:
S-0-0040 Velocity feedback value of encoder 1

Add velocity command value and feedback to the AxisProfile mapping

Use e.g. in PLC the command

ML_AxsVelocity(Data:= Data);
Data.In.Velocity := 0.0;
Data.In.DriveVelMode := TRUE;

Send own velocity command values via additive velocity command value

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