1、结构化编程,IEC 1131 标准,第一部分: 主要信息 定义 PLC 的术语PLC 的主要功能特点 第二部分: 设备要求 电气, 机械和功能上的要求 制造商需提供的信息 符合标准的规则 (一致性) 第三部分:编程语言 梯形图, 功能方框图,语句表, 顺序功能图和结构化文本 第四部分: 用户指南 系统分析和描述 PLC的选择和应用 安全和保护,安装和维护 第五部分: 通讯 模式,通讯块,与ISO协议的对应关系,Modul: IEC_T1D.,IEC1131 内容 - 第三部分,编译为标准代码的规则软件模型, 通讯模型, 编程模型可编程逻辑控制语言中的通用元件 数据类型和变量 功能和功能块 程序
2、和任务 指令表 (IL) (= 语句表 (STL) 结构化文本 (ST) (= 结构化控制语言 (SCL)梯形图(LD) (= LAD)功能方框图(FBD)顺序功能图(SFC) (= S7-GRAPH) 附加的语法规则和编程示例,Modul: IEC_T1D.,SIMATIC 管理器下的项目结构,项目,S7/M7 程序(未分配给硬件的),用 S7 块组成的用户程序, OBs, FBs, FCs, DBs, 等,STL 用户程序源文件,S7-300 可编程的 CPU,S7/M7 程序(分配给硬件的),用户程序,硬件站,STL 源文件,STEP7的块,块的组成部分,变量声明表,代码部分,块的首部(
3、36字节),块体变量声明部分和 程序部分或数据,压缩的接口描述,块的结构,结构化编程,OB 1,利用局部数据进行控制,FC1 (数学功能),OB1,FC1,Input1,Input2,Input3,Output_A,FC1,Input1,Input2,Input3,Output_A,MW5,3369,MW10,QW12,QW20,MW2,6869,MW16,I0.5,I0.5,( ),M5.1,O,#TEMP1 #INPUT3,#Output_A,0.0,2.0,4.0,6.0,8.0,in,in,in,out,temp,int,int,int,int,int,sample measure 1
4、,constant,offset,result,intermediate,局部变量,临时变量,局部数据堆栈的大小,对于 S7-300:,局部堆栈大小,优先级,256 bytes,1,27,总容量: 1.5 Kbyte (CPU 313316),启动程序 (只执行一次),循环扫描程序,块所需要的局部数据区的长度,rechts,程序所占用的局部数据区的总长度,练习1.1: 使用临时变量,QW6,示例:故障信息指示,Disturbance,LED,Acknowledge,Report Memory,要求,Disturb_ input,Report_ memory,Acknowledge,Edge_
5、mem_bit,Display,Flash_freq,FC 20,调用,可以分配参数的块,A i 1.2 R m 40.0 A i 1.3 Fp m 40.1 S m 40.0 A m 40.0 A m 10.3 O Anm 40.0 A i 1.3 = Q 4.3,不可以 分配参数的块,M 40.0,M 40.1,I 1.3,I 1.2,Q 4.3,M 10.3,实际参数,A #Acknowledge R #Report memory A #Disturb_input FP #Edge_mem_bit S #Report_memory A #Report_memory A #Flash_fr
6、eq O AN #Report_memory A #Disturb_input = #Display,可以分配参数的块,程序,定义形式参数,使用方法,图形显示,只能读,在块的左侧,只能写,在块的右侧,参数类型,输入参数,输出参数,输入/输出 参数,定义,in,out,In_out,可读/可写,在块的左侧,形式参数,FC 20 的变量声明表,编辑一个可分配参数的块,对于无参数分配的块,此处可能是: 绝对地址: I1.3 符号地址: “End_left”,Disturb_input,Acknowledge,Flash_freq,Edge_mem_bit,Display,ENO,EN,FC20,调用
7、一个分配了参数的块,Network 3: First Call,Network 4: Second Call,M40.1,“Position error”,“End left”,“Acknow.button”,M10.3,M40.0,“End right”,Q4.1,“Acknow.button”,M10.3,M40.2,符号的,寻址方式,符号,局部符号 形式参数,M40.3,Q5.4,Report_memory,LAD/FBD,STL,在块调用时使用EN/ENO参数,CALL FC 1 NOP 0,FC 1,EN,ENO,? . ?,无条件调用,FC 20 的变量声明表,练习1.2: 生成一
8、个分配了参数的FC块,1.,练习1.3: 调用一个分配了参数的FC块,Disturb_input,Report_memory,Acknowledge,Edge_mem_bit,Display,Flash_freq,第一次调用FC20时 的参数分配,M 40.0,M 40.1,I 1.3,I 1.2,Q 5.3,M 10.3,FC 20,Disturb_input,Report_memory,Acknowledge,Edge_mem_bit,Display,Flash_freq,M 40.2,M 40.3,I 1.4,I 1.2,Q 5.4,M 10.3,FC 20,第二次调用FC20时 的参数
9、分配,FB块,FB 2 EN Disturb. input Acknowledge Display Flash freq. ENO,DB 2,OB 1,FB块的变量声明表,用FB实现的故障信息显示,FB的声明表,生成背景数据块,1. 在FB调用时生成背景数据块,多重背景模型,DB10,普通背景模型,FB20,OB 1,Call FB20, DB10Disturb._Input:=Acknowledge:=Flash_Freq:=Display:=,Parameters and static variables of the 2nd. call of FB20,Call Dist_2Distur
10、b._Input:=Acknowledge:=Flash_Freq:=Display:=,Parameters and static variables of the 1st. call of FB20,Call Dist_1Disturb._Input:=Acknowledge:=Flash_Freq:=Display:=,练习1.4: 编写一个FB块,FB 20 的变量声明表,1.,练习1.5: 调用FB并调试,插入/删除块的参数可能遇到的问题,Save,调用被修改过的块时应做的更正,当调用块被打开时:,单击鼠标右键,练习1.6: 多台设备的风扇监控功能,A,B,C,=1,S_ODT,TI
11、MER_NO,ACKN,SIG,&,A,B,C,R,S,Q,=1,FLT,FC101,REPORT,A,B,C,ACKN,TIMER_NO,TV,FLT,SIG,功能,符号,练习1.7: 风扇监控功能的扩展,A,B,C,=1,S_ ODT,TIMER_NO,ACKN,SIG,&,A,B,C,R,S,Q,=1,FLT,FC101,REPORT,A,B,C,ACKN,TIMER_NO,TV,FLT,功能,符号,ENAB,&,ENAB,ENAB,SIG,练习1.8: 识别变量的类型,TYPE OF VARIABLE,总结: 块的调用, CALL FC1 UC FC1 CC FC1,STL,LAD,FBD,FC1,FB,无参数,无背景数据块, UC FB1 CC FB1,CALL,无参数,语言,FC,FC1,