可编程序控制器原理及应用第04章课件_第1页
可编程序控制器原理及应用第04章课件_第2页
可编程序控制器原理及应用第04章课件_第3页
可编程序控制器原理及应用第04章课件_第4页
可编程序控制器原理及应用第04章课件_第5页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本章的主要内容4.1 S7-200/300/400编程指令与RLO 4.2 位逻辑操作指令 4.3 定时器指令 4.4 计数器指令 4.5 传送、比较、移位与转换指令 4.6 数学运算指令 4.7 表功能指令 4.8 字符串操作指令 4.9 其他指令 1 2022/7/214.1.1 IEC61131与SIMATIC指令体系 由第1章和第2章可知,PLC具备可编程性和高可靠性等优点,已经成为工业自动化领域中广泛应用的工业控制器。在PLC的发展过程中,各PLC生产厂家逐步形成了自己的产品体系,其基本原理一致,但指令系统却不尽相同。目前PLC制造商已形成了多个大型公司和若干小型公司PLC产品并存的

2、局面。由于各PLC厂家产品在指令系统上的差异,这给工程师的PLC系统设计带来了很大的困难,特别对于不同PLC的技术细节的处理上。2 2022/7/214.1.1 IEC61131与SIMATIC指令体系 为统一PLC的技术规范,IEC(国际电工委员会)制定了PLC编程语言标准IEC61131(1993年IEC颁布的国际标准为IEC1131)。IEC61131标准共分为5个部分。IEC61131-1为一般信息,对通用逻辑编程做了一般性介绍,并讨论了逻辑编程的基本概念、术语和定义;IEC61131-2为装配和测试需要,从机械和电气两部分介绍了逻辑编程对硬件设备的要求和测试需要;IEC61131-3

3、为编程语言的标准,它吸取了多种编程语言的长处,制定了5种标准语言;IEC61131-4为用户指南,提供了有关选择、安装、维护的信息资料和用户指导手册;IEC61131-5为通信规范,规定了逻辑控制设备与其他装置的通信联系规范。3 2022/7/214.1.1 IEC61131与SIMATIC指令体系 PLC编程语言标准IEC61131-3,是PLC指令系统的参考标准,它要求不同的PLC制造商的PLC支持相似的指令,以方便PLC控制系统设计。它的主要内容包括以下几点。1)编译为标准代码的规则,定义了PLC必须满足的程序编译标准;2)软件模型、通信模型和编程模型;3)可编程序控制器语言中的通用元件

4、,如变量和数据类型、功能和功能块、程序和任务。4 2022/7/214.1.1 IEC61131与SIMATIC指令体系 西门子从小型到大中型PLC均支持IEC61131指令系统。除了IEC61131指令系统外,西门子PLC指令系统中还包含了SIMATIC指令。SIMATIC指令是西门子PLC的指令,是对IEC61131指令系统的扩展和补充。SIMATIC指令比IEC61131指令更加丰富。在学习使用中,需要掌握IEC61131基本指令,这样就掌握了PLC指令系统的主要部分。对一些专用的和特殊的SIMATIC指令也要了解,SIMATIC指令对于西门子PLC中的具体应用可能带来很大的便利。IEC

5、61131指令系统可移植性强,而SIMATIC指令功能强大。5 2022/7/214.1.1 IEC61131与SIMATIC指令体系 在指令系统的学习中,典型的程序段(常用电路)需要理解,并加强记忆,它们是经验法编程的基础。常用电路是实现基本控制的程序,体现了PLC控制的精髓,而且对于不同PLC是通用的。 6 2022/7/214.1.2 西门子PLC编程语言 IEC61131-3规定了指令表(STL)、梯形图(LAD)、顺序功能图(SFC)、功能块图(FBD)和结构化文本(ST)五种编程语言。 西门子PLC支持梯形图(LAD)、指令表(STL)、顺序功能图(SFC)和功能块图(FBD)四种

6、编程语言。在S7-200中,顺序功能图是通过步控指令实现的,在形式上是梯形图形式,在思路上却是顺序控制的思想。在S7-300/400中,顺序功能图是以图形化的方式,通过S7-GRAPH软件包开发GRAPH程序实现。 7 2022/7/214.1.2 西门子PLC编程语言 考虑到PLC在国内应用的现状和国内用户的思维习惯,本书只介绍梯形图(LAD)和顺序功能图(SFC)两种编程语言。不同编程语言是对同样的逻辑关系的不同表达形式,应根据需要选择。在实际应用中,应优先选择梯形图和顺序功能图语言。8 2022/7/214.1.3 逻辑操作结果RLO PLC中程序执行的结果就是确定和改变变量的值。这需要

