一、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位二进制所对应的十进制数值,对进制转换以及类似题目的理解非常有用: