4diac.forte 支持 OPC UA、MQTT、Modbus的方法

forte是基于c++的第三方开源IEC 61499运行环境,默认可以不启用opcua,如果要启用opcua则需要在编译时指定opcua的参数。

1.OPCUA

1.在编译opcua时,即open62541, 需要定义 UA_ENABLE_AMALGAMATION=ON

2.cmake  forte时,需要FORTE_COM_OPC_UA=ON,以及指定62541的include 和lib的位置

Linux

  • Download the FORTE source from http://git.eclipse.org/c/4diac/org.eclipse.4diac.forte.git:
$ mkdir ~/4diac && cd "$_"
$ git clone -b develop https://git.eclipse.org/r/4diac/org.eclipse.4diac.forte forte
$ cd forte && mkdir build
  • Download the source for open62541 from https://github.com/open62541/open62541:
  • 这里用的open62541 是v1.0 , 更新一些的版本在编译Forte时会报错。如下所示:

$ cd ~/4diac
$ git clone https://github.com/open62541/open62541.git --branch=v1.0  open62541
  • Build open62541. If you are running the code on production devices we suggest setting the build type to Release.
$ cd ~/4diac/open62541 && mkdir build && cd $_
$ cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Debug -DUA_ENABLE_AMALGAMATION=ON ..
$ make -j#cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DUA_ENABLE_AMALGAMATION=ON ..

  • Set FORTE to include open62541. If you are running the code on production devices we suggesst setting the build type to Release.
$ cd ~/4diac/forte/build
$ cmake -DCMAKE_BUILD_TYPE=Debug \
-DFORTE_ARCHITECTURE=Posix \
-DFORTE_MODULE_CONVERT=ON \
-DFORTE_COM_ETH=ON \
-DFORTE_MODULE_IEC61131=ON \
-DFORTE_COM_OPC_UA=ON \
-DFORTE_COM_OPC_UA_INCLUDE_DIR=$HOME/4diac/open62541/build \
-DFORTE_COM_OPC_UA_LIB_DIR=$HOME/4diac/open62541/build/bin \
-DFORTE_COM_OPC_UA_LIB=libopen62541.so \
..
$ make -j

二、MQTT

Eclipse 4diac Documentationhttps://www.eclipse.org/4diac/en_help.php?helppage=html/communication/mqttPaho.html

源码用的是github上的源码:

GitHub - eclipse/paho.mqtt.c: An Eclipse Paho C client library for MQTT for Windows, Linux and MacOS. API documentation: https://eclipse.github.io/paho.mqtt.c/An Eclipse Paho C client library for MQTT for Windows, Linux and MacOS. API documentation: https://eclipse.github.io/paho.mqtt.c/ - GitHub - eclipse/paho.mqtt.c: An Eclipse Paho C client library for MQTT for Windows, Linux and MacOS. API documentation: https://eclipse.github.io/paho.mqtt.c/https://github.com/eclipse/paho.mqtt.c

ince you need MQTT Paho, you need to install the libraries in your computer. Therefore you need to download the code and compile it. You will need the same tools needed for FORTE (git, cmake, compilers). The process is based on the normal compilation of FORTE, but the MQTT feature is enabled. Here's a quick link to FORTE's compilation. For the installation please follow the next steps:

  1. Checkout and build MQTT Paho (if you are using Windows, some commands might change):

    $ git clone https://github.com/eclipse/paho.mqtt.c.git $ cd paho.mqtt.c

  2. Use CMake to generate the files to compile in a similar way you would use for compiling FORTE. The options in CMake for Paho are less and easy to understand. You will export the files to [binPaho]. Then do

    $ cd [binPaho] $ make

  3. Configure FORTE compilation files by starting CMake as you usually and follow the next steps:
    1. Check FORTE_COM_PAHOMQTT in CMake
    2. Set FORTE_COM_PAHOMQTT_INCLUDE_DIR in CMake to the folder where the header files of Paho are.
    3. Verify that the library specified in FORTE_COM_PAHOMQTT_LIB has the same name as the one you compiled. If not, change it.
    4. Set FORTE_COM_PAHOMQTT_LIB_DIR to the folder where FORTE_COM_PAHOMQTT_LIB is located.
    5. Configure CMake until nothing is marked red afterwards generate with CMake.
    6. Build forte
