课程中心
HOME
课程中心
正文内容
plc编程保密纠纷 将程序交给甲方又能保护核心程序?PLC开发者这样做
发布时间 : 2026-03-07
作者 : 小编
访问数量 : 23
扫码分享至微信

将程序交给甲方又能保护核心程序?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对于伺服驱动器的控制有多种,简单一些的可以是脉冲直接控制或者模拟量控制,这种方式就容易仿制,如果换成通讯控制,则会使得程序复杂很多,加上仿制者如果对报文不熟悉,很难去仿制。

有时候控制系统会由多个子控制系统构成,由此形成多CPU加人机界面的网络,西门子S7-200产品常见的是PPI网络,S7-300400产品常见的是MPI网络,通常是人机界面与CPU之间的数据交换,而我们也可在CPU的用户程序中添加一些无须组态的S7基本通讯功能(S7-200可用NETRNETW指令,S7-300400可以用X_PUTX_GET指令),定时或不定时地在CPU之间进行少量数据交换,通过这些数据实现子系统控制逻辑的互锁。对于这样的系统,仿制者要分析某一子系统的程序也不是件十分容易事情。

四、采用面板类型的人机界面

尽量在自动化系统中使用面板类型的人机界面来代替单一的按钮指示灯,很多人机界面没有源程序的话只有备份和恢复功能,完全可以实现维护功能还保密了HMI这一层的程序,而对于一个PLC系统而言,即使拥有了源程序但是缺失了HMI部分的标记也是很难仿制的。

而且开发者可以在面板的画面上加上明显的厂家标识和联系方式等信息,仿制者就不能原样照抄。

如果就使得如果仿制者想要复制程序的话,就必须重新编写操作面板的程序甚至于PLC的程序,而开发者则可利用面板和PLC数据接口的一些特殊功能区(如西门子面板的区域指针,或VB脚本)来控制PLC的程序执行。这样的PLC程序在没有HMI源程序的情况下只能靠猜测和在线监视来获取PLC内部变量的变化逻辑,费时费力,极大的增加了仿制抄袭的难度。

、采用非标准的人机界面

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

在中国,大多数工程师都愿意使用WINCC,INTOUCH或者组态王等等,但其实除了这些软件,还有一种更加高大上的编写方式,那就是利用VB自己写程序,而对于软件与PLC的接口,大家可以选择LIBNODAVE或者其他库等,这种方式写出来的人机界面有着很多好处,首先没有版权问题,因为VB软件是免费的,而且对于WINDOW系统的升级来说只需要简单的添加几个文件即可实现,不像WINCC那样,如果window升级了,需要大量修改文件。一般人都无法修改,更别提仿制了;没有很好的计算机编程功底的话就不敢轻易修改,而仅仅有计算机功底又没有PLC或者工艺基础的话也是无法更改的。我曾经利用S7-300做过这么一套系统,但我的目的不是保密,而是甲方要求,坐出来的系统完全按照自己的风格,很是舒服。

最好,告诫大家一下,不要过分消费中国工业市场的诚信,合理的利用PLC技术达到保护核心机密,而不是过分利用它达到其他目的。中国工业市场的诚信问题需要所有人的努力才有机会改善。

有关信捷PLC保密下载破解的几个个人观点

信捷的PLC密码保护形同虚设,可以读取EEPROM后,轻松的找到密码,密码在0758或者0858之后,只有6位。虽然也采用了二次加密,你看到的并不是真实的密码,但是密码算法简单粗暴,略微有点密码学知识的人一眼就能看出来。最难的就是保密下载了。这在解密业界也是一大难题,迄今为止还没有任何人能解决此问题。其难度在哪里呢?据我个人的研究,信捷保密下载采用了KEY密匙加密法。怎么个解释?保密下载后的文件是跟密码保护不一样的。保密下载后,cpu的系统存储区,会生成一个具体位数,大小不知道的密匙key文件。这个KEY会和EEPROM中的芯片数据发生运算,而得到CPU运行的真正代码,载入RAM。如果丢失了这个key,你初始化了plc,清空了PLC,就是你又还原了保存的EEPROM芯片文件,那也是无效的。为什么??KEY文件,钥匙丢了怎么开锁?怎么打开加密的数据呢?EEPROM的数据变成了无用的数据,毫无用处了,没了KEY谁都没有办法还原数据。上面的说法是你猜测还是有证据?证据才是最重要的,才是科学的根本。有的人问我信捷的PLC你能解密吗?我说你的PLC加密了吗?⊙▂⊙这个我还真不知道,我猜肯定加密了!呵呵,要命吧!搞技术靠猜测。入正题,那么你说你有什么证据证明CPU内部藏有KEY密匙呢?你可以尝试复制、拷贝、克隆、仿造一台保密下载的信捷PLC,你不可能成功。有人会说我拷贝EEPROM芯片文件过去不就可以了吗??你可以试试,PLC会报警,然而没有保密下载,只有密码保护的,你就可以克隆,并且不会报警,说明了什么问题?key密匙起作用了。这个key密匙并不在EEPROM芯片中,你无法获取,他是存放在CPU内部的系统存储区的,如果你得到了这个KEY,问题就迎刃而解。这是解决保密下载的根本大法。我看了有人说保密下载分为两种方式存放,一种是供编程软件读取的,一种是供CPU读取的,保密下载只下载了供cpu读取的而没有下载供编程软件读取的,这是及其错误的说法,根本不是那么回事。综上所述,解决信捷PLC保密下载的根本出路在于找出隐藏在CPU系统内部的KEY密匙,找到了你就解决了,找不到,你再怎么折腾rom芯片都无用。

