『7x24小时有问必答』
不依靠PLC程序,威纶通 触摸屏自带的宏指令也能实现设备分期密码设定
下面我们来看看HMI是怎么实现分期密码设置的
  初始化
就是先定义哪些数组,哪些位置是用来储存什么数据的,先定义好了后面直接用
▼ ①  macro command
宏指令开始的标志,后面的代码都是属于宏指令里面的内容
▼ ②  short 短整数,6个数组
t1-t6 (6)分别用来储存6期的 年、月、日、时、分、秒
▼ ③  unsigned int C(12) 用来存6个分期解锁密码,每个密码占2个地址
▼ ④  int user(8)   用来寸用户在密码框输入的内容
▼ ⑤  short user NO   bool ON=ture   当前第几期锁机状态到了就用过这个bool来触发锁机动作
▼ ⑥  GetData(c0)“Local HMI”,RW,2020,6)
从HMI的 RW(威纶通掉电保持寄存器,断电不会丢失数据)2020开始读 每个密码占两个地址就是把 RW 2020,RW2022,RW 2024 ,RW 2026 RW 2028,RW 2030 6个密码存到C(0)-C(12)里面
▼ ⑦  GetData(time[0],"LocalHMI",LW,9017,6) 读取HMI 的时间存到数组里面
后面就是把画面设置的每期的截止时间读取出来存到t数组里面
▼ ⑧  GetData (user[o], "Local HMI", LW, 5000, 8)
在HMI上面LW输入框里面输入密码存到user(8)数组里面,后面需要用到
  锁机逻辑
▼ ①  if time[5]>=t1[5] and time[4]>=t1[4] and time[3]>=t1[3] then
• time[5] = 年、time[4] = 月、time[3] = 日
• 条件1:年、月、日都≥设定日期 → 到期
• 条件2:年≥设定年,且月>设定月 → 到期
• 条件3:年>设定年 → 到期
  ▼ ②  SetData(c[0], "Local HMI", RW, 5000, 2):把预设的第一期密码c[0]写入RW5000,覆盖用户之前的密码
  ▼ ③  SetData(ON, "Local HMI", LB, 300, 1):把LB300置为ON,这个位用来触发锁机提示画面
▼ ④  后面的逻辑都是一样的   我们设置了6期,每一期都是 设置3种可能性,年到期; 年和月到期   ;年月日到期 ,一共18种可能性依照同理设置就行
  密码解锁
▼ ①  unsigned int f,h = 290209 //超级密码 f:用来装用户在密码框里输入的数字,后面和密码对比h - h:固定写死的超级密码
▼ ②  unsigned short r=9000 r 一个固定数字9000,后面用来给分期日期地址赋值,相当于“把日期往后推”的续期值
▼ ③  unsigned int c[6] c[6] 装6个分期解锁密码的盒子,c[0]是第1期密码、c[1]第2期…一直到c[5]第6期
▼ ④  bool off = false off 一个开关变量,初始是false(关),后面解锁成功就会把它置为true(开),用来关掉锁机提示画面
从HMI本机的RW2020地址开始,连续读6个数据(RW2020~RW2030)每个数据占两个地址 你可以看分期密码锁机开始的宏指令程序
把读到的6个分期密码,依次放进c[0]~c[5]里
▼ ⑤  GetData(f "Local HMI", LW, 5000, 1)
从HMI本机的LW5000地址读1个数据,你画面里的密码输入框,地址就是LW5000,所以用户输什么,f里就是什么
▼ ⑥    if f == h then
      SetData(off, "Local HMI", LB, 300, 1)
end if
if f == h then:如果用户输入的数字f,等于写死的超级密码h(290209),就执行下面的动作
▼ ⑦  SetData(off, "Local HMI", LB, 300, 1):把变量off的值(false,也就是0),写到HMI的LB300地址里
LB300是什么?前面锁机程序里,到期会把LB300置为ON(1),触发锁机提示画面。现在把它置为OFF(0),锁机提示就会消失,机器就解锁了。
▼ ⑧  第一期密码解锁:
if f==c[0] then:如果用户输入的数字f,等于第1期的解锁密码c[0],就执行下面的动作
SetData(off, "Local HMI", LB, 300, 1):和超级密码一样,把LB300置为OFF,关掉锁机提示,解锁机器
▼ ⑨  后面五期同样的道理
  仿真
触摸屏里面设置不同的密码 当然这个界面一定要隐藏起来 让其他人进不去
设置密码输入框
第一期到期:
我们根据上面的我们第一期设置的密码是:2000,输入2000的密码才能解锁,输入其他除开超级密码以外的密码是不能解锁的
大家如果不会,直接下载套用就行下面有源程序分享


好文分享:以下是所有文章合集,大家需要学习哪方面的内容可以参照学习,后续一直都为大家持续更新




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

本帖子中包含更多资源

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

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

本版积分规则

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

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

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


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