过程是这样实现的。当调试人员在项目调试完成后,设置一个到计时天数,当天数到达后设备锁机,HMI上跳出解锁界面,这个时候点击HMI上的生成解锁码按钮,生成解锁码(解锁码是在动态验证码中挑选8位生成的,在此基础上还可以扩展出随机生成的解锁码......)。然后客户把解锁码告诉给调试人员,调试人员根据解锁码计算出解密密码告诉给客户解密(调试人员是需要知道这个解密算法)。

加密计时模块

程序块数据结构

程序完成步骤
1、首先调用RD_LOC_T读取日期时间存入到FB块本地临时变量中,读取秒数,根据秒数计算天数


2、调用西门子官方随机数生成块,并将随机数加上索引。

3、将随机数按照索引的顺序,放入相应的寄存器,并转成字符并显示在HMI上,可以看到动态的字符变化的炫酷效果。

4、生成解锁码显示在HMI,客户把这个解锁码告诉调试人员,调试人员需要解锁码计算出密码。

5、制作解密算法(这个机密算法根据需要可以自己更改)并强转成DINT类型,并密码核对解密。
6、 解密完成复位状态
源程序请参考博途V15归档文件,在此基础上可以扩展出更复杂的加密解密方法。