西门子PLC程序的加密是保护核心技术和知识产权的重要手段。以下是对西门子程序加密的详细分析:
一、加密方法
使用西门子安全PLC或博途PLC的KNOWHOW功能
安全PLC:西门子安全PLC的程序块加密后几乎无法被破解,为核心技术提供了坚实保障。
博途PLC的KNOWHOW功能:采用软硬件双重加密,未加密部分可正常监控,但没有密码则无法转移至其他PLC。这样既能方便甲方维护,又能有效防范核心程序被窃取。
采用高级语言编写关键工艺程序
西门子除了基础的梯形图(LAD)、功能块(FBD)和语句表(STL)编程外,还提供了多种高级编程语言,如PCS7的CFC、SFC、SCL和S7-GRAPH等。
这些高级语言对一般工控人员来说难度较大,从而提高了仿制门槛。因此,关键工艺程序采用这些语言编写,能有效保护核心技术。
采用复杂的编程方式
模块化编程,利用符号名和参数化编写子程序块。
优先使用背景数据块和多重背景的数据传递方式。
灵活应用间接寻址的编程技巧。
对于复杂系统,尤其是涉及顺序或配方控制的程序,可考虑数据编程,即通过数据变化调整控制逻辑或顺序。
使用通讯功能增加仿制难度
在处理系统间数据交换时(如多个PLC之间、PLC与第三方仪表之间),建议使用通讯方案替代模拟量或开关量信号互连。
这样,仿制者仅能看到硬件通讯线,而具体数据交换方式则需深入研究用户程序。
对于变频器或伺服电机的程序设计,通讯控制方式相比直接控制或模拟量控制更为复杂,能有效增加仿制难度。
采用面板式人机交互界面(HMI)
在自动化系统的构建过程中,推荐采用面板式人机交互界面来替代传统的单一按钮和指示灯。
没有源程序的人机界面仅具备备份和恢复功能,这既能实现维护的便捷性,又能确保HMI层面程序的保密性。
开发者可以在面板界面上添加显眼的厂家标志、联系方式等信息,使得仿制者无法直接复制。
采用非标准的人机交互界面
使用VB等自行编写程序,并选择适当的库与PLC进行接口。
这种定制化的人机交互界面没有版权问题,且对于WINDOW系统的升级来说,通常只需要简单地添加几个文件就能实现。
这样的系统通常难以被普通用户修改,更不用说仿制了。对于没有深厚计算机编程功底的人来说,更是不敢轻易尝试。
二、加密保护措施
除了上述加密方法外,还可以采取以下保护措施来加强PLC程序的安全性:
主动保护方法
利用系统的时钟、程序卡或CPU的ID号和序列号、EEPROM的反写入功能和内存保持功能、系统提供的累时器功能等。
在用户程序的数据块中设置密码,在软件中设置逻辑陷阱。
可以反向利用自己在编程时犯的错误作为保护手段。
被动保护方法
在内存容量利用许可的条件下,不要删除被认为是无用的程序。
在数据块中留下开发者的标识,以备将来遭到侵权时可以取证。
应用反窃取技术的注意事项
嵌入保护程序应自然融入整体程序,避免突兀,代码需精简,变量命名应与被嵌入部分保持一致。
多种保护方法并用,形成“地雷效应”,提高仿制难度和成本。
妥善处理交付的程序,如删除部分符号名,使用上载的程序或数据块。
严格测试,避免保护程序不完善导致的误动作,降低售后服务成本。
综上所述,西门子PLC程序的加密是一个多层次、多方面的过程。通过采用合适的加密方法和保护措施,可以有效地保护核心技术和知识产权,防止被恶意仿制或抄袭。