Developer Portal Community

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

    RFID TagPresent use in object exception

    RFID TagPresent use in object exception

    GergoSz
    Member

    Dear Colleagues,

    We are working here on an object for our ToolControl system, and we use also RFID for it.

    First we started to use the DataTagAccess object, and we parametrised inside with the interface.

    Since then we learned the we don't need the read command, so we only use the fix code from the BIS V-6110 peripheral.

    During startup my object's ParCfg is parametrised with the interface.

    I can use  the fixcode in my project with the following line:

    _manageUidToString(_parcfg.iDataTagStream.Uid,_uidInString=>OutImm.BoxHead.UniqueId);

    (Where we just convert array of bytes to string.)

    Problem comes when I would like to check TagPresent:

    _tagPresR( CLK := _parCfg.iDataTagStream.TagPresent );

    I got an exception immediately when I would like to use it any way. (Tried with direct use also, without rising edge)

    If I use directly the peripheral (Peripherals._A204HeadChannel.TagPresent) then it is working, but I had one idea what I don't like to use it in the object, to put it into the OnApplyPar immediately, and hand it over to a local bool.

    Do You have any idea to use the _parCfg.iDataTagStream.TagPresent inside my code somehow?

     

    5 REPLIES 5

    Düscha
    Long-established Member

    Hello,

    its not allowed using _parCfg from outside.

    If you need the value for TagPresent, you can using Unit.OutImm.TagPresent.

     

    One quastion, do you create your own object?

    I would like to use it inside my lib, in a method under the Unit.

    Thorsten_Brach
    Long-established Member

    At what exact moment do you access the interface ?

    Is it possible that the interface is not yet set but is already being accessed ?

    Try to check the interface is set, before accessing it :

    IF ( _parCfg.iDataTagStream <> XNULL )
    THEN
    _tagPresR( CLK := _parCfg.iDataTagStream.TagPresent );
    END_IF

    But as Düscha explained, you normaly should not access the _parCfg parameters from outside the function block,
    where the _parCfg is declared...




    Düscha
    Long-established Member

    Have you copy ParCfg to _parCfg.

    For example in the method OnUnitOperationalEnter

    Have you set ParCfg.iDataTagStream := InstanceFromYourPeripheral;

    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