标题:
s7-300整数INT_时间S5Time及Time相互转换
[打印本页]
作者:
51黑tt
时间:
2016-3-6 16:58
标题:
s7-300整数INT_时间S5Time及Time相互转换
客户
1
:
“
西门子热线工程师,你好,我用第三方
组态软件(
如
Intouch
、
iFix
、组态王等
)
,想在画面上设置定时器
T
的时间,以便人工及时修改。但组态软件中没有
S5Time
数据类型,怎么办?
”
客户
2
:
“
我想在
PLC
程序中,用整数
INT
给定时器
T
的预设时间赋值,怎么做?
”
客户
3
:
“
我用的第三方组态软件
(
如
Intouch
、
iFix
、组态王等
)
,想在画面上设置
PID
积分时间,但
FB41
的积分时间
TI
是
Time
类型,组态软件中没有
Time
类型,怎么办?
”
客户
4
:
“
在
PLC
程序中,数据类型
S5Time
如何转换到整数
INT
类型?
”
以上四个客户,遇到的问题实质上是一样的,就是整数
INT
、时间
S5Time
及
Time
之间的相互转换。
如何转换,首先要弄清整数
INT
、时间
S5Time
及
Time
的数据结构。整数
INT
是
16
位的数据:
时间
S5Time
是
16
位数据,
BCD
码格式
时间
Time
是
32
位数据,类似于双整数
DINT
:
由此可见,三者之间的转换即是整数
INT
、双整数
DINT
及
BCD
码之间的转换。可以根据数据结构特点,自己编程实现相互转换,这样比较复杂。利用库函数
FC33/FC40
是最简单方便的。方法如下:
1.
整数
INT
到时间
S5Time
的转换方法:
INT -> I_DI
指令
-> DINT -> MOVE
指令
-> Time ->
库函数
FC40 -> S5Time
。
2.
整数
INT
到时间
Time
的转换方法:
INT -> I_DI
指令
-> DINT -> MOVE
指令
-> Time
。
3.
时间
S5Time
到整数
INT
的转换方法:
S5Time ->
库函数
FC33 -> Time -> MOVE
指令
-> DINT ->
取其高字部分,用
MOVE
指令
-> INT
。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1