西门子S7-300高级编程培训教材-内部教材-12、用于S7M7的组态工具_第1页
西门子S7-300高级编程培训教材-内部教材-12、用于S7M7的组态工具_第2页
西门子S7-300高级编程培训教材-内部教材-12、用于S7M7的组态工具_第3页
西门子S7-300高级编程培训教材-内部教材-12、用于S7M7的组态工具_第4页
西门子S7-300高级编程培训教材-内部教材-12、用于S7M7的组态工具_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

S7-GRAPHS7/M7工程工具SCLCFCSFCHIGRAPH1234S7/M7工程工具S7-GRAPHSCLCFCSFCHIGRAPH1234S7/M7工程工具S7-GRAPHSCLCFCSFCHIGRAPH1234顺序控制系统的程序结构S1步1S2步2T1转换条件1电机限位开关步激活条件T2转换条件2输入1输入2步激活条件步1动作动作步2动作动作创建顺控器FBS7-GRAPH用户界面123S1顺控器元素S2T1T2S4T3初始步转换S5S6T4T5顺控器结束选择分支,打开并行分支,打开选择分支,闭合并行分支,闭合顺控器1S7S8T6T7S9T9顺控器2S8T9跳转到步8动作编程S20T20NC "Forward"L1S Q4.3D M3.0 T#4sN A:=B-C

"Door_closed"联锁()"Time_off"监控()"输入1""输2"步激活条件使用简单指令的动作块

N=未保存的赋值S=设定值(已保存)D=有延时,不保存赋值,延时时间为TL=时间限制,在限定时间内不保存赋值CALL=块调用Step_block_1N M1.1S M1.2R M1.3D M1.4 T#1H2M3SL M1.5 T#4MSCALL FC1步中的标准动作使用事件驱动指令的动作块

动作在事件发生的扫描周期 中执行一次

时间A1=确认L1=联锁错误到达L0=联锁错误离开S1=步已激活S0=步已取消激活V1=监控错误到达V0=监控错误离开Step_block_3A1 N M1.1L1 N M1.2L0 N M1.3S1 N M1.4S0 N M2.4V1 N M2.5V0 N M2.6由事件触发的动作使用定时器与计数器的动作块动作中的定时器和计数器Step_block_4S1CU C3A1CSC C2 C#123S1TL T5 S5T#2M3SL1TDC T6 S5T#4MS总是与事件关联。在发生事件的扫描循环中

引发执行一次动作也可以与联锁条件C组合计数器CS=设置计数CU=增计数CD=减计数CR=复位计数定时器TL=扩展脉冲TD=延时开TR=复位时间带指令的动作块动作中的数学运算Step_block_5N MW0:=IW40S1NC A_1:=B_2N C_1:=BCD_TO_NUM(IW4)A1N E_5:=EXP(MD22)S1N X_Diff:=X_new-X_oldS1N Path:=V_act*Delta_T总是需要动作

标识符N

也可以关联到一个事件

或/且结合联锁条件C赋值直接赋值,例如:A:=B使用内置函数赋值转换函数,例如C:=ROUND(D)数学函数,例如E:=SQRT(D)其它函数,例如F:=RLDA(G)使用算子赋值,例如A:=B+C固定指令顺控器前的固定指令顺控器后的固定指令“Limitswitch""EMER_OFF"()“Brakeclosed"“Controllerenable"()12"Valve_2open"3CALLFC1INIT:= (BOOL) (IN)“Safetydoorclosed"()1“Feedenable"“Pushbutton"固定条件固定块调用23CALLFC1INIT:= (BOOL) (IN)固定条件固定块调用CALLFC5TEMP:= (INT) (IN)PRESS:= (INT) (IN)RESULT:= (INT) (OUT)创建可执行块S1步1S2步2"Motor""Limitswitch"Step-enablingconditions"Input1""Input2"Step-enablingconditions保存顺控器为

Blocks中的可执行S7块FB17保存顺控器为SO中

