首页 上一页 1 2 下一页 尾页

浮点运算CPU故障停机什么原因? 点击:1440 | 回复:23



ygwygw555

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:9帖 | 22回
  • 年度积分:0
  • 历史总积分:149
  • 注册:2010年3月05日
发表于:2010-03-05 22:25:22
楼主

初学者,高手么见笑。

今天我想在西门子触摸屏上做1个气压设定值输入。

比如说气压值为0-6BAR,要求每按一下增加按钮,气压值增加0.1BAR。

人机界面都做好了,编好程后一试,我发现那ADD—R运算器有问题,不知道为什么,

多按几下增加按钮CPU就报警了(SF)。再按几下甚至STOP掉了。

开始按几下还正常,每按一下增加0.1,比如说从3.0开始加,加到3,4时再按就会变成3.0,再按

就报警SF,继续按就STOP!

梯形图里的实数加法器运算有什么要注意的地方吗?我想肯定是那里出错了。

还有实数类型的数据和双精度整数都是MD  PLC它怎么知道是哪种类型的数据呢? 




ygwygw555

  • 精华:0帖
  • 求助:1帖
  • 帖子:9帖 | 22回
  • 年度积分:0
  • 历史总积分:149
  • 注册:2010年3月05日
发表于:2010-03-06 16:10:34
1楼

没有高手愿意帮下忙吗?

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2010-03-06 16:31:53
2楼

应该是其他地方错误吧!一般加法指令不会报错!  乘除法才会报错!

再有,小数点精确到2位之内,不需要浮点数计算啊?最好少用,浮点用算只会增加CPU扫描周期!

[明月夜]

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2010-03-06 16:57:51
3楼

会不会相加的数据不符合浮点数要求,引起停机。

指令用的是什么类型,运算的单元数据就必须符合此类型,否则,出问题。

 

 

 

ygwygw555

  • 精华:0帖
  • 求助:1帖
  • 帖子:9帖 | 22回
  • 年度积分:0
  • 历史总积分:149
  • 注册:2010年3月05日
发表于:2010-03-06 18:46:05
4楼

小数点精确到2位之内不用浮点运算那用什么运算?(不要见笑哈。)

指令用的ADD—R (实数加)

我定义的数据是MD10,我就是这里搞不懂。怎么定义数据类型,

比如说MD10既可以是长精度整数也可以是浮点数,如何定义?

zhouccch

  • 精华:0帖
  • 求助:0帖
  • 帖子:56帖 | 208回
  • 年度积分:0
  • 历史总积分:598
  • 注册:2002年8月28日
发表于:2010-03-06 19:45:58
5楼

数据转换错误后就报警,三菱Q和西门子都是这样,用指令转换数据错误时会死机CPU

ygwygw555

  • 精华:0帖
  • 求助:1帖
  • 帖子:9帖 | 22回
  • 年度积分:0
  • 历史总积分:149
  • 注册:2010年3月05日
发表于:2010-03-06 20:32:18
6楼

能具体说下要怎么转换吗?

[明月夜]

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2010-03-06 20:57:29
7楼

先要查一下ADD—R指令的浮点参数单元的长度。再去定义被操作单元。

明显是:浮点格式有几种,而楼主用错了,每运算一次CPU就出错一次。

ygwygw555

  • 精华:0帖
  • 求助:1帖
  • 帖子:9帖 | 22回
  • 年度积分:0
  • 历史总积分:149
  • 注册:2010年3月05日
发表于:2010-03-06 23:41:59
8楼

明月夜,麻烦你教我一下 :怎么定义数据类型。

比如说我从西门子触摸屏采集过来一个输入域的值MD10。在触摸屏里设置其类型为9.9

怎么定义MD?才能保证MD在浮点运算时不出错?

ygwygw555

  • 精华:0帖
  • 求助:1帖
  • 帖子:9帖 | 22回
  • 年度积分:0
  • 历史总积分:149
  • 注册:2010年3月05日
