程序打不开,先别急着说"被加密了"——S7 的三把锁你分清了吗

一台 S7-1200,博图连上去 弹一句"无访问权限"
很多人到这里就下结论 说程序被加密了没救了
先别急。S7-1200 / S7-1500 的保护不是一个锁,至少是三层,三层的性质完全不同,处置方式也不同。
分不清就动手 轻则白忙一场 重则把能恢复的东西也弄坏
第一层:访问保护(全 CPU 的锁)
现象:整个"程序块"带锁图标,一个块也点不开,硬件组态同样看不到。这层锁是原厂机制里先看的一层。
这层锁在 CPU 的保护与安全设置里 是原厂机制 作用是挡住所有在线访问
持有口令,在博图里输入后就能正常访问,能看也能上载,三层里这把锁的边界是明确的。
谁能处理:知道口令的人。就这么简单,也就这么难——口令往往在离职工程师手里,或者那家早已联系不上的集成商手里。
口令没了走正路 凭设备权属证明找原厂 原厂有既定的处置渠道
第二层:块级保护(know-how 保护)
现象:块清单能打开,点进某个块只看到接口和注释区,逻辑区锁着,显示"已受 know-how 保护"。
这层锁是写程序的人主动加的 锁的是逻辑看不看得到 不是程序读不读得出来
关键点:块级保护不影响上载和备份,整个程序照样可以完整读出来、存下来、运行正常。
也就是说,如果你的目的只是"把程序备份住",这层锁根本不挡路,很多人在这里白担心了半年。
只有想看懂某段逻辑 或者要改程序时 这层锁才真正拦人
这时候绕不开原作者,要么找他要授权,要么照着设备行为反向梳理逻辑——后者慢,但合规。
第三层:防拷贝保护(绑定序列号的锁)
现象:程序在原来那台 CPU 上运行正常,换一台同型号 CPU 就报错,提示块序列号不匹配。
这层锁把程序和那台 CPU 的序列号绑在一起 目的是防止程序被整个拷到别处用
坑在哪:CPU 换新后,程序必须在有源工程的情况下重新编译下载,才能在新 CPU 上重新绑定。
如果源工程丢了 只剩那块带锁的存储卡 程序读出来了也未必能在新 CPU 上跑起来
所以买二手带程序的设备、或者打算换 CPU 之前,先确认有没有源工程,这一步比比价重要。

一个常见的翻车顺序
一台 2015 年前后投运的 S7-1200 设备,CPU 前面板电池鼓包后更换,程序当时读出备份了一份。
后来厂里换了台同型号 CPU 把备份下载进去 设备一上电就报序列号不匹配
这才想起来原程序带防拷贝保护,而源工程早在几年前的电脑换新时没了。
备份做得没错 错在没人核过程序带不带序列号绑定
所以这张判断表要配一个动作:备份归档时,顺手在台账里记一行"有无访问口令、有无 know-how、有无防拷贝",三个格子填清楚,后面换 CPU 的人才不会踩同一脚。
一张 10 秒判断表
| 你看到的现象 | 是哪层锁 | 能不能自己处理 |
|---|---|---|
| 整个程序块全带锁图标,一个都点不开 | 访问保护 | 有口令就行;没口令凭权属证明找原厂 |
| 块清单能开,逻辑区显示 know-how 保护 | 块级保护 | 不影响备份和上载;要改逻辑才需要原作者 |
| 换同型号 CPU 就报序列号不匹配 | 防拷贝保护 | 需要源工程重新编译;没源工程先别换 |
我们的边界,写在前面
我们明确不提供绕过原厂授权保护 不破解密码
这三层锁里,我们能帮的是:授权链条清晰时,把能备份的程序完整读出、校验、归档;把口令在手的程序整理成可交接的状态;源工程齐全时把程序迁到新 CPU。备份包里我们还会多写一页:这台设备带哪几层锁、缺哪把钥匙,让下一个接手的人不用重新摸一遍。
口令没了、加密锁死了——先做技术评估,能做的说能做,做不了的直接说做不了。
什么情况下你不需要找我们
口令在你们自己人手里 登录进去程序完好 自己备份一份就够
程序本来就有源工程、文档齐全、厂家响应正常——也不必找我们。
只有一种情况值得打个电话:程序读不出来,又说不清是哪层锁,而设备还在生产线上不能停。
一句实在话:公司是新的,但团队在电气和软件这两行做了三十多年。锁分得清是这行的基本功——连三层锁都没分清就催你下单的,你可以把电话挂了。