您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于西门子S7-300系列PLC定时功能的实现
PLC编程及应用技术高级班章优仕2020年3月TheImplementationofTimerFunctionBasedontheSiemensS7-300SeriesPLC基于西门子S7-300系列PLC定时功能的实现控制系统延时操作PLC逻辑运算定时计数数值计算中断处理网络配置时序构造等待响应人为制造中断产生时间脉冲一、定时器的概念1.1、SIEMENSS7-300PLC模块化的硬件组态不一样的编程元件CPU模块电源模块功能模块电源模块CPU模块AI/O模块DI/O模块SM模块定时器“软”设备1bit状态位2Byte2Byte当前值单元设定值单元1.2、PLC中的定时器定时时长=定时范围*时基时基+定时范围9990s=2H46M30S定时器1.2、PLC中的定时器通用定时器积算定时器定时方式增计数减计数三菱FX2OMRON之C系列输出电平ON延时Off延时三菱FX2SIEMENSSP定时器TONTOF二、定时功能在PLC中的实现方式1、定时器指令2、定时中断组织块3、利用系统时钟4、利用扫描周期2.1、定时器指令2、定时器扩展应用1、定时器典型应用接通延时程序—SD/SS限时控制程序—SP/SE断开延时程序—SF闪烁电路长延时程序流水灯程序2.1、定时器指令S7-300定时器脉冲定时器(SP)扩展脉冲定时器(SE)接通延时定时器(SD)带保持的接通延时定时器(SS)断电延时定时器(SF)256个5类1、SD定时器ON延时上升沿起动,下降沿复位2.1.1定时器的典型应用2.1.1定时器的典型应用X0T1SDS5T#10ST1Y0【例1】接通延时程序(E01)2.1.1定时器的典型应用X0T1SDS5T#10S【例2】接通延时程序(E02_1)M0M0X1T1Y02、SS定时器ON延时上升沿起动,独立完成定时2.1.1定时器的典型应用X0T1SSS5T#10S【例2】接通延时程序(E02_2)T1Y0X1T1R2.1.1定时器的典型应用【例3】最大限时控制程序(E03_1)2.1.1定时器的典型应用X0T0SDS5T#10SY0X0T03、SP定时器Off延时上升沿起动,下降沿复位2.1.1定时器的典型应用S5T#10SX0T0SPY0T0【例3】最大限时控制程序(E03_2)2.1.1定时器的典型应用X1T1SDS5T#10SY1【例4】最小限时控制程序(E04_1)2.1.1定时器的典型应用Y1T14、SE定时器Off延时上升沿起动,独立完成定时2.1.1定时器的典型应用X1T1SES5T#10SY1T1【例4】最小限时控制程序(E04_2)2.1.1定时器的典型应用【例5】断开延时控制程序(E05_1)2.1.1定时器的典型应用M0Y0T0SDS5T#10SM2M2X0NM1M0X0M0T0T05、SF定时器TOF下降沿起动,运行时高电平2.1.1定时器的典型应用【例5】断开延时控制程序(E05_2)T0Y0X0T0SFS5T#10S2.1.1定时器的典型应用2.1.1、定时器总览SPSESDSSSF“娇贵”型“独立”型Off延时ON延时TOF【例6】脉冲发生器(方波电路/闪烁电路)(E06)X0T0SDS5T#2ST1T1T0SDS5T#1SY0T0启动T1T1复位T02.1.2定时器的扩展应用2.1.2定时器的扩展应用【例7】长延时程序(E07)T0T1SDS5T#10msT0SDS5T#2s990msX0C0SCC#5C0CDY0C0C0X0RT1X0C02.1.2定时器的扩展应用【例8】流水灯程序(E08)T1T2SDS5T#5SY0X0Y2T1X0T0SDS5T#5ST0T1SDS5T#5ST2Y1T0T0T12、中断组织块1、PLC程序组织方式2、块调用1、日期时间中断组织块2、循环中断组织块2.2、中断组织块1、块类型2020/3/2529块的类型属性组织块(OB)-用户程序接口-优先级(0到27)-在局部数据堆栈中指定开始信息功能块(FB)-参数可分配(可以在调用时分配参数)-具有(收回)存储空间(静态变量)功能调用(FC)-参数可分配(必须在调用时分配参数)-基本上没有存储空间(只有临时变量)数据块(DB)-结构化的局部数据存储(背景数据块DB)-结构化的全局数据存储(在整个程序中有效)系统功能块调用(SFB)-FB(具有存储空间),存储在CPU的操作系统中并可由用户调用系统功能(SFC)-FC(无存储空间),存储在CPU的操作系统中并可由用户调用系统数据块(SDB)-用于配置数据和参数的数据块1.块类型2.2.1PLC程序组织方式2020/3/2530组织块(OB)是CPU操作系统与用户程序间的接口操作系统OB1FCFBSFCSFB其它OBsFCFB2、块调用2.2.1PLC程序组织方式2020/3/2531OB10...17(日期时间中断)OB80...87(异步错误)OB20...23(延时中断)定期的程序执行OB30...38(循环中断)事件驱动的程序执行OB40...47(硬件中断)启动OB102OB100OB101循环的程序执行OB1OB121,122(同步错误)中断OB错误OB2.2.1PLC程序组织方式2.2.2、中断组织块循环中断组织块日期时间中断组织块OB10~OB17OB30~OB382020/3/25331、日期时间中断组织块(OB10~OB17)设置触发的日期、执行模式,使其在某一特定日期或特定间隔,产生中断。8个日期时间中断具有相同的优先级系统功能SFC28~SFC31,可以设置、禁止、查询日期中断可以通过HWConfig=CPU属性设置、禁止、激活日期中断2.2.2、中断组织块2020/3/2534【例9】:利用日期时钟中断实现定时(E09)2020/3/25352、循环中断组织块(OB30~OB38)循环中断的时间间隔在HWConfig=CPU属性中设置,每个OB默认时间间隔不同,系统默认激活OB35系统功能SFC39~SFC42,可以禁止、延迟、使能循环中断2.2.2、中断组织块RUNOB35OB35OB35IntervalOOB1B1OB1OB1OB1OB1OB1OB1IntervalInterval2020/3/2536【例10】:利用循环中断实现定时(E10)2.3、利用系统时钟实现定时时钟脉冲是一些可供用户程序使用的占空比为1:1的方波信号,在CPU硬件属性对话框中可设置一个字节的时钟存储器,时钟存储器每一位对应的一个脉冲如下:2020/3/2538【例11】:利用系统时钟实现定时(E11)2.4、利用扫描周期实现定时扫描周期和CPU内部时钟保持一定的统一性,是内部时钟外在的一种时间反应。现代PLC将扫描周期作为基本参数提供给用户使用。定时器设计思路:将扫描周期累加起来,达成所需要的定时时长,则产生中断扫描周期是CPU对所有程序的一个遍历所用的时间,每个扫描周期会因为程序长度、程序中信号和中断的不同而不同。OB1中临时变量:OB1_PREV_CYCLE所存数据为前一次扫描周期的毫秒数。2020/3/25401、FB1:累加扫描周期,以100ms为单位,输出整数值I:IN_T_S=OB1_PREV_CYCLETime_Base=100M:Counter_m=Counter_m+IN_T_SSCR=Counter_m-C_100msecif(SCRTime_Base){C_100msec=C_100sec+Trunc(SCR/Time_Base)*Time_BaseSCR=Trunc(SCR/Time_Base)O:Out_100msec=Out_100msec+SCR}上次更新输出时100ms的整数倍100ms为单位记录当前更新时间100ms为单位的整数值时间差值时间差值超过100ms输出更新2.4、利用扫描周期实现定时2020/3/2541IN_T_SCounter_mSCRC_100msecOut_100msec000005050508013013010011702001002001215035015030013403909090480180400142.4、利用扫描周期实现定时2020/3/25422.4、利用扫描周期实现定时L#IN_T_SL0-IJMZM001L#IN_T_SL#Counter_m+IT#Counter_mL#C_100msec-IT#SCRL#Time_Base-IJMZM001FB1程序清单L#SCRL#Time_Base/IL#Time_Base*IL#C_100msec+IT#C_100msecL#SCRL#Time_Base/IT#SCRL#Out_100msec+IT#Out_100msecM001:NOP02020/3/25432、FC1:实现ON延时定时器、I:Enabled=TrueTimer_Set=100Time_Count=FB1.Out_100msecAcc_M=MW10Acc_T=MW12M:if(Acc_M=0){Acc_M=Time_Count}Acc_T=Time_Count-Acc_Mif(Acc_TTimer_Set){O:Out_timer=True}时基定时范围装载初值ON延时2.4、利用扫描周期实现定时初值单元当前值单元2020/3/25442.4、利用扫描周期实现定时A#EnabledJCM001L0T#Acc_MR#Out_TimerJUM000M001:L#Acc_ML0-IJNM002L#Time_CountT#Acc_MFC1程序清单M002:L#Time_CountL#Acc_M-IT#Acc_TL#Timer_Set-IJMM000S#Out_TimerM000:NOP02020/3/2545【例12】:利用扫描周期实现定时(E12)CALLFB1,DB1IN_T_S:=#OB1_PREV_CYCLETime_Base:=100Out_100msec:=C_100msecAX0ANT_1=X_0CALLFC1Enabled:=X_0Timer_Set:=100Time_Count:=C_100msec“Acc_M:=MW12Acc_T:=MW14Out_Timer:=T_0CALLFC1Enabled:=T_0Timer_Set:=100Time_Count:=C_100msecAcc_M:=MW16Acc_T:=MW18Out_Timer:=T_1AT_0=Y0方波电路三、结论1、定时器指令2、中断组织块4、利用扫描周期3、利用系统时钟功能强大,误差小精确定时,PID方便,周期固定任意时基,任意调用
三七文档所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:基于西门子S7-300系列PLC定时功能的实现
链接地址:https://www.777doc.com/doc-4546470 .html