数字常数

(1)布尔型常数

布尔型常数可以用逻辑0、逻辑1或FALSE、TRUE表示。在PLC中,每个数字量输入

和输出状态都可以用0或1表示,代表有或无两种状态。对于数字量输入,1表示有输入,0

表示无输入。对于数字量输出,1表示有输出,0表示无输出。例如,按钮的常开点接到

PLC的数字量输入,按钮按下后,PLC接收到信号,松开按钮后,PLC接收到的信号消

失,PLC接收到有或无这两种信号可以用1或0表示。

(2)二进制常数

二进制(BIN)是PLC中应用最广泛的进制,二进制常数由0和1组成,使用前缀

“2#”表示,例如2#011、2#1011都是二进制常数。为了便于阅读,0和1之间可以使用单

下划线“_”,一般从最低位开始,每4位加一个“_”用于隔开,便于转换为十六进制,

例如2#110_1011_1101。下划线“_”只是一个分隔符,没有实际的意义。

(3)八进制常数

八进制(OCT),顾名思义,就是逢八进一。西门子和三菱PLC的数字量输入/输出编

号就采用八进制,例如西门子的I0.0~I0.7、Q1.0~Q1.7,三菱的X10~X17、Y0~Y7。八进

制常数由0~7组成,使用前缀“8#”表示,例如8#17、8#123。可以将二进制数从最低位开

始每3位写成一个八进制的位,例如2#110_011_100可以表示为8#634。八进制在PLC编程

中应用较少。

(4)十进制常数

十进制(DEC)在日常生活中应用最为广泛,是最基础的进制,例如234、-45等都

是十进制。也可以使用前缀“10#”表示,例如10#123、10#-45等,但使用时一般省略前

缀。十进制也可以在数字之间用“_”隔开,一般从最低位开始每3位加一个“_”,例如

216_000。在PLC中,不加任何前缀的常数都是十进制。

(5)十六进制常数

十六进制(HEX)是为了解决二进制在表示较大数值的常数时过长的问题而诞生的。

十六进制就是逢十六进一,每个十六进制数可以表示4个二进制位。十六进制由数字0~9和

字母A~F组成,使用前缀“16#”表示。例如16#45、16#789F都是十六进制常数。可以将

二进制常数从最低位开始每4位表示为一个十六进制的值,例如2#110_0111_1100_1101,

比较冗长,用十六进制表示为16#67CD,就比较简洁。十六进制也可以在十六进制的数之

间用“_”隔开,一般从最低位开始每4位加一个“_”,便于查明所占的长度,例如

16#9FE_FF45占用两个字长。

(6)实数常数

实数常数必须存在小数点,例如-20.0、3.1415926等。也可以表示为以10为底的幂指

数形式,例如-134.0可以表示为-1.34E2,24.5可以表示为2.45E1。实数常数也可以在数

字之间用“_”隔开,例如3.141_5926。

(7)类型化常数

布尔或数字常数可以通过在常数前加类型前缀表示,前缀由基本数据类型名和符号

“#”组成。例如BOOL#0(布尔值0)、INT#-12(整数-12)、INT#16#4FF(整数

16#4FF)、WORD#1234(字型十进制的1234)、UINT#16#45FC(无符号整数

16#45FC)等。