s计数器指令
- 格式:doc
- 大小:656.00 KB
- 文档页数:8
S7-200指令详解PLC在运行时需要处理的数据一般都根据数据的类型不同、数据的功能不同而把数据分成几类。
这些不同类型的数据被存放在不同的存储空间,从而形成不同的数据区。
S7-200的数据区可以分为数字量输入和输出映像区、模拟量输入和输出映像区、变量存储器区、顺序控制继电器区、位存储器区、特殊存储器区、定时器存储器区、计数器存储器区、局部存储器区、高速计数器区和累加器区。
3.1 S7-200的数据区1. 数字量输入和输出映象区(1) 数字量输入映像区(I区)数字量输入映像区是S7-200 CPU为输入端信号状态开辟的一个存贮区,用I表示。
在每次扫描周期的开始,CPU对输入点进行采样,并将采样值存于输入映像区寄存器中。
该区的数据可以是位(1bit)、字节(8bit)、字(16bit)或者双字(32bit)。
其表示形式如下。
·用位表示I0.0、I0.1、…I0.7I1.0、I1.1、…I1.7…I15.0、I15.1、…I15.7共l28点。
输入映像区每个位地址包括存储器标识符、字节地址及位号三部分。
存储器标识符为“I”,字节地址为整数部分,位号为小数部分。
比如Il.0表明这个输入点是第1个字节的第0位。
·用字节表示IB0、IB1、…IB15共l6个字节。
输入映像区每个字节地址包括存储器字节标识符、字节地址两部分。
字节标识符为“IB”,字节地址为整数部分。
比如IB1表明这个输入字节是第1个字节,共8位,其中第0位是最低位,第7位是最高位。
·用字表示IW0、IW2、…IW14共8个字。
输入映像区每个字地址包括存储器字标识符、字地址两部分。
字标识符为“IW”,字地址为整数部分。
一个字含两个字节,一个字中的两个字节的地址必须连续,且低位字节在一个字中应该是高8位,高位字节在一个字中应该是低8位。
比如,IW0中的IB0应该是高8位,IB1应该是低8位。
·用双字表示ID0、ID4、…ID12共4个双字。
高速计数器计数器输入/输出操作数数据类型N常数(0,1,2,3,4或5)字内存范围错误S7-200 CPU指令支持SIMATIC/国际助记符数据范围CPU内存中的指令大小编址内存高速计数器(HSC)指令根据HSC特殊内存位的状态配置和控制高速计数器。
参数N指定高速计数器的号码。
高速计数器最多可配置为十二种不同的操作模式。
每台计数器在功能受支持的位置有专用时钟、方向控制、复原和起始输入。
对于双相计数器,两个时钟均可按最高速度运行。
在正交模式中,您可以选择一倍\(1x)或四倍(4x)的最高计数速率。
所有的计数器按最高速率运行,而不会相互干扰。
注释:CPU 221和CPU 222支持4台高速计数器 (HSC0、HSC3、HSC4、HSC5)CPU 221和CPU 222不支持HSC1和HSC2CPU 224、CPU224XP、CPU 226支持6台高速计数器 (HSC0至HSC5)您可以为每台高速计数器使用一条"高速计数器定义"指令。
文档光盘中"提示与技巧"中的第4条提示和第29条提示提供使用高速计数器的程序。
设置ENO = 0的错误条件:0001 HSC在HDEF之前0005 HSC/PLS同步程序举例LAD FBDSTL NETWORK 1 // 主程序// 首次扫描时,调用SBR_0LD SM0.1CALL SBR_0NETWORK 1 // 子程序0开始// 配置HSC1LD SM0.1 // 首次扫描时MOVB 16#F8 SMB47 // 配置HSC1:// - 启用计数器// - 写入新当前值// - 写入新预设值// - 将初始方向设为向上计数// - 选择现用水平高的起始和复原输入// - 选择4x模式HDEF 1 11 // 将HSC1配置为正交模式,// 具有复原和起始输入功能MOVD +0 SMD48 // 清除HSC1的当前值MOVD +50 SMD52 // 将HSC1预设值设为50ATCH INT_0 13 // HSC1当前值 = 预设值(事件13)// 附加在中断例行程序INT_0上ENI// 全局中断启用HSC 1 // 程序HSC1NETWORK 1 // 中断0开始LD SM0.0MOVD +0 SMD48 // 清除HSC1的当前值MOVB 16#C0 SMB47 // 选择仅写入一个新当前值,// 使HSC1保持启用状态HSC 1 // 程序HSC1另请参阅:识别高速计数器指令HSC向导HDEF指令。
第四章 S7-200的基本指令4.1位操作指令位操作类指令,主要是位操作及运算指令,同时也包含与位操作密切相关的定时器和计数器指令等。
位操作指令是PLC常用的基本指令,梯形图指令有触点和线圈两大类,触点又分常开触点和常闭触点两种形式;语句表指令有与、或及输出等逻辑关系,位操作指令能够实现基本的位逻辑运算和控制。
一、位操作指令介绍1.逻辑取(装载)及线圈驱动指令LD/LDN(1)指令功能LD(load):常开触点逻辑运算的开始。
对应梯形图则为在左侧母线或线路分支点处初始装载一个常开触点。
LDN(load not):常闭触点逻辑运算的开始(即对操作数的状态取反),对应梯形图则为在左侧母线或线路分支点处初始装载一个常闭触点。
=(OUT):输出指令,对应梯形图则为线圈驱动。
(2)指令格式如图 4-1 所示。
梯形图语句表网络 1LD I0.0 //装载常开触点= Q0.0 //输出线圈网络2LDN I0.0 //装载常闭触点= M0.0 //输出线圈图 4-1 LD/LDN、OUT 指令的使用2.触点串联指令 A(And)、AN(And not)(1)指令功能 A(And):与操作,在梯形图中表示串联连接单个常开触点。
AN(And not):与非操作,在梯形图中表示串联连接单个常闭触点。
(2)指令格式如图 4-2 所示梯形图语句表网络 1LD I0.0 //装载常开触点A M0.0 //与常开触点= Q0.0 //输出线圈网络2LD Q0.0 //装载常开触点AN I0.1 //与常闭触点= M0.0 //输出线圈A T37 //与常开触点= Q0.1 //输出线圈图 4-2 A/AN 指令的使用3.触点并联指令:O(Or)/ON(Or not)(1)指令功能 O:或操作,在梯形图中表示并联连接一个常开触点。
ON:或非操作,在梯形图中表示并联连接一个常闭触点。
(2)指令格式如图 4-3 所示梯形图语句表网络 1LD I0.0O I0.1ON M0.0= Q0.0网络 2LDN Q0.0A I0.2O M0.1AN I0.3O M0.2= M0.1图 4-3 O/ON 指令的使用4.电路块的串联指令ALD(1)指令功能 ALD:块“与”操作,用于串联连接多个并联电路组成的电路块。
s7-300PLC编程语句手册汇总S7-300是一种可编程控制器,它有自己的编程语言和指令系统。
在使用S7-300进行编程时,需要了解其语言和指令系统的特点和用法。
S7-300的编程语言包括LAD(梯形图)、FBD(功能块图)和STL(结构化文本语言)。
其中,LAD是最常用的一种语言,它使用梯形图形式来表示程序的逻辑关系。
FBD则是一种图形化的编程语言,它使用不同的功能块来表示程序的逻辑关系。
STL则是一种类似于C语言的文本语言,它使用结构化的语法来表示程序的逻辑关系。
S7-300的指令系统包括基本指令和扩展指令。
基本指令包括逻辑指令、算术指令、移位指令等,用于实现程序的基本功能。
扩展指令则是在基本指令的基础上进行扩展,用于实现更加复杂的功能。
在使用S7-300进行编程时,需要根据具体的应用场景选择合适的编程语言和指令。
同时,还需要注意编程的规范和标准,以确保程序的可靠性和稳定性。
总之,S7-300的编程语言和指令系统是其核心功能之一,掌握其特点和用法对于进行编程工作非常重要。
在实际应用中,需要根据具体的需求和要求,选择合适的编程语言和指令,以实现程序的优化和效率提升。
STEP 7编程语言介绍STEP 7是一种用于编程可编程逻辑控制器(PLC)的工具。
它被广泛应用于自动化控制系统中,包括工厂自动化、机器人控制、物流自动化、建筑自动化等领域。
数据类型在STEP 7中,有多种数据类型可供使用,包括整型、浮点型、布尔型、字符型等。
这些数据类型可用于存储和处理不同类型的数据,以满足不同的应用需求。
参数数据类型在编写PLC程序时,需要指定参数的数据类型。
这些参数可以是输入、输出或内部数据。
参数的数据类型决定了它们可以存储的数据类型,以及它们可以执行的操作。
PLC用户存储区的分类及功能PLC用户存储区是用于存储程序和数据的区域。
它可以分为程序存储区和数据存储区。
程序存储区用于存储PLC程序,而数据存储区用于存储程序中使用的数据。
S7-300/400语句表指令助记符分类说明+ 整数算术运算指令加上一个整数常数(16 位,32 位)= 位逻辑指令赋值) 位逻辑指令嵌套闭合+AR1 累加器指令 AR1 加累加器 1 至地址寄存器 1+AR2 累加器指令 AR2 加累加器 1 至地址寄存器 2+D 整数算术运算指令作为双整数(32 位),将累加器 1 和累加器 2 中的内容相加–D 整数算术运算指令作为双整数(32 位),将累加器 2 中的内容减去累加器 1中的内容*D 整数算术运算指令作为双整数(32 位),将累加器 1 和累加器 2 中的内容相乘/D 整数算术运算指令作为双整数(32 位),将累加器 2 中的内容除以累加器 1中的内容D 比较指令双整数(32 位)比较 ==,<>,>,<,>=,<=+I 整数算术运算指令作为整数(16 位),将累加器 1 和累加器 2中的内容相加–I 整数算术运算指令作为整数(16 位),将累加器 2 中的内容减去累加器 1 中的内容*I 整数算术运算指令作为整数(16 位),将累加器 1 和累加器 2中的内容相乘/I 整数算术运算指令作为整数(16 位),将累加器 2 中的内容除以累加器 1 中的内容I 比较指令整数(16 位)比较 ==,<>,>,<,>=,<=+R 浮点算术运算指令作为浮点数(32 位,IEEE-FP),将累加器1 和累加器 2 中的内容相加–R 浮点算术运算指令作为浮点数(32 位,IEEE-FP),将累加器2 中的内容减去累加器 1 中的内容*R 浮点算术运算指令作为浮点数(32 位,IEEE-FP),将累加器1 和累加器 2 中的内容相乘/R 浮点算术运算指令作为浮点数(32 位,IEEE-FP),将累加器2 中的内容除以累加器 1 中的内容R 比较指令比较两个浮点数(32 位)==,<>,>,<,>=,<=A 位逻辑指令“与”A( 位逻辑指令“与”操作嵌套开始ABS 浮点算术运算指令浮点数取绝对值(32 位,IEEE-FP)ACOS 浮点算术运算指令浮点数反余弦运算(32 位)AD 字逻辑指令双字“与”(32 位)AN 位逻辑指令“与非”AN( 位逻辑指令“与非”操作嵌套开始ASIN 浮点算术运算指令浮点数反正弦运算(32 位)ATAN 浮点算术运算指令浮点数反正切运算(32 位)AW 字逻辑指令字“与”(16 位)BE 程序控制指令块结束BEC 程序控制指令条件块结束BEU 程序控制指令无条件块结束BLD 程序控制指令程序显示指令(空)BTD 转换指令 BCD 转成整数(32 位)BTI 转换指令 BCD 转成整数(16 位)CAD 转换指令 Change Byte Sequence in ACCU 1 (32-bit) CALL 程序控制指令块调用CALL 程序控制指令调用多背景块CALL 程序控制指令从库中调用块CAR 装入/传送指令交换地址寄存器 1 和地址寄存器 2 的内容CAW 转换指令 Change Byte Sequence in ACCU 1-L(16-bit) CC 程序控制指令条件调用CD 计数器指令减计数器CDB 转换指令交换共享数据块和背景数据块CLR 位逻辑指令 RLO 清零(=0)COS 浮点算术运算指令浮点数余弦运算(32 位)CU 计数器指令加计数器DEC 累加器指令减少累加器 1 低字的低字节DTB 转换指令双整数(32 位)转成 BCDDTR 转换指令双整数(32 位)转成浮点数(32 位,IEEE-FP)ENT 累加器指令进入累加器栈EXP 浮点算术运算指令浮点数指数运算(32 位)FN 位逻辑指令脉冲下降沿FP 位逻辑指令脉冲上升沿FR 计数器指令使能计数器(任意)(任意,FR C 0 - C 255)FR 定时器指令使能定时器(任意)INC 累加器指令增加累加器 1 低字的低字节INVD 转换指令对双整数求反码(32 位)INVI 转换指令对整数求反码(16 位)ITB 转换指令整数(16 位)转成 BCDITD 转换指令整数(16 位)转成双整数(32 位)JBI 跳转指令若 BR = 1,则跳转JC 跳转指令若 RLO = 1,则跳转JCB 跳转指令若 RLO = 1 且 BR= 1,则跳转JCN 跳转指令若 RLO = 0,则跳转JL 跳转指令跳转到标号JM 跳转指令若负,则跳转JMZ 跳转指令若负或零,则跳转JN 跳转指令若非零,则跳转JNB 跳转指令若 RLO = 0 且 BR= 1,则跳转JNBI 跳转指令若 BR = 0,则跳转JO 跳转指令若 OV = 1,则跳转JOS 跳转指令若 OS = 1,则跳转JP 跳转指令若正,则跳转JPZ 跳转指令若正或零,则跳转JU 跳转指令无条件跳转JUO 跳转指令若无效数,则跳转JZ 跳转指令若零,则跳转L 装入/传送指令装入L DBLG 装入/传送指令将共享数据块的长度装入累加器 1 中L DBNO 装入/传送指令将共享数据块的块号装入累加器 1 中L DILG 装入/传送指令将背景数据块的长度装入累加器 1 中L DINO 装入/传送指令将背景数据块的块号装入累加器 1 中L STW 装入/传送指令将状态字装入累加器 1L 定时器指令将当前定时值作为整数装入累加器 1(当前定时值可以是0 – 255 之间的一个数字,例如 L T 32)L 计数器指令将当前计数值装入累加器 1(当前计数值可以是 0 –255之间的一个数字,例如 L C15)LAR1 装入/传送指令将累加器 1 中的内容装入地址寄存器 1LAR1 <D> 装入/传送指令将两个双整数(32 位指针)装入地址寄存器 1LAR1 AR2 装入/传送指令将地址寄存器 2 的内容装入地址寄存器 1LAR2 装入/传送指令将累加器 2 中的内容装入地址寄存器 1LAR2 <D> 装入/传送指令将两个双整数(32 位指针)装入地址寄存器 2LC 计数器指令将当前计数值作为 BCD 码装入累加器 1(当前计数值可以是 0 – 255 之间的一个数字,例如 LC C 15)LC 定时器指令将当前定时值作为 BCD 码装入累加器 1(当前定时值可以是 0 – 255 之间的一个数字,例如 LC T 32)LEAVE 累加器指令离开累加器栈LN 浮点算术运算指令浮点数自然对数运算(32 位)LOOP 跳转指令循环MCR( 程序控制指令将 RLO 存入 MCR 堆栈,开始 MCR)MCR 程序控制指令结束 MCRMCRA 程序控制指令激活 MCR 区域MCRD 程序控制指令去活 MCR 区域MOD 整数算术运算指令双整数形式的除法,其结果为余数(32 位)NEGD 转换指令对双整数求补码(32 位)NEGI 转换指令对整数求补码(16 位)NEGR 转换指令对浮点数求反(32 位,IEEE-FP)NOP 0 累加器指令空指令NOP 1 累加器指令空指令NOT 位逻辑指令 RLO 取反O 位逻辑指令“或”O( 位逻辑指令“或”操作嵌套开始OD 字逻辑指令双字“或”(32 位)ON 位逻辑指令“或非”ON( 位逻辑指令“或非”操作嵌套开始OPN 数据块调用指令打开数据块OW 字逻辑指令字“或”(16 位)POP 累加器指令 POPPOP 累加器指令带有两个累加器的 CPUPOP 累加器指令带有四个累加器的 CPUPUSH 累加器指令带有两个累加器的 CPUPUSH 累加器指令带有四个累加器的 CPUR 位逻辑指令复位R 计数器指令复位计数器(当前计数值可以是 0 – 255 之间的一个数字,例如 R C 15)R 定时器指令复位定时器(当前定时值可以是 0 – 255 之间的一个数字,例如 R T 32)RLD 移位和循环移位指令双字循环左移(32 位)RLDA 移位和循环移位指令通过 CC 1 累加器 1 循环左移(32 位)RND 转换指令取整RND–转换指令向下舍入为双整数RND+ 转换指令向上舍入为双整数RRD 移位和循环移位指令双字循环右移(32 位)RRDA 移位和循环移位指令通过 CC 1 累加器 1 循环右移(32 位)S 位逻辑指令置位S 计数器指令置位计数器(当前计数值可以是 0 – 255 之间的一个数字,例如 S C 15)SAVE 位逻辑指令把 RLO 存入 BR 寄存器SD 定时器指令延时接通定时器SE 定时器指令延时脉冲定时器SET 位逻辑指令置位SF 定时器指令延时断开定时器SIN 浮点算术运算指令浮点数正弦运算(32 位)SLD 移位和循环移位指令双字左移(32 位)SLW 移位和循环移位指令字左移(16 位)SP 定时器指令脉冲定时器SQR 浮点算术运算指令浮点数平方运算(32 位)SQRT 浮点算术运算指令浮点数平方根运算(32 位)SRD 移位和循环移位指令双字右移(32 位)SRW 移位和循环移位指令字右移(16 位)SS 定时器指令保持型延时接通定时器SSD 移位和循环移位指令移位有符号双整数(32 位)SSI 移位和循环移位指令移位有符号整数(16 位)T 装入/传送指令传送T STW 装入/传送指令将累加器 1 中的内容传送到状态字TAK 累加器指令累加器 1 与累加器 2 进行互换TAN 浮点算术运算指令浮点数正切运算(32 位)TAR1 装入/传送指令将地址寄存器 1 中的内容传送到累加器 1TAR1 装入/传送指令将地址寄存器 1 的内容传送到目的地(32位指针)TAR1 装入/传送指令将地址寄存器 1 的内容传送到地址寄存器2TAR2 装入/传送指令将地址寄存器 2 中的内容传送到累加器 1TAR2 装入/传送指令将地址寄存器 2 的内容传送到目的地(32位指针)TRUNC 转换指令截尾取整UC 程序控制指令无条件调用X 位逻辑指令“异或”X( 位逻辑指令“异或”操作嵌套开始XN 位逻辑指令“异或非”XN( 位逻辑指令“异或非”操作嵌套开始XOD 字逻辑指令双字“异或”(32 位)XOW 字逻辑指令字“异或”(16 位)。
s7 200 for指令的用法S7200for指令是西门子PLC编程中常用的指令之一,用于实现循环执行一段程序的功能。
该指令提供了多种循环结构和循环控制方式,能够满足不同应用场景的需求。
本文将详细介绍S7200for指令的用法,帮助读者更好地掌握该指令的应用。
一、基本用法FOR(循环变量)=(起始值)TO(结束值)STEP(步长值)DO(循环体)其中,循环变量是用于标识循环计数器的标识符,起始值和结束值指定了循环计数器的范围,步长值指定了循环计数器的递增值。
循环体是需要重复执行的代码块。
使用S7200for指令时,需要注意以下几点:1.循环变量可以是整数或实数类型,但不能为负数。
2.循环计数器的范围可以根据实际需求进行调整,但必须满足结束值大于起始值且步长值大于等于零的条件。
3.循环体中的代码可以包括各种指令、语句和程序结构,如跳转、条件判断、数据读写等。
二、循环结构S7200for指令提供了三种循环结构:FOR循环、FOR…NEXT循环和WHILE循环。
这些循环结构可以根据实际需求选择使用。
1.FOR循环:适用于需要重复执行一段代码的场景,直到满足特定条件为止。
语法格式与FORDODO算法DO循环体的格式类似。
2.FOR…NEXT循环:该循环结构适用于需要对数据进行遍历的场景,常用于循环读取数组或列表中的元素。
语法格式为FOR变量名=起始值TO结束值DO算法LOOP和ENDLOOP。
3.WHILE循环:该循环结构适用于需要反复检查条件是否满足的场景,当条件满足时执行循环体中的代码,否则跳出循环。
语法格式为WHILE条件DO算法LOOP和ENDLOOP。
三、循环控制S7200for指令提供了多种循环控制方式,包括条件控制、时间控制和手动控制等。
1.条件控制:通过在循环体内添加条件判断语句,根据条件是否满足来决定是否跳出循环或继续执行循环体中的代码。
2.时间控制:通过设定循环执行的时间间隔或累计执行的时间,达到定时执行循环体的目的。
s7-200计数器指令课堂教学教案2教学实践34CTU Cxxx,PV (1)梯形图指令符号中:CU为加计数脉冲输入端;CD为减计数脉冲输入端;R为加计数复位端;LD为减计数复位端;PV为预置值(2)Cxxx 为计数器的编号,范围为:C0~C255 (3)PV预置值最大范围:32767;PV的数据类型:INT;PV操作数为:VW, T, C, IW, QW, MW, SMW, AC, AIW, K(4)CTU/CTUD/CD 指令使用要点:STL形式中CU,CD,R,LD的顺序不能错;CU,CD,R,LD 信号可为复杂逻辑关系CTDCxxx,PVCTUDCxxx,PV2. 计数器工作原理分析(1)加计数器指令(CTU)当R=0时,计数脉冲有效;当CU端有上升沿输入时,计数器当前值加1。
当计数器当前值大于567【例4-4】加减计数器指令应用示例,程序及运行时序如图4-53所示。
LD I0.1LD I0.2LD I0.3CTUD C50,4I0.1I0.2I0.3C50当.C50状图4-53 加/减计数器应用示例【例4-5】减计数指令应用示例,程序及运行时序如图4-54所示。
在复位脉冲I1.0有效时,即I1.0=1时,当前值等于预置值,计数器的状8态位置0;当复位脉冲I1.0=0,计数器有效,在CD端每来一个脉冲的上升沿,当前值减1计数,当前值从预置值开始减至0时,计数器的状态位C-bit=1,Q0.0=1。
在复位脉冲I1.0有效时,即I1.0=1时,计数器CD端即使有脉冲上升沿,计数器也不减1计数。
LD I0.1LD I1.0CTD C4,3LD C4= Q0.0I0.1I1.0图4-54C4当前值C50减计数器应用示例910课堂教学教案3、安装配线(1)合理安排元件及PLC 位置并固定。
(2)按外部接线图进行配线、接线。
(3)注意电源的连接,不能出现短路现象。
4、程序设计、录入、监控与调试:(1)在电脑上进行程序的设计。