Step7-数据类型详细说明总结汇总复习过程
- 格式:docx
- 大小:214.77 KB
- 文档页数:8
STEP7中的基本数据类型⑴位(BOOL )位数据的数据类型为BOOL (布尔)型,在软件编程中BOOL变量的值1和0常用英语词TURE (真)和FALSE (假)来表示,对应二进制数中的“ 1和“0,常用于开关量的逻辑运算,存储空间为1位。
⑵字节(BYTE)字节数据长度为8位,数据格式为B#16#,B代表BYTE,表示数据长度为一个字节(8位),# 16#表示十六进制,取值范围为B#16#0〜B#16#FF。
⑶字(WORD )字数据长度为16位,这种数据可采用4种方法进行描述。
二进制:二进制的格式为 2 #,如2 # 101,取值范围为2# 0〜2# 1111_1111_1111_1111, 书写时每4位可用下划线隔开,也可直接表示为2# 111111111111十六进制:十六进制的格式为W # 16#, W代表WORD,表示数据长度为16位,#16#表示十六进制,数据取值范围为W # 16# 0〜W # 16 # FFFF。
BCD码:BCD码的格式为C#,取值范围为C# 0〜C# 999。
BCD码是用4位二进制表示1位十进制数,4位二进制中的0000〜1001组合分别表示十进制中的0〜9, 4位二进制中的1010〜1111组合放弃不用。
BCD码的最高4位用来表示符号,十六位BCD码的取值范围为—999〜+999。
在STEP7的数据格式中,BCD码的取值只取正值,与最高4位的符号无关。
无符号十进制数:无符号十进制数的格式为 B #( X, X),取值范围为B #( 0, 0)〜B #( 255, 255),无符号十进制数是用十进制的0〜255对应二进制数中的0000_0000〜1111_1111 ( 8位),16位二进制数就需要两个0〜255的数来表示,例如:B# (12, 254)= 2# 0000_1100_1111_1110_12 ― 254上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。
S7-300/400系列PLC的数据类型2013-04-01 03:09:03 来源:朗特威自动化商城用户程序中所有的数据必须通过数据类型来识别,只有相同数据类型的变量才能进行计算,数据类型主要分为三类:•STEP7中提供的基本数据类型;•复合数据类型,编程人员可以将基本数据类型组合为复合的数据类型;•参数类型,适合函数或函数块中形参的数据类型。
梯形图、语句表和功能块图的指令系统也是与数据类型相对应的,位逻辑指令只能对位信号进行操作.语句表中的装载(L)与传送(T)指令与梯形图、功能块图中的移动 (MOVE)指令只能对字节、字和双字进行操作。
一个位是一个二进制的数字,通过“0”或“1”表示,一个字节由8个位组成,一个字由16个位组成,一个双字由32个位组成。
数学运算指令对字节、字和双字进行操作,这些字节.字和双字经过不同的编码可以转换为整数和浮点数。
一、基本数据类型基本数据类型共包含12种,每一个数据类型都具备关键字、数据长度、取值范围和常数表达格式等属性。
以字符型数据为例,该类型的关键字是Char,数据长度8bit,取值范围是ASCII字符集,常数表达格式为两个单引号包含的字符,如‘A’。
STEP7基本数据类型的关键字、长度、取值范围和以常数为例子的表示方法见表5-1。
下面简单介绍不同数据类型数据的表示方法:(1)WORD (字)一个WORD包含16个位,以二进制编码表示一个数值时,将16个位分为4个组,每个组4个位,组合表示数值中的一个数字或符号位,例如以十六进制表示数值W#16#1234 的方法如图5-2所示,使用十六进制表示数值时没有符号位,所以十六进制表示的数值不可能有负值。
以BCD码表示+123方法如图5-3所示,BCD码通常表示时间格式数值,与十六进制表示方法相比较,BCD码带有符号位,数值中不能含有A、B、C、D、E、F等十六进制数字。
计数器C同样使用BCD码表示,但是不识别符号位,例如+123和-123表示计数器的值相同,都是C#123。
STEP7程序块的类型及区别(总结转)_天外小屋STEP7 程序块的类型及区别(总结)在SIEMENS S7-300/400系列PLC中有多种程序块,如下图(在管理器右边的空白区域点击右键),主要有:组织块(OB),功能块(FB),功能(FC),数据块(DB)及系统功能(SFC)和系统功能块(SFB)等。
注:快捷菜单中的其它两项:数据类型和变量表。
数据类型(UDT)用于指定程序中数据元素的大小与格式;变量表(VAT)用来在程序调试和运行时修改和监视变量的内容(在地址栏中输入地址后,符号栏中会自动显示在符号表中定义的符号)。
这几种程序块的功能简要说明如下:说明:调用程序块:OB,FB,FC(可以调用除OB块外的其它程序块);被调用程序块:FB,FC,SFB,SFC。
1、组织块OBOB由系统自动调用,并执行用户在OB块中编写的程序,所以OB的基本作用是调用用户程序。
在OB块中编写程序的最大容量,S7-300是16KB,S7-400是64KB。
除主程序循环OB1外,其它OB均是由事件触发的中断。
2、函数FC函数FC有两个作用:(1)作为子程序用;(2)作为函数用,函数中通常带形参。
函数中程序的最大容量,S7-300是16KB,S7-400是64KB。
F C的形参通常也称为接口区,参数类型分为输入参数,输出参数,输入/输出参数和临时数据区。
在编写函数FC的输出参数时,应避免没有直接输出(否则,可能输出一个随机值,影响程序的判断)。
可以在函数的开始,将字输出参数清0,位输出参数复位。
3、函数块FBFB与FC相比,FB每次调用都必须分配一个背景数据块,用来存储接口数据区(TEMP类型除外)和运算的中间数据。
其它程序可以直接使用背景数据区中的数据。
FB中程序的最大容量,S7-300是16KB,S7-400是64KB。
FB的接口区比FC多了一个静态数据区(STAT),用来存储中间变量。
程序调用FB时,形参不像FC那样必须赋值,可以通过背景数据块直接赋值。
parator== IN1等于IN2<> IN1不等于IN2> IN1大于IN2< IN1小于IN2>= IN1大于或等于IN2<= IN1小于或等于IN22.整数就是没有小数位都是零的数,即能被1整除的数(如-1,-2,0,1,……)CMP "I(INT)整数比较CMP "D (DINT)比较双精度整数CMP "R (REAL)比较实数3.转换指令概述BCD_I BCD码转换为整数I_BCD 整型转换为BCD码BCD_DI BCD码转换为双精度整数I_DINT 整型转换为长整型DI_BCD 长整型转换为BCD码DI_REAL 长整型转换为浮点型4计数器指令S_CUD 双向计数器S_CD 降值计数器S_CU 升值计数器---( SC ) 设置计数器线圈•---( CU ) 升值计数器线圈•---( CD ) 降值计数器线圈5.S_CUD 双向计数器`6. S_CU 升值计数器7. S_CD 降值计数器8. ---( SC ) 设置计数器值9. ---( CU ) 升值计数器线圈10. ---( CD ) 降值计数器线圈11. ---(OPN)打开数据块:DB或DI如果想将数据块中的数据读出(如DB和DI),需要通过(OPN)打开数据块后才可读出。
12. ---(JMP)--- 无条件跳转13. ---(JMPN) 若“否”则跳转14. LABEL标号【整型数学运算指令】整型数学运算指令概述说明使用整数运算,您可以对两个整数(16和32位)执行以下运算:•ADD_I 加整数•SUB_I 减整型•MUL_I 乘整型•DIV_I除整型•ADD_DI 加双精度整数•SUB_DI 减长整型•MUL_DI 乘长整型•DIV_DI 除长整型•MOD_DI 返回分数长整型15. ADD_I 整数加16. SUB_I 整数减17. MUL_I 整数乘18. DIV_I 整数除19. MOD_DI 返回长整数余数20. 浮点运算指令概述IEEE32位浮点数属于REAL数据类型。
STEP7的基本数据类型及其用法汇总STEP7有3种数据类型:1. 基本数据类型2. 由基本数据类型组合而成的复合数据类型;3. 用来传送FB块和FC块参数的参数数据类型本文首先介绍一下基本数据类型。
STEP7的基本数据类型总共有7种,分别为:位(bit)、字节(Byte)、字(Word)、双字(Double Word)、整型数(INT)、双整型数(DINT)以及实数(REAL)。
1. 位(bit)取值:1、0寻址方式:地址标识符+字节地址+位地址。
图1 基本数据类型:位(bit)2. 字节(Byte)8位二进制数组成一个字节。
其中,第0位为最低位(LSB),第7位为最高位(MSB)。
寻址方式:地址标识符+B+字节地址,其中,'B'即代表字节。
图2 基本数据类型:字节(Byte)3. 字(Word)相邻的两个字节组成一个字,16位。
字用来表示无符号数,范围:[0000,FFFF]16进制,或[0,65535]10进制寻址方式:地址标识符+W+首字节地址,其中,'W'代表字。
图3 基本数据类型:字(Word)4. 双字(Double Word)相邻的两个字组成一个双字,32位。
双字也用来表示无符号,范围:[00000000,FFFFFFFF]16进制寻址方式:地址标识符+D+首字节地址,其中,'D'代表双字。
图4 基本数据类型:双字(Double Word)5. 整型数(INT)整数是有符号数,占16位。
最高位为符号位,0:正数;1:负数。
取值范围为:[-32768,32767]。
6. 双整型数(DINT)双整数也是有符号数,占32位。
最高位为符号位,0:正数;1:负数。
取值范围为:[-2147483648,2147483647]。
7. 浮点数(REAL)标准的浮点数格式如图5所示,占32位。
最高位为符号位,0:正数;1:负数。
图5 基本数据类型:浮点数(REAL)浮点数的优点是用32位的空间可以表示非常大和非常小的数。
parator== IN1等于IN2<> IN1不等于IN2> IN1大于IN2< IN1小于IN2>= IN1大于或等于IN2<= IN1小于或等于IN22.整数就是没有小数位都是零的数,即能被1整除的数(如-1,-2,0,1,……)CMP "I(INT)整数比较CMP "D (DINT)比较双精度整数CMP "R (REAL)比较实数3.转换指令概述BCD_I BCD码转换为整数I_BCD 整型转换为BCD码BCD_DI BCD码转换为双精度整数I_DINT 整型转换为长整型DI_BCD 长整型转换为BCD码DI_REAL 长整型转换为浮点型4计数器指令S_CUD 双向计数器S_CD 降值计数器S_CU 升值计数器---( SC ) 设置计数器线圈•---( CU ) 升值计数器线圈•---( CD ) 降值计数器线圈5.S_CUD 双向计数器`6. S_CU 升值计数器7. S_CD 降值计数器8. ---( SC ) 设置计数器值9. ---( CU ) 升值计数器线圈10. ---( CD ) 降值计数器线圈11. ---(OPN)打开数据块:DB或DI如果想将数据块中的数据读出(如DB和DI),需要通过(OPN)打开数据块后才可读出。
12. ---(JMP)--- 无条件跳转13. ---(JMPN) 若“否”则跳转14. LABEL标号【整型数学运算指令】整型数学运算指令概述说明使用整数运算,您可以对两个整数(16和32位)执行以下运算:•ADD_I 加整数•SUB_I 减整型•MUL_I 乘整型•DIV_I除整型•ADD_DI 加双精度整数•SUB_DI 减长整型•MUL_DI 乘长整型•DIV_DI 除长整型•MOD_DI 返回分数长整型15. ADD_I 整数加16. SUB_I 整数减17. MUL_I 整数乘18. DIV_I 整数除19. MOD_DI 返回长整数余数20. 浮点运算指令概述IEEE32位浮点数属于REAL数据类型。
STEP7中的基本数据类型W^(BGGL)位数据的数据类型为BOOL (布尔)型,在软件编程中BGGL 变量的值1和0常用英语单词TURE (真)和FALSE (假)来表示,对应二进制数中的“1”和“0”,常用于开关量的逻辑运算,存储空间为1位。
⑵字节(BYTE)字节数据长度为8位,数据格式为B#16#,B代表BYTE, 表示数据长度为一个字节(8位),#16#表示十六进制,取值范围为B#16#0〜B#16#FF。
⑶字(WORD)字数据长度为16位,这种数据可采用4种方法进行描述。
二进制:二进制的格式为2#,如2#101,取值范围为2#0〜2#1111_1111_1111_1111,书写时每4位可用下划线隔开,也可直接表示为2#111111111111。
十六进制:十六进制的格式为W#16#,W代表WORD, 表示数据长度为16位,#16#表示十六进制,数据取值范围为W#16#0〜W#16#FFFF。
BCD码:BCD码的格式为C#,取值范围为C#0〜C #999。
BCD码是用4位二进制表示1位十进制数,4位二进制中的0000〜1001组合分别表示十进制中的0〜9, 4位二进制中的1010〜1111组合放弃不用。
BCD码的最高4位用来表示符号,十六位86口码的取值范围为一999〜+999。
在STEP7的数据格式中,BCD码的取值只取正值,与最高4位的符号无关。
无符号十进制数:无符号十进制数的格式为B#(X, 义),取值范围为B#(0, 0)〜B#(255, 255),无符号十进制数是用十进制的0〜255对应二进制数中的0000_0000〜1111_1111 (8位),16位二进制数就需要两个0〜255的数来表示,例如:B# (12, 254)=2#0000_1100_1111_111012 254上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。
例如,如果想得到二进制数0000100110000111,可以使用2#0000_1001_1000_0111,也可以使用W#16#987,还可以使用C#987或者8#(9,135)。
S t e p7-数据类型详细说明总结汇总
STEP7中的基本数据类型
⑴位(BOOL)
位数据的数据类型为BOOL(布尔)型,在软件编程中BOOL变量的值1和0常用英语词TURE (真)和FALSE(假)来表示,对应二进制数中的“1”和“0”,常用于开关量的逻辑运算,存储空间为1位。
⑵字节(BYTE)
字节数据长度为8位,数据格式为B#16#,B代表BYTE,表示数据长度为一个字节(8位),#16#表示十六进制,取值范围为B#16#0~B#16#FF。
⑶字(WORD)
字数据长度为16位,这种数据可采用4种方法进行描述。
二进制:二进制的格式为2#,如2#101,取值范围为2#0~2#1111_1111_1111_1111,书写时每4位可用下划线隔开,也可直接表示为2#111111111111。
十六进制:十六进制的格式为W#16#,W代表WORD,表示数据长度为16位,#16#表示十六进制,数据取值范围为W#16#0~W#16#FFFF。
BCD码:BCD码的格式为C#,取值范围为C#0~C#999。
BCD码是用4位二进制表示1位十进制数,4位二进制中的0000~1001组合分别表示十进制中的0~9,4位二进制中的1010~1111组合放弃不用。
BCD码的最高4位用来表示符号,十六位BCD码的取值范围为-999~+999。
在STEP7的数据格式中,BCD码的取值只取正值,与最高4位的符号无关。
无符号十进制数:无符号十进制数的格式为B#(×,×),取值范围为B#(0,0)~B#(255,255),无符号十进制数是用十进制的0~255对应二进制数中的0000_0000~
1111_1111(8位),16位二进制数就需要两个0~255的数来表示,例如:
B#(12,254)=2#0000_1100_1111_1110
12 254
上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。
例如,如果想得到二进制数0000100110000111,可以使用2#0000_1001_1000_0111,也可以使用W#16#987,还可以使用C#987或者B#(9,135)。
在STEP7中,比较常用的是十六进制,即W#16#这种格式。
⑷双字(DOUBLE WORD)
数据长度为32位,双字的数据格式与字的数据格式相同,也有4种方式,分别为:
二进制:取值范围为2#0~2#1111_1111_1111_1111_1111_1111_1111_1111。
十六进制:取值范围为DW#16#0~DW#16#FFFF_FFFF。
BCD码:取值范围为C#0~C#9999999。
无符号十进制数:取值范围为B#(0,0,0,0)~B#(255,255,255,255)。
⑸整数(INT)
整数数据类型长度为16位,数据格式为带符号十进制数,16位中最高为符号位。
正整数是以原码格式进行存储的,如+786,对应的二进制码为2#0000_0011_0001_0010,而负整数则表示为正整数的二进制补码,即对应正整数的二进制码取反后加1,例如负整数-786,对应的二进制码为2#
1111_1100_1110_1110。
将负零(1000_0000_0000_0000)定义为-32768因此取值范围为-32768~32767。
0表示正,1表示负。
⑹双整数(DOUBLE INT)
双整数的数据类型长度为32位,数据格式为带符号十进制数,用L#表示双整数。
双整数的二进制码与整数的换算方式一致,其取值范围为L#-2147483648~L#2147483647。
⑺实数(REAL也叫浮点数Float)
实数的数据类型长度为32位,是以IEEE浮点数格式转换为二进制数存储的,其取值范围为
±3.402823e+38~±1.1755494e-38。
实数用1.m×2E例如123.4可表示为1.234×102。
式中:指数E=e-127(1≤e≤254)为8位整数
符号位(S):S=0为正值S=1为负值
规定尾数的整数部分总是为1,只保留尾数的小数部分m(0~22位)
S=0
指数:30位=1 27
29位=0 26
28位=0 25
27位=0 24
26位=0 23
25位=0 22
24位=1 21
23位=0 20
e=27+21=128+2=130
E=e-127=130-127=3
尾数m:22位=1 2-1
21位=0 2-2
20位=0 2-3
19位=0 2-4
18位=1 2-5
m=2-1+2-5=0.5+0.03125=0.53125
浮点数值=(1+0.53125)×23=1.53125×8=12.25
用很小的存储空间(4个字节),可以表示非常大或非常小的数,PLC的输入和输出的数值大多是整数,实数的运算速度比整数的慢。
(8)S5TIME(SIMATIC时间)
S5TIME时间数据类型长度为16位,包括时基和时间常数两部分,时间常数采用BCD码(二~十进制格式)。
S5TIME时间数据类型结构如下图所示:
(9)IEC时间(TIME)IEC时间数据长度为32位,时基为固定值1ms,数据类型为双整数,所表示的时间值为整数值乘以时基。
格式为:
T#aaD_bbH_ccM_ddS_eeeMS
其中aa=天数,bb=小时数,cc=分钟,dd=秒,eee=毫秒。
根据双整数的最大值为2147483647,乘以时基1ms,可以算出,IEC时间的最大值为T#24D_20H_31M_23S_648Ms。
使用IEC时间时,时基保持不变,且精度较高,为1ms。
(10)IEC日期(DATE)
IEC日期数据长度为16位,数据类型为整数,以1日为单位,日期从1990年1月1日开始,1990年1月1日对应的整数为0,日期每增加一天,对应的整数值加1,如23,对应1990年1月22日。
IEC日期格式为D#_年_月_日,例如D#1992_12_2。
取值范围为D#1990_1_1~D#
2163_12_31。
(11)日计时(TIME_OF_DAY)
日计时是表示一天中的24小时,数据长度为32位,数据类型为双整数,以1ms为时基,取值范围为TOD#0∶0∶0∶0~TOD#23∶59∶59.999。
(12)字符(CHAR)
字符数据的长度为8位,字符采用ASCII码的存储方式。
复式数据类型
参数类型
用于向FB和FC传送参数。