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: 子模块成员