SIMATIC S7-200 8怎样读和写S7-214的实时时钟 概述 这个程序示例涉及到关于实时时钟的两种特殊指令:读和写日期及时钟时间。为了进行这 些操作,需要有如下结构的8字节缓冲区 字节0:年(0099) 字节4:分(0059) 字节1:月(1-12) 字节5:秒(00-59) 字节2:日(1-31) 字节6:未分配 字节3:时(00-24) 字节7:星期(1-7=SuSa) 为了读或写方便,这些数据用BCD码存储。当操作开关10.0为1时,就将预定日期和时 间写入实际时钟。为了显示当前的秒值,将其值拷贝到输出字节QB0。当10.1=1时,则 用BCD码显示;当10.1=0时,则用二进制码显示。 例图 BCD码显示秒 置日期 10. 1- ON: Second Display in BCD Format 10.0 Set Dete: 02/14/95 and 10. 1= OFF: Second Display Binary Clock Time: 12: 00:00 用二进制显示秒 时间 95VB400Yea年 02vB401Mnth月 VB402 Day 214 00VB404 Minute分 0B405 Second秒 vB406 03vB407 Day of week星期几 01 24V 西门子版权所有
¸¹ºW *+'"%# 012 34 ÞnÝÍþÀD67#ß,ÑÒÕ 345ÞTÍ7e Ùb aÞ ³c =Wíî# )*uv )* ß )* ÷ )* à )* ã )* Þ )* á÷ )* )* TT 1)2. Ùb3(5- Þ´ , zÓÔ ¾³c®À Ù # ÞT4 e56â7 Ùb8¾3#㦠#ΦZ[þ)* 0, ¾ 1 , z8 ¾ 1 Ú 2z8 , z8ã 'ÞT 1/ *9%#$"'5:.;"#,%+-.6 *9%#$"'5:.;"#,%+-.6 "#,%+-.6 *6*6*< .#$ *6*6*< .#$ 1 1 *9%#$"'5:.;,"#.+; :%93"-*< << *9%#$"'5:.;,"#.+; :%93"-*< << ABC>DEF G
例8 SIMATIC S7-200 程序框图 主程序开始 子程序0开始 设置日期 将日期和时间写入所提供 和时间吗? 的数据字节,并转换成实时 时钟和日期 周用子程序0 子程序0结束 设置日期和时间 以BCD码 输出秒值吗? 将秒值以BCD码 将秒值以二进制码 输出到输出字节 输出至输出字节 程序和注释 通过按输入开关10.0,可调用子程序0。这个子程序按照要求的日期和时间,预先将其值 置入VB100到VB107这8个字节,然后用ToDW指令,将此设置传送给实时时钟 每个周期都读出实时时钟的值,这些数据以BCD码形式(4位代表0至9的数字)存储 在vB400到ⅤB407这8个字节中。如果输入10.1为1,这些值就被直接拷贝到输出字 节QBO,以供显示 如果输入开关10.1为0,将数据定W404拷贝到 再将包含分钟值的VB204清 零。这一步是必须的,因为把秒值从BCD码形式转换成二进制码形式,只能按字来转换 现时的二进制码的秒值被传输到输出字节B0,以供显示 本程序长度为46个 version 2.2 西门子版权所有
*+'"%# ¸¹ºW H Y .B 9 B +# bM B >?H H YB I $ @ .@I $ .@I z 2 ¡ w ®À =1n Þn ã#ÞT4e ÂH#Φ ' , þ , Þ )* < ! Õ #×&'¶|j67 RSTn367#¦ Þ´Ì , zU" ¡Ô 7 #) ÓÔ , þ , Þ )* í" Ù Þ¦efvZ[þ) * 0, Ì8 í"®À Ù #´ ! Z[þ ! L#);÷7¦# , / Ä Þ]kê# Ù㦳 , zU"M£Ú 2zU" àá )M£ #Ú 2z#ã¦e¶þ)* 0, Ì8 »nd~Ù )
SIMATIC S7-200 ∥标题:实时时钟 ******主程序**** 10.0 实时时钟的开关,若按10.0开头 ∥上升沿,则 CALL 0 ∥调用子程序0,写实时时钟 ∥设置栈顶(SM00总是1) TODR VB400 读出实时时钟数据并填入8字节缓冲区(VB400至VB407) ∥以BCD码形式显示秒的开关,若110.1=1,则 MOVB VB405, QBO ∥将当前秒值拷贝到输出字节QB0 以二进制码形式显示秒的开关,若10.1=0,则 MOVW VW404, VW204 ∥将字W404拷贝到字WW204。 MOVB 0, VB204 ∥清除高字节ⅤB204(分) ∥BCD码转换为二进制码(秒)。 MOVB VB205, QBO 当前秒值拷贝到输出字节QB0。 MEND ∥主程序结束。 ******子程序0******* SBR ∥设置日期和时间 MovB16#95,VB100 MOvB16#02,VB101 ∥月:2月 MOvB16#14,VB102 ∥日:14 MOVB 16#12, VB MOVB 16##0, VB104 MOVB 16#0, ∥未分配 MOVB 16#3, ∥星期:星期二。 TODW VB100 ∥写实时时钟。 RET ∥子程序0结束 请参考 SIMATIC STEP7编程参考手册5.7节“实时时钟指令”和55节“转换指令”,为您提供了更 多的关于实时时钟和数据转换的信息 西门子版权所有
¸¹ºW *+'"%# HI ôõõôõõôõõôõõôõõôõõôõõõôõõôõõôõõôõõôõõôõõô 567#®À z ®ä ý< 1n 567 &'åæ ê 367´rç )*uv , 7 , Ì , zU"8ã#®À z 1 #¾3ã¦Z[þ)* 0, ÌÚ 2zU"8ã#®À z 1 #) ! Z[þ) ! /U)* , ÷ , zM£ÙÚ 2z ã ¾3ã¦Z[þ)* 0, ïn ôõõôõõôõõôõõôõõôõõôõ6 õõôõõôõõôõõôõõôõõôõõô &'ÞT4e ! ß à à Þ ÷ ã á÷ # TT TTÚ 567 n * 67Õ 4 * M£Õ Ùb c#ÀD674´M£# |
version 2.2 门子版权所有
*+'"%# ¸¹ºW
SIMATIC S7-200 9检测输入信号的边沿 概述 本例程序用来说明如何用S7—200的检测边沿指令来检测简单信号的变化。在这个过程 中,用上升和下降来区分信号边沿,上升沿指信号由“0”变为“1”,下降沿指信号由“1” 变为“0”。逻辑“1”表示输入上有电压,“0”表示输入上无电压 程序用2个存储字分别累计输入100上升沿数目,以及输入10.1下降沿数目 例图 wL SIEMENS CPU 212 输入信号 out signals 10010.1 西门子版权所有
¸¹ºW *+'"%# 56 789 »nEFíÉ #89;<Õ89$% :#Fò Þw ý4îèv÷ :;< ý<Õ : FÙ îè<Õ : FÙ éê ÔW¥ ÔQ¥ n ÓÔ)÷ø ý<ë ÌÍ îè<ë .7203*/.8-3