OPC UA Java 开发笔记(三):open62541建立基础服务器

Clementine ·
更新时间:2024-11-14
· 970 次阅读

前两天一直在搞open62541,因为milo库的server sdk没有办法根据xml生成结点文件,于是准备用open62541来搭建服务器,milo结合Spring Boot来构件客户端。

网络上大多是建立一个open62541.h的头文件,还有就是open62541.c的执行文件,但是新版好像并不是这样的。
然后很多教程都是讲的linux,但是初学者用linux的还是比较少,所我写了这一篇帮助大家配置。

但是open62541的构件相当的麻烦,我试了一下午都没搞明白,今天上午算是终于有点懂了。接下来,我一步一步来讲。

为什么用open62541?

和商业库一样,可以根据uamodeler生成的xml文件直接生成相应的代码,步骤简单。 有完备的tutorial,适合新手,一步一步上手。
3.国内有许多关于open62541的博客可供参考

了解了理由,我们就需要来实操,首先是最难的一步,也就是安装

1.首先是下载

在这里插入图片描述
我们进入open62541的github官网open62541,选择release版本。
这里我用的是win64的版本。

下好解压完成后得到如下文件,这个myserver.c是一会儿要建立的文件
在这里插入图片描述

2.建立工程

在VS2019中新建一个C++的 空工程
在这里插入图片描述
打开工程,并打开工程所在的文件夹 E:\Code_Library\TeachingOPC\TeachingOPC,注意是sln里面的那个文件夹。复制我们下载的release文件夹中的这几个文件到工程文件夹中。
在这里插入图片描述
位置如下
在这里插入图片描述
在这里插入图片描述
一个是open62541的x64库文件,一个是open62541的头文件
在VS中打开工程,然后对所有文件选择 包括在项目中
在这里插入图片描述
这是包括完后
在这里插入图片描述
然后最玄学的地方来了,我到现在还是没搞明白为什么的东西。这个时候我们需要VS2015,对又要打开2015
在这里插入图片描述
然后在附加包含目录里面加上这一句,$(ProjectDir),然后就可以了。

关于这点我也有疑问,这个操作我再VS2019上做就不行,然后在2015上做就可以,我猜测可能是因为原来的文件是用的2015编译的,但是这样操作后2019上面也可以使用,就很奇怪。

接下来我们新建一个c或者cpp文件,输入以下代码,这个是源码:

#include #include #include #include #include static volatile UA_Boolean running = true; static void stopHandler(int sig) { UA_LOG_INFO(UA_Log_Stdout, UA_LOGCATEGORY_USERLAND, "received ctrl-c"); running = false; } int main(void) { signal(SIGINT, stopHandler); signal(SIGTERM, stopHandler); UA_Server *server = UA_Server_new(); UA_ServerConfig_setDefault(UA_Server_getConfig(server)); UA_StatusCode retval = UA_Server_run(server, &running); UA_Server_delete(server); return retval == UA_STATUSCODE_GOOD ? EXIT_SUCCESS : EXIT_FAILURE; }

运行成功
在这里插入图片描述

PS:

如果Console里面出现异常报错的话,可能是端口被占用了,参见解决端口占用 如果提示少了个dll文件的话,去网上搜这个文件,有教程怎么下,具体什么名字我忘了,很好解决的问题

这个就是windows端,建立opc server的方法


作者:Programmie



java 开发 open opc 服务器 JAVA

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章