一、PLC的基本数据类型
-
位类型 bit,也称为布尔类型 BOOL ,也就是我们常说的0和1,也可以理解为 True和False,对于PLC来说就是DI或者DO点 的输入或输出状态,我们一般用Bool类型表示。对于西门子PLC的DI点,可以使用 I0.0表示,DO点用 Q0.0,还有M0.0,V0.0等表示。所以会经常看到 I0.0~I0.7,布尔类型只占用1位。
-
字节类型 Byte,一个字节有8位,在PLC的存储器里,比如 IB1,MB1,就代表字节,那么将字节分解后 是8位,在第一项里布尔类型中提到 I0.0-I0.7就可以组成一个字节IB0,M0.0-M0.7组成MB0,所以我们想 要提高读取速度,可以直接使用字节读取,然后再进行分解。数据范围0~255。
-
字类型 WORD,一个字包含16位,比如MW0,他就是由MB0和MB1组成,在使用字类型时有人使用组 态软件读取的值不对,那么就有可能是字节的排列顺序不一样造成,可以对高低字节进行交换,很多软件都 有这个功能。数据范围0~65535
-
双字类型 Double Word,双字包含32位,由2个字组成,比如DW0,它包含2个字MW0和MW2,包含 4个字节MB0,MB1,MB2,MB3,所以很多人在使用寄存器时会碰到各种问题,那么就有可能使用的寄存器存 在交叉的问题。比如DW0,DW2这两个双字就存在地址交叉的问题。数据范围 0~4294967295
-
整数类型 INT,一般又可以分为有符号,无符号,数据范围 -32768~32767
-
双整形 DINT,同上也可以分为有符号,无符号类型,数据范围 -2147483648~2147483647
-
实数类型 real ,显示十进制的数据,可以包括小数点,一般都是32位,当然也有64位的实数类型。
复杂数据类型,包括如下:
-
字符串类型 string
-
日期时间类型 Date ,Time,date-time等
-
数组类型,Array
-
结构类型,Struct
-
指针,Pointe
-
用户自定义类型,UDT
二、进制转换
1.二进制转十进制:
转换方法:把二进制数按权展开、相加即得十进制数。(具体用法如下图)
比如利用这串二进制 1001 0110 = ?;计算过程如下图所示,得到结果为:150。
2.二进制转十六进制:
转换方法:利用取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位。
比如利用这串二进制1010 0100B = ?;计算过程如下图所示,得到结果为:a4。
3.十六进制转十进制:
比如利用这串十进制23daH = __?__D;计算过程如下图所示,得到结果:9178D。
4.8421码:
下面的表格是8位二进制所对应的十进制数值,对进制转换以及类似题目的理解非常有用: