ERTEC200P-2 PROFINET设备完全开发手册(7-1)

7. 配置模块及自定义模块

7.1.1 PN设备的基本模型

初次接触PN的开发者,最容易出现的错误就是设备的实际配置与TIA的组态不一致。为了开发的过程更加顺利,非常有必要掌握PN设备的基础模型。PN设备的基本模型如下图描述:

 PN设备的基本构成是插槽slot,所有的设备均是由一个或多个插槽组成,每个插槽均由若干子插槽sub-slot组成。其中插槽0固定作为总线接口,也叫做设备访问点(DAP-device access point)。插槽1及之后的插槽(2 …) 作为输入输出,提供周期数据访问或非周期数据访问以及报警、诊断功能。在GSDML文件中,描述了每个槽上可用的模块,以及每个模块包含的可用子模块。在组态软件(TIA博图)中根据实际的设备配置,将模块、子模块分配到槽和子槽。

注意,这里的组态的配置必须与设备实际的配置相同。如果组态的配置与设备实际的配置的不相同,如下图所示,PLC不会建立与设备的控制关系(IOC-AR) 

 同时,PLC会为每个模块、子模块的IO数据在过程映像区内分配对应的地址。输入数据对应I过程映像区, 输出数据对应Q映像区。基于PN通讯,PLC通过指定的OB块(例如:OB0、OB30或OB61),将从PN设备接收的输入数据更新到I区,以及将Q区的数据发送至PN设备建立输出。PLC应用程序在OB块内通过地址访问过程映像区,处理输入设置输出。

7.1.2 协议栈中的模块配置

用户程序可以通过PNIO_sub_plug()在设备中添加一个模块,也通过PNIO_sub_plug_list设备中添加多个模块。以APP1参考代码为例,协议栈按照如下方式初始化设备的实际配置:

然后再初始化过程中,通过调用PNIO_sub_plug_list完成IO设备的实际配置:

 

这样就完成如下图的设备配置:

 

 

其中Slot1、Sub-slot1为64bytes 的输入模块,模块MOD-ID=0x30、子模块SUBMOD-ID=0x01; Slot2、Sub-slot1为64bytes 的输出模块,模块MOD-ID=0x31、子模块SUBMOD-ID=0x01

参考第2章,如果PLC需要与设备建立控制关系,在组态过程中就需要按照下图所示与实际设备的配置一致。

按照第2章的内容建立环境,以及对PLC进行组态。将协议栈的初始化配置列表改为如下形式:

即从配置中移除64bytes 的输出模块,如下图所示: 

 

如果PLC的组态保留原有配置,在串口的打印信息中可以看到:

 由于组态配置与实际插入模块不符,可以通过打印信息看到isWrong=1。同时,PLC的故障灯亮起,从PLC的诊断信息可以看出,Slot2 Subslot1 的子模块出现错误信息:

 

200P协议栈支持动态添加模块,通过API PNIO_sub_plug 可动态的添加模块、子模块到对应的插槽和子插槽上。在App1中可以通过输入‘S’调用PNIO_sub_plug添加模块“64bytes output” 到slot2 subslot1。终端的显示信息如下:

 由于添加模块后,设备的配置与TIA中的组态一致,可以看到PLC恢复正常工作:

 

 在某些情况下我们需要设备自动的适配TIA的组态,例如slot2 subslot1初始化为“64bytes output

 但是我们在TIA的组态中配置为“1byte out”

可以通过自动适配模块的方式将设备的配置自动替换为与PLC的组态一致的模块。具体方法如下:

PLC的发送连接请求到设备时,会触发PNIO_cbf_ar_ownership_ind回调函数,在回调函数中如果发现PLC组态与模块不一致,首先调用PNIO_sub_pull移除原有的模块(64bytes output),然后调用PNIO_sub_plug添加新的模块(1byte out)。代码片段如下

 编译后运行,可以看到设备已经自动适配到PLC的组态。

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文的总体结构及质量控制

