PLC 案例实操:催尾款必备!4 步拿捏定时锁机 动态密码,逻辑简单一看就会


定时锁机就是 PLC 里的 “催款小手段”—— 看着就是读个时间、算个密码,其实是给设备上了个 “时间闹钟”:到了约定日子自动锁机,尾款结清了输个密码就能解开,一点不麻烦。新手跟着弄,很容易搞懂 PLC“读时间、判时间、锁设备” 这一套逻辑~

一、定时锁机控制需求(功能定义)

1. 时间读取:PLC 自动获取本地实时时间,并拆分为年、月、日、时、分、秒等具体信息

2. 定时锁机:预设锁机时间,实时时间超过该时间时,自动触发“程序锁机状态”,锁定设备核心功能;

3. 动态密码:锁机后,PLC根据当前分钟数生成动态密码(1分钟一变),只有输入正确密码才能解锁;

4. 状态自锁:锁机状态触发后保持自锁,直到输入正确密码才解除,避免断电重启后失效。

二、DB44点位表(硬件与数据对应)

三、4步编出定时锁机程序(逻辑拆解

步骤1:读取PLC本地时间(程序段1)

核心逻辑:通过RD_LOC_T指令读取 PLC 实时时间,并将其存入数据块中备用

操作步骤:

1. 调用 RD_LOC_T 指令(读取本地时间指令),将使能端(EN)置1,触发时间读取;

2. 指令的 OUT 端连接“时间读取.时间”(DBX0.0),把实时时间存入该DTL类型变量;

3.  RET_VAL 端连接“时间状态位”(DBX12.0),0代表时间读取正常,非0代表读取异常。

步骤2:定时锁机触发逻辑(程序段2)

核心逻辑:对比实时时间和预设锁机时间,超过则触发锁机状态。

操作步骤:

1. 把 “密码输入正确”(DBX32.0)的常闭触点,与实时时间的年、月、日、时、分、秒分别和预设锁机时间做等于判断,串联成触发条件

2. 当实时时间≥预设锁机时间,且密码未验证通过时,触发 STP 指令(置位锁机状态),将“程序锁机状态”(DBX26.0)置为TRUE,锁定设备功能;

3. “程序锁机状态”置为TRUE后保持自锁,直到密码验证通过才复位。

步骤3:生成动态解锁密码(程序段3)

核心逻辑:根据当前分钟数,用计算指令生成1分钟一变的动态密码。

操作步骤:

1. 调用 CALCULATE 计算指令,将“时间读取.MINUTE”(DBB6)接入 IN1 ,预设参数9接入 IN2 、5接入 IN3 、3接入 IN4 ;

2. 指令的计算公式设为 OUT = ((IN1+IN3)*(IN2 - IN4)) ,即 (分钟数+5)*(9-3) ,结果存入“生成密码”(DBW28);

3. 因为分钟数1分钟变化一次,所以密码会自动更新,避免固定密码被破解。

步骤4:密码验证解锁逻辑(程序段3续)

核心逻辑:对比输入密码和生成密码,一致则解除锁机状态。

操作步骤:

1. 把“生成密码”(DBW28)和“输入密码”(DBW30)做等于判断;

2. 当两者相等时,触发“密码输入正确”(DBX32.0)置为TRUE,同时复位“程序锁机状态”(DBX26.0),解除设备锁定;

四、定时锁机核心逻辑(新手记2点)

1. 时间判定是基础:用 RD_LOC_T 读取的时间要拆解成具体的年、月、日等变量,才能和预设时间做精准对比,这是所有定时类项目的通用逻辑;

2. 动态密码防破解:用分钟数生成1分钟一变的密码,比固定密码更安全,而且计算逻辑简单,新手也能快速修改参数适配不同设备。

扎扎实实学技术,每天进步一点点!尽最微薄之力帮助更多的人!