mkdir build && cd build
cmake  -DPAHO_BUILD_STATIC ..
make -j 
make install

mqtt就安装到 /usr/local/lib目录下了

三、MODBUS

modbus用的是 https://libmodbus.org/  官方的源码 

具体方法参考:

Eclipse 4diac Documentationhttps://www.eclipse.org/4diac/en_help.php?helppage=html/communication/modbus.html

The Modbus com interface need the libmodbus library to work. Follow the steps below to set up your environment before compiling FORTE.

  1. libmodbus files should be placed in the following folder structure:
    • [ibmodbushome]/include/modbus: include files
    • [libmodbushome]/lib: libmodbus.lib (windows) or libmodbus.so (posix)
  2. When configuring FORTE project with CMake choose [ibmodbushome] as FORTE_COM_MODBUS_LIB_DIR
  3. forte.exe must be able to find the dynamic libmodbus library after build. Therefore copy libmodbus.dll/so to folder with forte.exe or add libmodbus.dll/so to library include path.
./configure 
make -j 
make install

modbus就安装到 /usr/local/lib目录下了

编译forte时定义 FORTE_COM_MODBUS_LIB_DIR 为 /usr/local即可。

四、opcua modbus mqtt 都加上

cd forte
mkdir build && cd build

用以下命令运行cmake命令。注意modbus的与一般的默认目录有所区别

 

 cmake -DCMAKE_BUILD_TYPE=Debug \
-DFORTE_ARCHITECTURE=Posix \
-DFORTE_MODULE_CONVERT=ON \
-DFORTE_COM_ETH=ON \
-DFORTE_MODULE_IEC61131=ON \
-DFORTE_COM_OPC_UA=ON \
-DFORTE_COM_OPC_UA_INCLUDE_DIR=$HOME/work/61499/open62541/build \
-DFORTE_COM_OPC_UA_LIB_DIR=$HOME/work/61499/open62541/build/bin \
-DFORTE_COM_OPC_UA_LIB=libopen62541.so \
-DFORTE_COM_MODBUS=ON \
-DFORTE_COM_MODBUS_INCLUDE_DIR=/usr/local/include \
-DFORTE_COM_MODBUS_LIB_DIR=/usr/local \
-DFORTE_COM_PAHOMQTT=ON \
-DFORTE_COM_PAHOMQTT_LIB_DIR=/usr/local/lib \
-DFORTE_COM_PAHOMQTT_INCLUDE_DIR=/usr/local/include \
..

modbus的目录非常特别是因为forte这CMake脚本写的有点。。。

root@ubuntu-star5:~/work/61499/forte_2.0.1/build# grep -nr MODBUS_ ../src
../src/com/modbus/readme.txt:7:2. When configuring forte project with CMake choose <libmodbushome> as FORTE_COM_MODBUS_LIB_DIR
../src/com/modbus/CMakeLists.txt:16:SET(FORTE_COM_MODBUS_LIB_DIR "" CACHE PATH "Path to Modbus library directory (leave empty for installed source code)")
../src/com/modbus/CMakeLists.txt:27:      forte_add_include_directories( ${FORTE_COM_MODBUS_LIB_DIR}/include )
../src/com/modbus/CMakeLists.txt:29:      if(EXISTS ${FORTE_COM_MODBUS_LIB_DIR})
../src/com/modbus/CMakeLists.txt:30:        forte_add_include_directories( ${FORTE_COM_MODBUS_LIB_DIR}/include/modbus )
../src/com/modbus/CMakeLists.txt:31:        forte_add_link_directories( ${FORTE_COM_MODBUS_LIB_DIR}/lib )
../src/com/modbus/CMakeLists.txt:32:      else(EXISTS ${FORTE_COM_MODBUS_LIB_DIR})
../src/com/modbus/CMakeLists.txt:34:      endif(EXISTS ${FORTE_COM_MODBUS_LIB_DIR})
../src/com/modbus/CMakeLists.txt:37:    forte_add_include_directories( ${FORTE_COM_MODBUS_LIB_DIR}/include )
../src/com/modbus/CMakeLists.txt:38:    forte_add_link_directories( ${FORTE_COM_MODBUS_LIB_DIR}/lib )