7、通过线圈来实现,PLC程序的线圈可以广义地分为两类:普通线圈和功能线圈。如图4-1所示的程序中,线圈M0.0和Q0.0是普通线圈,而MOV_B为功能线圈。 9 2022/7/214.1.3 逻辑操作结果RLO 对于普通线圈,只要该线圈左侧的逻辑操作结果(Result of Logic Operation,RLO)为1,则线圈动作,对应的变量等于1;否则线圈不动作,对应的变量等于0。注意,线圈不动作(变量结果等于0)也是程序执行的结果。任何一个网络中的程序执行完成后,变量均会有结果,无论结果是1还是0。 10 2022/7/214.1.3 逻辑操作结果RLO 对于功能线圈,只要该线圈左侧的RLO

8、为1,则实现相应的功能。图4-1中的MOV_B线圈左侧的RLO等于1时,则按功能线圈的规则,实现数据传送功能。 线圈的执行是和其左侧的RLO密切相关的,实际上PLC程序的所有分析和设计均和RLO相关。RLO是西门子PLC中的重要概念,它是对传统PLC程序分析和设计中电流、能流等概念的高度概括。 11 2022/7/214.1.3 逻辑操作结果RLO 在程序中,RLO永远属于线上面的所有点,而且相连接的线上的所有点的RLO是相同的。在最左侧的母线位置,RLO的值为1。RLO的值可能被接点改变,当触点接通时,其两端的RLO相同,若不通,则其右侧RLO为0;在并联时,只要有一个触点右侧的RLO等于1

9、,则所有触点右侧的RLO等于1。 12 2022/7/214.1.3 逻辑操作结果RLO 梯形图语言是一种图形化语言,类似于继电器电路图,相对于其他几种编程语言更加直观易懂,特别适合于数字量逻辑控制,初学者几乎不需要花费太多的精力就能掌握;现在许多熟练的工程技术人员也都十分青睐它。让我们先来认识一下梯形图编程的形式:13 2022/7/214.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的值相反。

10、再次强调一下,触点的状态由触点所对应的继电器(变量)的状态决定。当继电器动作(变量为1)时,常开触点接通,常闭触点断开;当继电器不动作(变量为0)时,常开触点断开,常闭触点接通。该结论对于所有继电器(或位变量)均适用。 14 2022/7/214.1.4 S7-200/300/400 PLC指令分类 西门子S7-200/300/400 PLC指令包括位逻辑、定时器(计时器)、计数器、传送(移动)、移位、比较、转换、逻辑操作、中断和通信等10多类指令。西门子S7-200和S7-300/400 PLC在形式上有的时候有差别,但差别不大,而且本质上是一致的。 本章主要介绍S7-200位逻辑、定时器(

11、计时器)、计数器、传送(移动)、移位和比较等指令,中断、顺序控制、通信等指令和编程在后续章节中介绍。 15 2022/7/21本章的主要内容4.1 S7-200/300/400编程指令与RLO 4.2 位逻辑操作指令 4.3 定时器指令 4.4 计数器指令 4.5 传送、比较、移位与转换指令 4.6 数学运算指令 4.7 表功能指令 4.8 字符串操作指令 4.9 其他指令 16 2022/7/214.2.0 位逻辑指令概述 位逻辑指令是对以位进行计量的数据进行控制的指令。位逻辑指令的操作数是位数据,包括I、Q、M、T和C等。 位逻辑指令是PLC中最常用和最重要的指令。 17 2022/7/2

12、14.2.1 基本位逻辑指令 基本位逻辑指令包括常开触点、常闭触点和普通线圈,如表4-1所示。触点和触点之间可以形成与、或和非的基本逻辑关系,也可以组合形成复杂的逻辑关系,从而决定线圈左侧的RLO。线圈的动作状态由线圈左侧的RLO决定。 18 2022/7/214.2.1 基本位逻辑指令19 2022/7/214.2.1 基本位逻辑指令例4.1 自保持电路1。自保持电路如图4-2所示,I0.0有输入(只要保持有一个扫描周期),同时I0.1没有输入,则Q0.0有输出,即便此后I0.0不再有输入,Q0.0也一直保持有输出,直到I0.1有输入为止。图4-2 自保持电路和时序图 自保持电路是常用的控制

