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

    Long-established Member

    I noticed, that the addon is not yet released - but if you contact our helpdesk, we can send you a test version....


    Some platforms can have variant types, which cannot be handled by Beckhoff so far and will never be supported. I had this experience with Arburg's moulding machines. The only solution was to write a helper application in C#, communicating with the PLC over Ads.

    Maybe in your case you have similar problems with Siemens.

    Established Member

    Yes, we did it like you said, we create an application with C#, it works as OPC UA client and communicate with Siemens RFID, and TwinCAT PLC communicates with this application with ADS, but this application is not working well, sometimes it losts communication with RFID, we can't solve this problem, and also Siemens don't give any support for this, finally, we get rid of Siemens RFID and change to other solutions.