要写出一篇高质量AI领域的论文,首先要搞清楚论文由哪几部分组成,即论文的总体结构。同时,还要了解AI论文的质量评价与质量控制的指标。这样做的目的是为了弄明白AI论文的结构以及什么样的AI论文才是好的论文。 通常一篇AI论文的总体结构主…

ZVL3网络分析仪

ZVL3 Rohde&Schwarz ZVL3 3G矢量网络分析仪|罗德与施瓦茨 9KHz至3GHz 罗德与施瓦茨Rohde&Schwarz 性能特点&#xff1a; 频率范围 9kHz至3GHz/6 GHz(典型值为5kHz) 测量时间(201个测量点&#xff0c;以校准的双端口) <75ms 数据传输(201个测量点) 在100Mbit/sLAN…

DFS与BFS|树与图的遍历:拓扑排序

深度优先搜索DFS DFS每次往最深处搜&#xff0c;搜到叶子节点就返回&#xff0c;然后继续搜&#xff0c;特点&#xff1a;走到头才返回&#xff0c;返回并不是返回最开始&#xff0c;而是每次返回上一层之后&#xff0c;再看这一层能不能往下搜 DFS有回溯和剪枝。返回上一层的过…

OpenCV实例(七)汽车检测

OpenCV实例&#xff08;七&#xff09;汽车检测 1.概述2.代码实例3.代码功能 作者&#xff1a;Xiou 1.概述 对于图像和视频检测中的目标类型并没有具体限制&#xff0c;但是&#xff0c;为了使结果的准确度在可接受范围内&#xff0c;需要一个足够大的数据集&#xff0c;包括…

《Spring MVC》 第四章 域对象、视图、转发和重定向

前言 介绍Spring MVC的域对象、视图、转发和重定向 1、域对象共享数据 Spring MVC 提供了多种域对象共享数据的方式&#xff0c;其中最常用的方式如下&#xff1a; 1.1、使用 Servlet API 向 request 域对象中共享数据 服务端代码&#xff1a; RequestMapping("toLo…

为什么企业都需要搭建搭建一个内部知识库?

企业内部知识管理是指企业通过各种手段收集、整理、管理和传播企业内部的知识&#xff0c;以提高企业的竞争力和创新能力。在实践中&#xff0c;企业内部知识管理往往需要建立一个内部知识库&#xff0c;以更好地实现知识的共享和管理。本文将从以下几个方面探讨为什么企业内部…

【SWAT水文模型】ArcSWAT输入准备

ArcSWAT输入准备 1 必需的ArcSWAT空间数据集1.1 数字高程模型&#xff08;DEM&#xff09;1.2 土地覆盖/土地利用类型1.3 土壤数据 2 可选的ArcSWAT空间数据集2.1 DEM Mask2.2 Streams2.3 User- Defined Watersheds 3 ArcSWAT表格和文本文件3.1 子流域出口位置表(dBase 表)3.2 …

掏空腰包,日子难过,机缘转岗软件测试,这100个日夜的心酸只有自己知道...

我今年27岁&#xff0c;原本从事着土木工程相关的工作&#xff0c;19年开始有了转行的想法... 大学刚毕业那年&#xff0c;我由于学的是土木工程专业&#xff0c;自然而然的从事了和土木工程相关的工作&#xff0c;房贷、车贷&#xff0c;在经济的高压下&#xff0c;当代社会许…

Idea 配置 maven 离线使用

首先&#xff0c;项目中的依赖已经下载到本地仓库&#xff0c;在没有网络或者没办法连通公司的maven仓库时&#xff0c;需要配置离线使用。 1. 配置 setting.xml 在 maven 使用的 setting.xml 文件中&#xff0c;加入以下配置。 默认在 maven安装目录下的 conf 文件夹下 。 &…

没看错!一行python代码就可以帮您获取图片中的文字信息

