您现在所在的是:

西门子SIEMENS

回帖:1个,阅读:456 [上一页] [1] [下一页]
792
lvqd
文章数:24
年度积分:50
历史总积分:792
注册时间:2010/7/25
发站内信
发表于:2014/1/15 14:13:16
#0楼

在命令库中,用于数据转换的功能块有很多,比如LREAL_VALUE_TO_WORD等,这些转换块如果使用不当,很容易造成FPU异常停机。
在CPU停机时,也可以在其诊断缓冲区中读取到这些错误信息,比如:
Floating-point exception in the user program
Error 11330 BackgroundTask, ST_1, line 66 (@ 'testToruqeLimiting'): FPU exception
Call stack:
   st_1:66 (@ 'testToruqeLimiting')
   :6 (@ 'BackgroundTask')
Incoming event
在缓冲区中也能很容易得找到故障点。
举个例子,程序中使用了这个功能块:LREAL_VALUE_TO_WORD,那么在执行时可能出错,造成CPU停机。原因如下:当LREAL数据为负数时,其最高位为1,共64位。该数值超出WORD或DWORD数据上限,造成转换失败。
从LREAL到WORD的转换,可以按以下步骤进行:
先使用Lreal_to_int,再使用INT_to_WORD
使用其他转换功能时,同样要保证源数据数值未超出目标数据类型的上下限
此帖来自中华工控网工控博客
原文件地址:http://blog.gkong.com/more.asp?id=190895&Name=lvqid
2334
东昌机电
文章数:643
年度积分:50
历史总积分:2334
注册时间:2013/9/13
发站内信
工控人谈电商
发表于:2014/1/15 15:46:36
#1楼
楼主辛苦了……一篇稿子又要发在工控微博又要发在网易微博。

Regards
SANKA电机

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

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

31.2002