Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问clear审计未展示

eae-datatypeeae 数据类型

Agent Skill

用于辅助数据整理、表格处理、CSV/Excel 分析、指标计算和图表准备。它适合让 Agent 清洗字段、汇总数据、发现异常、生成统计口径或把分析结果转成可读说明。使用时需要确认数据来源、字段含义和时间范围,避免把样本数据当全量事实;涉及敏感数据、导出文件或批量写回时,应先确认权限和脱敏边界。

总安装

744

周安装

31

GitHub Stars

公开资料未说明

下载量

248
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:eae-datatype(eae 数据类型)
来源仓库:https://github.com/sapiencezk/eae-skills
仓库路径:skills/eae-datatype
安装命令:
npx skills add sapiencezk/eae-skills --skill "eae-datatype"
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

AgentSkills.tonpx skills
npx skills add sapiencezk/eae-skills --skill "eae-datatype"

简介

eae-datatype 用于辅助数据整理、表格处理、CSV/Excel 分析与指标计算,适合清洗字段与生成统计口径。

  • 适用于数据分析、报表制作或数据可视化准备场景,需确认数据来源与字段含义。
  • 通过 npx skills add 命令从 GitHub 仓库安装,支持多宿主平台集成。
  • 涉及敏感数据或批量写回时,应先确认权限与脱敏边界,避免误用样本当全量事实。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

name
eae-datatype
description
>
license
MIT
compatibility
Designed for EcoStruxure Automation Expert 25.0+, Python 3.8+, PowerShell (Windows)
metadata
version
2.0.0
author
Claude
domain
industrial-automation
parent-skill
eae-skill-router
user-invocable
true
platform
EcoStruxure Automation Expert
standard
IEC-61499

EAE DataType Creation

Create or modify custom data types: structures, enumerations, arrays, and subranges.

CRITICAL RULE: ALWAYS use this skill for ANY operation on DataType files. - Creating new DataTypes - Modifying existing DataTypes (adding fields, enum values, etc.) - NEVER directly edit .dt files outside of this skill

DataType Key Differences:

  • Uses DataType.dtd (NOT LibraryElement.dtd)
  • Uses Standard="1131-3" (IEC 61131-3)
  • Has NO GUID attribute
  • Located in IEC61499/DataType/ subfolder
  • Uses .dt extension (NOT .dtp)

Quick Start

User: Create an enumeration for machine states: Idle, Running, Error
Claude: [Creates IEC61499/DataType/MachineState.dt]

Triggers

  • /eae-datatype
  • /eae-datatype --register-only - Register existing DataType (used by eae-fork orchestration)
  • "create enum"
  • "modify enum"
  • "create structure"
  • "modify structure"
  • "add field to structure"
  • "create data type"
  • "create array type"

Register-Only Mode (for eae-fork Orchestration)

When called with --register-only, this skill skips file creation and only performs dfbproj registration. This mode is used by eae-fork to complete the fork workflow after file transformation.

/eae-datatype --register-only {TypeName} {Namespace}

What --register-only does:

  1. Registers in dfbproj - Adds ItemGroup entries for DataType visibility

What --register-only does NOT do:

  • Create IEC61499 files (.dt, etc.) - already done by eae-fork
  • Update namespaces - already done by eae-fork

Usage

# Register a forked DataType
python ../eae-skill-router/scripts/register_dfbproj.py MyStatus SE.ScadapackWWW --type datatype

# Verify registration
python ../eae-skill-router/scripts/register_dfbproj.py MyStatus SE.ScadapackWWW --type datatype --verify

Modification Workflow

When modifying an existing DataType:

  1. Read the existing .dt file to understand current structure
  2. Identify what needs to be added/changed
  3. For structures: add/modify VarDeclaration elements
  4. For enums: add/modify EnumeratedValue elements
  5. For arrays: modify BaseType or Subrange
  6. For subranges: modify limits or InitialValue

DataType Subtypes

SubtypeElementUse Case
Structure<StructuredType>Group related fields
Enumeration<EnumeratedType>Named value sets
Array<ArrayType>Fixed-size collections
Subrange<SubrangeType>Constrained numeric range

Files Generated

FilePurpose
{Name}.dtMain type definition
{Name}.doc.xmlDocumentation

Location: IEC61499/DataType/ (NOT IEC61499/)


Critical Rules

