Skip to content

BadNotImplemented when calling OPCUA Method

Hi all,

I want to add a method into my opcua server, I have been trying to follow the guide in this tutotorial CppExamples/Examples/OpcPlcManager at master · PLCnext/CppExamples.

I follow all the steps, but I get the BadNotImplemented error when trying to call the method from UaExpert.

Any idea of what I could be doing wrong?


Comments

  • Hello. That tutorial is a follow-on from the "simpler" tutorial, here:

    Did you manage to get that simpler example working?

  • Thanks for the answer! I haven't tried that because I am looking for a solution that uses c++. Do you have any other examples with c++ I could try?

  • Ok, that makes sense. The simpler tutorial uses many of the principles that are needed for the more complex C++ implementation. If you're able to get the simpler example running, then that will help to narrow down where the problem might be when you try the more complex example.

    For the C++ example - are there messages in the Output.log file that confirm that your ACF component instance has started?

  • Yes, I do see that the component is active. I see the "Component 'MyProjectComponent1' from library 'MyProject' created."

    The error I see after I call the opcua method:

     Arp.Services.OpcUAServer.Internal.InformationModel.Xml.NodeManager ERROR - Method for OpcPlcManagerComponent1/Stop.UA_MethodState not implemented


    Perhaps the reference to the FunctionBlock is incorrect?

    <MethodTarget xmlns="http://phoenixcontact.com/OpcUA/2019/NodeSetExtensions.xsd" FunctionBlock="OpcPlcManagerComponent1/Stop"/>

  • I do see that the component is active. I see the "Component 'MyProjectComponent1' from library 'MyProject' created.

    That is not the correct component or library name.

    These steps in the example:

    ... should create a component instance named 'OpcPlcManagerComponent1' from library 'OpcPlcManager.OpcPlcManagerLibrary'.

  • You are right, that was the wrong component. I do have the right name in the project (see image below)

    However, I don't see anything related to that component in the in the logs.

  • I have also tried to move the port to MyProjectComponent1 but I still get

     Arp.Services.OpcUAServer.Internal.InformationModel.Xml.NodeManager ERROR - Method for MyProjectComponent1/GetPlcState.UA_MethodState not implemented

  • Ignore my last comment.

    Moving the port to MyProjectComponent1 fixed the problem. I think that OpcPlcManagerComponent1 wasn't active for some reason.

    Thanks for the support!

  • edited December 2024

    ACF projects are not deployed using PLCnext Engineer, so that might explain why the ACF component instance is not started.

    The file named "How_to_deploy.txt" that is created with each new ACF project includes information on how to deploy that type of project. This e-learning module also describes this process:


Sign In or Register to comment.