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.

cancel
Showing results for 
Search instead for 
Did you mean: 

How to reInit Axis and Kin Interface during PLC RUN

How to reInit Axis and Kin Interface during PLC RUN

Renk
Member

Is it possible after PLC is already started and in RUN, to do another whole Axis and Kinematic Interface reinitialisation???
This function is normaly called/done be PLC_Cold restart.

Can You give some example code for this (v2.6_LTS).

2 REPLIES 2

Jochen_Mueller
Community Moderator
Community Moderator

Hello @Renk 

A reinit of the AxisInterface will be done automatically during a motion state changing to running. No need to do it manual.

Details:

  •  After add the MotIF template the TE_AxisInterfaceMainProg(...) of the (open) library CXA_MOTION_IF_USER will be called by the AxisIfPLCProg. A sucessful initialisation will be signals with TE_AxisInterfaceMainProg.InitDone.
    Jochen_Mueller_1-1732257549783.png
  • The TE_AxisInterfaceMainProg(...) always check the motion state via the IMC interface. 

    • If the motion is coming in state "RUNNING" a reinit of the motion interface will be initiated.... User signal: "InitDone = TRUE"

    • If the motion is leaving the state "RUNNING" the "InitDone = FALSE". Jochen_Mueller_2-1732258461252.png

For more details please open the TE_AxisInterfaceMainProg at the library manager. If necessary (currently I don't know why) you can modify it.

Regards

Jochen

 

That's my code for reinit. It's seems to work (video attached).


// ------------------------------------------------------------------------------
100: // Axis and Kinematic Interface reset/Reinit
ImcCtrl.Admin._OpMode := MB_IMC_MODE_CONTROL .IMC_MODE_CTRL_CONF;
IF ImcStatus.Admin._OpModeAck = MB_IMC_MODE_STATUS.IMC_MODE_STATUS_CONF THEN
iResetStep := 110;
END_IF

110: // Start again
ImcCtrl.Admin._OpMode := MB_IMC_MODE_CONTROL .IMC_MODE_CTRL_RUN;
IF ImcStatus.Admin._OpModeAck = MB_IMC_MODE_STATUS.IMC_MODE_STATUS_RUN THEN
iResetStep := 120;
END_IF

120: // Normal Reset command
IF NOT fbMotIfReset.Q THEN
iResetStep := 10;
END_IF

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