SINUMERIK 828D / 840D PLC 基础程序块在哪?FB1 / FB2 / OB100 怎么导入

先给结论:基础程序块不用来「下载」,它就在随机交付的 SINUMERIK STEP 7 Toolbox 里,以 master copy 库与外部 STL 源文件的形式提供,版本必须与本机 NCU 固件对齐。真正要做的是「按版本选库 → 复制/生成块 → 只改允许参数化的地方」,而不是去网上找整包。

🚨 口径与合规声明:本文块名、OB 调用关系、master copy 库与 ALMSG_DB [DB2] 变体取自 Siemens 官方《SINUMERIK STEP 7 Toolbox Configuration Manual》(V15.1 / V17)、《SINUMERIK 840D sl CNC Commissioning Manual》与《Basic Functions / P3: Basic PLC program》;德语助记符切换流程与 Mini HHU 验证项来自公开的现场调试资料,已逐项标注来源层级。Toolbox 是授权商业软件,本文只讲官方获取渠道与结构,不提供下载链接、网盘或破解;具体块号与路径随机型、Toolbox 版本变化,以随机资料与本机项目为准。

30 秒速查

你要做的事正确的第一落点本文对应小节
想知道基础程序块是什么PLC 程序 = 基础程序 + 用户程序
想找块文件在哪Toolbox 的 master copy 库,不是网盘
导入后编译报错多半是德语助记符没切
想加第二个 MCP / 改手轮只改 OB100 里 FB1 的形参
FB2 是不是轴控制块不是,FB2 = GET(读 NC 变量)
改完怎么确认没改坏四项启动与信号验证
PLC 下载后停在 STOP块版本与 NCK 软件版本不匹配

表 0 七类现场问题与第一个落点

一、基础程序块是什么:先纠正三个常见误读

基础程序四层:PLC basic program 与 user program 的分工、OB/FC/FB/DB 各管什么、以及三种常见误读

官方把 PLC 程序拆成两层:PLC basic program(基础程序)负责 PLC 用户程序与 NCK、HMI、MCP(机床控制面板)之间的信号与数据交换;PLC user program(用户程序)才是机床厂按工艺逻辑扩写的部分。基础程序是 SINUMERIK STEP 7 Toolbox 的组成部分,按 NCU 固件版本选对应版本(例如官方列出过 V4.5.x.x / V4.7.x.x / V4.8.x.x 三档),不是随便拿一个项目就能通用。

层次官方定义 / 作用谁能改
OB(组织块)OB1 循环、OB100 冷启动、OB40 硬件中断、OB82 诊断中断、OB86 机架/站故障用户可改块,OB100 里放参数化
FB / FC(功能块 / 功能)基础程序功能实现,如 FB1 RUN_UP、FC2 GP_HP、FC3 GP_PRAL、FC5 GP_DIAG多为 know-how-protected,不要改内部
DB(数据块)接口与参数区,如 gp_par [DB7]、ALMSG_DB [DB2]、轴 DB31…按官方变体选用,不手改结构
用户程序机床厂按工艺扩写的逻辑,官方在 OB100 末尾留了插入位这才是该写自己代码的地方

表 1 四层结构与「谁能改」

🚨 三个高频误读,先纠正:

  1. FB2 不是「轴 / spindle 块」。官方块表里 FB2 = GET(读 NC 变量)、FB3 = PUT(写 NC 变量)、FB4 = PI_SERV、FB5 = GETGUD。轴与主轴的接口信号在轴 DB 与 PLC/NCK 接口里(如手轮激活 DB31…DBX4.0-2),不在 FB2。
  2. FC76 不是标准基础程序的常驻块。它出现在 minibhg.zip(Mini HHU 选件包)生成的源文件语境里;旧 840D 项目里常见的 MCP 轴选映射块是 FC19。两者都是现场项目口径,不要当成通用块表去新项目里找。
  3. 8x0D / 020607 / BSP_PROG 是老 Toolbox CD 时代的路径写法(此处用 / 代指原目录分隔符)。现行 840D sl Toolbox 改用 master copy 库,828D 用集成在 Toolbox 里的 PLC Programming Tool;目录随版本变化,不要照抄任何写死的路径。

官方 OB 调用关系是稳定的,可以据此判断「哪个块在什么时候跑」:

