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

FlexProfile position jump at cam switch and unwanted repositioning after master stop

FlexProfile position jump at cam switch and unwanted repositioning after master stop

giustola69
Long-established Member

Hello,

While doing some test on the CtrlX Flexprofile I found a strange behaviour after a cam profile switch.

Configuration:

Real Axis Linear Module = 1000

FB Settings:

giustola69_0-1704360979763.png

 

Flexprofile 0 =>

giustola69_3-1704360469493.png

{
    "name": "0",
    "segments": [
        {
            "gain": 360,
            "range": 360,
            "v0": 0,
            "a0": 0,
            "j0": 0.001745329252,
            "v1": 0,
            "a1": 0,
            "j1": 0.001745329252,
            "limV": 1.874999776392,
            "limA0": -0.010076661611,
            "limA1": 0,
            "limJ0": 0.001745329252,
            "limJ1": 0,
            "lambda": 0.5,
            "syncType": "SEG_DEFAULT",
            "lawType": "REST_IN_REST_POLYNOMIAL_5",
            "pointTableReference": "",
            "master": 1,
            "camBuilderSegmentData": "{\"a0Formula\":null,\"a1Formula\":null,\"AmaxFormula\":null,\"IsPointsTable\":false,\"Description\":\"\",\"j0Formula\":null,\"j1Formula\":null,\"JmaxFormula\":null,\"MasterRangeFormula\":null,\"gainFormula\":null,\"v0Formula\":null,\"v1Formula\":null,\"VmaxFormula\":null,\"MotionLawGUID\":\"45bffbdb-1943-4164-a718-20d09149ff08\"}"
        }
    ],
    "events": [],
    "masterAxsRefVel": 1,
    "camBuilderProfileData": "{\"AdditionalCamData\":null,\"AdditionalProfileData\":{\"LastCamShaftDistance\":360.0,\"LastNumCamPoints\":1024,\"LastContainsLastPoint\":true,\"LastOperatingModeFilterIndex\":0},\"ApplicationCamData\":null,\"CommonCamData\":null,\"ProfileData\":{\"ChangeStartAndEndVelocity\":1,\"MasterModulo\":360.0,\"MasterPositionUnit\":\"Degree\",\"MasterStartPosition\":0.0,\"MasterVelocityFormula\":null,\"MasterVelocityUnit\":\"RPM\",\"SlaveAccelerationUnit\":\"RAD_SEC2\",\"SlaveJerkUnit\":\"RAD_SEC3\",\"SlavePositionUnit\":\"Degree\",\"SlaveStartPosition\":0.0,\"SlaveVelocityUnit\":\"RPM\",\"Variables\":null,\"Header\":{\"ApplicationName\":null,\"ApplicationVersion\":null,\"CamPackageVersion\":null,\"CreationDate\":\"2023-12-04T11:43:52.7100535+01:00\",\"Description\":null,\"GUID\":\"a2ec42c5-2708-4152-8b73-5f0b0bbad063\",\"LastChangeDate\":\"2023-12-04T14:43:17.4997618+01:00\",\"MotionStepCount\":1,\"Name\":\"0\",\"Specification\":\"GeneralProfile\",\"SupportedOperatingModes\":\"EMP, FlexProfile\"}}}"
}
 
