例4 SIMATIC S7-200 程序框图 主程序 子程序1: 程序0: 起动HSC0 初始化,起动PLS 在脉冲序列末程序停止 第一次设定值 第二次设定值 第三次设定值 100 程序和注看 本例描述了S7—200 DC/DC/DC的高速计数器(HSC)的功能。HSC计数速度比PLC扫 描时间快得多,采用集成在S7-212中的2kHz的软件计数器进行计数。S7-214除了有 2kHz的计数器外,还有两个7kHz的硬件计数器。总的来说,每个高速计数器需要10个 字节内存用来存控制位、当前值、设定值、状态位 本程序长度为91个字 主程序 ∥在主程序中,首先将输出Q00置,O,因为这是脉冲输出功能的需要。再初始化高速计。 ∥数器HSCO,然后调用子程序0和1。 HSc0起动后具有下列特性:可更新CV和PV值,正向计数 ∥当脉冲输出数达到SMD72中规定的个数后,程序就终止 ∥主程序 SM0.1 ∥首次扫描标志(SMo1=1) R Q0.0,1 ∥脉冲串输出Q00复位(Q0.0=0) MOVB 16#F8, SMB37 ∥装载HSCO的控制位 激活HSC0,可更新CV,可更新PV, 可改变方向,正向计数。 ∥HSC指令用这些控制位来组态HSC ∥HSC0当前值(CV)为0 MOVD 100 ∥HSC0的第一次设定值(PV)为1000 HDEF 0, 0 ∥HSC0定为模式0 Version 2.2 门子版权所有
*+'"%# ¸¹ºW H H fg 58 fg Sh<ijkl / / / Ö]ú& ¦ ÖÚú& ¦ ÖGú& ¦ »üÈb # #á ~ û üec # 34 #p a UbW 34 # Wß 34 #p #E R= )*ÓÓ2 ¾3¦ & ¦ ! »nd~Ù ) ïn ïn ùH# 0 ' ÙÞê/á#= Lðñò < 1n 4 A? §WîÑË = 4 ¦ «N ¾/þ # n ïn ùúûü01 1 / 0 Å 0 1 # pq #2 &' = = =EF-N «N ÕÞ2ì! ¾3¦ Ù #Ö]ú& ¦ Ù Ù"
SIMATICS7-200 例4 CALL 0 调用子程序0 CALL ∥调用子程序1 MEND ∥主程序结束。 ∥**********水************** ∥子程序0: ∥子程序0初始化,并激活脉冲输出(PLS)。 ∥在特殊存储字节SMB67中定义脉冲输出特性:脉冲串(PTO,时基,可更新数值,激活PLS。 ∥SMW68定义脉冲周期,其值为时基的倍数 ∥最后,在SMD72中指定需要产生的脉冲数。(SMD72)为内存双宇,即4个字节) ∥子程序0 ∥子程序0 MOVB16#8D,SMB67∥装载脉冲输出(PLS0)的控制位:PT0,时基1ms,可更新,激活。 MOVW 1, SMW68 ∥脉冲周期1ms。 MOvD30000,SMD72产生30000个脉冲。 PLS ∥起动脉冲输出(PLs0),从输出端Q0.0输出脉冲, ∥子程序0结束 ∥******************** ∥子程序1: ∥子程序1起动HSC0,并把中断程序0分配给中断事件12(HSC0的当前值CV等于设定值PV 只要脉冲计数值(当前值CV)达到设定值(PV,该事件就会发生。 ∥最后,允许中断 ∥子程序1 1 ∥子程序1 ATCH 0, 12 ∥把中断程序0分配给中断事件12(HSC0的CV=PV) ∥按主程序中对HSC0的初始组态特性,起动HSC0。 RET ∥子程序1结束 ∥************************* ∥中断程序0 当HSC0的计数脉冲达到第一,设定值1000时,调用中断程序0 ∥输出端Q01置位(001=1) ∥为HSCO设置新的设定值1500(第二设定值 ∥用中断程序1取代中断程序0,分配给中断事件12(HSC0的Cv=PV ∥中断程序0 西门子版权所有
¸¹ºW *+'"%# 1n 1n ïn ôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõô n n ðñò r&'/ ÑÒÓÔ)* , /ÑË / Ï =¦ &' ! /ST ΦÙÏ# è Õ =¬#/ ÙÓ % )* n n # pq/ #2 Ï -' = &' /ST -' # ¬ / $ A?/ ³¿ 0 / n ôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõô n n A? r n ÷j op #¾3¦ 4D& ¦ à/¦ ¾3¦ þ& ¦ ^opm è æç n n n ÷j op # 1 æç ïnó #ðñì!ÑË A? n ôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõô n ¾ #/þÖ] & ¦ 1 n ¿ 0 ' 0 1 Ù &'#& ¦ ÖÚ& ¦ n ¡ n ÷j op # 1 n
例4 SIMATIC S7-200 INT 中断程序0。 Q0.1,1 ∥输出端Q01置位(Q0.1=1) MOVB 16#AO, SMB37 ∥重置Hsco的控制位,仅更新设定值(PV)。 MOVD 1500, SMD42 ∥HSC0的下一个设定值为1500(第二设定值)。 ATCH 1, 12 ∥用中断程序1取代中断程序0,分配给中断事件12 HSC ∥起动HSCO,为其装载新的设定值 RETI ∥中断程序0结束。 水*水水客水*水水客水*水水客水*水水水水客水水 ∥中断程序1 当HSCO的计数脉冲达到第二设定值1500时,调用中断程序1 ∥输出端Q02置位(Q0.2=1) ∥Hsc0改成减计数,并置新的设定值1000(第三设定值) ∥用中断程序2取代中断程序1,分配给中断事件12(Hsc0的cv=PV ∥用中断程序1 INT ∥中断程序1。 Q02,1 ∥输出端Q0.2置位(Q0.2=1) MOVB 16#B0 重置HSC0的控制位,更新设定值,并改成减计数(反向计数) MOVD 0, SMD42 ∥HSC0的下一个设定值为1000(第三设定值)。 ATCH 2, 12 ∥用中断程序2取代中断程序1,分配给中断事件12。 ∥起动HSC0,为其装载新的设定值和方向。 RETI 中断程序1结束。 ∥************************* ∥中断程序2 ∥当HSCO的计数脉冲达到第三设定值1000时,调用中断程序2 ∥输出端Q0.和002复位(01=0,002=0) ∥HSCO的计数方向重新改为正向(增计数),并将当前计数值置为0,而设定值PV保持不变(1000 重新把中断程序0分配给中断事件12,程序再次起动HSc0运行。 ∥当脉冲数达到SMD72中规定的个数后,程序就终止。 ∥中断程序2 INT ∥中程序2。 R Q0.1,2 ∥输出端Q0.和Q02复位(001=00.2=0) ∥重置HSC0的控制位,更新CV,改为正向计数(增计数) MOVD 0, SMD38 ∥HSCO的当前值复位(CV=0)。 ATCH, 12 ∥把中断程序0分配给中断事件12 ∥重新起动HSC0 RET ∥中断程序2结束 请参考 SIMATIC STEP7编程参考手册61节“高速计数器指令”和63节“高速输出指令”,为您提供 了更多的关于高速计数器和脉冲序列的信息 Version 2.2 1 门子版权所有
*+'"%# ¸¹ºW n ¿ 0 ' 0 1 # ¢' #2 Û& ¦ #î]& ¦Ù ÖÚ& ¦ n ¡ n ÷j op A? ÙÎpq#& ¦ n ôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõô n ¾ #/þÖÚ& ¦ 1 n ¿ 0 ' 0 1 EÁ r'#& ¦ ÖG& ¦ n ¡ n ÷j op # 1 n n ¿ 0 ' 0 1 # ¢' #2 & ¦ rEÁ RN #î]& ¦Ù ÖG& ¦ n ¡ n ÷j op A? ÙÎpq#& ¦4-N n ôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõôõô n ¾ #/þÖG& ¦ 1 n ¿ 0 4 0 Å 0 1 0 1 #-N¢EÙ«N ä r#¾3¦'Ù d& ¦ `ÝF ¢ n ÷j op nLúA? `a ¾/þ # n n n ¿ 0 4 0 Å 0 10 1 # ¢' #2 EÙ«N ä #¾3¦Å 1 n ÷j op ¢A? n * Õ 4 * Õ Ù bc#ÀD4/n# |
SIMATIC S7-200 5自由通信口模式的简单应用 概述 自由通信口模式( Freeport Mode)的通信协议可自由定义,通信所需要的信息存放在特 殊存储字节SMB30中,用户须作如下说明 奇偶校验 每个字符的位数 特率 自由通信口模式可以接收和发送数据。本例用一个仿真的打印机程序来描述数据发送 用一个条形码阅读程序来说明数据接收 例图 条形码解码器 Bar Code Decode CPU 212 条形码解码器 Bar Code Reeder 打印机接口 Adapt 适配器 通信口 Commun| catoon 发送 西门子版权所有
¸¹ºW *+'"%# !" !" +**5%+6 %$* # £¤= º=# | ÒÓÔ)* , ¦cíîEF ! §¨ª© ! R)ª# ! iÑ¢ !"=Ìv«4|´ »]¬#st@nüÈ´| L ]yUz{3nEF´v« !"#$#%"#! !
例 SIMATIC S7-200 打印机程序框图 起动主程序 通信口模式 定义发送的 存储器区 发送 结束主程序 打印机程序和注解 此程序描述向打印机发送数据。为了简化此例,窗口下的终端程序可代替打印机作为接收 器边接。打印机或终端的组态特性为9600波特,无奇偶校验,每字符8位 本程序长度为13个字 ∥正确设置自由通信口模式对此应用很重要 ∥所需信息装载在特殊存储字节SMB30中。 ∥这些输入数据可从操作手册中查询。 ∥发送命令XMT包含了发送信息缓冲区的起始地址,该地址单元中只包含了发送信息的长度(以字节 为单位 SMO ∥第一次扫描(SM0.1=1) MOVB +9, SMB30 ∥自由通信口模式:;9600波特,无奇偶校验,每字符8位 ∥信息长度为1个ASC字符。 MOvB16#41,VB101 A字符长度为1个字节,A=41H(十六进制)。 ∥输入10.1起动发送 ∥识别脉冲上升沿。 XMT VB100. 0 ∥发送。 MEND ∥主程序结束。 请参与SMAT EP7编程参考手册2.6节“特殊存储位”和6.4节“发送指令”,为您提供了更多 的关于自由通信口模式的通信接口的组态信息 Version 2.2 门子版权所有
*+'"%# ¸¹ºW st@n®¯ fg Ymn opqZr st]+ )*$= t ] ./0 ×nüÈNst@|´ Ùb$ò× °!î#¿n=¡±st@cÙv« ;v st@(¿#ì!ÑËÙ iÑ Q§¨ª© R)ª »nd~Ù ) «N&' !"óײ¢ º= |pqÑÒÓÔ)* , Þ´=³³c}´ |µ 7 );b| |uv#AñO¶ ^O¶%·à);b| |#d~ Ì)* Ù% Ö]úûü 1 ! !" iÑ Q§¨ª© R)ª |d~Ù )ª )ªd~Ù )* 1 ¸¹ 2 A?| ºø/ý< % | ïn * ÑÒÓÔ 4 * |Õ Ùbc #ÀD !"# v!#ì! |