IEC 61131-3定义的标准数据类型有:布尔型、整型、浮点型、字符串型、时间日期类型和常数。以下将逐一介绍各种数据类型。
布尔型
布尔变量可取值TRUE和FALSE。占8位内存空间。布尔型变量声明示例:
bExec : BOOL := FALSE;bBusy : BOOL;
整型
整型数据类型共有9种分类型,各个不同的数据类型有不同的值范围。下表列出了各整型数据类型的取值范围和占用的内存空间。需要注意的是,大类型转换为小类型时,将会出现信息的丢失。整型变量声明与布尔型变量声明方法雷同。

浮点数据类型
REAL和LREAL 被称为浮点数据类型,用于表示有理数。REAL占用32位内存空间,LREAL占用64位内存空间。REAL和LREAL常数可以用尾数和指数表示,并使用美国标准,如:
rREAL : REAL := 6.9;lLREAL : LREAL := 6.9E+9;
字符串变量
STRING类型变量可以是包含任何字符的字符串。其容量大小在声明变量时说明,如果不对容量大小进行说明,其缺省值为80个字符。字符串变量声明示例:
CurrentGGodeLine : STRING(35) := ‘G00 X0’;
一些特殊的符号及含义如下所示:

时间、日期类型
TIME、TIME_OF_DAY(TOD)、DATE和DATE_AND_TIME(DT)数据类型在内部作为 DWORD类型处理。
TIME类型存储一个时间数据,主要用于标准库中定时器的操作,最少单位为1ms。TIME类型数据格式为:T# xx d xx h xx m xx s xx ms。其中:T表示时间常数起始,#表示其后为立即数,d表示天,h表示小时,m表示分,s表示秒,ms表示毫秒。
t1: TIME := T#5D4H3M3S1MS;//t1为TIME类型,值为5天4小时3分钟3秒1毫秒。
TIME_OF_DAY变量主要用于存储一天中的时间,变量的时间从当天12:00AM 开始,最少单位为1ms。TIME_OF_DAY类型数据格式为:TOD#HH:mm:ss。其中:TOD表示TIME_OF_DAY常数起始,#表示其后为立即数,HH表示小时,mm表示分,ss表示秒。
td1: TIME_OF_DAY := TOD#1:1:1.1;//td1为TIME_OF_DAY类型,值为1时1分1.1秒。
DATE变量用于存储一个日期,最小单位为秒,并从1970年1月1日12:00AM开始计算。DATE类型数据格式为:DATE#YY-MM-DD。其中:DATE表示DATE常数起始,#表示其后为立即数,YY表示年,MM表示月,DD表示日。
d1 : DATE := DATE#2019-06-12;//d1为DATE类型,值为2019年06月12日。
DATE_AND_TIME变量用于存储一个日期和时间组合的数据,最小单位为秒,并从1970年1月1日12:00AM开始计算。DATE_AND_TIME类型数据格式为:DT#YY-MM-DD-HH:mm:ss。其中:DT表示DATE_AND_TIME常数起始,#表示其后为立即数,YY表示年,MM表示月,DD表示日,HH表示小时,mm表示分,ss表示秒。日期和时间之间用–连接。
dt1 : DATE_AND_TIME := DT#2019-06-12-10:36:31;//dt1为DATE_AND_TIME类型,值为2019年06月12日10时36分31秒。
常数
数值可以用二进制、八进制、十进制和十六进制数表示。这些数值可以是BYTE, WORD,DWORD,SINT, USINT,INT,UINT,DINT,UDINT,REAL或LREAL 类型。
14 //十进制数2#1001_0011 //二进制数8#67 //八进制数16#A //十六进制数
对IEC61131-3标准数据类型的介绍到这里结束,大家有什么疑问可在留言区提出,我会一一解答。
往后将对IEC61131-3的自定义数据类型作详细介绍,有需要的朋友请多多关注!