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

   2022-11-04 工业品商城94
核心提示:在系统设计的初始阶段,开发人员应从系统的角度考虑plc控制程序的保护:1.T.I.A(完全集成自动化)的概念有助于保护我们的“专有技术”T.I.A实现了组态与编程、数据管理与通信、自动化与驱动产品(包括PLC控制器、人机界面、网络、驱动等产品)的高度集成。实践证明,T.I.A集成理念设计的控制系统是很难被复制的。同样的软件平台
在系统设计的初始阶段,开发人员应从系统的角度考虑plc控制程序的保护:
1.T.I.A(完全集成自动化)的概念有助于保护我们的“专有技术”
T.I.A实现了组态与编程、数据管理与通信、自动化与驱动产品(包括PLC控制器、人机界面、网络、驱动等产品)的高度集成。实践证明,T.I.A集成理念设计的控制系统是很难被复制的。同样的软件平台,同样的硬件组成,同样的总线通讯,可以设计出完全不同的控制系统,这是一个让开发者自由发挥的平台。
例如,两台MM440变频器通过PROFIBUS-DP与CPU315-2DP通信。除了PLC和变频器之间的常规数据交换外,如果用户使用变频器的工程软件,还可以在两个MM440之间直接快速地交换数据。此外,PLC和MM440之间可以通过驱动器交换10多种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)在数据块中留下开发者的logo,以便日后侵权时取证。
4.应用反此处的内容被阻止技术考虑
a)在用户程序中嵌入保护程序应该是自然的,不应该突然添加一个程序。代码要尽量简洁,变量的符号名要和嵌入程序段中的变量一致。
b)往往一种保护加密方式是不够的,要多种方式配合使用。而且这些保护程序一旦被激活,在系统上的后果要尽可能的不一样,产生所谓的“地雷效应”,从而增加程序的数量是:难度,时间,成本,让抄袭者在短时间内无可奈何,
c)保护程序的原始代码。如果需要交付程序,应在不影响用户维护设备的前提下,对交付的程序进行适当的技术处理,如删除一些符号名称,采用上传的程序或数据块等。
d)做好严格的测试,避免因保护程序不完善导致的误操作带来不必要的麻烦,同时降低售后服务成本。
第三,使用通讯功能

在实际工作中,经常会遇到一些需要系统之间进行数据交换的问题(比如PLC与PLC之间,PLC与驱动器之间,PLC与仪表之间)。无论是西门子产品之间,还是西门子产品与第三方产品之间,建议采用通讯方案,而不是模拟量或开关量之间的信号互连方案。对于前者,模仿者只能看到一条硬件通讯线。至于通过通信交换了多少数据,模仿者必须花精力研究具体的用户程序才能弄清楚;至于后者,开发者省心省力,模仿者一眼就能看出来。

PLC与驱动器之间的通信除了控制字、状态字、设定值的反馈值和过程变量的数据通信外,还可以通过软件下载驱动器的工作参数,这样可以降低最终用户维护系统的技术要求,防止模仿者通过驱动器的工作参数来分析系统的工作原理和设计思路,特别是在驱动中。

有时控制系统由多个分控制系统组成,这样就形成了一个多CPU加人机接口的网络。西门子S7-200产品常用PPI网络,S7-300400产品常用MPI网络,通常是人机界面和CPU之间的数据交换。我们还可以在CPU的用户程序中添加一些不需要配置的S7基本通讯功能(S7-200可以用NETRNETW指令,S7-300400可以用X_PUTX_GET指令)定期或不定期地在CPU之间交换少量数据,通过这些数据实现子系统控制逻辑的互锁。对于这样一个系统,模仿者要分析某个子系统的程序并不是很容易。

四、采用面板式人机界面。

在自动化系统中尽量使用面板式人机界面,而不是单按钮指示器。虽然按键指示灯的功能不能保密,但是到目前为止,能够上传程序并反编译的面板式人机界面的产品还很少。开发者可以在面板屏幕上添加厂商logo、联系方式等明显的信息,模仿者也不会傻到照原样照搬。

这就迫使模仿者重写操作面板的程序甚至PLC的程序,而开发者可以利用面板和PLC数据接口的一些特殊功能区(比如西门子面板的区域指针或者VB脚本)来控制PLC的程序执行。没有HMI源程序,这样的PLC程序只能依靠猜测和在线监测来获取PLC内部变量的变化逻辑,费时费力,大大增加了复制的难度。

 
 
更多>同类新闻资讯
推荐图文
推荐新闻资讯
点击排行

新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服