-
知识分享
-
PLC标准化
-
工业机器人
-
工控软件
通过HMI编辑机械手轨迹和程序,西门子1500T配合HMI实现SKI运动学机构技成功能
先说结论:这不是一个运动控制库,而是一套机器人程序框架
做 S7-1500T 运动控制的工程师,大概率都自己写过"机器人程序解释器":一张点位表、一堆跳转条件、自动/手动模式切换、单步调试、报警缓冲、HMI 示教……每接一个机器人项目就重写一遍。
一句话定义:它是一套预制的 PLC 工程 + HMI 应用,让操作工和工程师不用打开 TIA Portal,直接在 HMI 上就能创建、编辑、执行机器人运动程序。底层调用的是 TO_Kinematics 工艺对象,但"程序怎么组织、怎么单步、怎么示教、怎么报警"这一整套框架,SKI 已经替你写好了。
它支持 TO_Kinematics 工艺对象下的所有运动学类型(直角坐标门架、Delta、SCARA、关节臂、Tripod、圆柱、自定义等),一个 S7-1500T CPU 上还能通过"通道(channel)"概念同时控制多个、不同构型的机器人。

什么配置才能跑
SKI 的硬件和软件门槛要先看清楚,它是定位高端的方案:
• 控制器:SIMATIC S7-1500T 系列,从 CPU 1511T 起,固件 V4.0 及以上,底层用 Motion Control V9.0;具体选哪款 CPU 取决于你挂多少插件、多少通道。
• 工程软件:TIA Portal STEP 7 V20 Update 4、WinCC Unified V20、Startdrive V20。
• HMI:WinCC Unified 精智面板或 PC Runtime,画面按 1920×1080 分辨率设计。
• 驱动:与驱动类型无关,官方验证过 SINAMICS V90、S210、S120,先用一键优化等功能把轴调到跟随误差小、无振荡。
• 授权(关键):5 轴或 6 轴运动学需要额外购买存储卡和 KinPlus 运行时扩展授权,且只能跑在 S7-1518T/TF-4 PN/DP 或 S7-1507D TF 上;4 轴及以下不需要这个授权。
官方每个版本提供六件套:库 ZIP、本手册、HMI 手册、入门示例工程 ZIP、入门手册、变更日志。建议直接在示例工程上改,而不是从空项目硬搭。
核心机制:一张"程序表"顺序解释
SKI 的心脏是功能块 LSKI_Core,一个通道调用一个实例。它负责程序解释执行、运行模式、倍率(override)、运动使能等核心逻辑,本身不带任何 HMI——不要 HMI 时,直接用它的 external 输入也能从 PLC 侧完整控制。
程序怎么写?往一张程序表(program table)里按顺序填命令,解释器按命令号升序逐条执行,直到遇到程序结束。表里还分多个"程序槽(program slot)"做视觉分区,槽之间用跳转、循环、子程序调用串联,标签命令作为跳转目标。
理解这套框架,有六个概念必须先建立:
• 初始化序列与停止序列:合法程序必须以 Start initialization 开头、以 Initialization end 结束初始化段(可以留空但命令必须存在);停止序列以 Stop program routine 开头,在停止、程序跑完或出错时都会执行,用于受控停车。编程插件的"添加启动序列"功能会自动生成这套骨架。
• 三种停止要分清:普通 Stop 会执行停止序列;Fast stop(快停)立即用内部序列停所有轴、不执行停止序列;Cycle stop(循环停)像一个条件跳转,当前生产节拍走完后跳到指定位置。
• 五种运行模式:完全运行、自动、手动、试运行(Test run,需按住使能)、不运行。HMI 上不能选"完全运行",那个模式是用来绕过整套模式机制的。
• 两种程序执行模式:自动模式按配置的转换条件连续跑;单步模式每来一个 externalNextStep 上升沿才走一条命令。注意:单步时平滑(blending)失效,路径会变,可能发生碰撞,只能在确认工作区安全时用。
• 三种命令转换条件:命令做完再继续 / 下一 PLC 周期继续 / 同周期立即继续。想让多条运动指令进队列做平滑过渡,必须把转换设成"下一周期";同周期立即继续的命令每个序列每周期最多 10 条。
• 解释指针与运动指针:运动命令会被放进独立的运动队列提前预备,所以"正在解释的命令"和"正在运动的命令"可能不是同一条,编程插件用黑色箭头(解释)和绿色箭头(运动)分别标出,调试时看这两个指针就能判断卡在哪。
此外还支持并行序列:主序列之外可以启动多个并行序列同时处理任务,每条并行序列从一个标签处启动;序列数越多每周期扫描开销越大,数量由 PLC 常量限定。程序在执行前和每次修改后都会自动做程序检查,命令非法时会报出具体槽号、命令号和原因。
多机器人:通道(Channel)概念
一台 CPU 控制多个机器人,靠通道实现:把常量 LSKI_NO_OF_CHANNELS 从 0 增加到你要的数量,为每个通道用独立实例再调一遍 Core 和各插件。HMI 侧通过 LSKI_ChannelNavigation_ActiveChannel 切换当前显示的通道,因为 HMI 变量做了复用(multiplexing),不需要为新增通道额外建 HMI 变量或画面。不同通道还可以挂不同的插件组合。
模块化:13 个插件按需挂载
SKI 采用 Core + 插件结构,只有 Core 是必装的。用不到的插件可以连同程序块、PLC 变量和数据类型一起删掉,给小 CPU 省代码工作存储器,也更好维护。插件分"HMI 类"和"工艺类",很多工艺插件的 HMI 部分是可选的。
插件 | 作用 |
Core(必装) | 程序解释执行、启停/中断/继续/循环停/快停、单步与自动、手动倍率、命令监控、错误缓冲与确认 |
HMI Core | 只要用任意一个 HMI 插件就必装,管状态栏和导航(程序控制、倍率、消息、运行模式) |
Programming | HMI 上的程序编辑器,含程序编辑、路径编辑、点表、信号编辑器 |
Teach | HMI 上对机器人做示教 |
Commissioning | 单轴/机器人手动控制与配置:使能、回零、点动、动力学与限位、区域/坐标系/工具标定 |
Diagnostics | SKI 和所有插件的诊断与确认 |
OMAC | 对接 OMAC 状态管理器(可配 SIMATIC OMAC PackML 2022) |
GCode | 在程序中执行 G 代码(基于 S7-1500T Kinematics Language 库) |
Palletizing | 在程序中调用自动生成的码垛垛型(基于 Palletize Pattern Generator 库),HMI 可看产品数据库 |
ProductRegister | 在程序中使用、操作产品数据库 |
SinaInfeed | 用 SKI 控制 SINAMICS 整流/馈电单元(Infeed),支持单/多通道 |
GenericExternalDevice | 把通用外部设备纳入 SKI 的错误管理 |
AxisCoupling | 把外部工艺耦合到轴的使能序列中 |
AxisSafeBrakeTest | 在程序中执行轴的安全制动测试指令 |
插件的资源占用差异很大,规划 CPU 选型时要心里有数(代码工作存储器):Core 约 384 kB、Core HMI 约 224 kB、GCode 约 234 kB、ProductRegister 约 238 kB、Programming 约 146 kB、Palletizing 约 96 kB;而 OMAC、轴耦合、安全制动测试、通用外部设备这些都只有 1~2 kB。码垛插件的数据工作存储器占用较大(约 863 kB)。
重点说三个和屯蒙业务贴近的插件
OMAC 插件——PackML 用户直接对接。 它以模板形式提供,把 SKI 接到 OMAC 单元模式状态管理器(比如 SIMATIC OMAC PackML 2022 库),实现 production / manual / maintenance 三种模式和各 OMAC 状态,并支持扩展自定义模式。映射关系是:PRODUCTION → 自动模式,MANUAL → 手动模式(仅 EXECUTE 状态),MAINTENANCE → 试运行模式(仅 EXECUTE 状态)。插件一旦启用,运行模式就由 OMAC 状态接管,HMI 和 external 输入都不能再改。做 PackML 整线的团队,这等于机器人子站的状态机不用自己对接了。
GCode 插件——直接跑 G 代码。 基于 S7-1500T Kinematics Language 库,可以在机器人程序里执行整条 G 代码路径,V4.1 还配套了 GCode HMI 插件和自定义网页入口,适合从 CAM 导出轨迹的涂胶、切割类工艺。
Palletizing + ProductRegister——码垛和产品数据。 Palletizing 基于 S7-1500 Palletize Pattern Generator 自动生成垛型,在程序里直接调用;ProductRegister 维护产品数据库,两者配合做码垛工作站时能省掉大量自己排层、排点的工作。
程序怎么写:HMI 示教,或者在 PLC 里用指令 FC
两种编程方式,底层等价。
• HMI 方式:用 Programming 插件,在触摸屏上编辑程序、路径、点表和信号,自动做命令校验;Teach 插件负责现场把 TCP 摇到位置采点。
• PLC 方式:在 TIA 里调用一批 LSKI_Cmd* 指令 FC 拼程序,适合上位机生成、配方下发等场景。因为绕过了 HMI 的自动检查,官方要求配合 LSKI_CleanProgram(清表)和 LSKI_VerifyProgram(校验)两个辅助功能使用,推荐顺序是:清表 → 写程序 → 校验。
运动相关的核心指令覆盖很全,几个有代表性的:
指令 | 用途 |
LSKI_CmdMoveLinearAbs / Rel | 直线运动到绝对 / 相对位置(TCP 走直线) |
LSKI_CmdMoveCircBorder / Center / Radius | 圆弧运动:过辅助点 / 圆心 / 半径三种定义方式 |
LSKI_CmdMoveDirectAbs / Rel | 同步点对点(sPTP)到绝对 / 相对位置 |
LSKI_CmdMovePath / MoveGCode | 执行整条路径 / 整条 G 代码 |
LSKI_CmdMovePickAndPlace | 抓放指令(需先用 SetPickPlaceVector 设抓放向量) |
LSKI_CmdTrackConveyor / DesyncConveyor | 启动 / 退出输送带跟踪 |
LSKI_CmdGroupStop / Interrupt / Continue / Reset | 机器人群组的停止 / 暂停 / 继续 / 复位 |
LSKI_CmdSetZoneStatus / DefineWorkspaceZone | 激活区域、定义工作/信号/禁止区域 |
LSKI_CmdChangeTool / DefineTool | 切换 / 定义工具 |
除运动指令外,还有完整的解释器类指令:无条件/条件跳转、按输入/输出/变量条件跳转、子程序循环、等待输入/输出/条件/变量/定时、置位输出、变量运算(支持常数项、一次项、二次项的组合形式,可用变量的平方参与计算)、并行序列启停等。三条命令每个程序都必须有:LSKI_CmdInitStart、LSKI_CmdInitDone、LSKI_CmdStopProgRoutine。
指令参数还支持变量替换(variableSubstitution):把目标位置、速度等参数链接到变量数组,执行时才解析,配合配方/视觉动态给值很方便(索引 0 保留为"不替换")。
上手与集成顺序
按手册第 2、3、4 章,推荐流程:
1. 在 TIA 里完成硬件组态与通信、IO 地址和硬限位/外部零脉冲标记;
2. 驱动参数化并用一键优化调好,工艺对象(TO_Kinematics 及其定位/同步轴、速度轴)在 TIA 控制面板里先跑通点动和回零,把跟随误差降到合理范围;
3. 从全局库导入 Core(PLC 变量 + 数据类型 + Core 程序块),需要 HMI 再导入 Core HMI 和各插件;
4. 所有 PLC 块要和 LSKI_Core 在同一个 OB 里调用;HMI 块(带 _HMI 后缀)可以放到更慢的循环中断 OB,建议调用周期不低于 25 ms;
5. 在启动 OB 里只调用一次注册函数:LSKI_RegisterKinematics(会自动注册其连接的轴)、LSKI_RegisterAdditionalAxis、LSKI_RegisterTrackingTO(输送带跟踪的外部编码器);
6. 配置数量结构常量,在 OB 里调用 Core 并连接 projectData / projectConfiguration / dataExchange 三个必备结构;
7. 下载、在 HMI 上示教编程、调试。
几个官方反复强调的坑:
• 工艺对象一致性:HMI 上改的配置写进了 PLC 装载存储器、不会回写离线 TIA 项目。之后如果不先"从设备上传"工艺对象就直接下载,HMI 改的配置会被覆盖丢失。
• 改数量结构常量会重新初始化 LSKI_ProjectData,带着重新初始化下载会清掉在线程序数据,改之前先把数据快照存到起始值。
• SKI 的部分数据存在非保持 DB,若下载时选了"重新初始化数据块",需要重启一次 CPU 恢复数据完整性。
• 用软件单元(Software Units)时,要先把 LSKI 程序块和数据类型发布(published)才能跨单元调用。
• 从老版本迁移:V3.1.x 可用数据管理器把 CSV 转成 V4.1 的 JSON;V2.2~V3.0 要先用 V3.1.1 中转;V2.1 及更早不支持直接迁移。
容量:一台 CPU 能放多大程序
数量结构由 LSKI_ProjectConfiguration 常量表决定,直接影响保持性存储器占用。手册给的单通道典型配置:
项目 | CPU 1511T | CPU 1515T | CPU 1518T |
保持性存储器总量 | 101 kB | 162 kB | 162 kB |
命令总数 | 500 | 1000 | 1000 |
输入 / 输出 | 各 50 | 各 50 | 各 50 |
条件 | 50 | 100 | 100 |
变量 | 50 | 100 | 100 |
标签 | 100 | 100 | 100 |
点位 | 50 | 100 | 100 |
保持存储器占用 | 约 46% | 约 33% | 约 3% |
可以看到 1518T 在这个规模下只占 3%,留足了多通道、多插件的余量;1511T 跑单通道中小规模程序够用,但想加 GCode、码垛这些大插件就要认真算账。改相关常量时注意看注释里的联动依赖,依赖库的常量必须取相同值,否则编译报错或行为异常。
写在最后
SKI 解决的不是"让轴动起来"——那是 TO_Kinematics 干的活;它解决的是"怎么把机器人程序的工程化框架一次性做对":程序表解释器、自动/手动/维护模式机、单步调试、HMI 示教、报警缓冲、多通道、PackML 对接、G 代码和码垛扩展。
对比我们前面讲过的 LAxesGrpCtrl(S7-1200 G2 + PTO 的轻量抓放库),两者完全不是一个量级:LAxesGrpCtrl 是几百个点、填路径表就能跑的小工具;SKI 是面向 1500T、多构型机器人、整线集成的重型应用框架。选型逻辑很清楚——小型直角坐标抓放、讲究成本,用 LAxesGrpCtrl;真正的多轴机器人工作站、要示教/HMI/状态机/整线对接,才需要 SKI,而且要把 CPU 档次、KinPlus 授权(5/6 轴)和存储器预算提前算进去。
资源获得信息,添加微信号:TunMeng1
屯蒙科技课程推荐
屯蒙科技专属工控/西门子技术课程上线啦!专业讲师授课,覆盖PLC、WinCC、运动控制等核心内容,助力提升技术能力,详情可咨询社群管理员或关注公众号后续推送。
开班课程介绍1PLC标准化(PackML)
PackML框架,起源于西门子官方框架案例,现在已经横推到汇川iFA,Inproshop,Codesys。
PackML框架开课!从西门子博途到汇川iFA/Inproshop/Codesys,一套框架通吃四大平台
2西门子OPENNESS
PLC标准化的高阶课程,实现PLC代码自动生成,组态自动生成
西门子TIA Portal OPENNESS从"手活"到"代码活"的全套实战课程
3西门子运动控制
聚焦西门子1500T,同步,凸轮,追剪,收放卷
4西门子Wincc Unified
西门子最新HMI系列
