step7 数据类型
STEP7中的基本数据类型-重要
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位的二进制数,无论你使用哪种方式都可以。
《step7数据类型》课件
随着计算机技术的进步和应用需求的不断增加,各种复杂数据类型已经被引入编程语言和应 用程序中。未来,我们可以期待更多强大和灵活的数据类型出现。
多种数据类型之间可以进行各种基本 操作和一些高级操作。这帮助我们更 好地理解和使用各种数据类型。
总结与展望
数据类型的重要性和应用场景
数据类型是编程语言中一个重要的构成部分,它可以帮助我们更好地理解程序代码以及处理 复杂数据。数据类型的应用非常广泛,除了编程之外,数据类型还在数据库和其他应用领域 中发挥着重要的作用。
结构体类型是一种复合数据类型,它可以组合多个不同类型的数据项。这使得它 成为存储和处理复杂数据的理想选择。
3
枚举类型
枚举类型是一种复合数据类型,它可以定义一组命名的常量值。这为代码编写和 维护带来了很多便利。
数据类型转换
隐式类型转换
隐式类型转换是自动进行的类型转换,例如将一个整数转换为浮点数。
显式类型转换
显式类型转换是手动进行的类型转换,例如将一个浮点数转换为整数。
强制类型转换
强制类型转换是一种特殊的显式类型转换,会忽略数据精度或导致数据的丢失。
数据类型的存储
பைடு நூலகம்
数据类型在内存中的表示
不同的数据类型在内存中的表示不同,这主要涉 及到计算机中的二进制数表示。
数据类型的大小和对齐规则
不同的数据类型在内存中占用的大小不同,这取 决于它们的位数和精度。对齐规则是为了方便计 算机读取数据而设计的。
字符类型是一种基本数据类型,用于表示单个 字符。它们可以代表任何人类可读的字符。
布尔类型
布尔类型是一种基本数据类型,用于表示真或 假。它们通常用于控制结构和条件语句。
S7数据类型说明
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-数据类型详细说明总结汇总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_111012 254上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。
05_STEP 7数据类型和变量
月 (01 ... 12) 小时 (00 ... 23) 秒 (00 ... 59)
Byte n+1
Byte n+3
Byte n+4
Byte n+5
Byte n+6
毫秒 (000 ... 999)
星期 (1..7) Byte n+7
1=星期日 2=星期一 3=星期二 4=星期三 5=星期四 6=星期五 7=星期六
Actual_speed: REAL Set_speed: REAL
变量可以保存并在以后继续处理数值
扰动: BOOL 使能: BOOL
变量特性及变量的声明
变量声明确定变量的如下特性: 符号名 数据类型 有效范围
声明类型变量可以: 在全局符号表中声明 (基本数据类型) 在全局数据块的声明表中进行声明 (所有数据类型) 在逻辑块的声明表中进行声明 (OB,FB和FC)
Word limit 基本数据类型 元素
Word limit ARRAY类型 元素
6 5 4 3 2 1
Filler byte Word 1 Byte 3 Word 2 Word limit STRUCT类型 元素
. . .
. . .
1) n
. . .
= even
用户自定义数据类型:UDT
UDT用户自定义数据类型:
复杂数据类型 (长度大于32位)
•时间型 (DATE_AND_TIME) •数组型 (ARRAY) •结构型 (STRUCT) •字符串型(STRING)
用户自定义数据类型 (长度大于32位)
UDT数据类型 (用户自定义型)
STEP 7中的基本数据类型
STEP7数据类型和变量
STRUCT Speed: INT Current: REAL END_STRUCT
UDT 作为数组元素
Drive: ARRAY[1..4] UDT1
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2019/5/18 PRO2_05E.7
SITRAIN Training for
Automation and Dals: ARRAY[1..20] INT
STRUCT (结构,不同数据类型一组 元素的集合)
UDT(用户自定义类型 = 由基本数据类型和/或 复杂数据类型组成的“模板” )
用户自己定义 用户自己定义
Motor: STRUCT Speed: INT Current: REAL END_STRUCT
SIMATIC S7
Siemens AG 2001. All rights reserved.
•时间型 (DATE_AND_TIME) •数组型 (ARRAY) •结构型 (STRUCT) •字符串型(STRING)
UDT数据类型 (用户自定义型)
Date: File:
2019/5/18 PRO2_05E.4
数据类型建立: 允许范围 (INT:-32 768 ... +32 767,等等。) 允许使用的指令 (算术指令: +,- 等。) 存储器中位的表示方法抽象出的数据类型
变量可以保存并在以后继续处理数值
Actual_speed: REAL Set_speed: REAL
扰动: BOOL
使能:
Meas_point[10]: Real
SIMATIC S7
Step7-数据类型详细说明总结汇总复习过程
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_111012 254上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。
STEP7的基本数据类型及其用法汇总
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位的空间可以表示非常大和非常小的数。
S7-300基本数据类型
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)。
Step7-数据类型详细说明总结汇总
Step7-数据类型详细说明总结汇总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_111012 254上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。
step7 数据类型
3.4.2绝对地址寻址
位寻址 字节寻址 字寻址 双字寻址
位寻址
位寻址是最小存储单元的寻址方式。寻址时, 采用以下结构:
存储区关键字+字节地址+位地址: 例如: Q 10.3 Q:表示输出过程暂存区; 10:表示第十个字节;字节地址从0开始,
最大值由该存储区的大小决定; 3:表示位地址为3,位地址的取值范围是
存储区关键字+字的关键字(W)+第一字 节地址
例如:IW10 I:表示输入过程暂存区 W:表示字word 10:表示从第10个字节开始,包括
两个字节的存储空间,即IB10和IB11。
字寻址
双字寻址
双字寻址时,访问一个32位的存储区域,包含4个 字节。寻址时采用以下结构:存储区关键字+字 的关键字(D)+第一字节地址
(2) OB101为再启动类型(热启动)。启动时,所有数据 (无论是保持型和非保持型)都将保持原状态,并且将OB101 中的程序执行一次。然后程序从断点处开始执行。剩余循环执行 完以后,开始执行循环程序。热启动一般只有S7-400具有此功 能。
(3) OB102为冷启动方式。CPU318-2和CPU417-4具有 冷启动型的启动方式,冷启动时,所有过程映像区和标志存储器、 定时器和计数器(无论是保持型还是非保持型)都将被清零,而 且数据块的当前值被装载存储器的原始值覆盖。然后将OB102 中的程序执行一次后执行循环程序。
位逻辑指令 以上程序的时序图
3.6实训四:PLC控制一台电机正反转
使用S7-300PLC实现一台电动机的正反 转控制。控制要求如下:要求能实现电 机的正转和反转控制,并能进行正反转 的直接切换。另外,还可进行正反向的 点动控制,当电机处于正常运行时,点 动按钮不起作用。
STEP7中的基本数据类型-重要
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_111012 254上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。
例如,如果想得到二进制数0000100110000111,可以使用2#0000_1001_1000_0111,也可以使用W#16#987,还可以使用C#987或者B#(9,135)。
05_STEP 7数据类型和变量
数据类型描述了数据基本特性z连续区域:例如变量声明确定变量的如下特性:符号名基本数据类型(最长32位)复杂数据类型(长度大于32位)用户自定义数据类型(长度大于32位)•位(Bit)数据类型(BOOL, BYTE, WORD, DWORD, CHAR)•算术数据类型(INT, DINT, REAL)•时间数据类型(S5TIME, TIME, DATE, TIME_OF_DAY)•时间型(DATE_AND_TIME)•数组型(ARRAY)•结构型(STRUCT)•字符串型(STRING)UDT数据类型(用户自定义型)长度(单位:位)BOOLBYTEWORD DWORD CHARINTDINTREALS5TIMETIMEDATETIME-OF-DAY1 8 16 32816 32 32 1632 16 32关键字类型常数示例1或0B#16#A9W#16#12AFDW#16#ADAC1EF5'w'12365539或L#-11.2或34.5E-12S5T#5s_200msT#2D_1H_3M_45S_12MSD#1999-06-14TOD#12:23:45.12“更好地z适合于任务长度(位)DATE_AND_TIME(日期和时间)STRING(字符串,最多254个字符)ARRAY(相同数据类型一组元素的集合)STRUCT(结构,不同数据类型一组元素的集合)UDT(用户自定义类型=由基本数据类型和/或复杂数据类型组成的“模板”)648 * (字符数+2)用户自己定义用户自己定义用户自己定义关键字示例DT#99-06-14-12:14:55.0´This is a string´´SIEMENS´Meas_vals: ARRAY[1..20]INTMotor: STRUCTSpeed: INTCurrent: REALEND_STRUCTUDT 作为块UDT 作为数组元素STRUCT Drive: ARRAY[1..4]Speed: INT UDT1Current: REALEND_STRUCT长度(位)TIMER COUNTER BLOCK_FB BLOCK_FC BLOCK_DB BLOCK_SDB PointerANY 16 16 16 48 80关键字示例Contact time: TIMER.SI #Contact_timeNoCompParts: COUNTER.LC #No_Comp_PartsRecall: BLOCK_FB.UC #RecallMeasure: POINTER.L P##Measure.Measured Values: ANY.L P##Meas_Values.DBxDBy DBz 位(Bit )存储器PIQ PIII/O 区域(P )分支位置来自本地数据堆栈的帮助变量功能FC10功能FC20功能块FB1OB1全局数据块DB20背景数据DB5ARRAYz数组是相同数据类型元素的组合在上面示例中,使用数据块编辑器,在DB5中声明了两个ARRAY 变量。
西门子S7-300的基本数据类型
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_111012 254上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。
例如,如果想得到二进制数0000100110000111,可以使用2#0000_1001_1000_0111,也可以使用W#16#987,还可以使用C #987或者B#(9,135)。
西门子S7-300的基本数据类型
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_111012 254上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。
例如,如果想得到二进制数0000100110000111,可以使用2#0000_1001_1000_0111,也可以使用W#16#987,还可以使用C #987或者B#(9,135)。
Step7 数据类型详细说明
位数
格式选择
数制与范围
应用举例
布尔(BOOL)
1
布尔量
0,1
字节(BYTE)
8
十六进制数
B#16#00---B#16#FF
字(WORD)
16
二进制数
十六进制数
BCD码
无符号十进制数
2#0---2#1111 1111 1111 1111
W#16#0—W#16#FFFF
C#0—C#999
B#(0,0)--B#(255,255)
2字节
指定执行逻辑块要使用的定时器如T4
计数器(Counter)
2字节
指定执行逻辑块要使用的计数器如C3
块 Block_FB
Block_FC
Block_DB
Block_SDB
2字节
如:FB20
FC101
DB12
SDB11
指针(Pointer)
6字节
定义内存单元,如 P#M30.0
ANY
10字节
如果实参的类型未知,或可以使用任意数据类型时 如P#M60.0, word5
S5T#0H_0M_0S_0MS---
S5T#2H_46M_30S_0MS
复式数据类型
数据类型
说明
日期时间 DT
DATE_AND_TIME
定义64位区(8字节)。用BCD码存储时间信息:
字节从低到高0--5分别对应年、月、日、小时、分、秒;
字节6和字节7的高位对应毫秒,字节7低位对星期几
字符串STRING
可以定义254个字符。字符串默认大小为256字节(存放254个字符加两个字节的字头)。可以通过定义字符串的实际数目来减少欲设置,如STRING[7] ‘SIEMENS’
STEP-7基本数据类型
TEP-7基本数据类型STEP 7基本数据类型[ 2007/9/9 13:59:21 | Author: 工控学徒 ]说明:(1)WORD(字)一个字为16位,以二进制编码表示一个数值时,将16位分为4组,每组4位,分别表示数值中的一个数字。
如16进制的W#16#1234的位图如下所示:使用16进制表示数值时没有符号位,所以16进制表示的数不会有负值。
以BCD码表示时带有符号位,和16进制表示方法一样,也把16位分别4组,每组4位分别表示一个BCD码数字,但每位不能超过9.如+123以BCD码表示时的位图如下所示:DWORD和WORD的表示方法相同,只不过位数为32位,分为8组,每组4位分别表示一个数字。
(2)INT(整数)一个INT型数值包括16位,在存储器中占有一个字的存储空间。
INT 型即可以表示正数,也可以表示负数,最高位为符号位(0表示正数,1表示负数)。
以二进制编码表示一个数值时,除符号位以外,将每一位信号的数值相加即可表示一个整数。
如+34位图如下图所示:一个负数的表示方法则是在正数的基础上将所有的位信号取反再加1,如-34的位图如下图所示:DINT(双整数)和INT的表示方法相同,只不过是32位。
(3)REAL(浮点数)一个浮点数为32位,占有2个字的存储空间。
一个浮点数包括符号位(S),指数(e)和尾数(m),三者分别占有的位图如下所示:指数(e)和尾数(m)的取值见下表:REAL数据类型的值都可以表示成1.m×2(e-bias)的形式,其中1≤e≤254,bias=127,S=0时为正值,S=1时为负值。
如12.25的表示方法如下:S=0;指数e=27+21=128+2=130;尾数m=2-1+2-5=0.5+0.03125=0.53125;浮点值=(1+m)×2(e-bias)=(1+0.53125)×2(130-127)=1.53125×8=12.25.浮点数12.25的位图表示如下:SIMENS PLC浮点数小数位数最多为6位,要避免两个相差大于107的浮点数运算,否则会出现不正常的结果,如10000000.0+1.0结果仍是10000000.0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.1.2功能FC和功能块FB
FC和FB都是用户自己编写的程序块,用 户可以将具有相同控制过程的程序编写在 FC或FB中,然后在主程序OB1或其他程 序块中(包括组织块和功能、功能块)调 用FC或FB。 FC或FB相当于子程序的功能, 都可以定义自己的参数
1. FC和FB的变量声明表的差别
2.FC和FB参数赋值不同
同步错误组织块
OB121、OB122:同步错误中断。如果在某特 定的语句执行时出现错误,CPU可以跟踪到程序 中某一具体的位置。由同步错误所触发的错误处 理组织块,将作为程序的一部分来执行,与错误 出现时正在执行的块具有相同的优先级。 编程错误,例如在程序中调用一个不存在的块, 将调用OB121。 访问错误,例如程序中访问了一个有故障或不存 在的模块,将调用OB122。
3.1.1组织块OB
启动组织块 循环执行的程序组织块 定期执行的程序组织块 事件驱动执行的程序组织块
1.启动组织块
(1)OB100为完全再启动类型(暖启动)。启动时,过程映像 区和不保持的标志存储器、定时器及计数器被清零,保持的标志 存储器、定时器和计数器以及数据块的当前值保持原状态,执行 OB100,然后开始执行循环程序OB1。一般S7-300PLC都采用 此种启动方式。 (2) OB101为再启动类型(热启动)。启动时,所有数据 (无论是保持型和非保持型)都将保持原状态,并且将OB101 中的程序执行一次。然后程序从断点处开始执行。剩余循环执行 完以后,开始执行循环程序。热启动一般只有S7-400具有此功 能。 (3) OB102为冷启动方式。CPU318-2和CPU417-4具有 冷启动型的启动方式,冷启动时,所有过程映像区和标志存储器、 定时器和计数器(无论是保持型还是非保持型)都将被清零,而 且数据块的当前值被装载存储器的原始值覆盖。然后将OB102 中的程序执行一次后执行循环程序。
3.2STEP7的程序结构和编程语言
STEP7的程序结构可分为以下三类: 1.线性程序结构 2.分块程序结构 3.结构化程序结构 编程语言 (三种基本编程语言) 1.梯形图LAD 2.语句表STL 3.功能图FBD
3.1.4背景数据块和共享数据块
背景DB是和某个FB或SFB相关联,其内 部数据的结构与其对应的FB或SFB的变量 声明表一致。 共享DB的主要目的是为用户程序提供一 个可保存的数据区,它的数据结构和大小 并不依赖于特定的程序块,而是用户自己 定义。需要说明的是,背景DB和共享DB 没有本质的区别,它们的数据可以被任何 一个程序块读写。
3.定期的程序执行组织块
OB10、OB11~OB17为日期中断组织块。通过 日期中断组织块可以在指定的日期时间执行一次 程序,或者从某个特定的日期时间开始,间隔指 定的时间(如一天,一个星期,一个月等)执行 一次程序。 OB30、OB31~OB38为循环中断组织块。通过 循环中断组织块可以每隔一段预定的时间执行一 次程序。循环中断组织块的间隔时间较短,最长 为1分钟。最短为1毫秒。在使用循环中断组织块 时,应该保证设定的循环间隔时间大于执行该程 序块的时间,否则CPU将出错。
FC没有自己的背景数据块 FB有自己的背景数据块 FC的参数必须指定实参 FB的参数可根据需要决定是否指定实参
3.1.3系统功能SFC和系统功能块SFB
SFC和SFB是预先编好的可供用户调用的 程序块,它们已经固化在S7PLC的CPU中, 其功能和参数已经确定。一台PLC具有哪 些SFC和SFB功能,是由CPU型号决定的。 具体信息可查阅CPU的相关技术手册。通 常SFC和SFB提供一些系统级的功能调用, 如通讯功能、高速处理功能等。注意:在 调用SFB时,需要用户指定其背景数据块 (CPU中不包含其背景数据块),并确定 将背景数据块
延时中断组织块 硬件中断组织块 异步错误组织块 同步错误组织块
延时中断组织块
OB20~OB27:延时中断,当某一事件发 生后,延时中断组织块(OB20)将延时 指定的时间后执行。OB20~ OB27只能 通过调用系统功能SFC32而激活,同时可 以设置延时时间。
异步错误组织块
OB80~OB87:异步错误中断。异步错误 是PLC的功能性错误。它们与程序执行时 不同步地出现,不能跟踪到程序中的某个 具体位置。 在运行模式下检测到一个故障 后,如果已经编写了相关的组织块,则调 用并执行该组织块中的程序。如果,发生 故障时,相应的故障组织块不存在,则 CPU将进入STOP模式。
硬件中断组织块
OB40~OB47:硬件中断。一旦硬件中断 事件发生,硬件中断组织块OB40~OB47 将被调用。硬件中断可以由不同的模块触 发,对于可分配参数的信号模块DI、DO、 AI、AO等,可使用硬件组态工具来定义 触发硬件中断的信号;对于CP模块和FM 模块,利用相应的组态软件可以定义中断 的特性。
2.循环执行的程序组织块
OB1是循环执行的组织块。其优先级为最 低。PLC在运行时将反复循环执行OB1中 的程序,当有优先级较高的事件发生时, CPU将中断当前的任务,去执行优先级较 高的组织块,执行完成以后,CPU将回到 断点处继续执行OB1中的程序,并反复循 环下去,直到停机或者是下一个中断发生。 一般用户主程序写在OB1中。
第三章 STEP7编程技术
数据类型在----18页
3.1 STEP 7中的块
在STEP7软件中主要有以下几种类型的块: 组织块: OB(Organization Block) 功能: FC(Function) 功能块: FB(Function Block) 系统功能: SFC(System Function) 系统功能块:SFB(System Function Block) 背景数据块:DB(Instance Data Block) 共享数据块:DB(Share Data Block)