看别人程序,涉及到时间转换。从WINCC输入整数,在程序中显示S5T时间。程序如下
L #MINITE
L 6
*I
T #TEMP1
NOP 0
L #TEMP1
ITB
T #TEMP2
NOP 0
L W#16#F000
L #TEMP2
OW
T #OUT
NOP 0
这是分钟转换,若是秒钟则是字与或W#16#E000.我好像记得是时基W#16#3000转化为10秒钟,W#16#2000转化为1秒钟。
请高手帮我解释,迷糊中。
问题补充:
xiexie.14和15位未用,10秒钟为例,14和15位为11话,则时基是W#16#F000,
14和15位为00话,则时基是W#16#3000。
所以两个时基都是对的。
不知我理解正确否?
产品版区:SIMATIC S7-300(F)/S7-400(F/H/FH)
悬赏分:5 | 解决时间:2009-02-27 16:27:55 | 提问者: 混在江湖 - 资深学长  第3级
最佳答案
L #TEMP1 /#TEMP1 =30
ITB /转换为3为BCD码
T #TEMP2 / #TEMP2为030(BCD码)
NOP 0
L W#16#F000 /取 F000(16进制)
L #TEMP2 / #TEMP2为0030(BCD码)
OW / 字的或运算
T #OUT / #OUT =F030(16进制),即时基为11即为10s.
NOP 0 / 此时,所表示的时间值为30x10s=300s
第13位与第12位:表示时基,时基的代码(11=10s).;第11位至第0位:以BCD码表示的时间值030,即以10S为单位的数,即30x10s=300s(5min)。
4.“这是分钟转换,若是秒钟则是字与或W#16#E000.时基W#16#3000转化为10秒钟,W#16#2000转化为1秒钟。”?
W#16#E000:第13位与第12位为10,即1S;
W#16#3000转化为10秒钟:第13位与第12位为11,即10s。第15位与第14位未用。与W#16#F000作用相同。
W#16#2000转化为1秒钟:第13位与第12位为10,即1s。第15位与第14位未用。与W#16#E000作用相同。
回答者:
阿鸣
-
大师  第17级
2009-02-27 14:16:22
提问者对于答案的评价:
非常感谢阿鸣兄的解答。详尽细致。