参考:

OPC UA with IEC 61499 Tutorial (from v 1.11.0)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28047.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IEC61499开源项目FORTE部分源码分析

一、IEC 61499简介 IEC 61499 作为工业自动化领域分布式控制系统级建模语言的标准&#xff0c;其第一&#xff08;体系结构&#xff09;、二&#xff08;软件工具要求&#xff09;、四&#xff08;兼容文件的规则&#xff09;部分的第一版于 2005 年正式发布&#xff0c;并在 …

2023搜狐科技峰会结束 白春礼刘韵洁武向平等院士解读科技新格局

雷递网 乐天 5月18日 正值“517世界电信日”&#xff0c;搜狐于北京如期举办“2023搜狐科技峰会”。 走入第五个年头的峰会继续在内容深度和广度上实现新突破&#xff0c;从宇宙文明、天文卫星、人类永生&#xff0c;到核聚变、6G通信、脑机接口&#xff0c;再到通用人工智能时…

安卓版ChatGPT要来了!

千呼万唤始出来&#xff01; OpenAI并没有给出发布的具体日期&#xff0c;官宣中只是提供了一个“预订”&#xff08;预注册&#xff09;入口。 但安卓党们在得知这事后&#xff0c;纷纷搓起了激动的小手&#xff1a; 终于可以换回去用安卓手机了&#xff01; 不过这次OpenAI也…

关于嵌入式开发

写在前面 嵌入式是一个具有深度和广度的概念&#xff0c;设计的知识面非常广阔&#xff0c;如数字、电子、编程语言和通讯网络等。嵌入式开发就是指在嵌入式操作系统下进行开发。对于嵌入式系统的定义&#xff0c;目前一种普遍被认同的定义是&#xff1a;以应用为中心&#xff…

万字长文说清大模型在自动驾驶领域的应用

交流群 | 进“传感器群/滑板底盘群/汽车基础软件群/域控制器群”请扫描文末二维码&#xff0c;添加九章小助手&#xff0c;务必备注交流群名称 真实姓名 公司 职位&#xff08;不备注无法通过好友验证&#xff09; 作者 | 张萌宇 随着ChatGPT的火爆&#xff0c;大模型受到的…

Android开发成功转行车载开发之后,并没有想象中的那么简单,我承认,是我小瞧了它

前言 近几年的Android开发岗位就业环境想必大家也都有所耳闻&#xff0c;许多Android开发工程师都找不到自己满意的工作&#xff0c;于是纷纷另谋出路… 刚好这几年随着Android车载开发的兴起&#xff0c;令人眼睛一亮的是车载开发工程师的工资普遍偏高&#xff0c;这高昂的工…

2023年,Android程序员就业方向是怎样的?

一转眼&#xff0c;2023年一半就要过去了&#xff0c;各位Android程序员的工作还顺利吗&#xff1f; 今年以来各大厂纷纷爆出裁员的新闻&#xff0c;Chat GPT等人工智能工具的爆火也让今年IT行业的就业状况雪上加霜。 不少人觉得近几年的打工人普遍又卷又焦虑&#xff0c;岗位…

如何定义一款好的自动驾驶芯片?

导读 自动驾驶领域&#xff0c;传统处理器的竞争规则正发生急速的变化。 一般来说&#xff0c;人工智能的发展主要取决于两大基本要素&#xff1a;算力和算法。自动驾驶作为目前技术投入较大、商业落地较早、市场前景广阔的人工智能应用&#xff0c;其主控芯片的算力也被业内拿…

星火认知大模型发布,科大讯飞入场科技巨头AI大战?

自从ChatGPT横空出世&#xff0c;一个更美好的世界开始向我们招手。为了推开新时代的大门&#xff0c;几乎所有人工智能厂商都投入了最大的热情逐浪AIGC。 5月6日&#xff0c;科大讯飞召开了“讯飞星火认知大模型”成果发布会。发布会现场&#xff0c;科大讯飞董事长刘庆峰展示…

浪潮之巅 OpenAI有可能是历史上第一个10万亿美元的公司

淘金时代很像 如果你那个时候去加州淘金&#xff0c;一大堆人会死掉&#xff0c;但是卖勺子的人、卖铲子的人永远可以赚钱。所谓的shove and pick business。 大模型是平台型机会。按照我们几天的判断&#xff0c;以模型为先的平台&#xff0c;将比以信息为先的平台体量更大。…

