有關(guān)西門子S7-200的編程例子,時(shí)鐘指令在自動(dòng)化控制中經(jīng)常用到,比如交通信號(hào)燈、路燈等,以下是西門子S7-200系列PLC實(shí)例中時(shí)鐘指令的入門教程,一起來看下。
西門子S7-200時(shí)鐘指令用法
以一個(gè)路燈程序?yàn)槔瑏韺W(xué)習(xí)下時(shí)鐘指令的用法。
1、設(shè)計(jì)要求
這里要用到“時(shí)鐘”指令,時(shí)鐘指令有分為READ和SET兩種,指令說明如下:
(1)讀取實(shí)時(shí)時(shí)鐘指令:從硬件時(shí)鐘讀取當(dāng)前時(shí)間和日期,并將其載入以地址T起始的8個(gè)字節(jié)的時(shí)間緩沖區(qū)。
(2)設(shè)置實(shí)時(shí)時(shí)鐘指令:將當(dāng)前時(shí)間和日期寫入用T指定的8個(gè)字節(jié)的時(shí)間緩沖區(qū)開始的硬件時(shí)鐘。
先來打開程序,找到“時(shí)鐘指令”:
8個(gè)字節(jié)時(shí)間緩沖區(qū)格式(T)
T字節(jié) 說明 字節(jié)數(shù)據(jù)
0 年(0-99) 當(dāng)前年份(BCD值)
1 月(1-12) 當(dāng)前月份(BCD值)
2 日期(1-31) 當(dāng)前日期(BCD值)
3 小時(shí)(0-23) 當(dāng)前小時(shí)(BCD值)
4 分鐘(0-59) 當(dāng)前分鐘(BCD值)
5 秒(0-59) 當(dāng)前秒(BCD值)
6 00 保留-始終設(shè)置為00
7 星期幾(1-7) 當(dāng)前是星期幾,1=星期日(BCD值)
為什么1=星期日,可以看下自己的電腦的日期和時(shí)間,會(huì)發(fā)現(xiàn)“星期日”是日期統(tǒng)計(jì)中的第一列,這也是與系統(tǒng)日期、時(shí)間的配列規(guī)律相一致的。
選擇變量存儲(chǔ)區(qū)的字節(jié)數(shù)據(jù)類型,從0開始。則讀取“小時(shí)”數(shù)據(jù),則是從VB3中讀取。
2、完成指令設(shè)置后,給PLC設(shè)置時(shí)鐘:
在確保電腦聯(lián)網(wǎng)的情況下,運(yùn)用電腦上的時(shí)間給PLC加上實(shí)時(shí)的時(shí)間:
然后在點(diǎn)擊“狀態(tài)監(jiān)控”的情況下,來看下VB0-VB7的數(shù)據(jù)值:
可見當(dāng)前值除了有一個(gè)秒的位置,在實(shí)時(shí)變化之外,而其他數(shù)據(jù)值都與實(shí)際值不符。原因在于這里顯示的數(shù)據(jù),都是基于BCD碼的。先來重溫下BCD、二進(jìn)制以及16進(jìn)制的關(guān)系:
為什么明明是21年,卻變成了+33?
來看下這個(gè)操作:把“有符號(hào)”改成“二進(jìn)制”,變化后的符號(hào)親切了不少,比如VB0的“0010_0001”,分成兩位,分別不就是2_1么?合起來,就是21(年)了?
確實(shí)是這樣的。這里選擇的“有符號(hào)”就是用BCD碼形式表示,而BCD碼如何轉(zhuǎn)換成二進(jìn)制,需要根據(jù)以前學(xué)習(xí)的內(nèi)容來思考下。