es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problema del servidor OPC al cargar la página XML con LoadPredefinedNodes.

Actualmente estoy trabajando en un proyecto de C# en el que quiero desarrollar mi propia aplicación de servidor OPC que pueda configurar con XML. Ya compilé un objeto XML personalizado con el repositorio UA-ModelCompiler aquí.

Utilicé el ejemplo “Boiler” del repositorio UA-.NETStandard-Samples. Agregué algunos objetos personalizados para un AGV y quiero integrarlo con mi propio NodeManager. Copié el BoilerNodeManager y lo modifiqué para un AGV. El siguiente método siempre tiene un error.

“`c#
protected override NodeStateCollection LoadPredefinedNodes(ISystemContext context)
{
NodeStateCollection predefinedNodes = new NodeStateCollection();
predefinedNodes.LoadFromBinaryResource(context, "Opc.Ua.Sample.Agv.Agv.PredefinedNodes.uanodes", this.GetType().GetTypeInfo().Assembly, true);

<pre><code><br />“`c#
return predefinedNodes;

}
Con este mensaje de error:

Mensaje de error en neerlandés

Cuando uso la ruta completa, funciona, pero con el archivo de recurso incrustado no lo hace.

Creo que olvidé algo, pero no sé qué.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución de problemas del error de archivo de recurso incrustado en la aplicación del servidor OPC en C

    Como experto en IT especializado en C#, .NET, OPC-UA y OPC, estás trabajando en un proyecto de C# en el que deseas desarrollar tu propia aplicación de servidor OPC que se pueda configurar con XML. Utilizando el ejemplo de Boiler del repositorio UA-.NETStandard-Samples, agregaste algunos objetos personalizados para un AGV y modificaste el BoilerNodeManager para AGV. Sin embargo, te encontraste con un error con el método LoadFromBinaryResource al usar un archivo de recurso incrustado en la aplicación del servidor OPC.

    Mensaje de error

    “`c#
    Recurso no encontrado: No se pudo encontrar el recurso ‘Opc.Ua.Sample.Agv.Agv.PredefinedNodes.uanodes’.


    ### Solución Cuando utilizas un archivo de recurso incrustado en una aplicación del servidor OPC en C#, debes asegurarte de que el archivo de objeto personalizado se haya agregado al proyecto y que las propiedades del archivo estén configuradas como "Recurso incrustado" en Visual Studio. Para solucionar el error con el método `LoadFromBinaryResource`, debes verificar lo siguiente: 1. Asegúrate de que el archivo de objeto personalizado `Opc.Ua.Sample.Agv.Agv.PredefinedNodes.uanodes` se haya agregado al proyecto de tu aplicación del servidor OPC en C# (haz clic derecho en el proyecto > Agregar > Elemento existente... > selecciona el archivo). 2. En Visual Studio, selecciona el archivo de objeto personalizado y ve a "Propiedades" (tecla F4) para configurar la "Acción de compilación" como "Recurso incrustado". 3. Modifica el método `LoadPredefinedNodes` en tu clase NodeManager personalizada de la siguiente manera: ```c# protected override NodeStateCollection LoadPredefinedNodes(ISystemContext context) { NodeStateCollection predefinedNodes = new NodeStateCollection(); predefinedNodes.LoadFromBinaryResource(context, "Opc.Ua.Sample.Agv.Agv.PredefinedNodes.uanodes", typeof(TuClaseNodeManagerPersonalizada).GetTypeInfo().Assembly, true); return predefinedNodes; }

    En el método LoadFromBinaryResource, asegúrate de utilizar el parámetro typeof correcto (en este caso, tu clase NodeManager personalizada) para cargar correctamente el archivo de recurso incrustado.

    Después de realizar estos cambios, reconstruye tu aplicación del servidor OPC en C# y ejecútala nuevamente para confirmar que el error se haya solucionado.

    ¡Espero que esto sea de ayuda!

Comments are closed.