您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 西门子S7-200-1200PLC时钟指令的应用实例
ComputerKnowledgeandTechnology电脑知识与技术计算机工程应用技术本栏目责任编辑:梁书第7卷第35期(2011年12月)第7卷第35期(2011年12月)9西门子S7-200/1200PLC时钟指令的应用实例程伟(健雄职业技术学院电气工程学院,江苏太仓215411)摘要:该文以西门子SIMATICS7-200和西门子最新推出的SIMATICS7-1200小型PLC为例,分析了实时时钟指令的功能和使用技巧,总结PLC课程教学的经验,设计了保存故障发生时间、定时控制、校园铃声控制、路灯控制、交通灯的分时控制等实例的PLC梯形图程序。关键词:可编程控制器;时钟指令;西门子S7-200;西门子S7-1200中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)35-9238-041西门子SIMATICS7-200时钟指令1.1时钟指令西门子SIMATICS7-200可编程控制器(ProgrammableLogicController,PLC),其时钟指令有读实时时钟指令TODR、写实时时钟指令TODW、扩展读实时时钟指令TODRX和扩展写实时时钟指令TODWX,见图1,其中扩展时钟指令用于读写实时时钟的夏令时时间和日期。S7-200实际上可以读取的最小时间单位为1s,没有必要在每个扫描周期都读取实时时钟,可以在SM0.5(高低电平各0.5s,周期为1s的时钟脉冲)的上升沿每秒读取一次时钟,见图2。S7-200系列PLC按CPU性能分为CPU221/CPU222/CPU224/CPU226,其中CPU221和CPU222没有内置的实时时钟,需要外插带电池的实时时钟卡才能获得实时时钟功能。在失去电源后,CPU靠内置超级电容(50h/100h)或外插电池卡为实时时钟提供缓冲电源。缓冲电源放电完毕后,再次上电时,时钟值为默认值。1.2时钟格式读实时时钟指令TODR(TimeofDayRead)从实时时钟读取当前日期和时间,装入以T(例如:VB0)为起始地址的8字节缓冲区,依次存放年(VB0)、月(VB1)、日(VB2)、时(VB3)、分(VB4)、秒(VB5)、0(VB6)和星期(VB7),时间和日期的数据类型为VB字节型,详见表1。表1中,星期的取值范围为0~7,1表示星期日,2~7表示星期一~星期六,为0时将禁用星期(保持为0)。变量存储区V,存储时钟时其编号可以连续使用,例如:VW0(年、月)、VW1(月、日)、VW2(日、小时)、VD0(年、月、日、小时)等,详见表1-2。但如果保存的是模拟量信号(例如:电压、电流、压力等),应该避免数据区的交叉使用,字存储VW的编号是2的倍数,例如:VW0、VW2、VW4等。双字存储VD的编号是4的倍数,例如:VD0、VD4、VD8等。计算机PC与PLC在线连接时,通过编程软件的“PLC”菜单→“实时时钟…”,设置日期时间值和启动时钟开始运行。也可以用写实时时钟指令TODW来设置和启动实时时钟。1.3时钟指令的应用例如:保存故障发生时间,当设备发生故障时I0.0接通,请将故障发生时间保存到VB100-VB107的存储区中。提示:设置读实时时钟指令的存储的起始地址为VB100。梯形图程序详见图3。例如:定时控制,在2009年7月21日12时21分~23分,Q0.0接通。提示:VD0存储的是年、月、日、小时,VW4存储的是分钟、收稿日期:2011-09-15作者简介:程伟(1981-),男,江苏东台人,助教,工学学士,目前主要从事电工学、PLC编程及应用、维修电工等课程的理论与实践教学。图1时钟指令图2读实时时钟指令READ_RTC表1时钟格式表2时钟的存储E-mail:kfyj@cccc.net.cn电脑知识与技术Vol.7,No.35,December2011.238ComputerKnowledgeandTechnology电脑知识与技术计算机工程应用技术本栏目责任编辑:梁书第7卷第35期(2011年12月)第7卷第35期(2011年12月)9秒。梯形图程序详见图4。例如:路灯控制,18:00时开灯,6:00时关灯。提示:VW3存储的是小时、分钟。梯形图程序详见图5。例如:交通灯的分时控制,白天(06:00~00:00)正常运行,夜晚(00:01~05:59)南北、东西方向黄灯闪烁。提示:建立“白天”和“夜晚”子程序,然后在主程序中调用子程序。梯形图程序详见图6。2西门子SIMATICS7-1200时钟指令西门子SIMATICS7-1200是西门子公司最新推出的小型PLC,代表了下一代PLC的发展方向。集成的以太网接口用于与计算机、人机界面和其他PLC的通信,提供了控制各种设备以满足您自动化需要的灵活性和强大功能。S7-1200设计紧凑、组态灵活且具有功能强大的指令集,编程软件STEP7Basic集成了用于精简系列面板组态的WinCCBasic,这些特点的组合使它成为控制各种应用的完美解决方案。2.1日期时间的数据类型1)数据类型Time的长度为4B,见表3。2)数据结构DTL(日期时间)长度为12B,表示日期和时间定义的时刻,包括年、月、日、星期、小时、分、秒和纳秒,见表3。表3中,USInt是无符号字节8位,UInt是无符号整数16位,UDInt是无符号双整数32位,基本数据类型,见表4。2.2时钟指令时钟指令用来设置和读取系统时钟,见图7。指令的输出RET_VAL返回指令执行的状态信息,数据类型为Int整数。1)WR_SYS_T(写系统时间)将输入IN的DTL值写入PLC的实时时钟。2)RD_SYS_T(读系统时间)将读取的PLC当前系统时间保存在输出OUT中,数据类型为DTL。3)RD_LOC_T(读本地时间)将读取的当前计算机PC本地日期时间保存在输出OUT中,数据类型为DTL。2.3DTL变量的定义图3保存故障发生时间图4定时控制图5路灯控制1图6交通灯的分时控制表3日期时间的数据类型表4基本数据类型图7时钟指令图8DTL变量的定义1239ComputerKnowledgeandTechnology电脑知识与技术计算机工程应用技术本栏目责任编辑:梁书第7卷第35期(2011年12月)第7卷第35期(2011年12月)91)打开SIMATICSTEP7Basic编程软件,并打开主程序“Main[OB1]”。2)可以在全局数据块或块的接口区中定义DTL变量。在编程软件页面上方的界面窗口中,新建“DT0”的DTL变量,见图8。编程软件将自动生成年、月、日等变量,见图9。2.4S7-1200时钟指令的应用S7-1200可以读取的最小时间单位为1ns,正常时没有必要在每个扫描周期都读取实时时钟,可以在M0.5(1Hz时钟,也就是周期为1s时钟)的上升沿每秒读取一次时钟。在“PLC属性”中定义“系统和时钟存储器”,见图10。例如:用时钟指令控制路灯的定时接通和断开,20:00开灯,06:00关灯,梯形图程序详见图11。如果设置的时间到分钟的话,例如:用实时时钟指令控制路灯的定时接通和断开,18:30开灯,05:30关灯。提示:18:30时置位,05:30时复位,为了避免0-59秒期间每秒钟重复的置位或复位,增加了P_TRIG上升沿检测指令,其CLK输入端的能流的上升沿时Q端接通一个扫描周期后断开,使方框下面的脉冲存储器位M2.0或M2.1置位。梯形图程序详见图12。在编写梯形图时,S7-200/300/400每个网络只能有一个能流,而西门子公司最新推出的S7-1200改变了这样的设计思想,每个程序段可以有多个能流,程序段2有2个能流。例如:用时钟指令控制校园铃声,响铃时间08:00、08:45、08:50等等,每次响铃10s。梯形图程序详见图13。当然我们还可以增加一些功能,例如:不同的时刻、不同的教学区域可以使用不同的铃声(或者使用音乐),节假日不响铃,这些功能使用时钟指令可以很方便地实现。时钟指令在PLC编程中应用很广泛,例如:路灯控制、定时控制、校园铃声控制、交通灯分时控制等等。S7-200将时钟的日期时间分别保存在VB存储区中,与比较指令配合使用时,我们即可以分别使用,例如:年,VB0。当然也可以结合使用,例如:年月,VW0。西门子公司最新推出的S7-1200,其时钟的存储与S7-200不同,使用了DTL变量的格式,只能分别单独使用DTL变量中的一个变量,例如:小时,DT0.HOUR。所以我们在实际使用的过程中,可以使用图12、图13中的置位、复位方法,这样很简洁高效。参考文献:[1]廖常初,PLC编程及应用[M].3版.北京:机械出版社,2008.[2]廖常初,S7-300/400PLC应用技术[M].2版.北京:机械出版社,2008.[3]廖常初,S7-1200PLC编程及应用[M].北京:机械出版社,2010.[4]SIMATICS7-200可编程控制器系统手册,2008-8.[5]SIMATICS7-1200系统手册,2009-11.[6]SIMATICS7-300产品目录,2009.图9DTL变量的定义2图10系统和时钟存储器图11路灯控制2图12路灯控制3图13校园铃声控制240
本文标题:西门子S7-200-1200PLC时钟指令的应用实例
链接地址:https://www.777doc.com/doc-1280729 .html