GSDml结构
1. 如何方便的看到GSDml的结构
- 在github上找到一个很好用的开源工具以及它的开源汉化,叫
xml notepad
,可以很好的看到设备树视图。
[2.9.0.8官方下载地址]
[汉化插件]
2. 文件结构
- 总体就是
header
和Body
两个部分
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: 子模块成员