发表于:2010-03-07 16:30:45
9楼
程序就这么简单,高手们帮忙看哈。

wuxinzhi

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:23
  • 注册:2009年3月26日
发表于:2010-03-08 14:18:22
10楼
m2000,是不是有些问题?

wuxinzhi

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:23
  • 注册:2009年3月26日
发表于:2010-03-08 14:19:25
11楼
把M2000.0换成M20.0,看行不行?

[明月夜]

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2010-03-08 14:48:32
12楼
MD10的初值呢?    第一次循环时用 MOV—R传一个0。0到MD10试试

zhang834100

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 49回
  • 年度积分:0
  • 历史总积分:279
  • 注册:2004年10月15日
发表于:2010-03-08 15:59:10
13楼
刚才用模拟软件试了下,没有报错,也没有你说的情况,你可以把CPU的程序清空复位,重新下载试一下。

诸葛连弩

  • 精华:6帖
  • 求助:0帖
  • 帖子:34帖 | 57回
  • 年度积分:0
  • 历史总积分:274
  • 注册:2005年1月06日
发表于:2010-03-08 17:13:50
14楼
定义一个本地的实型变量,地址改成LD,试试行不。

mccandhmi

  • 精华:0帖
  • 求助:0帖
  • 帖子:27帖 | 239回
  • 年度积分:0
  • 历史总积分:349
  • 注册:2004年8月26日
发表于:2010-03-09 08:21:32
15楼

在进行加的运算时M2000.3必须为1,才能进行加,

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2010-03-09 08:40:00
16楼
我建议你在加减的时候使用双整型计算,计算得出的结果在转换为浮点数,当然还得考虑除10

ygwygw555

  • 精华:0帖
  • 求助:1帖
  • 帖子:9帖 | 22回
  • 年度积分:0
  • 历史总积分:149
  • 注册:2010年3月05日
发表于:2010-03-09 21:36:41
17楼

回复内容:
对:zhang834100 关于刚才用模拟软件试了下,没有报错,也没有你说的情况,你可以把CPU的程序清空复位,重新下载试一下。 内容的回复:



有可能是这种情况,因为以前我用这个PLC做过很多实验。

但是不知道怎么清除程序。听说将PLC上面那个开关拨到MRES档几秒就能清除。我试过。但是不行,程序清不掉。

也听有人说过用CLEAN PLC指令能清干净,但不知道这个指令在哪里执行,在哪里输入。。。

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2010-03-10 08:40:17
18楼
CLEAR PLC 指令用于清除S7-200系列PLC的程序。

在S7-300,同过MRES复位也仅仅清除工作存储器中的程序,此时,当PLC重新上电,装载存储器(MMC卡)的程序会被重新复制的工作存储器。

你需要:连线你的PLC,然后在在线模式下清除MMC卡上的块。

Regards

liu xianghou

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 195回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2007年8月17日
发表于:2010-03-10 10:29:29
19楼
你有没有选“CLOCK MEMERY”?如果选了,M0。3, M0。4都是方波,老是会在那自己计算

ygwygw555

  • 精华:0帖
  • 求助:1帖
  • 帖子:9帖 | 22回
  • 年度积分:0
  • 历史总积分:149
  • 注册:2010年3月05日
发表于:2010-03-10 22:51:02
20楼

回复内容:
对:yuanle 关于CLEAR PLC 指令用于清除S7-200系列PLC的程序。

在S7-300,同过MRES复位也仅仅清除工作存储器中的程序,此时,当PLC重新上电,装载存储器(MMC卡)的程序会被重新复制的工作存储器。

你需要:连线你的PLC,然后在在线模式下清除MMC卡上的块。

Regards
内容的回复:

了解了,最關鍵的一點還沒搞明白.連了PLC在線模式下如何清除MMC卡上的塊?




热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页