成都学校网站建设没内涵网站源码
成都学校网站建设,没内涵网站源码,界面设计案例分析,网站如何做关No.4 S7-200密码锁6位密码锁程序S7-200 PLC程序密码锁PLC程序玩过PLC的朋友都知道#xff0c;S7-200虽然年纪大了但依然坚挺在工控现场。今天咱们来搞点实际的#xff0c;手把手教你撸一套六位密码锁逻辑。别被密码算法吓到#xff0c;其实用PLC搞这个比用单片机简单多了&am…No.4 S7-200密码锁6位密码锁程序S7-200 PLC程序密码锁PLC程序玩过PLC的朋友都知道S7-200虽然年纪大了但依然坚挺在工控现场。今天咱们来搞点实际的手把手教你撸一套六位密码锁逻辑。别被密码算法吓到其实用PLC搞这个比用单片机简单多了毕竟咱们有现成的按键模块和输出模块能用。先看整体架构六个数字输入点接0-9按键四个功能键确认、清除、退格、报警复位外加三个状态指示灯绿灯开门、红灯错误、黄灯待机。程序核心就是那个藏着密码的V存储区这里咱们把预设密码存在VB100开始的6个字节里。![密码锁硬件接线示意图]此处应有接线图但咱们直接看代码关键代码第一段——输入检测NETWORK 1 LD SM0.1 MOVB 16#30, VB0 //初始化密码123456 MOVB 16#31, VB1 MOVB 16#32, VB2 MOVB 16#33, VB3 MOVB 16#34, VB4 MOVB 16#35, VB5 NETWORK 2 LD I0.0 //数字键1 EU MOVB 1, VB10[VB20] //VB20作为输入索引 INC VB20这哥们儿就是个看门的保安VB20相当于当前输入位置指针。每次按数字键就把对应数值塞进VB10开始的缓冲区同时指针1。注意这里用了间接寻址VB20的值决定存到哪个位置。No.4 S7-200密码锁6位密码锁程序S7-200 PLC程序密码锁PLC程序密码比对才是重头戏NETWORK 3 LD I0.5 //确认键 A VB20 6 //必须输满6位 M0.0 //触发比对 NETWORK 4 LD M0.0 AW VB10, VB0 AW VB11, VB1 AW VB12, VB2 AW VB13, VB3 AW VB14, VB4 AW VB15, VB5 Q0.0 //绿灯亮起这里玩了个连环套六个比较指令必须全部接通才能触发开门信号。注意AW指令是字比较但咱们存的是单字节实际使用要注意数据类型匹配。有个坑如果密码里有重复数字比如112233程序得确保不会因为数据覆盖出幺蛾子。错误处理也不能少NETWORK 5 LD M0.0 AN Q0.0 //比对失败 TON T37, 50 //错误状态保持5秒 Q0.1 //红灯报警 NETWORK 6 LD I0.6 //清除键 EU MOVB 0, VB20 //复位输入索引 FILL 0, VB10, 6 //清空输入缓存这个FILL指令是清缓存神器从VB10开始连续6个字节写0。实测发现如果用循环复位反而更耗扫描周期直接调用系统指令更高效。最后来个防破解彩蛋——连续错误锁定NETWORK 7 LD Q0.1 CTU C0, 3 //错误计数达3次 LD C0 TON T38, 600 //锁定10分钟 AN T38 M1.0 //锁定期间屏蔽输入 NETWORK 8 LD I0.7 //报警复位 EU RESET C0这个计数器C0就像个暴躁的门卫错三次直接给你锁死十分钟。T38定时器用的是100ms时基所以PT值600对应60秒别被数值迷惑了。实际调试时发现个有意思的现象当快速连按确认键时可能会触发多次比对。后来在确认键信号后加了个1秒的脉冲限制才解决。所以说工业现场的程序防抖防误触比算法本身更重要。这套程序现在还在某仓库大门上服役据说最牛战绩是扛住了电工老王的暴力测试——用螺丝刀同时短接六个输入点结果触发了锁定机制。看来咱们这朴实无华的梯形图还真有点金钟罩的意思。