汇川AM中型PLC程序汇川IT7000系列触摸屏程序 自己写的设备分期付款程序,汇川中型PLC_分期付款程序 1、包含PLC时间的读取与设置。 2、使用随机滚动码计算解加密3天、7天、1个月、三个月、半年、一年、永久解除灵活设置。 3、包含标准的触摸屏模板程序触摸屏脚本程序最近在工控项目里搞了个分期付款的PLC程序客户要求设备按时间阶梯解锁功能。用汇川AM401系列PLC搭IT7000触摸屏整了个挺有意思的时间加密机制分享几个关键点。时间处理是基础中的基础先看PLC端的时钟操作//读取PLC实时时钟 T_Now : RTC_GetTime(); //设置设备初始运行时间调试用 IF b_SetTime THEN RTC_SetTime(t_SetTime); b_SetTime : 0; END_IF这里用RTC指令直接操作硬件时钟调试时建议在触摸屏做个时间校准界面。注意时钟电池得保持供电有次现场调试忘记换电池设备运行时间直接回到2000年...核心的滚动码算法用了线性同余法混搭时间参数每天凌晨自动生成FUNCTION GenerateCode : DWORD VAR_INPUT n_Seed : DWORD; END_VAR VAR dw_Temp : DWORD; END_VAR dw_Temp : n_Seed * 214013 2531011; GenerateCode : (dw_Temp SHR 16) AND 0x7FFF;这个随机数发生器在触摸屏和PLC里同步跑种子数用年月日组合生成。比如当天是2023年8月15日种子就是230815保证每天生成不同的初始码。汇川AM中型PLC程序汇川IT7000系列触摸屏程序 自己写的设备分期付款程序,汇川中型PLC_分期付款程序 1、包含PLC时间的读取与设置。 2、使用随机滚动码计算解加密3天、7天、1个月、三个月、半年、一年、永久解除灵活设置。 3、包含标准的触摸屏模板程序触摸屏脚本程序触摸屏这边做了个带自动换色的验证界面脚本处理是关键Sub btn_Validate_Click() Dim currentCode currentCode SmartTags(PLC_CurrentCode) If txt_InputCode.Text currentCode Then SmartTags(PLC_ValidDays) cmb_Period.SelectedValue MsgBox 解锁成功, vbInformation Else ShakeAnimation(me) PlaySound(error.wav) End If End Sub验证失败时加了抖动特效和音效反馈现场操作工反馈比普通提示有效70%——毕竟谁也不想听报警声连续响三次。时间锁的逻辑处理用了状态机时间戳比对CASE n_State OF 0: //待激活 IF dw_ActivateCode dw_CurrentCode THEN t_StartTime : RTC_GetTime(); n_State : 1; END_IF 1: //运行中 IF RTC_GetTime() t_StartTime t_ValidPeriod THEN FORCE_STOP(); END_IF END_CASE有意思的是到期前2小时设备会进入呼吸灯模式触摸屏弹出剩余时间提示。有个客户说这个功能让他想起网游点卡到期提醒倒是挺符合分期付款的心理暗示。调试时发现个坑PLC的RTC和触摸屏时钟最好做强制同步有次因为两者时区设置不同步导致提前3小时锁机。后来加了每周自动对时功能才彻底解决。