威纶通触摸屏宏指令分期付款程序(全系列支持)- 12期自动生成密码与锁机时间提示

威綸通触摸屏宏指令做的分期付款程序(支持威纶通全系列),一共12期,每期和终极密码自动生成,具有提前提示剩余锁机时间功能,从剩余5天提示,格式为天时分秒。

这个分期锁机程序的核心在于时间计算和密码验证。我发现在实际项目中,很多同行处理时间差时容易忽略闰年问题,这里直接用系统时间戳做减法更稳妥。先看时间计算部分的实现:

macro_command main() // 获取首次运行时间戳 long installTime = GetData([PLC]D1000) if installTime == 0 then installTime = GetCurrentTimestamp() SetData(installTime, "[PLC]D1000", 4) endif // 计算剩余天数 long currentTime = GetCurrentTimestamp() long remainSeconds = installTime + 31104000 - currentTime //12个月=31104000秒 int daysLeft = remainSeconds / 86400 // 倒计时5天时启动提示 if daysLeft <=5 then ShowRemainTime(remainSeconds) endif // 锁机检测 if remainSeconds <=0 then SystemLock() endif end macro_command

这段代码有几个关键点:1.使用D1000寄存器固化安装时间 2.直接处理时间戳避免日期转换错误 3.倒计时计算精确到秒级。注意31104000是12个月的总秒数(360天),实际应该用365天,但工业场景中习惯按每月30天计算。

密码生成算法是项目的核心机密,这里分享简化版的动态密码生成逻辑:

function GeneratePassword(int stage) char[6] dynamicCode long seed = GetCurrentTimestamp() / 86400 //每日更新种子 // 混淆算法 int baseNum = (stage * 16807) % 32749 int magicNum = (seed ^ 0x3D9F3B1D) & 0xFFFF int passcode = (baseNum + magicNum) % 1000000 // 补足6位数字 StringFormat(dynamicCode, "%06d", passcode) return dynamicCode end function

这个算法的精妙之处在于:每日密码种子变化 + 分期数混淆 + 位运算加密。其中16807是线性同余生成器的经典乘数,0x3D9F3B1D这个魔数经过多次测试验证,能有效防止暴力破解。

界面提示部分需要处理时间格式转换,这里分享秒数转天时分秒的实用函数:

function ShowRemainTime(long totalSeconds) int days = totalSeconds / 86400 int hours = (totalSeconds % 86400) / 3600 int minutes = (totalSeconds % 3600) / 60 int seconds = totalSeconds % 60 // 更新触摸屏显示元件 SetData(days, "[HMI]RemainDays", 2) SetData(hours, "[HMI]RemainHours", 2) SetData(minutes, "[HMI]RemainMinutes", 2) SetData(seconds, "[HMI]RemainSeconds", 2) // 闪烁提醒 if days ==0 and hours < 24 then BlinkControl(LC_Alert, 500, RED) endif end function

实际部署时要注意:1.触摸屏元件地址需要对应HMI变量表 2.闪烁效果需要提前在HMI元件属性中配置 3.时间同步建议增加NTP校时功能。遇到过现场设备时钟电池失效导致的时间回溯问题,后来增加了RTC异常检测机制才解决。

程序里还藏着个彩蛋:当连续三次输入错误密码时,系统不会立即锁死,而是弹出技术支持的联系方式——毕竟工业现场最重要的是保障生产连续性。这个设计让我们的方案在招标时获得不少加分。

测试阶段用宏指令模拟了十年时间加速测试,结果发现时间戳溢出问题。后来改用双字存储时间戳(范围到2147年),足够用到设备报废了。有些同行用BCD码处理时间,其实直接操作时间戳更高效可靠。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1136657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玩转汽车电子】手把手拆解MPC5634底层驱动黑盒子

NXP MPC5634芯片底层驱动simulink封装库折腾过嵌入式开发的兄弟都知道&#xff0c;汽车电子这行的寄存器配置简直比相亲还麻烦。去年给某主机厂做ECU项目时&#xff0c;笔者被NXP MPC5634的寄存器手册折磨得差点秃头——直到发现了Simulink封装库这个外挂。先看个真实案例&…

