EN

工业机器人

通过HMI编辑机械手轨迹和程序,西门子1500T配合HMI实现SKI运动学机构技成功能

公众号:屯蒙科技
1790354325
hits: 3

先说结论:这不是一个运动控制库,而是一套机器人程序框架

 

做 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,同步,凸轮,追剪,收放卷

跟着原西门子运动控制工程师,系统学习S7-1500T

4西门子Wincc Unified

西门子最新HMI系列

西门子WinCC Unified精讲课程 系统实战 · 完整覆盖 · 即学即用