技术论坛

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

返回主题列表
作者 主题
WWCWWC
至圣

经验值: 72035
发帖数: 8052
精华帖: 145
楼主    2021-01-20 10:03:41
主题:【讨论】关于数据类型对指令的影响 精华帖  精编帖 

关于数据类型对指令的影响

   前一段时间,遇到一件“匪夷所思”的问题,一套315-2DP系统,有一段简单温度控制程序(非PID控制),自改造后运行几个月后突然似乎失控了。因为是在现场“抢修”,很多可能的问题被我人为“干预”掉了,一些疑问在我回来后,也进行了一些仿真的验证,还未真正意义上找到问题的根源。

  今天,在“找答案”栏目中,又看到一则类似的情况,于是,再次“触景生情”想起前段时间那个“类似”的问题。

问题贴链接:http://www.ad.siemens.com.cn/service/answer/solve_247524_1072.html

   提问者大致描述一个模拟量转换指令的应用,只是这个模拟量输出“没有”按提问者的要求显示需要的“数据”而已,声明:NORM_X 、SCALE_X就是portal软件环境下的比例缩放指令,该指令没有问题能够正常转换的。

图示:为验证方便,我在填写NORM_X指令的VALUE定义MW0变量地址并定义INT数据类型数据。

打开所有变量表看MD10/MD14及MW0的数据类型,图示:

再次声明,这些自定义的变量地址中的数据类型是系统“自动”生成的,为验证这些,我重新定义MD18/MD22,分别再次填写到各自管脚中,图示:模拟量输入不变。

系统仍然“自动”生成2个Real数据类型的数据。这里所谓的“自动”是与指令的数据类型选项有关的,图示:

正是因为我前一段时间遇到的类似问题,我在变量表中人为修改数据类型,看仿真结果,图示:假设改为Dword

同样方式,把2个变量的数据类型变更为DINT类型,图示:

   由此,不按“常理”出牌后的结果就是提问者描述的那样“匪夷所思”了。


威师爷
至圣

经验值: 37514
发帖数: 5141
精华帖: 47
2楼    2021-01-20 13:25:21
精编帖  主题:回复:【讨论】关于数据类型对指令的影响

数据类型不对,程序写的不严谨。

1楼说明了数据类型不对时在TIA平台表现出来的区别。

工业起重机防摇摆 QQ:404136820 AntiSwayControl
yming
至圣

经验值: 127402
发帖数: 22013
精华帖: 824
7楼    2021-01-20 14:28:52
精编帖  主题:回复:【讨论】关于数据类型对指令的影响

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

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

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


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


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

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

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


学而时习之,不亦说乎?温故而知新,不亦乐乎?
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。