ChatGPT告诉你智能制造

ChatGPT自上线以来&#xff0c;几乎得到了外界的一致好评&#xff0c;上线两个月&#xff0c;获得1亿月活跃用户&#xff0c;成为增长最快的面向消费者的应用。 面对ChatGPT拟人一般的问答能力&#xff0c;很多人认为它代表着AlphaGo之后&#xff0c;人工智能应用的第二次浪潮…

这一次AI应该是真正的已经到来

渐渐感觉这一次AI的变革能真正的突破迷雾&#xff0c;迎来真正的人工智能时代的到来。所以写篇博文学习一下。经过半年的发酵与发展&#xff0c;不得不说AI已经成为了不可逆转的趋势。之所以说这一次AI应该是真正的已经到来&#xff0c;是因为人工智能的发展其实已经经历了几十…

chatgpt赋能python:Python在电气行业中的应用——从数据分析到自动化控制

Python在电气行业中的应用——从数据分析到自动化控制 介绍 Python语言作为一种高级编程语言&#xff0c;越来越受到电气行业的关注。随着互联网、物联网以及大数据时代的到来&#xff0c;电气行业需要将传统的工业控制与现代化的数据分析、智能决策等技术相结合&#xff0c;…

学会提示-AI时代职场必修课

作者&#xff1a;京东 何雨航 “ 上个时代要学会提问&#xff0c;这个时代要学会提示。” 引言 当你在写提数代码时&#xff0c;小张已经完成了数据分析&#xff1b;当你正在整理材料时&#xff0c;小王却在和对象逛环球影城&#xff1b;述职时&#xff0c;你发现小郑的汇报有…

来 Azure 学习 OpenAI 四 - 用 Embedding 赋能 GPT

大家好&#xff0c;我是学生大使 Jambo。在我们前一篇文章中&#xff0c;我们介绍了 OpenAI 模型的调用。今天&#xff0c;我将为大家介绍 Embedding 的使用。 嵌入是什么 嵌入&#xff08;Embedding &#xff09;是一种将高维数据映射到低维空间的方法。嵌入可以将高维数据可…

北信源VRVEIS网管软件测试

本文出自 “李晨光原创技术博客” 博客&#xff0c;谢绝转载&#xff01;

北信源顺利获得信息技术服务标准(ITSS)符合性二级证书

近期&#xff0c;北信源系统集成有限公司顺利通过了中国电子工业标准化技术协会信息技术服务分会的专家评审&#xff0c;成功取得了“信息技术服务标准&#xff08;ITSS&#xff09;符合性二级证书”&#xff0c;具备了为客户提供更专业、标准化、可信赖的IT服务能力&#xff0…

北信源携手天津麒麟共建国产信息安全

【51CTO.com原创稿件】操作系统安全是计算机网络系统安全的基础。在网络环境中&#xff0c;网络系统的安全性依赖于网络中各主机系统的安全性&#xff0c;而主机系统的安全性正是由其操作系统的安全性所决定的&#xff0c;没有安全的操作系统的支持&#xff0c;网络安全也毫无根…

华为鸿蒙生态伙伴峰会,华为鸿蒙生态加速!北信源率先参与其中

华为鸿蒙OS connect伙伴峰会来了! 北信源与金山办公战略合作签约仪式现场 (右一:北信源董事长林皓先生 右二:金山办公CEO章庆元先生) 5月12日,北信源与金山办公战略合作签约仪式在北京国家会议中心成功举行。在主题演讲环节,东莞华为CTO蒋兴发表了以《携手共筑安全领域可信鸿蒙…

成功粉碎北信源监控程序vrvedp_m.exe ,vrvrf_c64.exe,svchost.exe,vrvrf_c.exe

公司安装了北信源的监控软件&#xff0c;用360粉碎了大部分北信源的程序文件&#xff0c;但是有几个程序进程始终开机启动&#xff0c;进程无法杀死&#xff0c;一度成了我的一块心病&#xff01; 后来不知咋的灵光一闪&#xff0c;彻底将其粉碎的毛都不剩&#xff0c;现将成功…