IEEE RBTS BUS4标准系统 (roy billinton test system)

IEEE RBTS BUS4标准系统 (roy billinton test system) Matlab/simulink仿真 该模型自己搭建(Matlab 2016a)&#xff0c;与标准参数一致&#xff0c;可观测电压&#xff0c;潮流。 还可接入各类故障、DG等最近在折腾电力系统仿真&#xff0c;发现IEEE RBTS BUS4真是个不错的练手…

JFET放大电路耦合方式:电容耦合设计入门详解

JFET放大电路中的电容耦合设计&#xff1a;从原理到实战的完整指南 你有没有遇到过这样的问题——明明每一级放大器单独测试都表现良好&#xff0c;可一旦级联起来&#xff0c;输出信号就失真、漂移&#xff0c;甚至完全“罢工”&#xff1f; 这很可能不是器件选错了&#xff…

2026选产康管理系统,盯紧玄微云这 3 个核心优势准没错

随着“她经济”崛起与健康观念升级&#xff0c;产康行业迎来规模化增长&#xff0c;市场规模年复合增长率稳定在较高水平。与此同时&#xff0c;90后、00后产妇成为消费主力&#xff0c;对服务专业化、流程标准化的需求显著提升&#xff0c;传统人工管理模式已难以适配会员管理…

三菱线割CAMagic: 先进线割软件的强大功能与应用

三菱线割CamMagic线割软件 车间里那台三菱线切割机突然报警了&#xff0c;老师傅叼着烟眯眼看参数表&#xff1a;"这切割路径参数不对啊&#xff0c;再改改。"我盯着CamMagic软件界面发愁——每次手动调参数得浪费两包烟的时间。这时候才发现&#xff0c;会用线割软…

电动汽车高压电机控制器360v平台:开源软件源代码及强大调试工具全套资料

电动汽车高压电机控制器360v乘用车平台&#xff0c;某知名电控厂家主推 产品&#xff0c;软件源代码&#xff0c;软件FOC矢量控制算法&#xff0c;boot源码&#xff0c;全部开源&#xff0c;强大的上位机调试工具带实时波形显示&#xff0c;原理图。 资料完全配套。蹲实验室熬了…

【详解】利用条件运算符的嵌套来完成此题:学习成绩=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

使用Java解决&#xff1a;利用条件运算符的嵌套来完成成绩等级划分在编程中&#xff0c;条件运算符&#xff08;也称为三元运算符&#xff09;是一种简洁的方式来实现条件判断。本文将通过一个具体的例子——根据学生的分数来划分成绩等级&#xff0c;来展示如何在Java中使用条…

大模型应用层开发必备!政务网站资讯日报自动化实战:从采集到LLM生成的全链路落地!

除了基础的信息采集&#xff0c;这个项目还尝试了一些大模型能解锁的新玩法&#xff1a;用 LLM 对多篇新闻做摘要聚合、用多模态模型生成可视化日报图、把同一份信息源输出成不同形态&#xff08;网站、钉钉群、领导简报&#xff09;。从这个角度看&#xff0c;信息采集只是知识…

Nginx 生成、配置SSL证书让浏览器信任证书

