抖音粉丝群1
『7x24小时有问必答』

一、任务目标
做自动化,时间是最常被忽略、又最容易踩坑的变量——设备几点开机、班次怎么切换、定时任务怎么触发,全靠时钟指令撑着。

本任务用时钟指令读取实时时钟,带你搞清楚两件事:

系统时间与本地时间的组态——PLC内部跑的是什么时区,和现场对不对得上
读写时钟指令的使用——怎么读、怎么写、读出来是什么格式

二、任务描述
一个高速公路隧道风机控制系统,实现以下功能要求:

1. 基本控制逻辑:
     - 系统启动后,风机按四天循环模式运行,具体为:
        * 第一天:7:00-23:00 1#、2#运行;8:00-23:00 3#运行;23:00-7:00 3#、4#运行
        * 第二天:7:00-23:00 3#、4#运行;8:00-23:00 1#运行;23:00-7:00 1#、2#运行
        * 第三天:7:00-23:00 1#、2#运行;8:00-23:00 4#运行;23:00-7:00 3#、4#运行
        * 第四天:7:00-23:00 3#、4#运行;8:00-23:00 2#运行;23:00-7:00 1#、2#运行
     - 四天后循环重复第一天的运行模式

2. 故障处理功能:
     - 任意一台电机出现故障时,该台电机应立即停止运行
     - 对应故障电机的指示灯以1Hz频率闪烁
     - 当按下故障复位按钮后:
        * 若故障仍存在,故障指示灯转为常亮
        * 若故障已消除,故障指示灯熄灭

三、相关知识
本案例需要掌握的知识有时区设置、系统时间与本地时间的区别,本地时间的读写时钟指令的使用。

1、时区的设置
(1)在S7-1200 PLC中的硬件组态中需要设置正确的时区才能读取到正确的时间,而S7-1200 PLC默认的是“柏林”时区,而读者通常使用的是“北京”时间,所以需要在PLC的硬件组态中的“常规”选项中的“时间”栏设置为“北京”时间,如图3-6-1所示。
(2)如图3-6-1中 有“夏令时”选项是否激活,夏令时我国在1992就开始停止实行,所以一般国内使用不需要勾选,如果出口到别的国家时要注意是否需要。

1.webp
图3-6-1时区设置图

2、系统时间与本地时间
(1)在博途软件中的扩展指令中有关于时钟功能的指令,如图3-6-2所示。“WR_SYS_T”和“RD_ SYS_T”是关于读写系统时间的指令。“WR_LOC _T”和“RD_ LOC_T”是关于读写本地时间的指令。

2.webp
图3-6-2读写时钟指令

(2)系统时间(System Time)是指格林威治(UTC)标准时间。本地时间(Local Time)是指S7-1200CPU所处时区设置的本地标准时间(一般我们设置为北京时间)。北京时间比UTC标准时间早8个小时(比如说UTC时间1月21日中午12:00,北京时间是1月21日20:00)

3、读写时钟指令
(1)读本地时间指令(RD_ LOC_T)
RD_ LOC_T指令:以 DTL数据类型提供 CPU的当前本地时间。指令相关参数如表3-6-1:

3.webp
表3-6-1读本地时间指令参数

注意:可以从指令框“<!--???-->”下拉列表中选择该指令的数据类型。

4.webp
图3-6-3读写时钟指令

用一个例子来说明标准化指令 (RD_ LOC_T)的使用,梯形图如图3-6-3所示当I0.0闭合激活读本地时间指令,在PLC的数据块中可以监控到当前的时间日期等,如图3-6-4。

5.webp
图3-6-4数据块中的时间日期等

(2)写本地时间指令(WR_ LOC_T)
写本地时间指令 WR_LOC_T

往PLC里"对表"用的。你在 LOCTIME 管脚填一个 DTL 类型的数据,PLC 就按你给的值设定本地日期和时间。

DTL 是什么?一个结构体,把年、月、日、星期、时、分、秒、毫秒打包在一起,一条指令一次写齐,不用拆开挨个填

指令相关参数如表3-6-2:
6.webp
表3-6-2写本地时间指令相关参数

注意:可以从指令框“<!--???-->”下拉列表中选择该指令的数据类型。

用一个例子说明写本地时间指令 WR_LOC_T 怎么用。

梯形图见图3-6-5:I0.0闭合 → 激活 WR_LOC_T → 把2022年10月18日 9:20:10 整组写进PLC。时间、日期、星期,一次写齐。

说白了,WR_LOC_T 就是一条"对表"指令——你告诉PLC现在是几点几分,它就按你说的走。

7.webp
8.webp
图3-6-5写本地时间指令

四、任务实施
本任务的实施步骤主要分为PLC接线、IO地址分配以及程序设计思路:

1、IO地址分配如表3-6-3

9.webp
表3-6-3 IO地址分配表

2、程序设计思路

a. 时间同步——先把钟对准,再读时间才有意义

写时钟指令 → 把PLC内部时间校准到准确时刻(PLC掉电后再上电,时间可能跑偏,这是第一步必须做的事)
读时钟指令 → 校准完成后,持续读取并存PLC实时时间,供后续比较用

b. 定时触发 + 计数控制——每天7点打卡,打满4次归零重来

比较当前时间是否命中7:00:00 → 命中则触发记录、输出控制线圈
计数器跟进:每次触发 +1,攒够4次自动复位归零,开始下一轮

c. 逻辑要点

时间比较必须"踩准"7:00:00这一秒——扫描周期如果正好跨过去,会漏触发,需要用上升沿或区间比较来兜底
计数器到4必须可靠复位,不能卡住不复位也不该提前复位
输出线圈根据现场需求决定:是"7:00这一秒闪一下"还是"7:00之后一直保持到手动复位",写程序前先想清楚

3、程序设计如图3-6-6
10.webp
11.webp
12.webp
13.webp
14.webp
15.webp
16.webp
17.png
18.webp
19.webp
20.webp
21.webp
22.png
23.webp
24.webp
25.png
图3-6-6程序设计

五、经验与总结
时间控制的风机与指示灯管理
1. 时间获取与比较  — 读本地时间指令拿到当前时刻,跟预设时段做比对,"踩"进哪个区间就输出对应的风机信号。本质就是一个条件判断:时间到了 → 风机起;时间过了 → 风机停。

2. 故障处理机制  — 风机一旦报故障,立刻停机,不能让它带病跑。同时干两件事:用系统存储器"拍快照"记下故障发生的时刻,方便事后排查;触发指示灯闪烁,灯一直闪 = 故障还没解除,提醒操作人员处理。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码