13、程序,是从很多程序中抽象出来的电路,其应用特别广泛。例如,电动机起停PLC控制中,起动按钮接I0.0,停止按钮接I0.1,Q0.0的输出控制电动机接触器,则用自保持电路可以实现电动机起停控制。 20 2022/7/214.2.1 基本位逻辑指令例4.2 互锁电路。图4-3 线圈互锁电路和触点互锁电路 21 2022/7/214.2.1 基本位逻辑指令例4.3 多输入电路。 图4-4 多输入电路和时序图 22 2022/7/214.2.1 基本位逻辑指令由表4-1中给出的触点,可以按照与、或、非的逻辑关系组合成更加复杂的逻辑块,如表4-2所示。23 2022/7/214.2.2 置位与复位指令

14、置位与复位指令包括S指令、R指令、SR指令和RS指令。 置位指令是特殊的线圈状态控制指令,使用时也需要指定一个位变量作为存储位。只要其左边的RLO为1,存储位就被置为1,即使其左边的RLO变为0,该存储位始终保持为1,只有使用复位指令对其复位,该存储位才会被清为0。 复位指令也是特殊的线圈状态控制指令,同样需指定一个位变量作为存储位,即复位的对象。它的主要功能是对置位后的地址进行复位。经常与置位指令配合使用。24 2022/7/214.2.2 置位与复位指令25 2022/7/214.2.2 置位与复位指令例4.4 自保持电路2。用复位优先的置位复位组合线圈也可以实现自保持电路,如图4-5所示

15、。图4-5 用复位优先的置位复位组合线圈实现自保持电路26 2022/7/214.2.3 边沿触发指令 边沿触发指令的功能主要是通过比较相邻两个扫描周期间流过该指令输入位置RLO的状态,决定自身导通与否以及导通时间是多长。 27 2022/7/214.2.3 边沿触发指令在图4-6中, 是上升沿触发指令,每个扫描周期都会计算其左侧的RLO,并与上一个扫描周期的RLO进行比较。如果上一周期RLO为0,当前RLO为1,则认为检测到上升沿,则使其右侧的RLO等于1,并保持一个扫描周期;如果上一周期RLO为1,无论当前左侧的RLO状态如何,均认为没有上升沿发生,则其右侧的RLO等于0。上一周期的左侧R

16、LO的值,都会保存在系统中,并且每周期都更新一次。图4-6 S7-200 PLC边沿触发指令的梯形图和时序图28 2022/7/214.2.3 边沿触发指令 在图4-6中, 是下降沿触发指令,每个扫描周期都要计算其左侧的RLO,并与上一个扫描周期的RLO进行比较。如果上一周期RLO为1,当前RLO为0,则认为检测到下降沿,则使其右侧的RLO等于1,并保持一个扫描周期;如果上一周期RLO为0,无论当前左侧的RLO状态如何,均认为没有下降沿发生,则其右侧的RLO等于0。上一周期的左侧RLO的值,都会保存在系统中,并且每周期都更新一次。 由于在相连的两个周期中,不可能连续出现上升沿或下降沿,因此出现

17、边沿后,该触点后的RLO等于1,只能保持一个扫描周期。29 2022/7/214.2.4 立即读写指令 立即读写指令是为了加快系统的响应速度而设计的指令,他们允许系统对输入/输出端口(I和Q)进行直接快速的读写。立即读写指令如表4-5所示:30 2022/7/214.2.5 编程举例(补充) 单按钮起停电路:单按钮起停程序注意:必须考虑PLC的程序执行的过程和扫描周期的概念功能描述:只有一个按钮作为输入信号来控制电机的起停;输入信号:I0.0; 输出信号:Q0.0思考:还有别的编程方法吗?P指令可以用普通指令来代替吗?如何改写?31 2022/7/21本章的主要内容4.1 S7-200/300