组织块触发时机调用的基础程序块
OB1循环执行GP_HP [FC2]
OB40硬件中断GP_PRAL [FC3]
OB82诊断中断GP_DIAG [FC5]
OB86机架 / 站故障GP_DIAG [FC5]
OB100STOP→RUN 只执行一次RUN_UP [FB1] + gp_par [DB7]

表 2 官方 OB 与基础程序块调用关系(Toolbox Configuration Manual)

注:表 2 的调用表是理解「OB100 为什么只跑一次」的关键——FB1 的参数化写在 OB100,PLC 每次启动读一次,改完必须重启 PLC 才生效。这与828D 第三个手轮调试里 FB1 只在启动时跑一次是同一条机制。

二、官方路径:Toolbox 的 master copy 库与老 CD

三个官方来源:STEP 7 Toolbox master copy 库、外部 STL 源文件、以及老 810D/840D Toolbox CD 的库
来源形态适用年代 / 工具里面是什么
master copy 库现行 840D sl STEP 7 Toolbox(V14 SP1 起)840D sl PLC Basic Program、…(upgrade)、ALMSG_DB_ExtendAIMsg 三个文件夹
外部 STL 源文件同上,External sources 文件夹gpob840d.awl、bhg_db_awl、diagnose.awl、mdeclist.awl
老 CD 的 Library810D / 840D,STEP 7 V5.xSIMATIC Manager → File > Open > Library,复制块容器 + source 容器 + 符号表

表 3 三种官方交付形态与适用工具

三个 master copy 的分工不能混:

master copy 文件夹用途关键限制
840D sl PLC Basic Program建全新项目含最大配置(31 轴 / 10 通道)全部块
840D sl PLC Basic Program (upgrade)NCU 固件升级、换件、迁移后升级块不含用户可改块:无 OB、无 FC12、无 FB29、无 DB4 / DB5
ALMSG_DB_ExtendAIMsg用 AL_MSG [FC10] 扩展 PLC 报警时提供 ExtendAlMsg=True 的 DB2 变体

表 4 三个 master copy 与选用条件

🚨 一个能直接把 PLC 拖进 STOP 的坑:ALMSG_DB [DB2] 有 ExtendAlMsg=False 与 True 两个变体,选用的 DB2 变体必须与 OB100 里 FB1 启动参数 ExtendAlMsg 一致。官方在 V15.1 / V17 手册里重复强调这一点。用错变体不会报友好的提示,而是表现为 PLC 报警扩展不工作甚至启动异常。

外部 STL 源文件用来重新生成块,别把它们当文档读:

源文件生成的块
gpob840d.awlOB1、OB100、OB40、OB82、OB86
bhg_db_awlstrdat [DB<xy>](手持单元数据)
diagnose.awlFB29、DB80、DB81、FC99
mdeclist.awlDB75(M 译码表)

表 5 外部 STL 源与生成块对应(官方 Toolbox 手册)

怎么合法拿到 Toolbox:随机交付资料与机床厂渠道(提供机床序列号,按合同索取对应 NCU 固件版本的 Toolbox),或 Siemens 授权支持渠道。改机之前照例先导出参数与程序留证;官方手册的版本对齐方法另见840D sl 诊断手册官方入口。

三、导入三步:从 master copy 到可编译项目

步骤动作检查点
1. 对齐版本在 HMI / Startup 读出本机 NCU 固件版本,选 ≥ 该版本的 ToolboxToolbox SW 标签低于 NCK 软件版本 → PLC 停在 STOP
2. 复制 / 生成块从 master copy 库复制所需块到项目 Program blocks;或把 STL 源放进 External sources 再生成块只用得到的轴/通道块,多余的删掉以缩短加载时间
3. 编译下载编译全部源,冷启动(cold restart)下载到 PLC观察 OB100 无报错、PLC 平稳进入 RUN

表 6 导入三步与检查点

老 810D/840D 项目的等价做法(STEP 7 V5.x):SIMATIC Manager → File > Open > Library,从块容器复制 FCs / FBs / DBs / OBs / SFC / SFB / UDT,从 source 容器复制 GPOB840D(可能还有 MDECLIST、HHU_DB),再复制符号表。官方 Function Manual P3 说明基础程序与当前 STEP 7 版本无依赖,但跨 NCU 固件版本必须重新对齐 Toolbox,否则最常见的症状就是下载后 PLC 停在 STOP。

