浅谈西门子PLC控制程序的保护

合集下载

西门子PLC故障分析及屏蔽防护

西门子PLC故障分析及屏蔽防护

西门子PLC故障分析及屏蔽防护西门子PLC(可编程逻辑控制器)是广泛应用于工业自动化领域的重要设备,它可以实现工业生产中的自动化控制和监控。

与其他设备一样,PLC也会出现故障,影响生产效率。

本文将介绍西门子PLC常见故障的分析及屏蔽防护方法。

一、西门子PLC常见故障分析1. 电源问题:PLC的电源问题是常见的故障之一。

可能是因为电源电压不稳定、电源线路接触不良或者电源模块故障导致的。

为了解决这个问题,可以采取及时维修电源线路、更换电源模块等措施。

2. 输入/输出模块故障:因为输入/输出模块在工业控制过程中起着至关重要的作用,一旦出现故障,将会导致生产中断。

常见的问题有输入/输出模块接触不良、线路短路、模块元件损坏等。

可以通过检查线路连接是否牢固、更换模块元件等方法来解决。

3. CPU故障:PLC的中央处理器是整个系统的核心部件,一旦出现故障将导致整个系统停止工作。

CPU故障的原因可能是因为CPU芯片损坏、程序不当导致的死循环等。

解决方法是更换CPU芯片、重新编写程序等。

4. 程序错误:程序错误是PLC故障的常见原因之一,可能是因为程序编写不当、逻辑错误、变量赋值错误等导致的。

解决方法是通过程序调试工具进行逐步排查错误,并对程序进行修正。

5. 网络通讯故障:PLC系统中常常涉及到多个设备之间的通讯,一旦出现网络通讯故障,将会导致整个系统不协调。

可能的原因是网络线路连接故障、通讯协议不匹配等。

解决方法是检查网络连接情况、更新通讯协议等。

二、西门子PLC故障屏蔽防护方法1. 定期维护:定期维护是避免PLC故障的重要手段。

包括对设备的清洁、线路的检查、程序的优化等。

定期维护可以减少设备使用中的故障率,保障生产的稳定进行。

2. 合理设计:在进行PLC系统的设计时,应该充分考虑设备的可靠性、稳定性,并选用高品质的设备。

合理的设计可以减少系统故障的发生,提高整体的工作效率。

3. 环境保护:PLC设备应该放置在通风、干燥、无腐蚀气体的环境中,避免因为恶劣的环境导致设备故障。

西门子PLC密码保护功能总结

西门子PLC密码保护功能总结

一:硬件组态中打开CPU的protection(保护)选项,选第3个设置(读写保护),设置密码后保存编译重新下载硬件组态就可以了二:1.打开程序编辑窗口LAD/FBD/STL;2.将要进行加密保护的程序块生成转换为源代码文件(通过选择菜单 File—>Generate source 生成);3.在LAD/FBD/STL 窗口中关闭您的程序块,并在SIMATIC Manager项目管理窗口的source文件夹中打开上一步所生成的source文件;4.在程序块的声明部分,TITLE行下面的一行中输入”KNOW_HOW_PROTECT”;5.存盘并编译该source文件(选择菜单File Compile);◊Save,File◊6.现在就完成了您程序块的加密保护。

注意:千万不要丢失或删除源文件,否则程序被保护,用户可以另存到其它目录中,或Export Source到硬盘中,再删除源文件,这样别人只能看到未保护的块。

三:1,加密工具在STEP7软件下面的文件夹中:\STEP7 V5.5 SP2 ch\CD_2\Optional Components\S7 Block Privacy\2,安装后,右键单击SIMATIC管理器中的“块”,执行快捷菜单中的“Block Provacy”命令,在弹出的“S7-Block Provacy”窗口勾选要加密的程序块(见下图),然后右键单击选中的块,执行出现的“Encrypt block”命令,在出现的“Block encryption”窗口中输入密码(12~24个字符或24字节的数字),确定后就加密了,块上面出现加密的符号。

