本案例需要掌握的知识有时区设置、系统时间与本地时间的区别,本地时间的读写时钟指令的使用。
1、时区的设置
(1)在S7-1200 PLC中的硬件组态中需要设置正确的时区才能读取到正确的时间,而S7-1200 PLC默认的是“柏林”时区,而读者通常使用的是“北京”时间,所以需要在PLC的硬件组态中的“常规”选项中的“时间”栏设置为“北京”时间,如图3-6-1所示。
(2)如图3-6-1中 有“夏令时”选项是否激活,夏令时我国在1992就开始停止实行,所以一般国内使用不需要勾选,如果出口到别的国家时要注意是否需要。
图3-6-1时区设置图
2、系统时间与本地时间
(1)在博途软件中的扩展指令中有关于时钟功能的指令,如图3-6-2所示。“WR_SYS_T”和“RD_ SYS_T”是关于读写系统时间的指令。“WR_LOC _T”和“RD_ LOC_T”是关于读写本地时间的指令。
图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-6-1读本地时间指令参数
注意:可以从指令框“<!--???-->”下拉列表中选择该指令的数据类型。
图3-6-3读写时钟指令
用一个例子来说明标准化指令 (RD_ LOC_T)的使用,梯形图如图3-6-3所示当I0.0闭合激活读本地时间指令,在PLC的数据块中可以监控到当前的时间日期等,如图3-6-4。
图3-6-4数据块中的时间日期等
(2)写本地时间指令(WR_ LOC_T)
写本地时间指令 WR_LOC_T
往PLC里"对表"用的。你在 LOCTIME 管脚填一个 DTL 类型的数据,PLC 就按你给的值设定本地日期和时间。
DTL 是什么?一个结构体,把年、月、日、星期、时、分、秒、毫秒打包在一起,一条指令一次写齐,不用拆开挨个填
指令相关参数如表3-6-2:
表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现在是几点几分,它就按你说的走。
图3-6-5写本地时间指令