文章目录 1.生成SSL证书 1.1生成自签名证书(生成证书方式一)1.2.模拟CA机构方式生成证书(生成证书方式二&#xff0c;推荐) 3.1 生成 CA 的私钥ca.key和自签名证书ca.crt&#xff1a;3.2 生成服务器私钥 server.key&#xff1a;3.3 生成服务器证书请求文件server.csr&#xff…

三相无刷电机FOC控制器及驱动板资料集(含原理图、PCB图纸及源代码,经生产验证,中文注释版)

三相无刷电机foc控制器资料。 三相无刷电机驱动板资料&#xff0c;包含原理图&#xff0c;可直接投产PCB图纸&#xff0c;源代码。 经过生产验证的资料&#xff0c;非学习板&#xff0c;按照资料不用修改可直接产品。 代码中文注释&#xff0c;适合动手能力强或者有研究能力的可…

最新面向自然科学领域机器学习与深度学习技术

随着观测技术、数值模拟与计算基础设施的迅猛发展&#xff0c;地球系统科学、生态学、环境科学等自然科学领域正迈入“大数据智能模型”驱动的新阶段。传统的统计建模方法虽具可解释性&#xff0c;却难以应对高维、非线性、多源异构的复杂自然系统&#xff1b;而以机器学习和深…

GaussDB-Vector 从入门到精通:面向大模型的大规模持久化实时向量数据库,收藏这一篇就够了!

随着大语言模型&#xff08;LLM&#xff09;应用的爆发式增长&#xff0c;如何为其提供高效、可靠且可扩展的“长期记忆”已成为关键挑战。向量数据库通过存储和检索高维向量&#xff0c;成为解决LLM幻觉问题和降低推理成本的核心组件。然而&#xff0c;现有向量数据库系统往往…

多通道I2S音频传输延迟问题解析:深度剖析成因与对策

多通道I2S音频传输为何总是“慢半拍”&#xff1f;一文讲透延迟根源与实战调优你有没有遇到过这样的场景&#xff1a;在做8麦克风阵列波束成形时&#xff0c;发现某些通道的数据明显滞后&#xff0c;导致声源定位偏移&#xff1b;车载音响系统里&#xff0c;后排扬声器的声音听…

如何查看电脑上是ros1还是ros2呢?

问题描述&#xff1a;如何查看电脑上是ros1还是ros2呢&#xff1f;问题解答&#xff1a;要查看你的电脑上安装的是 ROS 1 还是 ROS 2&#xff0c;可以通过以下几种方式来确认&#xff1a;1. 检查环境变量ROS 通常会在环境变量中设置一些标识&#xff0c;可以通过查看终端中的环…

基于 YOLOv8 的智能杂草检测识别实战 [目标检测完整源码]

基于 YOLOv8 的智能杂草检测识别实战 [目标检测完整源码] 引言&#xff1a;为什么杂草识别是智慧农业中的“硬问题”&#xff1f; 在智慧农业场景中&#xff0c;杂草识别一直被认为是目标检测中难度较高的一类任务&#xff0c;原因主要集中在以下几点&#xff1a; 杂草与作物…

效率对比:传统破解vs快马AI生成IDEA试用方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 请开发一个IntelliJ IDEA试用期管理效率对比工具&#xff0c;要求&#xff1a;1.自动记录手动破解各步骤耗时 2.记录AI方案生成和执行时间 3.对比成功率统计 4.系统资源占用分析 5…

普通RAG已不够看!Agentic RAG才是大模型落地的未来!一文讲透从原理到企业级架构。

导言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;LLM&#xff09;已经从“能说会道”逐步迈向“能思善行”。然而&#xff0c;传统的大模型在面对复杂任务时仍存在知识滞后、缺乏上下文记忆、无法自主调用工具等局限。为了解决这些问题&#xff0c;检索增强生…

AI如何助力棋牌游戏开发:从代码生成到智能优化

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个基于元开棋牌送6体验金币官网的棋牌游戏项目&#xff0c;包含以下功能&#xff1a;1. 用户注册登录系统&#xff1b;2. 金币赠送和消耗逻辑&#xff1b;3. 多种棋牌游戏玩…

边缘设备模型加载提速

&#x1f493; 博客主页&#xff1a;借口的CSDN主页 ⏩ 文章专栏&#xff1a;《热点资讯》 边缘设备模型加载提速&#xff1a;能耗优化与未来路径目录边缘设备模型加载提速&#xff1a;能耗优化与未来路径 引言&#xff1a;边缘AI的加载瓶颈与核心价值 现在时&#xff1a;主流技…

基于 YOLOv8 的人体与行人检测智能识别实战 [目标检测完整源码]

基于 YOLOv8 的人体与行人检测智能识别实战 [目标检测完整源码] 引言&#xff1a;为什么“行人检测”仍然是工程中的关键基础能力&#xff1f; 在安防监控、智慧城市、公共空间管理等应用中&#xff0c;几乎所有高层视觉任务——如人数统计、行为分析、异常检测——都建立在一…