| 作者 | 主题 |
|---|---|
|
小明哥 侠客 经验值:872 发帖数:429 精华帖:1 |
楼主
主题:编程过程中的数据类型转换问题
如下指令:
LD Always_On MOVR 100.0, 实型数 AENO MOVD 实型数, 双整型数 其中,实型数、双整型数为符号表中定义的符号,字长均为DW。 编译后无问题。根据帮助内容,MOVR指令操作数数据类型(IN或OUT)要求为R型,MOVD指令操作数数据类型(IN或OUT)要求为双字、双整型。编程模式为SIMATIC。 请问指令将怎样处理该符号呢?按照怎样的数据类型来执行指令呢? |
|
小明哥 侠客 经验值:872 发帖数:429 精华帖:1 |
4楼
主题:回复:编程过程中的数据类型转换问题
嗯,昨天我查了step7 micro/win的帮助,有一篇关于数据类型的帮助文件。大概了解了一下,上面说在SIMATIC编程模式下,符号编辑器是不进行数据类型检查,在该模式中,所有相同大小的数据类型被自动指定给符号。
我考虑了一下,认为变量的数据类型取决于使用它的指令,如果一个指令支持字和整型两种数据类型,在指令执行过程中,输入数值时,如果带符号,则step7 micro/win认为它是一个整型数,如果不带符号则认为为字型(无符号整数),他们的取值范围应当符合相应数据类型的范围。 如果是IEC编程模式,则操作数必须只有一种确定了的数据类型,可以采用显式声明或者隐式声明以确保变量有唯一的数据类型 SIMATIC仅执行简单的数据类型检查,所以在编程过程中应当确保不会发生错误 |