收藏 分享(赏)

西门子S7-300高级编程培训教材,内部教材__5、STEP_7中的数据类型和变量.ppt

上传人:yjrm16270 文档编号:4765124 上传时间:2019-01-11 格式:PPT 页数:28 大小:458KB
下载 相关 举报
西门子S7-300高级编程培训教材,内部教材__5、STEP_7中的数据类型和变量.ppt_第1页
第1页 / 共28页
西门子S7-300高级编程培训教材,内部教材__5、STEP_7中的数据类型和变量.ppt_第2页
第2页 / 共28页
西门子S7-300高级编程培训教材,内部教材__5、STEP_7中的数据类型和变量.ppt_第3页
第3页 / 共28页
西门子S7-300高级编程培训教材,内部教材__5、STEP_7中的数据类型和变量.ppt_第4页
第4页 / 共28页
西门子S7-300高级编程培训教材,内部教材__5、STEP_7中的数据类型和变量.ppt_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、STEP 7数据类型和变量,数据类型描述了数据基本特性 连续区域:例如:实际速度 “是/非” 特性:例如:扰动 数据类型建立: 允许范围 (INT:-32 768 . +32 767,等等。) 允许使用的指令 (算术指令: +,- 等。) 存储器中位的表示方法抽象出的数据类型 变量可以保存并在以后继续处理数值,Actual_speed: REAL,扰动: BOOL,Set_speed: REAL,使能: BOOL,变量及数据类型含义,变量声明确定变量的如下特性: 符号名 数据类型 有效范围 声明类型变量可以: 在全局符号表中声明 (基本数据类型) 在全局数据块的声明表中进行声明 (所有数据类型

2、) 在逻辑块的声明表中进行声明 (OB,FB和FC),变量特性及变量的声明,Meas_point: ARRAY110,STEP 7数据类型概述,基本数据类型 (最长32位),复杂数据类型 (长度大于32位),用户自定义数据类型 (长度大于32位),STEP 7中的基本数据类型,长度(单位:位),BOOL BYTE WORD DWORDCHARINT DINT REALS5TIMETIME DATE TIME-OF-DAY,1 8 16 32816 32 321632 16 32,关键字,类型常数示例,1或0 B#16#A9 W#16#12AF DW#16#ADAC1EF5w123 65539或

3、L#-1 1.2或34.5E-12S5T#5s_200msT#2D_1H_3M_45S_12MS D#1999-06-14 TOD#12:23:45.12,复杂数据类型的重要性,Motor: STRUCT,END_STRUCT,“更好地”构造数据: 适合于任务 具有“适当的”数据类型 在块调用中数据传输的精简形式: 一个参数传送“多个”数据项 使结构化编程成为可能 仅通过参数便实现块间“通信” 软件可重用性,5,. . CALL #ControllerMotor:=“Hall_1“.M5. . . . .,. . A #Motor.Enable . .,in Drive UDT1 out .

4、. stat Control. FB1,in Motor UDT1 out . .,STEP 7中的复杂数据类型,长度(位),DATE_AND_TIME (日期和时间)STRING (字符串,最多254个字符)ARRAY (相同数据类型一组 元素的集合)STRUCT (结构,不同数据类型一组 元素的集合)UDT(用户自定义类型 = 由基本数据类型和/或 复杂数据类型组成的“模板” ),648 * (字符数 +2)用户自己定义用户自己定义用户自己定义,关键字,示例,DT#99-06-14-12:14:55.0This is a string SIEMENSMeas_vals: ARRAY120I

5、NTMotor: STRUCT Speed: INT Current: REAL END_STRUCTUDT 作为块 UDT 作为数组元素STRUCT Drive: ARRAY14 Speed: INT UDT1 Current: REAL END_STRUCT,STEP 7参数类型,长度(位),TIMERCOUNTERBLOCK_FB BLOCK_FC BLOCK_DB BLOCK_SDBPointerANY,1616164880,关键字,示例,Contact time: TIMER . SI #Contact_timeNoCompParts: COUNTER . LC #No_Comp_P

6、artsRecall: BLOCK_FB . UC #RecallMeasure: POINTER . L P#Measure .Measured Values: ANY . L P#Meas_Values .,变量建立的区域,位(Bit)存储器,本地数据 堆栈,“传统“ PLC区域,本地数据堆栈工作方式,为组织块 OB1分配 L Stack,如:256个字节,5,OB1,FB1,FC5,FC10,. . CALL FB1 . .,1,2,3,4,5,. . CALL FC10 . .,. . CALL FC5 . .,6,LD for OB1,LD for OB1,1,LD for FB1,

