• 博途PLCSIM Advanced Error Code: -30 LicenseNotFound 解决方法
    2626-09-06 23:06
    博途PLCSIM Advanced Error Code: -30 LicenseNotFound 解决方法

    使用博途PLCSIM Advanced仿真时,如果遇到启动实例报错 Error Code: -30, LicenseNotFound,通常是因为授权文件冲突或损坏导致许可证无法被正确识别。本文给出一种经过验证的解决方法。

    图片

    报错现象

    启动PLCSIM Advanced实例时,弹出以下错误:

    Could not power on instance.
    SimulationRuntimeException: Error Code: -30, LicenseNotFound

    这说明系统找不到PLCSIM Advanced的有效许可证授权。


    解决步骤

    Step 1:确认ALM服务已开启

    打开Windows服务管理器,确认 Automation License Manager Service 正在运行。如果未运行,右键启动该服务。

    Step 2:删除C盘授权缓存文件夹

    打开C盘,找到 AX NF ZZ 文件夹(即授权缓存目录),删除该文件夹内的所有内容

    路径参考
    C:\AX NF ZZ\
    删除文件夹内全部文件,清空授权缓存

    Step 3:通过SKB重新授权PLCSIM Advanced

    使用SKB工具重新进行授权操作,先只授权PLCSIM Advanced,选择网络授权 + 全部密钥。

    ⚠️ 关键注意
    PLCSIM Advanced的授权只能有一个,切勿重复授权!如果后续安装其他密钥时自动勾选了Advanced授权,务必手动取消勾选,否则会造成授权冲突再次报错。

    Step 4:测试PLCSIM Advanced是否正常

    授权完成后,打开PLCSIM Advanced,测试能否正常启动仿真实例。如果能正常运行,说明授权成功。

    Step 5:再授权博途

    确认PLCSIM Advanced正常运行后,再通过SKB授权博途(TIA Portal)。安装博途密钥时,注意检查是否会自动勾选Advanced授权,如有则手动取消,避免与已有的Advanced授权产生冲突

    图片


    操作流程总结

    步骤
    操作
    要点
    1
    确认ALM服务运行
    服务管理器中检查
    2
    删除AX NF ZZ文件夹内容
    清空授权缓存
    3
    SKB重新授权Advanced
    只授权一次,勿重复
    4
    测试Advanced是否正常
    能启动实例即成功
    5
    再授权博途
    取消自动勾选的Advanced

    常见问题

    Q:为什么会出现LicenseNotFound?

    最常见的原因是授权缓存文件损坏,或存在重复的PLCSIM Advanced授权密钥导致冲突。系统无法识别有效许可证,就会报-30错误。

    Q:删除AX NF ZZ文件夹内容安全吗?

    安全。该文件夹存放的是授权缓存文件,删除后通过SKB重新授权即可恢复。不会影响博途或其他已安装软件。

    Q:安装博途密钥时为什么要取消Advanced勾选?

    部分博途密钥包会自动包含Advanced授权。如果之前已单独授权过Advanced,再次安装会造成重复授权,导致许可证冲突,再次触发-30报错。

    作者:公众号:屯蒙科技
  • TIA Portal 怎么设置FB块的程序帮助文档
    2626-09-06 26:06
    TIA Portal 怎么设置FB块的程序帮助文档

    目的:实现用博图打开自定义的FB帮助文档


    在项目中或库中,用户可随时创建一些自己的内容。例如,块、变量或库类型。系统自带的帮助系统中介绍了 TIA Portal 的功能,但并不涵盖用户自己创建的内容。因此,用户必须创建用户自定义文档,说明项目的具体运行方式以及如何使用各个库类型。

    用户可根据用户界面语言编写用户自定义文档。TIA Portal 中的默认用户界面语言为英语、德语、法语、西班牙语、意大利语和简体中文。在创建用户自定义文档时,需要遵守以下几项约定,将用户自定义文档和可以打开的对象进行匹配。

    用户自定义文档可以是受支持的 Office 格式,或者编译为 CHM 格式的 HTML 帮助文件。

    方法一:博图文件创建文档


    步骤一:

    对于自己的FB块,选中,按下“shift+f1”键

    图片


    现象一:

    提示无帮助文件报警

    图片


    步骤二

    打开报警提示窗中的“用户文档”

    图片


    现象二

    转到帮助文件

    图片


    步骤三

    点击下面的“创建约定”


    现象三:

    跳转到创建约定界面:

    图片


    步骤四:

    根据帮助文档创建对应的文件夹

    创建地址为 :

    项目文件夹:

    UserFiles\UserDocumentation\<相应语言的文件夹>\<对象类别>

    语言为 简体中文 \zh-CN

    对象类别为 函数块 (FB)      Function Blocks

    步骤五:

    加入相对应的PDF 文档,保证PDF文档名称和FB的名称一直

    图片


    步骤六:

    重复步骤一的动作即可打开自定义帮助文档

    作者:公众号:屯蒙科技
  • 通用伺服选型计算表格【附文件下载】
    2626-09-06 14:06
    通用伺服选型计算表格【附文件下载】
    选型概述


    图片


    负载转矩计算


    图片
    图片


    惯量计算


    图片
    图片
    图片
    图片



    丝杠水平运动


    图片
    图片
    图片


    丝杠垂直运动


    图片
    图片
    图片



    皮带轮间歇运动


    图片
    图片
    图片



    皮带轮连续运动


    图片
    图片




    分度盘机构

    作者:公众号:屯蒙科技

  • 西门子11轴同步的全流程包装方案——预制袋包装机应用示例 【附文件下载】
    2626-09-06 08:06
    西门子11轴同步的全流程包装方案——预制袋包装机应用示例 【附文件下载】

    在包装行业,工程师们常常面临这样的挑战:如何实现多轴同步控制?如何确保取袋、开袋、填充、封口等工艺流程精准配合?传统方案往往依赖复杂的机械联动和调试,周期长、难度大。

    西门子推出的预制袋包装机(Pre-Made Pouch Packaging Machine)应用示例,提供了完整的解决方案。该方案基于TIA Portal V21开发,集成11个同步轴的全并行操作,让复杂的包装流程变得简单可控。

    图片

    什么是预制袋包装机

    预制袋包装机是一种使用预制包装袋进行开袋、填充和封口操作的自动化包装设备。相比传统包装方式,它具有更高的灵活性和适用范围。

    图片

    核心能力:
    • 取袋、开袋、填充、封口、成品排出的完整流程自动化
    • 兼容不同类型的预制袋子
    • 覆盖食品、制药、化工、农业材料等多个行业


    方案核心亮点

    11轴同步并行操作

    方案采用11个伺服轴的全并行运动控制,各轴协同工作,显著提升包装速度和运行效率。西门子的同步控制技术确保各工艺段精准配合,避免机械干涉。

    四大独立工艺流程

    该方案将包装流程拆分为四个独立工艺模块,便于独立调试和优化:

    • 取袋工位
      :从初始位置抓取预制袋子
    • 开袋工位
      :机械叉+真空吸杯组合方式实现稳定开袋
    • 填充工位
      :精确定量喂料,确保填充精度
    • 封口排出工位
      :热封与成品输出,完成包装

    广泛行业适用

    凭借灵活的袋型兼容性和精准的控制系统,该方案可应用于食品包装、制药行业、化工原料包装以及农业材料等领域。


    技术架构

    该方案基于西门子数字化平台开发,采用先进的产品组合实现高性能包装控制。

    组件
    型号/版本
    说明
    开发平台
    TIA Portal V21
    统一工程框架
    HMI
    WinCC Unified V21
    可视化操作界面
    PLC控制器
    SIMATIC S7-1500T
    运动控制核心
    驱动系统
    SINAMICS S120
    伺服驱动

    该应用示例属于西门子Machine Application集合的一部分,这是西门子为设备制造商提供的可复用应用软件库。

    图片

    四大工艺流程详解

    1. 取袋工位

    从设备初始位置抓取预制包装袋。该工位采用专用取袋机构,配合真空吸盘实现稳定抓取,为后续工艺提供可靠的上料保障。

    2. 开袋工位

    采用机械叉+真空吸杯组合的开袋方式。机械叉负责撑开袋底,真空吸杯辅助固定袋口,确保袋子完全打开以便填充。组合方式兼顾了开袋速度和稳定性。

    图片

    3. 填充工位

    精确定量喂料系统,根据预设参数控制物料填充量。该工位支持多种物料类型的填充配置,可满足不同产品的包装需求。

    4. 封口排出工位

    完成热封操作后,成品袋被推出工位,进入下一工序。该工位采用可控温度的热封技术,确保封口质量稳定可靠。

    图片

    作者:公众号:屯蒙科技
  • 西门子LAxesGrpCtrl抓放库上手
    2626-15-09 19:09
    西门子LAxesGrpCtrl抓放库上手

    sPTP同步点对点+平滑半径,PTO脉冲接V90/S200的直角坐标抓放方案
    先说重点:这个库在 S7-1200 G2 上是个"补位"方案


    这个库干的事一句话能说清:让直角坐标(笛卡尔)机械手的多个伺服轴,按预先定义的空间路径做同步点对点运动(synchronous Point-To-Point,sPTP),典型用途就是 Pick & Place 抓放。


    但要特别注意 V2.0 相对老 S7-1200 时代的定位变化:


    • S7-1200 G2 已经原生支持运动学,通过工艺对象 TO_Kinematics(底层用 TO_PositioningAxis / TO_SynchronousAxis)就能协调多轴。走 PROFINET 或模拟量接驱动,直接用原生 TO_Kinematics 即可;

    • 唯独一种情况原生方案用不了:通过板载数字量输出做脉冲给定(PTO)接驱动。因为 G2 的 TO_PositioningAxis / TO_SynchronousAxis 不能配合信号板、信号模块的脉冲输出,只有 PTO 专用的 TO_PositioningAxis_PTO 可以;

    • LAxesGrpCtrl V2.0 被移植到 G2,就是为了补上这一个缺口——PTO 脉冲接 V90 PTI / S200 PTI 时,照样能做多轴协调抓放


    所以选型逻辑很直白:用总线驱动,上原生 TO_Kinematics;用板载 PTO 脉冲,才需要这个库。


    sPTP 到底是怎么"同步"的


    库内部并不做插补器,每个轴底层调用的还是大家熟悉的运动控制指令 MC_MoveAbsolute。协调靠的是动力学再分配:


    1. 先算出路径段里动作最慢的那根轴走完全程需要的时间;

    2. 再把其余轴的速度、加速度等动力学值按比例压低,让所有轴同时启动、尽量同时到位


    这样 TCP(工具中心点)从空间点 P1 到 P2 的过程,就是多轴"凑齐时间"的协调运动。


    库提供两种同步模式,由 syncDynPhases 参数切换:


    syncDynPhases = False(默认):各轴的加速、匀速、制动阶段不强制对齐,每轴相位可以不同。协调到位即可,执行速度更快;

    syncDynPhases = True:各轴加减速、匀速阶段完全同步、耗时相同。两点之间的轨迹更接近一条直线,重复一致性更好,但执行时间略长。


    抓放节拍优先选前者,对轨迹一致性有要求选后者。


    中间点不用停:平滑半径(Blending Radius)


    Pick & Place 的诉求是尽快从取料点 P1 到放料点 P4,中间的 P2、P3 往往只是避让障碍的"过路点",逐个精确停到位既没必要又拖节拍。


    库允许给中间点定义一个平滑半径:TCP 一旦进入该点周围的半径球,就提前向下一个点过渡,不再精确经过该点。半径越大、过渡越圆滑,但实际轨迹也越"不精确"——它取决于当时编程的动力学值,不同速度下轨迹可能有差异。


    两个使用细节:


    • 平滑半径按"该段各轴最短行程的百分比"设定,用户常量里有百分比上限(默认 50%),超了会被自动截断,且没有任何接口反馈,需要自己把半径留够;

    • 协调计算在 OB1 主循环里完成,扫描周期负载会影响进入平滑半径的判定时机,路径速度越快、CPU 负载越高,TCP 切入半径的深度越不一致。半径要留足余量。


    另外必须认清边界:sPTP 不是轨迹精确的路径运动。它追求的是快和流畅,不能用于涂胶、焊接这类要求沿指定曲线精确行走的工序。


    库里有什么:2 个 FB + 3 个 DB


    Master copies 里分三个文件夹:LAxesGrpCtrl_Types(PLC 数据类型)、LAxesGrpCtrl_Tags(用户常量表)、LAxesGrpCtrl_Blocks(程序块)。核心对象如下:


    对象
    名称
    作用
    FB
    LAxesGrpCtrl_Main
    主控块,在 OB1 调用一次即可。execute 上升沿启动后,自动顺序走完 PathDefinition 里的全部插补点;支持 stop、interrupt(暂停后可再触发 execute 恢复)、reset,以及路径间平滑 pathTransition、全局动力学系数 globalDynamicsFactor
    FB
    LAxesGrpCtrl_ExecutePosCmd
    单点定位块。支持绝对/相对定位,可用 usedAxes 只让某一根轴动作——回零前把各轴依次挪到安全位就是靠它。正常跑路径不用直接调它
    DB
    KinematicsAxes
    轴数组。在 OB100 StartUp 里把工艺对象依次填入 kinematicsAxes[0]=X、[1]=Y、[2]=Z
    DB
    PathDefinition
    路径数组。每条路径含路径名 pathName、各轴动力学 axesDynamics、插补点 points(点类型、坐标、该点动力学系数、平滑半径)
    DB
    PointTable
    预置点表。可由 HMI 示教自动写入;路径中点类型填负值(如 -5)即引用点表索引 5,便于多条路径集中共用、统一修改点位


    插补点类型 pointType 有四种取值:0 = 该点无效跳过;1 = 绝对目标位置;2 = 相对当前 TCP 的增量;负值 = 引用点表。


    6 个用户常量:先设对,再编译


    库容量全部由用户常量决定,改完必须完整编译软件才生效。为省 CPU 存储,按需设置、别贪大:


    LAXESGRPCTRL_LAST_NUMBER_OF_AXES:轴数减 1,三轴系统填 2;

    LAXESGRPCTRL_LAST_NUMBER_OF_PATH_DEFINITION_POINTS:单条路径插补点的最大索引,5 表示可有 6 个点,至少填 1(起点+终点);

    LAXESGRPCTRL_LAST_NUMBER_OF_PATH_DEFINITIONS:可存路径条数减 1,2 表示 3 条路径;

    LAXESGRPCTRL_SIZE_OF_POINT_TABLE:点表点数;

    LAXESGRPCTRL_MAX_BLENDING_VALUE:平滑半径占段长百分比上限,默认 50;

    LAXESGRPCTRL_LENGTH_OF_NAME:路径名字符长度,默认 10。


    上手流程(TIA Portal V21)


    1. 下载库 ZIP 解压,在"全局库"中打开;

    2. 依次把 Types、Tags、Blocks 三个文件夹拖入用户项目对应目录;

    3. 在 PLC 变量的"用户常量"页设好上述 6 个常量,完整编译软件,生成对应 DB;

    4. 在 Motion Control → PTO 下为每根轴新建工艺对象 TO_PositioningAxis_PTO:配脉冲发生器与脉冲形式(V90 支持 A/B 相脉冲、脉冲+方向;S200 还支持正转脉冲+反转脉冲)、机械参数(丝杠导程)、软硬限位、最大动力学、急停减速度、主动回零;

    5. 在 OB100 里把轴对象写入 KinematicsAxes 数组;

    6. 在 OB1 调用 LAxesGrpCtrl_Main 并关联各 DB;

    7. 在 PathDefinition 里填路径:路径名、各轴速度/加减速度、各插补点坐标与平滑半径;

    8. 投运顺序:MC_POWER 使能 → MC_RESET 确认故障 → MC_HOME 回零(建议逐轴依次回零防碰撞;用绝对值编码器只需标定一次)→ execute 上升沿启动路径。


    启动前提醒一句:触发后 TCP 会先直接走向路径第一个有效点,务必先确认起点附近无碰撞,必要时先用单动方式把 TCP 放到安全位。


    动力学设置的三个坑


    Jerk(加加速度)不参与库内部路径计算。工艺对象里的 jerk 限制应禁用、设为不限或给一个很大的值,否则结果不可预期;

    • 路径里动力学值填负数,表示沿用工艺对象里设定的最大值;填得超过 TO 上限会被自动限制;

    • PTO 有频率下限:给定速度对应的脉冲频率若低于 TO 里设的启动/停止频率,轴根本不动,协调路径就会被带偏。G2 板载输出最高 100 kHz(Aa.0~Aa.3,其余点 20 kHz),信号板 100 kHz,5V 信号板可达 200 kHz。


    另外,库里部分内部 FC 要求非优化块访问,如果被改成优化访问会报区域长度错误(Area length error),保持默认即可。


    故障排查:常见状态字与错误码


    块的 status 输出遵循 16#0000~7FFF 为状态、16#8000 以上为错误的约定,现场常用的几个:


    代码
    含义
    处理
    16#7000
    块当前未执行
    正常待机状态
    16#7001 / 16#7002
    首次初始化 / 初始化后正常运行
    无需处理
    16#7004
    路径运动被 interrupt 输入暂停
    execute 再来一个上升沿即可恢复
    16#7010
    轴上的运动命令被其他运动控制功能取消
    检查用户程序里是否还有别的指令在操作同一 TO
    16#8200
    至少一根轴未使能
    确认轴上无挂起故障,重新 Enable
    16#8203
    指定索引超出点表范围
    检查 pointType 负索引与点表容量
    16#8204
    至少一根轴未回零
    执行回零;检查驱动与编码器通信
    16#8900
    轴动力学无法计算
    检查路径点坐标、平滑半径和动力学值是否合理
    16#8902
    动力学值设置不当
    核对速度、加减速度设定


    四类运动学方案怎么选


    西门子官方在该条目页给出了 S7-1200/1500 家族四个抓放/运动学方案的对照,选型时可以直接对着看:


    对比项
    LAxesGrpCtrl V1.0.1
    LAxesGrpCtrl V2.0.0
    Kinematics Operate
    Kinematics Integrator
    适用控制器
    S7-1200
    S7-1200 G2
    S7-1500 / S7-1500T
    S7-1500T
    适用驱动
    V90 PTI/PN、S200 全系、S210(PROFIdrive 有限制)
    仅 PTI 脉冲驱动(V90 PTI、S200 PTI)
    V90 PN、S210、S120
    V90 PN、S210、S120
    支持运动学
    直角坐标门架
    直角坐标门架
    直角坐标门架
    门架、Delta、SCARA、关节臂、Tripod、圆柱、自定义等
    sPTP 同步点对点
    支持
    支持
    支持
    支持
    HMI 即插即用
    不支持
    不支持
    支持
    支持
    IRT 等时实时通信
    S7-1200 不支持
    用 PTO/PTI,不涉及
    支持
    支持
    直线 / 圆弧运动
    不支持
    不支持
    不支持
    支持
    输送带跟踪
    不支持
    不支持
    不支持
    支持


    一句话总结:小型 G2 + 脉冲驱动做直角坐标抓放,用本篇的 LAxesGrpCtrl;1500 平台要 HMI 模板和更完整功能看 Kinematics Operate;要多构型机器人、直线圆弧、输送带跟踪,得上 S7-1500T + Kinematics Integrator。



    写在最后


    S7-1200 G2 这一代把运动学能力收进了原生 TO_Kinematics,LAxesGrpCtrl 的舞台确实变小了——但只要现场还有"经济型 G2 + 板载 PTO + V90/S200 PTI 脉冲驱动"这种讲究成本的抓放设备,它就是官方给的现成答案:不用自己写多轴时间分配,不用自己处理平滑过渡,填路径表、调一个 FB 就能跑。


    用的时候记住三条边界:只认直角坐标、只做抓放不做精确轨迹、PTO 频率和扫描周期要留余量。剩下的,照着程序示例改就行。

    作者:屯蒙科技公众号