3,需要解密时右键单击“块”,执行快捷菜单中的“Block Provacy”命令,在弹出的窗口勾选要解密的程序块,然后右键单击块,执行出现的“Decrypt block”命令,在出现的“Block encryption”窗口中输入密码,确定后块就解密了,块上面加密的符号消失。

西门子PLC控制系统工作原理及常见故障分析

西门子PLC控制系统工作原理及常见故障分析

西门子PLC控制系统工作原理及常见故障分析西门子PLC控制系统是一种广泛应用的自动化控制系统。

它利用计算机技术实现对工业过程的自动化控制,通过PLC的输入/输出模块与各种执行器、传感器等现场设备相连,实现对工业过程的监测、控制和保护。

本文将介绍PLC控制系统的工作原理和常见故障分析。

一、工作原理PLC控制系统的工作原理可以分为三个基本部分:输入模块、CPU和输出模块。

输入模块负责读取现场设备的信号,对信号进行采集、滤波、放大等处理,将处理后的信号传输给CPU;CPU是PLC系统的核心,根据程序逻辑实现对输入信息的处理、决策和控制,控制输出模块输出相应的控制信号;输出模块负责控制各种执行器、传感器等现场设备,将控制信号输出到设备上实现控制。

具体来说,PLC控制系统的工作流程如下:1.输入模块读取现场设备的信号,将采集到的信号传输给CPU。

2.CPU根据输入信息进行处理、决策和控制,将处理结果输出到输出模块。

3.输出模块将控制信号输出到相应的执行器、传感器等现场设备上,实现对工业过程的控制和监测。

4.CPU定期对系统进行自检和诊断,确保系统的正常运行。

二、常见故障分析虽然PLC控制系统具有高可靠性和稳定性,但在使用过程中仍然可能出现各种故障。

下面介绍几种常见故障及其分析方法。

1.输入模块故障输入模块故障可能导致输入信号的采集不准确或无法采集,从而影响系统的控制和监测。

常见的输入模块故障有:输入信号断开、输入信号短路、输入信号干扰等。

解决方法:首先应检查输入电源和信号接口是否正确连接;其次,检查输入信号的线路和连接是否正常;最后,检查输入信号线路和系统其他部分之间是否存在干扰,如需应在线路上加入屏蔽措施。

2.CPU故障CPU是PLC系统的核心,一旦出现故障,系统将无法正常工作。

常见的CPU故障有:控制程序出现错误、大量数据传输导致CPU负载过高等。

解决方法:首先应重新检查控制程序的程序语句和信号逻辑是否正确,通过软件调试程序解决问题;如果CPU负载过高,则需要优化程序或重新设计程序。

PLC安全性能与控制系统保护

PLC安全性能与控制系统保护

PLC安全性能与控制系统保护近年来,随着信息技术的飞速发展,计算机和控制系统在各个领域都得到了广泛应用。

在工业领域中,可编程逻辑控制器(PLC)作为一种重要的自动化控制设备,被广泛应用于生产线的控制和监控中。

然而,随着PLC网络化水平的提高和面临的威胁增多,保障PLC安全性能和控制系统的安全成为了一个极其重要的问题。

本文将详细讨论PLC的安全性能及相应的控制系统保护措施。

一、PLC安全性能分析PLC作为自动化领域的核心控制设备,其安全性能至关重要。

首先,PLC系统在设计上应具备完善的防火墙和访问控制机制,只允许授权的用户进行操作和访问相关功能。

其次,PLC应能够及时应对攻击事件或异常行为,采取相应的防御措施,保护系统的正常运行和数据的完整性。

此外,PLC还应具备实时监测和报警功能,能够及时发现并应对异常事件,从而降低系统故障和风险的可能性。

为了确保PLC的安全性能,可以采取以下措施。

首先,采用强密码和身份验证机制,以保护PLC系统免受未经授权的访问。

其次,定期更新PLC系统的软件和固件,修复已知漏洞,并提高系统的抗攻击性。

此外,还可以利用网络隔离等手段,将PLC与外部网络隔离,以降低攻击风险。

二、控制系统保护策略为了维护控制系统的安全性,除了保障PLC的安全性能外,还需要采取一些额外的保护策略。

首先,应加强对PLC系统的监测和管理,及时发现和处理潜在的安全问题。

