与计算机相似,plc的内部数学运算一般用二进制数补码来表示有符号数,正数的补码等于它本身,负数的补码等于其对应的正数的各位逐位求反后加1。补码的最高位为符号位,正数的符号位为0,负数的符号位为1。将负数的补码的各位求反后加1,便得到了它的绝对数。
整数就是譬如1234,实数可以带小数点也可以是负数,双整数是用来转换用的。讲一个实例吧,以温度模拟量输入模块为例,温度程序是直接读PIW数值后,然后先将整型转化为双整型,双整型再转化为实型,最后除以10.0即为实际温度值。
1.16位整数(INT) 是有符号数,整数的最高位为符号位,最高位为0时为正数,为1时为负数,取值范围为-32768~32767。
2.32位整数(DINT) 的最高位为符号位,取值范围为-2147483648~2147483647。
3.32位浮点数(REAL)为称实数,可以表示为1.mX2^E,其中尾数m和指数E均为二进制数,E可能是正数,也可能是负数。浮点数的优点是用很小的存储空间(4B)可以表示非常大的和非常小的数。
4.在编程软件中,一般并不直接使用二进制格式或十六进制格式的浮点数,而是用十进制小数来输入或显示浮点数,例如在编程软件中,10是整数,而10.0为浮点数。
首先你要知道每一种类型的数据的位宽比如V区中的一个数:VB0 ----- 一个字节(8位位宽);无符号范围是0-----255,有符号范围是-128 ----- +127;VW0 ----- 一个字(16位位宽);无符号范围是0-----65535,有符号范围是-32768 ----- +32767VD0 ----- 双字(32位位宽);无符号范围大约在0-----4294967295;有符号范围-2147483948 ---- 2147483947实数也是32位位宽,可以用VD双字来进行存取。至于什么时候用相对变的类型,这个也比较简单,只要其变量的最大值不会产生溢出就行,如果一个变量的最大值为200,你用字节类型储存就可以,也可以用字或双字,但会浪费空间,像实数肯定是32位用双字类型。