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