FlexProfile 1 =>
giustola69_4-1704360506543.png

 

 
{
    "name": "1",
    "segments": [
        {
            "gain": 360,
            "range": 180,
            "v0": 0,
            "a0": 0,
            "j0": 0.013962634016,
            "v1": 0,
            "a1": 0,
            "j1": 0.013962634016,
            "limV": 3.749999552783,
            "limA0": -0.040306646444,
            "limA1": 0,
            "limJ0": 0.013962634016,
            "limJ1": 0,
            "lambda": 0.5,
            "syncType": "SEG_DEFAULT",
            "lawType": "COMMON_POLYNOMIAL_5",
            "pointTableReference": "",
            "master": 1,
            "camBuilderSegmentData": "{\"a0Formula\":null,\"a1Formula\":null,\"AmaxFormula\":null,\"IsPointsTable\":false,\"Description\":\"\",\"j0Formula\":null,\"j1Formula\":null,\"JmaxFormula\":null,\"MasterRangeFormula\":null,\"gainFormula\":null,\"v0Formula\":null,\"v1Formula\":null,\"VmaxFormula\":null,\"MotionLawGUID\":\"2E3EF69C-9A43-49ef-B064-B4E86DCD9535\"}"
        },
        {
            "gain": -360,
            "range": 180,
            "v0": 0,
            "a0": 0,
            "j0": -0.013962634016,
            "v1": 0,
            "a1": 0,
            "j1": -0.013962634016,
            "limV": -3.749999552637,
            "limA0": -0.040306646442,
            "limA1": 0,
            "limJ0": -0.013962634016,
            "limJ1": 0,
            "lambda": 0.5,
            "syncType": "SEG_DEFAULT",
            "lawType": "COMMON_POLYNOMIAL_5",
            "pointTableReference": "",
            "master": 1,
            "camBuilderSegmentData": "{\"a0Formula\":null,\"a1Formula\":null,\"AmaxFormula\":null,\"IsPointsTable\":false,\"Description\":\"\",\"j0Formula\":null,\"j1Formula\":null,\"JmaxFormula\":null,\"MasterRangeFormula\":null,\"gainFormula\":null,\"v0Formula\":null,\"v1Formula\":null,\"VmaxFormula\":null,\"MotionLawGUID\":\"2E3EF69C-9A43-49ef-B064-B4E86DCD9535\"}"
        }
    ],
    "events": [],
    "masterAxsRefVel": 1,
    "camBuilderProfileData": "{\"AdditionalCamData\":null,\"AdditionalProfileData\":{\"LastCamShaftDistance\":360.0,\"LastNumCamPoints\":1024,\"LastContainsLastPoint\":true,\"LastOperatingModeFilterIndex\":0},\"ApplicationCamData\":null,\"CommonCamData\":null,\"ProfileData\":{\"ChangeStartAndEndVelocity\":1,\"MasterModulo\":360.0,\"MasterPositionUnit\":\"Degree\",\"MasterStartPosition\":0.0,\"MasterVelocityFormula\":null,\"MasterVelocityUnit\":\"RPM\",\"SlaveAccelerationUnit\":\"RAD_SEC2\",\"SlaveJerkUnit\":\"RAD_SEC3\",\"SlavePositionUnit\":\"Degree\",\"SlaveStartPosition\":0.0,\"SlaveVelocityUnit\":\"RPM\",\"Variables\":null,\"Header\":{\"ApplicationName\":null,\"ApplicationVersion\":null,\"CamPackageVersion\":null,\"CreationDate\":\"2023-12-04T11:50:48.5011634+01:00\",\"Description\":null,\"GUID\":\"38ce51a9-1442-4d57-bfd1-9791e4e56d0a\",\"LastChangeDate\":\"2024-01-03T14:29:26.3722696+01:00\",\"MotionStepCount\":2,\"Name\":\"1\",\"Specification\":\"GeneralProfile\",\"SupportedOperatingModes\":\"FlexProfile\"}}}"
}
 
When the profile switch from cam 0 to cam 1 there is a jump with a 2 mm negative positioning
 
 giustola69_0-1704359895582.png
 
Then if we switch back to profile 0 and stop the master axis the slave axis move to unwanted position
returning to the prevoius step because it miss the 2 mm jump it took at the 1st profile switch
giustola69_1-1704360301074.png

 

 

giustola69_2-1704360403537.png

 

Can you help me to understand why we have this behaviour ?

Many Thanks
Giuseppe
 
 
1 REPLY 1

giustola69
Long-established Member

Hello,

I found the reason for the strange behavior I had encountered and it was due to an incorrect setting of the coupling mode of the new profile which was set to SLAVE_ORIGIN_MASTER_ORIGIN and which therefore did not allow the axis to synchronize with the second profile because it was trying to bring the slave axis back in origin and therefore to zero. By setting the ProfileEntry as shown in the figure below, the profile change works correctly.

 

 

giustola69_0-1704376540239.png

Many Thanks to Kohl Juergen (DC-AE/STS1) <Juergen.Kohl2@boschrexroth.de>

Giuseppe

 

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