抖音粉丝群1
『7x24小时有问必答』

AI浪潮下的计算机行业——从业者现状与未来展望

前面介绍了如何通过时间函数来设计期限功能,那么随之而来的就需要增加解锁功能,解锁规则如何设定,如果使用固定密码或者是和PLC配合一起解锁也是可以的。
不过最近一直在考虑如何实现动态密码方案,这里所说的动态密码是指:同一个程序,相同现场,相同屏幕,解锁密码也不相同,解锁密码只用一次。本期就介绍一下目前的想法和思路,也希望各位朋友有更好的方案可以留言交流分享。
一 总体思路

1 首先设计一个密码字典,这个密码字典是有键盘上的各种可打印字符组成,比如0-9、a-z、以及特殊符号(这个可以自己根据需要定义)。
2 利用昆仑通态组态软件提供的随机数函数!Rand(x,y),生成8个2位数,至于为什么选择8个2位数?我的想法是把密码字典设计为99个字符的长度的字符串。再利用8个2位随机数,去密码字典中匹配字符作为密码。这样密码长度也为8位,当然如果把密码做得更长,可以生成多个2位随机数。
二 变量准备

密码字典:字符串 初始值为99任意字符组成例:00000000001234567890kaldfaljlj,vxasdADSFAFlk4444AalFkdjaGkFSfSFDG44SG55SRESSTUILILOP;SDSEEWEWWEW!@#7*$jdjnz,mn,zoieoirqu89rhanfln9983afn,fakl,kAOIJi
随机码:字符串 用来存储82位数字的字符串。
密码: 字符串 根据82位数字,从密码字典中查找的8个字符作为密码。
输入密码:字符串  客户输入的解锁码。可以和密码来做比较,检验是否正确。

三 组态设计
1 新建一个组态画面,初始化密码字典

在窗口的启动脚本中通过脚本给变量:密码字典赋值,记住这个字符串一定要在自己电脑的某个地方做记录,以备后续查找密码。
2 添加2个标签,一个用来显示生成的随机数,一个用来显示密码,这两个是用来测试观察用或者根据随机码查找解锁密码用,真正做程序的时候可以不用。如图:

3 生成随机码
添加一个按钮,脚本如下:

'生成8个2位随机数
随机数=!Rand(10,99)
随机码=!Str(随机数)
随机数=!Rand(10,99)
随机码=随机码+!Str(随机数)
随机数=!Rand(10,99)
随机码=随机码+!Str(随机数)
随机数=!Rand(10,99)
随机码=随机码+!Str(随机数)
随机数=!Rand(10,99)
随机码=随机码+!Str(随机数)
随机数=!Rand(10,99)
随机码=随机码+!Str(随机数)
随机数=!Rand(10,99)
随机码=随机码+!Str(随机数)
随机数=!Rand(10,99)
随机码=随机码+!Str(随机数)

4 根据随机码计算密码:
添加按钮获取密码,脚本如下:

位置=!Val(!mid(随机码,1,2))
密码=!mid(密码字典,位置,1)
位置=!Val(!mid(随机码,3,2))
密码=密码+!mid(密码字典,位置,1)
位置=!Val(!mid(随机码,5,2))
密码=密码+!mid(密码字典,位置,1)
位置=!Val(!mid(随机码,7,2))
密码=密码+!mid(密码字典,位置,1)
位置=!Val(!mid(随机码,9,2))
密码=密码+!mid(密码字典,位置,1)
位置=!Val(!mid(随机码,11,2))
密码=密码+!mid(密码字典,位置,1)
位置=!Val(!mid(随机码,13,2))
密码=密码+!mid(密码字典,位置,1)
位置=!Val(!mid(随机码,15,2))
密码=密码+!mid(密码字典,位置,1)

5 增加一个输入框,用来让客户输入解锁码

6 增加一个按钮,来比较密码是否正确。

if !strcomp(密码,输入密码)=0 THEN

密码验证 = 0
ELSE
密码验证 = 1
ENDIF

7 通过一个标签,关联密码验证变量,来提示输入密码是否正确。

四 组态画面

本例介绍的是动态密码的实现方法和逻辑,如果想应用到自己的组态中,还需要根据实际情况,把代码写到相应的地方。

另外:密码字典可以根据自己的情况随时调整,只要有记录就可以。或者把解锁的程序写到一个组态中,需要用的时候,只需要输入客户提供的8位随机码即可。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?获取邀请码

x
主题回复
倒序浏览

564查看1回复

lizhendongplc 2025-9-29 16:13:59
太好了,谢谢  在那下载
发新帖
您需要登录后才可以回帖 登录 | 获取邀请码

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

Copyright 2010-2015. All rights reserved. 

微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码