- 发布
- 浔之漫智控技术(上海)有限公司
- 品牌
- 西门子
- 型号
- 模块
- 产地
- 德国
- 电话
- 15821971992
- 手机
- 15821971992
- 发布时间
- 2023-07-19 17:06:40
随着中国整体经济实力的加强,制造和加工工业正逐步向中国转移,这给中国国内工业装备市场带来了大量的商机,国内各行业的制造商开发和制造出大量价廉物美的设备,取得了良好的经济和社会效应。但是,也有小部分的制造商,由于其自身能力和客观因素的限制,无法及时开发出合适的产品,但利益的驱动使他们把目准了同行,抄袭和仿制同行开发成功的产品,更有甚者是整机拷贝或者克隆。由于现代工业设备大量采用PLC作为主控制系统,PLC作为整个设备的核心部件,其软件包涵了生产工艺,控制逻辑,设备数据,加工参数及信息通讯等重要内容,从而成为设备仿制者重点要获取的目标之一。纵观目前中国上应用的主流品牌PLC,虽然在设计上都采用了各种软硬件加密的手段,但破解者运用的破解手段也越来越先进,从初的穷举法,端口侦听,软件跟踪,到现在可以通过直接复制提取内存芯片的内容来分析破解,更有甚者在互连网上公开讨论和传播破解方法和工具,因此所有产品无一例外地遭到了破解。这对中国众多的中小型OEM制造商来说是非常不利的,“我们几年的开发成果可能因此一夜之间付诸东流”当得知S7-200/300硬件加密也被破解后,一位OEM制造商无奈地说。由于仿制者的开发成本很低或几乎为零,因此开发者还没有来得及收回开发成本就陷入了低价竞争,这极大的影响了开发者开发新产品的积极性,对我国的装备工业的长远发展是十分有害的。
难道就这样束手无策,听任仿制者为所欲为了吗?答案是否定的,多年来一直关注和研究PLC控制程序保护方面的问题,笔者在实践中取得了一些经验和心得,在本文中愿意和同行们共同分享和讨论,大家共同为保护自己的劳动成果而努力。笔者多年来一直从事西门子SIAMTIC 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之间,PLC与驱动器之间,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之间进行少量数据交换,通过这些数据实现子系统控制逻辑的互锁。对于这样的系统,仿制者要分析某一子系统的程序也不是件十分容易事情。
尽量在自动化系统中使用面板类型的人机界面来代替单一的按钮指示灯,虽然按钮指示灯的功能是无法保密的,但目前为止,面板型人机界面能够实现程序上载并实现反编译的产品还不多见,开发者可以在面板的画面上加上明显的厂家标识和联系方式等信息,仿制者还不至于傻到连这个也原样照抄吧。这样迫使仿制者必须重新编写操作面板的程序甚至于PLC的程序,而开发者则可利用面板和PLC数据接口的一些特殊功能区(如西门子面板的区域指针,或VB脚本)来控制PLC的程序执行。这样的PLC程序在没有HMI源程序的情况下只能靠猜测和在线监视来获取PLC内部变量的变化逻辑,费时费力,极大的增加了仿制抄袭的难度。
4. 采用语言编写部分重要的工艺程序
这一点主要针对采用S7-300/400或WINAC产品的控制设备,除了使用STEP 7提供的LAD,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) 做好严格的测试,以避免保护程序的不完善引起的误动作而带来的不必要的麻烦,同时也能降低售后服务的的费用
运用保护手段的原则
加密保护技术本身也是一把双刃剑,用好了客户满意,自己的权益又悄悄的得到了保护,用不好不仅不起作用,给售后服务带来许多麻烦,还会得罪客户;好人掌握这种技术是用来保护自己不被侵权,而用心不良的人会利用它去要挟客户。因此本文也于讨论了关于PLC程序加密保护的一些原则性指导性的内容,而没有公布具体的程序代码指令,请读者们谅解。
高素质应用型PLC人才的培养是一项综合性策略,涉及课程设置与教材选取,教学与实习设备投入,理论、实验与实训教学,成绩评价机制,校内学习与校外锻炼,毕业前学习与毕业后应用等各方面的优化与提高,只有做到各个方面得到协同优化,才能培养出高素质应用型PLC人才。
关键:协同兴趣自主学习效率
可编程控制器(PLC)具有结构灵巧,硬件配置灵活方便、可靠性高、抗干扰能力强,易学易用的特点,已作为普遍的自动化控制器件广泛应用于各行各业。《PLC原理及应用》课程已成为工科院校一门覆盖面较广的课,作为学校如何培养出高素质应用型PLC人才,这成为社会、学校、教师与家长关注的焦点。根据多年的教学实践,就影响PLC人才培养的各个因素的提高与协同,我提出以下几点建议以供参考:
一、教学与实习设备投入。在PLC课程的实践教学中,应把机械、电工、电子、液压、气动和计算机等知识与PLC技术进行有机地联系,扩大实习实训课时的比重,逐步加大学校相关设备的投入,建立较为完备的PLC技术仿真实训室,从而为“PLC仿真项目开发”的实训教学创造良好条件。教学实践证明,只有通过PLC仿真项目方面的实训,让学生亲自编程、实际接线和仿真调试,并对运行过程中所遇到的问题进行分析和改进,才能真正培养学生创新思维和综合职业能力,真正实现学生毕业后在PLC技术应用领域“零距离上岗”的终教学目标。
二、理论、实验与实训教学。任何课程教学活动的首要任务都是激发学生的学习兴趣,同样在PLC教学中激发学生的兴趣并不难,重要的是让学生不断地提高,不断地体验到成功的喜悦,这样才能始终保持其浓厚的兴趣。
1、理论课的首要任务是让学生明确PLC是什么?PLC能做什么?怎么做?教师可以通过一个简单、形象实例(如:电机的长动控制)的完整讲解、操作与演示,先让学生了解PLC控制系统包括主电路与控制电路,PLC的外部硬件连线与内部软件编程两个基本的环节仅仅充当控制电路部分,让学生整体了解PLC控制系统的构成与工作过程,再以此为基础进行外部硬件连线与内部软件编程两个基本环节的深入讲解,这样便于学生对比继电接触器控制系统对本课程的整体把握,明确课程的中心任务,有了目标也就有了学习的动力。
理论课教学过程中要使用多媒体教学手段,利用多种计算机技术制作以PPT为主体的电子课件,借助多媒体技术,用生动丰富的画面和美妙动听的音乐效果吸引学生的注意力,激发学生的学习兴趣,同时可以提高教学的效率。PLC的外部接线(包括主电路接线)首先讲原理图,结合实验、实训、实习讲解装配图与实际连线图,要让学生体会课堂上的原理图、实验中的接线与实训、实习中的接线的区别与联系,教会学生善于理论联系实践,以理论指导实践,以实践验证理论。
当前流行的三菱PLC的编程软件为FXGP_WIN-C与GXDeveloper,FXGP_WIN-C没有仿真功能,在理论讲授中缺乏直观性,而GXDeveloper编程软件加装GXSimulator6-C后具有仿真功能,在编程器件、指令与编程实例的讲解中利用仿真可以加强直观性,便于学生的理解,对于某些程序的检验与编写学生可以不用到实验室,直接利用学校机房结合软件的仿真功能完成,这样既增强了学生自主学习的能力,提高了学习兴趣,也提高了学习的效率,学生不用走进实验室也能使理论教学与实验教学同步进行,大大提高老师的教学效果以及学生的理解和接受能力。
2、实验、实训与上机课可以采用自主学习方式。自主学习方式是一种学习者在总体教学目标的宏观调控下,在教师的指导下,根据自身条件和需要自由地选择学习目标,学习内容和方法,并通过自我调控的学习活动完成具体学习目标的学习方式。自主学习离不开教师的适时指导与评价,学生只有在教师的适时帮助下,才能不断地完成一个又一个实验与实训项目,获得越来越大的成就感,增加自己自主学习的动力,从而保证自主学习方式的良性发展。教师还必须结合理论课程的进程,结合实验实训设备编写由浅入深、逐步递进、面向不同层次学生的实验实训指导书,为学生的自主学习提供有力的理论支撑。
3、综合实训是PLC课程重要的一个环节。要安排充足的时间进行,还要提高实训的效率,综合考虑学生个体的差异。在实训中,遵循能者多劳,共同提高的原则,把学生按个体差异分组,各组根据自己的能力情况选择不同控制要求的实训内容,根据控制要求,进行编程、调试,故障诊断与排除。这种方法较灵活的解决了学生能力差异存在的相互制约问题,同时也培养了学生的分工及团队合作的能力。
三、成绩评价机制。应该明确成绩评价不是教学行为的终目的,成绩评价应作为激励学生学习的一种方法,成绩评价应做到及时、公正,具有可操作性。1、理论成绩评定包括笔试成绩、平时成绩和实验成绩,笔试成绩通过开卷或闭卷方式,考核了学生对PLC基本知识的掌握程度;平时成绩通过平时独立完成作业的质量、上课出勤、课堂上解决问题的能力及创新方法等来评定;2、实验实训成绩评价应能体现出竞争机制,根据不同的任务要求分两种情况:,保证完成质量的前提下,根据完成速度评定分数;第二,保证统一时间的前提下,根据完成质量评定分数。教师根据完成质量或速度只对每个团队进行分数评定,团队每个成员的分数则依据教师给定分数通过本团队民主评议得分,这样促进团队内每个成员的积极性与主动性,同时培养学生的团队意识。
四、校内学习与校外锻炼。学生在学校所学的PLC知识与技能对比实际工作岗位中的PLC控制系统,仍具有一定的差异或差距,学生就业后在工作岗位中一定会遇到一些难于解决的难题,这就需要学校、教师仍然要加强对学生毕业工作过程的指导,把这些问题的解决方法做成典型案例对在校学生讲解,对在校生来说也是一种良好经验的积累。学生就业后,在工作岗位上应不断地与学校教师沟通,不断地向有经验的师傅请教,才能熟练掌握PLC控制系统的设计与应用。
总之,作为学校只有做到以上若干方面协同优化,才能真正培养出高素质应用型PLC人才。