随着中国整体经济实力的加强,制造和加工工业正逐步向中国转移,这给中国国内工业装备市场带来了大量的商机,国内各行业的制造商开发和制造出大量价廉物美的设备,取得了良好的经济和社会效应。但是,也有小部分的制造商,由于其自身能力和客观因素的限制,无法及时开发出合适的产品,但利益的驱动使他们把目光瞄准了同行,抄袭和仿制同行开发成功的产品,更有甚者是整机拷贝或者克隆。由于现代工业设备大量采用PLC作为主控制系统,PLC作为整个设备的核心部件,其软件包涵了生产工艺,控制逻辑,设备数据,加工参数及信息通讯等重要内容,从而成为设备仿制者重点要获取的目标之一。纵观目前中国国内市场上应用的主流品牌PLC,虽然在设计上都采用了各种软硬件加密的手段,但破解者运用的破解手段也越来越先进,从最初的穷举法,端口侦听,软件跟踪,到现在可以通过直接复制提取内存芯片的内容来分析破解,更有甚者在互连网上公开讨论和传播破解方法和工具,因此所有产品无一例外地遭到了破解。这对中国众多的中小型OEM制造商来说是非常不利的,“我们几年的开发成果可能因此一夜之间付诸东流”当得知S7-200/300硬件加密也被破解后,一位OEM制造商无奈地说。由于仿制者的开发成本很低或几乎为零,因此开发者还没有来得及收回开发成本就陷入了低价竞争,这极大的影响了开发者开发新产品的积极性,对我国的装备工业的长远发展是十分有害的。
在系统设计的初期,我们应该从系统的角度来考虑PLC控制程序的保护:
1. T.I.A(全集成自动化)的概念有助于保护我们的KNOW HOW
T.I.A实现了组态和编程,数据管理和通讯,自动化与驱动产品(包括PLC控制器、HMI人机界面、网络、驱动器等产品)的高度集成。实践证明,采用T.I.A集成概念设计的控制系统很难被抄袭。同一个软件平台,相同的硬件组成,一样的总线通讯,完全可以设计出截然不同的控制系统,这是一个让开发者自由发挥的平台。例如,一个CPU315-2DP和2个MM440变频器进行PROFIBUS-DP的通讯,除了PLC和变频器有常规的数据交换,如果用户使用了DRIVES ES的工程软件,还能实现2个MM440之间的直接的快速数据交换,另外通过DRIVES ES还能实现PLC和MM440之间超过10个总共16个PZD过程数据的交换,实现PLC批量下载变频器参数的功能。而这一切的实现从表面上看,硬件没有发生任何的变化,仿制者很难从硬件上来判断出系统是如何控制这两台驱动器的速度的。不熟悉西门子产品的仿制者无法轻易更换硬件配置或修改软件,而即使仿制者是个西门子产品的专家,要独自分析清楚具体细节问题也不是件容易的事情。从某种程度上说,T.I.A大大提高了对仿制者的技术水平要求的门槛,达到西门子系统集成专家水平的技术人员一是不多,二很少有愿意做这些不齿的事情的。
2. 使用通讯功能
3. 使用面板类型的人机界面
4. 采用高级语言编写部分重要的工艺程序
在项目具体实施的过程中,我们应该从软件开发技巧的角度来考虑PLC控制程序的保护:
1. 编程方式的采用
a) 采用模块化的程序结构,采用符号名,参数化来编写子程序块
b) S7-300/400尽量采用背景数据块和多重背景的数据传递方式
c) 多采用间接寻址的编程方式
d) 复杂系统的控制程序尤其是一些带有顺序控制或配方控制的程序,可以考虑采用数据编程的方式,即通过数据的变化来改变系统的控制逻辑或控制顺序。
2. 主动保护方法
a) 利用系统的时钟
b) 利用程序卡或者CPU的ID号和序列号
c) 利用EEPROM的反写入功能,及一些需要设置的内存保持功能
d) 利用系统提供的累时器功能
e) 在用户程序的数据块中设置密码
f) 软件上设置逻辑陷阱
g) 可以反向利用自己在编程时犯的错误
3. 被动保护方法
a) 在内存容量利用许可的条件下,不要删除被认为是无用的程序
b) 在数据块里留下开发者的标识,以便于将来遭到侵权时可以取证
4. 应用反破解技术的注意事项
a) 在用户程序中嵌入保护程序要显得自然一些,不能很突兀的加出一段程序来,代码要尽量精简,变量符号名应与被嵌入程序段的变量保持一致
b) 往往一种保护加密手段是不够的,应该多种方法并用,并且这些保护程序一旦激活后对系统造成的后果也应该尽量不同,造成所谓的“地雷效应”,从而增加程序被破解的难度,时间与成本,短时间内让抄袭者束手无策,
c) 保护好程序的原代码,如果需要交付程序的,在不影响用户对设备维护的前提下,应对交付的程序做适当的技术处理,如删除部分符号名,采用上载的程序或数据块
d) 做好严格的测试,以避免保护程序的不完善引起的误动作而带来的不必要的麻烦,同时也能降低售后服务的的费用
运用保护手段的原则
楼主最近还看过