Developer Portal Community

    Showing results for 
    Search instead for 
    Did you mean: 

    How to use OPC UA method with complex input parameters

    How to use OPC UA method with complex input parameters

    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

    _identifier : DWORD;

    _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


    Invalid or unsupported item type


    7 REPLIES 7

    Community Moderator
    Community Moderator

    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.



    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?