Profinet Driver(PNDriver)从V2.3开始支持IO设备(IOD)功能,支持通用网络接口和Linux操作系统,最小支持2ms的通讯周期。本文介绍如何编译PNDriver并运行在IOT2050上。

1. 编译PNDriver

因为PNDriver只支持32位模式,因此需要安装32位交叉编译环境。准备虚拟机(笔者的环境是VMWare + Ubuntu18.04),在虚拟机运行:

sudo apt-get install gcc-arm-linux-gnueabihf

sudo apt-get install g++-arm-linux-gnueabihf

在命令行中输入:arm-linux-gnueabihf-gcc --version 检查一下是否安装成功

将PNDriver源代码拷贝到虚拟机。

1)修改

/pn_driver/src/source/pnd/src/pnio_user_core/base/pnd_ValueHelper.cpp

将1279 行修改为:va_list argList, tmpList; //=LSA_NULL;

2)修改pn_driver/src/examples/lib/linux32_native/build/Makefile

将 gcc 修改为arm-linux-gnueabihf-gcc

将 g++ 修改为arm-linux-gnueabihf-g++

并且删除 -m32的编译选项如下:

CCFLAGS = -c -pthread $(REMOVE_WARNINGS) -O2 -Wall -fmessage-length=0 -fno-strict-aliasing -ffunction-sections -fdata-sections -Wl,--gc-sections -MMD

CXXFLAGS = -c -pthread $(REMOVE_WARNINGS) -O2 -Wall -fmessage-length=0 -fno-strict-aliasing -ffunction-sections -fdata-sections -Wl,--gc-sections -MMD -std=c++11

CCLINK   = -pthread $(REMOVE_WARNINGS) -O2 -Wall -fmessage-length=0 -fno-strict-aliasing -ffunction-sections -fdata-sections -Wl,--gc-sections -MD -MP

3)在pn_driver/src/examples/lib/linux32_native/build/路径下运行make

4)修改pn_driver/src/examples/iod/test_app_iod/linux32_native/build/Makefile

将 gcc 修改为arm-linux-gnueabihf-gcc

将 g++ 修改为arm-linux-gnueabihf-g++

并且删除 -m32的编译选项如下:

CCFLAGS = -c -pthread $(REMOVE_WARNINGS) -O2 -Wall -fmessage-length=0 -MMD

CCLINK   = -pthread $(REMOVE_WARNINGS) -O2 -Wall -fmessage-length=0 -MD -MP

5)在pn_driver/src/examples/iod/test_app_iod/linux32_native/build/路径下运行make

6)将pn_driver/src/examples/iod/test_app_iod/linux32_native/路径下的test_app_iod和PND_IOD.xml拷贝到IOT2050,例如/opt路径下

2. 准备运行环境

在IOT2050连接互联网的前提下,在IOT2050的命令行,依次输入如下命令:

apt-get update

dpkg --add-architecture armhf

apt-get update

apt-get install libc6:armhf

apt-get install libstdc++6:armhf

cd /opt

chmod +x test_app_iod

修改配置文件

vi /etc/sysctl.conf

在末尾添加:

net.ipv4.ip_local_port_range = 49152 59000

保存后运行:

sysctl -p /etc/sysctl.conf

3. 连接PLC

按照如下方式连接PLC,eno1作为PN接口,eno2作为普通以太网接口

在TIA中添加GSDML文件,位于pn_driver\src\engineering\GSDML,安装如下图所示的GSDML文件

在态中添加设备IOD-Linux native

分配控制器后如下图所示:

打开设备配置,添加如下模块:

默认的设备名称为:pnd-iod-linux-native

编译下载组态到PLC

在IOT2050的终端,在保存test_app_iod的路径下(例如 /opt)运行:

./test_app_iod

输入2:并选择eno1

输入5 (Open Device)

输入10,再选择 1(Activate Device)

这样IO设备就启动起来了

通过TIA分配设备名称。

在IOT2050的终端可以看到PLC建立连接的信息

在线看一下,PN设备正常连接上了

