您现在所在的是:

西门子SIEMENS

回帖:6个,阅读:780 [上一页] [1] [下一页]
1235
neverland36
文章数:151
年度积分:50
历史总积分:1235
注册时间:2014/5/23
发站内信
2014逛工博
发表于:2014/9/15 20:29:08
#0楼
目的:取系统时间,不是时间格式,是整数格式,比如数字串09142034,可以放到MW里面作为整数来用
说白了,就是想简单一点做随机数,就想到用时间来做随机数

附件 1.jpg
这个是用PLC,SFC1取的时间是这么一个格式,怎么才能放到MW里面?
想做成数字串比如09142034

附件 2.jpg

这个是用wincc全局脚本C动作做的,用模拟器显示的数值
取到的只有5位
全局脚本C动作,如下:
time_t t ;
t= time(NULL);
SetTagWord("无符号16位变量",t);
无符号16位变量----就是建立的变量MW

这五位数代表什么意思?为什么只有五位?(有什么方法可以完整:日时分秒)

最后两个数和秒是一个级别的,一秒加1,加到99然后17变为18,至于最后最大会加到多少就不知道了,但是会超过60这个是确定的
[此贴子已经被作者于2014/9/16 7:55:03编辑过]
1235
neverland36
文章数:151
年度积分:50
历史总积分:1235
注册时间:2014/5/23
发站内信
2014逛工博
发表于:2014/9/16 9:25:39
#1楼
表情
3671
穿孩子的树
文章数:344
年度积分:50
历史总积分:3671
注册时间:2014/9/10
发站内信
发表于:2014/9/16 11:31:45
#2楼
取出来的值是bcd码,转换下
1235
neverland36
文章数:151
年度积分:50
历史总积分:1235
注册时间:2014/5/23
发站内信
2014逛工博
发表于:2014/9/16 14:07:34
#3楼
回复 #2楼 穿孩子的树
地址是DB1.DBB_这个是关键问题
2334
东昌机电
文章数:643
年度积分:50
历史总积分:2334
注册时间:2013/9/13
发站内信
工控人谈电商
发表于:2014/9/16 16:38:31
#4楼
1、你需要得到是月日时分,需要4个字节长度来存放,所以你的MW来存放是不会得到正确的结果的。
2、如果你可以允许使用4个字节长度来存放的话,例如MD,那么你可以:
  L  DB1.DBD3  //这样很怪异,不过没办法,我不想多码字了。
  T  MD0

3、time函数用于返回机器日历时间.要得到时分秒,你需要使用ctime函数进行转换,或者使用tm结构来得到日历时间,具体在组态手册1上有例子。

4、既然使用了Wincc的C脚本,为何不使用C函数Rand来生成伪随机数呢?

Regards
+10
SANKA电机
1235
neverland36
文章数:151
年度积分:50
历史总积分:1235
注册时间:2014/5/23
发站内信
2014逛工博
发表于:2014/9/16 19:54:09
#5楼
回复 #4楼 东昌机电
首先,非常感谢!但下面的很想知道为什么
DB1.DBD3好像是基于分钟数加一
DB1.DBD4好像是基于秒加一
它们各自代表什么意思?DB1.DB D3跟DB1.DB B3 是什么关系?D和B的关系吗?
37605
cvlsam 版主
文章数:12429
年度积分:216
历史总积分:37605
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2014/9/16 22:06:44
#6楼
以下是引用neverland362014/9/16 19:54:09的发言:
首先,非常感谢!但下面的很想知道为什么
DB1.DBD3好像是基于分钟数加一
DB1.DBD4好像是基于秒加一
它们各自代表什么意思?DB1.DB D3跟DB1.DB B3 是什么关系?D和B的关系吗?

DBD3由DBB3,DBB4,DBB5和DBB6组成,分别为:小时,分,秒,以及毫秒的高位。

DBB0,DBB1,DBB2代表了年,月,日。

1个DBD=2个DBW=4个DBB=32个DBX。

Good Luck~

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004