SIMATIC S7-200 条形码阅读器程序 起动主程序 起动主程序 设置 自由通信口模式 激活接收中断 置输出Q01为1 结束主程序 结束中断程序0 条形码阅读器程序和注解 该程序描述数据接收,条形码阅读器通过接口把读到的数据用自由通信口模式发给 SIMATIC S7-200。为简化此例,窗口下的终端程序可代替条形码阅读器作为发送器连接 本程序长度为15个字。 ************主程序********* ∥正确设置自由通信口模式对此应用很重要 ∥所需信息装载在特殊存储字节SMB30中。 ∥这些输入数据可从操作手册中查询 ∥接收数据借助于中断实现,当数据进入自由编程接口,接收中断事件(8) ∥就被触发了 ∥在此应用中,将中断程序0(NT0)赋予接收中断事件(8) ∥第一次扫描标志(SM0.1=1)。 MOVB+9,SMB30 自由通信口模式:9600波特,无奇偶校验,每字符8位。 ATCH +0,8 ∥指定接收中断事件8调用中断程序0 ∥允许中断。 MEND ∥结束主程序 ∥********中断程序0******* ∥在中断程序0,把存放在特殊存储字节SMB2中的接收字符和大写字母A作比较 ∥如果符合,则置输出位Q0.1为1。 INT 接收中断程序0 LDB=SMB2,16#41 ∥字节SMB2中的接收字符和A比较。 ∥若字符为A,则置Q0.1为1 RET ∥返回主程序。 请参考 SIMATIC STEP7编程参考手册2.6节“特殊存储位”和6.2节“中断指令”,为您提供了更多 的关于自由通信口模式接口的信息 西门子版权所有
¸¹ºW *+'"%# 12345 fg fg Y pu mnopqZr vw xy ( 12345 ^nüÈ´v« yUz{3wv!3þ#´ !"j Ù$ò× °!î#¿n=¡±yUz{3cÙ|uv »nd~Ù ) õôõõôõõôõõôõõôõõôõõôõõôõõôõõôõõôõõôõï nõôõõôõõôõõôõõôõõôõõôõõôõõô «N&' !"óײ¢ º= |pqÑÒÓÔ)* , Þ´=³³c}´ v«´»¼D 6 ¾´ v! v« op eb × # n / ½¾v« op Ö]úûü01 1 ! !" iÑ Q§¨ª© R)ª Õ v« op 1 n æç ïn ôõõôõõôõõôõõôõõôõõôõõôõ ôõõôõõôõõôõõôõõôõõô n Ó¥ÑÒÓÔ)* , #v«)ª4ë5)¿ cÀ í"ªÁ ' 0 Ù v« n )* , #v«)ª4 À z)ªÙ ' 0 Ù VWïn * ÑÒÓÔ 4 * Õ Ùbc #ÀD !"v!# |
version 2.2 门子版权所有
*+'"%# ¸¹ºW
SIMATIC S7-200 6设置位或字节的几种方法 概述 本程序描述了用一定值存入预定的存储区域或对预定的存储区域清零的几种方法。 本例采用了以下指令: FILL 指令 FOR…NEXT 循环指令 RESET 例图 SIEMENS CPU 214 图 82A 24 VDC 西门子版权所有
¸¹ºW *+'"%# #$%&'()*+ »nüÈb] ¦Ó #ÓÔvÃ(ó #ÓÔvÃ/Ä#+,-. »bÌîÕ ! Õ ! /7 XYÕ ! Õ
例6 SIMATIC S7-200 程序框图 开始主程序 开始子程序0 (开始主程序1) 开始子程序2 周用子程序0 则执行 则执 调用子程序1 复制存储区 存储区复位 调用子程序2 结束子程序0 算和存储 结束子程序2 结束主程序 循环结束 结束子程序1 程序和注释 本例程序描述了用一定值存入预定的存储器位或字节,以及清除存储区内容的几种方法 采用指令如下 FILL 设置一个字或几个字 FOR…NEXT FOR……NEXT循环。 对一位或几位置0。 本程序长度为55个字。 ∥标题: FORNEXT *****主程序******* ∥主程序包括对子程序0、1、2、的调用。 ∥主程序 SM0.0 ∥SM00总是1。 CALL 0 调用子程序0(FL)。 ∥调用子程序1(FoR…NEXT)。 CALL 2 ∥调用子程序2( RESET) MEND ∥主程序结束 *******子程序0******* 子程序0功能:如果输入1001,则把W200中值复制到W4至WN16 ∥子程序0 0 ∥子程序0 ∥读输入10.0,如果10.0=1,则 MOW16#ABC3,W200∥将十六进制数ABC3写入W200。 FLLW200,W204,7∥把W200中值复制到W204至W216 RET ∥子程序0结束。 Version 2.0 门子版权所有
*+'"%# ¸¹ºW H H >?H >?H z)*= 5 8 )*= >?H H "OB)* H {| H »nüÈb] ¦Ó #ÓÔ()* ÌÍ/UÓÔvÅ#+,-. Õíî &'])(+) /7 /7 XY ó](+' »nd~Ù ) % ôõõôõõôõõôõõôõõôõõôõ õôõõôõõôõõôõõôõõôõõô ïn)*ón #1 ïn ê 1n 1n /7 1n ïn ôõõôõõôõõôõõôõõôõõôõ6 õôõõôõõôõõôõõôõõôõõô n á í" 1 ! ¦Å2þ ! 7 ! n n 3 í" 1 #¸¹ 2 , 5 ! # ! ¦Å2þ ! 7 ! n }~ }~ }~
SIMATIC S7-200 ***子程序1*** ∥当输入10.1=1时,把几个初始数复制到变量存储区。 ∥循环次数取决于Ww10中的首次循环数和WW0中的最后一次循环数。 ∥当前循环次数存储在内存字W20中 ∥首次计数值(50)存储在累加器AC0中。 ∥计数值缓冲区首址(&VB100)存储在累加器AC中,AC1为计数值缓冲区指针 ∥每循环一次的功能 ∥ACO的计数值存入AC1指针所指向的内存单元 ∥AC1指针加2个字节,指向下一个内存字。 ∥AC的计数值加4 ∥直到最后一次循环。 ∥字程序1 SBR ∥子程序1 100 ∥读输入101,如果10.1=1,则 MOVW +10, VWO ∥把最后一次循环数存入WWo。 ∥把第一次循环数存入W10 MOWW0,VW20 把当前循环数存入WW20(计数器)。 MOVW 50, ACO ∥把开始计数值存入累加器0(AC0)。 MOVD &VB100, AC1 ∥累加器1(存储区指针)指向存储字节VB100。 FORW20,WW10,wwo∥循环开始 MOW ACO, *AC ∥把当前计数值存入当前存储地址中 INCD AC 存储区指针加一个字节 INCDAC1 ∥存储区指针加一个字节 ∥给当前计数值加4 NEXT ∥循环结束。 ∥子程序1结束 ******子程序2******* ∥如果输入10.2=1,则把存储器位V100至V1217及V2040至V2177置 ∥字程序 SBR 2 ∥子程序2 10.2 ∥读输入102,如果10.2=1,则 V1000,176 ∥把V100.0至V121.7置0 ∥把V204.0至V2177置0 RET ∥子程序2结束 请参考 SIMATIC STEP7编程参考手册4.7节“FL指令”,5.6节“FOR……NEXT指令”和35节“ RESET 指令”,为您提供了更多的关于对存储器位和字节置位和复位的信息。 西门子版权所有
¸¹ºW *+'"%# ôõõôõõôõõôõõôõõôõõôõ6 ôõõôõõôõõôõõôõõôõõô ¾ 1 +ðñÅ2þF ÓÔv XYúD ! #ùúXY4 ! #è ]úXY ¾3XYúÓÔÓ) ! ùú¦ ÓÔå ¦uvù¶ 8, ÓÔå Ù¦uvÕÆ RXY]ú#á #¦Ó ÕÆºÕN#Ó%· ÕÆå )* ÕNî]Ó) #¦å fþè ]úXY )n n 3 í" 1 è ]úXYÓ ! Ö]úXYÓ ! ¾3XYÓ ! ®ñ¦Óå & å ÓÔvÕÆ ÕNÓÔ)* , XY®ñ ' ¾3¦Ó¾3ÓÔO¶ ÓÔvÕÆå])* ÓÔvÕÆå])* j¾3¦å % XY n ôõõôõõôõõôõõôõõôõõôõ6 õôõõôõõôõõôõõôõõôõõô í" 1 ÓÔ 7 Í 7 ' )n n 3 í" 1 # 7 ' 7 ' n * Õ * /7 Õ 4 * Õ Ùbc#ÀDóÓÔ4)*'4Å# |