其次,建立安全备份和恢复机制,以保证系统的连续性和可靠性。

同时,应定期进行系统安全性评估和漏洞扫描,修复系统中的安全漏洞和弱点,提高系统的抗风险能力。

防止恶意软件的入侵也是控制系统保护的重要环节之一。

要做到这一点,需要采取有效的防护措施,如安装可信的杀毒软件和防火墙,及时更新软件补丁,限制外部设备的接入等。

此外,员工的安全意识培养也至关重要。

通过开展安全教育和培训,提高员工对安全风险和威胁的认识,增强其自我保护能力,避免因误操作或不慎操作而给控制系统带来安全隐患。

五种西门子PLC程序加密方法,最后一种很难破!

五种西门子PLC程序加密方法,最后一种很难破!

五种西门子PLC程序加密方法,最后一种很难破!大家都知道,很多品牌PLC的程序都可以通过软件解密,那么一旦解密后程序就非常透明的显示在了别人的眼中,而将设备卖给别人又将PLC程序整个锁死的话又不切实际,甲方会无法维护;而保密和维权更是中国市场经久不衰的话题,其实德国的工程师从来不会给自己的程序整体加密,而是使用其他方式,既不影响发生故障时的诊断,又可以保护自己的核心机密。

今天给大家介绍一下这些方式,供大家参考。

一、使用西门子安全PLC或者博途的KNOWHOW功能西门子安全PLC作为西门子主打安全功能的一款产品,它的性能毋庸置疑,而且安全PLC的程序块加密后无法破解;可以很好的保护核心。

而博途PLC作为西门子的最新产品,其版权保护也是它的主要功能之一,KNOWHOW功能是软硬件双重加密,不加密的块可以正常监控,没有密码的话甚至无法下载到其他PLC;因此使用博途的KNOWHOW功能既可以将程序交给甲方方便维护,又可以保护自己的核心程序不被窃取。

二、采用高级语言编写部分重要的工艺程序西门子除了最基础的LAD梯形图编程,FBD功能块编程和STL语句表编程还有很多其他的方式,比如说PCS7的CFC,SFC; 除此之外还有SCL,S7-GRAPH等等。

对于这些语言,一般的工控人员很难全部精通,因此仿制难度大大提升,因此非常关键的工艺程序可以由这些语言编写,也可以很好的保护自己的核心。

1.编程方式的采用a)采用模块化的程序结构,采用符号名,参数化来编写子程序块b)尽量采用背景数据块和多重背景的数据传递方式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故障及屏蔽防护方法。

一、故障类型及解决方法1.通讯故障通讯故障是PLC运行时经常会遇到的问题。

通讯故障的表现为发送或接收数据错误、通讯丢失、通道不可用等情况。

通常出现通讯故障时需要查看网络连接、协议设置等,以确认是否出现故障。

解决方法:- 确认网络连接状况,尤其关注连接的物理层和链路层。

检查网络线路,保证连接稳定;- 检查PLC通讯协议设置是否正确,包括端口和波特率设置等;- 检查PLC及其它设备是否存在通讯冲突,尝试更换通讯线路及端口。

2.程序故障程序故障是指PLC程序在运行时出现异常,通常表现为系统死机、程序无法运行、程序闪退等情况。

- 检查程序代码、参数设置等是否正确;- 对程序进行调试,检查程序是否能够按照预期顺序执行;- 确认PLC工作环境是否有干扰,如电磁干扰、温度过高等,对环境进行优化。

3.控制故障控制故障是PLC控制过程中可能出现的问题,例如控制逻辑错误、控制输出不符合要求等。

- 检查控制逻辑是否正确,尤其是输入和输出是否符合要求;- 检查控制器输出是否穿越或交叉,避免控制器无效;- 确认环境温度是否正常,避免温度造成的控制误差。

4.硬件故障硬件故障是指PLC设备本身出现问题,例如存储器损坏、输入输出口故障。

- 对PLC设备进行检查和维护,更换损坏的存储器或输入输出口;- 注意防静电干扰,避免损坏敏感的硬件部件。

