关于数据类型的疑惑

分享到:
298
下一篇 >

菜鸟提问:

我知道VW是不能带小数点的,VD才可以。因为小数就是浮点数,要32位才可以。

*近利用才触摸屏往VW里面写值,我往里面写小数也可以写进去啊,并没有任何错误提示。

我想知道,比如我把32.55写入了VW100里面,真正存进去的是什么?

另外我还往QW里面写了0.8,也无报错,而且PLC输出也有了。到底怎么回事呢

侠士:

触摸屏只是显示几位小数,但输入到PLC里的还是整数。

你监控下PLC里的数据就知道了,看看输入的是整数值还是小数。

菜鸟:

224就一个口 和触摸屏连着呢 怎么监控cpu呢

侠士:

触摸屏可以在整数输入时设置小数部分的显示位数,例如输入12345,显示12.345,保存和传送给PLC的实际是整数。

菜鸟:

32.55写入了VW100里面,VW100里面应该是3255这个数。

侠士:

浮点数,浮动小数点的数字。在数制范围内任意移动。

整数,小数点固定在所有数字的*右侧的数值。

定点数,相对浮点数就好解释了。定点数只是小数点不像整数那样固定在*右侧而已。既然小数点固定了。那么数制里面不必包含小数点位置信息。可以用V W字保存。

所以32.55其实是3255。屏上只是为了视觉效果,把小数点点上了。你plc里面处理的值 不 也是3255吗?

菜鸟:

感谢大家耐心的回答。既然我不懂,我就问倒底吧。不弄懂,好像很难受啊。

在S7200里面,如果直接往VD100里面写数据,好像是两条指定。一个是MOV_DW 一个是MOV_R

但是如果我想把32.55这种小数直接写进去,只能MOV_R了,因为MOV_DW会报错。

那么我如果利用触摸屏写32.55进VD100,是怎么写进去的?

另外,如果我先利用MOV_R将32.55送到VD500,然后再用MOV_DW将VD500 送到VD100 程序不会报错,但是我监控的时候数据是不对的。

另外,我先将用MOV_W 将25送到VW100 再用I_DI 将VW100转成VD100 ,然后将DI_R将VD100转成实数,Z状态表监控的时候VD100显示25.0是对的,但是监控VW100 是16840

本来觉得数据类型很简单,可是仔细的越想越是不明白,不怕大家笑话 不明白就是不明白 希望大家不吝赐教

斑竹:

你上面分了四个问题。逐一回答。

1 你用编程方式传送32.55,的确要用movr。编程软件根据你的书写方式,已经认为你输入的是浮点数。这个毫无疑问。

2 你用屏写进去,你要问屏了。屏上的数据类型是什么就是什么。如果类型是实数,那么当然当做浮点数写进去。如果屏上只是整数,那么当然当做3255写进去,小数点只是视觉效果。

3 我认为监控的数据应该用浮点格式显示方式,在movd之前和之后应该都是对的。movd只是原封不动的传了一下。没必要发生变化。

4 在*后的R转换为分界点。之前的值都是整值。之后变成了浮点了。你必须用两种数据格式做监控,结果都是反映值是:二十五。

另外,我做一个比喻,生活是比喻。我在一个圆形形的纸条上写上一个图案。


你说这是个什么?


侠客:

是什么。就要视符写的那个人用什么方向来写。

人站在两点钟方向书写的话这个是小写的d字。

人站在七点钟方向写的话,这是大写P字。

屏,人,plc,是三个独立体。各自对同样一个东西有各自的看法。



你可能感兴趣: 工控菜鸟园 图片 自动化系统 SIMATIC S7-200 触摸屏
无觅相关文章插件,快速提升流量