IEC 61131-3 单元逻辑—— 在硬件之前验证
SFC 或 ST,运动使用 PLCopen 功能块,单元状态遵循 PackML。程序在浏览器中编写,启动前通过编译器和运行验证。
单元程序就是普通的控制器程序
产线单元——机器人、变位机、导轨、夹爪、输送带——按自己的程序工作。在 SyncTwin 中这是 IEC 61131-3 程序:与编写工业控制器逻辑相同的标准。
逻辑用 SFC 的步与转换或 ST 文本描述。轴运动用标准 PLCopen 功能块设定。循环结束和单元故障以 PackML 状态命名。
由此得出主要结论:熟悉该标准的调试工程师可以阅读和修改程序。无需学习平台专用语言。
程序在设备到货前就在浏览器中编写和检查:编译器、带输入输出表的实验室、在虚拟轴上运行。下发到驱动器时原样不变,无需改写。
一种语言——IEC 61131-3
- 逻辑——SFC 或 ST熟悉该标准的调试工程师即可读懂步骤和转换。
- 运动——PLCopen 功能块轴移动、复位和错误读取——使用标准功能块。
- 现成程序以文件导入导入 .st 和 PLCopen XML 程序;语言是程序的属性。
- 单元状态——PackMLSFC 最后一步为 Complete;轴故障为 Aborted;所有窗口共用一个“停止”。
语言是程序的属性
在创建或导入时设定。实验室界面、选项卡和筛选据此自动生成。
新程序从编译器已接受的 SFC 模板开始。
导入代替手输
“导入”按钮接收 .st 和 PLCopen XML 文件。若文件中有多个程序组织单元,平台会询问取哪一个。
程序调节旋钮
带范围和单位的输入变量成为单元的调节旋钮。“可视化”视图对任何语言都显示它们;数值保存在单元中。
单元循环由什么组成
| 组成部分 | 是什么 | 说明 |
|---|---|---|
| SFC 步 | 循环状态:该步激活时单元在做什么 | SFC 的最终步即单元的 PackML Complete 状态 |
| 转换 | 由当前步切换到下一步的条件 | 通常是运动功能块的 Done 输出、输入端口或定时器 |
| 运动功能块 | PLCopen:MC_MoveAbsolute 等、MC_Reset、MC_ReadAxisError、MC_SetPosition | 功能块有 Active 状态、加速和减速;MC_SetPosition 不运动地偏移坐标 |
| 轴使能 | MC_Power——与单元电源“与”运算 | MC_Power(FALSE) 使轴失能;没有它轴不会运动 |
| 调节旋钮 | 带范围和单位的输入变量 | 速度和延时放进调节旋钮,而不是写在文本里 |
| 端口 | 供项目使用的单元输入或输出;物料走 in/out 端口 | 输出有信号类型和周期,输入有超时行为 |
| 位置 | 形式化:Pick、Place | 实际点位由项目在单元处指定;程序本身不改 |
与相邻单元的连接不在程序中
单元不知道相邻单元。端口由程序声明,项目在“图”选项卡上用连线连接它们。
运动技巧——以功能块形式
搬运、翻转和放置以功能块形式提供。机床的切削程序由单元通过 G 代码启动块调用。
等待——要有明确的结果
等待传感器的步要设定等待上限和超时结果:跳过、停住或报警。由程序作者决定。
带角色的通道,而不是地址
轴
角色决定驱动器模式,机构决定操作员看到什么。
输入——传感器
角色说明传感器知道什么:“零件到位”“夹取已确认”。
输出
角色说明端口做什么:夹持、止挡、标记、分流。
- 只为单元提供它自己的动作没有在位传感器时,“等待零件”根本不会出现在列表中。
- 命令已发出不等于“已夹住”夹取由输入信号确认,而不是凭感觉延时。
- 与硬件绑定——在调试时完成未绑定时启动会被拒绝并给出通道名称;绝不会用“大概是第一个驱动器”来替代。
通道、角色和单元样例目录详见页面 “产线自动化”.
从空程序到驱动器的五步
- 创建“新建程序”——选择单元块。单元块为程序提供轴、角色、行规和输入输出名称。或“导入” .st 和 PLCopen XML。
- 编译器文本按 IEC 61131-3 整体检查,然后检查与单元的绑定。错误原样显示,并标出在文本中的位置。
- 实验室输入输出表、输入强制、SFC 播放器和 PackML 状态——都在浏览器中。
- 虚拟轴单元在试验台上运行,驱动器静止:可看到步、时间和转换。
- 驱动器跟随误差和负载只在分配行规后的真实轴上检查。
强制是调试工具:急停时解除,不会进入生产。输入中填入的值是作者假设的;在试验台上由真实世界给出。
程序与单元在同一屏幕
按语言显示
实验室以程序自身的语言打开程序:SFC 的步与转换或 ST 文本。浏览器内播放器适用于带步模型的 SFC。
底部“单元”面板
输入表 %IX 和输出表 %QX、PackML 状态。用开关强制输入;端口以小部件形式显示在程序调节旋钮旁。
检查无问题
步与转换计数和编译器结论显示在代码下方。演示程序为只读——在其副本中工作。
单元使用 PackML 语言
| 状态 | 何时 |
|---|---|
| Complete | 循环到达 SFC 最终步 |
| Aborted | 轴故障——跟随误差超限 |
| Stop + Abort | 在任何窗口按“停止”:孪生、调试工具、设备旁面板——同一条命令 |
| Aborted | 输出已接通但确认输入未到——输出确认看门狗 准备中 |
默认故障阈值
| 限值 | 默认值 | 说明 |
|---|---|---|
| 转矩阈值 | 额定值的 600 ‰ | 只有超限持续时间超过延时才算故障:加速时转矩正常会超过限值 |
| 位置偏差阈值 | 0.05 转 | 虚拟轴上不检查:那里的偏差是模型的工作,而不是驱动器的事实 |
| 故障延时 | 0.2 秒 | 超限需要持续多久 |
这些是初始值
针对具体硬件明确设定阈值。由您单元的铭牌数据细化。
虚拟轴上的转矩是模型
它由“指令值”与“实际值”之差推导。适用于调试寻找挡块和拧紧的逻辑,但不是测量值。
铭牌上没有额定转矩——显示破折号
千分比刻度以电机额定转矩为基准。未设定额定值时转矩条件永远不会触发;在其上构建转换之前请先填写铭牌。
从零到运动:焊接变位机
两个旋转驱动:倾斜把工作台转到焊缝下方,旋转让花盘在焊枪下转动。这是单元目录中的样例;其程序可整体拿来并按您的硬件改写。
| SFC 步 | 动作 | 转换 |
|---|---|---|
| 初始 | 两轴回到 0°——各自用 MC_MoveAbsolute | 两个功能块都 Done |
| 倾斜 | “倾斜”到 45° | Done |
| 旋转一圈 | “旋转” 360° | Done |
| 回倾 | 两轴同时回到 0° | 两个功能块都 Done |
| 暂停 | 定时器延时 | 定时器 → “初始” |
- 单元块“新建块” → 变位机样例。两根以机构关节命名的轴随几何模型一起带入。
- 程序SFC 模板,五步循环。速度放入输入变量:它们会成为单元的调节旋钮。
- 检查编译器接受文本和绑定。播放器逐步播放,“单元”面板显示 PackML 状态。
- 虚拟伺服倾斜到 45°,旋转完成一圈;循环结束时单元处于 Complete 状态。
- 驱动器为各轴分配行规,填写驱动器铭牌;“循环”模式用于生产运行。
轴限位取自机构:倾斜 ±85°,旋转 ±360°。制造商未公布范围,机构文件中将其标为假设。
运行结果由平台给出
单元卡片保存最近的运行:哪个程序、何时、如何结束。从启动起,平台自行询问试验台并按其帧记录结果——无需一直打开卡片。
- 运行到结束程序完成了循环。
- 已停止运行在结束前被中断。
- 错误运行失败;原因见记录。
- 结果未知无人观察到运行结束:试验台未确认运动、连接中断或服务器在运行中途重启。
拒绝要说明原因,而不是沉默
| 试验台拒绝 | 含义 | 怎么做 |
|---|---|---|
| 伺服未映射到总线上的驱动器 | 程序轴未与单元驱动器关联 | 在调试工具中分配轴行规 |
| 输入或输出未映射 | 程序使用了硬件不认识的通道 | 在调试工具中映射输入输出通道 |
| 找不到单元 | 运行所指向的单元已被删除或指定错误 | 重新选择单元 |
| 试验台无原因拒绝 | 单元未发送原因;平台不会编造原因 | 查看边缘盒上的日志以及与单元的连接 |
未映射的驱动器会阻止启动:不会为了“能动起来”而用虚拟轴替代真实轴。硬件未连接却显示绿色运行是代价最高的错误,平台不允许这种情况。
哪些可用、哪些在准备中
- 运行ST 和 SFC 程序、导入 .st 和 PLCopen XML、编译器、带强制功能的实验室、在虚拟轴和试验台驱动器上启动单元、运行日志。
- 准备中输出确认看门狗;以表格形式给点的搬运功能块——已在代码中完成,将在最近的版本中发布。
- 实施内容在控制器旁的仿真器中运行程序,传感器与真实传感器走同一输入—— 虚拟调试.