威纶通官方论坛

[讨论]宏指令问题,关于时间比较,我哪里错了?

[复制链接]
发表于 2011-2-12 16:14:43 | 显示全部楼层 |阅读模式
不知道怎么传文件,请大家去这里下载工程文件:
http://www.91files.com/?FKET0P63YI9P0P9QP9HK

目的:根据当前的小时数把一天分成上午、下午、晚上三个阶段,分别用1、2、3来表示
做法:
读出LW9012的值放入变量tmp中,代码是
int vbcd0=0,tmp=0
GetData(tmp, "Local HMI", LW_bcd, 9012, 1)
为了查看tmp的值,再使用如下代码:
SetData(tmp, "Local HMI", LW_bcd,1, 1)
发表于 2011-2-14 21:32:15 | 显示全部楼层
请将

int vbcd0=0,tmp=0

改为

short vbcd0 = 0, tmp = 0


这是使用MT8000/6000常见的一个错误

因为LW9020存在日期数据是使用16-bit Unsigned储存(打开系统标签库即可知道)
所以只需使用 short变数型态去读取即可

如果使用int tmp, 因int是32-bit, 当使用

GetData(tmp, "Local HMI", LW_bcd, 9012, 1)


MT8000会将LW9012与LW9013一起存入tmp中,
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

Archiver|小黑屋|威纶通官网 ( 粤ICP备06054553号 )

GMT+8, 2025-4-20 04:43

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

快速回复 返回顶部 返回列表