首页 > 其他分享 >GSDml结构

GSDml结构

时间:2024-11-13 11:10:14浏览次数:1  
标签:false +-- VirtualSubmoduleList 模块 GSDml true 结构

1. 如何方便的看到GSDml的结构

2. 文件结构

  • 总体就是headerBody两个部分
ISO15745Profile
|
+--ProfileHeader
+--ProfileBody
    |
    +--DeviceIdentity
    |  |
    |  +--InfoText
    |  +--VendorName
    |
    +--DeviceFunction
    |  |
    |  +--Family
    |
    +--ApplicationProcess 
       |
       +--DeviceAccessPointList
       +--ModuleList
       +--SubmoduleList
       +--ValueList
       +--ChannelDiagList
       +--UnitDiagTypeList
       +--GraphicsList
       +--CategoryList
       +--ExternalTextList
      

3. 设备访问点

  • DeviceAccessPoint是设备描述点,简称DAP。设备描述的重要信息在里面。

PNIO_Version="V2.4": GSDml文件版本
RequiredSchemaVersion="V2.4": 需要的架构版本
ID="IM 155-6 PN R1 V6.0 Redundant":
PhysicalSlots="0..66": 槽实际槽数,DAP位于0
ModuleIdentNumber="0x00104753": 模块ID
MinDeviceInterval="8": 数据刷新最小时间间隔
ImplementationType="ERTEC200P":
DNS_CompatibleName="ET200SP": DNS站名
AllowedInSlots="0 1":
FixedInSlots="0 1": DAP模块始终位于插槽0
ObjectUUID_LocalIndex="1":
MultipleWriteSupported="true":允许单个请求多次写入
MaxSupportedRecordSize="12288":
ParameterizationSpeedupSupported="false": 不支持快速启动
PowerOnToCommReady="3000": 启动首次数据交换时间
DeviceAccessSupported="true":
SharedDeviceSupported="false": 不支持共享设备
CheckDeviceID_Allowed="true":
NameOfStationNotTransferable="false":
LLDP_NoD_Supported="true": 支持LLDP
PhysicalSubslots="32769..32770":
ResetToFactoryModes="2":
NumberOfDeviceAccessAR="6": 访问设备的连接数
PrmBeginPrmEndSequenceSupported="true":
CIR_Supported="false":
NumberOfSubmodules="256":
AddressAssignment="DCP": 地址分配使用的通信协议

4.具体的IO模块结构

  • VirtualSubmoduleList作为具体的输入输出子模块,基本结构如下:
VirtualSubmoduleList
|
+--VirtualSubmoduleItem
  |
  +--IOData
  |  |
  |  +--Input
  |  |  |
  |  |  +--DataItem
  |  |
  |  +--Output
  |     |
  |     +--DataItem
  |        |
  |        +--BitDataItem
  |
  +--RecordDataList
  |  |
  |  +--ParameterRecordDataItem
  |     |
  |     +--Name
  |     +--Ref
  |     +--Const
  |     +--MenuItem
  |         |
  |         +--MenuItem
  |         |
  |         +--Name
  |         +--MenuRef
  |         +--ParameterRef
  |
  +--ModuleInfo
     |
     +--Name
     +--InfoText
     +--OrderNumber

  • 模块列表的层级结构:

ID="DI 16x24VDC ST_01": 模块标识
ModuleIdentNumber="0x00004D40": 模块标识号
SoftwareRelease: 软件版本
HardwareRelease: 硬件版本
VirtualSubmoduleList: 子模块列表
VirtualSubmoduleItem: 子模块成员

标签:false,+--,VirtualSubmoduleList,模块,GSDml,true,结构
From: https://www.cnblogs.com/xiacuncun/p/18542774

相关文章

  • 【新人系列】Python 入门(九):数据结构 - 中
    ✍个人博客:https://blog.csdn.net/Newin2020?type=blog......
  • 单链表算法题(数据结构)
    1.反转链表https://leetcode.cn/problems/reverse-linked-list/description/题目:看到这个题目的时候我们怎么去想呢?如果我们反应快的话,应该可以想到我们可以从1遍历到5然后依次头插,但是其实我们还有更好的办法,就是利用三个指针,如何使用呢?反转链表OJ假如结构体已经给出t......
  • 数据结构复习——链、链栈。
    1、栈(Stack):是只允许在一端进行插入或删除的线性表。首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。2、栈的常见基本操作:InitStack(&S):初始化一个空栈S。StackEmpty(S):判断一个栈是否为空,若栈为空则返回true,否则返回false。Push(&S,x):进栈(栈的插入操作),若栈......
  • 新手如何学习CSP-S组知识STL模板和线性结构?一篇博文让你明白
    一、C++STL模板学习STL是C++标准库的一部分,提供了一套通用的、可重用的模板类和函数,用于处理常见的数据结构和算法。STL的设计理念是“泛型编程”,即编写与类型无关的代码,通过模板参数在编译时指定具体类型。STL主要包含容器、算法和迭代器三个组件。1.容器(Containers)容器......
  • 【c++】结构体和类详解
    结构体结构体(struct),可以看做是一系列称为成员元素的组合体。可以看做是自定义的数据类型。Note本页描述的 struct 不同于C中 struct,在C++中 struct 被扩展为类似 class 的类说明符。定义结构体structObject{intweight;intvalue;}e[array_length];......
  • 基础数据结构【c语言版】之 “图” 详细讲述
    别忘了请点个赞+收藏+关注支持一下博主喵!!!1. 图的定义和术语1.1图的定义**图(Graph)**是由顶点(Vertex)和边(Edge)组成的一个集合,可以表示顶点之间的关系。通常,图可以表示为G=(V,E)G=(V,E)G=(V,E),其中:VVV是顶点集合,表示图中的所有顶点。EEE是边集合,表示图中顶点之间的连接......
  • ABB机器人维修IRC5控制器结构剖析
    "【ABB机器人维修IRC5控制器性能低】——描述:控制器性能低,并且似乎无法正常工作。ABB机器人控制柜没有完全“死机”。——后果:可能会观察到这些症状:程序执行迟缓,看上去无法正常执行并且有时停止。——可能的原因:计算机系统负载过高,可能因为以下其中一个或多个原因造成:•程序仅......
  • 【初阶数据结构与算法】线性表之链表的分类以及双链表的定义与实现
    文章目录一、链表的分类二、双链表的实现1.双链表结构的定义2.双链表的初始化和销毁初始化函数1初始化函数2销毁函数3.双链表的打印以及节点的申请打印函数节点的申请4.双链表的头插和尾插头插函数尾插函数5.双链表的查找和判空查找函数判空函数6.双链表的头删和尾......
  • 目录结构和基础命令
    一、目录结构【1】、Windows和Linux目录结构windows目录结构:D:\新建文件夹\OneDrive\桌面\Linux\oldboy\第一阶段C:\PerfLogsE:\node_modulesLinux目录结构:类似Windows只有一个C盘,使用“/”表示,“/”是一个目录/root/etc/ssh【2】、相对路径和绝对路径相对路径:当......
  • C++结构体中的资源释放
    一般情况下,结构体不需要手动释放。如果结构体只包含基本类型(如int、float等)或没有指针成员,其内存由栈或堆自动管理,不需要手动释放。然而,如果结构体包含动态分配的资源(例如指针、文件句柄等),则需要在结构体的生命周期结束时手动释放这些资源。通常可以通过以下方式来管理:使用......