最近工作中有需求需要用python对图片中的文字进行识别&#xff0c;调研了一下&#xff0c;选择了tesseract&#xff0c; 目前在github上有50.5k个star&#xff01;python可以调用&#xff0c;安装也十分方便&#xff0c;pip install pytesseract 即可。如果没有Pillow 包&…

关于yolov8的一些理解

文章目录 1.前言2.创新点及工作3. 网络结构3.1 BackBone3.1.1 C2F3.1.2 结构微调3.1.2 SPPF 3.2 Neck3.3 Head 4.正样本匹配策略4.1 静态分配策略&动态分配策略4.2 TaskAlignedAssigner 5.损失函数5.1 概述5.2 Distribution Focal Loss 6.总结 1.前言 YOLOv8 是 ultralyti…

vCener 配置 vSan 网络

文章目录 1. 准备2. 创建vsan网络2.1 创建 vSphere Distributed Switch &#xff08;vds&#xff09;2.2 添加管理主机2.3 添加 networking 3. 删除3.1 删除 vmkernel adapter3.2 删除 hosts3.3 删除 DSwitch 1. 准备 三台物理机搭建 exsi一台部署 vcenter 管理三台 exsi每台物…

如何计算连续变量的熵

背景 做特征选择时&#xff0c;有时候会用到计算特征的信息熵&#xff0c;可是离散的好计算&#xff0c;但连续的呢&#xff1f;按照把连续变量离散的方法设置阈值点吗&#xff1f;好像比较麻烦&#xff0c;需要排序&#xff0c; 计算阈值。没有能自动的方法吗&#xff1f; 找…

Linux入门 - 最常用基础指令汇总

目录 ls指令 pwd指令 cd指令 touch指令 mkdir指令 rmdir指令 && rm 指令 man指令&#xff08;重要&#xff09; cp指令&#xff08;重要&#xff09; mv指令&#xff08;重要&#xff09; cat指令 more指令 less指令&#xff08;重要&#xff09; head指令…

3.4 迭代法

4.1 雅克比迭代法&#xff1a; 雅可比迭代法是一种用于求解线性方程组的迭代算法&#xff0c;其基本思想是将线性方程组中的系数矩阵拆分为对角线矩阵和非对角线矩阵两部分&#xff0c;并利用对角线矩阵的逆矩阵来迭代求解方程组。 具体地&#xff0c;设线性方程组为Axb&…

4月17号软件资讯更新合集.....

CrateDB 5.3.0 发布&#xff0c;分布式 SQL 数据库 CrateDB 是一个分布式的 SQL 数据库&#xff0c;使得实时存储和分析大量的机器数据变得简单。CrateDB 提供了通常与 NoSQL 数据库相关的可扩展性和灵活性&#xff0c;最小的 CrateDB 集群可以轻松地每秒摄取数万条记录。这些…

L2-2 天梯赛的赛场安排

作者 陈越 单位 浙江大学 天梯赛使用 OMS 监考系统&#xff0c;需要将参赛队员安排到系统中的虚拟赛场里&#xff0c;并为每个赛场分配一位监考老师。每位监考老师需要联系自己赛场内队员对应的教练们&#xff0c;以便发放比赛账号。为了尽可能减少教练和监考的沟通负担&#…

持续集成——接口测试集成实战

文章目录 一、接口测试持续集成的好处二、环境准备三、Jenkins节点挂载1、新建node节点2、编辑节点信息 四、节点环境的配置1、Python3环境2、allure-commandline工具3、allure插件 五、本地运行待测代码1、Pycharm拉取代码执行2、命令行运行代码&#xff0c;并生成报告 六、库…

太阳能电池测试解决方案NS-9001

前言 太阳能行业的快速发展提高了对太阳能电池测试和精确测量解决方案要求&#xff0c;伴随着太阳能电池尺寸大小质量的提升&#xff0c;充电电池测试必须更多的电流和更高输出功率水准&#xff0c;这就更加需要灵活多变的测试方案支持。 现阶段&#xff0c;太阳能电池测试 解…
最新文章