广东湘恒智能科技有限公司
主营产品: 西门子PLC,西门子模块,西门子触摸屏,西门子变频器,西门子伺服电机驱动,电缆,西门子全系列
西门子PLC程序如何加密?常用加密方法汇总讲解
发布时间:2024-11-27

众所周知,多个品牌的PLC程序均可经软件解密后呈现于他人面前,然而,完全封锁PLC程序在设备销售后又不利于甲方进行维护。在中国市场,保密与维权始终是个热门话题。但有趣的是,德国工程师并不依赖整体加密程序,而是采取其他策略,既不影响故障诊断,又保护核心秘密。今日,我们将探讨这些策略,以供各位参考。

图片

01 利用西门子安全PLC或博途的KNOWHOW保护

西门子安全PLC作为安全领域的佼佼者,其程序块加密后几乎无法被破解,为核心技术提供了坚实保障。而博途PLC作为西门子的新星,其KNOWHOW功能采用软硬件双重加密,未加密部分可正常监控,无密码则无法转移至其他PLC。这意味着,使用博途的KNOWHOW功能,不仅能让甲方轻松维护,还能有效防范核心程序被窃取。

02 编写关键工艺程序时使用gaoji语言

除了基础的LAD梯形图、FBD功能块和STL语句表编程,西门子还提供了多种gaoji编程语言,如PCS7的CFC、SFC、SCL和S7-GRAPH等。这些语言对一般工控人员来说难度较大,从而大大提高了仿制门槛。因此,关键工艺程序采用这些语言编写,能有效保护核心技术。

在编程过程中,可遵循以下策略:

a) 模块化编程,利用符号名和参数化编写子程序块。

b) 优先使用背景数据块和多重背景的数据传递方式。

c) 灵活应用间接寻址的编程技巧。

d) 对于复杂系统,尤其是涉及顺序或配方控制的程序,可考虑数据编程,即通过数据变化调整控制逻辑或顺序。

主动保护方法包括:

a) 利用系统时钟。

b) 借助程序卡、CPU的ID号和序列号。

c) 利用EEPROM的反写入功能和内存保持功能。

d) 利用系统累时器功能。

e) 在数据块中设置密码。

f) 在软件中设置逻辑陷阱。

g) 巧妙利用编程时的错误作为保护手段。

被动保护策略则包括:

a) 在许可的内存范围内,保留看似无用的程序。

b) 在数据块中留下开发者标识,以备侵权取证。

应用反窃取技术时需注意:

a) 嵌入保护程序应自然融入整体程序,避免突兀,代码需精简,变量命名应与被嵌入部分保持一致。

b) 多种保护方法并用,形成“地雷效应”,提高仿制难度和成本。

c) 妥善处理交付的程序,如删除部分符号名,使用上载的程序或数据块。

d) 严格测试,避免保护程序不完善导致的误动作,降低售后服务成本。

03 充分利用通讯功能

在处理系统间数据交换时(如多个PLC之间、PLC与第三方仪表之间),建议使用通讯方案替代模拟量或开关量信号互连。这样,仿制者仅能看到硬件通讯线,而具体数据交换方式则需深入研究用户程序。对于变频器或伺服电机的程序设计,通讯控制方式相比直接控制或模拟量控制更为复杂,能有效增加仿制难度。

在多子系统构成的控制系统中,可通过CPU间的数据交换实现控制逻辑互锁。例如,在西门子S7-200系列中可使用NETR/NETW指令,而在S7-300/400系列中则可使用X_PUT/X_GET指令。这样的系统使得仿制者分析某一子系统程序变得更为困难。

图片

04 应用面板式人机交互界面

在自动化系统的构建过程中,我们推荐采用面板式人机交互界面(HMI),以此来替代传统的单一按钮和指示灯。许多没有源程序的人机界面仅具备备份和恢复功能,这不仅能够实现维护的便捷性,还确保了HMI层面程序的保密性。对于PLC系统而言,即使获得了源程序,若缺少HMI部分的标记信息,仿制也会变得极其困难。

此外,开发者可以在面板界面上添加显眼的厂家标志、联系方式等信息,使得仿制者无法直接复制。

如果仿制者意图复制整个系统,他们不仅需要重新编写操作面板的程序,甚至可能还需要重新编写PLC的程序。而开发者则可以利用面板与PLC数据接口的特殊功能(例如西门子面板的区域指针或VB脚本)来控制PLC的程序执行。这样的PLC程序在缺少HMI源程序的情况下,只能通过猜测和在线监视来尝试理解PLC内部变量的变化逻辑,这无疑增加了仿制与抄袭的难度。

图片


05 采用定制化的人机交互界面

德国工程师们倾向于采用这种策略。在中国,尽管许多工程师倾向于使用WINCC、INTOUCH或组态王等标准化软件,但还有一种更为gaoji和个性化的编写方式——使用VB自行编写程序。在软件与PLC的接口选择上,可以选择LIBNODAVE或其他库。这种定制化的人机交互界面具有诸多优势。首先,它不存在版权问题,因为VB软件是免费的。其次,对于WINDOW系统的升级,通常只需要简单地添加几个文件就能实现,相较于WINCC,无需进行大量的文件修改。

这样的系统通常难以被普通用户修改,更不用说仿制了。对于没有深厚计算机编程功底的人来说,更是不敢轻易尝试。而仅有计算机功底却缺乏PLC或工艺知识的人,也无法对其进行有效的更改。


展开全文
拨打电话 微信咨询 发送询价