问:我是个初学者,对整数不是很清楚。我的问题是在西门子S7-300PLC中。对一个16位整数的范围是不是在-999到+999之间了,比如我要把1000这个整数发送到mw中就不行。因为这个数过了999了只能用32位长整数。比如发送到md中就可以
答:16位整数的范围在-999到+999之间,这个是针对于BCD码而言的。BCD编码,就是使用"0"至"9"这十个数值的二进码来表示。也称为8421码。当BCD码存储在一个16位的字中时,0-3位表示个位,4-7位表示十位,8-11位表示百位,12-15位表示符号。符号位位于较高的十进制数中,只涉及到第15位,“0”状态表示正数,“1”状态表示负数。 所以16位BCD码范围是±999。对于32位BCD码同样如此,所以32位BCD码范围是±9999999。
在S7-300里面,数字的表示法一般为INT(16位有符号整型数)、DINT(32位有符号长整型数)、REAL(32位浮点数),这几个数据类型楼上的大侠已经解释的很到位了,要想对S7-300的数据类型有更深的了解,还是要平时多编程,熟能生巧。