小节:设备
这 Device 小节定义了设备生成器要添加的设备。生成的设备有多种类型,它们是用不同的小节定义的 Identification, Wildcard, 和 FlexibleWildcard 。
句法:
SEC DeviceGenerator //optional: yes, modifier: [UPDATE]
SEC Device : <target ID> //optional: yes, modifier [UPDATE]
Parent := <target ID>; //optional: yes, type: ID
ParentSlotIndex := <slot number>; //optional: yes, type: literal/integer
SEC Identification //optional: yes, modifier: [UPDATE]
Type := <type number>; //optional: no, type: literal/string
ID := <ID mumber>; //optional: no, type: literal/string
ModuleID := <module ID>; //optional: yes, type: literal/string
Version := <version mumber>; //optional: no, type: literal/string
SEC SetChildName //optional: yes, modifier: [UPDATE]
Value := <child name>; //optional: no, type: literal/string
ChildIndex := <index number>; //optional: no, type: literal/string
END_SEC
END_SEC
END_SEC
SEC ExportDevice //optional: yes, modifier: [UPDATE, HIDE]
Files :=[<filename1>, <filename2>, ...]; //optional: no, type: string
END_SEC
END_SEC这
Device部分有一个目标 ID,可在模块的其他生成的设备中唯一标识该部分。该 ID 可用于引用该设备。这主要是在定义中完成的Parent其他创建的设备或连接的 I/O。这
Parent定义指定要在其下安装创建的设备的所需父设备。父设备根本无法通过其 ID 或参数来识别(定义是可选的)。
具体地,然后通过以下方式确定父设备:
如果不
Parent完全定义后,始终使用第一个匹配的可用父级,并且对于空的Parent定义仅从第一个父模块开始搜索。如果直接父模块本身没有定义设备,则跟踪父模块的历史记录,直到最终有匹配的设备或到达顶层模块。在这种情况下,如果可能的话,则使用其应用装置。另外,如果将设备 ID 或参数指定为
Parent,以相同的方式扫描父设备的历史记录,由此输出模块本身的设备现在也被考虑在内,并且可能的父设备也必须具有相应的ID。如果根据上述规则找不到可能的父设备,则在代检查期间输出错误。
ParentSlotIndex:指定设备插入的父设备的插槽索引(编号)。当需要插入时这很有用。
这
Identification小节包括要添加的设备的唯一描述。这将创建对此的唯一引用Device类型。定义
Type,ID,ModuleID, 和Version的Identification部分唯一标识特定版本的设备类型。例如,EtherCAT 主站具有以下定义:Type := '64';ID := '000 0001';Version := '3.5.1.0';如果
*定义为版本,始终使用设备的最新版本。如果ModuleID如果不使用定义,则系统将搜索具有 DeviceIdentification 的设备,否则将搜索具有模块标识的设备。如果设备存储库中不存在定义的设备,则在扫描过程中已发出相应的错误消息。
小节:
SetChildName与定义Value和ChildIndex这些选项允许您指定自动插入的设备应具有的名称。如果同一名称使用多次,则通过附加下划线和数字来使生成的名称唯一。
Value:所需的设备名称ChildIndex:要重命名的自动插入设备的索引
此部分提供了在输入助手的帮助下填写字段的可能性。为此,请将光标放在行尾之后
Identification并按 返回。然后,输入助手将打开并提供可用的频道。选择设备后,相应的参数将传输到模块声明中。请注意,此功能仅在小节结束时可用(END_SEC) 尚未输入。定义 文件 包含将添加到项目中的设备列表。这些设备是手动配置并导出到库中的。
SEC Device : Buskoppler2
SEC Identification
Type := '65';
ID := '2_044C2C5200110000';
Version := '*';
END_SEC
END_SEC
SEC Device : KlemmeDigitalOutput
Parent := Buskoppler2;
SEC Wildcard : KlemmeTyp
Desc := TL.WildDesc;
END_SEC
SEC ExportDevices
Files := [ExtFile.BK5120_1SDO, ExtFile.BK5120_2SDO];
END_SEC
END_SECSEC std.DeviceGenerator
SEC Device : CANopen_Manager
Parent := CurrentCAN;
SEC FlexibleIdentification
Type := '16';
ID := '181016';
Version := '*';
Maximum := 1;
END_SEC
END_SEC
END_SEC
SEC std.Parameters
SEC Param : CurrentCAN
Name := TL.CurrentCAN_Name;
Desc := TL.CurrentCAN_Desc;
VariableType := wSTRING;
Default := 'CANBus_0';
END_SEC
END_SECSEC std.DeviceGenerator
SEC Device : EcoVario
Parent := CanManager;
SEC Identification
Type := '18';
ID := '1619 0001';
Version := '*';
SEC SetChildName : ChildDevice
Value := 'ChildName';
ChildIndex := 0;
END_SEC
END_SEC
END_SEC
SEC Parameters : EcoVario
SEC AddParameter : BoolParamAdd
ParameterID := '150';
ParameterName := 'BoolParam';
ParameterType := 'std:BOOL';
ChildIndex := 0;
END_SEC
SEC SetParameter : BoolParamAdd
ParameterID := '150';
ElemPath := '';
Value := 'TRUE';
ChildIndex := 0;
END_SEC
SEC SetParameter : bVirtual
ParameterID := '1040';
ElemPath := '';
ConnectorID := '0';
Value := 'TRUE';
ChildIndex := 0;
END_SEC
END_SEC
SEC InstRefMapping : Axis
SEC Demand
Desc := TL.DescAxis;
Properties := [SM_DRIVE_CAN];
END_SEC
END_SEC
END_SEC