二、屏蔽防护方法为了保护PLC设备免受外界干扰,需要采取一些屏蔽防护措施。

1.减少电磁干扰电磁干扰是PLC设备常见的故障之一。

为了降低电磁干扰,可以采用以下方法:- 屏蔽PLC与外部设备的通讯线路,阻止电磁波的干扰;- 定期对PLC设备进行维护保养,清洁设备表面,并检查设备内部的连接线路是否紧固;- 设置必要的地线,并对地线进行保护。

2.避免静电干扰- 使用合适的环境控制设备,如空气净化器、加湿器等;- 在可能产生静电的设备上设置接地插头,并设置合适的接地电阻;- 处理敏感电子部件时避免直接用手接触,使用防静电手套、手指套等工具。

浅谈西门子plc程序加密和程序块加密及解密

浅谈西门子plc程序加密和程序块加密及解密

浅谈西门子plc程序加密和程序块加密及解密第一种情况。

是在硬件组态中,在CPU属性中按照保护等级设置密码,将CPU中程序锁住,不影响CPU的正常运行。

这种情况是往往是程序设计编程人员出于安全和知识产权的保护等目的而进行的设置。

常见的加密方式有三种。

1、程序可读出,数据可修改,运行可监视,只是程序不可更改。

(出于安全考虑)2、数据可修改,运行可监视,程序即不能读出也不能修改。

(出于安全考虑,也为保护知识产权)3、程序、数据、运行均不可读出、监视和更改。

(安全性最高)方法:在硬件组态中打开CPU的protection(保护)选项,选择所需加密方式,设置密码后保存编译重新下载硬件组态就可以了。

注意:如何设置密码忘记或丢失,那么只有通过编程软件在线连接PLC,清空PLC程序,(包括程序块,系统块和数据块)然后将备份的程序重新下载。

第二种情况就是程序中程序块的加密和解密。

方法步骤如下。

1、在STEP7中打开要加密的程序块,点击菜单“文件/生成源文件(File/Generate source)”,生成要加密保护的程序块的原代码文件。

2、关闭程序块,在项目管理器中打开“源文件(source)”,打开生成的源文件。

3、在程序块的声明部分,TITLE行下面的一行中输入“KNOW_HOW_PROTECT”。

4、执行菜单命令“文件/保存(File/Save)”然后“文件/编译(File/Compile)”。

5、编译成功后,可在“块”中看到加锁的程序块。

6、解除密码,打开相应的“源文件”,把“KNOW_HOW_PROTECT”删除,然后编译即可。

注意,保存好源文件,否则已加密的程序块将无法打开。

同时,你用SCL源程序编译完成后,删除SCL源程序就行了。

别人没SCL源程序,打开你程序中的块时就只能显示成STL程序了。

第三种情况就是我们在打开别人的程序时,遇到的那些加密程序块,又没有源程序的情况下,就只能靠一些解密工具或者其他方式了。

西门子PLC故障分析及屏蔽防护

西门子PLC故障分析及屏蔽防护

西门子PLC故障分析及屏蔽防护电子技术更迭换代,为工业生产与民众生活创造了便利的条件。

西门子PLC 作为一种控制设备,本身具备性价比较高、可靠性较强的特征,当前已经被广泛的应用于生活、工业生产等相关领域中。

一些负责海运货物的重要港口码头等领域,在对货物监控、管理、通信等方面上都应用到了西门子PLC技术。

然而,由于港口码头的环境相对较为恶劣,极大的影响了西门子PLC运行的可靠性,甚至造成一定的故障。

故此,本文针对西门子PLC在工作中出现的故障加以分析,并提出合理的解决策略,保证港口码头的稳定运行。

标签:西门子;PLC故障分析;屏蔽保护PLC设备,是上世纪留存至今的一种电子技术,随着PLC技术体系的完善与发展,当前已经成为工业领域中必不可少的控制设备。

而西门子PLC,作为西门子公司研发PLC体系中的一种产品,为工业生产创造了极大的经济效益,是当前重点应用的技术手段之一。

故此,为了提升西门子PLC技术的应用效果,亟待解决西门子PLC存在的故障,加强屏蔽保护。

