SIMATIC S7-200 3模拟电位器 概述 本例包含了有关 SIMATIC S7214的模拟电位器(POT)的使用信息。电位器的位置转换 为0至255之间的数字值,然后,存入两个特殊存储器字节SMB28和SMB29中,分别 对应电位器0和电位器1的值。 需要一把小螺丝刀用以调整电位器的位置 本应用示例介绍了使用模拟电位器调整定时器设定值的三种方案 例图 Analog Potentiometer 西门子版权所有 Version 0.93
¸¹ºW *+'"%# »);bWÀ # # | #'M£ Ù 7 e#)¦ < ÓßÑÒÓÔ)* , 4 , ÷ø ó 4 #¦ =]é>?@Ì1A#' »BCb1A & ¦#G,-D
例3 SIMATIC S7-200 程序框图 主程序开始 子程序2开始 扫描计数器加 0.0 首次扫描初始 10.2(与非|00) 化所有缓冲区 加POT1值到以前总和中 周用SBR1 调用SBR2 POT0值装入 查「100次扫描完成了吗 计算平均值,扫描计数器复位 从POT0读P 从POT1读PVv 值装入T33 值装入T34 新平均值在保护段之外吗? T35到时后 是 AC2加 新平均值存入W14、16、18 QB0显示 T33到时后 T35复位 匚设置新保护段 2加 W20加1 QB0显 将新的模拟电位器值送回到W18 T33复位 T34复位 主程序结束 子程序2结束 POT O AC1清零 变吗? PoT0值 加200ms PoT0值 编移量 传给W0 子程序1结束 传给AC1 程序和注释 方案1说明了用模拟电位器对定时器设定值进行细调的方法。首先通过程序中的偏移量(本 例中为200ms)对定时器进行粗调,然后再用电位器能把定时器的设定值精确地调整到 满意的设置。每个定时器周期之后,执行子程序1中的指令,把POTO的值(在SMB28 中)读到AC1,除以2,再加上200ms偏移量。返回主程序时,AC2中的定时器循环计 数值加1,并拷贝到输出字节(QB0),以供显 在方案2中,对电位器1(POT1)的100次扫描值在AC3中累加后并取平均,再存入W12 如果该值低于低保护限值Ww14,或高于高保护限值ww16(两者均在首次扫描时初始 化),则将新值WW12拷贝到W14、WW16和WW8中。然后再分别对W16和WW14 的值减、加3ms,作为新限值,而W18中的平均值被传回主程序作为定时器T34的设 定值。返回主程序时,ww20中的定时器循环计数值加1,并拷贝到输出字节(QB1), 以供显示 在方案3中,把电位器0(POT0)的值直接作为定时器T35的设定值,AC2中的定时器 循环计数值加1,并拷贝到输出字节(QB0),以供显示 本程序长度为110个字 ersion 0.93 门子版权所有
*+'"%# ¸¹ºW !5 67 89:;<= >? >? @A B C D C D @A @A 2E / FG 2E 2E / / FG FG -D EFbó & ¦ aG1#-. ùHwn#IJ » Ù -' ó aK1 < Lá #& ¦MNO1Aþ PQ#&' R ST lan #Õ #¦ , 3þ UÌ Lå -' IJ VWïn # XY ¦å rZ[þ)* 0, Ì8 -D ó # úûü¦ å r\] LÓ ! í"^¦_D_`ab¦ ! (D`ab¦ ! ß]ùúûüðñ ò #¦ ! Z[þ ! ! 4 ! < L÷øó ! 4 ! #¦Á å -' cÙb¦ d ! #\]¦e¶WïncÙ #& ¦ VWïn ! # XY¦å rZ[þ)* 0, Ì8 -D #¦fvcÙ #& ¦ # XY¦å rZ[þ)* 0, Ì8 »nd~Ù ) H !"#$/ / @2IJKB !LMN "OPQ@ !"#$ RPQ@STUVWX RPQ@) YRTUV .R+Z[\$@]^2 H %& @ _` a bO @ H / cde @ _` H
SIMATIC S7-200 ∥标题:模拟电位器: ∥*************主程序********* ∥这是S7214的一个演示程序,介绍了使用模拟电位器调整定时器设定值的三种方案 ∥方案1:对来自PoT0的值进行换算并加偏移量,以调整定时器的设定值,可以从200ms调到的148s 每个定时器周期QB0加1 ∥方案2:从POT1来的值经过滤波给定时器提供0ms到约2555的稳定的设定值。每个定时器周期 加 ∥方案3:把POT0的值直接作为定时器设定值。每个定时器周期QBo加1 ∥模拟电位器POT0和PoT1的值可以分别从SMB28和SMB29中以一个字节读出 ∥每次扫描时,PT的值会变化一点,方案1和2都能为定时器提供稳定的设定值。 ∥方案1的设定值会改变1次或2次,但每个定时器周期只装载一次 ∥方案2的设定值非常稳定,每次扫描都装载 ∥方案3的设定值每次扫描都会改变 ∥主程序 LD SMO. ∥首次扫描时清除工作缓冲区 MOVD+0,ACO AC0=0。 MOVD+0. AC3 Mov+0,10 ∥W10=0。 Mov+32000,W14 ∥低限工作区复位。 MOVW+0, VW16 ∥高限工作区复位 ∥方案1 ∥每次扫描时POT的值会改变一点 ∥下面的指令用来在每个定时器周期捕获一次换算后的值,并提供一个稳定的定时器设定值 100 ∥如果输入10.0为1状态,则选方案1。 TON T33, VWO ∥POT0的值经过运算后作为T33的设定值 ∥调用子程序1对POT0的值进行换算并加偏移量。 ∥若T33计时到, INCW AC2 ∥则AC2加1,即定时器循环计数。 MOVb AC2, QB0 ∥把AC2的最低有效字节拷贝到输出字节QB0,以供显示。 ∥定时器T33复位 ∥方案2: CALL 2 ∥调用子程序2,对POT1的值进行滤波运算后存入W18。 TONT34,VW18 ∥W18的值作为T34的设定值。 ∥若T34计时到 INCW V20 ∥则W20加1,即定时器循环计数。 MOVB VB21, QB1 ∥把ww20最低有效字节(vB21)拷贝到输出字节QB1,以供显 ∥定时器T34复位 西门子版权所有 Version 0.93
¸¹ºW *+'"%# +,-! õôõõôõõôõõôõõôõõôõõôõõôõõôõõôõõôõõôõõôõõõõôõõôõõôõõôõõôõõôõõôõõôõõôõõôõõôõõôõõô Þê #]n BCb1A & ¦#G,-D -D ó #¦ a£¤råIJ Ì1A #& ¦ =̳ -' 1þ# ' R ST 0, å -D ³ #¦gwhij -' þk ' #l #& ¦ R ST 0, å -D #¦fvcÙ & ¦ R ST 0, å 4 #¦=Ì÷ø³ , 4 , Ì])*3 Rúûü #¦mFò]i -D 4 náÙ l #& ¦ -D #& ¦mEF ú( ú oR STàpq]ú -D #& ¦rsl Rúûünpq -D #& ¦RúûünmEF ïn ùúûü/Utcuv 1 1 !1 _btcvÅ btcvÅ -D Rúûü #¦mEF]i îw#ÕR STxy]ú£¤ #¦ r]l # & ¦ í" Ù ! O-D #¦gw`¤ cÙ #& ¦ 1n ó #¦ a£¤råIJ z þ å % XY #è_W{)*Z[þ)* 0, Ì8 Å -D í" Ù ! O-D 1n ó #¦ ahi`¤ Ó ! ! #¦cÙ #& ¦ z þ ! å % XY ! è_W{)* , Z[þ)* 0, Ì8 Å
例3 SIMATIC S7-200 ∥方案3 102 ∥如果输入102为1状态 100 ∥且方案1不在运行(10.0=0),则选方案3 MOV 0, AC1 ∥清除累加器1(AC1) MOVB SMB28, AC ∥送POT0的值到AC1。 T35, AC1 ∥POT0的值作为T35的设定值。 ∥若T35计时到, INCWAC2 则AC2加1,即定时器循环计数 MOVB AC2, QB0 ∥把AC2最低有效字节拷贝到输出字节QB0,以供显示 ∥定时器T35复位。 MEND ∥主程序结束 ∥方案1的子程序 SBR ∥子程序1 ∥换算POT0的值并加上偏移量后存在WW中,再返回主程序 个定时器周期检查POT0的变 MOV 0, AC1 ∥清除累加器1(Ac1) MOVB SMB28, AC ∥送POT0的值给AC1 ∥AC1除2,即把POT0的输入范围从0~255换算成0~127 20,AC1 加200ms偏移量 MOV AC1, WO ∥把AC1值拷贝到WWo0,以便能上程序员读取 ∥子程序1结束 ∥方案2的子程序 SER 子程序2。 ∥对POT1值采样100次,然后求平均值。 INCW VW10 ∥扫描计数器加1。 MOVB ∥送POT1的值到AC0 ACO, AC ∥再加到以前的总和中(即累加POT1的值,共累加100次)。 LDw=W10,100 ∥100次扫描之后。 100,AC3 ∥求平均值。 MOVW AC3,V12 ∥存平均值。 MOV 0, VW10 ∥扫描计数器复位。 MOVD 0AC3 ∥工作内存复位。 AW<= VW12, VW14 ∥检查新的平均值是否在保护区之外。 oW>=W12,W16 12,WW14,3∥把新的平均值存入W14,WW16,W18。 +3,W14 ∥设置新的低保护限。 +3,W16 ∥设置新的高保护限 RET ∥POT1的滤波值存在W18中,返回主程序 Version 0.93 门子版权所有
*+'"%# ¸¹ºW -D í" Ù ! 2-D `a 1 O-D /Uå | #¦þ #¦cÙ #& ¦ z þ å % XY è_W{)*Z[þ)* 0, Ì8 Å ïn -D #n n £¤ #¦råIJ Ó ! LVWïn R ST8} #Fò /Uå | #¦j U % #(~³ 2 £¤ 2 å -' IJ ¦Z[þ ! Ìán3 n -D #n n ó ¦ ú < \]¦ ûüå ! | #¦þ LåþÌ3#4 %å #¦ å ú úûü \]¦ Ó\]¦ ûüÅ " tcÓÅ 8}#\]¦ê`av #\]¦Ó ! ! ! &'#_`ab &'#`ab #hi¦Ó ! VWïn
SIMATIC S7-200 例4 4怎样使用高速计数器 概述 本例叙述 SIMATIC S7-200的高速计数器(HSC)的一种组态功能。对来自传感性(如编 码器)信号的处理,高速计数器可采用多种不同的组态功能 本例用脉冲输出(PLS)来为HSC产生高速计数信号,PLS可以产生脉冲串和脉宽调制 信号,例如用来控制伺服电机。既然利用脉冲输出,必须选用CPU214DC/DCDC 下面这个例子,展示了用HSC和脉冲输出构成一个简单的反馈回答,怎样编制一个程序 来实现反馈功能。 例图 Q0.0: Pulse Output 脉冲输出 24 VDC 只只 CPU 214 DC/DCDC uIIrIIIIII 10.0: Input High-speed counter 高速计数器输入 西门子版权所有 13
¸¹ºW *+'"%# »ÇÈ # #],ì!á ó¶KË í z :# =c,#ì!á »/ Ù ¬ : =̬/4/012 : í2@ </ O îwÞ ²b 4/]$%#RSW 2]n 6RSá