- 艾寶物聯(lián)IOBOV? ─ 工業(yè)無線測控專家
怎樣讀和寫S7-214的實時時鐘?
下面這個程序示例涉及到關(guān)于實時時鐘的兩種特殊指令:讀和寫日期及時鐘時間。為了進行這些操作,需要有如下結(jié)構(gòu)的8字節(jié)緩沖區(qū):
為了讀或?qū)懛奖?,這些數(shù)據(jù)用BCD碼存儲。當操作開關(guān)10.0為1時,就將預(yù)定日期和時間寫入實際時鐘。為了顯示當前的秒值,將其值拷貝到輸出字節(jié)QB0。當10.1=1時,則用BCD碼顯示;當10.1=0時,則用二進制碼顯示。
例程:
程序框圖
程序和注釋
通過按輸入開關(guān)10.0可調(diào)用子程序0。這個子程序按照要求的日期和時問,預(yù)先將其值置入VB100到VB107這8個字節(jié),然后用TODW指令,將此設(shè)置傳送給實時時鐘。
每個周期都讀出實時時鐘的值,這些數(shù)據(jù)以BCD碼形式(4位代表0至9的數(shù)字)存儲在VB400到VB407這8個字節(jié)中。如果輸入10.1為1,這些值就被自接拷貝到輸出字節(jié)QB0,以供顯示。
如果輸入開關(guān)10.1為0,將數(shù)據(jù)定VW404拷貝到VW204,再將包含分鐘值的VB204清零。這一步是必須的,因為把秒值從BCD碼形式轉(zhuǎn)換成二進制碼形式,只能按字來轉(zhuǎn)換。現(xiàn)時的二進制碼的秒值被傳輸?shù)捷敵鲎止?jié)QB0,以供顯示。
本程序長度為46個字。