找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 16128|回復(fù): 0
收起左側(cè)

s7-300整數(shù)INT_時間S5Time及Time相互轉(zhuǎn)換

[復(fù)制鏈接]
ID:85681 發(fā)表于 2015-7-14 19:25 | 顯示全部樓層 |閱讀模式
整數(shù)INT_時間S5TimeTime相互轉(zhuǎn)換的困惑
客戶1西門子熱線工程師,你好,我用第三方組態(tài)軟件(IntouchiFix、組態(tài)王等),想在畫面上設(shè)置定時器T的時間,以便人工及時修改。但組態(tài)軟件中沒有S5Time數(shù)據(jù)類型,怎么辦?
客戶2我想在PLC程序中,用整數(shù)INT給定時器T的預(yù)設(shè)時間賦值,怎么做?
客戶3我用的第三方組態(tài)軟件(Intouch、iFix、組態(tài)王等),想在畫面上設(shè)置PID積分時間,但FB41的積分時間TITime類型,組態(tài)軟件中沒有Time類型,怎么辦?
客戶4PLC程序中,數(shù)據(jù)類型S5Time如何轉(zhuǎn)換到整數(shù)INT類型?
以上四個客戶,遇到的問題實質(zhì)上是一樣的,就是整數(shù)INT、時間S5TimeTime之間的相互轉(zhuǎn)換。
如何轉(zhuǎn)換,首先要弄清整數(shù)INT、時間S5TimeTime的數(shù)據(jù)結(jié)構(gòu)。整數(shù)INT16位的數(shù)據(jù):

時間S5Time16位數(shù)據(jù),BCD碼格式

時間Time32位數(shù)據(jù),類似于雙整數(shù)DINT

由此可見,三者之間的轉(zhuǎn)換即是整數(shù)INT、雙整數(shù)DINTBCD碼之間的轉(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。









回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表