STEP 7 Struct是什么数据类型
- 格式:doc
- 大小:23.50 KB
- 文档页数:2
S7-300/400的编程语言与指令系统3.1 S7-300/400的编程语言3.1.1 PLC 编程语言的国际标准IEC 61131是PLC 的国际标准,1992~1995年发布了IEC 61131标准中的1~4部分,我国在1995年11月发布了GB/T 15969-1/2/3/4(等同于IEC 61131-1/2/3/4)。
IEC 61131-3广泛地应用PLC 、DCS 和工控机、 “软件PLC ”、数控系统、RTU 等产品。
定义了5种编程语言1) 指令表IL(Instruction list):西门子称为语句表STL 。
2) 结构文本ST(Structured text):西门子称为结构化控制语言(SCL )。
3) 梯形图LD(Ladder diagram):西门子简称为LAD 。
4) 功能块图FBD (Function block diagram):标准中称为功能方框图语言。
5) 顺序功能图SFC(Sequential function chart):对应于西门子的S7 Graph 。
ͼ3-1 PLCµÄ±à³ÌÓïÑÔ˳Ðò¹¦ÄÜͼÌÝÐÎͼ¹¦ÄÜ¿éͼָÁî±í½á¹Îı¾3.1.2 STEP 7中的编程语言梯形图、语句表和功能块图是3种基本编程语言,可以相互转换。
1.顺序功能图(SFC) :STEP 7中的S7 Graph2.梯形图(LAD)直观易懂,适合于数字量逻辑控制。
西门子S7-300 PLC的数据类型汇总2010-07-14 11:12S7-300的数据类型分以下三种:基本数据类型、复合数据类型和参数类型。
一、基本数据类型1、位(bit)常称为BOOL(布尔型),只有两个值:0或1。
如:,,,等。
2、字节(Byte)一个字节(Byte)等于8位(Bit),其中0位为最低位,7位为最高位。
如:IB0(包括~位),QB0(包括~位),MB0,VB0等。
范围:00~FF(十进制的0~255)。
3、字(Word)相邻的两字节(Byte)组成一个字(Word),来表示一个无符号数,因此,字为16位。
如:IW0是由IB0和IB1组成的,其中I是区域标识符,W表示字,0是字的起始字节。
需要注意的是,字的起始字节(如上例中的“0”)都必须是偶数。
字的范围为十六进制的0000~FFFF(即十进制的0~65536)。
在编程时要注意,如果已经用了IW0,如再用IB0或IB1要特别加以小心。
4、双字(Double Word)相邻的两个字(Word)组成一个双字,来表示一个无符号数。
因此,双字为32位。
如:MD100是由MW100和MW102组成的,其中M是区域标识符,D表示双字,100是双字的起始字节。
需要注意的是,双字的起始字节(如上例中的“100”)和字一样,必须是偶数。
双字的范围为十六进制的0000~FFFFFFFF(即十进制的0~95)。
在编程时要注意,如果已经用了MD100,如再用MW100或MW102要特别加以小心。
以上的字节、字和双字数据类型均为无符号数,即只有正数,没有负数。
5、16位整数(INT,Integer)整数为有符号数,最高位为符号位,1表示负数,0表示正数。
范围为-32768~32767。
6、32位整数(DINT,Double Integer)32位整数和16位整数一样,为有符号数,最高位为符号位,1表示负数,0表示正数。
范围为-48~47。
7、浮点数(R,Real)浮点数为32位,可以用来表示小数。
1、数组(ARRAY)
将一组同一类型的数据组合在一起组成一个单位就是数组。
2、结构(STRUCT)
将一组同不同类型的数据组合在一起组成一个单位就是结构。
3、字符串(STRING)
字符串是由最多254个字符组成的一维数组。
4、日期和时间(DATE-AND-TIME)
用于存储年、月、日、时、分、秒、毫秒和星期的数据。
占用8个字节,BCD编码。
星期天代码为1,星期一~星期六代码分别是2~7。
如:DT#2004_07_15_12:30:15.200为2004年7月15日12时30分15.2秒。
5、用户定义的数据类型(UDT,User-DefinedDataTypes)
由用户将基本数据类型和复合数据类型组合在一起形成的数据类型。
可以在数据块DB和变量声明表中定义复合数据类型。
艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。
如需进一步了解台达PLC、西门子PLC、施耐德plc、欧姆龙PLC的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城/。
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位的空间可以表示非常大和非常小的数。
UDT型说明:从数据类型的意义上说UDT并不被CPU所识别,而是在离线程序中自定义(组合)的数据类型。
S7程序的自定义数据类型并不能装载到S7 CPU中。
UDT是由递增的编辑器创建并编辑或由源文件的编译而生成。
当在块调用中进行变量传递时是不能将UDT作为内存地址区域来传递的。
因此推荐将传递的变量指定为字节数据类型并与其数据长度相一致,或者使用UDT 的符号名来定义IN, OUT 和IN_OUT参数,因为系统将自动生成相对应的地址。
下表介绍了如何创建和参数化UDT类型变量的过程。
我们将以两组各十台相同的电机为例。
UDT1对应这些电机的所有输入变量。
步骤在STEP 7项目中插入自定义数据类型。
如图01鼠标选中"block”文件夹并点击右键,再弹出菜单中选择命令〕nsert New Object > Data Type”。
打开DB1将变量数据类型定义为UDT1 (符号名"Motor”)。
例如图05所示:两个数组(ARRAY )变量,每组包括 10个以UDT1为数据类型的变量(编号1到10)。
口 File Edit Insert PLC Debug Vie 1/'-.1 Options Wind 二叫,Help □I 谢明卬 副 总|电|包| 加通15 \|例!《忸| 凶图05由于此例两组电机是独立的,所以在DB1中要为每一组电机创建数据结构。
例如第一组的数据结构定义为数据类型为UDT1的数 组“Array[1..10] ”,符号名为“Halle 1 Motor”。
6选择菜单命令"View > Data View”可显示所有DB1数据。
IFile Edit Insert PLC Debug ”1 日闷 Options Windn'.'\' Help口|⑪然圜副星[电| c|c|阿曲|曰、同| [□面里]图注意事项:在数据块中变量定义为UDT情况下只能对实际值进行编辑。
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位的二进制数,无论你使用哪种方式都可以。
STEP 7 Struct是什么数据类型
请问STEP7Struct是什么数据类型
在什么样的情况下需要用到Struct数据类型!!
最佳答案
Struct(结构性类型)是由不同数据类型组成的、属于复合型数据类型,它是用来定义一组相关的数据,其长度由用户定义,它与数组(Array)类型相反(ARRAY是由相同类型的数据组成的数组)。
许多关于结构类型的书籍中提到的关于电机控制系统中,把一个电机所有控制元素,如运行速度、额度电流、起动电流和运行方向等作为参数或逻辑块的局部变量,并且在全局数据块中声明,这样利用它可以结构化大量的数据并且可以用符号进行处理,由于访问结构的元素包含结构的名称,使程序更容易读,指令编写更清晰。
如电机的一组不同类型的数据(称为元素)组成的结构命名为Motor_Data,并且放在共享数据块DB1中,为了用符号访问结构中的一个元素,需要给数据块分配一个符号名,如Drive_1.结构的关键字是“STRUCT“,结构的结束用END_STRUCT.这样在打开数据块DB1(符号名Drive_1),可以看到上面变量声明表为:
Address(地址)Name(名称)Type(类型)InitialValue (初始值)
0.0Struct
0.0Motor_Data(电机数据)Struct
0.0Operating_speed(运行速度)INT
2.0Rated_current(额定电流)REAL
6.0Start_current(起动电流)REAL
10.0Max_temperature(最大温度)REAL
14.0Turning_direction(转动方向)BOOL
=16.0END_STRUCT
=16.0END_STRUCT
如果访问上述结构中的某个元素,如Rated_current(额度电流),可以直接用下列指令:
L“Drive_1”.Motor_data.Rated_current
其中,“Drive_1”是数据块的符号名,该数据块包含结构、结构名称(用点分割)在数据块的后面。
结构的元素名(用点分割)跟在结构名的后面。