7、LD for OB1,2,LD for FB1,LD for FC5,循环开始,LD for OB1,3,LD for FB1,LD for OB1,4,LD for OB1,5,LD for FC10,free,free,free,free,free,free,LD for OB1,6,free,LD= 本地数据,示例:暂存器的替换,LAD中的分支,来自本地数据堆栈的 帮助变量,STL表示,分支位置,数据块(DB),功能 FC10,功能 FC20,功能块 FB1,OB1,数据类型:ARRAY,ARRAY(域): 数组是相同数据类型 元素的组合 数组的声明: 一维数组:域名:ARRAY最小索引

8、最大索引 OF 数据类型; 多维数组: 域名: ARRAY最小索引1最大索引1,最小索引2最大索引2,. OF数据类型;索引:数据类型INT(-32768.32767)示例: 数组变量的声明: 一维:Meas_value: ARRAY110 OF REAL; 多维:Position: ARRAY15,28,. OF INT; 数组变量的访问: L #Meas_value5 / 装载数组的第5个元素 / 将Meas_value装载到ACCU1中去 T #Result10,5,Meas_value: ARRAY110,. .,ARRAY的声明和初始化,DB5 “Declaration view“,

9、DB5 “Data view“,存储器中ARRAY变量的存储,Byte n1),BYTE, CHAR数据类型,一维数组 多维数组 BOOL数据类型,8,7,6,5,4,3,2,1,7 6 5 4 3 2 1 0,12,11,10,9,Byte n+1,Byte n1),Byte n+1,Byte n+2,Byte 1,Byte 2,Byte 3,WORD, DWORD,.数据类型,Byte n1),Byte n+1,Byte n+2,Byte 3,. . .,Word 2,Byte n+2,. . .,示例 ARRAY12,13,12 OF BYTE,Byte n1),Byte n+1,Byt

10、e n+2,Byte 1.1.1,Byte 1.1.2,Byte 1.2.1,. . .,Byte 1.2.2,Byte 1.3.1,Byte 1.3.2,Byte 2.1.1,Byte 2.1.2,Byte 2.2.1,Byte 2.2.2,Byte 2.3.1,Byte 2.3.2,1) n = 偶数,Word 1,等,STRUCT(结构): 结构是不同数据类型 元素的组合 结构的声明:结构名称: STRUCT 元素1名称: 数据类型; 元素2名称: 数据类型; . END_STRUCT 示例: 结构变量的声明: 访问结构变量: MotorControl : STRUCT S #Motor

11、Control.ON ON : BOOL; L #MotorControl.ActualSpeed OFF : BOOL; T #MotorControl.SetSpeed SetSpeed : INT; . ActualSpeed : INT; END_STRUCT;,数据类型:STRUCT,Motor: STRUCT,END_STRUCT,结构(STRUCT)的声明,示例: 数组 结构 数组的声明,DB6 “Declaration view“,DB6 “Data view“,存储器中STRUCT变量的存储,Byte n1),基本数据类型结构 复杂数据类型结构,6,5,4,3,2,1,7 6

12、 5 4 3 2 1 0,Byte n+1,Byte n+2,Byte 1,Byte 2,Byte 3,Byte n+8,Byte n+9,Byte 3,Word 1,Word 2,. . .,1) n = even,Filler byte,Filler byte,Byte n+3,Byte n+4,Byte n+5,6,5,4,3,2,1,Filler byte,Byte n+6,Byte n+7,. . .,基本数据类型 元素,Word limit,ARRAY类型 元素,STRUCT类型 元素,Word limit,. . .,Word limit,用户自定义数据类型:UDT,UDT用户自

13、定义数据类型: 在声明部分创建了 一个数据模板 供以后使用 对程序文件夹的所有 块来说,是全局有效的 示例: 新数据类型(结构)的定义: UDT1 STRUCT SetSpeed : REAL; . ActualSpeed : REAL; Enable : BOOL; Disturbance : BOOL; END_STRUCT; 变量的声明: Motor_1: UDT1; Motor_2: UDT1; 对变量的访问: L #Motor_1.ActualSpeed,UDT1: STRUCT,END_STRUCT,UDT的使用,UDT5,FC23,数据类型: DATE_AND_TIME,Byte

14、 n1),Byte n+2,Byte n+4,Byte n+1,Byte n+3,Byte n+5,年 (90 . 89),结构:,月 (01 . 12),日 (01 . 31),小时 (00 . 23),分钟 (00 . 59),秒 (00 . 59),Byte n+6,Byte n+7,毫秒 (000 . 999),星期 (17),所有数值都以BCD码格式存储 变量的预先设置: DT#年-月-日-小时:分钟:秒.毫秒示例:DT#1998-03-21-17:23:00:00 通过IEC-Library功能处理,1=星期日 2=星期一 3=星期二 4=星期三 5=星期四 6=星期五 7=星期六

