讀時(shí)間定時(shí)器的剩余時(shí)間
劉玉蓉
發(fā)布于2014-10-13 17:38
1
0
標(biāo)簽:
用上位機(jī)wincc讀取時(shí)間定時(shí)器的剩余時(shí)間,應(yīng)該怎么轉(zhuǎn)化這個(gè)格式??!BI或BIC轉(zhuǎn)。。。。。。?
佳答案
轉(zhuǎn)一個(gè)技術(shù)論壇的帖子供參考
主題:來(lái)自西門(mén)子技術(shù)支持熱線的故事:整數(shù)INT_時(shí)間S5Time及Time相互轉(zhuǎn)換的困惑
客戶(hù)1:“西門(mén)子熱線工程師,你好,我想在組態(tài)軟件中設(shè)置定時(shí)器T的時(shí)間,以便人工及時(shí)修改。但組態(tài)軟件中沒(méi)有S5Time數(shù)據(jù)類(lèi)型,怎么辦?”
客戶(hù)2:“我想在PLC程序中,用整數(shù)INT給定時(shí)器T的預(yù)設(shè)時(shí)間賦值,怎么做?”
客戶(hù)3:“我想設(shè)置PID積分時(shí)間,但FB41的積分時(shí)間TI是Time類(lèi)型,組態(tài)軟件中沒(méi)有Time類(lèi)型,怎么辦?”
客戶(hù)4:“在PLC程序中,數(shù)據(jù)類(lèi)型S5Time如何轉(zhuǎn)換到整數(shù)INT類(lèi)型?”
以上四個(gè)客戶(hù),遇到的問(wèn)題實(shí)質(zhì)上就是整數(shù)INT、時(shí)間S5Time及Time之間的相互轉(zhuǎn)換。如何轉(zhuǎn)換,首先要弄清整數(shù)INT、時(shí)間S5Time及Time的數(shù)據(jù)結(jié)構(gòu)。整數(shù)INT是16位的數(shù)據(jù):
時(shí)間S5Time是16位數(shù)據(jù),BCD碼格式:
時(shí)間Time是32位數(shù)據(jù),類(lèi)似于雙整數(shù)DINT:
三者之間的轉(zhuǎn)換即是整數(shù)INT、雙整數(shù)DINT及BCD碼之間的轉(zhuǎn)換??梢愿鶕?jù)數(shù)據(jù)結(jié)構(gòu)特點(diǎn),自己編程實(shí)現(xiàn)相互轉(zhuǎn)換,這樣比較復(fù)雜。利用庫(kù)函數(shù)FC33/FC40是簡(jiǎn)單方便的。方法如下:
1. 整數(shù)INT到時(shí)間S5Time的轉(zhuǎn)換方法:
INT -> I_DI指令 -> DINT -> MOVE指令 -> Time -> 庫(kù)函數(shù)FC40 -> S5Time。
2. 整數(shù)INT到時(shí)間Time的轉(zhuǎn)換方法:INT -> I_DI指令 -> DINT -> MOVE指令 -> Time。如圖示:
3. 時(shí)間S5Time到整數(shù)INT的轉(zhuǎn)換方法:
S5Time -> 庫(kù)函數(shù)FC33 -> Time -> MOVE指令 -> DINT -> 取其高字部分,用MOVE指令 -> INT。