18、/400编程指令与RLO 4.2 位逻辑操作指令 4.3 定时器指令 4.4 计数器指令 4.5 传送、比较、移位与转换指令 4.6 数学运算指令 4.7 表功能指令 4.8 字符串操作指令 4.9 其他指令 32 2022/7/214.3.1 定时器概述 定时器类似于电气控制电路里面的时间继电器,基本功能是通过一段时间的定时对某个操作作延时响应;现在定时器的功能越来越强大,用途也越来越广,经过组合使用,定时器可以产生宽度可调的脉冲序列,实现振荡器功能;也可以对某个系统进行定时,防止出现死循环,实现软看门狗等功能。 S7-200的CPU22X系列的PLC总共可以提供256个定时器T0-T255

19、,可以分为3类:(1)通电延时定时器TON,用于单一时间间隔的定时;(2)保持型通电延时定时器TONR,用于累计多个时间间隔;(3)断电延时定时器TOF,用于关断、故障事件后的延时; 33 2022/7/214.3.2 定时器的设定值、当前值和状态值 1. 定时器的设定值 定时器的时基是引起定时器当前时间值发生变化的最小时间单位,也称为定时器分辨率。本质上讲它是PLC内部标准脉冲序列的周期值,PLC正是对这些固定周期的标准脉冲进行累加,从而得到定时的时间。 S7-200的PLC所提供的定时器(T0T255)均规定好了定时分辨率,如表4-6中的T32,它的定时分辨率是1ms。换句话说,每隔1ms

20、,T32的当前值就会发生变化。若当前值大于等于预设值,则定时器的状态位就会变化。S7-200系列PLC的定时时基有3种:1ms、10ms和100ms。每个定时器的定时时基、类型、最大预设定时值如表4-6所示。34 2022/7/214.3.2 定时器的设定值、当前值和状态值CPU22X根据其精度及编号对256个定时器进行了分类定时器类型时基 (分辨率)ms定时长度 最大值 (秒)S定时器输出(定时器编号)TONR 1mS32.767ST0T64 10mS327.67ST1T4T65T68 100mS3276.7ST5T31T69T95TONTOF 1mS32.767ST32T96 10mS32

21、7.67ST33T36T97T100 100mS 3276.7ST37T63T101T255表4-6 CPU22X定时器的精度及编号35 2022/7/214.3.2 定时器的设定值、当前值和状态值 对于S7-200 PLC的定时器,其设定值乘以其对应的时基,就可以得到设定的时间值了。例如,T33的设定值为100,就表示设定的时间值为1s。S7-200 PLC定时器的设定值是一个16位有符号数,最大设定值为32 767。另外,表4-6中的TON或TOF定时器,一旦确定了类型,在整个程序中再也不能改变。例如,T33若定义为TON类型的定时器,则再也不能定义成TOF类型。36 2022/7/214

22、.3.2 定时器的设定值、当前值和状态值 2. 定时器的当前值和状态值 定时器除了有设定值之外,还有当前值和状态值(见图4-12)。分析状态值是我们分析定时器的最终目的。定时器的状态值为1或0,是一个布尔量,长度为1位(bit)。也可以将定时器看成继电器,其状态分为动作与不动作两种。 图4-7 定时器的当前值和状态值 37 2022/7/214.3.3 接通延时定时器 接通延时定时器的特点是在主输入端RLO有效的条件下,延时设定时间后动作。 图4-8 S7-200接通延时定时器指令和时序图 38 2022/7/214.3.4 保持型接通延时定时器 图4-9 保持型接通延时定时器指令和时序图(S

23、7-200) S7-200 PLC的保持型接通延时定时器(TONR)用于多个时间间隔的累计定时。 39 2022/7/214.3.5 断开延时定时器 图4-10 断开延时定时器指令和时序图(S7-200) 断开延时定时器(TOF)用于使能输入端断开后使定时器继续保持动作一段时间。 40 2022/7/214.3.6 不同时基的定时器的刷新方式 1. 1ms定时器的刷新方式 1ms定时器采用中断的方式刷新当前值。每隔1ms系统自动刷新一次定时器位和当前值,与扫描周期无关。 2. 10ms定时器的刷新方式 对于10ms的定时器,定时器位和当前值总是在每个扫描周期的开始时被刷新,之后在整个扫描周期内

24、定时器位和当前值保持不变。 3. 100ms定时器的刷新方式 100ms定时器的刷新与上面两种不同,是在该定时器指令被执行时刷新。 41 2022/7/21例4.5 使某个继电器动作规定时间1。 图4-11 使某个继电器动作规定时间1的程序 4.3.7定时器的应用举例 42 2022/7/214.3.7定时器的应用举例 例4.6 脉冲电路1。 图4-12 脉冲电路的编程及其时序图 43 2022/7/21本章的主要内容4.1 S7-200/300/400编程指令与RLO 4.2 位逻辑操作指令 4.3 定时器指令 4.4 计数器指令 4.5 传送、比较、移位与转换指令 4.6 数学运算指令 4

