返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >Open62541 NodeSet loader 编译与使用
  • 438
分享到

Open62541 NodeSet loader 编译与使用

OPCUA自动化 2023-09-10 15:09:21 438人浏览 安东尼
摘要

        大多数的OPC UA 建模工具通常是将nodeSet 编译成为C 或者C# 的源代码,然后和Server 程序一起编译。比如uaModeler,Opc foundation 的UA ModelCompiler 以及Open6

        大多数的OPC UA 建模工具通常是将nodeSet 编译成为C 或者C# 的源代码,然后和Server 程序一起编译。比如uaModeler,Opc foundation 的UA ModelCompiler 以及Open62541 提供的nodeset_Compiler 都是如此,这种方式在载入配套规范的Nodeset 无疑是比较方便的,但是对于用户自定义的信息模型,需要灵活地加载。特别是嵌入式控制器,更需要动态地加载信息模型。

   值得庆幸的是,许多Opc Ua 的协议站提供了导入NodeNet的程序。例如在python-opcua 中。使用:

   server.import_xml("../schemas/UA-Nodeset/DI/Opc.Ua.Di.NodeSet2.xml")
    server.import_xml("../schemas/UA-Nodeset/Robotics/Opc.Ua.Robotics.NodeSet2.xml")

     在Open62541 中是NodeSetLoader库。但是网络上有关它的编译和使用信息很少,为此,本博文记录编译的过程。

Step 1 编译和安装Open62541

下载Open62541 包,提示的编译方法是:

mkdir buildcd buildcmake ..make 

最好使用git clone 下载,直接下载zip 好像不全!!

sudo git clone https://GitHub.com/open62541/open62541.git

如果还不齐的化,再使用

sudo git submodule update --init --recursive

 注意:我最新的open62541 1.3.6 版本,可以直接包含NodeLoader包了,这样不需要单独安装Nodeader包。   

下面介绍的是老的方法: 

 node-loader 的编译过程中,需要引用Open62541 package ,如何实现他们的联系,十分重要。 否则会出现:

 解决的方法是将open62541 安装到usr/local.具体的方法是:make install

                 另一个问题是cmake 时 。UA_ENABLE_AMALGMATION 不能选择,要不然它将会Install 一个单一的open62541.h .无法被open62541_nodeset_loader 应用。

Step 2 下载 Open62541/open62541-nodeset-loader

下载地址:

GitHub - open62541/open62541-nodeset-loader: Library for loading opc ua nodesets from xml and sorting the nodes

安装依赖项。libxml-dev

sudo apt-get  install libxml2-dev

Step3 CMake

mkdir buildcd buildcmake ..make

编译出来的是一个静态库,为了让应用程序能够使用这个库,也需要sudo make install 才行

yao@T3660:~/yao2023/c++/open62541-nodeset-loader-master/build$ sudo make install

Step 4 应用程序

#include #include #include #include #include static volatile UA_Boolean running = true;static void stopHandler(int sign) {  UA_LOG_INFO(UA_Log_Stdout, UA_LOGCATEGORY_SERVER, "received ctrl-c");  running = false;}int main(int argc, const char *argv[]) {  UA_Server *server = UA_Server_new();  UA_ServerConfig_setDefault(UA_Server_getConfig(server));  //provide the server and the path to nodeset  //returns true in case of successful import  if(!NodesetLoader_loadFile(server, "../Opc.Ua.Di.NodeSet2.xml", NULL))  {    UA_LOG_INFO(UA_Log_Stdout, UA_LOGCATEGORY_USERLAND, "importing the xml nodeset failed");  }  UA_StatusCode retval = UA_Server_run(server, &running);  //NodesetLoader is allocating memory for custom dataTypes, user has to manually clean up  const UA_DataTypeArray *customTypes =    UA_Server_getConfig(server)->customDataTypes;  UA_Server_delete(server);  NodesetLoader_cleanupCustomDataTypes(customTypes);  return retval == UA_STATUSCODE_GoOD ? EXIT_SUCCESS : EXIT_FaiLURE;}

Step5 编译

 GCc ./OpcUaLoader.c -o OpcUaLoader -lopen62541 -lNodesetLoader -lxml2

显然,open62541 ,nodeset_loader 都是以静态库使用的。

Step 6 运行,使用uaExperter 查看结果。你看到了UA/DI 命名空间以及对象。

现在,我们能够在open62541 Server 中动态倒入NodeSet2 模型了。

来源地址:https://blog.csdn.net/yaojiawan/article/details/131400215

--结束END--

本文标题: Open62541 NodeSet loader 编译与使用

