三菱动态密码解锁程序 程序功能 1 本程序第一次使用时设请定授权天数\\\"RunDAYs\\\"如90天,系统会在授权日期 2接近倒数5天时,会有一个付款提醒。 (标签“Approaching_date”这个可以做在HMI报警事件?里输出)。 倒数天数标签”DaysRemain“,可做在HMI显示倒计时。 2 当授权日期达到时标签“CurrentDay”,接通三菱PLC M8034禁止所有输出(这里可以在您自已程序里做任意停机修改)。 3 授权日期达到时随机码立即生成标签“Temp_Date(HMI可做显示)‘,随机码生成时间为15分钟一分(程序里长可改)。 4 随机码生成时会同时计算出临时密码标签”LockCode“,输入这个临时密码后会得到90天的使用授权时间(这里程序中可以改)。 5 当尾款已结清时输入永久授权密码”45638869“(可自己设置)?结束本程序功能 6 本程序占用内存521步,并占用相应的源代码空间6543字节,在编程序里请留意自己PLC存储空间大小。 7本程序注释清晰,未使用三菱随机码功能指令,即本程序可以夸本台使用。 (其它品牌PLC须只ST编程语言即)

最近搞了个三菱动态密码解锁程序,感觉挺有意思的,来和大家分享一下😃

程序功能概述

这个程序主要有这么几个功能:

  1. 首次使用时设定授权天数“RunDAYs”,比如90天。系统会在授权日期接近倒数5天时,通过标签“Approaching_date”在HMI报警事件里输出付款提醒。倒数天数标签”DaysRemain“可在HMI显示倒计时。
  2. 当授权日期达到时,标签“CurrentDay”接通,三菱PLC的M8034禁止所有输出(当然也可以在自己程序里做任意停机修改)。
  3. 授权日期达到时,立即生成随机码,标签“Temp_Date”可在HMI显示,随机码生成时间为15分钟一分(程序里时长可改)。
  4. 随机码生成时会同时计算出临时密码标签”LockCode“,输入这个临时密码后会得到90天的使用授权时间(程序中这个时长也能改)。
  5. 当尾款已结清时,输入永久授权密码”45638869“(可自己设置)结束本程序功能。
  6. 本程序占用内存521步,占用相应的源代码空间6543字节,所以在编程序时要留意自己PLC存储空间大小。
  7. 程序注释清晰,未使用三菱随机码功能指令,能跨平台使用,其他品牌PLC须用ST编程语言。

代码实现与分析

授权天数设定与倒计时

// 设定授权天数
MOV #90, RunDAYs

// 倒计时逻辑
TMR0 K100 // 假设TMR0是定时器,K100是定时时间,单位可能是秒

这里先把授权天数设为90天,然后用定时器TMR0开始倒计时。通过不断递减定时器的值来实现接近授权日期的倒计时功能。当定时器的值达到一定程度,就可以触发付款提醒等操作。

付款提醒与倒计时显示

// 接近倒数5天的判断
IF RunDAYs - DaysRemain <= 5 THEN
    // 触发HMI报警事件输出Approaching_date
    SET Approaching_date
END_IF

// 在HMI显示倒计时
MOV RunDAYs - DaysRemain, DaysRemain

这段代码通过比较授权天数和剩余天数来判断是否接近倒数5天。如果是,就触发HMI报警事件输出付款提醒。同时,实时更新显示在HMI上的倒计时天数。

授权日期到达时的操作

// 授权日期到达判断
IF DaysRemain = 0 THEN
    SET CurrentDay
    // 禁止所有输出(以M8034为例)
    SET M8034
END_IF

当倒计时到0,也就是授权日期到达时,接通标签“CurrentDay”,并设置三菱PLC的M8034禁止所有输出。这里就实现了程序中提到的当授权日期达到时的停机等操作。

随机码生成与临时密码计算

// 随机码生成
RND #1000, Temp_Date // 假设RND是随机数生成指令,生成范围0 - 1000

// 临时密码计算
MUL Temp_Date, 10, LockCode // 简单示例,将随机码乘以10得到临时密码

这里用随机数生成指令生成一个随机码,并显示在标签“Temp_Date”上。然后通过简单的计算(这里只是示例,实际可能更复杂)生成临时密码标签”LockCode“。

永久授权密码结束程序

// 永久授权密码判断
IF Input_Password = 45638869 THEN
    // 结束程序功能的操作
    // 比如复位相关标志位等
    RST All_Flags
END_IF

当输入永久授权密码时,通过比较判断是否等于设定的密码“45638869”。如果相等,就执行结束程序功能的操作,比如复位一些标志位等,让程序回到初始状态或者关闭相关功能。

总结

这个三菱动态密码解锁程序还是挺实用的,通过一系列的功能实现了对程序使用的动态授权和控制。代码实现过程中关键就是要把握好各个功能之间的逻辑关系和时间节点。大家在使用类似程序时,一定要注意PLC的存储空间,别因为程序占用空间过大导致其他问题😉 希望这篇分享对大家有所帮助呀!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