1 概述西门子PLC控制体系的基本情况西门子PLC控制系统中,硬件设备主要有:电源模块、通讯模块、CPU、I/O模块等,主要是运用模块化的结构进行组装。

除此之外,网络PLC在工业控制中的广泛应用加速了西门子PLC控制系统的升级,实现了从网絡通讯单一层面设备总线网络化到信息化网络的转变,进而提升了西门子PLC的应用价值,充分发挥了其重要的作用。

2 分析西门子PLC控制体系中存在的故障的原因在系统运行中,西门子PLC控制系统若出现无规律死机的现象,同时西门子PLC系统中的CPU模块指示灯出现红色闪烁的运行状态,这种情况下借助于RESET复位也难以实现系统修复,甚至采取强制性断电并重启机器的情况下,仍然处于死机状态。

为了查找出这一故障的发生原因,进行了如下的措施:其一,将电脑与PLC通讯电缆进行连接,然后将西门子PLC连接到STEP7软件上,借助于STEP7软件来对西门子PLC进行系统诊断,但是在Diagonstic Buffer标签页上并未发现任何故障。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浅谈西门子PLC控制程序的保护
前言:
随着中国整体经济实力的加强,制造和加工工业正逐步向中国转移,这给中国国内工业装备市场带来了大量的商机,国内各行业的制造商开发和制造出大量价廉物美的设备,取得了良好的经济和社会效应。

但是,也有小部分的制造商,由于其自身能力和客观因素的限制,无法及时开发出合适的产品,但利益的驱动使他们把目光瞄准了同行,抄袭和仿制同行开发成功的产品,更有甚者是整机拷贝或者克隆。

由于现代工业设备大量采用PLC作为主控制系统,PLC作为整个设备的核心部件,其软件包涵了生产工艺,控制逻辑,设备数据,加工参数及信息通讯等重要内容,从而成为设备仿制者重点要获取的目标之一。

纵观目前中国国内市场上应用的主流品牌PLC,虽然在设计上都采用了各种软硬件加密的手段,但破解者运用的破解手段也越来越先进,从最初的穷举法,端口侦听,软件跟踪,到现在可以通过直接复制提取内存芯片的内容来分析破解,更有甚者在互连网上公开讨论和传播破解方法和工具,因此所有产品无一例外地遭到了破解。

这对中国众多的中小型OEM制造商来说是非常不利的,“我们几年的开发成果可能因此一夜之间付诸东流”当得知S7-200/300硬件加密也被破解后,一位OEM制造商无奈地说。

由于仿制者的开发成本很低或几乎为零,因此开发者还没有来得及收回开发成本就陷入了低价竞争,这极大的影响了开发者开发新产品的积极性,对我国的装备工业的长远发展是十分有害的。

难道就这样束手无策,听任仿制者为所欲为了吗?答案是否定的,多年来一直关注和研究P LC控制程序保护方面的问题,笔者在实践中取得了一些经验和心得,在本文中愿意和同行们共同分享和讨论,大家共同为保护自己的劳动成果而努力。

笔者多年来一直从事西门子S
IAMTIC S7 PLC的应用,因此本文也只是从纯粹的技术层面出发,重点探讨SIMATIC S7 PLC控制程序的保护。

在系统设计的初期,我们应该从系统的角度来考虑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大大提高了对仿制者的技术水平要求的门槛,达到西门子系统集成专家水平的技术人员一是不多,二很少有愿意做这些不齿的事情的。

此外,对于一些较大系统的OEM开发商,路由通讯功能,iMAP软件包等都是很不错的T.
I.A系统功能或工具,我们应该尽量利用T.I.A给我们带来的技术优势,占领技术制高点,加大仿制或抄袭的技术难度。

2. 使用通讯功能
在实际的工作中,我们往往会遇到一些系统间需要数据交换的问题(如PLC-PLC之间,P LC与驱动器之间,PLC与仪表之间),无论是西门子产品之间还是西门子产品与第三方产品之间,建议使用通讯的方案来代替模拟量或开关量之间的信号互连的方案。

