[西门子] S7-1200 -1500 案例之生成动态验证码

[复制链接]
查看81767 | 回复0 | 4 天前 | 显示全部楼层 |阅读模式
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 案例之生成随机数)   

(参考文章:S7-1200 -1500 案例之读取设置本地时间)

(参考文章:S7-1200 -1500 案例之日期转换时间戳)

(参考文章:S7-200 SMART案例之生成随机数)

(参考文章:S7-200 SMART 填表与先进先出)

(参考文章:S7-200 SMART 填表与先进后出(LIFO))

感谢您点赞、分享、给小编加鸡腿。






如需程序源码请打赏小编或私信留言。


参考文献《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
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则