25、.7 表功能指令 4.8 字符串操作指令 4.9 其他指令 44 2022/7/214.4.1 计数器指令概述 计数器用来计数输入脉冲的数量。在S7-200中,普通计数器有3种类型: 递增计数器CTU、 递减计数器CTD、 增减计数器CTUD 共计256个,可根据实际编程需要,对某个计数器的类型进行定义,编号为C0C255。 每个计数器有一个16位的当前值寄存器和状态位,最大计数值为32767。45 2022/7/21 在计数器中需要设定一个设定值,以便在计数时,计数器当前值从设定值开始逐步减小到0,或从0逐步增加到设定值。当前值是指当前的计数器内所计的数量。 在S7-200 PLC中,每个计

26、数器有一个16位的当前值寄存器,最大计数值为32 767。 4.4.1 计数器指令概述 46 2022/7/21 计数器除了有设定值和当前值之外,还有状态值。分析状态值是分析计数器的最终目的。计数器的状态值为1或0,是一个布尔量,长度为1位(bit)。也可以将计数器看成继电器,其状态分为动作与不动作两种。 补充图:计数器位和当前值的访问 4.4.1 计数器指令概述 47 2022/7/214.4.2递增计数器指令 指令使用说明如下:1)CTU在首次扫描时,其状态位初始状态为OFF,当前值为0。2)当计数输入端(CU)有上升沿输入时,计数器当前值加1。3)当复位输入端(R)接通时,计数器复位(当

27、前值清0,输出标志位清0)。4)最大设定值(PV)为32 767。5)在当前值大于等于设定值PV时,计数器状态位被置位为1;当前值大于32 767时,停止计数。48 2022/7/214.4.2递增计数器指令 49 2022/7/21图4-13 递增计数器的使用 4.4.2递增计数器指令 50 2022/7/214.4.3递减计数器指令 指令使用说明如下:1)当计数输入端(CD)有上升沿输入时,计数器当前值减1。2)当装载输入端(LD)接通时,计数器输出标志位清0,并把设定值(PV)装入当前计数寄存器。3)最大设定值(PV)为32 767。4)当前计数值为0时,计数器输出标志位被置为1。5)递

28、减计数器(CTD)中无R端,但也可以使用单独的复位指令(R)对计数器进行复位(当前计数值清0,计数器输出标志位清0)。51 2022/7/214.4.3递减计数器指令 6)LD端无论何时有效,计数器均执行将设定值装载入当前值寄存器,且输出标志位(状态位)为OFF。7)首次扫描的情况比较复杂,与计数器当前值的初始值和CD端的接通状况有关。52 2022/7/21图4-14 递减计数器的使用 4.4.3递减计数器指令 53 2022/7/214.4.4 增减计数器指令1)首次扫描时,其状态位为OFF,当前值为0。2)当计数输入端(CU)有上升沿输入时,计数器当前计数值加1。3)当计数输入端(CD)

29、有上升沿输入时,计数器当前计数值减1。4)当复位输入端(R)接通时,计数器复位(当前计数值清0,输出标志位清0)。5)若当前计数值大于等于设定值PV,计数器输出标志位被置为1。6)若当前计数值大于等于32 767或小于等于-32 768,计数器停止计数。54 2022/7/214.4.4 增减计数器指令55 2022/7/214.4.4 增减计数器指令图4-15 增减计数器的使用56 2022/7/214.4.5 定时器/计数器扩展应用举例 定时时间的扩展例4.7 实现定时总时间T=T1+T2=5+10=15s。 图4-16 两个定时器的组合扩展定时时间 57 2022/7/214.4.5 定

30、时器/计数器扩展应用举例 例4.8 实现定时总时间T=TiN。 图4-17 定时器与计数器的组合扩展定时时间 58 2022/7/214.4.5 定时器/计数器扩展应用举例 2. 计数次数的扩展 例4.9 计数范围的扩展。 图4-18 计数范围的扩展 59 2022/7/21本章的主要内容4.1 S7-200/300/400编程指令与RLO 4.2 位逻辑操作指令 4.3 定时器指令 4.4 计数器指令 4.5 传送、比较、移位与转换指令 4.6 数学运算指令 4.7 表功能指令 4.8 字符串操作指令 4.9 其他指令 60 2022/7/214.5.1 传送指令 61 2022/7/214

