Developer Portal Community

    We are moving! We are currently migrating our community to the new Bosch Connected Industry Online Portal. The community will be available latest in the new year again, until then it will be in read-only mode. Click here for more information.

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    Scanner object ExecState behaviour

    Scanner object ExecState behaviour

    CtrlDiogoC
    Established Member

    Hello all,

    I have a Handheld Scanner and implemented a continuous Read command in the OnUnitOperational method, as suggested in a forum post.

    I implemented a timeout before the scanner read timeout to have the read command continuously.

    However, I am having an odd behaviour regarding the Scanner object ExecState. Once my timeout is reached, I reset the Execute flag, but it seems like the scanner object doesn't reset the command timer.

    In the next Execute set, the ExecState enters the error state, because it reaches its internal timeout.

    Down below I have the code I implemented.

    CASE _step OF
    
      0: // Start command
        IF ( Loc000B720_Scanner.Unit.ExecState = OpconExecState.READY )
        THEN
          Loc000B720_Scanner.Unit.Command := ScannerCmd.READ;
          Loc000B720_Scanner.Unit.Execute := TRUE;
          OpconSetTimeout( PT := T#4S, rTimer := _cmdTimer );
          _step := _step + 1;      
        END_IF      
     
      1: // Wait until finished
        IF( OpconCheckTimeout( rTimer := _cmdTimer ) = OK           ) OR
          ( Loc000B720_Scanner.Unit.ExecState = OpconExecState.DONE )
        THEN
          Loc000B720_Scanner.Unit.Execute := FALSE;
          _step := _step + 1;
        END_IF
        
      2: // End step
        _step := 0;
        
      ELSE
        Loc000B720_Scanner.Unit.Execute := FALSE;
        _step := 0;  
    END_CASE

     

    Thank you in advance.

    6 REPLIES 6

    I am interested in how you communicate with the usb scanner.
    Do you use the functions from beckhoff that require a license?

    CtrlDiogoC
    Established Member

    Yes, we are using the TF6340 Beckhoff license.

    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