『7x24小时有问必答』
S7-1200-1500案例之生成动态验证码
相关软(硬)件:
1、编程软件:TIA_V15.1
2、仿真软件:PLCSIM
控制要求:
1)生成动态验证码。
本文采用系统时间戳和生成的随机数作为验证码的生成数据源。
本文以生成6位数验证码为例,验证码有效时间为五分钟。
注:程序仅供参考!!!
一、生成动态验证码:
新建项目、新建FB块、添加变量、编写程序、调用FB块、关联变量、下载测试
1、新建FB块(CAPTCHA)、定义块接口参数:
(*块接口参数:
INPUT:
SetCaptcha :(BOOL)生成验证码
User_Captcha :(DINT)用户输入验证码
OUTPUT:
Is_Valid :(BOOL)验证是否成功    
Captcha  :(DINT)生成的验证码;*)
定义块接口参数
2、编写程序:    
生成动态验证码程序
(*
生成动态验证码:Smart Auto Control -- WangQuanFuGui 原创
块接口参数:
INPUT:
SetCaptcha :(BOOL)生成验证码
User_Captcha :(DINT)用户输入验证码
OUTPUT:
Is_Valid :(BOOL)验证是否成功
Captcha  :(DINT)生成的验证码
*)

REGION Edge
    //触发生成验证码
    #SetCaptchaU := #SetCaptcha AND NOT #statEdgeSave;
    #statEdgeSave := #SetCaptcha;
    //获取时间戳
    #TimestampSwap(#TimeStamp);
END_REGION

REGION captcha
    IF #SetCaptchaU THEN
        //触发时间戳    
        #statTimeStamp := #TimeStamp;
        //获取时间戳的后3位数字
        #TimeCaptcha := #TimeStamp MOD 1000;
        //生成99-999之间的随机数
        #RandomNumber := "FC_RandomNumberDINT"(MinValue := 99, MaxValue := 999);
        //生成6位数字验证码
        #Captcha := #statCaptcha := #RandomNumber * 1000 + #TimeCaptcha;
    END_IF;
END_REGION

REGION Valid
    // 用户输入的验证码验证
    IF #User_Captcha = #statCaptcha AND (#TimeStamp - #statTimeStamp <= #CAPTCHA_EXPIRY_TIME) THEN
        #Is_Valid := TRUE;  // 验证成功
    ELSE
        #Is_Valid := FALSE; // 验证失败
    END_IF;
END_REGION
生成动态验证码程序
3、调用程序、下载测试:    
设置时区
调用FB块(CAPTCHA)

下载测试
下载测试
二、时间戳FB块:
1、新建FB块(TimestampSwap):    
自定义数据类型
定义块接口参数
2、编写程序:    
时间戳转换程序
三、随机数FC块:
1、新建FC块(FC_RandomNumberDINT):    
定义块接口参数
2、编写程序:
随机数转换程序
注:程序仅供参考!!!       
(参考文章:S7-1200 -1500 案例之生成随机数    
感谢您点赞、分享、给小编加鸡腿。
如需程序源码请打赏小编或私信留言。
参考文献《STEP7和WinCC Engineering系统手册》
STEP 7 和 WinCC EngineeringV16-V20
链接:https://pan.baidu.com/s/1yndwGyRb0o6o5m6N2SbYAA?pwd=1234 提取码:1234
全集成自动化获取 TIA Portal 相关信息的最短途径!
https://docs.tia.siemens.cloud/
后台回复关键字获取TIA系列软件V11-V20:    
    

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


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