31、.5.1 传送指令 62 2022/7/214.5.1 传送指令 例4.10 电动机-起动。 图4-19 主电路及控制电路接线图 63 2022/7/214.5.1 传送指令 图4-20 程序图 64 2022/7/214.5.1 传送指令 块传送指令如表4-11所示。这种指令一次可传送多个数据,最多可达255个数据,组成1个数据块。数据块的类型可以是字节块、字块和双字块。 指令说明:当允许输入端EN有效时,从输入端IN指定的地址开始,将N个字节(字、双字)型数据传送到OUT端指定地址开始的N个字节(字、双字)存储单元内。65 2022/7/214.5.1 传送指令 66 2022/7/214

32、.5.2 比较指令 比较指令用于两个相同数据类型的有符号数或无符号数IN1和IN2的比较判断操作。 比较运算符号有:等于(=)、大于等于(=)、小于等于()、小于(A6#80000000)双字整数比较IN1、IN2:有符号数的字型数据与字节比较类似,不同的是两比较数是有符号数16#7FFFA6#8000整数比较IN1、IN2:无符号的字节型数据若IN1=IN2,则触点闭合比较式还可以是IN1=IN2、IN1IN2、IN1IN2和IN1I2字节比较操作对象说 明梯形图指令名称67 2022/7/21 图4-21给出了比较指令在程序中的使用方法。预先通过传送指令将要比较的值存放在指定的存储区内,如

33、MW10,然后在比较时使用直接寻址的方式来访问。例如,执行传送指令后,MW10的值为1001,而不是1000,所以该比较指令将闭合,在I0.1导通情况下,Q0.1将导通。4.6.1 比较指令比较指令应用举例:图4-21 比较指令的使用说明68 2022/7/214.5.3 移位指令 移位指令主要分为普通移位和循环移位。移位是常用的指令,特别在逻辑控制处理循环逻辑的时候。普通移位(shift)指令 普通移位(Shift)指令根据移位方向可以分为左移位指令和右移位指令。根据操作数的类型可以分为字节型、字型和双字型移位。表4-13列出了左移位指令。 右移指令与左移指令只有移动方向相反,其他则相同。

34、69 2022/7/214.5.3 移位指令 70 2022/7/214.5.3 移位指令 2. 循环移位指令循环移位(Rotate)指令有循环右移位指令和循环左移位指令,表4-14所示为循环左移位指令。71 2022/7/214.5.3 移位指令 例4.118只彩灯循环点亮程序,如图4-22所示。要求:8只彩灯每隔1s不间断循环依次点亮。提示:循环间隔时间可由SM0.5提供,另外要注意,在程序执行中,每个扫描周期都会检测移位指令EN的RLO是否等于1。若等于1,则进行移位操作。如果将图4-22中的循环左移位指令换成普通移位指令,程序依然可以执行,只是彩灯依次亮过后,不再循环点亮。72 202

35、2/7/214.5.2 移位指令 图4-22 8只彩灯循环点亮程序73 2022/7/214.5.4 转换指令 PLC的基本数据类型有整数、双整数、浮点数和BCD码数。在不同的场合对数据的精度要求也不一样,而且PLC中的指令对输入的数据是不能自动转换的,因此在编程时经常要进行类型之间的转换。S7-200/300/400 PLC转换指令数量多,然而一个基本原则是,转换前后数据尽量保持相等或一致。 74 2022/7/214.5.4 转换指令 75 2022/7/214.5.4 转换指令 76 2022/7/214.5.4 转换指令 77 2022/7/21本章的主要内容4.1 S7-200/30

36、0/400编程指令与RLO 4.2 位逻辑操作指令 4.3 定时器指令 4.4 计数器指令 4.5 传送、比较、移位与转换指令 4.6 数学运算指令 4.7 表功能指令 4.8 字符串操作指令 4.9 其他指令 78 2022/7/214.6.1算术运算指令 79 2022/7/214.6.1算术运算指令 80 2022/7/214.6.1算术运算指令 81 2022/7/214.6.1算术运算指令 算术运算指令的使用如图4-23所示。 图4-23 算术运算指令的使用82 2022/7/214.6.2逻辑运算指令 逻辑与、逻辑或、逻辑异或、取反等逻辑操作均属于逻辑运算指令。操作数的数据长度可以

37、是字节(byte)、字(word)、双字(dword)。表4-22中列出了逻辑运算指令梯形图的格式,以及操作数的范围和类型。83 2022/7/214.6.2逻辑运算指令 84 2022/7/214.6.2逻辑运算指令 85 2022/7/214.6.2逻辑运算指令 字逻辑运算指令的使用如图4-24所示,给累加器AC0清0。图4-24 字逻辑运算指令的使用86 2022/7/214.6.3 数学功能指令 除了算术运算指令,S7-200 PLC的指令系统还包括平方根运算、指数运算、对数运算、正弦函数、余弦函数和正切函数等,这些指令被归入到浮点数运算指令,如表4-23表4-26所示。1. 平方根(

38、SQRT)指令87 2022/7/214.6.3 数学功能指令 2. 自然对数(LN)指令88 2022/7/214.6.3 数学功能指令 3. 指数函数(EXP)89 2022/7/214.6.3 数学功能指令 4. 正弦(SIN)、余弦(COS)和正切(TAN)指令90 2022/7/21本章的主要内容4.1 S7-200/300/400编程指令与RLO 4.2 位逻辑操作指令 4.3 定时器指令 4.4 计数器指令 4.5 传送、比较、移位与转换指令 4.6 数学运算指令 4.7 表功能指令 4.8 字符串操作指令 4.9 其他指令 91 2022/7/214.7.1 填充指令 填充(F

39、ILL)指令的形式、用法以及操作数如表4-27所示。指令使用说明如下:1)当EN端的RLO为1时,将从OUT端指定的地址开始的存储区中,依次填充N个IN端所包含的数据。2)IN端的数据为字型数据,从OUT端开始的存储区按字长存储。3)该指令可以用于一段存储区的清0操作。 填充指令的实现过程如图4-25所示。 执行后,从VW200开始到VW218结束,每个单元均为0。92 2022/7/214.7.1 填充指令 图4-25 填充指令的实现过程93 2022/7/214.7.2 填表指令 指令使用说明如下:1)当EN端RLO为1时,将DATA包含的字型数据写入到TBL指定的表格中。2)表格从TBL

