plc程序加密解密方法解读

  众所周知,很多品牌的plc程序都是可以通过软件解密的,所以一旦解密,程序就会透明地显示在别人的眼前,把设备卖给别人,把整个PLC程序锁死,是不切实际的,会让甲方无法维护。保密和维权是中国市场经久不衰的话题。事实上,德国工程师从来不把自己的程序作为一个整体进行加密,而是使用其他方法,这不仅可以影响故障的诊断,还可以保护自己的核心机密。今天,我将向您介绍这些方法,供您参考。

  一、使用西门子安全PLC或博拓KNOWHOW功能

  西门子安全PLC作为西门子专注于安全功能的产品,其性能毋庸置疑,安全PLC的程序块加密后无法破解。可以很好的保护核心。作为西门子的最新产品,薄涂PLC的版权保护也是其主要功能之一。KNOWHOW功能是软件和硬件的双重加密。未加密的区块可以正常监控,没有密码甚至无法下载到其他PLCs。因此,使用薄涂的KNOWHOW功能,不仅可以将程序交给甲方方便维护,还可以保护您的核心程序不被窃取。

  第二,用高级语言编写一些重要的流程程序。

  除了最基本的LAD梯形图编程、FBD功能块编程和STL语句表编程之外,西门子还有很多其他的方式,比如PCS7的CFC和SFC此外,还有SCL、S7-GRAPH等。对于这些语言,一般工控人员很难全部掌握,所以模仿难度大大提高,所以非常关键的工艺程序可以用这些语言编写,也可以很好的保护自己的核心。

  1.编程方法的采用

  a)使用模块化程序结构、符号名称和参数化来编写子程序块

  b)尽量采用后台数据块和多后台的数据传输方式。

  c)大多数编程方法都是间接寻址。

  d)对于复杂系统的控制程序,特别是一些带有顺序控制或公式控制的程序,可以考虑数据编程,即通过数据变化来改变系统的控制逻辑或控制顺序。

  用户应尽量采用上述先进的编程方法,使嵌入编程程序中的系统保护加密程序不易被发现和复制。

  2.主动保护方法

  a)使用系统时钟

  b)使用程序卡或中央处理器的标识号和序列号

  c)使用EEPROM的反向写功能和一些需要设置的内存保留功能d)使用系统提供的定时器功能。

  e)在用户程序的数据块中设置密码

  f)在软件上设置逻辑陷阱

  g)你可以扭转你在编程中犯的错误。

  3.被动保护方法

  a)在内存容量利用许可的情况下,不要删除被认为无用的程序。

  b)在数据块中留下开发者的标识,以便日后侵权时取证。

  4.应用防盗技术应注意的事项

  a)在用户程序中嵌入保护程序是很自然的,不能突然添加程序。代码要尽量简化,变量的符号名要与嵌入程序段的变量一致。

  b)往往一种保护加密手段是不够的,要多种方法一起使用,而这些保护程序一旦被激活,对系统造成的后果应该是尽量不同的,造成所谓的“地雷效应”,从而增加了程序窃取的难度、时间和成本,让抄袭者在短时间内束手无策。

  c)保护程序的原始代码。如需交付程序,在不影响用户对设备维护的前提下,对交付的程序要妥善处理,如删除部分符号名,使用上传的程序或数据块。

  d)严格测试,避免保护程序不完善导致误操作带来不必要的麻烦,同时降低售后服务成本。

  第三,使用通信功能

  在实际应用中,经常会出现一些需要在系统之间(多个可编程逻辑控制器之间、可编程逻辑控制器和第三方仪器之间)进行数据交换的问题。无论是西门子产品之间,还是西门子产品与第三方产品之间,建议采用通信方案,而不是模拟量或开关量之间的信号互联方案。对于前者,模仿者只能看到硬件的一条通信线路。至于通过通信交换了多少数据,模仿者要研究具体的用户程序才能发现。对于后者,开发者轻松省力,模仿者一眼就能看出来。

  一般来说,一些变频器或伺服电机的程序设计有很多种方法,可以通过线路直接控制,也可以通过通信控制。然后,使用通信会使程序更难复制。例如,可编程控制器对伺服驱动器有多种控制,较简单的可以是脉冲直接控制或模拟控制。这种方式很容易复制。如果改成通讯控制,程序就复杂多了。另外,如果模仿者对信息不熟悉,也很难复制。

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

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

  自动化系统尽量采用面板式人机界面,而不是单按钮指示灯。很多人机界面只有在没有源程序的情况下才有备份和恢复功能,完全可以实现维护功能,对hmi层程序保密。对于PLC系统,即使有源程序但缺少HMI部分,也很难模仿。

  而且开发者可以在面板屏幕上添加厂商标识、联系方式等明显信息,模仿者无法照原样复制。

  如果模仿者想复制程序,必须重写操作面板的程序甚至是PLC的程序,开发者可以利用面板与PLC之间数据接口的一些特殊功能区(如西门子面板的区域指针或VB脚本)来控制PLC的程序执行。没有HMI源程序,这种PLC程序只能通过猜测和在线监测得到PLC内部变量的变化逻辑,费时费力,大大增加了复制的难度。

  五、采用非标准人机界面。

  德国工程师愿意使用这种方法。

  在国内,大部分工程师都愿意使用WINCC、INTOUCH或组态王等。,但其实除了这些软件之外,还有一种更高的编写方式,那就是用VB编写自己的程序,而对于软件和PLC之间的接口,可以选择LIBNODAVE或者其他库等。这样写出来的人机界面有很多优点,首先没有版权问题,因为VB软件是免费的。而且WINDOW系统的升级只需要简单的添加几个文件就可以实现,不像WINCC,如果升级Windows,需要修改很多文件。大多数人都无法修改,更不用说复制了;如果你没有很好的计算机编程知识,你就不能轻易改变它,如果你只有计算机知识,没有PLC或过程基础,你也不能改变它。以前用S7-300做这样的系统,但我的目的不是保密,而是甲方的要求,坐出来的系统完全遵循自己的风格,很舒服。

  最好告诫大家不要过度消耗中国工业市场的完整性,合理利用PLC技术保护核心机密,而不是过度用于其他用途。中国工业市场的完整性需要每个人的努力才有机会提高。以上内容看不明白的朋友可以先看一套plc视频教程,这样更容易理解。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值