RuleValue
DOCTYPE<!DOCTYPE DataType SYSTEM "../DataType.dtd">
Standard<Identification Standard="1131-3" />
GUIDNone (DataTypes don't have GUIDs)
Extension.dt (NOT .dtp)
LocationIEC61499/DataType/ subfolder

Structure Type

Groups related fields together:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE DataType SYSTEM "../DataType.dtd">
<DataType Name="MotorData" Namespace="MyLibrary" Comment="Motor parameters">
  <Identification Standard="1131-3" />
  <VersionInfo Organization="MyOrg" Version="1.0" Author="Claude"
               Date="01/16/2026" Remarks="Initial" />
  <CompilerInfo />
  <StructuredType>
    <VarDeclaration Name="Speed" Type="REAL" Comment="Motor speed in RPM" />
    <VarDeclaration Name="Current" Type="REAL" Comment="Current in Amps" />
    <VarDeclaration Name="Running" Type="BOOL" Comment="Motor running state" />
    <VarDeclaration Name="ErrorCode" Type="INT" Comment="Error code" />
  </StructuredType>
</DataType>

Nested Types

<VarDeclaration Name="Status" Type="MachineStatus" Namespace="MyLibrary" />

Enumeration Type

Named value sets:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE DataType SYSTEM "../DataType.dtd">
<DataType Name="MachineState" Namespace="MyLibrary" Comment="Machine states">
  <Identification Standard="1131-3" />
  <VersionInfo Organization="MyOrg" Version="1.0" Author="Claude"
               Date="01/16/2026" Remarks="Initial" />
  <CompilerInfo />
  <EnumeratedType>
    <EnumeratedValue Name="Idle" />
    <EnumeratedValue Name="Starting" />
    <EnumeratedValue Name="Running" />
    <EnumeratedValue Name="Stopping" />
    <EnumeratedValue Name="Error" />
    <EnumeratedValue Name="Maintenance" />
  </EnumeratedType>
</DataType>

Array Type

Fixed-size collections:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE DataType SYSTEM "../DataType.dtd">
<DataType Name="SensorArray" Namespace="MyLibrary" Comment="Array of 10 sensor values">
  <Identification Standard="1131-3" />
  <VersionInfo Organization="MyOrg" Version="1.0" Author="Claude"
               Date="01/16/2026" Remarks="Initial" />
  <CompilerInfo />
  <ArrayType BaseType="REAL" Namespace="">
    <Subrange LowerLimit="0" UpperLimit="9" />
  </ArrayType>
</DataType>

Array of Custom Types

<ArrayType BaseType="MotorData" Namespace="MyLibrary">
  <Subrange LowerLimit="0" UpperLimit="3" />
</ArrayType>

Subrange Type

Constrained numeric values:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE DataType SYSTEM "../DataType.dtd">
<DataType Name="Percentage" Namespace="MyLibrary" Comment="0-100 range">
  <Identification Standard="1131-3" />
  <VersionInfo Organization="MyOrg" Version="1.0" Author="Claude"
               Date="01/16/2026" Remarks="Initial" />
  <CompilerInfo />
  <SubrangeType BaseType="INT" InitialValue="0">
    <Subrange LowerLimit="0" UpperLimit="100" />
  </SubrangeType>
</DataType>

dfbproj Registration

<ItemGroup>
  <None Include="DataType\{Name}.doc.xml">
    <DependentUpon>{Name}.dt</DependentUpon>
  </None>
</ItemGroup>
<ItemGroup>
  <Compile Include="DataType\{Name}.dt">
    <IEC61499Type>DataType</IEC61499Type>
  </Compile>
</ItemGroup>

Note: Path includes DataType\ prefix.


Built-in Types Reference

TypeDescriptionExample
BOOLBooleanTRUE, FALSE
INT16-bit signed-32768 to 32767
DINT32-bit signedLarger integers
REAL32-bit float3.14159
LREAL64-bit floatHigh precision
STRINGText'Hello'
STRING[n]Fixed-lengthSTRING[15]
TIMEDurationT#5s
DATEDateD#2026-01-16

Common Rules

See common-rules.md for:

  • dfbproj registration patterns
  • Documentation file template

Troubleshooting

IssueSolution
DataType not foundEnsure file is in DataType/ subfolder
Wrong extensionUse .dt, not .dtp
Load errorUse DataType.dtd, not LibraryElement.dtd
Standard errorUse Standard="1131-3", not 61499-2
GUID errorDataTypes should NOT have GUID

Validation

After creating a DataType, validate it:

python ../eae-skill-router/scripts/validate_block.py --type datatype MyType.dt

Note: DataTypes do not require ID generation (no GUIDs or hex IDs).


Templates


Integration with Validation Skills

Naming Validation

Use eae-naming-validator to ensure compliance with SE Application Design Guidelines:

Key Naming Rules for DataTypes (SE ADG EIO0000004686.06 Section 1.5):

DataTypeConventionPatternExample
StructurestrPascalCasestr[A-Z][a-zA-Z0-9]*strMotorData, strAlarmConfig
EnumerationePascalCasee[A-Z][a-zA-Z0-9]*eMachineState, eProductType
ArrayarrPascalCasearr[A-Z][a-zA-Z0-9]*arrSensorValues, arrMotorData
Subrange(context-dependent)PascalCasePercentage, ValidRange

Validate naming before creation:

python ../eae-naming-validator/scripts/validate_names.py \
  --app-dir IEC61499/MyLibrary \
  --artifact-type DataType

Validation After Creation

# Validate DataType structure
python scripts/validate_datatype.py IEC61499/DataType/strMotorData.dt

# Validate with JSON output for CI/CD
python scripts/validate_datatype.py IEC61499/DataType/*.dt --json

Best Practices from EAE ADG

1. Naming Conventions (Hungarian Notation)

Always use Hungarian prefixes for DataTypes:

PrefixTypeExample
strStructurestrMotorConfig
eEnumerationeProductState
arrArrayarrSensorBuffer
aArray (alternative)aValues
<!-- CORRECT: Hungarian notation -->
<DataType Name="strMotorData" Namespace="MyLibrary">

<!-- INCORRECT: No prefix -->
<DataType Name="MotorData" Namespace="MyLibrary">

2. Field Naming in Structures

Interface fields: PascalCase

<VarDeclaration Name="Speed" Type="REAL" />
<VarDeclaration Name="MaxTemperature" Type="REAL" />

Internal/private fields: camelCase

<VarDeclaration Name="lastValue" Type="REAL" />
<VarDeclaration Name="errorCount" Type="INT" />

3. Enumeration Values

Use meaningful, action-oriented names:

<EnumeratedType>
  <EnumeratedValue Name="Idle" />
  <EnumeratedValue Name="Starting" />
  <EnumeratedValue Name="Running" />
  <EnumeratedValue Name="Stopping" />
  <EnumeratedValue Name="Faulted" />
</EnumeratedType>

Avoid generic names:

<!-- BAD -->
<EnumeratedValue Name="State1" />
<EnumeratedValue Name="State2" />

4. Documentation

Always include meaningful Comment attributes:

<DataType Name="strMotorData" Namespace="MyLibrary"
          Comment="Motor operating parameters and status">
  <VarDeclaration Name="Speed" Type="REAL" Comment="Motor speed in RPM" />
  <VarDeclaration Name="Current" Type="REAL" Comment="Motor current in Amps" />
</DataType>

5. Type Selection

NeedUse TypeRationale
Related fieldsStructureGroups logically connected data
Fixed set of statesEnumerationType-safe, self-documenting
Multiple values of same typeArrayEfficient memory, iteration
Bounded numeric valuesSubrangeCompiler-enforced constraints

Anti-Patterns

1. Naming Anti-Patterns

Missing Hungarian Prefix

<!-- BAD: No 'str' prefix for structure -->
<DataType Name="MotorData" ...>
  <StructuredType>

<!-- CORRECT: Hungarian prefix -->
<DataType Name="strMotorData" ...>
  <StructuredType>

Missing 'e' Prefix for Enum

<!-- BAD: No 'e' prefix for enumeration -->
<DataType Name="MachineState" ...>
  <EnumeratedType>

<!-- CORRECT: Hungarian prefix -->
<DataType Name="eMachineState" ...>
  <EnumeratedType>

Inconsistent Field Naming

<!-- BAD: Mixed conventions -->
<StructuredType>
  <VarDeclaration Name="speed" Type="REAL" />        <!-- lowercase -->
  <VarDeclaration Name="MAX_TEMP" Type="REAL" />     <!-- SCREAMING_CASE -->
  <VarDeclaration Name="errorCode" Type="INT" />     <!-- camelCase -->
</StructuredType>

<!-- CORRECT: Consistent PascalCase for interface fields -->
<StructuredType>
  <VarDeclaration Name="Speed" Type="REAL" />
  <VarDeclaration Name="MaxTemp" Type="REAL" />
  <VarDeclaration Name="ErrorCode" Type="INT" />
</StructuredType>

2. Structure Anti-Patterns

Wrong DOCTYPE

<!-- BAD: Using LibraryElement.dtd -->
<!DOCTYPE DataType SYSTEM "../LibraryElement.dtd">

<!-- CORRECT: DataType.dtd -->
<!DOCTYPE DataType SYSTEM "../DataType.dtd">

Wrong Standard

<!-- BAD: Using 61499-2 -->
<Identification Standard="61499-2" />

<!-- CORRECT: IEC 61131-3 -->
<Identification Standard="1131-3" />

Including GUID

<!-- BAD: DataTypes should NOT have GUIDs -->
<DataType Name="strConfig" GUID="12345678-1234-...">

<!-- CORRECT: No GUID attribute -->
<DataType Name="strConfig" Namespace="MyLibrary">

Wrong Extension

BAD:  strMotorData.dtp
CORRECT: strMotorData.dt

Wrong Location

BAD:  IEC61499/strMotorData.dt
CORRECT: IEC61499/DataType/strMotorData.dt

3. Enumeration Anti-Patterns

Generic State Names

<!-- BAD: Non-descriptive -->
<EnumeratedType>
  <EnumeratedValue Name="State0" />
  <EnumeratedValue Name="State1" />
  <EnumeratedValue Name="State2" />
</EnumeratedType>

<!-- CORRECT: Meaningful names -->
<EnumeratedType>
  <EnumeratedValue Name="Idle" />
  <EnumeratedValue Name="Active" />
  <EnumeratedValue Name="Complete" />
</EnumeratedType>

Too Many Values Without Grouping

<!-- BAD: 20+ values without structure -->
<EnumeratedType>
  <!-- Consider using multiple enums or a different approach -->
</EnumeratedType>

<!-- CORRECT: Group related states or use bit flags -->

4. Array Anti-Patterns

Zero-Length Arrays

<!-- BAD: Empty array -->
<ArrayType BaseType="REAL">
  <Subrange LowerLimit="0" UpperLimit="0" />
</ArrayType>

<!-- CORRECT: At least 1 element -->
<ArrayType BaseType="REAL">
  <Subrange LowerLimit="0" UpperLimit="9" />
</ArrayType>

Excessive Array Size

<!-- BAD: Very large array (memory concerns) -->
<ArrayType BaseType="REAL">
  <Subrange LowerLimit="0" UpperLimit="9999" />
</ArrayType>

<!-- CORRECT: Reasonable size, consider chunking if needed -->
<ArrayType BaseType="REAL">
  <Subrange LowerLimit="0" UpperLimit="99" />
</ArrayType>

Verification Checklist

Before deployment, verify:

Structure

  • [ ] DOCTYPE references DataType.dtd
  • [ ] Standard is 1131-3 (NOT 61499-2)
  • [ ] NO GUID attribute present
  • [ ] File extension is .dt
  • [ ] Located in IEC61499/DataType/ folder
  • [ ] Name uses str prefix (strPascalCase)
  • [ ] All fields have meaningful names
  • [ ] All fields have Comment attributes
  • [ ] Registered in .dfbproj with path DataType\{Name}.dt

Enumeration

  • [ ] Name uses e prefix (ePascalCase)
  • [ ] All values have meaningful names
  • [ ] No duplicate values
  • [ ] Reasonable number of values (<20 typical)

Array

  • [ ] Name uses arr or a prefix
  • [ ] LowerLimit < UpperLimit
  • [ ] BaseType exists and is valid
  • [ ] Namespace specified if custom BaseType

Subrange

  • [ ] LowerLimit < UpperLimit
  • [ ] InitialValue within range
  • [ ] BaseType is numeric (INT, DINT, REAL, etc.)

Naming Validation

# Run naming validator
python ../eae-naming-validator/scripts/validate_names.py \
  --app-dir IEC61499/MyLibrary \
  --artifact-type DataType \
  --json

Related Skills

SkillRelationship
eae-skill-routerParent skill, routing logic
eae-naming-validatorValidate naming conventions
eae-basic-fbUses DataTypes in VarDeclarations
eae-composite-fbUses DataTypes in FBNetwork
eae-catUses DataTypes for HMI binding
eae-forkFork DataTypes from SE libraries

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

28.11%
按下载量换算70

OpenCode

21.56%
按下载量换算53

windsurf

17.8%
按下载量换算44

trae

13.45%
按下载量换算33

Cursor

7.44%
按下载量换算18

Codex

3.68%
按下载量换算9

安全审计

暂无安全审计结果可展示。

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills