Developer Portal Community

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

    Processing Aborted handling

    Processing Aborted handling

    maj9bj
    Long-established Member

    I am looking for some example how to correctly handle partProcessingAborted event because our solution does not work correctly in some cases.

    In our projects we have:

    1. partProcessingAborted triggered by rising edge of ProcessingAborted : BOOL.
    2. In the master Auto step chain there is an implementetion of method OnChainCancel.
    3. The method contains code IF ProcessingStarted THEN ProcessingAborted := TRUE.

    Now we are dealing with situation there is an error (of movement, device) in the step chain and somebody switches to another mode (e.g. Home pos). In this case OnChainCancel is not called and therefore partProcessingAborted is not executed.

    1 REPLY 1

    SteffenR-
    Community Moderator
    Community Moderator

    Our application guideline has a very detailled description regarding error behaviour.

    Summary:

    • Avoid to abort chains with ERROR:
      • Do not use _env.ChainControl:=ERROR, but implement an error behaviour (see example project Digital Machine, update to latest bundle release is ongoing).
      • Do not use SetEvent(OpconEventClass.ERROR, ...), but SetEvent(OpconEventClass.SOFTERROR, ...) and implement an error behaviour.
      • Use RepeatOnError:=TRUE for objects or manually implement repeat behavour.
    • In most cases OnChainCancel and OnChainError should have the same code because in both cases the chain is aborted. Therefore the chain templates in Control plus Studio V5 have a new reset method called by OnChainCancel and OnChainError:
      SteffenR_0-1640163787115.png
    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