40、所指定的地址开始,其中的数据表明了该表格所能容纳的最大数据量,紧随TBL后的地址存有当前表格中实际存储的数据个数,用EC表示。3)新数据总是被写入到表格最后一个数据的后面,且每写入一个,EC的值加1。4)TBL指定的地址与EC不占表格的大小。假设VW100内的数据为1234,表的起始地址为VW200。填表指令的实现过程如图4-26所示。94 2022/7/214.7.2 填表指令 95 2022/7/214.7.2 填表指令 图4-26 填表指令的实现过程a)数据写入前表格状态 b)数据写入后表格状态96 2022/7/214.7.3 表中取数指令 表中取数指令有先入先出(FIFO)取数和后入

41、先出(LIFO)取数两种形式。1. 先入先出取数指令 先入先出(FIFO)取数指令的形式及用法如表4-29所示。指令使用说明如下: 1)当EN端有效时,从TBL指定的表中,将最先存入的数据取出送入由DATA指定的存储单元中,其余的数据则依次向上移。 2)若表空,则SM1.5置1。FIFO的应用与执行结果如图4-27所示。97 2022/7/214.7.3 表中取数指令 在图4-27中,最先进入的数据是5431,因此,执行FIFO后,5431被取出并存入到VW400中。98 2022/7/214.7.3 表中取数指令 图4-27 FIFO的应用与执行结果99 2022/7/214.7.3 表中取数指令 后入先出(LIFO)取数指令的形式及用法如表4-30所示。指令使用说明如下:1)当EN端有效时,从TBL指定的表中,将最后存入的数据取出送入由DATA指定的存储单元中。2)若表空,则SM1.5置1。 LIFO指令是将后填入的数据先取出,如图4-27所示,在执行LIFO指令后,数据1234被先取出存入到VW400中。100 2022/7/214.7.3 表中取数指令 101 2022/7/214.7.4 查表指令 查表(FIND)指令的功能是从首地址为TBL的字型数据中,找到符合PTN与CMD条件的数据在表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论