现场判据:OB100 / FB1 / DB20 的版本与运行中的 NCK 软件不匹配时,先别怀疑硬件——从 SW 标签 ≥ 本机 NCK 软件版本的 Toolbox 重新加载基础程序块,再冷启动。这也解释了为什么刀库初始化改完要重启才生效一类问题常被误判成配置错误。

四、改基础程序块的边界:哪些能参数化,哪些绝对别动

能改与禁改:OB100 里 FB1 的参数化、用户程序区、以及 know-how-protected 与安全相关块的分界
类别具体做法风险
✅ 允许:FB1 形参在 OB100 的 CALL "RUN_UP", "gp_par" 里填 MCPNum、MCP1In/Out/StatSend/StatRec、MCP1BusAdr、MCPBusType 等填错地址 → MCP 不在线,但可回退
✅ 允许:用户程序官方在 OB100 末尾留有 //Insert User program from here 插入位;用户逻辑写在自己的 FC/FB低,前提是留了备份
⚠️ 谨慎:外部源再生成需要改 OB 结构时改 STL 源后重新编译生成块会覆盖已有用户修改
⛔ 禁止:know-how-protected 块upgrade 主副本里的保护块不提供源码改不了也不该改
⛔ 禁止:Safety 相关带 SINUMERIK Safety Integrated 的机床上,FB1 (RUN_UP) 与 OB82 属安全链任何改动需正式变更请求 + 重新验收测试

表 7 能改 / 谨慎 / 禁改三级边界

官方调试手册给出的 OB100 参数化示例(结构示例,数值不得照抄到本机):MCPNum := 1 表示一个 MCP;MCP1BusAdr := 6 是 PROFIBUS DP 地址示例,Ethernet 示例里是 192;MCPBusType := B#16#03 对应 PROFIBUS DP、B#16#05 对应 Industrial Ethernet。现场资料还给过 B#16#55(PROFINET / Ethernet MCP 上挂 Mini HHU)与 B#16#FE(PROFIBUS)等取值——这些是第三方口径,必须按本机 Toolbox 符号表与硬件配置核对,不要凭网页照填。

同理,MCP1Timeout := S5T#700MS、MCP1Cycl := S5T#200MS、NCCyclTimeout := S5T#200MS、NCRunupTimeout := S5T#50S 这些出现在官方/论坛示例里的超时值也是示例值,不是通用推荐值。

五、德语助记符坑:U/O/UN/S/R 编译报错怎么解

德语助记符五个:U / O / UN / S / R 与英语 A / O / AN / S / R 对照,以及切换 Mnemonics 的四步

这是真实高发翻车点:minibhg.zip(Mini HHU 标准包)与许多较旧 BSP 块是用德语助记符写的,配置成英语助记符的 STEP 7 会拒绝编译,在 FC76 / FB1 / OB100 报语法错。

德语英语含义
UAAND
OOOR
UNANAND NOT
SSSET
RRRESET

表 8 德语 / 英语 STL 助记符对照

解法(现场调试资料口径,非官方手册步骤,操作前先备份项目):

  1. SIMATIC Manager 打开含 Mini HHU 块的项目 → Options > Customize → Language 选项卡。
  2. 在 Mnemonics 下把 English 改成 German,OK,按提示重启 SIMATIC Manager。
  3. 从 minibhg.zip 归档重新编译全部源文件,确认无语法错后下载并重启 PLC。
  4. 若项目默认是英语,切回 English;已编译的块不受影响。

🚨 不要长期留在德语模式:一个项目里混用助记符语言,后续插入块时会出现随机的符号不匹配。导入完成后就切回项目标准,让之后新增的代码统一遵循一套语言。

顺带澄清:这个坑与840D sl 报警号段无关,它是编译期问题,不会以报警号形式出现在 HMI 上;表现为 STEP 7 编译报错或 PLC 起不来。

六、改完必须做的四项验证

验证项怎么看不通过说明什么
① PLC 启动重启 NCU 电源,观察 PLC 平稳完成启动、OB100 无报错块版本 / DB2 变体 / 参数化有误
② MCP 在线HMI Diagnostics > Bus 看第一个 MCP 在线MCP1BusAdr / MCPBusType / 报文地址填错
③ 手轮计数JOG → Handwheel,转手轮看计数器变化NCK 侧 MD11350/11351/11352 或映射未生效
④ 轴选择映射PLC 在线视图看轴选择生效(如 DB31.DBX4.0)轴选 FC 或接口位不对

表 9 四项启动与信号验证

