Shanghai Richeng Electronics Co. Ltd - ISO9001/IATF16949/ISO/TS22163
Choose Language

Wiring duct,Cable Gland,Cable Tie,Terminals,RCCN

如何保护西门子PLC控制程序?

在系统设计的初期,开发者应该从系统的角度来考虑PLC控制程序的保护:
    一、 T.I.A(全集成自动化)的概念有助于保护我们的KNOW HOW
    T.I.A实现了组态和编程,数据治理和通信,自动化与驱动产品(包括PLC控制器、HMI人机界面、网络、驱动器等产品)的高度集成。实践证实,采用T.I.A集成概念设计的控制系统很难被抄袭。统一个软件平台,相同的硬件组成,一样的总线通信,完全可以设计出截然不同的控制系统,这是一个闪开发者自由施展的平台。
    举个例子,2个MM440变频器和一个CPU315-2DP进行PROFIBUS-DP的通信,除了PLC和变频器有常规的数据交换,假如用户使用了DRIVES ES的工程软件,还能实现2个MM440之间的直接的快速数据交换,另外通过DRIVES ES还能实现PLC和MM440之间超过10个总共16个PZD过程数据的交换,实现PLC批量下载变频器参数的功能。
    而这一切的实现从表面上看,硬件没有发生任何的变化,仿制者很难从硬件上来判定出系统是如何控制这两台驱动器的速度的。不认识西门子产品的仿制者无法等闲更换硬件配置或修改软件,而即使仿制者是个西门子产品的专家,要独自分析清晰详细细节题目也不是件轻易的事情。
    从某种程度上说,T.I.A大大进步了对仿制者的技术水平要求的门槛,达到西门子系统集成专家水平的技术职员一是未几,二很少有愿意做这些不齿的事情的。此外,对于一些较大系统的OEM开发商,路由通信功能,iMAP软件包等都是很不错的T.I.A系统功能或工具,我们应该尽量利用T.I.A给我们带来的技术上风,占领技术制高点,加大仿制或抄袭的技术难度。
    二、 采用高级语言编写部门重要的工艺程序
    这一点主要针对采用S7-300400或WINAC产品的控制设备,除了使用STEP 7提供的LAD,STL,FBD尺度编程语言来开发控制程序,还可以使用SCL,S7-GRAPH等高级语言来开发一些重要的工艺程序,WINAC还可以使用ODK软件包开发出专有的程序块。一般的仿制者是不轻易搞到这些开发工具的,即使有也不一定会使用,更不用说来读懂这些程序了。在项目详细实施的过程中,我们应该从软件开发技巧的角度来考虑PLC控制程序的保护:
    1. 编程方式的采用
    a) 采用模块化的程序结构,采用符号名,参数化来编写子程序块
    b) S7-300400尽量采用背景数据块和多重背景的数据传递方式
    c) 多采用间接寻址的编程方式
    d) 复杂系统的控制程序尤其是一些带有顺序控制或配方控制的程序,可以考虑采用数据编程的方式,即通过数据的变化来改变系统的控制逻辑或控制顺序。
    用户应该尽量采用以上几种高级层次的编程方式,这样编出来的程序中嵌入系统的保护加密程序,才不轻易被发现和<此处内容被屏蔽>
    2.主动保护方法
    a) 利用系统的时钟 
    b) 利用程序卡或者CPU的ID号和序列号  
    c) 利用EEPROM的反写入功能,及一些需要设置的内存保持功能 d) 利用系统提供的累时器功能  
    e) 在用户程序的数据块中设置密码  
    f) 软件上设置逻辑陷阱 
    g) 可以反向利用自己在编程时犯的错误
    3. 被动保护方法
    a) 在内存容量利用许可的前提下,不要删除被以为是无用的程序 
    b) 在数据块里留下开发者的标识,以便于将来遭到侵权时可以取证
    4. 应用反<此处内容被屏蔽>技术的留意事项
    a) 在用户程序中嵌入保护程序要显得天然一些,不能很突兀的加出一段程序来,代码要尽量精简,变量符号名应与被嵌入程序段的变量保持一致  
    b) 往往一种保护加密手段是不够的,应该多种方法并用,并且这些保护程序一旦激活后对系统造成的后果也应该尽量不同,造成所谓的“地雷效应”,从而增加程序被<此处内容被屏蔽>的难度,时间与本钱,短时间内让抄袭者束手无策,  
    c) 保护好程序的原代码,假如需要交付程序的,在不影响用户对设备维护的条件下,应对交付的程序做适当的技术处理,如删除部门符号名,采用上载的程序或数据块  
    d) 做好严格的测试,以避免保护程序的不完善引起的误动作而带来的不必要的麻烦,同时也能降低售后服务的的用度
    三、使用通信功能
    在实际的工作中,往往会碰到一些系统间需要数据交换的题目(如PLC-PLC之间,PLC与驱动器之间,PLC与仪表之间),不管是西门子产品之间仍是西门子产品与第三方产品之间,建议使用通信的方案来代替模拟量或开关量之间的信号互连的方案。对于前者,仿制者只能看见一条硬件的通信线,至于有多少数据是如何通过通信交换的,仿制者必需要花精力研究详细的用户程序才能搞清晰;而对于后者,开发者是省心省力了,仿制者也是一目了然,一览无余。
    PLC与驱动器的通信,除了了控制字状态字、设定值反馈值及过程变量的数据通信,驱动器工作的参数最好也能由PLC通过软件下载,这样即可以降低终极用户维护系统的技术要求,同时可以防止仿制者通过驱动器工作参数分析系统尤其在驱动方面的工作原理和设计思路。
    有时候控制系统会由多个子控制系统构成,由此形成多CPU加人机界面的网络,西门子S7-200产品常见的是PPI网络,S7-300400产品常见的是MPI网络,通常是人机界面与CPU之间的数据交换,而我们也可在CPU的用户程序中添加一些无须组态的S7基本通信功能(S7-200可用NETRNETW指令,S7-300400可以用X_PUTX_GET指令),定时或不定时地在CPU之间进行少量数据交换,通过这些数据实现子系统控制逻辑的互锁。对于这样的系统,仿制者要分析某一子系统的程序也不是件十分轻易事情。
    四、采用面板类型的人机界面
    尽量在自动化系统中使用面板类型的人机界面来代替单一的按钮指示灯,固然按钮指示灯的功能是无法保密的,但目前为止,面板型人机界面能够实现程序上载并实现反编译的产品还未几见,开发者可以在面板的画面上加上显著的厂家标识和联系方式等信息,仿制者还不至于傻到连这个也原样照抄吧。
    这样迫使仿制者必需重新编写操纵面板的程序甚至于PLC的程序,而开发者则可利用面板和PLC数据接口的一些特殊功能区(如西门子面板的区域指针,或VB脚本)来控制PLC的程序执行。这样的PLC程序在没有HMI源程序的情况下只能靠预测和在线监督来获取PLC内部变量的变化逻辑,费时费力,极大的增加了仿制抄袭的难度。

Related articles

Previous: PLC的CPU STOP到RUN 时的输出模式设置
Next: 为什么程序写入PLC重新上电无程序
On-line
contact
message
download
Print
WeChat WeChat
Collection
TOP