对于前者,仿制者只能看见一条硬件的通讯线,至于有多少数据是如何通过通讯交换的,仿制者必须要花精力研究具体的用户程序才能搞清楚;而对于后者,开发者是省心省力了,仿制者也是一目了然,尽收眼底。

PLC与驱动器的通讯,除了了控制字/状态字、设定值/反馈值及过程变量的数据通讯,驱动器工作的参数最好也能由PLC通过软件下载,这样即可以降低最终用户维护系统的技术要求,同时可以防止仿制者通过驱动器工作参数分析系统尤其在驱动方面的工作原理和设计思路。

西门子公司的工程软件DRIVE ES BASIC/SIAMTIC,为广大的西门子产品用户实现此类功能提供了一个强大的工具;而使用SIMATIC PLC却使用第三方驱动器的用户,也可以自行开发针对性的参数读写程序,一般支持PROFIBU-DP的驱动器都可以实现。

有时候我们的控制系统会由多个子控制系统构成,由此形成多CPU加人机界面的网络,西门子S7-200产品常见的是PPI网络,S7-300/400产品常见的是MPI网络,通常是人机界面与CPU之间的数据交换,而我们也可在CPU的用户程序中添加一些无须组态的S7基本
通讯功能(S7-200可用NETR/NETW指令,S7-300/400可以用X_PUT/X_GET指令),定时或不定时地在CPU之间进行少量数据交换,通过这些数据实现子系统控制逻辑的互锁。

对于这样的系统,仿制者要分析某一子系统的程序也不是件十分容易事情。

3. 使用面板类型的人机界面
尽量在自动化系统中使用面板类型的人机界面来代替单一的按钮指示灯,虽然按钮指示灯的功能是无法保密的,但目前为止,面板型人机界面能够实现程序上载并实现反编译的产品还不多见,开发者可以在面板的画面上加上明显的厂家标识和联系方式等信息,仿制者还不至于傻到连这个也原样照抄吧。

这样迫使仿制者必须重新编写操作面板的程序甚至于PLC的程序,而开发者则可利用面板和PLC数据接口的一些特殊功能区(如西门子面板的区域指针,或VB脚本)来控制PLC的程序执行。

这样的PLC程序在没有HMI源程序的情况下只能靠猜测和在线监视来获取PLC内部变量的变化逻辑,费时费力,极大的增加了仿制抄袭的难度。

4. 采用高级语言编写部分重要的工艺程序
这一点主要针对采用S7-300/400或WINAC产品的控制设备,除了使用STEP 7提供的L AD,STL,FBD标准编程语言来开发控制程序,我们还可以使用SCL,S7-GRAPH等高级语言来开发一些重要的工艺程序,WINAC还可以使用ODK软件包开发出专有的程序块。

一般的仿制者是不容易搞到这些开发工具的,即使有也不一定会使用,更不用说来读懂这些程序了。

在项目具体实施的过程中,我们应该从软件开发技巧的角度来考虑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) 做好严格的测试,以避免保护程序的不完善引起的误动作而带来的不必要的麻烦,同时也能降低售后服务的的费用
运用保护手段的原则
我们虽然掌握了一些加密保护的手段,有一点必须明白,密码和锁的道理是一样的,天下没有打不开的锁,也没有解不开的密码,我们从技术上采取的措施来防止侵权的作用还是十分有限的,因此大家不能把所有的希望都寄托在所谓的加密技术或破解与反破解技术上;除此之外我们还可以通过专利的申请等其他诸如法律手段来保护我们的知识产权;但最重要的是我们不能安于现状,而是要勇于创新,不断地利用新技术开发新产品,占领技术新高地,争做行业的领头人,才能使我们的企业立于不败之地。

加密保护技术本身也是一把双刃剑,用好了客户满意,自己的权益又悄悄的得到了保护,用不好不仅不起作用,给售后服务带来许多麻烦,还会得罪客户;好人掌握这种技术是用来保护自己不被侵权,而用心不良的人会利用它去要挟客户。

因此本文也仅限于讨论了关于PL C程序加密保护的一些原则性指导性的内容,而没有公布具体的程序代码指令,请读者们谅解。

相关文档
最新文档