的S7-GRAPH源文件S7-GRAPH源文件在OB1中集成FB调用块创建或者调用中的参数集最小调用参数1个输入参数,用于控制顺控器标准调用参数12个输入参数,用于控制顺控器7个输出参数,用于显示运行状态最大参数集17个输入参数,用于控制顺控器12个输出参数,用于显示运行状态标准参数集最小参数集S7-HiGraph软件包124位置凸轮开关索引输入索引输出旋紧/松开计数器轴承工件左转右转电机索引计数器轴承电机协调器使用状态图表编程的工具:机器划分为功能单元对每个功能单元创建状态图状态包含动作状态图以消息方式通信

可以使用S7-HiGraph优化自动化项目中的以下阶段:计划,组态编程与调试启动维护,诊断支持重新利用状态图方法的原理124位置凸轮开关索引输入索引输出旋紧/松开计数器轴承工件左转右转电机实例:铣床轮盘功能单元(FU)电机索引计数器轴承

状态图每个FU一张图附加一张协调图

标记计数器轴承电机协调器状态图的组件状态0,1,...表示为圆圈静态状态动态状态总是有一个激活状态状态配有动作

转移

表示为箭头转移配有转移条件和动作04123112111创建状态图HiGraph用户界面123转移条件编程

固定指令编程图组编程分配实际参数

选中的实例状态图之间的消息交换电梯状态图...电梯的接口声明状态2的入口动作ATo_floor_2;SDoor_2_opn;名称 数据类型 消息Door_2_opn bool outADoor_opnt01的转移条件门的状态图门的接口声明名称 数据类型 消息Door_opn bool inDoor_2_opn/Door_opn06315421111111132011111为消息分配实际值选中的实例保存和编译建立执行顺序菜单:

Edit->ExecuteOrder

编译菜单:

File->Compile

在OB1中集成参数INIT_SD赋值

FC

图组DB

图组的数据索引计数器轴承协调器电机S7-HiGraph中的调试功能S7-SCL高级语言编程编写PLC程序的高级语言与IEC61131-3文本兼容

(ST=结构化文本))PLCopen基础级认证包含高级语言的全部典型元素,例如算子、表达式、控制语句集成PLC功能,例如访问

I/O、定时器、计数器...)优势:结构清晰,易于阅读程序支持复杂算法和大数据量FUNCTION_BLOCKIntegratorVAR_IN Init :BOOL; //输出值复位

x :REAL; //输入值

Ta :TIME; //采样时间,ms

Ti :TIME; //集成时间,msulim :REAL; //输出值上限llim :REAL; //输出值下限END_VAR

VAR_OUTPUTy :REAL:=0.0; //初始化输出值为0

END_VARBEGIN IFTIME_TO_DINT(Ti)=0THEN//被?除 OK:=FALSE;

y:=0.0; RETURN;END_IF; IFInitTHEN y:=0.0;ELSE y:=y+TIME_TO_DINT(Ta)*x/TIME_TO_DINT(Ti);

IFy>ulimTHENy:=ulim;END_IF;

IFy<llimTHENy:=llim;END_IF;

END_IF;END_FUNCTION_BLOCKSCL源文件结构..FUNCTION_BLOCKFB10END_FUNCTION_BLOCK声明部分表达式部分属性块的声明部分声明部分Begin

(*语句部分*)FUNCTION_BLOCKfb_nameEND_FUNCTION_BLOCK属性CONSTCONSTANT:=5;P_Part:=0.8;END_CONSTVARVal1,Val2,Val3:INT;END_VAR块的语句部分声明部分Begin(*语句部分*)FUNCTION_BLOCKfb_nameEND_FUNCTION_BLOCK属性Begin//赋值实例Measuredvalue:=0;//控制表达式//的实例IFI1.1THENN:=0;SUM:=0.0;ELSIFSTART=TRUETHENN:=N+1;SUM:=SUM+IN;ELSEOK:=FALSE;END_IF;//子程序调用实例FB11.DB22(Pass:=10);S7-SCL中的表达式、算子和操作数表达式数学表达式 ((3+CONST_INT)*(VAR_INT**37)/3.14)比较表达式 A>=9逻辑表达式 (n>5)AND(n<20)算子赋值算子 :=数学运算符 *、/、MOD、DIV、+、-、**比较运算符 <、>、<=、>=、=<>逻辑算子 NOT、AND或&、XOR、OR操作数常量 30.0、FACTOR、'SIEMENS'扩展变量 Status、IB5、DB10.DW5、Motor.Current、 FC12(A:=On)括号中的表达式 ((3+CONST_INT)*(VAR_INT**37))S7-SCL中的语句赋值实例: A:=B+C;控制语句IF语句 IFI1.1THEN...ELSIF...ELSE...END_IFCASE语句 CASESELECTOROF1:...;2:...ELSE:

...END_CASEFOR语句 FORINDEX:=1TO49BY2DO...END_FORWHILE语句 WHILEINDEX<=50DO...END_WHILEREPEAT语句 REPEAT...UNTILINDEX:=51...END_REPEATCONTINUE语句 WHILEBOOL_1DO...CONTINUE...END_WHILEEXIT语句 WHILEBOOL_1DO...EXIT...END_WHILEGOTO语句 IFINDEX<23THENGOTOMARK;...RETURN语句 IFENABLEDTHENRETURN;... 功能块和功能调用FB或SFB调用 FB11.DB20(IN:=VAL1,BY:=VAL2);FC或SFC调用 RETURN:=FC32(IN:=VAL1,OUT:=VAL2);S7-SCL中的赋值局部变量基本数据类型 COUNTER:=(5+RUNVAR)*2; 结构整个结构 STRUCT_1:=STRUCT_2; 分量 STRUCT_1.COMP3:=STRUCT_2.COMP1;数组整个数组 ARRAY_1:=ARRAY_2;分量 ARRAY_1[I]:=ARRAY_2[J]; 全局变量CPU存储区绝对地址 VALUE:=IW10;符号地址 VALUE:=INPUT; //符号表中的“INPUT”变址 VALUE:=IW[INDEX];数据块绝对地址 VALUE:=DB11.DW5;符号地址 VALUE:=MOTOR.CURRENT; //MOTOR和CURRENT必须变址 VALUE:=MOTOR.DW[Index]; //在符号表中存在通过输入参数 VALUE:=I_PAR.DW[Index]; //I_PAR被声明为VAR_INS7-SCL中的IF语句语法 IF <表达式>THEN<语句> [ELSIF <表达式>THEN<语句>] //可选 . . [ELSE<语句>] //可选 END_IF实例 IFINPUT_OKTHEN N:=0;

SUM:=0.0;

OK:=FALSE; //设置OK标志为FALSE ELSIFSTART_OKTHEN N:=N+1;

SUM:=SUM+IN; ELSE OK:=FALSE; END_IF;S7-SCL中的WHILE语句语法 WHILE <表达式>DO<语句>

END_WHILE实例 FUNCTION_BLOCKSEARCH //SEARCH在符号表中声明 VAR

INDEX :INT;

KEYWORD :ARRAY[1..50]OFSTRING; END_VARBEGIN INDEX:=1; WHILEINDEX<=50ANDKEYWORD[INDEX]<>'KEY' DO

INDEX:=INDEX+2; END_WHILE;END_FUNCTION_BLOCK调用功能块作为全局实例调用绝对调用 FB10.DB20(X1:=5,X2:=IW12,...); (* 调用FB10,带背景数据

块DB20*)符号调用 DRIVE.ON(X1:=5,X2:=IW12,...); (* DRIVE和ON

在符号表中声明*)作为局部实例调用使用标识符调用 VAR

MOTOR :FB10; END_VAR BEGIN ... (* 可能在其它功能块中

MOTOR(X1:=5,X2:=IW12,...); 作为局部实例调用*)

用于辨识出错的“OK”标志

用于错误检测的全局位

(在块末尾复制到BR位)

实例: //设置OK变量为TRUE,激活

//一个检测,以查看

//以下动作是否被正确

//执行 OK:=TRUE;

SUM:=SUM+IN;

IFOKTHEN //加法执行正确

...

ELSE //加法溢出

...

END_IF;编译SCL源文件连续监视设置和编辑断点用于SIMATICS7和SIMATICM7的CFC

CFC(连续功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论