Developer Portal Community

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

    How to use OPC UA method with complex input parameters

    How to use OPC UA method with complex input parameters

    hbszjjw
    Established Member

    I'm working for a Siemens RFID with model RF186C, I use OPC UA to connect with it, PLC works as OPC UA client, now the connection is established, I can read variables from the reader, but If have to use method call to read tag and write tag, If I want to use method call for read tag, I need assign some input and output parameters(arguments), the ReadTag method declared in reader is as following:

    ReadTag (
    [in] ScanData Identifier
    [in] CodeTypeDataType CodeType
    [in] UInt16 Region
    [in] UInt32 Offset
    [in] UInt32 Length
    [in] ByteString Password
    [out] ByteString ResultData
    [out] AutoIdOperationStatusEnumeration Status);

    the problem is that there are some structures in the parametes which is not present in TwinCAT, for example I did the first parameter Identifier

    VAR
    _identifier : DWORD;
    END_VAR

    _paramCounterIn := _paramCounterIn + 1;
    _paramListIn[_paramCounterIn].IsString := FALSE;
    _paramListIn[_paramCounterIn].pString := ADR(_identifier);
    _paramListIn[_paramCounterIn].ParamAdr := ADR(_identifier);
    _paramListIn[_paramCounterIn].ParamSize := SIZEOF(_identifier);
    _inputArgInfos[_paramCounterIn].DataType := eUAType_UInt32; 
    _inputArgInfos[_paramCounterIn].ValueRank := -1; 
    _inputArgInfos[_paramCounterIn].ArrayDimensions[1] := 0; 

    but it failed, sometimes it throws following error, does anyone have experience for method call with Opc UA, please give me some instruction, thanks!

    0x E4DD 0105

    UAC_E_ITEMTYPE

    Invalid or unsupported item type

     

    7 REPLIES 7

    SteffenR-
    Community Moderator
    Community Moderator

    Thorsten_Brach
    Long-established Member

    You are trying to execute the OPC UA method call natively with the PLCopen function blocks - this is indeed not so easy and you have to do some calculations to set the correct data addresses.

    Have you looked at the NexeedOpcUaClient addon ?

    Maybe it will make things easier for you.

     

     

    hbszjjw
    Established Member

    thanks, but I already have this document, and the ReadTag method declaration comes from it, but my question is how to use method call with OPC UA PLCOpen API in beckhoff.

    this is a good news for me, but I can't find NexeedOpcUaClient in BCI object repository, can you sent the link for it?

    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