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: 子模組成員