本文链接: https://lsjlt.com/news/402433.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Open62541 NodeSet loader 编译与使用
            大多数的OPC UA 建模工具通常是将NodeSet 编译成为C 或者C# 的源代码,然后和Server 程序一起编译。比如uaModeler,Opc foundation 的UA ModelCompiler 以及Open6...
    99+
    2023-09-10
    OPCUA 自动化
  • Qt中QZXing的编译与使用
    目录0.前言1.编译2.二维码生成3.二维码识别0.前言 zxing 是一个开源的一维/二维条码图像处理库,当前版本为 Java 语言开发: https://github.com/z...
    99+
    2024-04-02
  • 使用C#编译器编译代码
    要使用C#编译器编译代码,可以使用命令行工具csc.exe(C#编译器),或者使用集成开发环境(IDE)如Visual Studio...
    99+
    2023-09-08
    C
  • 如何使用java编译器进行编译
    使用Java编译器进行编译可以通过以下步骤:1. 确保已经安装了Java Development Kit (JDK)。可以通过在命令...
    99+
    2023-09-06
    java
  • vue中使用sass及解决sass-loader版本过高导致的编译错误问题
    目录使用sass及解决sass-loader版本过高导致编译错误安装依赖包使用解决编译错误安装sass(规避因版本过高报错)安装的两个命令配置文件样式标签更改使用sass及解决sas...
    99+
    2024-04-02
  • Golang交叉编译(跨平台编译)的使用
    目录一、何为交叉编译二、交叉编译前的准备安装TDM-GCC三、简述交叉编译四、实练1. 默认编译2.交叉编译一个Arm+Linux小总结一、何为交叉编译 简单地说,就是在一个平台上生...
    99+
    2024-04-02
  • PHP 8 在Centos7下的编译安装与使用
    PHP 8 在Centos7下的编译安装与使用 前言 PHP官方已经停止维护php7,更新一下PHP8手动安装的教程 ...
    99+
    2023-09-03
    php 开发语言
  • Linux下memcache编译安装与基本使用教程
    memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。目前用memcache解决互联网上的大用户读取是非常流行的一种用法,在互联网企业中有着广泛的应用。 memcache是一套...
    99+
    2022-06-04
    linux memcache编译安装 memcache安装
  • HyperLPR3车牌识别-Android使用:SDK编译与部署
    简介 HyperLPR在2023年初已经更新到了v3的版本,该版本与先前的版本一样都是用于识别中文车牌的开源图像算法项目,最新的版本的源码可从github中提取:https://github.com/szad670401/HyperLPR...
    99+
    2023-09-15
    深度学习 图像处理 算法 Powered by 金山文档
  • CentOS 6.10源码编译及使用ansible编译安装httpd2.4.39
    一、编译安装 编译环境准备 主机 系统 A centos6.10 编译所需的httpd、apr、ap...
    99+
    2022-06-04
    ansible安装httpd ansible源码
  • Golang交叉编译之跨平台编译使用详解
    目录在CMD命令行中编译设置Linux编译环境powershell命令行中一、CGO_ENABLED二、GOOS三、GOARCH四、GOHOSTOS五、GOHOSTARCH六、go ...
    99+
    2024-04-02
  • 【Linux编译器-gcc/g++使用】
    1. 背景知识 1. 预处理() 2. 编译() 3. 汇编() 4. 连接() 有关具体详解可以参照这篇博客:程序环境与预处理 2. gcc如何完成 格式 gcc [选项] 要编译的文件 [选项...
    99+
    2023-09-12
    linux 服务器 gcc/g++ Powered by 金山文档
  • c++编译器如何使用
    要使用C++编译器,你需要按照以下步骤进行操作:1. 安装编译器:首先,你需要安装一个C++编译器。常见的C++编译器包括GCC、C...
    99+
    2023-09-08
    c++
  • Linux编译器——gcc/g++使用
    前言:  在上一篇,我们学习了关于文本编辑器 vim 的全部知识,今天给大家带来的是关于Linux编译器—gcc/使用的详细介绍。 本文目录  (一)温习程序的产生的过程 1、前言 2、程序的产生过程 3、🌜初步认识 g...
    99+
    2023-09-01
    linux 运维 服务器
  • javascript编译器使用什么
    JavaScript编译器使用什么?随着JavaScript的不断发展,越来越多的网站和应用程序使用JavaScript作为主要的客户端编程语言。为了确保高效的JavaScript代码执行和优质的用户体验,开发者越来越多地关注编译器在Jav...
    99+
    2023-05-21
  • C编译: 使用gdb调试
    介绍gdb调试命令行使用gdb是the GNU Debugger的简称。它是一款UNIX平台的调试器(debugger),可用于为C, C++, Objective-C, Java, Fortran等程序debug。在gdb中,你可以通过设...
    99+
    2023-06-03
  • Java如何编译和使用
    本文小编为大家详细介绍“Java如何编译和使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java如何编译和使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。O2OA在github上开源了平台源码,用户可以F...
    99+
    2023-06-04
  • Jar包常见的反编译工具介绍与使用
    反编译JAR能干什么: 排查问题、分析商业软件代码逻辑,学习优秀的源码思路。 反编译工具介绍 JD-GUI 下载地址:http://java-decompiler.github.io/ 点评:支...
    99+
    2023-10-22
    Java 反编译 Jar JD-GUI
  • ubuntu系统vscodeC++编译环境配置与使用方式
    目录一、环境配置与使用1、软件与插件安装2、创建工程项目3、运行与调试二、配置文件总结本文参考官网:https://code.visualstudio.com/docs/cpp/co...
    99+
    2022-12-15
    ubuntu系统vscode C++编译环境配置 C++编译环境使用
  • 怎么使用VC++ 6.0编译器
    怎么使用VC++ 6.0编译器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。VC++ 6.0编译作为一个高效的.NET程序语言。其混合了函数语言和物件导向程序编制语言,并且**...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作