今天介绍下动态加密计时催块程序的解决思路及博途V15的源程序供各位朋友参考。
所谓动态密码,就是所用的解密密码是动态实时生成的,也就是说密码是随时间变化而变化。
过程是这样实现的。当调试人员在项目调试完成后,设置一个到计时天数,当天数到达后设备锁机,HMI上跳出解锁界面,这个时候点击HMI上的生成解锁码按钮,生成解锁码(解锁码是在动态验证码中挑选8位生成的,在此基础上还可以扩展出随机生成的解锁码..........)。
客户把解锁码告诉给调试人员,调试人员根据解锁码计算出解密密码告诉给客户解密(调试人员是需要知道这个解密算法)。
加密计时模块
程序块数据结构
程序完成步骤
1、调用RD_LOC_T读取日期时间存入到FB块本地临时变量中,读取秒数,根据秒数计算天数
2、调用西门子官方随机数生成块,并将随机数加上索引。
3、将随机数按照索引的顺序,放入相应的寄存器,并转成字符并显示在HMI上,可以看到动态的字符变化的炫酷效果。
4、生成解锁码显示在HMI,客户把这个解锁码告诉调试人员,调试人员需要解锁码计算出密码。
5、制作解密算法(这个机密算法根据需要可以自己更改)并强转成DINT类型,并密码核对解密。
6、解密完成复位状态