官方 Function Manual 的手轮接口信号可作交叉核对:DB31…DBX4.0-2 是机床轴激活手轮,DB21…DBX12.0-2 / 16.0-2 / 20.0-2 是几何轴 1/2/3;DB10.DBX100.0-4 / 101.0-4 / 102.0-4 分别是手轮 1/2/3 的轴号,DBX100.6 / 101.6 / 102.6 是「手轮已选中」。HMI 只支持分配最多 3 个手轮,超过 3 个必须走 PLC 接口信号。现场资料还提到「FB1 RUN_UP 应报告 MCP1Timeout = FALSE」作为启动成功的观察点——这是第三方表述,以本机诊断画面实际信号名为准。

七、与站内既有内容的衔接

你要查的站内已有那一层与本篇的分工
第三手轮怎么接、FB1 在哪调那是具体配置,本篇讲块从哪来
用户报警位怎么算对应本篇 DB2 变体的现场用法
报警号属于哪一族编译期问题与运行期报警分开看
刀库 / 手册版本对齐同属「先对齐版本再动手」
改机前留证动 OB100 之前的必备动作

表 10 站内五类内容与本篇分工

一句话收口:基础程序块是官方给的骨架,能改的只有「参数化 + 用户程序」这两层;骨架本身、DB2 变体、NCU 固件版本三者必须对齐,改完再用四项验证闭环。

常见问题

SINUMERIK 828D PLC 基础程序块在哪里?

不在网上,在随机交付的 SINUMERIK STEP 7 Toolbox 里。现行 840D sl Toolbox 通过 master copy 库(840D sl PLC Basic Program 等)与 External sources 下的 STL 源文件(gpob840d.awl 等)提供;828D 用集成在 Toolbox 里的 PLC Programming Tool;老 810D/840D 则在 Toolbox CD 的 Library 里。合法渠道是随机资料、机床厂与 Siemens 授权支持,本文不提供任何下载链接。

导入 Toolbox 基础程序块后报语法错误怎么办?

先判断是不是德语助记符问题:minibhg.zip 与较旧 BSP 块用 U/O/UN/S/R,英语助记符的 STEP 7 会在 FC76 / FB1 / OB100 报语法错。现场通行做法是在 Options > Customize > Language > Mnemonics 临时切到 German,重新编译全部源文件,下载并 PLC 重启后再切回 English;不要长期混用。若报的不是语法错而是 PLC 停在 STOP,则多半是 OB100 / FB1 / DB20 版本与 NCK 软件版本不匹配,需换用版本对齐的 Toolbox 重新加载。

OB100 / FB1 可以修改吗?

可以,但只在参数化层面:在 OB100 的 CALL "RUN_UP", "gp_par" 里填 MCP 数量、报文地址、总线地址、MCPBusType 等形参,用户自己的逻辑写在官方留的插入位或自建 FC/FB。不要改 know-how-protected 块的内部,也不要动 Safety Integrated 相关的 FB1 / OB82 安全链;这类改动需要正式变更请求与重新验收测试。改前先导出留证,改完冷重启并做四项验证。

最后更新:2026-11-10

本文有英文版:SINUMERIK 828D / 840D PLC Basic Program: Where FB1, FB2 and OB100 Come From
面向海外读者的完整英文版,内容与本文对应 — 可直接转给非中文同事或海外客户。
© 版权声明
THE END
喜欢就支持一下吧
点赞13赞赏分享
评论 抢沙发

请登录后发表评论

    暂无评论内容

CNC电气调试问题解答 | 数控机床电气工程师资料共享屋
CNC电气调试问题解答 | 数控机床电气工程师资料共享屋
CNC电气调试问题解答 | 数控机床电气工程师资料共享屋
CNC电气调试问题解答 | 数控机床电气工程师资料共享屋
CNC电气调试问题解答 | 数控机床电气工程师资料共享屋
CNC电气调试问题解答 | 数控机床电气工程师资料共享屋
图片-CNCShare | 数控电气技术中心
图片-CNCShare | 数控电气技术中心
图片-CNCShare | 数控电气技术中心
图片-CNCShare | 数控电气技术中心
图片-CNCShare | 数控电气技术中心
图片-CNCShare | 数控电气技术中心
文章精选
专心做好一件事
打造更优雅的WordPress主题-CNCShare | 数控电气技术中心
专心做好一件事
打造更优雅的WordPress主题