如何使IOT2050成为PN设备相关推荐

  1. 计算机移动设备有限公司,使计算机,移动设备更节能

    计算机的缓存是存储器的一部分,其中存储经常使用的项目以加速处理. 例如,如果您经常访问手机上的相同网站,您的手机可能会保存有关这些网站的信息,因此您的浏览器或应用每次都不需要重新下载. 亚利桑那大学电 ...

  2. oracle中的脱机与联机,使存储池中的设备联机和脱机

    使存储池中的设备联机和脱机 使用 ZFS 可使单个设备脱机或联机.硬件不可靠或无法正常工作时(假定该情况只是暂时的),ZFS 会继续对设备读写数据.如果该情况不是暂时的,您可以指示 ZFS 通过使设备 ...

  3. 多个蓝牙缺陷可使攻击者假冒合法设备

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 攻击者可滥用从 Bluetooth Core 和 Mesh Profile 标准中发现的多个漏洞在配对过程中模拟合法设备并发动中间人攻击. ...

  4. 【转】使IFRAME在iOS设备上支持滚动

    原文链接:Scroll IFRAMEs on iOS 原文日期: 2014年07月02日  翻译日期: 2014年07月10日 翻译人员:铁锚 很长时间以来, iOS设备上Safari中超出边界的元素 ...

  5. 部署SNMP使网管与设备通信,配置关于TCP测试NQA的配置案例

    一.部署SNMP 组网需求:通过部署RouterA由NMS网管设备管理用于监控网络是否畅通和业务是否正常.为了保证NMS和RouterA之间有一个数据传输安全.接入方式灵活.链路传输可靠的网络,并且可 ...

  6. 使IFRAME在iOS设备上支持滚动

    原文链接: Scroll IFRAMEs on iOS 原文日期: 2014年07月02日  翻译日期: 2014年07月10日 翻译人员: 铁锚 很长时间以来, iOS设备上Safari中超出边界的 ...

  7. 嵌入式linux仪器,一种基于嵌入式Linux设备双系统的启动方法

    一种基于嵌入式Linux设备双系统的启动方法 [技术领域] [0001]本发明涉及一种基于嵌入式Linux设备双系统的启动方法. [背景技术] [0002]Linux操作系统特别是其嵌入式系统由于其源 ...

  8. 弹出硬盘时应用程序阻碍停用设备_7GB硬盘空间被Win 10“偷走”?微软系统的这些“潜规则”你掌握了吗?...

    01 找回被系统"偷走"的硬盘空间 分区较小的Windows 10的用户经常会遇到磁盘空间不足的问题,虽然微软一直允许用户在存储空间有限的设备上运行Windows 10,但2019 ...

  9. 远程计算机串口控制软件,智能控制的设备上使用远程开关需要用到RS485串口继电器、网关、电脑平台...

    原标题:智能控制的设备上使用远程开关需要用到RS485串口继电器.网关.电脑平台 方案需求 对于设备的远程联网自动化场景来说,避免不了的是自动化开关,以往传统的改造难度大,成本高,整套换掉的可能性不大 ...

最新文章

  1. 基类成员的public访问权限在派生类中变为_C++ 派生类的构造函数(学习笔记:第7章 06)...
  2. textarea回车不换行 小程序_微信小程序商城到底值得不值得开通?
  3. java拖动图片拼图_求教,我的这个拼图程序中的移动图片的改怎么做
  4. JBox2D手机游戏引擎介绍(附jbox2d官网网址)
  5. android tv tts,TTS发音问题
  6. 前端-微信浏览器无法下载附件解决方法?
  7. 《低代码指南 》——LCHub应用参谋的适用场景
  8. Processing绘制星空-2-绘制流星
  9. 海龟python词树_python海龟画树
  10. excel锁定后忘记密码的解决办法
  11. python国际象棋ai程序_只需五步!手把手教你搭建国际象棋AI机器人
  12. 爬虫(java+jsoup)
  13. 基于ESP32(Micropython)的天气显示+B站粉丝数显示-v4
  14. Python 爬微信男女人数和各地区人数
  15. 虚拟机Win 7中重新 划分 分区 合并 磁盘
  16. oracle超大表建索引,Oracle 大表创建索引
  17. windows10如何实现分屏
  18. DC-DC BOOST-升压电路电源模块设计-TPS40210 demo
  19. 一款安卓记账软件的开发
  20. BSN-DDC 基础网络关键知识点(五)跨链机制、官方 SDK 说明、开发资料汇总

热门文章

  1. 一个 Python 的轻量级搜索工具:Whoosh
  2. Spring Cloud Discovery——Eureka Discovery Client
  3. KruskalAlgorithm(克鲁斯卡尔算法)
  4. lotus notes java_远程数据库的Lotus Notes Java复制
  5. FH8626V100之开发环境搭建
  6. ERROR in static/js/0.5d7325513eec31f1e291.js from UglifyJs
  7. png图片结构分析与加密解密原理
  8. 风剑分享 | 只有数据最懂公司的痛点,指导企业决策走向
  9. Charles 抓包,服务器压力测试
  10. java castor_Castor简单介绍