浔之漫智控技术(上海)有限公司
西门子PLC模块 , CPU模块 , DP通讯电缆 , 6GK交换机
西门子授权总代理|触摸屏总代理

有关西门子S7-200的编程例子,时钟指令在自动化控制中经常用到,比如交通信号灯、路灯等,以下是西门子S7-200系列PLC实例中时钟指令的入门教程,一起来看下。

西门子S7-200时钟指令用法

以一个路灯程序为例,来学习下时钟指令的用法。

1、设计要求

 

这里要用到“时钟”指令,时钟指令有分为READ和SET两种,指令说明如下:

(1)读取实时时钟指令:从硬件时钟读取当前时间和日期,并将其载入以地址T起始的8个字节的时间缓冲区。

(2)设置实时时钟指令:将当前时间和日期写入用T指定的8个字节的时间缓冲区开始的硬件时钟。

先来打开程序,找到“时钟指令”:

READ_RTC指令,西门子s7-200plc 

8个字节时间缓冲区格式(T)

T字节 说明 字节数据

0 年(0-99) 当前年份(BCD值)

1 月(1-12) 当前月份(BCD值)

2 日期(1-31) 当前日期(BCD值)

3 小时(0-23) 当前小时(BCD值)

4 分钟(0-59) 当前分钟(BCD值)

5 秒(0-59) 当前秒(BCD值)

6 00 保留-始终设置为00

7 星期几(1-7) 当前是星期几,1=星期日(BCD值)

为什么1=星期日,可以看下自己的电脑的日期和时间,会发现“星期日”是日期统计中的列,这也是与系统日期、时间的配列规律相一致的。

 

选择变量存储区的字节数据类型,从0开始。则读取“小时”数据,则是从VB3中读取。

 

2、完成指令设置后,给PLC设置时钟:

 

在确保电脑联网的情况下,运用电脑上的时间给PLC加上实时的时间:

 

然后在点击“状态监控”的情况下,来看下VB0-VB7的数据值:

 

可见当前值除了有一个秒的位置,在实时变化之外,而其他数据值都与实际值不符。原因在于这里显示的数据,都是基于BCD码的。先来重温下BCD、二进制以及16进制的关系:

 

为什么明明是21年,却变成了+33?

来看下这个操作:把“有符号”改成“二进制”,变化后的符号亲切了不少,比如VB0的“0010_0001”,分成两位,分别不就是2_1么?合起来,就是21(年)了?

 

确实是这样的。这里选择的“有符号”就是用BCD码形式表示,而BCD码如何转换成二进制,需要根据以前学习的内容来思考下。


发布时间:2023-10-26
展开全文
优质商家推荐 拨打电话