版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SIMATIC S7-300主讲:主讲: 罗庚兴罗庚兴大中型大中型PLCPLC应用教程应用教程大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构26.1 用户程序的基本结构用户程序的基本结构2021年10月16日星期六22时39分20秒6.1.1 用户程序中的块用户程序中的块用于循环处理,用户程序中的主程序。用于循环处理,用户程序中的主程序。,需要时才被及时地处理。,需要时才被及时地处理。,高优先级的,高优先级的OBOB可以中断低优先级的可以中断低优先级的OBOB。生成逻辑块生成逻辑块( (OBOB、FCFC、FB)FB)时可以声明临时局域数据。时可以声明临时局域数据。局
2、域局域( (Local)Local)数据,只能在生成它们的逻辑块内使用。数据,只能在生成它们的逻辑块内使用。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构32021年10月16日星期六22时39分20秒没有固定的存储区的块,其临时变量存储在局域数据没有固定的存储区的块,其临时变量存储在局域数据堆栈中。堆栈中。用共享数据区来存储那些在功能执行结束后需要保存用共享数据区来存储那些在功能执行结束后需要保存的数据。的数据。功能功能需要背景数据块需要背景数据块。有自己的存储区(背景数据块)的块。调用有自己的存储区(背景数据块)的块。调用FB FB 或或SFB SFB 时,必须指
3、定时,必须指定DI DI 的编号。的编号。数据以静态变量(数据以静态变量(STATSTAT)的形式存放在指定的背景据的形式存放在指定的背景据块块( (DI) DI) 中,临时变量中,临时变量TEMP TEMP 存储在局域数据堆栈中。存储在局域数据堆栈中。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构42021年10月16日星期六22时39分20秒数据块中没有数据块中没有STEP 7 STEP 7 的指令。的指令。块分为共享数据块和背景数据块。块分为共享数据块和背景数据块。应首先生成功能块,然后生成它的背景数据块。应首先生成功能块,然后生成它的背景数据块。系统功能块和系
4、统功能是为用户提供的已经编好程序系统功能块和系统功能是为用户提供的已经编好程序的块,可以调用不能修改。的块,可以调用不能修改。 包含系统组态数据,例如硬件模块参数和通信连接参包含系统组态数据,例如硬件模块参数和通信连接参数等。数等。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构56.1.2 用户程序使用的堆栈用户程序使用的堆栈2021年10月16日星期六22时39分20秒存储块的局域数据区的临时变量、组织块的启动信息、存储块的局域数据区的临时变量、组织块的启动信息、块传递参数的信息和梯形图程序的中间结果。块传递参数的信息和梯形图程序的中间结果。可以按位、字节、字和双字
5、来存取。可以按位、字节、字和双字来存取。 堆栈采用堆栈采用“先入后出先入后出”的规则存入和取出数据。最的规则存入和取出数据。最上面的存储单元称为栈顶。上面的存储单元称为栈顶。图图6-3中的中的FB1调用功能调用功能FC2,FC2的执行北组织块的执行北组织块OB81中中断,图中给出了局域数据堆栈和块堆栈的数据存放情况。断,图中给出了局域数据堆栈和块堆栈的数据存放情况。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构62021年10月16日星期六22时39分20秒存储被中断的块的类型、编号和返回地址。存储被中断的块的类型、编号和返回地址。从从DB DB 和和DI DI 寄存
6、器中获得的块被中断时打开的共享数寄存器中获得的块被中断时打开的共享数据块和背景数据块的编号。据块和背景数据块的编号。局域数据堆栈的指针。局域数据堆栈的指针。当前的累加器和地址寄存器的内容当前的累加器和地址寄存器的内容数据块寄存器数据块寄存器DB DB 和和DI DI 的内容的内容局域数据的指针、状态字局域数据的指针、状态字MCRMCR(主控继电器)寄存器和主控继电器)寄存器和B B堆栈的指针。堆栈的指针。 大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构76.1.3 线性化编程与结构化编程线性化编程与结构化编程2021年10月16日星期六22时39分21秒 将整个用户程
7、序写在循环控制组织块将整个用户程序写在循环控制组织块OB1OB1(主程序)主程序)中。处理器线性地或顺序地扫描程序的每条指令。中。处理器线性地或顺序地扫描程序的每条指令。 比较适合简单的控制任务。比较适合简单的控制任务。 也叫也叫分布式分布式编程:将整个用户程序分成相对独立的逻编程:将整个用户程序分成相对独立的逻辑块,每个块包含给定的部件组或作业组的控制逻辑。辑块,每个块包含给定的部件组或作业组的控制逻辑。 适用于几人同时对一个项目编程。适用于几人同时对一个项目编程。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构82021年10月16日星期六22时39分21秒 用户程
8、序提供一些通用的指令块,以便控制一类或相用户程序提供一些通用的指令块,以便控制一类或相同的部件,通用指令块提供的参数说明各部件的控制差同的部件,通用指令块提供的参数说明各部件的控制差异。异。 将复杂的自动化任务分解为小任务,这些任务由相应将复杂的自动化任务分解为小任务,这些任务由相应的逻辑块来表示,程序运行时所需的大量数据和变量存的逻辑块来表示,程序运行时所需的大量数据和变量存储在储在数据块数据块中。调用时将中。调用时将“实参实参”赋值给形参。赋值给形参。 适合复杂的控制任务,并支持多人协同编写大型用户适合复杂的控制任务,并支持多人协同编写大型用户程序。程序。图图6-4中给出了块调用的分层结构
9、。编程时被调用的块应该中给出了块调用的分层结构。编程时被调用的块应该是已经存在的。是已经存在的。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构96.2 功能块与功能的生成与调用功能块与功能的生成与调用2021年10月16日星期六22时39分21秒6.2.1 发动机控制系统的用户程序结构发动机控制系统的用户程序结构OB1调用调用FB1汽油机数据汽油机数据DB1柴油机数据柴油机数据DB2FC1调用调用共享数据块共享数据块DB3大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构106.2.2 符号表与变量声明表(符号表与变量声明表(1)2021年10月
10、16日星期六22时39分21秒 符号表中定义的是符号表中定义的是全局变量全局变量。表表6-2列出了发动机控制项目的符号表。列出了发动机控制项目的符号表。 声明本块中专用的变量,声明本块中专用的变量,局域变量局域变量。(1)IN(输入变量输入变量):由调用它的块提供的输入参数。:由调用它的块提供的输入参数。(2)OUT(输出变量输出变量):返回给调用它的块的输出参数。:返回给调用它的块的输出参数。(3)IN_OUT:初值由调用它的块提供,被子程序修改后返回给调用它的块。初值由调用它的块提供,被子程序修改后返回给调用它的块。(4)TEMP (临时变量临时变量):暂时保存在局域数据区中的变量。:暂时
11、保存在局域数据区中的变量。(5)STAT(静态变量):在功能块的背景数据块中使用。关闭功能块后,其静态静态变量):在功能块的背景数据块中使用。关闭功能块后,其静态数据保持不变。功能(数据保持不变。功能(FC)没有静态变量。没有静态变量。见见图图6-7中梯形图编辑器的右上半部分。中梯形图编辑器的右上半部分。FC和和FB变量声明表的区别变量声明表的区别图图6-?大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构116.2.2 符号表与变量声明表(符号表与变量声明表(2)2021年10月16日星期六22时39分21秒 符号表中定义的是符号表中定义的是全局变量全局变量。表表6-4
12、列出了发动机控制项目中列出了发动机控制项目中FB1的变量声明表。的变量声明表。 n在在中定义的是中定义的是形形式式参参数,在数,在中定义的是中定义的是实实际际参参数数n形参形参只能在当前块中使用的局部变量,用只能在当前块中使用的局部变量,用标记标记n实参实参在整个程序中都可调用的全局变量,用在整个程序中都可调用的全局变量,用“”“”标记。标记。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构126.2.3 功能块的生成与调用(功能块的生成与调用(1)2021年10月16日星期六22时39分21秒第一步:第一步:创建并打开创建并打开FB1任务任务:创建一个具有功能块和数据
13、块的程序,以实现对多台发:创建一个具有功能块和数据块的程序,以实现对多台发动机的速度进行监视和控制。动机的速度进行监视和控制。在项目窗口,打开相应的程序,右击在项目窗口,打开相应的程序,右击“Blocks” 在在下拉菜单中选项下拉菜单中选项“Insert New Object” 再选再选“Function Block”。定义定义FB1,选择编程语言。创建过程如图选择编程语言。创建过程如图6-8所示。所示。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构136.2.3 功能块的生成与调用(功能块的生成与调用(2)2021年10月16日星期六22时39分21秒第二步:第二步
14、:填写局部变量声明表,如填写局部变量声明表,如表表6-4所示。所示。声明类型声明类型变量名称变量名称数据类型数据类型地址地址初始值初始值注释注释DeclNameData TypeAddress Initial ValueCommentInSwitch_onBOOL0.0FALSE起动起动InSwitch_offBOOL0.1FALSE停止停止InFailureBOOL0.2FALSE故障故障InActual_speedINT2.00实际速度实际速度OutEngine_onBOOL4.0FALSE运行运行OutSpeed_reached BOOL4.1FALSE达到设定速度达到设定速度In_Ou
15、tStatPreset_speedINT6.01500设定速度设定速度temp大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构146.2.3 功能块的生成与调用(功能块的生成与调用(3)2021年10月16日星期六22时39分21秒第三步:第三步:在在FB1中编写控制程序。如中编写控制程序。如图图6-7所示。所示。#Engine_onSRS QR#Switch_on“Auto_Mode”#Switch_off#Failure( )#Speed_reached#Actual_speedCMP=IIN1IN2#Preset_speed大中型大中型PLC应用教程应用教程 第第
16、6章章 用户程序结构用户程序结构156.2.3 功能块的生成与调用(功能块的生成与调用(4)2021年10月16日星期六22时39分22秒第四步:第四步:生成背景数据和修改实际值。生成背景数据和修改实际值。在在STEP7中,一个背景数据块总是被指定给一个功能块,中,一个背景数据块总是被指定给一个功能块,一个功能块可以和多个背景数据块建立赋值关系。一个功能块可以和多个背景数据块建立赋值关系。现考虑对两台发动机的进度进行监控:现考虑对两台发动机的进度进行监控:汽油发动机(汽油发动机(Petrol)的速度设定值为的速度设定值为1500 DB1DB1柴油发动机(柴油发动机(Diesel)的速度设定值为
17、的速度设定值为1200 DB2DB2DB1的生成方法:的生成方法:1.右击右击Blocks 选择选择Insert New Object 再选再选Data Block,在在Name and type中输入中输入DB1,选择选择Instance DB,FB1,确认确认DB1与与“FB1,Engine”的赋值关系的赋值关系 OK,确认确认DB1。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构166.2.3 功能块的生成与调用(功能块的生成与调用(5)2021年10月16日星期六22时39分22秒DB1的生成方法:的生成方法:2.双击双击DB1,进入数据进入数据DB1的的“D
18、B Param”编辑窗口,编辑窗口,显示来自显示来自FB1变量声明表的数据变量声明表的数据在行为在行为“Preset_Speed ” ,列为列为“Actual Value ”的位置写入的位置写入预设值为预设值为15001500。第五步:第五步:编辑组织块编辑组织块OB1的控制程序。的控制程序。3.保存保存DB1,关闭编辑器窗口。关闭编辑器窗口。生成生成DB2:按上述方法生成数据块按上述方法生成数据块DB2,写入预设值为写入预设值为12001200。1.在在Blocks文件夹中,打开文件夹中,打开 OB1。2.单击编程元件按钮单击编程元件按钮“”,在,在FB Blocks文件夹中双击文件夹中双击
19、“FB1 Engine”,将将FB1插到梯形图中。插到梯形图中。3.用鼠标右键单击方框上的用鼠标右键单击方框上的?,在弹出的菜单中选择,在弹出的菜单中选择Insert Symbol。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构176.2.3 功能块的生成与调用(功能块的生成与调用(6)2021年10月16日星期六22时39分22秒4. 在符号表中选择数据表在符号表中选择数据表Petrol。5. 为功能块的所有输入为功能块的所有输入/输出填写符号地址。输出填写符号地址。6. 存盘后关闭编辑窗口。存盘后关闭编辑窗口。“Engine”EN ENOSwitch_on Eng
20、ine_onSwitch_off Speed_ reachedFailureActual_Speed“Switch_on_PE”“Petrol”“Switch_off_PE”“PE_Failure”“PE_Actual_ Speed”“PE_on”“PE_Preset_Speed_Reached”大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构186.2.3 功能块的生成与调用(功能块的生成与调用(7)2021年10月16日星期六22时39分22秒7. 按上述步骤编写使用数据块按上述步骤编写使用数据块DB2的功能块的功能块FB1的调用指令。的调用指令。用语句表编程:用语
21、句表编程:CALL “Engine” , “Diesel”Switch_on:= “Switch_on_DI”Switch_off:=“Switch_off_DI”Failure:=“DI_Failure” Actual_ Speed:=“DI_Actual_ Speed”Engine_on :=“DI_on”Speed_Reached :=“DI_Preset_Speed_Reached”形参实参形参实参实参实参“*”:需要在符号表中编:需要在符号表中编辑辑大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构196.2.4 功能的生成与调用(功能的生成与调用(1)2021
22、年10月16日星期六22时39分22秒第一步:第一步:创建并打开功能创建并打开功能FC1。任务任务:创建一个功能创建一个功能,以实现在发动机接通的同时,又接通一以实现在发动机接通的同时,又接通一个风扇,而当发动机断开后,风扇继续运行个风扇,而当发动机断开后,风扇继续运行5s才停。才停。在项目窗口,打开相应的程序,右击在项目窗口,打开相应的程序,右击“Blocks” 在在下拉菜单中选项下拉菜单中选项“Insert New Object” 再选再选“Function”。定义定义FC1,选择编程语言。选择编程语言。FC不不需要背景数据块需要背景数据块DB第二步:第二步:对对FC1进行编程。进行编程。
23、大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构206.2.4 功能的生成与调用(功能的生成与调用(2)2021年10月16日星期六22时39分22秒第二步:第二步:填写填写FC1的变量声明表。的变量声明表。NameData TypeAddressDeclareInitial ValueCommentEngine_onBOOL0.0INFALSETimer_Function TIMER2.0IN0Fan_onBOOL4.0OUTFALSE大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构216.2.4 功能的生成与调用(功能的生成与调用(3)202
24、1年10月16日星期六22时39分22秒第三步:第三步:对对FC1进行编程。进行编程。A#Engine_onLS5T#5sSF#Timer_FunctionA #Timer_Function=#Fan_on( )S_OFFDTS QTV BIR BCD#Engine_on#Fan_on#Timer_FunctionS5T#5s大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构226.2.4 功能的生成与调用(功能的生成与调用(4)2021年10月16日星期六22时39分22秒第四步:第四步:在在OB1中调用中调用FC1。“Fan”EN ENOEngine_on Fan_o
25、nTimer_Function“PE_on”“PE_Fan_on”“PE_Follow_on”大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构236.2.4 功能的生成与调用(功能的生成与调用(5)2021年10月16日星期六22时39分22秒SRS QR“Auto_mode_Switch”“Auto_mode”“Man_mode_Switch”图图6-9给出了控制汽油机的主程序。给出了控制汽油机的主程序。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构246.2.5 时间标记冲突与一致性检查时间标记冲突与一致性检查2021年10月16日星期六2
26、2时39分22秒 如果修改了块与块之间的软件接口或程序代码,可能会造如果修改了块与块之间的软件接口或程序代码,可能会造成时间标记冲突,引起块不能被调用。成时间标记冲突,引起块不能被调用。 选择块文件夹,执行菜单命令选择块文件夹,执行菜单命令“Edit” “Check Block Consistency”。在弹出出的窗口中执行命令在弹出出的窗口中执行命令“Program” “ Compile”。路径如路径如图图6-106-10所示。所示。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构256.4 多重背景(多重背景(1)2021年10月16日星期六22时39分23秒 使用
27、多重背景可以减少背景数据块的数量。使用多重背景可以减少背景数据块的数量。OB1调用调用FB10CALL FB1(汽油机)汽油机)CALL FB1(柴油机)柴油机)发动机控制发动机控制FB1FB1FC1调用调用共享数据块共享数据块DB3DB10汽油机数据汽油机数据柴油机数据柴油机数据大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构266.4 多重背景(多重背景(2)2021年10月16日星期六22时39分23秒任务任务:创建一个具有多重背景功能块和多重背景数据块的程序,:创建一个具有多重背景功能块和多重背景数据块的程序,以实现对多台发动机的速度进行监视和控制。以实现对多台
28、发动机的速度进行监视和控制。第一步:第一步:首先创建首先创建FB1,按图按图6-7梯形图进行编辑。梯形图进行编辑。第二步:第二步:生成多重背景功能块生成多重背景功能块FB10。 应激活应激活“Multiple Instance FB”选项。选项。第三步:第三步:编辑多重背景功能块编辑多重背景功能块FB10的变量声明表。的变量声明表。 如如图图6-13所示。所示。第四步:第四步:编辑多重背景功能块编辑多重背景功能块FB10的程序。的程序。 如如图图6-14所示。所示。第五步:第五步:生成多重背景数据块生成多重背景数据块DB10的程序。的程序。 如如图图6-15所示。所示。大中型大中型PLC应用教
29、程应用教程 第第6章章 用户程序结构用户程序结构276.4 多重背景(多重背景(3)2021年10月16日星期六22时39分23秒“发动机发动机”EN ENO ALL_SPEED_ARCHED“多重背景数据块多重背景数据块”“两台都达到设置转速两台都达到设置转速”大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构28功能块与功能练习功能块与功能练习 多台设备的风扇监控程序多台设备的风扇监控程序1.控制要求控制要求 每台设备中都有三个冷却风扇,设它们的运行指示信号为每台设备中都有三个冷却风扇,设它们的运行指示信号为A、B和和C(1表示正常),正常情况下,只要设备运行其中两个
30、风扇,表示正常),正常情况下,只要设备运行其中两个风扇,另一个备用。()如果一个风扇坏了,而备用风扇在另一个备用。()如果一个风扇坏了,而备用风扇在5秒钟内秒钟内还未接通,在还未接通,在FLT端显示故障(端显示故障(FLT=1);()一旦三个风扇;()一旦三个风扇都坏了,故障信号立即显示都坏了,故障信号立即显示;();()当设备恢复正常运行时,用当设备恢复正常运行时,用ACKN端输入的端输入的“1”信号清除故障信息(使信号清除故障信息(使FLT=0)。)。参数参数ABCACKN TIMER_NOTVFLTSIG设备设备1 I21.1I21.2 I21.3 I21.0T10S5T#5S Q8.6
31、 M20.0设备设备2 I21.4I21.5 I21.6 I21.0T11S5T#5S Q8.7 M20.1大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构29.任务任务()按要求编写带有参数的程序()按要求编写带有参数的程序块块FC8,使之成为一个可使之成为一个可实现风扇监控功能的实现风扇监控功能的“标准功能标准功能”。()在()在OB1中用不同的参数对中用不同的参数对FC8无条件调用两次,以实无条件调用两次,以实现对两台设备的监控功能。现对两台设备的监控功能。()调试运行程序。若需使()调试运行程序。若需使FLT信号闪烁,怎么做?信号闪烁,怎么做?答案答案?大中型大
32、中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构30FC程序程序ABCABCABCS_ODTS QTV BIR BCDTIMER_NOTVMACKNRSR QSSIGMFLTABC“2_Hz”大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构31在在OB1中调用中调用FC程序程序FC8EN ENOA FLTB CACKNTIMER_NOTVSIGI21.1I21.2I21.3I21.0T10S5T#5SM20.0Q8.6FC8EN ENOA FLTB CACKNTIMER_NOTVSIGI21.4I21.5I21.6I21.0T11S5T#5SM20.1Q
33、8.7大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构326.5 组织块与中断处理组织块与中断处理6.5.1 6.5.1 中断的基本概念中断的基本概念 1、中断、中断 中断处理用来实现对特殊内部事件或外部事件的快速响应。中断处理用来实现对特殊内部事件或外部事件的快速响应。如果没有中断,如果没有中断,CPU循环执行组织块循环执行组织块OB1。 2、中断源、中断源 可能来自可能来自I/O模块的硬件中断,或者是模块的硬件中断,或者是CPU模块内部的软模块内部的软件中断(如日期、时间中断、延时中断、循环中断和编程件中断(如日期、时间中断、延时中断、循环中断和编程错误引起的中断)
34、。错误引起的中断)。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构336.5 组织块与中断处理组织块与中断处理6.5.1 6.5.1 中断的基本概念中断的基本概念 3、中断程序的类型和优先级别、中断程序的类型和优先级别 块块OB类型类型优先级优先级OB1主程序主程序OB10日期时间中断日期时间中断2OB20延时中断延时中断3OB35循环中断循环中断12OB40硬件中断硬件中断16OB82错误处理错误处理26/28大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构346.5 组织块与中断处理组织块与中断处理6.5.1 6.5.1 中断的基本概念中断
35、的基本概念 4、对中断的控制、对中断的控制 SFC39”DIS_INT”:禁止中断和异步错误处理。禁止中断和异步错误处理。 SFC40”EN_INT”:激活新的中断和异步错误处理。激活新的中断和异步错误处理。 SFC41”DIS_AIRT”:延迟处理比当前优先级高的中断和延迟处理比当前优先级高的中断和异步错误。异步错误。 SFC42”EN_AIRT”:允许立即处理被允许立即处理被SFC41暂时禁止的暂时禁止的中断和异步错误。中断和异步错误。 SFC41S和和FC42配对使用。配对使用。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构356.5 组织块与中断处理组织块与中
36、断处理6.5.1 6.5.1 中断的基本概念中断的基本概念 5、组织块的分类、组织块的分类 (1)起动组织块:起动组织块:OB100OB102 (2)循环执行的组织块:循环执行的组织块:OB1 (3)定期执行的组织块:)定期执行的组织块:OB10OB17,OB30OB35 (4)事件驱动的组织块:)事件驱动的组织块: 延时中断:延时中断:OB20OB23; 硬件中断:硬件中断:OB40OB47; 异步错误中断:异步错误中断:OB80OB87; 同步错误中断:同步错误中断:OB121 和和OB122。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构366.5.3 日期时间
37、中断组织块日期时间中断组织块 任务任务 在在I20.0的上升沿时,启动的上升沿时,启动OB10,在在I20.1时,时,禁止禁止OB10。从从2006年年*月月*日日*点点*分开始,每分钟中断一分开始,每分钟中断一次,每次中断次,每次中断QW8被加。被加。第一步:第一步:在你的项目下创建程序在你的项目下创建程序“中断实验中断实验”第二步:第二步:从从LibrariesStandardSystem Function Blocks中拷贝中拷贝SFC28、SFC29、SFC30、SFC31到程序到程序“中断实中断实验验” 中的中的Blocks下。下。第三步:第三步:从从LibrariesStandar
38、dIEC Function Blocks中拷中拷贝贝FC3到程序到程序“中断实验中断实验” 中的中的Blocks下。下。第四步:第四步:在在“中断实验中断实验”中创建中创建FC10和和OB10,并编写并编写FC10如下:如下:大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构371、调用调用SFC31查询查询OB10的状态的状态2、调用调用FC3设置启动中断的日期和时间设置启动中断的日期和时间“QRY_TINT”EN ENODB_NR RET_VAL STATUS MW208 存放错误代码存放错误代码10MW16保存中断状态字保存中断状态字(表(表6-7)“D_TOD_D
39、T”EN ENOIN1 RET_VALIN2 #out_time_date 临时变量临时变量D#2007-10-12Date_And_Time格式格式TOD#21:16:0.0大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构383、调用调用SFC28,设置中断参数设置中断参数“SET_TINT”EN ENODB_NR RET_VALSDTPERIOD MW200 存放错误代码存放错误代码10q 在在I20.0的上升沿;的上升沿;q M17.2=0中断未被激活或时间时间已过去;中断未被激活或时间时间已过去;q M17.4=1已装载了日期时间中断。已装载了日期时间中断。q
40、SDT启动中断的时间。启动中断的时间。q PERIOD设置产生中断的周期设置产生中断的周期( P )I20.0M1.0M17.2M17.4#out_time_dateW#16#2010000 执行一次执行一次0201每分钟执行一次每分钟执行一次0401每小时执行一次每小时执行一次1001每天执行一次每天执行一次1201每周执行一次每周执行一次1401每月执行一次每月执行一次1801每年执行一次每年执行一次2001月末执行一次月末执行一次大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构394、调用调用SFC30激活日期时间中断激活日期时间中断OB105、在在I20.1的上
41、升沿调用的上升沿调用SFC29禁止日期和时间中断禁止日期和时间中断“ACT_TINT”EN ENODB_NR RET_VAL MW204 存放错误代码存放错误代码10“CAN_TINT”EN ENOOB_NR RET_VAL ( P )I20.1M1.1MW210 存放错误代码存放错误代码10大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构40第五步第五步:编写:编写OB10程序程序第六步第六步:在:在OB1中调用中调用FC10第七步第七步:下载及调试:下载及调试 必须设置必须设置PLC的时钟与的时钟与PC的时钟一致。的时钟一致。 路径路径ADD-IEN ENOIN1
42、OUTIN2 QW8QW8/每分钟每分钟QW8加加1一次一次1FC10EN ENOSIMATIC/PLC/Diagnostic/setting/set Time of Day/ Take from PG/PC /Apply。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构416.5.4 延时中断组织块延时中断组织块 任务任务 在在I20.2的上升沿时,用的上升沿时,用SFC32启动启动OB20,10s后后OB20被调用,在被调用,在OB20中将中将Q8.0置位,并立即输出。在延置位,并立即输出。在延时过程中,如果时过程中,如果I20.3=1,则用则用SFC33取消延时中
43、断,取消延时中断,OB20不会被调用。不会被调用。I20.4=1时,时,Q8.0=0。第一步:第一步:从从LibrariesStandardSystem Function Blocks中拷贝中拷贝SFC32、SFC33、SFC34到程序到程序“中断实验中断实验” 中的中的Blocks下下。第二步:第二步:在在“中断实验中断实验”中创建中创建FC20和和OB20。第三步:第三步:编写编写FC20。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构421、在在I20.2的上升沿调用的上升沿调用SFC32启动延时中断启动延时中断OB202、调用调用SFC34查询查询OB20的状
44、态的状态“SRT_DINT”EN ENOOB_NR RET_VALDTMESIGN ( P )I20.2M1.2MW100 存放错误代码存放错误代码20T#10sMW12T#10s: 延时时间为延时时间为10s。MW12: 延时中断延时中断OB20启动信息的标志。启动信息的标志。“QRY_DINT”EN ENOOB_NR RET_VAL STATUSMW102 存放错误代码存放错误代码20MW4保存中断状态字保存中断状态字(表(表6-8)大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构433、在在I20.3的上升沿且中断未完成时(的上升沿且中断未完成时(M5.2=0)调
45、用调用SFC33取取消延时中断消延时中断OB20。4、在在I20.41时,复位时,复位Q8.0“CAN_DINT”EN ENOOB_NR RET_VAL( P )I20.3M1.3MW100 存放错误代码存放错误代码20M5.2M5.2=0:表示延时中断未被激活或已完成表示延时中断未被激活或已完成。( R )I20.4Q8.0大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构44第四步第四步:编程:编程OB20SET = Q8.0第五步第五步:在:在OB1中添加调用中添加调用FC20第六步第六步:下载及调试:下载及调试 I20.2=时,时,Q8.0是否延时是否延时10s点
46、亮。点亮。 I20.4=1时,时,Q8.0是否是否0; I20.2= 时,时,10s内,内,I20.3= 时,时,Q8.0能否能否点亮。点亮。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构456.5.5 循环中断组织块循环中断组织块 任务任务 利用循环中断利用循环中断OB35在在Q8.1中设置中设置Hz的闪烁频率信号。的闪烁频率信号。第一步:第一步:计算计算OB35的时间间隔的时间间隔t(ms)。)。第二步:第二步:在在“中断实验中断实验”中创建中创建O35 打开打开CPU属性窗口属性窗口在在“Cyclic Interrupts”选项卡中,选项卡中,将将Executi
47、on(ms)值值100改为改为250ms。OK后,将组态数据后,将组态数据Down到到PLC。ms250s25021s501 Hz2 .TtfTf大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构46第三步第三步:编程:编程OB35第四步第四步:下载及调试:下载及调试v 需要下载硬件组态。需要下载硬件组态。v 需控制需控制OB35时,可编写时,可编写FC35,调用调用SFC40激活中断,调激活中断,调用用SFC39禁止中断。禁止中断。( )Q8.1Q8.1大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构471、在在I20.5的上升沿调用的上升沿调用
48、SFC40启动启动OB352、在在I20.6的上升沿调用的上升沿调用SFC39禁止禁止OB35中断中断SFC40EN ENOMODE RET_VALOB_NR( P )I20.5M1.4MW106 存放错误代码存放错误代码B#16#235MODE: 0时激活所有的中断和异步错误;时激活所有的中断和异步错误;1时激活部分中断和错误;时激活部分中断和错误; 2时激活指定的时激活指定的OB编号对应的中断和异步错误。编号对应的中断和异步错误。SFC39EN ENOMODE RET_VALOB_NR( P )I20.6M1.5MW108 存放错误代码存放错误代码B#16#235大中型大中型PLC应用教程
49、应用教程 第第6章章 用户程序结构用户程序结构486.5.7 CPU模块的启动方式模块的启动方式 暖启动(暖启动(Warm Restart) S7-300 CPU(不包括不包括CPU 318)只有暖起动。过程只有暖起动。过程映像数据以及非保持的映像数据以及非保持的M/T/C被复位。有保持功能的被复位。有保持功能的M/T/C /DB 将保留原数值。模式开关扳由将保留原数值。模式开关扳由STOP 板到板到RUN 位置。位置。 热启动(热启动(Hot Restart 仅仅S7-400有)有) 在在RUN 状态时如果电源突然丢失,然后又重新上电,状态时如果电源突然丢失,然后又重新上电,从上次从上次RU
50、N模式结束时程序被中断之处继续执行,不对计模式结束时程序被中断之处继续执行,不对计数器等复位。数器等复位。 冷启动(冷启动(Cold Restart ,CPU417和和CPU417H) 冷启动时,过程数据区的冷启动时,过程数据区的I, Q, M, T, C, DB 等被复位为等被复位为零。模式开关从零。模式开关从STOP扳到扳到MRES位置位置最后扳到最后扳到RUN。大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构496.5.8 错误组织块错误组织块OB号号错误类型错误类型优先级优先级说明说明OB 70I/O冗余错误(仅冗余错误(仅H系列系列CPU)25异步错误异步错误
51、:与:与PLC的硬件或操作系统的硬件或操作系统密切相关的错误,密切相关的错误,与程序执行无关。与程序执行无关。OB 72CPU冗余错误(仅冗余错误(仅H系列系列CPU )28OB 73通信冗余错误(仅通信冗余错误(仅H系列系列CPU )25OB 80时间错误时间错误26OB 81 电源故障电源故障26/28OB 82诊断中断诊断中断OB 83插入插入/取出模块中断取出模块中断OB 84CPU硬件故障硬件故障OB 85优先级错误优先级错误OB 86机架故障或分布式机架故障或分布式I/O的站故障的站故障OB 87通信故障通信故障OB 121编程错误编程错误引起错误的引起错误的OB的优先级的优先级同
52、步错误同步错误:与程序:与程序执行有关的错误。执行有关的错误。OB122I/O访问错误访问错误大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构50本章到此结束本章到此结束敬请提问!敬请提问!大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构51图图6-3 块堆栈与局域数据堆栈块堆栈与局域数据堆栈FB1FC2OB81块堆栈块堆栈局域数据堆栈局域数据堆栈FB1的块号的块号和返回地址和返回地址FC2的块号的块号和返回地址和返回地址OB81的块号的块号和返回地址和返回地址FB1的局域数据的局域数据FC2的局域数据的局域数据OB81的局域数据的局域数据大中型大中型PLC应用教程应用教程 第第6章章 用户程序结构用户程序结构52图图6-4 块调用的分层结构块调用的分层结构背景背景DB背景背景DB操操作作系系统统OB组织组织块块/中断中断FB/SFBFC/SFCFB/SFBFC/SFC共享共享DB共享共享DBFC/SFC嵌套深度嵌套深度OB: 组织块组织块FB:功能块功能块FC:功能功能SFB:系统功能块系统功能块SFC:系统功能系统功能DB:数据块数据块最大嵌套深
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《正弦量的基本概念》课件
- 《多层厂房设计》课件
- 《GIS程序设计》课件
- 天津市 二手房合同范本
- 2025年许昌道路货运输从业资格证模拟考试题库
- 2025年黄冈道路运输从业人员从业资格考试
- 2025年马鞍山货运从业资格模拟考
- 2025年三门峡道路运输从业资格证考试题和答案
- 2025年牡丹江年货运从业资格证考试从业从业资格资格题库及答案
- 2025年日喀则货运模拟考试
- 浙江省嘉兴市2023-2024学年八年级上学期期末英语试题
- 水泵维护保养方案
- 库存管理中的供应与需求平衡
- 空表机械加工工艺过程卡片-工序卡片-工序附图
- 信息化作战平台
- 有机硅合成革行业报告
- 个人劳动防护用品的使用和维护安全培训课件
- 城市营销方案书
- 9205-2015版铁路工程试验报告表
- 《森林病虫害防治》课件
- 辽宁省沈阳市铁西区2023-2024学年七年级上学期期末考试英语试题(含听力)
评论
0/150
提交评论