常州万美软件技术有限公司
摘要:西门子 S7-1500PLC 系统时钟在自动控制系统中的应用非常广泛。文章针对 S7-1500PLC 系统时钟在动态程序加密中的应用进行分析。通过工业现场实例结合TIA V16 对 S7-1500PLC 系统时钟的应用进行分析,希望能为相关专业技术人员提供参考。
关键词:西门子;S7-1500PLC系统时钟;博图软件;加密;
引言:西门子 S7-1500 PLC 是模块化 PLC 系统,它主要由电源模块、CPU 模块、接口模块、信号模块以及通讯模块等模块组成,能够满足大、中、小等不同控制规模的性能控制要求, 所以它在工控行业中的应用非常广。在工业现场控制以及工业生产中,时间是最为常用的参数,其应用非常广泛。非标行业是一个特殊的行业,面对设备发货到现场后迟迟不肯付款的和找各种理由拒绝搪塞验收的客户,必须的采取非常的手段,其中给设备加密定时锁机是一种优选的方案。一来可以提醒客户要遵守规则要求,按时验收,按时付款,二来不会给客户造成任何的损失,三来避免走法律途径冗繁的手续和律师代理费。
1.通过工控电脑进行系统时钟的设置
现在很多现场控制均会使用“工控电脑”,以方便现场对 PLC 程序的上传、下载、监控以及修改等操作。这时我们可以将 PLC 的系统时钟校准为该工控电脑的系统时间即可。具体操作步骤 如下:
第一步:将工控电脑的系统时间修正为当前的北京时间;
第二步:打开西门子博图V16编程软件,然后用网线连接工控电脑与PLC的程序监控PN接口。
第三步:根据如图所示的步骤打开程序窗口,点击“在线和诊断”进入下图所示界面,点击图中的“PG/PC 获取”,软件会自动获取当前工控电脑的时间。
第四步:然后点击“应用”按钮,再点击 CLOSE 退出即可。
到此时,PLC的CPU内系统时钟就会与工控电脑的系统时钟相一致,接下来就可以进行应用系统时间来编写动态码和解密密码程序了。
系统时间数据说明
在西门子1500PLC中,系统时钟数据类型为DATE_AND_TIME(日期和日时钟),格式为BCD。DATE_AND_TIME 数据类型是复合数据类型,使用这种数据类型输入日期和时间时,以 8 个字节 64 位二进制编码的BCD 码格式进行存储(即 4 位 BCD 码代表一个参数)。S7-1500PLC 系统规定DATE_AND_TIME 数据类型最多可以设置的范围是 DT#1990-1-1-0:0:0.0(DT#90-1-1-0:0:0.000,最后两个00 可以省略,如果不是0 就不能省略)到DT#2089-12-31- 23: 59:59.999。
下表列出了数据类型 DATE_AND_TIME的属性:
长度(字节) | 格式 | 取值范围 | 输入值示例 |
8 | 日期和时间 (年-月-日-小时:分钟:秒:毫秒) | 最小值:DT#1990-01-01-00:00:00.000 最大值:DT#2089-12-31-23:59:59.999 | DT#2008-10-25-08:12:34.567,DATE_AND_TIME#2008-10-25-08:12:34.567 |
下表列出了数据类型DATE_AND_TIME的结构:
字节 | 内容 | 取值范围 |
0 | 年 | 0 到 99(1990 年到 2089 年) |
1 | 月 | BCD#1 到 BCD#12 |
2 | 日 | BCD#1 到 BCD# 31 |
3 | 小时 | BCD#0 到 BCD#23 |
4 | 分钟 | BCD#0 到 BCD#59 |
5 | 秒 | BCD#0 到 BCD#59 |
6 | 毫秒MSEC 的两个最高有效位 | BCD#0 到 BCD#999 |
7 (4MSB) 1) | MSEC 的最低有效位 | BCD#0 到 BCD#9 |
7 (4LSB) 2) | 星期 | BCD#1 到 BCD#7 BCD#1 = 星期日 ... BCD#7 = 星期六 |
|
三、动态加密的触摸屏画面组态
首先需要在触摸屏上组态一个系统授权、试用画面。画面上需要关联的变量有:
随机码:此码即为根据系统时钟生成的动态码,16进制数据类型,共有3个字节,每秒都不一样,保证每次生成的都是不一样的动态码。
试用码:此码为根据随机码经过加密算法生成而来,由于加密算法的存在如果不知道怎么加密的,现场人员就无法私自获得授权,必须经过工程师的授权才能解除时间到期后的限制,保障生产厂家的利益。
随机码生成按钮:此按钮的作用是按下后可立即生成一组随机码,而不用等到试用时间到期之后再延期试用。因为往往在正常生产过程中,突然地触发试用到期信号导致的非计划停机有可能导致重大的经济损失。所以往往需要提前的解锁需求。
永久激活码:当客户履行合同按期付款之后须告知客户的永久激活码,此密码输入后可永久的使用,断开授权激活码的程序段运行。
试用时间设定:在工程调试结束之后,往往客户并不能按照约定履行付款,此时工程师需要设定一个试用期限,再此时间段内客户可以完全使用系统设备。当到达此设定值且没有提前清零已累计的使用时间的情况下。程序会输出一个试用时间到期信号。在实际工程中,可利用此信号强制关机或者限制系统的一部分功能。
已试用时间显示:需要实时显示已使用时间,以此来提醒客户还有多少试用剩余时间。
四、动态加密的程序实现
当调试人员在项目调试完成后,设置一个到计时天数,当天数到达后置位停机变量,设备锁机,HMI上跳出解锁界面,这个时候点击HMI上的生成随机码按钮,生成随机码然后客户把随机码告诉给调试人员,调试人员根据随机码计算出解密密码告诉给客户解密(调试人员是需要知道这个解密算法)。
图2、计时加密模块
程序完成步骤
首先调用RD_SYS_T功能块读取日期时间存入到FB块本地临时变量“系统时间”中。
通过累计读取出来的“系统时间”变量中的第7个字节“秒”字节来做时间累计。秒数超过59发送上升沿秒分钟自累计1,分钟数超过59小时数发生上升沿自累计1,小时数超过23发出上升沿天数自累计1。所有已使用时间的累积都由系统时钟所累积产生。
通过程序内累计的运行时间与触摸屏上工程师设定试用时间相比较。当试用时间与程序累计时间一致时置位“试用时间到”变量。
使用时间到触发后,程序根据触发时瞬间的实时数据小时、分钟、秒三个字节赋值到本地单独变量中以便后续程序调用。此时触摸屏上同步显示出触发瞬间的小时、分钟、秒数据,以16进制的数据类型显示。此时显示出来的即为当前的随机动态码。
有了随机码之后需要设计一个独一无二且旁人很难猜测到的解密密码。加密算法可根据喜好设计,原则上与随机码不存在明显的规律即可。笔者按照将三个字节中的位分别循环右移3、5、7位来进行解密密码的加密。例如:当动态码为09-09-31时,经过加密之后的验证码为21-48-62。解密密码和随机码同时生成。
当客户需要延长试用天数或者使用时间到达设定时间之后或者操作人员点击触摸屏上的随机码生成按钮,屏幕上就会弹出当前的随机动态码。此时客户人员只需要将随机码告知调试人员,调试人员打开程序仿真功能,将动态随机码输入程序中分别进行循环右移3、5、7位的操作即可得出验证码。然后将验证码告知客户,客户根据新的验证码就可以清零已使用时间。
至此,基于西门子S7-1500系统时钟设计的动态加密程序已设计完成。
结论:通过此方法设计的动态加密催款程序功能方便实用易操作,可广泛的应用于非标设备的控制中。随机码与验证码的加密处理大大的较少了被客户破解的可能性,可以很大的保护非标设备厂家的经济利益。
结束语:总之,随着国家工业 4.0 战略的提出,自动化系统和基于西门子1500PLC的非标设备的应用将越来越广泛,系统时钟的智能应用也将会越来越广泛。本文也是仅仅列举了一种使用场景。系统时钟还在班次产量统计、能源节约和提升产能等一些列的场景中都有着灵活的应用。所以,掌握好这部分知识,将会对相关专业人士在以后的工作中灵活的进行智能控制起到很大的作用。
参考文献:
[1]罗时俊,丁勇杰.浅析西门子S7-1500PLC系统时钟在自动化控制系统中的应用[J].汽车实用技术,2020(01):67-73+144.DOI:10.16638/j.cnki.1671-7988.2020.01.021.
[2]张孝军.西门子S7-1500在闸门控制系统中的应用[J].电视技术,2019,43(18):70-73.DOI:10.16280/j.videoe.2019.18.027.
[3]朱世刚. 西门子的S7-1500在连蒸控制系统中的应用[C]//.2019中国制浆造纸自动化技术与智能制造研讨会论文集.[出版者不详],2019:80-81.
[4]陈勇.西门子S7-1500在氧化钒焙烧配料控制系统中的应用[J].电气传动,2014,44(09):74-76+80.DOI:10.19457/j.1001-2095.2014.09.016.