admin管理员组文章数量:1034036
客户不付设备款咋整?三菱PLC多期动态密码锁机方法分享
「三菱 FX5U 系列 PLC 多期动态密码锁机方法详解」
上文我们介绍了以西门子 1200/1500 系列 PLC 为例的 5 种锁机方法,不少朋友反馈这些内容非常实用。今天,我们将聚焦于三菱系列 PLC 的锁机方法。
实际上,各类 PLC 锁机程序的逻辑框架大体相似,主要差异在于文本语言的编写方式以及所使用的指令有所不同。而本次,我们将以三菱 FX5U 系列 PLC 为例,详细介绍多期动态密码锁机的实现方法。
「一、锁机程序逻辑」
此次编写的锁机程序采用 ST 语言,借助 TRD 指令来获取本机时间。程序中的功能块会对预设期限和当前期限进行逐一比对。若发现存在超过当前期限且期限设置不为零的情况,便会触发输出锁动作。
「二、解锁方式」
在解锁方式上,本程序提供了两种途径:
- 「超级密码解锁」:超级密码可在功能块(FB)内进行设置。当输入超级密码并置位解锁时,程序会将所有设置期限全部清零,同时复位输出锁。
- 「动态码解锁」:输入动态码对应的解锁密码并置位解锁,此时,程序会将当前日期及之前所有设置期限进行清零,并复位输出锁。
「三、处理逻辑功能块」
以下是功能块局部标签地址的表格:
标签名称 | 数据类型 | 属性 | 描述 |
---|---|---|---|
VAR1 | 字有符号 | VAR | |
SPow | 双字[有符号] | VAR | 超级密码 |
CurrDate | 双字[有符号] | VAR_OUTPUT | 当前时间 |
Year | 字[有符号] | VAR_INPUT | 当前年 |
TellClock | 字[有符号] | VAR | 计时 |
Mon | 字[有符号] | VAR_INPUT | 当前月 |
Day | 字[有符号] | VAR_INPUT | 当前日 |
VarRand | 字[有符号] | VAR | |
RandCode | 字[有符号] | VAR_OUTPUT_RETAIN | 随机码 |
UnLock | 位 | VAR_INPUT | 锁定码 |
InCode | 双字[有符号] | VAR_INPUT | 解锁码 |
SetDate | 双字有符号 | VAR_IN_OUT | 设定时间 |
PowErr | 位 | VAR_OUTPUT | 密码错误 |
OutLock | 位 | VAR_OUTPUT_RETAIN | 输出锁 |
「功能块源码」
代码语言:javascript代码运行次数:0运行复制// 解锁方式:输入码 = 随机码 * 5 + 1,期限日期保存区占用20个字
// 超级密码
SPow := 887899;
// 动态码更新时间单位秒
Var1[0] := 600;
CurrDate := INT_TO_DINT(Year) * 10000 + INT_TO_DINT(Mon) * 100 + INT_TO_DINT(Day);
INCP(SM412, TellClock);
RND(TellClock >= Var1[0] OR SM402, VarRand);
MOV(TellClock >= Var1[0] OR SM402, ABS(VarRand + RandCode), RandCode);
MOV(TellClock >= Var1[0], 0, TellClock);
// 解锁
DMOV(UnLock AND InCode = INT_TO_DINT(RandCode) * 5 + 1 AND CurrDate >= SetDate[VAR1[1]], 0, SetDate[VAR1[1]]);
RST(UnLock AND InCode = INT_TO_DINT(RandCode) * 5 + 1 AND CurrDate >= SetDate[VAR1[1]], OutLock);
OUT(UnLock AND InCode <> INT_TO_DINT(RandCode) * 5 + 1, PowErr);
// 超级解锁
DFMOV(UnLock AND InCode = SPow, 0, 10, SetDate[0]);
RST(UnLock AND InCode = SPow, OutLock);
// 对比当前日期
SET(CurrDate >= SetDate[VAR1[1]] AND SetDate[VAR1[1]] <> 0, OutLock);
INC(SM400, VAR1[1]);
MOV(VAR1[1] >= 10, 0, VAR1[1]);
「五、主程序」
主程序使用TRD指令获取系统时间,并设定期限日期,和设定密码
「注」以上代码仅为示例,实际使用时请根据具体情况进行调整。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-03-27,如有侵权请联系 cloudcommunity@tencent 删除plcvar程序框架系统客户不付设备款咋整?三菱PLC多期动态密码锁机方法分享
「三菱 FX5U 系列 PLC 多期动态密码锁机方法详解」
上文我们介绍了以西门子 1200/1500 系列 PLC 为例的 5 种锁机方法,不少朋友反馈这些内容非常实用。今天,我们将聚焦于三菱系列 PLC 的锁机方法。
实际上,各类 PLC 锁机程序的逻辑框架大体相似,主要差异在于文本语言的编写方式以及所使用的指令有所不同。而本次,我们将以三菱 FX5U 系列 PLC 为例,详细介绍多期动态密码锁机的实现方法。
「一、锁机程序逻辑」
此次编写的锁机程序采用 ST 语言,借助 TRD 指令来获取本机时间。程序中的功能块会对预设期限和当前期限进行逐一比对。若发现存在超过当前期限且期限设置不为零的情况,便会触发输出锁动作。
「二、解锁方式」
在解锁方式上,本程序提供了两种途径:
- 「超级密码解锁」:超级密码可在功能块(FB)内进行设置。当输入超级密码并置位解锁时,程序会将所有设置期限全部清零,同时复位输出锁。
- 「动态码解锁」:输入动态码对应的解锁密码并置位解锁,此时,程序会将当前日期及之前所有设置期限进行清零,并复位输出锁。
「三、处理逻辑功能块」
以下是功能块局部标签地址的表格:
标签名称 | 数据类型 | 属性 | 描述 |
---|---|---|---|
VAR1 | 字有符号 | VAR | |
SPow | 双字[有符号] | VAR | 超级密码 |
CurrDate | 双字[有符号] | VAR_OUTPUT | 当前时间 |
Year | 字[有符号] | VAR_INPUT | 当前年 |
TellClock | 字[有符号] | VAR | 计时 |
Mon | 字[有符号] | VAR_INPUT | 当前月 |
Day | 字[有符号] | VAR_INPUT | 当前日 |
VarRand | 字[有符号] | VAR | |
RandCode | 字[有符号] | VAR_OUTPUT_RETAIN | 随机码 |
UnLock | 位 | VAR_INPUT | 锁定码 |
InCode | 双字[有符号] | VAR_INPUT | 解锁码 |
SetDate | 双字有符号 | VAR_IN_OUT | 设定时间 |
PowErr | 位 | VAR_OUTPUT | 密码错误 |
OutLock | 位 | VAR_OUTPUT_RETAIN | 输出锁 |
「功能块源码」
代码语言:javascript代码运行次数:0运行复制// 解锁方式:输入码 = 随机码 * 5 + 1,期限日期保存区占用20个字
// 超级密码
SPow := 887899;
// 动态码更新时间单位秒
Var1[0] := 600;
CurrDate := INT_TO_DINT(Year) * 10000 + INT_TO_DINT(Mon) * 100 + INT_TO_DINT(Day);
INCP(SM412, TellClock);
RND(TellClock >= Var1[0] OR SM402, VarRand);
MOV(TellClock >= Var1[0] OR SM402, ABS(VarRand + RandCode), RandCode);
MOV(TellClock >= Var1[0], 0, TellClock);
// 解锁
DMOV(UnLock AND InCode = INT_TO_DINT(RandCode) * 5 + 1 AND CurrDate >= SetDate[VAR1[1]], 0, SetDate[VAR1[1]]);
RST(UnLock AND InCode = INT_TO_DINT(RandCode) * 5 + 1 AND CurrDate >= SetDate[VAR1[1]], OutLock);
OUT(UnLock AND InCode <> INT_TO_DINT(RandCode) * 5 + 1, PowErr);
// 超级解锁
DFMOV(UnLock AND InCode = SPow, 0, 10, SetDate[0]);
RST(UnLock AND InCode = SPow, OutLock);
// 对比当前日期
SET(CurrDate >= SetDate[VAR1[1]] AND SetDate[VAR1[1]] <> 0, OutLock);
INC(SM400, VAR1[1]);
MOV(VAR1[1] >= 10, 0, VAR1[1]);
「五、主程序」
主程序使用TRD指令获取系统时间,并设定期限日期,和设定密码
「注」以上代码仅为示例,实际使用时请根据具体情况进行调整。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-03-27,如有侵权请联系 cloudcommunity@tencent 删除plcvar程序框架系统本文标签: 客户不付设备款咋整三菱PLC多期动态密码锁机方法分享
版权声明:本文标题:客户不付设备款咋整?三菱PLC多期动态密码锁机方法分享 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1748114272a2255485.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论