⚡ ESim 电工制图 AI 电路生成规范
严谨数据契约 · 直连拓扑优先 · 优化器接管布局 📐 v1.0
📑 目录* 📋 总览与核心契约
📋 总览 · AI 必须遵守的核心契约
本规范是生成标准 .esimdrawing 文件的唯一技术参照。v1.0 版本确立了 “AI 生成逻辑直连线,ESim电工制图 优化器负责正交避障” 的协同模式,彻底解决 AI 拐点计算难、易穿模的问题。
✅ 强制性要求
- 直连线策略:AI 只需生成起点到终点的直线导线,禁止计算任何中间拐点,正交化工作交给 ESim电工制图 优化器
- 端子直连策略:禁止使用导线交点和虚拟端子,所有导线必须直接连接真实端子
- 每个元件和导线拥有唯一非空 GUID(禁止
Guid.Empty、禁止重复)
TypeName 使用完整命名空间(如 Controls.SVG.PushButtonNO 或 Controls.Bulb)
- 导线必须通过
StartTerminal / EndTerminal 精确引用真实端子
- 导线
Start / End 坐标必须精确等于所连端子的绝对位置(含旋转计算)
- 原理图模式下
IsSVG=true,端子连接时属性 IsConnected 必须赋值为 true
- 原理图模式下
IsSVG=true,Direction、ContactType、GroupType 明确赋值
🚫 禁止行为
- ❌ 尝试计算 L/Z/U 形拐点(AI 计算拐点极易导致穿模或与优化器冲突)
- ❌ 使用
ConnectionPoints 或 WireTerminalReference(交点由优化器自动消除)
- ❌ GUID 重复或使用
Guid.Empty
- ❌ 使用短类型名(如仅 “PilotLight”,必须 “Controls.SVG.PilotLight”)
- ❌ 导线 Start/End 坐标与端子绝对位置不匹配(偏移 1 像素也会导致优化器识别失败)
- ❌ 将 AC 电气类型控件接入 DC 回路或反之
🧠 AI 生成逻辑路径 (v1.0 简化版)
- 确定图纸规格与标题
- 布局元件(电源左/上 → 开关保护中 → 负载右/下),预留端子间距(≥80px)
- 从标准元件库复制完整 ComponentData 定义,更新 GUID 和坐标
- 计算每个端子的绝对位置(考虑旋转因素)
- 为每对需连接的端子生成直线导线:Start=端子A绝对位置,End=端子B绝对位置,Points 留空
- 为导线建立精确的 StartTerminal / EndTerminal 引用
- 校验全局设置,序列化输出 XML
📐 坐标系与单位
坐标原点 (0, 0):位于画布左上角。
单位:像素,所有坐标值均为整数。
X 轴:向右递增。
Y 轴:向下递增。
端子 Position:相对于元件左上角(WorldLocation)的偏移量。
端子绝对位置 = WorldLocation + 旋转后Position
💡 AI 建议:所有坐标对齐 5px 网格(即坐标为 5 的倍数),元件间距 ≥ 80px,为优化器留出充足的正交布线通道。
🧱 根数据模型 (CircuitData)
XML 根元素为 <CircuitData>,其内部节点顺序建议如下:
<?xml version="1.0"?>
<CircuitData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Version>2.0</Version>
<CreatedDate>2024-01-01T00:00:00</CreatedDate>
<ModifiedDate>2024-01-01T00:00:00</ModifiedDate>
<Components> ... </Components>
<Wires> ... </Wires>
<WireSettings> ... </WireSettings>
<DrawableElements />
<DrawingLayout> ... </DrawingLayout>
</CircuitData>
| 节点 |
C# 类型 |
说明 |
Version |
string |
固定 “2.0” |
CreatedDate |
DateTime |
创建时间(ISO 8601) |
ModifiedDate |
DateTime |
修改时间 |
Components |
List |
所有电气元件(不含万用表/表笔) |
Wires |
List |
导线列表,AI 只需生成直线连接 |
WireSettings |
WireSettingsData |
全局导线样式(正交、颜色等) |
DrawableElements |
List |
文字/图片标注(可为空) |
DrawingLayout |
DrawingLayoutData |
图纸尺寸、标题、分区、边框 |
🔌 元件定义 (ComponentData)
每个元件对应一个 <ComponentData> 节点。AI 必须从元件知识库中获取完整的 TypeName、Size 以及端子集合定义。
📌 核心属性一览
| 属性 |
类型 |
说明 / 约束 |
ComponentGuid |
Guid |
全局唯一标识,用于导线端子引用。禁止 Guid.Empty |
TypeName |
string |
完整类型名,如 Controls.SVG.SinglePhasePower |
Location |
Point |
画布绝对坐标(控件左上角) |
Size |
Size |
控件宽高,必须与库定义一致 |
ComponentTitle |
string |
内部标题,如 “CircuitBreaker1P” |
ControlName |
string |
用户可见名称,如 “断路器QF1” |
ControlLabel |
string |
元件标签,如 “QF1” |
ShowComponentName |
bool |
是否显示控件名称(仅非SVG有效) |
ElectricalType |
enum |
AC 或 DC(序列化为字符串) |
ComponentType |
string |
分类标识:PowerSupply / AirSwitch / LED / Contactor 等 |
IsSVG |
bool? |
原理图必须 true;true=电气符号,false=实物图片 |
IsVoltage380V |
bool |
线圈是否 380V(默认 false=220V) |
RotationAngle |
int |
旋转角度:0, 90, 180, 270(仅 SVG 控件有效) |
Terminals |
List |
端子列表,必须与库定义完全一致 |
⚠️ IsSVG 精确语义与严格绑定
IsSVG 决定控件外观模式:true 渲染为标准电气符号(原理图),false 为实物图片(安装图)。
🔴 强绑定规则:TypeName 必须与 IsSVG 严格匹配!* Controls.SVG.* 类型 必须 设置 IsSVG=true,并提供完整的端子拓扑定义。
Controls.*(无 SVG 子命名空间)类型 必须 设置 IsSVG=false,端子使用系统默认值。
- 🚫 严禁混用:如
Controls.SVG.Bulb + IsSVG=false 或 Controls.Bulb + IsSVG=true 会导致加载异常。
🔄 旋转与端子位置计算(⚠️ 关键难点)
SVG 控件支持 RotationAngle = 0/90/180/270。旋转后端子的绝对位置会按旋转矩阵重新计算,导线的 Start/End 必须使用旋转后的绝对位置。
💡 安全策略:若非绝对必要,AI 生成时保持所有控件 RotationAngle=0,避免复杂的旋转计算导致坐标不匹配。
如果必须旋转,请使用以下公式计算端子绝对位置(以控件中心为旋转原点):
// 1. 计算控件中心
centerX = WorldLocation.X + Size.Width / 2
centerY = WorldLocation.Y + Size.Height / 2
// 2. 计算端子相对控件中心的偏移
dx = Position.X - Size.Width / 2
dy = Position.Y - Size.Height / 2
// 3. 根据旋转角度计算旋转后偏移 (顺时针)
// 0°: rotatedX = dx, rotatedY = dy
// 90°: rotatedX = dy, rotatedY = -dx
// 180°: rotatedX = -dx, rotatedY = -dy
// 270°: rotatedX = -dy, rotatedY = dx
// 4. 计算旋转后的绝对位置
absoluteX = centerX + rotatedX
absoluteY = centerY + rotatedY
🔘 端子定义 (TerminalData)
端子位置 Position 为相对于元件左上角的坐标。端子的绝对位置计算公式:
绝对位置 = WorldLocation + 旋转后Position
例如:元件位于 (200, 120) 未旋转,端子相对位置 (39, 15),则绝对位置 = (239, 135)
<TerminalData>
<Name>L</Name>
<Position><X>39</X><Y>15</Y></Position>
<Size>15</Size>
<Color>Orange</Color>
<IsConnected>true</IsConnected>
<Direction>3</Direction>
<ContactType>1</ContactType>
<GroupId>Power</GroupId>
<GroupType>5</GroupType>
</TerminalData>
📐 Direction 端子方向枚举(⚠️ 致命重要性)
Direction 不仅控制 SVG 端子短线的绘制方向,更直接决定了 ESim电工制图优化器的出线点计算!
如果 Direction 设置错误,优化器计算的出线点会指向控件内部,导致布线失败或严重穿模。
| 值 |
枚举名 |
短线绘制方向 |
优化器出线点位置 |
AI 判定规则 (RotationAngle=0时) |
| 0 |
Up |
从端子位置向下画(向内 ↓) |
控件上方 35px |
绝对位置.Y < WorldLocation.Y + Size.Height/2 |
| 1 |
Down |
从端子位置向上画(向内 ↑) |
控件下方 35px |
绝对位置.Y >= WorldLocation.Y + Size.Height/2 |
| 2 |
Left |
从端子位置向右画(向内 →) |
控件左方 35px |
绝对位置.X < WorldLocation.X + Size.Width/2 |
| 3 |
Right |
从端子位置向左画(向内 ←) |
控件右方 35px |
绝对位置.X >= WorldLocation.X + Size.Width/2 |
⚠️ Direction 值为 -1 时表示未定义,加载时不会覆盖控件默认值。AI 生成 SVG 控件时必须明确赋值 ≥ 0。
⚡ ContactType 触点类型枚举
| 值 |
枚举名 |
含义 |
典型应用 |
| 0 |
Coil |
线圈端 |
接触器 A1/A2 |
| 1 |
PowerL |
火线端 |
电源 L |
| 2 |
PowerN |
零线端 |
电源 N |
| 3 |
PowerPE |
接地端 |
电源 PE |
| 4 |
DCPowerpositive |
直流正极 |
直流电源 + |
| 5 |
DCPowernegative |
直流负极 |
直流电源 - |
| 6 |
NO |
常开触点 |
按钮、接触器 NO |
| 7 |
NC |
常闭触点 |
急停按钮、接触器 NC |
| 8 |
COM |
公共端 |
继电器 COM |
| 9 |
Undefined |
未定义 |
未分类端子 |
📋 GroupType 端子组类型枚举
| 值 |
枚举名 |
含义 |
说明 |
| 0 |
SPST |
单组触点 |
单刀单掷(如简单开关) |
| 1 |
SPDT |
单刀双掷 |
转换触点(如继电器 COM+NO+NC) |
| 2 |
DPDT |
双组触点 |
双触点组 |
| 3 |
Main |
主触点 |
接触器主回路 L1-T1 等 |
| 4 |
Auxiliary |
辅助触点 |
接触器辅助触点 |
| 5 |
Undefined |
未定义 |
未分类组(如电源端子组) |
🔴 重要:GroupType 枚举中不存在 Power 值!5=Undefined。电源端子的 GroupId 可设为 “Power”,但 GroupType 应设为 5。
🎨 颜色序列化规则
端子 Color 字段通过 ColorTranslator.ToHtml 序列化,支持两种格式:
- HTML 颜色名:如
Red、Blue、Black、Green
- **#RRGGBB 格式**:如
#E63946、#2563EB
🔗 导线定义 (WireData) - v1.0 重大更新
🌟 核心策略变更:直线连接 + 优化器接管
v1.0 版本彻底废除了 AI 计算拐点的要求。AI 只需生成包含精确起止坐标的直线导线,ESim电工制图的【导线一键优化】功能会自动将其转化为完美的正交避障路径。
✅ 必须遵守:直线直连法
<WireData>
<Id>唯一GUID</Id>
<Start><X>239</X><Y>135</Y></Start> <!-- 必须精确等于起始端子绝对位置 -->
<End><X>430</X><Y>120</Y></End> <!-- 必须精确等于终止端子绝对位置 -->
<Points /> <!-- ✅ 留空!AI 不计算拐点 -->
<Color>Black</Color>
<Width>2</Width>
<NetType>0</NetType>
<ConnectionPoints /> <!-- ✅ 留空!AI 不生成交点 -->
<StartTerminal>
<ComponentGuid>电源GUID</ComponentGuid>
<TerminalName>L</TerminalName>
</StartTerminal>
<EndTerminal>
<ComponentGuid>断路器GUID</ComponentGuid>
<TerminalName>L1</TerminalName>
</EndTerminal>
</WireData>
🚫 禁止使用的旧策略
| 禁止项 |
原因 |
| ❌ 计算 L/Z/U 形拐点 |
AI 拐点极易穿模,且会与优化器的 A* 寻路冲突导致布线混乱 |
❌ 使用 ConnectionPoints |
优化器会消除交点,AI 生成的交点拓扑会被破坏 |
❌ 使用 WireTerminalReference |
虚拟端子是用户手动连线的中间产物,AI 应直接端子对端子 |
📌 WireData 核心属性
| 属性 |
类型 |
说明 / 约束 |
Id |
Guid |
导线唯一标识。禁止 Guid.Empty |
Start |
Point |
必须等于 StartTerminal 所指端子的绝对位置 |
End |
Point |
必须等于 EndTerminal 所指端子的绝对位置 |
Points |
List |
AI 生成时必须留空 |
Color |
Color |
导线颜色,默认 Black |
Width |
int |
线宽,默认 2 |
Label |
string |
线号标注,可为空 |
IsSelected |
bool |
是否选中,固定 false |
NetType |
int |
网络类型枚举 |
ConnectionPoints |
List |
AI 生成时必须留空 |
StartTerminal |
CompRef |
起始端子引用 |
EndTerminal |
CompRef |
终止端子引用 |
StartWireTerminal |
WireRef |
AI 禁止使用 |
EndWireTerminal |
WireRef |
AI 禁止使用 |
🔴 致命约束:坐标精确匹配
🔴 关键规则:导线的 Start 坐标必须精确等于 StartTerminal 所指端子的绝对位置,End 坐标必须精确等于 EndTerminal 所指端子的绝对位置!
如果坐标不匹配,优化器将无法识别连接关系,导线会被错误删除!
📊 NetType 网络类型枚举
| 值 |
枚举名 |
含义 |
建议使用场景 |
| 0 |
Undefined |
未定义 |
默认值,或不区分时使用 |
| 1 |
Power |
火线 |
连接电源 L 端的导线 |
| 2 |
Neutral |
零线 |
连接电源 N 端的导线 |
| 3 |
Ground |
地线 |
连接 PE 端的导线 |
| 4 |
Signal |
信号/控制线 |
控制回路导线 |
🛠️ 布线策略与优化器协同 - v1.0 新增
🤖 ESim电工制图优化器工作原理
当用户点击【导线一键优化】时,系统执行以下流程:
- 拓扑提取:遍历所有导线,识别端子连接关系,消除虚拟端子
- 出线点计算:根据端子的
Direction 属性,在控件外围 35px 处计算出线点
- Direction=0(Up) → 出线点在控件上方
- Direction=1(Down) → 出线点在控件下方
- Direction=2(Left) → 出线点在控件左方
- Direction=3(Right) → 出线点在控件右方
- A* 寻路:在 Hanan 网格上搜索从出线点到出线点的最优正交路径
- 避障规则:
- 所有控件边界膨胀 25px 作为硬障碍物(不可穿越)
- 同向平行导线距离 < 20px 时产生惩罚代价(尽量避开)
- 拐角产生 40 代价惩罚(倾向于直线少拐角)
💡 AI 布局预留建议
为了让优化器能顺利布线,AI 在布局元件时应预留足够的空间:
- 出线点预留:控件四周至少预留 35px 的无障碍区域
- 通道预留:控件行列之间预留 ≥ 80px 的走线通道
- 拐角空间:导线拐角处至少预留 25px 的空间
- 网格对齐:坐标对齐 5px 网格,方便优化器在 Hanan 网格上寻路
📄 图纸布局 (DrawingLayoutData)
| 属性 |
类型 |
默认值 |
说明 |
PaperSize |
string |
“A4 横向” |
纸张规格,如 “A3 横向”、“A4 纵向”、“自定义” |
CustomPaperWidth |
float |
297 |
自定义纸张宽度,单位:毫米 |
CustomPaperHeight |
float |
210 |
自定义纸张高度,单位:毫米 |
LayoutColumns |
int |
8 |
分区列数 (1-26) |
LayoutRows |
int |
6 |
分区行数 (1-26) |
DrawingTitle |
string |
“电路原理图” |
图纸标题 |
DrawingScale |
string |
“1:1” |
比例 |
ShowBorder |
bool |
true |
显示图框 |
ShowLayoutGrid |
bool |
true |
显示分区网格 |
ShowInfo |
bool |
true |
显示标题栏 |
📏 标准纸张规格
| 规格 |
横向 |
纵向 |
| A0 |
1189 × 841 |
841 × 1189 |
| A1 |
841 × 594 |
594 × 841 |
| A2 |
594 × 420 |
420 × 594 |
| A3 |
420 × 297 |
297 × 420 |
| A4 |
297 × 210 |
210 × 297 |
💾 序列化规则与兼容性
🔧 类型查找机制
反序列化时通过以下分层容错查找机制定位控件类型:
- 优先直接按保存的全名查找(如
Controls.SVG.PushButtonNO)
- 找不到时尝试加
Controls. 前缀(兼容旧版短名)
- 最后兜底全局查找
⚠️ AI 生成时必须使用完整命名空间,不得依赖容错机制!
🔄 常见易混淆 TypeName 映射表
| 显示名称 |
SVG 版本 (IsSVG=true) |
图片版本 (IsSVG=false) |
| 单相电源 |
Controls.SVG.SinglePhasePower |
Controls.SinglePhasePowerSupply |
| 三相电源 |
Controls.SVG.ThreePhasePower |
Controls.ThreePhasePowerSupply |
| 断路器3P |
Controls.SVG.CircuitBreaker3P |
Controls.AirSwitch3P |
| 电机 |
Controls.SVG.Motor |
Controls.ThreePhaseMotor |
| 常开按钮 |
Controls.SVG.PushButtonNO |
Controls.GreenButton |
| 指示灯 |
Controls.SVG.PilotLight |
Controls.LEDGreen |
🔄 可空属性处理
IsSVG 为可空布尔(bool?):
- XML 中明确写出时:强制覆盖控件默认值
- XML 中缺少该节点时:值为 null,保留控件构造函数的默认值
AI 生成时务必明确赋值 true 或 false,不得省略!
🔧 WireSettings 关键节点
| XML 节点名 |
C# 属性 |
AI 推荐值 |
| WireColor |
WireColor |
Black |
| WireWidth |
WireWidth |
2 |
| IntersectionColor |
ConnectionPointColor |
Red |
| ConnectionPointSize |
ConnectionPointSize |
8 |
| ShowConnectionPoints |
ShowConnectionPoints |
true |
| SnapToGrid |
SnapToGrid |
true |
| GridSize |
GridSize |
5 |
| EnableOrthogonalConstraint |
EnableOrthogonalConstraint |
true |
| PreviewColor |
PreviewColor |
DarkGreen |
| PreviewWidth |
PreviewWidth |
3 |
| ShowGrid |
ShowGrid |
true |
| GridColor |
GridColor |
LightGrey |
⭐ AI 生成最佳实践流程
- 初始化图纸:设定 DrawingLayout,选择合适纸张和标题。
- 布局规划:遵循"左电源、右负载、中开关保护"原则。元件间距 ≥ 80px,预留走线通道。
- 复制元件模板:从标准元件库获取完整 ComponentData(含全部端子定义),仅更新 ComponentGuid、Location、ControlName、ControlLabel。
- 计算端子绝对位置:对每个端子计算 绝对位置 = WorldLocation + 旋转后Position。
- 生成直线导线:为每对需连接的端子创建 WireData,Start=端子A绝对位置,End=端子B绝对位置,Points 留空。
- 建立端子引用:为每根导线填写精确的 StartTerminal/EndTerminal。
- 全局设置检查:确保 EnableOrthogonalConstraint=true、IsSVG=true、所有 GUID 唯一且非空。
- 序列化输出:生成 XML,执行自检清单。
🔍 生成后自检清单
- ☑ 所有 ComponentGuid 唯一且非 Guid.Empty
- ☑ 所有 WireData.Id 唯一且非 Guid.Empty
- ☑ 所有 TypeName 以 “Controls.” 开头的完整命名空间
- ☑ 所有导线的 StartTerminal.ComponentGuid 在 Components 中存在
- ☑ 所有导线的 EndTerminal.ComponentGuid 在 Components 中存在
- ☑ 所有导线的 StartTerminal.TerminalName 与目标元件的端子 Name 匹配
- ☑ 所有导线的 EndTerminal.TerminalName 与目标元件的端子 Name 匹配
- ☑ ✅ 所有导线的 Start 坐标 = StartTerminal 所指端子的绝对位置
- ☑ ✅ 所有导线的 End 坐标 = EndTerminal 所指端子的绝对位置
- ☑ ✅ 所有导线的 Points 为空(直线连接策略)
- ☑ ✅ 所有导线的 ConnectionPoints 为空(禁止交点策略)
- ☑ IsSVG=true 的控件,端子 Direction/ContactType/GroupType 明确赋值
- ☑ EnableOrthogonalConstraint=true
- ☑ DrawingLayout 节点完整
📑 完整控件类型清单
本节列出系统中所有可用的电气元件。TypeName 必须使用完整命名空间。控件分为两类:
- SVG 控件(
Controls.SVG.*):电气原理图符号,支持旋转,端子拓扑完整定义
- 图片控件(
Controls.*):实物外观,端子使用系统默认值(Direction=Right, ContactType=Undefined)
⚠️ 以下控件在序列化时会被系统自动过滤,AI 不应生成:Multimeter、MultimeterProbe
一、SVG 电气符号控件(Controls.SVG.\*)
1.1 电源类
| TypeName |
端子数 |
电气类型 |
说明 |
| Controls.SVG.SinglePhasePower |
3 |
AC |
单相交流电源(L, N, PE) |
| Controls.SVG.ThreePhasePower |
5 |
AC |
三相交流电源(L1, L2, L3, N, PE) |
| Controls.SVG.DCPowerSupply |
5 |
DC |
直流电源(L, N, PE, +V1, -V1) |
| Controls.SVG.SinglePhaseTransformer |
4 |
AC |
单相变压器(U1, U2, V1, V2) |
| Controls.SVG.SinglePhasePowerTerminal |
3 |
AC |
单相电源接线端子排(L, N, PE) |
| Controls.SVG.ThreePhasePowerTerminal |
5 |
AC |
三相电源接线端子排(L1, L2, L3, N, PE) |
1.1.1 单相交流电源 Controls.SVG.SinglePhasePower
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| L |
(39, 15) |
Right |
PowerL |
Power |
Undefined |
| N |
(39, 30) |
Right |
PowerN |
Power |
Undefined |
| PE |
(39, 45) |
Right |
PowerPE |
Power |
Undefined |
1.1.2 三相交流电源 Controls.SVG.ThreePhasePower
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| L1 |
(39, 8) |
Right |
PowerL |
Power |
Undefined |
| L2 |
(39, 26) |
Right |
PowerL |
Power |
Undefined |
| L3 |
(39, 44) |
Right |
PowerL |
Power |
Undefined |
| N |
(39, 62) |
Right |
PowerN |
Power |
Undefined |
| PE |
(39, 80) |
Right |
PowerPE |
Power |
Undefined |
1.1.3 直流电源 Controls.SVG.DCPowerSupply
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| L |
(18, 0) |
Up |
PowerL |
Power |
Undefined |
| N |
(38, 0) |
Up |
PowerN |
Power |
Undefined |
| PE |
(55, 19) |
Right |
PowerPE |
Power |
Undefined |
| +V1 |
(18, 50) |
Down |
DCPowerpositive |
DCPower |
Undefined |
| -V1 |
(38, 50) |
Down |
DCPowernegative |
DCPower |
Undefined |
1.2 开关保护类
| TypeName |
端子数 |
电气类型 |
说明 |
| Controls.SVG.CircuitBreaker1P |
2 |
AC |
断路器 1P(L1, R1) |
| Controls.SVG.CircuitBreaker2P |
4 |
AC |
断路器 2P(L1, R1, L2, R2) |
| Controls.SVG.CircuitBreaker3P |
6 |
AC |
断路器 3P(L1, R1, L2, R2, L3, R3) |
| Controls.SVG.CircuitBreaker4P |
8 |
AC |
断路器 4P(L1, R1, L2, R2, L3, R3, N1, N2) |
| Controls.SVG.MotorCircuitBreaker |
6 |
AC |
电机断路器(L1, R1, L2, R2, L3, R3) |
| Controls.SVG.Fuse1PY |
2 |
AC |
熔断器 1P(L1, R1) |
| Controls.SVG.Fuse2PY |
4 |
AC |
熔断器 2P(L1, R1, L2, R2) |
| Controls.SVG.Fuse3PY |
6 |
AC |
熔断器 3P(L1, R1, L2, R2, L3, R3) |
| Controls.SVG.ThermalProtectorY |
6 |
AC |
热过载继电器主回路(1L1, 2T1, 3L2, 4T2, 5L3, 6T3) |
| Controls.SVG.FRncY |
2 |
AC |
热继电器 NC 辅助触点(95, 96) |
| Controls.SVG.FRnoY |
2 |
AC |
热继电器 NO 辅助触点(97, 98) |
1.2.1 断路器 1P Controls.SVG.CircuitBreaker1P
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| L1 |
(30, 0) |
Up |
NO |
SW |
SPST |
| R1 |
(30, 50) |
Down |
NO |
SW |
SPST |
1.2.2 断路器 2P Controls.SVG.CircuitBreaker2P
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| L1 |
(30, 0) |
Up |
NO |
SW_L1 |
SPST |
| R1 |
(30, 50) |
Down |
NO |
SW_L1 |
SPST |
| L2 |
(50, 0) |
Up |
NO |
SW_L2 |
SPST |
| R2 |
(50, 50) |
Down |
NO |
SW_L2 |
SPST |
1.2.3 断路器 3P Controls.SVG.CircuitBreaker3P
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| L1 |
(30, 0) |
Up |
NO |
SW_L1 |
SPST |
| R1 |
(30, 50) |
Down |
NO |
SW_L1 |
SPST |
| L2 |
(50, 0) |
Up |
NO |
SW_L2 |
SPST |
| R2 |
(50, 50) |
Down |
NO |
SW_L2 |
SPST |
| L3 |
(70, 0) |
Up |
NO |
SW_L3 |
SPST |
| R3 |
(70, 50) |
Down |
NO |
SW_L3 |
SPST |
1.2.4 电机断路器 Controls.SVG.MotorCircuitBreaker
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| L1 |
(10, 0) |
Up |
NO |
SW_L1 |
SPST |
| R1 |
(10, 70) |
Down |
NO |
SW_L1 |
SPST |
| L2 |
(30, 0) |
Up |
NO |
SW_L2 |
SPST |
| R2 |
(30, 70) |
Down |
NO |
SW_L2 |
SPST |
| L3 |
(50, 0) |
Up |
NO |
SW_L3 |
SPST |
| R3 |
(50, 70) |
Down |
NO |
SW_L3 |
SPST |
1.3 按钮与开关类
| TypeName |
端子数 |
电气类型 |
说明 |
| Controls.SVG.PushButtonNO |
2 |
AC |
常开按钮(13, 14) |
| Controls.SVG.PushButtonNC |
2 |
AC |
常闭按钮(11, 12) |
| Controls.SVG.PushButtonNOH |
2 |
AC |
常开自锁按钮(13, 14) |
| Controls.SVG.PushButtonNCH |
2 |
AC |
常闭自锁按钮(11, 12) |
| Controls.SVG.PushButtonNCNO |
4 |
AC |
双触点按钮 NC+NO(11, 12, 13, 14) |
| Controls.SVG.PushButtonNCNOH |
4 |
AC |
双触点自锁按钮 NC+NO(11, 12, 13, 14) |
| Controls.SVG.EStopNCH |
2 |
AC |
急停按钮 NC 自锁(11, 12) |
| Controls.SVG.EStopNOH |
2 |
AC |
急停按钮 NO 自锁(13, 14) |
| Controls.SVG.EStopNCNOH |
4 |
AC |
急停按钮 NC+NO 自锁(11, 12, 13, 14) |
1.3.1 常开按钮 Controls.SVG.PushButtonNO
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 13 |
(20, 0) |
Up |
NO |
NO |
SPST |
| 14 |
(20, 50) |
Down |
NO |
NO |
SPST |
1.3.2 常闭按钮 Controls.SVG.PushButtonNC
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 11 |
(20, 0) |
Up |
NC |
NC |
SPST |
| 12 |
(20, 50) |
Down |
NC |
NC |
SPST |
1.3.3 双触点按钮 Controls.SVG.PushButtonNCNO
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 11 |
(20, 0) |
Up |
NC |
NC |
SPST |
| 12 |
(20, 50) |
Down |
NC |
NC |
SPST |
| 13 |
(40, 0) |
Up |
NO |
NO |
SPST |
| 14 |
(40, 50) |
Down |
NO |
NO |
SPST |
1.3.4 急停按钮 NC Controls.SVG.EStopNCH
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 11 |
(20, 0) |
Up |
NC |
NC |
SPST |
| 12 |
(20, 50) |
Down |
NC |
NC |
SPST |
1.3.5 急停按钮 NC+NO Controls.SVG.EStopNCNOH
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 11 |
(20, 0) |
Up |
NC |
NC |
SPST |
| 12 |
(20, 50) |
Down |
NC |
NC |
SPST |
| 13 |
(40, 0) |
Up |
NO |
NO |
SPST |
| 14 |
(40, 50) |
Down |
NO |
NO |
SPST |
1.4 指示灯与负载类
| TypeName |
端子数 |
电气类型 |
说明 |
| Controls.SVG.PilotLight |
2 |
AC |
指示灯(1, 2) |
| Controls.SVG.BuzzerY |
2 |
AC |
蜂鸣器(1, 2) |
| Controls.SVG.SolenoidY |
2 |
AC |
电磁阀线圈(1, 2) |
1.4.1 指示灯 Controls.SVG.PilotLight
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 1 |
(10, 0) |
Up |
PowerL |
Power |
Undefined |
| 2 |
(10, 50) |
Down |
PowerN |
Power |
Undefined |
1.5 接触器与继电器类
| TypeName |
端子数 |
电气类型 |
说明 |
| Controls.SVG.KMCoil |
2 |
AC |
接触器 KM 线圈(A1, A2) |
| Controls.SVG.KACoil |
2 |
AC |
中间继电器 KA 线圈(13, 14) |
| Controls.SVG.KTCoil |
2 |
AC |
时间继电器 KT 线圈(A1, A2) |
| Controls.SVG.NOcontact |
2 |
AC |
常开触点(13, 14) |
| Controls.SVG.NCcontact |
2 |
AC |
常闭触点(11, 12) |
| Controls.SVG.NCNOcontact |
4 |
AC |
转换触点 NC+NO(11, 12, 13, 14) |
| Controls.SVG.ContactorY |
6 |
AC |
接触器主触点(L1, R1, L2, R2, L3, R3) |
| Controls.SVG.NCNOrelayY |
3 |
AC |
继电器转换触点(1, 5, 9) |
| Controls.SVG.TimeNC |
2 |
AC |
时间继电器 NC 触点(1, 4) |
| Controls.SVG.TimeNO |
2 |
AC |
时间继电器 NO 触点(1, 3) |
1.5.1 接触器线圈 Controls.SVG.KMCoil
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| A1 |
(20, 0) |
Up |
Coil |
KM_Coil |
Undefined |
| A2 |
(20, 50) |
Down |
Coil |
KM_Coil |
Undefined |
1.5.2 中间继电器线圈 Controls.SVG.KACoil
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 13 |
(20, 0) |
Up |
Coil |
KA_Coil |
Undefined |
| 14 |
(20, 50) |
Down |
Coil |
KA_Coil |
Undefined |
1.5.3 时间继电器线圈 Controls.SVG.KTCoil
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| A1 |
(30, 10) |
Up |
Coil |
KT_Coil |
Undefined |
| A2 |
(30, 60) |
Down |
Coil |
KT_Coil |
Undefined |
1.5.4 常开触点 Controls.SVG.NOcontact
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 13 |
(10, 0) |
Up |
NO |
NO |
SPST |
| 14 |
(10, 50) |
Down |
NO |
NO |
SPST |
1.5.5 常闭触点 Controls.SVG.NCcontact
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 11 |
(10, 0) |
Up |
NC |
NC |
SPST |
| 12 |
(10, 50) |
Down |
NC |
NC |
SPST |
1.5.6 转换触点 Controls.SVG.NCNOcontact
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 11 |
(20, 0) |
Up |
NC |
NC |
SPST |
| 12 |
(20, 50) |
Down |
NC |
NC |
SPST |
| 13 |
(40, 0) |
Up |
NO |
NO |
SPST |
| 14 |
(40, 50) |
Down |
NO |
NO |
SPST |
1.5.7 接触器主触点 Controls.SVG.ContactorY
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| L1 |
(30, 0) |
Up |
NO |
SW_L |
Main |
| R1 |
(30, 50) |
Down |
NO |
SW_L |
Main |
| L2 |
(50, 0) |
Up |
NO |
SW_M |
Main |
| R2 |
(50, 50) |
Down |
NO |
SW_M |
Main |
| L3 |
(70, 0) |
Up |
NO |
SW_R |
Main |
| R3 |
(70, 50) |
Down |
NO |
SW_R |
Main |
1.5.8 继电器转换触点 Controls.SVG.NCNOrelayY
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 1 |
(10, 50) |
Down |
NC |
Relay |
SPDT |
| 5 |
(30, 50) |
Down |
NO |
Relay |
SPDT |
| 9 |
(20, 0) |
Up |
COM |
Relay |
SPDT |
1.5.9 时间继电器 NC 触点 Controls.SVG.TimeNC
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 1 |
(10, 0) |
Up |
NC |
TimeNC |
SPST |
| 4 |
(10, 50) |
Down |
NC |
TimeNC |
SPST |
1.5.10 时间继电器 NO 触点 Controls.SVG.TimeNO
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 1 |
(20, 0) |
Up |
NO |
TimeNO |
SPST |
| 3 |
(20, 50) |
Down |
NO |
TimeNO |
SPST |
1.6 电机与执行器类
| TypeName |
端子数 |
电气类型 |
说明 |
| Controls.SVG.Motor |
7 |
AC |
三相异步电机(U1, V1, W1, U2, V2, W2, PE) |
| Controls.SVG.SingleMotor |
4 |
AC |
单相电机(N, L1, L2, PE) |
| Controls.SVG.MD200Y |
23 |
AC |
汇川变频器 |
| Controls.SVG.Easy320Y |
21 |
DC |
汇川 Easy320 PLC |
| Controls.SVG.MagneticBrake |
2 |
AC |
电磁制动器(1, 2) |
1.6.1 三相异步电机 Controls.SVG.Motor
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| U1 |
(31, 10) |
Down |
PowerL |
3M |
Undefined |
| V1 |
(51, 10) |
Down |
PowerL |
3M |
Undefined |
| W1 |
(71, 10) |
Down |
PowerL |
3M |
Undefined |
| U2 |
(31, 70) |
Up |
PowerL |
3M |
Undefined |
| V2 |
(51, 70) |
Up |
PowerL |
3M |
Undefined |
| W2 |
(71, 70) |
Up |
PowerL |
3M |
Undefined |
| PE |
(80, 33) |
Left |
PowerPE |
M_PE |
Undefined |
1.6.2 单相电机 Controls.SVG.SingleMotor
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| N |
(20, 10) |
Up |
PowerN |
M |
Undefined |
| L1 |
(45, 10) |
Up |
PowerL |
M |
Undefined |
| L2 |
(70, 10) |
Up |
PowerL |
M |
Undefined |
| PE |
(66, 61) |
Left |
PowerPE |
M |
Undefined |
1.6.3 汇川变频器 Controls.SVG.MD200Y
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| R |
(-160, -50) |
Up |
COM |
Power_Input |
Undefined |
| S |
(-125, -50) |
Up |
COM |
Power_Input |
Undefined |
| T |
(-90, -50) |
Up |
COM |
Power_Input |
Undefined |
| PE1 |
(-55, -50) |
Up |
COM |
Power_Input |
Undefined |
| DI1 |
(-10, -50) |
Up |
NO |
Control_Input |
Undefined |
| DI2 |
(15, -50) |
Up |
NO |
Control_Input |
Undefined |
| DI3 |
(40, -50) |
Up |
NO |
Control_Input |
Undefined |
| DI4 |
(65, -50) |
Up |
NO |
Control_Input |
Undefined |
| COM |
(90, -50) |
Up |
COM |
Control_Input |
Undefined |
| 10V |
(125, -50) |
Up |
COM |
Control_Input |
Undefined |
| GND |
(150, -50) |
Up |
COM |
Control_Input |
Undefined |
| AI |
(175, -50) |
Up |
NO |
Control_Input |
Undefined |
| U |
(-160, 60) |
Down |
COM |
Power_Output |
Undefined |
| V |
(-125, 60) |
Down |
COM |
Power_Output |
Undefined |
| W |
(-90, 60) |
Down |
COM |
Power_Output |
Undefined |
| PE2 |
(-55, 60) |
Down |
COM |
Power_Output |
Undefined |
| P+ |
(-10, 60) |
Down |
NO |
Control_Output |
Undefined |
| P- |
(20, 60) |
Down |
NO |
Control_Output |
Undefined |
| TA |
(55, 60) |
Down |
NO |
Control_Output |
Undefined |
| TB |
(80, 60) |
Down |
NO |
Control_Output |
Undefined |
| TC |
(105, 60) |
Down |
NO |
Control_Output |
Undefined |
| DO1 |
(140, 60) |
Down |
NO |
Control_Output |
Undefined |
| COM |
(165, 60) |
Down |
COM |
Control_Output |
Undefined |
1.6.4 汇川 Easy320 PLC Controls.SVG.Easy320Y
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| X0 |
(-45, -50) |
Up |
Undefined |
PLC_Input |
Undefined |
| X1 |
(-20, -50) |
Up |
Undefined |
PLC_Input |
Undefined |
| X2 |
(5, -50) |
Up |
Undefined |
PLC_Input |
Undefined |
| X3 |
(30, -50) |
Up |
Undefined |
PLC_Input |
Undefined |
| X4 |
(55, -50) |
Up |
Undefined |
PLC_Input |
Undefined |
| X5 |
(80, -50) |
Up |
Undefined |
PLC_Input |
Undefined |
| X6 |
(105, -50) |
Up |
Undefined |
PLC_Input |
Undefined |
| X7 |
(130, -50) |
Up |
Undefined |
PLC_Input |
Undefined |
| SS |
(155, -50) |
Up |
Undefined |
PLC_Input |
Undefined |
| Y0 |
(-45, 60) |
Down |
Undefined |
PLC_Output |
Undefined |
| Y1 |
(-20, 60) |
Down |
Undefined |
PLC_Output |
Undefined |
| Y2 |
(5, 60) |
Down |
Undefined |
PLC_Output |
Undefined |
| Y3 |
(30, 60) |
Down |
Undefined |
PLC_Output |
Undefined |
| Y4 |
(55, 60) |
Down |
Undefined |
PLC_Output |
Undefined |
| Y5 |
(80, 60) |
Down |
Undefined |
PLC_Output |
Undefined |
| Y6 |
(105, 60) |
Down |
Undefined |
PLC_Output |
Undefined |
| Y7 |
(130, 60) |
Down |
Undefined |
PLC_Output |
Undefined |
| COM |
(155, 60) |
Down |
Undefined |
PLC_Output |
Undefined |
| 24V |
(-170, 60) |
Down |
DCPowerpositive |
PLC_Power |
Undefined |
| 0V |
(-135, 60) |
Down |
DCPowernegative |
PLC_Power |
Undefined |
| GND |
(-100, 60) |
Down |
COM |
PLC_Power |
Undefined |
1.7 传感器类
| TypeName |
端子数 |
电气类型 |
说明 |
| Controls.SVG.PhotoelectricSensor |
5 |
DC |
光电传感器(BR, BL, GY, BK, WH) |
| Controls.SVG.LevelSwitchNO |
2 |
AC |
液位开关 NO(13, 14) |
| Controls.SVG.LevelSwitchNC |
2 |
AC |
液位开关 NC(11, 12) |
| Controls.SVG.LimitSwitchNO |
2 |
AC |
限位开关 NO(13, 14) |
| Controls.SVG.LimitSwitchNC |
2 |
AC |
限位开关 NC(11, 12) |
| Controls.SVG.PressureSwitchNO |
2 |
AC |
压力开关 NO(13, 14) |
| Controls.SVG.PressureSwitchNC |
2 |
AC |
压力开关 NC(11, 12) |
| Controls.SVG.MagneticSwitch |
2 |
AC |
磁性开关(13, 14) |
1.7.1 光电传感器 Controls.SVG.PhotoelectricSensor
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| BR |
(30, 0) |
Up |
DCPowerpositive |
ReflectiveSensor |
Undefined |
| BL |
(30, 120) |
Down |
DCPowernegative |
ReflectiveSensor |
Undefined |
| GY |
(80, 40) |
Right |
NC |
ReflectiveSensor |
Undefined |
| BK |
(80, 60) |
Right |
NO |
ReflectiveSensor |
Undefined |
| WH |
(80, 80) |
Right |
COM |
ReflectiveSensor |
Undefined |
1.7.2 液位开关 NO Controls.SVG.LevelSwitchNO
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 13 |
(20, 0) |
Up |
NO |
LevelSwitchNO |
Undefined |
| 14 |
(20, 50) |
Down |
NO |
LevelSwitchNO |
Undefined |
1.7.3 液位开关 NC Controls.SVG.LevelSwitchNC
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 11 |
(20, 0) |
Up |
NC |
LevelSwitchNC |
SPST |
| 12 |
(20, 50) |
Down |
NC |
LevelSwitchNC |
SPST |
1.7.4 限位开关 NO Controls.SVG.LimitSwitchNO
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 13 |
(10, 0) |
Up |
NO |
LimitSwitchNO |
SPST |
| 14 |
(10, 50) |
Down |
NO |
LimitSwitchNO |
SPST |
1.7.5 限位开关 NC Controls.SVG.LimitSwitchNC
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 11 |
(10, 0) |
Up |
NC |
LimitSwitchNC |
SPST |
| 12 |
(10, 50) |
Down |
NC |
LimitSwitchNC |
SPST |
1.7.6 压力开关 NO Controls.SVG.PressureSwitchNO
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 13 |
(20, 0) |
Up |
NO |
PressureSwitchNO |
Undefined |
| 14 |
(20, 50) |
Down |
NO |
PressureSwitchNO |
Undefined |
1.7.7 压力开关 NC Controls.SVG.PressureSwitchNC
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 11 |
(20, 0) |
Up |
NC |
PressureSwitchNC |
SPST |
| 12 |
(20, 50) |
Down |
NC |
PressureSwitchNC |
SPST |
1.7.8 磁性开关 Controls.SVG.MagneticSwitch
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 13 |
(20, 0) |
Up |
Undefined |
MagneticSwitch |
Undefined |
| 14 |
(20, 100) |
Down |
Undefined |
MagneticSwitch |
Undefined |
1.8 接线端子类
| TypeName |
端子数 |
电气类型 |
说明 |
| Controls.SVG.SingleTerminalBlock |
1 |
AC |
单端子排(1) |
| Controls.SVG.SingleTerminalBlockA |
1 |
AC |
单端子排 A 型(1) |
| Controls.SVG.SingleTerminalBlockB |
1 |
AC |
单端子排 B 型(1) |
| Controls.SVG.SingleTerminalBlockC |
1 |
AC |
单端子排 C 型(1) |
| Controls.SVG.SingleGroundTerminal |
1 |
AC |
单接地端子(PE) |
| Controls.SVG.SinglePhasePowerTerminal |
3 |
AC |
单相电源端子(L, N, PE) |
| Controls.SVG.ThreePhasePowerTerminal |
5 |
AC |
三相电源端子(L1, L2, L3, N, PE) |
1.8.1 单端子排 Controls.SVG.SingleTerminalBlock
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| 1 |
(19, 32.5) |
Right |
Undefined |
Terminal |
Undefined |
1.8.2 单接地端子 Controls.SVG.SingleGroundTerminal
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| PE |
(2, 15) |
Left |
PowerPE |
Terminal |
Undefined |
1.8.3 单相电源端子 Controls.SVG.SinglePhasePowerTerminal
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| L |
(2, 13) |
Left |
PowerL |
Terminal |
Undefined |
| N |
(2, 28) |
Left |
PowerN |
Terminal |
Undefined |
| PE |
(2, 43) |
Left |
PowerPE |
Terminal |
Undefined |
1.8.4 三相电源端子 Controls.SVG.ThreePhasePowerTerminal
| Name |
Position(X,Y) |
Direction |
ContactType |
GroupId |
GroupType |
| L1 |
(2, 8) |
Left |
PowerL |
Terminal |
Undefined |
| L2 |
(2, 26) |
Left |
PowerL |
Terminal |
Undefined |
| L3 |
(2, 44) |
Left |
PowerL |
Terminal |
Undefined |
| N |
(2, 62) |
Left |
PowerN |
Terminal |
Undefined |
| PE |
(2, 80) |
Left |
PowerPE |
Terminal |
Undefined |
1.9 其他 SVG 控件
| TypeName |
端子数 |
电气类型 |
说明 |
| Controls.SVG.SSR |
— |
AC |
固态继电器 |
| Controls.SVG.SSRDC |
— |
DC |
固态继电器 DC |
| Controls.SVG.SinglePhaseMotor |
— |
AC |
单相电机 |
| Controls.SVG.ThreePhaseMotor |
— |
AC |
三相电机 |
| Controls.SVG.Relay8Pin |
— |
AC |
8脚继电器 |
| Controls.SVG.Relay14Pin |
— |
AC |
14脚继电器 |
| Controls.SVG.Relay8PinDC |
— |
DC |
8脚继电器 DC |
| Controls.SVG.Relay14PinDC |
— |
DC |
14脚继电器 DC |
| Controls.SVG.HeatingTube220V |
— |
AC |
加热管 220V |
| Controls.SVG.HeatingTube380V |
— |
AC |
加热管 380V |
二、图片实物控件(Controls.\*)
图片控件端子的 Direction、ContactType、GroupId、GroupType 均使用系统默认值,AI 无需显式赋值。
2.1 电源类
| TypeName |
端子数 |
电气类型 |
端子名称 |
说明 |
| Controls.SinglePhasePowerSupply |
2 |
AC |
L, N |
单相交流电源 |
| Controls.ThreePhasePowerSupply |
5 |
AC |
L1, L2, L3, N, PE |
三相交流电源 |
| Controls.DCPower |
5 |
AC |
L, N, PE, +V1, -V1 |
直流电源 |
| Controls.DCPowerA |
— |
DC |
— |
直流电源 A 型 |
2.2 开关保护类
| TypeName |
端子数 |
电气类型 |
端子名称 |
说明 |
| Controls.AirSwitch1P |
2 |
AC |
L1, R1 |
空气开关 1P |
| Controls.AirSwitch2P |
4 |
AC |
— |
空气开关 2P |
| Controls.AirSwitch3P |
6 |
AC |
— |
空气开关 3P |
| Controls.AirSwitch4P |
8 |
AC |
— |
空气开关 4P |
| Controls.CircuitBreakerB |
— |
AC |
— |
断路器 B 型 |
| Controls.CircuitBreakerW |
— |
AC |
— |
断路器 W 型 |
| Controls.Fuse1P |
— |
AC |
— |
熔断器 1P |
| Controls.Fuse2P |
— |
AC |
— |
熔断器 2P |
| Controls.Fuse3P |
— |
AC |
— |
熔断器 3P |
| Controls.MotorCircuitBreakerA |
— |
AC |
— |
电机断路器 A 型 |
| Controls.MotorCircuitBreakerB |
— |
AC |
— |
电机断路器 B 型 |
| Controls.Isolatingswitch |
— |
AC |
— |
隔离开关 |
2.3 按钮开关类
| TypeName |
端子数 |
电气类型 |
端子名称 |
说明 |
| Controls.GreenButton |
4 |
AC |
1, 2, 3, 4 |
绿色按钮 |
| Controls.RedButton |
4 |
AC |
1, 2, 3, 4 |
红色按钮 |
| Controls.YellowButton |
4 |
AC |
1, 2, 3, 4 |
黄色按钮 |
| Controls.GreenJogButton |
4 |
AC |
1, 2, 3, 4 |
绿色点动按钮 |
| Controls.RedJogButton |
4 |
AC |
1, 2, 3, 4 |
红色点动按钮 |
| Controls.EmergencyStop |
— |
AC |
— |
急停按钮 |
| Controls.EmergencyStopA |
— |
AC |
— |
急停按钮 A 型 |
| Controls.FootSwitch |
2 |
AC |
1, 3 |
脚踏开关 |
2.4 指示灯与负载类
| TypeName |
端子数 |
电气类型 |
端子名称 |
说明 |
| Controls.Bulb |
2 |
AC |
L, N |
灯泡 |
| Controls.Buzzer |
2 |
AC |
1, 2 |
蜂鸣器 |
| Controls.BuzzerDC |
— |
DC |
— |
蜂鸣器 DC |
| Controls.LEDGreen |
2 |
AC |
1, 2 |
绿色 LED |
| Controls.LEDRed |
2 |
AC |
1, 2 |
红色 LED |
| Controls.LEDYellow |
2 |
AC |
1, 2 |
黄色 LED |
| Controls.LEDGreenDC |
2 |
DC |
1, 2 |
绿色 LED DC |
| Controls.LEDRedDC |
2 |
DC |
1, 2 |
红色 LED DC |
| Controls.LEDYellowDC |
2 |
DC |
1, 2 |
黄色 LED DC |
| Controls.TriColourLight |
4 |
AC |
Yellow, Green, Red, N |
三色灯 |
| Controls.TriColourLightDC |
4 |
DC |
Yellow, Green, Red, N |
三色灯 DC |
2.5 接触器与继电器类
| TypeName |
端子数 |
电气类型 |
端子名称 |
说明 |
| Controls.ACContactorA |
12 |
AC |
A1, A2, A21, L1, L2, L3, T1, T2, T3, 21NC, 13NO, 14NO, 22NC |
交流接触器 A 型 |
| Controls.ACContactorB |
— |
AC |
— |
交流接触器 B 型 |
| Controls.ACContactorC |
— |
AC |
— |
交流接触器 C 型 |
| Controls.ACContactorD |
— |
AC |
— |
交流接触器 D 型 |
| Controls.ACContactorADC |
— |
DC |
— |
交流接触器 A 型 DC |
| Controls.Relay8Pin |
8 |
AC |
1, 4, 5, 8, 9, 12, 13, 14 |
8脚继电器 |
| Controls.Relay14Pin |
— |
AC |
— |
14脚继电器 |
| Controls.Relay8PinDC |
— |
DC |
— |
8脚继电器 DC |
| Controls.Relay14PinDC |
— |
DC |
— |
14脚继电器 DC |
| Controls.TimeRelay |
— |
AC |
— |
时间继电器 |
| Controls.TimeRelayDC |
— |
DC |
— |
时间继电器 DC |
| Controls.TimeRelayE |
— |
AC |
— |
时间继电器 E 型 |
2.6 电机与执行器类
| TypeName |
端子数 |
电气类型 |
端子名称 |
说明 |
| Controls.SinglePhaseMotor |
— |
AC |
— |
单相电机 |
| Controls.ThreePhaseMotor |
— |
AC |
— |
三相电机 |
| Controls.SolenoidValve |
— |
AC |
— |
电磁阀 |
| Controls.MicroCylinder |
— |
AC |
— |
微型气缸 |
| Controls.CAMswitch |
— |
AC |
— |
凸轮开关 |
2.7 传感器类
| TypeName |
端子数 |
电气类型 |
端子名称 |
说明 |
| Controls.ProximitySwitchNO |
2 |
AC |
1, 2 |
接近开关 NO |
| Controls.ProximitySwitchNC |
2 |
AC |
1, 2 |
接近开关 NC |
| Controls.ProximitySwitchNPNDC |
— |
DC |
— |
接近开关 NPN DC |
| Controls.ProximitySwitchPNPDC |
— |
DC |
— |
接近开关 PNP DC |
| Controls.OptoElectronicSwitchNO |
2 |
AC |
1, 2 |
光电开关 NO |
| Controls.OptoElectronicSwitchNC |
2 |
AC |
1, 2 |
光电开关 NC |
| Controls.OptoElectronicSwitchNPNDC |
— |
DC |
— |
光电开关 NPN DC |
| Controls.OptoElectronicSwitchPNPDC |
— |
DC |
— |
光电开关 PNP DC |
| Controls.LevelSwitch |
— |
AC |
— |
液位开关 |
| Controls.LevelSwitchDC |
— |
DC |
— |
液位开关 DC |
| Controls.FloatSwitch |
3 |
AC |
1, 2, 3 |
浮球开关 |
| Controls.LimitSwitch |
— |
AC |
— |
限位开关 |
| Controls.LimitSwitchJog |
— |
AC |
— |
限位开关点动 |
| Controls.CylinderMagneticSwitch |
2 |
DC |
1, 2 |
气缸磁性开关 |
| Controls.SafetyLightCurtainDC |
3 |
DC |
+24V, 0V, OUT |
安全光幕 DC |
| Controls.MagneticSafetySwitchP |
3 |
DC |
+24V, 0V, OUT |
磁性安全开关 P 型 |
2.8 安全与保护类
| TypeName |
端子数 |
电气类型 |
端子名称 |
说明 |
| Controls.SafetyRelay |
16 |
AC |
13, 23, 24, A1, S33, S34, S21, S22, A2, 14, S11, S12, CH11, CH12, CH21, CH22 |
安全继电器 |
| Controls.SafetyRelayDC |
16 |
DC |
13, 23, 24, A1, S33, S34, S21, S22, A2, 14, S11, S12, CH11, CH12, CH21, CH22 |
安全继电器 DC |
| Controls.ThermalProtectionSwitch |
10 |
AC |
1L1, 3L2, 5L3, 2T1, 4T2, 6T3, NC95, NC96, NO97, NO98 |
热过载保护开关 |
2.9 仪表与测量类
| TypeName |
端子数 |
电气类型 |
端子名称 |
说明 |
| Controls.AmMeter |
2 |
AC |
L1, L2 |
电流表 |
| Controls.VoltMeter |
— |
AC |
— |
电压表 |
| Controls.ElectricEnergyMeter |
4 |
AC |
1, 2, 3, 4 |
单相电能表 |
| Controls.ElectricEnergyMeter3P |
— |
AC |
— |
三相电能表 |
| Controls.CurrentTransformer |
— |
AC |
— |
电流互感器 |
2.10 墙壁开关插座类
| TypeName |
端子数 |
电气类型 |
端子名称 |
说明 |
| Controls.WallSwitch |
3 |
AC |
1, 2, 3 |
墙壁开关 |
| Controls.WallSwitchTwo |
— |
AC |
— |
双联墙壁开关 |
| Controls.WallSwitchMultiControl |
— |
AC |
— |
多控墙壁开关 |
| Controls.WallSocket |
3 |
AC |
L, N, PE |
墙壁插座 |
| Controls.WallSocketA |
— |
AC |
— |
墙壁插座 A 型 |
2.11 接线端子类
| TypeName |
端子数 |
电气类型 |
端子名称 |
说明 |
| Controls.HorizontalTerminalBlock |
— |
AC |
— |
水平接线端子排 |
| Controls.VerticalTerminalBlock |
— |
AC |
— |
垂直接线端子排 |
2.12 温控与变频类
| TypeName |
端子数 |
电气类型 |
端子名称 |
说明 |
| Controls.TemperatureController |
— |
AC |
— |
温控器 |
| Controls.MD200 |
— |
AC |
— |
汇川变频器 MD200 |
| Controls.Easy320 |
— |
DC |
— |
汇川 Easy320 PLC |
2.13 其他图片控件
| TypeName |
端子数 |
电气类型 |
端子名称 |
说明 |
| Controls.MotorFanControl |
— |
AC |
— |
风机控制 |
| Controls.WaterValve |
— |
AC |
— |
水阀 |
| Controls.WaterPressureSwitch |
— |
AC |
— |
水压开关 |
📁 成功案例:双指示灯并联控制电路(v1.0 直连版)
该案例演示了 v1.0 规范的直线直连法。导线不计算任何拐点,加载后通过 ESim电工制图优化器自动生成完美的正交路径。
电路拓扑
单相电源 L --- 断路器 L1→R1 --┬--- 指示灯HL1 端子1→2 --┬--- 电源 N
└─── 指示灯HL2 端子1→2 ──┘
端子绝对位置计算验证
| 元件 |
WorldLocation |
端子 |
相对Position |
绝对位置 |
| 单相电源 |
(200, 120) |
L |
(39, 15) |
(239, 135) |
| 单相电源 |
(200, 120) |
N |
(39, 30) |
(239, 150) |
| 单相电源 |
(200, 120) |
PE |
(39, 45) |
(239, 165) |
| 断路器QF1 |
(400, 120) |
L1 |
(30, 0) |
(430, 120) |
| 断路器QF1 |
(400, 120) |
R1 |
(30, 50) |
(430, 170) |
| 指示灯HL1 |
(320, 310) |
1 |
(10, 0) |
(330, 310) |
| 指示灯HL1 |
(320, 310) |
2 |
(10, 50) |
(330, 360) |
| 指示灯HL2 |
(500, 310) |
1 |
(10, 0) |
(510, 310) |
| 指示灯HL2 |
(500, 310) |
2 |
(10, 50) |
(510, 360) |
导线数据(✅ v1.0 直连法:无拐点)
| 导线 |
起点→绝对位置 |
终点→绝对位置 |
Points |
策略说明 |
| W1 |
电源L→(239,135) |
断路器L1→(430,120) |
空 |
✅ 直连线,优化器自动处理 |
| W2 |
断路器R1→(430,170) |
HL1端子1→(330,310) |
空 |
✅ 直连线,优化器自动处理 |
| W3 |
断路器R1→(430,170) |
HL2端子1→(510,310) |
空 |
✅ 直连线,优化器自动处理 |
| W4 |
HL1端子2→(330,360) |
电源N→(239,150) |
空 |
✅ 直连线,优化器自动处理 |
| W5 |
HL2端子2→(510,360) |
电源N→(239,150) |
空 |
✅ 直连线,优化器自动处理 |
📊 本案例关键验证点
- ✅ 所有导线无拐点:AI 仅生成 Start/End 坐标匹配的直线
- ✅ 共享端子实现并联:W2/W3 共用断路器 R1,W4/W5 共用电源 N(无需交点)
- ✅ 坐标精确匹配:Start/End 严格等于端子绝对位置,优化器可正确识别
- ✅ NetType 正确标记:W1/W2/W3=1(Power),W4/W5=2(Neutral)
- ✅ 所有 GUID 唯一,TypeName 完整,IsSVG=true,DrawingLayout 完整
⚡ ESim 电工制图 AI 电路生成规范 v1.0
📐 严谨数据契约 · 直连拓扑优先 · 优化器接管布局
所有评论(0)