这是我从其他论坛看来的,说法跟你说的不一样哦。到底谁说得对?发给大家比较看看我说的解密不是工程文件的解密,指的是从PLC读出程序的解密。信捷PLC确实不好搞,搞了一个月没琢磨出来。信捷PLC加密两种形式:一、密码这个相对好搞虽然我没研究透它的算法,但是常见的数字、字符可以算出来,一些特殊字符目前还算不出来。不过密码算法只是时间问题。二、保密下载依我看,信捷PLC的程序分为两部分,一部分是“供CPU执行用的代码”,另一部分是“供编程软件解读成梯形图的代码”。如果是保密下载的话,只存储“供CPU执行用的代码”,而没有“供编程软件解读成梯形图的代码”。如果能根据“供CPU执行用的代码”自己写出“供编程软件解读成梯形图的代码”,那么保密下载就解密成功了。文件中第4位保存的是“供CPU执行用的代码”起始地址的偏移量:1、如果为“06”,那么就是保密下载。从&H106开始就是“供CPU执行用的代码”。2、如果不是“06”这里假设为“XX”,那么从&H106开始到&H100+&HXX存储的就是“供编程软件解读成梯形图的代码”,&H100+&HXX开始是是“供CPU执行用的代码”

保密下载直接拷贝EEPROM芯片是不行的!但是我认为猫腻还在EEPROM芯片内!因为恢复芯片文件还是可以用的!所以还得研究保密下载的算法与校验方法!

回复楼上的“因为恢复芯片文件还是可以用的!”可以用那是你并没有清空plc,key文件还存在于PLC的系统存储区,你清空PLC试试,你再恢复芯片文件看看还能用吗?肯定不能。说明什么?KEY文件起作用了。

相关问答

丰炜plc解密方法?

1.目前没有明确的丰炜PLC解密方法。2.这是因为PLC(可编程逻辑控制器)的解密是一项技术难题,涉及到硬件和软件的复杂结构,以及丰炜PLC厂家的保密措施。解密...

信捷plc保密下载怎么上传?

要上传信捷PLC保密下载,您需要按照以下步骤进行操作:1.打开信捷PLC保密下载的官方网站,并确保您已经购买了相应的许可证。2.配置您的计算机,确保它与PLC设...

信捷plc上传口令如何解密?

不要轻易解信捷的密码,要是技术用了高级密码你的PLC就会锁住,程序都会用不了,就再也拿不出来了,只能刷机。还有下载方式一般有两种,1种是保密下载,这种方...

信捷plc保密下载的程序能读出来吗?

一般情况下,信捷PLC保密下载的程序是无法被读取的,因为它们加密了程序代码。这种加密技术是为了保护机器人、设备和工厂的知识产权和商业机密。但是,如果你有...

你好,能告诉我信捷PLC拆机解密的方法吗,非常感谢?

你好不知道你说的解密是什么信捷的PLC加密一般有两类,第一种是程序下载加密,第二种是程序本身加密(如定时停机)。第一种情况如果下载程序时使用的是保密下...

adr和rws是什么意思?

国证券市场上交易的外国公司股票的一种替代品,它允许美国投资者通过美国交易所来投资和交易外国公司的股票,同时也为外国公司提供了在美国筹资的机会...RWS是...

三菱fx5uplc怎么加密?

FX5U是三菱PLC史上加密最强大的,1.密匙加密,防止非法浏览,2.块加密,3.FB块加密,4.文件认证口令密码,5.文件口令设置禁止读取。6.PLC密匙加密...FX5...

问几个基本的问题,高手别笑话呀-盖德问答-化工人互助问答社区

输出端的小圈圈是取非的意思...逻辑图里面的虚线和实线应该没有规范规定的吧,应该是作者去区分信号自己定义的。圈表示取反,实线代表“1”,虚线代...

深人士,求答案!!三亚专业的隧道现场PLC控制器工厂生产价格...

[回答]PLC通讯,常用的有串行通讯,以太网通讯,现场总线通讯。串行通讯里,分为D口和USB口。D口为九针口型,针的叫公型口,口的叫母型,有三种协议,分别为:RS23...

如果永远离开现在的工作,你有什么技能能让你混口饭吃?

如果永远离开现在的工作,我可以用我的二级建造师执业资格证去找一份工作。也可以开一个小点的眼镜店,以前曾开过一个。只是现在的工作成了我的束缚,单位很多...

 官事  沈阳市外事服务学校 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2026  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部