回复:【讨论】关于数据类型对指令的影响

已锁定

yming

西门子1847工业学习平台

  • 帖子

    23355
  • 精华

    889
  • 被关注

    1271

论坛等级:至圣

注册时间:2004-03-06

钻石 钻石 如何晋级?

发布于 2021-01-21 15:59:33

11楼

展开查看
以下是引用holdkcsxyz在2021-01-21 09:34:23的发言 >10楼

《REAL -> REAL 不管放大还是缩小,精度都会丢失》至理名言。可以想办法让各种类型反馈计算函数的各个输入输出引脚是有符号双整数或长整数。

以下是引用yming在2021-01-20 14:28:52的发言 >7楼:实际上,这两个函数...

引用7楼详细内容:

实际上,这两个函数应该完全对应。

INT -> REAL : REAL -> INT。就是将PZD状态的INT实际值转成实数,继而而用于实数计算,实数计算的结果转成INT成为某个设定值,发送。这是它原本的功能。

REAL -> REAL 不管放大还是缩小,精度都会丢失。


实在不建议用转换成实数显示。HMI尽量用百分比显示。真需要时,在HMI上转换成X100整数(设置小数位)


数据类型一定要注意!就像通讯中PZD转速是一个字,它实际表达的是-32768 - 32767=-200% - 200%。有人用WORD,正常看不出看,一旦反转(负的转速,频率。),问题就出来了。

这在通讯中也是一样会遇到的!LOGO!中,模拟量的值,如果传送的是INT,而处理它的功能块只接受传感器模拟量值(0-10V没有负值)也会出问题的。

包括,南方天冷气温降到零下时,问题就出来了。


以下是引用WWCWWC在2021-01-20 14:15:49的发言 >6楼:就事论事的说,让软...

引用6楼详细内容:

就事论事的说,让软件如何判断?

我在开始讲这个问题前,有描述另一种比较典型的容易出错的应用,实际上就是用同一个变量地址,重复多次应用在数据转换的程序中,这样的应用所存在的安全隐患问题相对比较隐蔽了一些。


以下是引用wege97在2021-01-20 14:05:33的发言 >:软件检查不出来的...

引用详细内容:

软件检查不出来的错误也是错误

对于实数的浮点运算,是另一回事儿。

有些时候,实数运算不可避免的需要使用它。这时,应该将其转成更高的精度格式LReal去运算,然后输出成 Real结果。(反正现在绝大多数CPU都是64位的。)

在这里,就是ZANE版主说的,使用显式转换功能块!


我说的是,有些功能性的函数,就是为模拟量端口设计的,ADC它本身没有负值,只有偏置后出现负值。

对于这类函数,如果在一般情况下使用,就要小心了。有的编程版本,它的输入接口处理不了负值!

(这就是为啥有那么多 SP1、2、3 ...,都是 Debug )


学而时习之,不亦说乎?温故而知新,不亦乐乎?
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15520条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。