有關西門子S7-200的編程例子,時鐘指令在自動化控制中經常用到,比如交通信號燈、路燈等,以下是西門子S7-200系列PLC實例中時鐘指令的入門教程,一起來看下。
西門子S7-200時鐘指令用法
以一個路燈程序為例,來學習下時鐘指令的用法。
1、設計要求
這里要用到“時鐘”指令,時鐘指令有分為READ和SET兩種,指令說明如下:
(1)讀取實時時鐘指令:從硬件時鐘讀取當前時間和日期,并將其載入以地址T起始的8個字節的時間緩沖區。
(2)設置實時時鐘指令:將當前時間和日期寫入用T指定的8個字節的時間緩沖區開始的硬件時鐘。
先來打開程序,找到“時鐘指令”:
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碼如何轉換成二進制,需要根據以前學習的內容來思考下。