在系统设计的初期,开发者应该从系统的角度来考虑PLC控制程序的保护:
一、 T.I.A(全集成自动化)的概念有助于保护我们的KNOW HOW
T.I.A实现了组态和编程,数据管理和通讯,自动化与驱动产品(包括PLC控制器、HMI人机界面、网络、驱动器等产品)的高度集成。实践证明,采用T.I.A集成概念设计的控制系统很难被抄袭。同一个软件平台,相同的硬件组成,一样的总线通讯,完全可以设计出截然不同的控制系统,这是一个让开发者自由发挥的平台。
举个例子,2个MM440变频器和一个CPU315-2DP进行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给我们带来的技术优势,占领技术制高点,加大仿制或抄袭的技术难度。
二、 采用语言编写部分重要的工艺程序
这一点主要针对采用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) 在数据块里留下开发者的标识,以便于将来遭到侵权时可以取证
4. 应用反<此处内容被屏蔽>技术的注意事项
a) 在用户程序中嵌入保护程序要显得自然一些,不能很突兀的加出一段程序来,代码要尽量精简,变量符号名应与被嵌入程序段的变量保持一致
b) 往往一种保护加密手段是不够的,应该多种方法并用,并且这些保护程序一旦激活后对系统造成的后果也应该尽量不同,造成所谓的“地雷效应”,从而增加程序被<此处内容被屏蔽>的难度,时间与成本,短时间内让抄袭者束手无策,
c) 保护好程序的原代码,如果需要交付程序的,在不影响用户对设备维护的前提下,应对交付的程序做适当的技术处理,如删除部分符号名,采用上载的程序或数据块
d) 做好严格的测试,以避免保护程序的不完善引起的误动作而带来的不必要的麻烦,同时也能降低售后服务的的费用
三、使用通讯功能
在实际的工作中,往往会遇到一些系统间需要数据交换的问题(如PLC-PLC之间,PLC与驱动器之间,PLC与仪表之间),无论是西门子产品之间还是西门子产品与第三方产品之间,建议使用通讯的方案来代替模拟量或开关量之间的信号互连的方案。对于前者,仿制者只能看见一条硬件的通讯线,至于有多少数据是如何通过通讯交换的,仿制者必须要花精力研究具体的用户程序才能搞清楚;而对于后者,开发者是省心省力了,仿制者也是一目了然,尽收眼底。
PLC与驱动器的通讯,除了了控制字状态字、设定值反馈值及过程变量的数据通讯,驱动器工作的参数好也能由PLC通过软件下载,这样即可以降低终用户维护系统的技术要求,同时可以防止仿制者通过驱动器工作参数分析系统尤其在驱动方面的工作原理和设计思路。
有时候控制系统会由多个子控制系统构成,由此形成多CPU加人机界面的网络,西门子S7-200产品常见的是PPI网络,S7-300400产品常见的是MPI网络,通常是人机界面与CPU之间的数据交换,而我们也可在CPU的用户程序中添加一些无须组态的S7基本通讯功能(S7-200可用NETRNETW指令,S7-300400可以用X_PUTX_GET指令),定时或不定时地在CPU之间进行少量数据交换,通过这些数据实现子系统控制逻辑的互锁。对于这样的系统,仿制者要分析某一子系统的程序也不是件十分容易事情。
四、采用面板类型的人机界面
尽量在自动化系统中使用面板类型的人机界面来代替单一的按钮指示灯,虽然按钮指示灯的功能是无法保密的,但目前为止,面板型人机界面能够实现程序上载并实现反编译的产品还不多见,开发者可以在面板的画面上加上明显的厂家标识和联系方式等信息,仿制者还不至于傻到连这个也原样照抄吧。
这样迫使仿制者必须重新编写操作面板的程序甚至于PLC的程序,而开发者则可利用面板和PLC数据接口的一些特殊功能区(如西门子面板的区域指针,或VB脚本)来控制PLC的程序执行。这样的PLC程序在没有HMI源程序的情况下只能靠猜测和在线监视来获取PLC内部变量的变化逻辑,费时费力,极大的增加了仿制抄袭的难度。
(6)控制阀数据表。对两位式切断控制阀、节流型控制(调节)阀、电 磁阀等控制阀按自控工程设计用典型表格中控制阀的有关规定填写。 (7)电缆表和管缆表。用于表明各电缆(信号电缆、电源电缆等)的连 接关系,表明电缆编号、型号、规格、长度及保护管规格、长度等。表明各 气动管缆的连接关系,表明管缆编号、型号、规格、长度等。对液压系统, 表明液压管线之间的连接关系,表明管线编号、型号、规格、长度等。 (8)测量管路和绝热伴热表。表明各测量管路的规格、材料和长度等。 表明需要绝热和伴热管线的绝热或伴热方式、保温(护)箱型号、被测介质 名称、温度和安装图等。 (9)仪表回路图。以仪表回路为单元,用仪表图形符号表示一个检测或 控制回路的构成,表明回路中每个仪表设备、端子号和连接接线。 (10)信号及联锁系统原理图和报警联锁系统的接线图。包括所有与控 制计算机有关的信号报警和联锁系统的工作原理,说明各信号联锁回路的工 艺要求和作用,标注联锁动作的工艺参数等。为实现报警和联锁系统绘制的 接线图,应包括各报警信号与报警器的连接关系,消声和实验按钮、供电和 报警器、仪表端子之间的连接关系等。
(11)顺序控制系统时序图。可采用表格或图形形式表明顺序控制系统 的工艺操作、执行器和时间的程序动作关系。 (12)接地系统图。绘制整个自控系统的接地系统,包括控制室仪表的 工作接地、保护接地系统。表明接地分干线规格、长度等。 (13)电缆、管缆、液压管线的平面敷设图。它与电缆、管缆表相互对 应,用于表明电缆、管缆、液压管线在整个工程项目中的敷设情况。包括有 关的接线盒、接线箱、接管箱、继电器箱、供气和供液装置的平面位置(尺 寸)、标高、安装结构、安装倾斜度及电缆、管线的排列等,并注明编号。 对穿墙和穿过楼板的管线、电缆等应表明其密封方式。列出所用的设备材料 表。 (14)仪表安装图(带位号)。为各种类型的仪表提供安装示意图,列出 材料表。 (15)非标准部件的安装制造图。对非标准的部件,提供制造图和安装 图。
一些资料来自设备制造商,应由制造商 提供。技术资料包括图纸和文件。文件包括表格和文字说明等。获取技术资 料的目的是通过对技术资料的消化、对生产过程的基本情况有一定程度的熟 悉和了解。例如,控制系统用于该生产过程的目的,采用的控制手段和控制 方法,各有关输入信号和输出信号的连接和它们之间的传递关系。 读图顺序一般是先看图纸目录,再看工艺管道和仪表流程图等其他图 纸,对一些资料,例如设备布置图、管口方位图等,并不在自控设计的图纸 范围,当需要了解这些设备的布置细节、管口方位的细节时,可向有关 技术人员询问,并进行图纸的阅读。 控制系统设计图纸内容可对照一般生产过程中自控设计图纸内容。主要 有下列图纸和文件。 (1)图纸目录。用于说明该工程所提供的全部设计图纸清单,包括工程 设计图、复用图和标准图。对不采用带位号的安装图时,仪表的安装图列入 标准图。 (
SIMATIC IM 155-6PN 标准型,配有用于连接 SIMATIC 总线适配器的 PROFINET 接口
两种类型的交付:
作为带 IM155-6PN ST 的套件,预装配 BusAdapter BA 2xRJ45,包括服务器模块
IM155-6PN ST 订货包,不带总线适配器,包括服务器模块
多 32 个 I/O 模块,还提供有具有全面诊断功能的 PROFIsafe 模块
可通过 ET 200AL 系列中的多 16 个模块、使用 BU-Send BU 和 BA-Send 总线适配器进行扩展
对于每个模块的输入和输出数据,每种情况下多为 256 字节;对于每个站,多 512 字节(取决于组态)
时间更新时间:典型值 1 ms
通过 SIMATIC 总线适配器选择 PROFINET 的连接方式(于铜缆总线适配器)
SIMATIC IM155-6PN/2 高性能型,2 端口接口模块,具有一个用于安装 SIMATIC 总线适配器的插槽
多 64 个 I/O 模块,还提供有具有全面诊断功能的 PROFIsafe 模块
对于每个模块的输入和输出数据,每种情况下多为 288 字节;对于每个站,多 1440 字节(取决于组态)
数据刷新速度快 (250 µs),在等时同步模式下也如此
S2 系统冗余
通过 SIMATIC 总线适配器,选择 PROFINET 的连接方式和物理连接。带铜缆和/或光纤电缆接口的所有总线适配器都可以使用;总线适配器需单独订购
套件包括服务器模块
2)设计说明书。用于说明本设计与初步设计的重大修改、审批文件号 (必要时摘要说明初步设计重要方案及有关内容),采用的主要设计标准、规 范、施工安装要求,推荐安装规范,提出对仪表防爆、防腐、防冻等保护措 施,采购和成套说明,风险说明,及设计人员认为需要特殊说明的其他问 题。 (3)自控设备表或仪表数据表。所有控制系统及传送到控制室集中检测 仪表、集中检测仪表、就地检测仪表、仪表盘(箱)、半模拟盘、操作站、 工程师站、仪表保温(护)箱、报警装置和大型空气过滤器、减压阀、安全 阀等设备和仪表按其类型分类,并依次填写在自控设备表内。并列出与仪表 有关的工艺、机械数据,对仪表的技术要求、型号及规格等。其中,通用技 术要求在仪表技术说明书中提供。对复杂检测控制系统应另附原理图、系统 图、运算公式、设定值及动作说明等。
SIMATIC IM155-6MF 高性能型,多现场总线接口模块,具有 2 个用于安装 SIMATIC 总线适配器的插槽
与双端口 IM155-6PN/2 高性能型之间的差别:
多协议功能
通过 PROFINET、EtherNet/IP 和 Modbus 协议在以太网控制器上运行
与 IM155-6MF 高性能型兼容(6ES7155-6AU01-0CN0 及以上版本);
例外:等时同步模式和优先启动
共享设备:
通过不同的以太网协议 PROFINET、EtherNet/IP 和 Modbus TCP 从不同的控制器同时访问
本地数据链接:
通过不同的以太网协议 PROFINET、EtherNet/IP 和 Modbus TCP,也可实现控制器之间的确定性、易于组态的数据交换
SIMATIC IM155-6PN/3 高性能型,3 端口接口模块,具有 2 个用于安装 SIMATIC 总线适配器的插槽
与双端口 IM155-6PN/2 高性能型相比的附加功能:
用于安装 SIMATIC 总线适配器的第二个插槽,可使用多达 3 个端口
多 4 个控制器之间的本地 IO 数据耦合
SIMATIC IM 155-6PN 高速型,配有用于连接 SIMATIC 总线适配器的 PROFINET 接口
多 30 个 I/O 模块,还提供有具有全面诊断功能的 PROFIsafe 模块
对于每个模块的输入和输出数据,每种情况下多为 32 字节;对于每个站,多 968 字节(取决于组态)
等时同步模式下具有较高数据刷新速度 (125 µs)
PROFINET 的性能升级