15、,1) n = 偶数,处理DT型变量的功能,标准库V3.x里的 IEC库 FC1 (AD_DT_TM):功能FC 1将一个时间段(TIME格式)加到一个时刻时间(DT格式)上去,并返回新的时刻时间。 FC34 (SB_DT_DT):功能FC 34将两个时刻时间(DT格式)相减,返回一个时间段(TIME格式) 。 FC35 (SB_DT_TM) :功能FC 35从一个时刻时间(DT格式)上减去一个时间段(TIME格式) ,并返回新的时刻时间(DT格式) 。 FC3 (D_TOD_DT) :功能FC 3将DATE和TIME_OF_DAY (TOD)日期格式组合起来,并将它们转换成DATE_AND_

16、TIME(DT)这种日期格式。 FC6 (DT_DATE) :功能FC 6是从DATE_AND_TIME格式中提取日期。 FC7 (DT_DAY) :功能FC 7是从DATE_AND_TIME格式中提取星期。. FC8 (DT_TOD) :功能FC 8是从DATE_AND_TIME格式中提取TIME_OF_DAY。 DT#变量比较函数: FC9 (EQ_DT),FC12 (GE_DT), FC14 (GT_DT),FC18 (LE_DT),FC23 (LT_DT),FC28 (NE_DT),数据类型: STRING,STRING (字符串)型变量: 数据类型STRING表示了一个最多有254字

17、符的字符串 应用:处理消息文本 声明方法: 字符串名称: STRING最大数目: I初始化的文本 (这样声明的字符串变量最多可有maxNo个字符,maxNo: 0. 254) 字符串名称: STRING: 初始化的文本 (这样声明的字符串变量最多可有254个字符)示例: 变量的声明: Fault signal : STRING Motor failure_4 (变量Fault signal,并初始化为上面的文本内容) Warning : STRING50 (“empty” 变量Warning,最多可以接受50个字符) 处理: 基本访问方式:L #Fault signal5 (装在变量Fault

18、 signal中的第5个字符) 通过IEC库里的FC进行处理,存储器中字符串(STRING) 变量的存储,Byte n1),示例: 声明并初始化 Given name: STRING8: OTTO 存储STRING变量“Given name“,Byte n+1,Byte n+2,最大长度= 8,当前长度= 4,1st. char= O,Byte n+8,. . .,1) n = 偶数,2nd. char= T,Byte n+3,Byte n+4,Byte n+5,Byte n+6,Byte n+7,3rd. char= T,4th. char= O,指定可存储字符的最大数目,即 在声明中所指定

19、的长度,指定存储在STRING变量里的 当前字符个数,B#16#00,B#16#00,B#16#00,Byte n+9,B#16#00,由IEC库功能评估的有关可存储字符的最大数目 或当前长度的信息。.,处理STRING型变量的功能 (挑选部分),标准库里的 IEC库 FC2 (CONCAT):功能FC2是将两个STRING变量组合成一个字符串。 FC4 (DELETE) :功能FC 4是在一个字符串中删除L个字符,直到字符P位置为止。 FC11 (FINF) :功能FC 11提供第一个字符串里的第二个字符串的位置。 FC17 (INSERT) :功能FC 17是将参数IN2处的字符串插入到参

20、数IN1处的字符串的字符Pth之后。 FC20 (LEFT) :功能FC 20提供一个字符串的第一个L个字符。 FC21 (LEN) :功能FC 21输出字符串当前长度(有效字符数) 。 FC26 (MID) :功能FC 26提供字符串的中间部分。 FC31 (REPLACE) :功能FC 31是用第二个字符串(IN2)替换第一个字符串(IN1)的L个字符直到P字符位置为止(包括P字符)。 FC32 (RIGHT) :功能FC 32提供一个字符串的最后L个字符。 STRING变量比较的相关功能: FC10 (EQ_STRING),FC13 (GE_STRING),FC15 (GT_STRING),FC19 (LE_STRING),FC24 (LT_STRING),FC29 (NE_STRING),示例5.1:复杂数据类型的使用,. . .,UDT99 “Motor“,DB51 “Conv_area_Motors“,Hall_1,示例5.2:复杂数据类型的访问,附加练习5.3: 使用SFC 1(READ_CLK)读取实时时钟,SFC1,EN,RET_VAL,ENO,?.?,CDT,?.?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报