1、本章的主要内容4.1 S7-200/300/400编程指令与编程指令与RLORLO 4.2 位逻辑操作指令位逻辑操作指令 4.3 定时器指令定时器指令 4.4 计数器指令计数器指令 4.5 传送、比较、移位与转换指令传送、比较、移位与转换指令 4.6 数学运算指令数学运算指令 4.7 表功能指令表功能指令 4.8 字符串操作指令字符串操作指令 4.9 其他指令其他指令 1 2022-7-264.1.1 IEC61131与SIMATIC指令体系 由第由第1章和第章和第2章可知,章可知,PLC具备可编程性具备可编程性和高可靠性等优点,已经成为工业自动化领和高可靠性等优点,已经成为工业自动化领域中广
2、泛应用的工业控制器。在域中广泛应用的工业控制器。在PLC的发展的发展过程中,各过程中,各PLC生产厂家逐步形成了自己的生产厂家逐步形成了自己的产品体系,其基本原理一致,但指令系统却产品体系,其基本原理一致,但指令系统却不尽相同。目前不尽相同。目前PLC制造商已形成了多个大制造商已形成了多个大型公司和若干小型公司型公司和若干小型公司PLC产品并存的局面。产品并存的局面。由于各由于各PLC厂家产品在指令系统上的差异,厂家产品在指令系统上的差异,这给工程师的这给工程师的PLC系统设计带来了很大的困系统设计带来了很大的困难,特别对于不同难,特别对于不同PLC的技术细节的处理上。的技术细节的处理上。2
3、2022-7-264.1.1 IEC61131与SIMATIC指令体系 为统一为统一PLC的技术规范,的技术规范,IEC(国际电工委员会)(国际电工委员会)制定了制定了PLC编程语言标准编程语言标准IEC61131(1993年年IEC颁布颁布的国际标准为的国际标准为IEC1131)。)。IEC61131标准共分为标准共分为5个部个部分。分。IEC61131-1为一般信息,对通用逻辑编程做了一为一般信息,对通用逻辑编程做了一般性介绍,并讨论了逻辑编程的基本概念、术语和定般性介绍,并讨论了逻辑编程的基本概念、术语和定义;义;IEC61131-2为装配和测试需要,从机械和电气两为装配和测试需要,从机
4、械和电气两部分介绍了逻辑编程对硬件设备的要求和测试需要;部分介绍了逻辑编程对硬件设备的要求和测试需要;IEC61131-3为编程语言的标准,它吸取了多种编程语为编程语言的标准,它吸取了多种编程语言的长处,制定了言的长处,制定了5种标准语言;种标准语言;IEC61131-4为用户为用户指南,提供了有关选择、安装、维护的信息资料和用指南,提供了有关选择、安装、维护的信息资料和用户指导手册;户指导手册;IEC61131-5为通信规范,规定了逻辑控为通信规范,规定了逻辑控制设备与其他装置的通信联系规范。制设备与其他装置的通信联系规范。3 2022-7-264.1.1 IEC61131与SIMATIC指
5、令体系 PLC编程语言标准编程语言标准IEC61131-3,是,是PLC指指令系统的参考标准,它要求不同的令系统的参考标准,它要求不同的PLC制造制造商的商的PLC支持相似的指令,以方便支持相似的指令,以方便PLC控制控制系统设计。它的主要内容包括以下几点。系统设计。它的主要内容包括以下几点。1)编译为标准代码的规则,定义了)编译为标准代码的规则,定义了PLC必必须满足的程序编译标准;须满足的程序编译标准;2)软件模型、通信模型和编程模型;)软件模型、通信模型和编程模型;3)可编程序控制器语言中的通用元件,如)可编程序控制器语言中的通用元件,如变量和数据类型、功能和功能块、程序和任变量和数据类
6、型、功能和功能块、程序和任务。务。4 2022-7-264.1.1 IEC61131与SIMATIC指令体系 西门子从小型到大中型西门子从小型到大中型PLC均支持均支持IEC61131指令系统。除了指令系统。除了IEC61131指令系统外,西门子指令系统外,西门子PLC指令系统中还包含了指令系统中还包含了SIMATIC指令。指令。SIMATIC指令是西门子指令是西门子PLC的指令,是对的指令,是对IEC61131指令系统的扩展和补充。指令系统的扩展和补充。SIMATIC指令比指令比IEC61131指令更加丰富。在学习使用中,指令更加丰富。在学习使用中,需要掌握需要掌握IEC61131基本指令,
7、这样就掌握了基本指令,这样就掌握了PLC指令系统的主要部分。对一些专用的和特指令系统的主要部分。对一些专用的和特殊的殊的SIMATIC指令也要了解,指令也要了解,SIMATIC指令指令对于西门子对于西门子PLC中的具体应用可能带来很大的中的具体应用可能带来很大的便利。便利。IEC61131指令系统可移植性强,而指令系统可移植性强,而SIMATIC指令功能强大。指令功能强大。5 2022-7-264.1.1 IEC61131与SIMATIC指令体系 在指令系统的学习中,典型的程序段(常在指令系统的学习中,典型的程序段(常用电路)需要理解,并加强记忆,它们是经验用电路)需要理解,并加强记忆,它们是
8、经验法编程的基础。常用电路是实现基本控制的程法编程的基础。常用电路是实现基本控制的程序,体现了序,体现了PLC控制的精髓,而且对于不同控制的精髓,而且对于不同PLC是通用的。是通用的。6 2022-7-264.1.2 西门子PLC编程语言 IEC61131-3规定了指令表(规定了指令表(STL)、梯形图)、梯形图(LAD)、顺序功能图()、顺序功能图(SFC)、功能块图)、功能块图(FBD)和结构化文本()和结构化文本(ST)五种编程语言。)五种编程语言。西门子西门子PLC支持梯形图(支持梯形图(LAD)、指令表)、指令表(STL)、顺序功能图()、顺序功能图(SFC)和功能块图)和功能块图(
9、FBD)四种编程语言。在)四种编程语言。在S7-200中,顺序功中,顺序功能图是通过步控指令实现的,在形式上是梯形能图是通过步控指令实现的,在形式上是梯形图形式,在思路上却是顺序控制的思想。在图形式,在思路上却是顺序控制的思想。在S7-300/400中,顺序功能图是以图形化的方式,通中,顺序功能图是以图形化的方式,通过过S7-GRAPH软件包开发软件包开发GRAPH程序实现。程序实现。7 2022-7-264.1.2 西门子PLC编程语言 考虑到考虑到PLC在国内应用的现状和国内用户的思在国内应用的现状和国内用户的思维习惯,本书只介绍梯形图(维习惯,本书只介绍梯形图(LAD)和顺序功能)和顺序
10、功能图(图(SFC)两种编程语言。不同编程语言是对同样)两种编程语言。不同编程语言是对同样的逻辑关系的不同表达形式,应根据需要选择。在的逻辑关系的不同表达形式,应根据需要选择。在实际应用中,应优先选择梯形图和顺序功能图语言。实际应用中,应优先选择梯形图和顺序功能图语言。8 2022-7-264.1.3 逻辑操作结果RLO PLC中程序执行的结果就是确定和改变变中程序执行的结果就是确定和改变变量的值。这需要通过线圈来实现,量的值。这需要通过线圈来实现,PLC程序的程序的线圈可以广义地分为两类:普通线圈和功能线线圈可以广义地分为两类:普通线圈和功能线圈。如图圈。如图4-1所示的程序中,线圈所示的程
11、序中,线圈M0.0和和Q0.0是普通线圈,而是普通线圈,而MOV_B为功能线圈。为功能线圈。9 2022-7-264.1.3 逻辑操作结果RLO 对于普通线圈,只要该线圈左侧的逻辑操作结果对于普通线圈,只要该线圈左侧的逻辑操作结果(Result of Logic Operation,RLO)为)为1,则线圈动作,则线圈动作,对应的变量等于对应的变量等于1;否则线圈不动作,对应的变量等于;否则线圈不动作,对应的变量等于0。注意,线圈不动作(变量结果等于注意,线圈不动作(变量结果等于0)也是程序执行的)也是程序执行的结果。任何一个网络中的程序执行完成后,变量均会有结果。任何一个网络中的程序执行完成
12、后,变量均会有结果,无论结果是结果,无论结果是1还是还是0。10 2022-7-264.1.3 逻辑操作结果RLO 对于功能线圈,只要该线圈左侧的对于功能线圈,只要该线圈左侧的RLORLO为为1 1,则实现相应的功能。图则实现相应的功能。图4-14-1中的中的MOV_BMOV_B线圈左侧线圈左侧的的RLORLO等于等于1 1时,则按功能线圈的规则,实现数据时,则按功能线圈的规则,实现数据传送功能。传送功能。线圈的执行是和其左侧的线圈的执行是和其左侧的RLORLO密切相关的,实密切相关的,实际上际上PLCPLC程序的所有分析和设计均和程序的所有分析和设计均和RLORLO相关。相关。RLORLO是
13、西门子是西门子PLCPLC中的重要概念,它是对传统中的重要概念,它是对传统PLCPLC程序分析和设计中电流、能流等概念的高度概括程序分析和设计中电流、能流等概念的高度概括。11 2022-7-264.1.3 逻辑操作结果RLO 在程序中,在程序中,RLO永远属于线上面的所有点,永远属于线上面的所有点,而且相连接的线上的所有点的而且相连接的线上的所有点的RLO是相同的。是相同的。在最左侧的母线位置,在最左侧的母线位置,RLO的值为的值为1。RLO的的值可能被接点改变,当触点接通时,其两端的值可能被接点改变,当触点接通时,其两端的RLO相同,若不通,则其右侧相同,若不通,则其右侧RLO为为0;在并
14、;在并联时,只要有一个触点右侧的联时,只要有一个触点右侧的RLO等于等于1,则,则所有触点右侧的所有触点右侧的RLO等于等于1。12 2022-7-264.1.3 逻辑操作结果RLO 梯形图语言是一种图形化语言,类似于继梯形图语言是一种图形化语言,类似于继电器电路图,相对于其他几种编程语言更加直电器电路图,相对于其他几种编程语言更加直观易懂,特别适合于数字量逻辑控制,初学者观易懂,特别适合于数字量逻辑控制,初学者几乎不需要花费太多的精力就能掌握;现在许几乎不需要花费太多的精力就能掌握;现在许多熟练的工程技术人员也都十分青睐它。让我多熟练的工程技术人员也都十分青睐它。让我们先来认识一下梯形图编程
15、的形式:们先来认识一下梯形图编程的形式:13 2022-7-264.1.3 逻辑操作结果RLO 在图在图4-1所示的程序中,位置所示的程序中,位置1、2和和4的的RLO的值为的值为1;位置;位置2和和7的的RLO的值由的值由I0.0和和I0.1的的触点状态决定,若触点通,则位置触点状态决定,若触点通,则位置2和和7的的RLO的值为的值为1;网络;网络2中的中的NOT触点会改变触点会改变RLO的值,位置的值,位置8和位置和位置7的的RLO的值相反。的值相反。再次强调一下,触点的状态由触点所对应再次强调一下,触点的状态由触点所对应的继电器(变量)的状态决定。当继电器动作的继电器(变量)的状态决定。
16、当继电器动作(变量为(变量为1)时,常开触点接通,常闭触点断)时,常开触点接通,常闭触点断开;当继电器不动作(变量为开;当继电器不动作(变量为0)时,常开触)时,常开触点断开,常闭触点接通。该结论对于所有继电点断开,常闭触点接通。该结论对于所有继电器(或位变量)均适用。器(或位变量)均适用。14 2022-7-264.1.4 S7-200/300/400 PLC指令分类 西门子西门子S7-200/300/400 PLC指令包括位逻辑、指令包括位逻辑、定时器(计时器)、计数器、传送(移动)、定时器(计时器)、计数器、传送(移动)、移位、比较、转换、逻辑操作、中断和通信移位、比较、转换、逻辑操作、
17、中断和通信等等10多类指令。西门子多类指令。西门子S7-200和和S7-300/400 PLC在形式上有的时候有差别,但差别不大,在形式上有的时候有差别,但差别不大,而且本质上是一致的。而且本质上是一致的。本章主要介绍本章主要介绍S7-200S7-200位逻辑、定时器(计位逻辑、定时器(计时器)、计数器、传送(移动)、移位和比时器)、计数器、传送(移动)、移位和比较等指令,中断、顺序控制、通信等指令和较等指令,中断、顺序控制、通信等指令和编程在后续章节中介绍。编程在后续章节中介绍。15 2022-7-26本章的主要内容4.1 S7-200/300/400编程指令与编程指令与RLORLO 4.2
18、 位逻辑操作指令位逻辑操作指令 4.3 定时器指令定时器指令 4.4 计数器指令计数器指令 4.5 传送、比较、移位与转换指令传送、比较、移位与转换指令 4.6 数学运算指令数学运算指令 4.7 表功能指令表功能指令 4.8 字符串操作指令字符串操作指令 4.9 其他指令其他指令 16 2022-7-264.2.0 4.2.0 位逻辑指令概述位逻辑指令概述 位逻辑指令是对以位进行计量的数据进行位逻辑指令是对以位进行计量的数据进行控制的指令。位逻辑指令的操作数是位数据,控制的指令。位逻辑指令的操作数是位数据,包括包括I、Q、M、T和和C等。等。位逻辑指令是位逻辑指令是PLC中最常用和最重要的指中
19、最常用和最重要的指令。令。17 2022-7-264.2.1 4.2.1 基本位逻辑指令基本位逻辑指令 基本位逻辑指令包括常开触点、常闭触点基本位逻辑指令包括常开触点、常闭触点和普通线圈,如表和普通线圈,如表4-1所示。触点和触点之间所示。触点和触点之间可以形成与、或和非的基本逻辑关系,也可可以形成与、或和非的基本逻辑关系,也可以组合形成复杂的逻辑关系,从而决定线圈以组合形成复杂的逻辑关系,从而决定线圈左侧的左侧的RLO。线圈的动作状态由线圈左侧的。线圈的动作状态由线圈左侧的RLO决定。决定。18 2022-7-264.2.1 4.2.1 基本位逻辑指令基本位逻辑指令19 2022-7-264
20、.2.1 4.2.1 基本位逻辑指令基本位逻辑指令例例4.1 自保持电路自保持电路1。自保持电路如图自保持电路如图4-2所示,所示,I0.0有输入(只要保持有一个扫描有输入(只要保持有一个扫描周期),同时周期),同时I0.1没有输入,则没有输入,则Q0.0有输出,即便此后有输出,即便此后I0.0不不再有输入,再有输入,Q0.0也一直保持有输出,直到也一直保持有输出,直到I0.1有输入为止。有输入为止。图4-2 自保持电路和时序图 自保持电路是常用的控制程序,是从很多程序中抽象出来的电路,其应用特别广泛。例如,电动机起停PLC控制中,起动按钮接I0.0,停止按钮接I0.1,Q0.0的输出控制电动
21、机接触器,则用自保持电路可以实现电动机起停控制。20 2022-7-264.2.1 4.2.1 基本位逻辑指令基本位逻辑指令例例4.2 互锁电路。互锁电路。图4-3 线圈互锁电路和触点互锁电路 21 2022-7-264.2.1 4.2.1 基本位逻辑指令基本位逻辑指令例例4.3 多输入电路。多输入电路。图4-4 多输入电路和时序图 22 2022-7-264.2.1 4.2.1 基本位逻辑指令基本位逻辑指令由表由表4-1中给出的触点,可以按照与、或、非的逻辑关中给出的触点,可以按照与、或、非的逻辑关系组合成更加复杂的逻辑块,如表系组合成更加复杂的逻辑块,如表4-2所示。所示。23 2022-
22、7-264.2.2 4.2.2 置位与复位指令置位与复位指令 置位与复位指令包括置位与复位指令包括S指令、指令、R指令、指令、SR指令和指令和RS指令。指令。置位指令是特殊的线圈状态控制指令,使置位指令是特殊的线圈状态控制指令,使用时也需要指定一个位变量作为存储位。只要用时也需要指定一个位变量作为存储位。只要其左边的其左边的RLO为为1,存储位就被置为,存储位就被置为1,即使其,即使其左边的左边的RLO变为变为0,该存储位始终保持为,该存储位始终保持为1,只,只有使用复位指令对其复位,该存储位才会被清有使用复位指令对其复位,该存储位才会被清为为0。复位指令也是特殊的线圈状态控制指令,复位指令也
23、是特殊的线圈状态控制指令,同样需指定一个位变量作为存储位,即复位的同样需指定一个位变量作为存储位,即复位的对象。它的主要功能是对置位后的地址进行复对象。它的主要功能是对置位后的地址进行复位。经常与置位指令配合使用。位。经常与置位指令配合使用。24 2022-7-264.2.2 置位与复位指令置位与复位指令25 2022-7-264.2.2 4.2.2 置位与复位指令置位与复位指令例例4.4 自保持电路2。用复位优先的置位复位组合线圈也可以实现自保持电路,如图4-5所示。图4-5 用复位优先的置位复位组合线圈实现自保持电路26 2022-7-264.2.3 边沿触发指令边沿触发指令 边沿触发指令
24、的功能主要是通过比较相邻两个扫描周期间流边沿触发指令的功能主要是通过比较相邻两个扫描周期间流过该指令输入位置过该指令输入位置RLO的状态,决定自身导通与否以及导通时间的状态,决定自身导通与否以及导通时间是多长。是多长。27 2022-7-264.2.3 边沿触发指令边沿触发指令在图4-6中,是上升沿触发指令,每个扫描周期都会计算其左侧的RLO,并与上一个扫描周期的RLO进行比较。如果上一周期RLO为0,当前RLO为1,则认为检测到上升沿,则使其右侧的RLO等于1,并保持一个扫描周期;如果上一周期RLO为1,无论当前左侧的RLO状态如何,均认为没有上升沿发生,则其右侧的RLO等于0。上一周期的左
25、侧RLO的值,都会保存在系统中,并且每周期都更新一次。图4-6 S7-200 PLC边沿触发指令的梯形图和时序图28 2022-7-264.2.3 边沿触发指令边沿触发指令 在图在图4-6中,中,是下降沿触发指令,每个扫描周是下降沿触发指令,每个扫描周期都要计算其左侧的期都要计算其左侧的RLO,并与上一个扫描周期的,并与上一个扫描周期的RLO进行比较。如果上一周期进行比较。如果上一周期RLO为为1,当前,当前RLO为为0,则认,则认为检测到下降沿,则使其右侧的为检测到下降沿,则使其右侧的RLO等于等于1,并保持一个,并保持一个扫描周期;如果上一周期扫描周期;如果上一周期RLO为为0,无论当前左
26、侧的,无论当前左侧的RLO状态如何,均认为没有下降沿发生,则其右侧的状态如何,均认为没有下降沿发生,则其右侧的RLO等于等于0。上一周期的左侧。上一周期的左侧RLO的值,都会保存在系的值,都会保存在系统中,并且每周期都更新一次。统中,并且每周期都更新一次。由于在相连的两个周期中,不可能连续出现上升由于在相连的两个周期中,不可能连续出现上升沿或下降沿,因此出现边沿后,该触点后的沿或下降沿,因此出现边沿后,该触点后的RLO等于等于1,只能保持一个扫描周期。只能保持一个扫描周期。29 2022-7-264.2.4 立即读写指令立即读写指令 立即读写指令是为了加快系统的响应速度而设计的指令,他立即读写
27、指令是为了加快系统的响应速度而设计的指令,他们允许系统对输入们允许系统对输入/输出端口(输出端口(I和和Q)进行直接快速的读写。立即)进行直接快速的读写。立即读写指令如表读写指令如表4-5所示:所示:30 2022-7-264.2.5 编程举例编程举例(补充补充)单按钮起停电路:单按钮起停电路:单按钮起停程序注意:必须考虑注意:必须考虑PLC的程序执行的过程和扫描周期的概念的程序执行的过程和扫描周期的概念功能描述:只有一个按钮作为输入信号来控制电机的起停;功能描述:只有一个按钮作为输入信号来控制电机的起停;输入信号:输入信号:I0.0;输出信号:输出信号:Q0.0思考:还有别的编程方法吗?P指
28、令可以用普通指令来代替吗?如何改写?31 2022-7-26本章的主要内容4.1 S7-200/300/400编程指令与编程指令与RLORLO 4.2 位逻辑操作指令位逻辑操作指令 4.3 定时器指令定时器指令 4.4 计数器指令计数器指令 4.5 传送、比较、移位与转换指令传送、比较、移位与转换指令 4.6 数学运算指令数学运算指令 4.7 表功能指令表功能指令 4.8 字符串操作指令字符串操作指令 4.9 其他指令其他指令 32 2022-7-264.3.1 定时器概述 定时器类似于电气控制电路里面的时间继电器,基本定时器类似于电气控制电路里面的时间继电器,基本功能是通过一段时间的定时对某
29、个操作作延时响应;现在功能是通过一段时间的定时对某个操作作延时响应;现在定时器的功能越来越强大,用途也越来越广,经过组合使定时器的功能越来越强大,用途也越来越广,经过组合使用,定时器可以产生宽度可调的脉冲序列,实现振荡器功用,定时器可以产生宽度可调的脉冲序列,实现振荡器功能;也可以对某个系统进行定时,防止出现死循环,实现能;也可以对某个系统进行定时,防止出现死循环,实现软看门狗等功能。软看门狗等功能。S7-200的的CPU22X系列的系列的PLC总共可以提供总共可以提供256个定个定时器时器T0-T255,可以分为,可以分为3类:类:(1)通电延时定时器)通电延时定时器TON,用于单一时间间隔
30、的定时;,用于单一时间间隔的定时;(2)保持型通电延时定时器)保持型通电延时定时器TONR,用于累计多个时间,用于累计多个时间间隔;间隔;(3)断电延时定时器)断电延时定时器TOF,用于关断、故障事件后的延,用于关断、故障事件后的延时;时;33 2022-7-264.3.2 定时器的设定值、当前值和状态值定时器的设定值、当前值和状态值 1.定时器的设定值 定时器的时基是引起定时器当前时间值发生变化的最定时器的时基是引起定时器当前时间值发生变化的最小时间单位,也称为定时器分辨率。本质上讲它是小时间单位,也称为定时器分辨率。本质上讲它是PLC内部标准脉冲序列的周期值,内部标准脉冲序列的周期值,PL
31、C正是对这些固定周期正是对这些固定周期的标准脉冲进行累加,从而得到定时的时间。的标准脉冲进行累加,从而得到定时的时间。S7-200的的PLC所提供的定时器(所提供的定时器(T0T255)均规定好)均规定好了定时分辨率,如表了定时分辨率,如表4-6中的中的T32,它的定时分辨率是,它的定时分辨率是1ms。换句话说,每隔。换句话说,每隔1ms,T32的当前值就会发生变化。的当前值就会发生变化。若当前值大于等于预设值,则定时器的状态位就会变化。若当前值大于等于预设值,则定时器的状态位就会变化。S7-200系列系列PLC的定时时基有的定时时基有3种:种:1ms、10ms和和100ms。每个定时器的定时
32、时基、类型、最大预设定时值如表每个定时器的定时时基、类型、最大预设定时值如表4-6所示。所示。34 2022-7-264.3.2 定时器的设定值、当前值和状态值定时器的设定值、当前值和状态值CPU22X根据其精度及编号对根据其精度及编号对256个定时器进行了分类个定时器进行了分类定时器类型时基 (分辨率)ms定时长度 最大值 (秒)S定时器输出(定时器编号)TONR 1mS32.767ST0T64 10mS327.67ST1T4T65T68 100mS3276.7ST5T31T69T95TONTOF 1mS32.767ST32T96 10mS327.67ST33T36T97T100 100mS
33、 3276.7ST37T63T101T255表4-6 CPU22X定时器的精度及编号35 2022-7-264.3.2 定时器的设定值、当前值和状态值定时器的设定值、当前值和状态值 对于对于S7-200 PLC的定时器,其设定值乘以其对应的的定时器,其设定值乘以其对应的时基,就可以得到设定的时间值了。例如,时基,就可以得到设定的时间值了。例如,T33的设定的设定值为值为100,就表示设定的时间值为,就表示设定的时间值为1s。S7-200 PLC定时定时器的设定值是一个器的设定值是一个16位有符号数,最大设定值为位有符号数,最大设定值为32 767。另外,表另外,表4-6中的中的TON或或TOF
34、定时器,一旦确定了类型,定时器,一旦确定了类型,在整个程序中再也不能改变。例如,在整个程序中再也不能改变。例如,T33若定义为若定义为TON类型的定时器,则再也不能定义成类型的定时器,则再也不能定义成TOF类型。类型。36 2022-7-264.3.2 定时器的设定值、当前值和状态值定时器的设定值、当前值和状态值 2.定时器的当前值和状态值 定时器除了有设定值之外,还有当前值和状态值(见图4-12)。分析状态值是我们分析定时器的最终目的。定时器的状态值为1或0,是一个布尔量,长度为1位(bit)。也可以将定时器看成继电器,其状态分为动作与不动作两种。图4-7 定时器的当前值和状态值 37 20
35、22-7-264.3.3 接通延时定时器接通延时定时器 接通延时定时器的特点是在主输入端RLO有效的条件下,延时设定时间后动作。图4-8 S7-200接通延时定时器指令和时序图 38 2022-7-264.3.4 4.3.4 保持型接通延时定时器保持型接通延时定时器 图4-9 保持型接通延时定时器指令和时序图(S7-200)S7-200 PLC的保持型接通延时定时器(TONR)用于多个时间间隔的累计定时。39 2022-7-264.3.5 4.3.5 断开延时定时器断开延时定时器 图4-10 断开延时定时器指令和时序图(S7-200)断开延时定时器(TOF)用于使能输入端断开后使定时器继续保持
36、动作一段时间。40 2022-7-264.3.6 4.3.6 不同时基的定时器的刷新方式不同时基的定时器的刷新方式 1.1ms定时器的刷新方式 1ms定时器采用中断的方式刷新当前值。每隔1ms系统自动刷新一次定时器位和当前值,与扫描周期无关。2.10ms定时器的刷新方式 对于10ms的定时器,定时器位和当前值总是在每个扫描周期的开始时被刷新,之后在整个扫描周期内定时器位和当前值保持不变。3.100ms定时器的刷新方式 100ms定时器的刷新与上面两种不同,是在该定时器指令被执行时刷新。41 2022-7-26例例4.5 使某个继电器动作规定时间1。图4-11 使某个继电器动作规定时间1的程序
37、4.3.7定时器的应用举例定时器的应用举例 42 2022-7-264.3.7定时器的应用举例定时器的应用举例 例例4.6 脉冲电路1。图4-12 脉冲电路的编程及其时序图 43 2022-7-26本章的主要内容4.1 S7-200/300/400编程指令与编程指令与RLORLO 4.2 位逻辑操作指令位逻辑操作指令 4.3 定时器指令定时器指令 4.4 计数器指令计数器指令 4.5 传送、比较、移位与转换指令传送、比较、移位与转换指令 4.6 数学运算指令数学运算指令 4.7 表功能指令表功能指令 4.8 字符串操作指令字符串操作指令 4.9 其他指令其他指令 44 2022-7-264.4
38、.1 计数器指令概述计数器指令概述 计数器用来计数输入脉冲的数量。在计数器用来计数输入脉冲的数量。在S7-200中,普通计数中,普通计数器有器有3种类型:种类型:递增计数器递增计数器CTU、递减计数器递减计数器CTD、增减计数器增减计数器CTUD 共计共计256个,可根据实际编程需要,对某个计数器的类型进个,可根据实际编程需要,对某个计数器的类型进行定义,编号为行定义,编号为C0C255。每个计数器有一个每个计数器有一个16位的当前值寄存器和状态位,最大计数位的当前值寄存器和状态位,最大计数值为值为32767。45 2022-7-26 在计数器中需要设定一个设定值,以便在计数时,计数器当在计数
39、器中需要设定一个设定值,以便在计数时,计数器当前值从设定值开始逐步减小到前值从设定值开始逐步减小到0,或从,或从0逐步增加到设定值。当逐步增加到设定值。当前值是指当前的计数器内所计的数量。前值是指当前的计数器内所计的数量。在在S7-200 PLC中,每个计数器有一个中,每个计数器有一个16位的当前值寄存器,最位的当前值寄存器,最大计数值为大计数值为32 767。4.4.1 计数器指令概述计数器指令概述 46 2022-7-26 计数器除了有设定值和当前值之外,还有状态值。分析状计数器除了有设定值和当前值之外,还有状态值。分析状态值是分析计数器的最终目的。计数器的状态值为态值是分析计数器的最终目
40、的。计数器的状态值为1或或0,是一,是一个布尔量,长度为个布尔量,长度为1位(位(bit)。也可以将计数器看成继电器,)。也可以将计数器看成继电器,其状态分为动作与不动作两种。其状态分为动作与不动作两种。补充图:计数器位和当前值的访问 4.4.1 计数器指令概述计数器指令概述 47 2022-7-264.4.2递增计数器指令递增计数器指令 指令使用说明如下:指令使用说明如下:1)CTU在首次扫描时,其状态位初始状态为在首次扫描时,其状态位初始状态为OFF,当,当前值为前值为0。2)当计数输入端()当计数输入端(CU)有上升沿输入时,计数器当前)有上升沿输入时,计数器当前值加值加1。3)当复位输
41、入端()当复位输入端(R)接通时,计数器复位(当前值清)接通时,计数器复位(当前值清0,输出标志位清,输出标志位清0)。)。4)最大设定值()最大设定值(PV)为)为32 767。5)在当前值大于等于设定值)在当前值大于等于设定值PV时,计数器状态位被置时,计数器状态位被置位为位为1;当前值大于;当前值大于32 767时,停止计数。时,停止计数。48 2022-7-264.4.2递增计数器指令递增计数器指令 49 2022-7-26图4-13 递增计数器的使用 4.4.2递增计数器指令递增计数器指令 50 2022-7-264.4.3递减计数器指令递减计数器指令 指令使用说明如下:指令使用说明
42、如下:1)当计数输入端()当计数输入端(CD)有上升沿输入时,计数器当前值)有上升沿输入时,计数器当前值减减1。2)当装载输入端()当装载输入端(LD)接通时,计数器输出标志位清)接通时,计数器输出标志位清0,并把设定值(并把设定值(PV)装入当前计数寄存器。)装入当前计数寄存器。3)最大设定值()最大设定值(PV)为)为32 767。4)当前计数值为)当前计数值为0时,计数器输出标志位被置为时,计数器输出标志位被置为1。5)递减计数器()递减计数器(CTD)中无)中无R端,但也可以使用单独的端,但也可以使用单独的复位指令(复位指令(R)对计数器进行复位(当前计数值清)对计数器进行复位(当前计
43、数值清0,计,计数器输出标志位清数器输出标志位清0)。)。51 2022-7-264.4.3递减计数器指令递减计数器指令 6)LD端无论何时有效,计数器均执行将设定值装载入当前值寄存器,且输出标志位(状态位)为OFF。7)首次扫描的情况比较复杂,与计数器当前值的初始值和CD端的接通状况有关。52 2022-7-26图4-14 递减计数器的使用 4.4.3递减计数器指令递减计数器指令 53 2022-7-264.4.4 增减增减计数器指令计数器指令1)首次扫描时,其状态位为)首次扫描时,其状态位为OFF,当前值为,当前值为0。2)当计数输入端()当计数输入端(CU)有上升沿输入时,计数器当)有上
44、升沿输入时,计数器当前计数值加前计数值加1。3)当计数输入端()当计数输入端(CD)有上升沿输入时,计数器当)有上升沿输入时,计数器当前计数值减前计数值减1。4)当复位输入端()当复位输入端(R)接通时,计数器复位(当前)接通时,计数器复位(当前计数值清计数值清0,输出标志位清,输出标志位清0)。)。5)若当前计数值大于等于设定值)若当前计数值大于等于设定值PV,计数器输出标,计数器输出标志位被置为志位被置为1。6)若当前计数值大于等于)若当前计数值大于等于32 767或小于等于或小于等于-32 768,计数器停止计数。计数器停止计数。54 2022-7-264.4.4 增减增减计数器指令计数
45、器指令55 2022-7-264.4.4 增减增减计数器指令计数器指令图4-15 增减计数器的使用56 2022-7-264.4.5 4.4.5 定时器定时器/计数器扩展应用举例计数器扩展应用举例 1.定时时间的扩展例例4.7 实现定时总时间T=T1+T2=5+10=15s。图4-16 两个定时器的组合扩展定时时间 57 2022-7-264.4.5 4.4.5 定时器定时器/计数器扩展应用举例计数器扩展应用举例 例例4.8 实现定时总时间T=TiN。图4-17 定时器与计数器的组合扩展定时时间 58 2022-7-264.4.5 4.4.5 定时器定时器/计数器扩展应用举例计数器扩展应用举例
46、 2.计数次数的扩展 例例4.9 计数范围的扩展。图4-18 计数范围的扩展 59 2022-7-26本章的主要内容4.1 S7-200/300/400编程指令与编程指令与RLORLO 4.2 位逻辑操作指令位逻辑操作指令 4.3 定时器指令定时器指令 4.4 计数器指令计数器指令 4.5 传送、比较、移位与转换指令传送、比较、移位与转换指令 4.6 数学运算指令数学运算指令 4.7 表功能指令表功能指令 4.8 字符串操作指令字符串操作指令 4.9 其他指令其他指令 60 2022-7-264.5.1 4.5.1 传送指令传送指令 61 2022-7-264.5.1 4.5.1 传送指令传送
47、指令 62 2022-7-264.5.1 4.5.1 传送指令传送指令 例例4.10 电动机电动机-起动。起动。图4-19 主电路及控制电路接线图 63 2022-7-264.5.1 4.5.1 传送指令传送指令 图4-20 程序图 64 2022-7-264.5.1 4.5.1 传送指令传送指令 块传送指令如表块传送指令如表4-11所示。这种指令一次可传所示。这种指令一次可传送多个数据,最多可达送多个数据,最多可达255个数据,组成个数据,组成1个数据块。个数据块。数据块的类型可以是字节块、字块和双字块。数据块的类型可以是字节块、字块和双字块。指令说明:当允许输入端指令说明:当允许输入端EN
48、有效时,从输入有效时,从输入端端IN指定的地址开始,将指定的地址开始,将N个字节(字、双字)型数个字节(字、双字)型数据传送到据传送到OUT端指定地址开始的端指定地址开始的N个字节(字、双字)个字节(字、双字)存储单元内。存储单元内。65 2022-7-264.5.1 4.5.1 传送指令传送指令 66 2022-7-264.5.2 4.5.2 比较指令比较指令 比较指令比较指令用于两个用于两个相同数据类型相同数据类型的有符号数或无符号数的有符号数或无符号数IN1和和IN2的比较判断操的比较判断操作。作。比较运算符号有:等于(比较运算符号有:等于(=)、大于等于()、大于等于(=)、小于等于(
49、)、小于等于()、)、小于(小于(A6#80000000)双字整数比较IN1、IN2:有符号数的字型数据与字节比较类似,不同的是两比较数是有符号数16#7FFFA6#8000整数比较IN1、IN2:无符号的字节型数据若IN1=IN2,则触点闭合比较式还可以是IN1=IN2、IN1IN2、IN1IN2和IN1I2字节比较操作对象说 明梯形图指令名称67 2022-7-26 图图4-21给出了比较指令在程序中的使用方法。预先通过传送指令将要比给出了比较指令在程序中的使用方法。预先通过传送指令将要比较的值存放在指定的存储区内,如较的值存放在指定的存储区内,如MW10,然后在比较时使用直接寻址的,然后
50、在比较时使用直接寻址的方式来访问。例如,执行传送指令后,方式来访问。例如,执行传送指令后,MW10的值为的值为1001,而不是,而不是1000,所以该比较指令将闭合,在所以该比较指令将闭合,在I0.1导通情况下,导通情况下,Q0.1将导通。将导通。4.6.1 4.6.1 比较指令比较指令比较指令应用举例:比较指令应用举例:图4-21 比较指令的使用说明68 2022-7-264.5.3 4.5.3 移位指令移位指令 移位指令主要分为普通移位和循环移位。移位是移位指令主要分为普通移位和循环移位。移位是常用的指令,特别在逻辑控制处理循环逻辑的时候。常用的指令,特别在逻辑控制处理循环逻辑的时候。1.