PLC的产品种类和规格繁多,制造商也很多,其产品各有千秋,但总体而言,所有PLC的结构组成和工作原理是基本相同的,使用方法、基本指令和一些常用的功能指令也基本相同,只在表达方式上略有差别。当掌握了一种PLC的功能和应用之后,学习其它PLC是非常容易的。考虑目前国内PLC的实际使用状况和各学校实验设备的现状,本章介绍使用广泛的OMRON公司C系列PLC产品和西门子公司S7系列PLC产品的基本结构和指令系统,供选择学习和参考,与FX系列相同和类似的内容本章不再作介绍。
第一节 OMRON C系列PLC概述
一、 概述
日本OMRON(立石公司)电机株式会社是世界上生产PLC的著名厂商之一。SYSMAC C系列PLC产品以其良好的性能价格比被广泛地应用于化学工业、食品加工、材料处理和工业控制过程等领域,其产品在日本其销量仅次于三菱,居第二位,在我国也是应用非常广泛的PLC之一。
OMRON C系列PLC产品门类齐、型号多、功能强、适应面广。大致可以分成微型、小型、中型和大型四大类产品。整体式结构的微型PLC机是以C20P为代表的机型。叠装式(或称紧凑型)结构的微型机以CJ型机最为典型,它具有超小型和超薄型的尺寸。小型PLC机以P型机和CPM型机最为典型,这两种都属坚固整体型结构。具有体积更小、指令更丰富、性能更优越,通过I/O扩展可实现10~140点输入输出点数的灵活配置,并可连接可编程终端直接从屏幕上进行编程,CPM型机是OMRON产品用户目前选用最多的小型机系列产品。OMRON 中型机以C200H系列最为典型,主要有C200H、C200HS、C200HX、C200HG和C200HE等型号产品。中型机在程序容量,扫描速度和指令功能等方面都优于小型机,除具备小型机的基本功能外,它同时可配置更完善的接口单元模块,如模拟量I/O模块、温度传感器模块、高速记数模块、位置控制模块、通讯联接模块等。可以与上位计算机、下位PLC机及各种外部设备组成具有各种用途的计算机控制系统和工业自动化网络。
在一般的工业控制系统中,小型PLC机要比大、中型机的应用更广泛。在电气设备的控制应用方面,一般采用小型PLC机都能够满足需求。本书将以OMRON公司CPM 1A小型机为例作简要介绍。
二、CPM1A系列PLC的硬件配置 (一)CPM1A小型机的组成
与所有小型机一样,CPM1A系列PLC采用整体式结构, 内部由基本单元、电源、系统程序区、用户程序区、输入/输出接口、I/O扩展单元、编程器接口及其它外部设备组成。
1.基本单元
1
CPM1A系列整体式PLC的基本单元又称主机单元,内含CPU,可以单独使用,是PLC控制系统不可缺少的部分,其外部连接口主要有I/O接线端子、各种外连插座或插槽,以及各种运行信号指示灯等部分。I/O接线端子可直接用来连接控制现场的输入信号(开关、按钮等)和被控执行部件(接触器、电磁阀等),总的I/O端子数量就称I/O点数,CPM1A系列整体式CPU可分作10点、20点、30点、40点。
在CPM1A系列PLC主机面板上有两个隐藏式插槽。一个是通讯编程器插槽,插接手持式编程器即可进行编程和现场调试,或配接一个专用适配器RS-232即可与个人计算机(PC机)连接,在Windows系统平台下可直接用梯形图进行编程操作,大大改进了编程环境,并可以进行实时监控和调试。另一个是I/O扩展插槽,可用于连接I/O扩展单元。
CPU主机面板上设有若干LED指示灯,其灯亮、闪烁表示单元状态见表4-1:
表4-1 CPU主机面板LED指示灯状态指示
LED POWER(绿) RUN(绿) 显示 亮 灭 亮 灭 亮 ERROR/ALARM(红) 闪烁 灭 COMM(橙) 2.I/O扩展单元
I/O扩展单元主要用于增加PLC系统的I/O点数以满足实际应用的需要,I/O扩展单元与CPU单元相似,体积稍小。它没有CPU,不能单独使用,只有I/O扩展插槽而没有通信编程器插槽。在它的左右两侧设有I/O连接插座,当CPU单元需要扩展I/O点数时,可直接采用带扁平电缆的插头连接即可。输入、输出端子分别连接输入或输出电路,其对应LED显示灯亮、灭分别表示输入或输出的接通状态。扩展单元的I/O点数分别为12点/8点,只有I/O为30点和40点的CPU单元才能扩展,且最多连接3个I/O扩展单元。
3.编程器
CPM1A系列小型机可采用多种编程设备进行编程,在现场调试和编程比较常用的是手持式编程器。这种编程器体积小、结构紧凑、便于携带。它通过连接电缆直接插入编程器槽,在距主机一定距离处即可进行编程。利用手持式编程器可进行用户程序的输入,修改,调试以及对系统运行情况进行监控等操作。手持式编程器只能用助记符号指令输入程序,而不能直接显示梯形图。
CPM1A系列PLC也可以采用计算机进行编程和实时监控,OMRON公司SYSMAC C
2
状态 电源接上 电源切断 运行/监视模式 编程模式或停止异常过程中 发生故障 发生警告 正常时 与外设端口通信中 上述以外 闪烁 灭 系列PLC配备专用编程软件CX-Programmer。
(二)CPM1A小型机的主要性能指标 1.主要性能参数
CPM1A机型的主要性能参数见表4-2,表中所列I/O点数为主机本身所带输入输出(I/O)点数和连接扩展单元后所能达到的最大输入输出点数(I/O点数)。
表4-2 OMRON CPM1A的主要性能参数
特性 结 构 指令条数 处理速度 程序容量 最大仅本体 I/O点扩展时 数 输入继电器 输出继电器 内部辅助继电器 特殊辅助继电器 保持继电器 暂存继电器 (TR) 定时/计数器 数存储器: (DM) 输入量 输出方式 联网功能 工作电源 10点I/O 20点I/O 30点I/O 40点I/O 整体式 基本指令:14种,功能指令:77种,计135个 基本指令:0.72~16.3μs,功能指令:MOV指令=16.3μs 2048字 10点 20点 30点 40点 — — 50、70、90点 60、80、100点 00000~00915 (000~009CH) 不作为输入输出继电器使用的通道可作为内部辅助继电器 01000~01915 (010~019CH) 512位:IR20000~23115(200~231CH) 384位:23200~25515(232~255CH) 320位:HR0000~1915(HR00~19CH) 8位: (TR0~7) 128点:TIM/CNT000~127 读/写: 1024字(DM0000~1023) 只读: 512字(DM6144~6655) 主要逻辑开关量 继电器、晶体管、可控硅 I/O Link 、HostLink (C200、CS1还可PCLink) AC100~240V或DC24V 、50/60Hz 2.CPM1A系列PLC的输入/输出特性
CPM1A属于小型的PLC,一般用于逻辑量的控制系统,因此输入,输出主要是开关量信号。其输入特性和输出特性分别见表4-3和表4-4所示。
表4-3 CPM1A系列机型输入特性(CPU单元,扩展I/O单元)规格表
项 目 电源电压 输入阻抗 输入电流 ON电压
规 格 DC24V、+10%、-15% IN00000~00002:2kΩ 其它:4.7kΩ IN00000~00002:12 mA TYP 其它: 5mA TYP 最小 DC14.4V 3
线 路 图 表4-3图 OFF电压 ON响应时间 OFF响应时间 最大 DC 5.0V 1~128ms 以下(缺省8 ms)注 1~128ms 以下(缺省8 ms)注 注:实际ON/OFF响应时间通过PLC系统的设置可切换为1ms、2ms、4ms、8ms、16ms、32ms、64ms、128ms
表4-4 CPM1A系列机型输出特性规格表
继电器输出(CPU单元,扩展I/O单元):
项 目 最大开关能力 最小开关能力 继电器寿命 电阻负载 电气性 感性负载 机械性 ON响应时间 OFF响应时间 10万次 2000万次 15ms以下 15ms以下 晶体管输出(CPU单元,扩展I/O单元):
项 目 最大开关能力 最小开关能力 漏电流 残余电压 ON响应时间 OFF响应时间 规 格 DC24V、300mA 10mA 0.1mA以下 1.5V以下 0.1ms以下 1.0ms以下 电 路 图 规 格 AC250V、2A DC24V、2A DC5V、10mA 30万次 电 路 图 表4-4图1 表4-4图2 3.CPM1A系列PLC的使用条件
CPM1A系列PLC由日本工业化标准JIS进行严格考核,能够适应较恶劣的工业生产环境,其各项规格指标见表4-5所示。当然,不同型号的PLC之间在性能上仍会有某些不同。另外,各种扩展外设也会有相应的型号特性,具体使用可查阅有关手册。
表4-5 CPM1A系列PLC的规格指标
项 目 电源电压 允许电压范围 AC电源型 DC电源型 AC电源型 DC电源型 10点I/O 20点I/O 30点I/O 40点I/O AC100~240V,50/60Hz DC24V AC85~264V DC20.4~26.4V 4
功率消耗 AC电源型 DC电源型 30VA以下 6W 以下 30A以下 DC24V 200mA 300mA 60VA以下 20W 以下 60A以下 冲击电流 供给外部电源(仅AC型) 供应电压 电源输出容量 绝缘电阻 耐压 抗震动 抗冲击 使用环境温度/湿度 AC电源型 重量 DC电源型 扩展I/O单元 AC端子与机壳之间20MΩ以上(DC500V兆欧表) AC电源端子与机壳之间AC2300V、50/60Hz、 一分钟漏电流10mA以下 标准10~57Hz震幅0.075mm,在X、Y、Z方向各80分钟 15G,在X、Y、Z方向各3次 0~55C/10~90%RH 400g以下 300g以下 500g以下 400g以下 300g以下 600g以下 500g以下 700g以下 600g以下
三、CPM1A系列PLC的编程元件
与所有PLC一样,CPM1A内部的“软继电器”可以将用户数据区按继电器的类型分为7大类区域:即I/O继电器区、内部辅助继电器区、专用继电器区、暂存继电器区、定时/计数继电器区、保持继电器区、和数据存储继电器区。区域中的每一位继电器都有“0”或“1”两种状态,而且这些继电器是可以通过程序被寻址访问,所以把这类继电器称为“软”继电器。
OMRON公司的系列PLC采用“通道”(CH)的概念来标识数据存储区中的各类继电器及其区域,即将各类继电器及其区域划分为若干个连续的通道,PLC则是按通道号对各类继电器进行寻址访问的。CPM1A型PLC的数据区继电器通道号分配见表4-6。每一个通道包含16个位(即二进制位),相当于16个继电器。用五位十进制数字就表示一个具体的继电器及其触点号。例如00001表示000通道的第01号继电器;01001表示010通道的第01号继电器等等。其中的通道号表示了继电器的类别。CPM1A的继电器类型及通道号区表示如下:
表4-6 数据区继电器通道号分配表
名 称 输入继电器 输出继电器 内部辅助继电器 特殊辅助继电器 暂存继电器
点 数 160点 (10字) 160点 (10字) 512点 (32字) 384点 (24字) 8点 通道号 000~009CH 010~019CH 200~231CH 232~255CH 继电器地址 00000~00915 01000~01915 20000~23115 23200~ 25507 功 能 能分配给外部输入输出端子的继电器(没有使用的输入输出通道可用作内部辅助继电器使用) 程序中能自由使用的继电器 具有特定功能的继电器 在回路的分叉点上,暂时记忆ON/OFF状态的继电器 5
TR0~7 保持继电器 辅助记忆继电器 链接继电器 定时器/计数器 可读/写 数据内存 (DM) 异常历史存放区 只读 PC系统设置区 320点 HR00~19CH (20字) 256点 AR00~15CH (16字) 256点 LR00~15CH (16字) 128点 1002字 22字 456字 56字 HR0000~1915 AR0000~1515 LR0000~1515 程序中能自由使用,且断电时也能保持断电前的ON/OFF状态的继电器 具有特定功能的继电器 1:1连接中作为输入输出用的继电器(也可用作内部辅助继电器) 定时器、计数器共用相同号 以字为单位(16位)使用,断电时保持数据 DM1000~1021不作为存放异常历史时可作为常规的DM自由使用 DM6144~6599、DM6600~6655不能在程序中写入(可用外围设备设定)。 TIM/CNT 000~127 DM0000~0999 DM1022~1023 DM1000~1021 DM6144~6599 DM6600~6655 1. 输入/输出继电器区
输入/输出继电器区实际上就是外部I/O设备状态的映像区,PLC通过输入/输出继电器区中的各个位与外部输入输出建立联系。它们与I/O端子之间的关系可见表4-3,表4-4中的输入/输出电路。CPM1A规定00000~00915为输入继电器区的工作位,000CH~009CH为其输入通道号,共有160个输入继电器;01000~01915为输出继电器区的工作位,010CH~019CH为其输出通道号,共有160个输出继电器。CPM1A输入输出继电器编号见表4-7所示。
表4-7 CPM1A输入输出继电器编号
输入号 输出号 输入号 输出号 输入号 输出号 输入号 输出号 CPU单元 10点I/O 6点/4点 20点I/O 12点/8点 30点I/O 18点/12点 40点I/O 24点/16点 00000~00005 01000~01003 00000~00011 01000~01007 00000~00011 00100~00105 01000~01007 01100~01103 00000~00011 00100~00111 01000~01007 01100~01107 扩展I/O单元 (每个单元I/O点数为12点/8点) - - - - - - - - - - - - 00200~00211 00300~00311 00400~00411 01200~01207 01300~01307 01400~01407 00200~00211 00300~00311 00400~00411 01200~01207 01300~01307 01400~01407 表4-7中所列出的是根据PLC的主机类型及带扩展情况下输入输出继电器的最大范围。各输入输出继电器均有I/O端子与之相对应,并在主机面板上配有指示灯显示。
2. 内部继电器
除上述输入输出继电器外,其余的均属内部继电器。 内部继电器实质上是一些存储器单元,它们不能直接控制外部负载,只能在PLC内部起各种控制作用,或直接受外部信号控制。在梯形图中它们也可用线圈和触点来表示,线圈的状态由逻辑关系控制,触点相当于读继电器的状态,因此可在梯形图程序中被无限次使用。CPM1A系列PLC的内部继电器及其
6
通道号表示可分为以下几类:
(1)内部辅助继电器(AR) 内部辅助继电器的作用是在PLC内部起信号的控制和扩展作用,相当于接触继电器线路中的中间继电器。CPM1A机共有512个的内部辅助继电器,其编号为20000~23115,所占的通道号为200CH~231CH。内部辅助继电器没有掉电保持状态的功能。
(2)暂存继电器(TR) 暂存继电器用于具有分支点的梯形图程序的编程,它可把分支点的数据暂时贮存起来。CPM1A型机提供了8个暂存继电器,其编号为TR0~TR7,在具体使用暂存继电器时,其编号前的“TR”一定要标写以便区别。TR继电器只能与LD,OUT指令联用,其他指令不能使用TR作数据位。
(3)保持继电器(HR) 保持继电器用于各种数据的存储和操作,它具有停电记忆功能,可以在PLC掉电时保持其数据不变。保持作用是通过PLC内的锂电池实现的。保持继电器的用途与内部辅助继电器基本相同。CPM1A系列PLC中的保持继电器共有320个,其编号为HR0000~HR1915,所占的通道号为HR00~HR19。在编程中使用保持继电器时,除了标明其编号外,还要在编号前加上“HR”字符以示区别,例如“HR0001”。
(4)定时/计数器(TIM/CNT) 在CPM1A系列PLC中提供128个定时/计数器,使用时,某一编号只能用作定时器或计数器,不能同时既用作定时器又用作计数器,如已使用了TIM001,就不能再出现CNT001,反之亦然。
此外,在CPM1A系列PLC中,对于上述继电器编号,也可以用来进行高速定时(又称高速定时器TIMH)和可逆计数(又称可逆计数器CNTR),它们在使用时需要用特殊指令代码来指定。
(5)内部专用继电器(SR) 内部专用继电器用于监视PLC的工作状态,自动产生时钟脉冲对状态进行判断等。其特点是用户不能对其进行编程,而只能在程序中读取其触点状态。
CPM1A系列PLC中常用的15个专用继电器及它们的具体编号和功能如下: 25200继电器:高速计数复位标志(软件复位)。
25208继电器:外设通讯口复位时仅一个扫描周期为ON,然后回到OFF状态。 25211继电器: 强制置位/复位的保持标志。在编程模式与监视模式互相切换时,ON为保持强制置位/复位的接点;OFF为解除强制置位/复位的接点。
25309继电器:扫描时间出错报警。当PLC的扫描周期超过100s时,1809变ON并报警,但CPU仍继续工作;当PLC的扫描周期超过130s时,CPU将停止工作。
25313继电器:常ON继电器 25314继电器:常OFF继电器
25315继电器:第一次扫描标志。PLC开始运行时,25315为ON一个扫描周期,然后变OFF。
7
25500~25502继电器:时钟脉冲标志。这3个继电器用于产生时钟脉冲,可用在定时或构成闪烁电路。其中,25500产生0.1s脉冲(0.05sON/0.05sOFF),在电源中断时能保持当前值;25501产生0.2s脉冲(0.1sON/0.1sOFF),具有断电保持功能;25502产生1s脉冲(0.5sON/0.5sOFF),具有断电保持功能。
25503~25507继电器:这五个继电器为算术运算标志。其中,25503为出错标志,若算术运算不是BCD码输出时,则25503为ON;25504为进位标志CY,若算术运算结果有进位/错位时,则25504为ON;25505为大于标志GR,在执行CMP指令时,若比较结果“>”,则25505为ON;25506为相等标志EQ,在执行CMP指令时,若比较结果“=”,则25506为ON;25507为小于标志LE,在执行CMP指令时,若比较结果“<”,则有25507为ON。
(6)数据存储继电器(DM) 数据存储继电器实际是RAM中的一个区域,又称数据存储区(简称DM区)它只能以通道的形式访问。CPM1A系列PLC提供的读/写数据存储器寻址范围为DM0000~DM1023(共1023字),只读数据存储器寻址范围为DM6144~DM6655(共512字)。编程时需要在通道号前标注“DM”,DM区具有掉电保持功能。
第二节 OMRON C系列PLC指令系统
CPM1A系列PLC具有比较丰富的指令集,按其功能可分为两大类:基本指令和特殊功能指令。其指令功能与FX系列PLC大同小异,这里不再详述。
CPM1A系列PLC指令一般由助记符和操作数两部分组成,助记符表示CPU执行此命令所要完成的功能,而操作数则指出CPU的操作对象。操作数既可以是前面介绍的通道号和继电器编号,也可以是DM区或是立即数。立即数可以用十进制数表示,也可以用十六进制数表示。可能影响执行指令的系统标志有:ER(错误标志)、CY(进位标志)、EQ(相等标志)、GR(大于标志)和LE(小于标志)等。
一、基本指令
CPM1A系列PLC的基本逻辑指令与FX系列PLC较为相似,梯形图表达方式也大致相同,这里列表表示CPM1A系列PLC的基本逻辑指令(见表4-8)
表4-8 CPM1A系列PLC的基本逻辑指令
指令名称 取 取反 与 指令符 LD LD NOT AND 功能 读入逻辑行或电路块的第一个常开接点 读入逻辑行或电路块的第一个常闭接点 串联一个常开接点 操作数 00000~01915 20000~25507 HR0000~1915 AR0000~1515 LR0000~1515 TIM/CNT000~127 8
与非 或 或非 电路块与 电路块或 输出 输出求反 置位 复位 定时 计数 AND NOT 串联一个常闭接点 OR OR NOT AND LD OR LD OUT 并联一个常开接点 并联一个常闭接点 串联一个电路块 TR0~7 *TR仅用于LD指令 无 并联一个电路块 输出逻辑行的运算结果 00000~01915 20000~25507 HR0000~1915 AR0000~1515 LR0000~1515 TIM/CNT000~127 TR0~7 *TR仅用于OUT指令 TIM/CNT000~127 设定值0~9999 定时单位为0.1S 计数单位为1次 OUT NOT 求反输出逻辑行的运算结果 SET RSET TIM CNT 置继电器状态为接通 使继电器复位为断开 接通延时定时器(减算) 设定时间0~999.9S 减法计数器 设定值0~9999次 对上述基本指令的编程方法和应用,举例如下: 1.基本逻辑指令的应用
基本逻辑指令的应用如图4-1、图4-2所示。
图4-1 基本逻辑指令的应用(一)
图4-2 基本逻辑指令的应用(二)
2.电路块串联的编程
电路块串联的编程如图4-3所示,当串联的电路块多于两个时,电路块连接的指令语句方法有两种:方法1是电路块的逐块连接,方法2是电路块编写后总连接,两种编写法的指令条数相同。在使用方法2时要注意以下两点:
1) 总连接时,使用AND LD指令的条数比实际电路块数少1。
2)使用AND LD指令的条数≤8,即最多只能有9个电路块相连接。而方法1没有此限
9
制。
图4-3 电路块串联的编程
3.电路块并联的编程
电路块并联的编程如图4-4所示。与AND LD指令相同,当并联的电路块多于两个时,电路块连接的指令语句方法有两种:方法1是电路块的逐块连接,方法2是电路块编写后总连接,两种编写法的指令条数相同。在使用方法2时要以下注意两点:
1)总连接时,使用OR LD指令的条数比实际电路块数少1。
2)使用OR LD指令的条数≤8,即最多只能有9个电路块相连接。而方法1没有此限制。
图4-4 电路块并联的编程
4.TR指令的应用
在梯形图程序中如果有几个分支输出,并且分支后面还有触点串联时,前面的逻辑指令就不能直接写出其指令程序,这时要用暂存继电器TR来暂时保存分支点的状态后再进行编程。TR不是独立的编程指令,它必须与LD或OUT指令配合使用。如图4-5。
图4-5 TR指令的应用
5.定时器指令的应用
CPM1A系列PLC定时器的定时方式为递减型,当输入条件为ON时,开始减1定时,每经过0.1s,定时器的当前值减1,定时设定时间到(即定时当前值减为0000时),定时器触点接通并保持。当输入条件为OFF时,定时器立即复位,当前值恢复到设定值,其触点断开。定时器作用相当于时间继电器。PLC电源掉电时,定时器复位。如图4-6。
图4-6 定时器指令的应用
6.计数器指令编程应用
CPM1A系列PLC计数器工作方式为递减型,当其输入端(IN)的信号每出现一次由OFF
10
→ON的跳变时,计数器的当前数值减1。当计数值减为零时,便产生一个输出信号,使计数器的触点接通并保持。当复位端R输入ON时,计数器复位,当前值立即恢复到设定值,同时其触点断开。PLC电源掉电时,计数器当前值保持不变。当R端复位信号和IN端计数信号同时到达时,复位信号优先。如图4-7。
图4-7 CNT指令的编程应用
可以利用计数器级联来扩大计数范围,也可以利用定时器级联来扩大定时范围,或者利用定时器和计数器的组合来扩大定时范围,其应用与FX系列PLC类似。
二、功能指令
功能指令又称专用指令,CPM1A系列PLC提供的功能指令主要用来实现程序控制,数据处理和算术运算等。这类指令在简易编程器上一般没有对应的指令键,只是为每个指令规定了一个功能代码,用两位数字表示。在输入这类指令时先按下“FUN”键,再按下相应的代码。下面将介绍部分常用的功能指令。
1.空操作指令NOP(0 0)
本指令不作任何的逻辑操作,故称空操作,也不使用继电器,无须操作数。该指令应用在程序中留出一个地址,以便调试程序时插入指令,还可用于微调扫描时间。
2.结束指令END(01)
本指令单独使用,无须操作数,是程序的最后一条指令,表示程序到此结束。PLC在执行用户程序时,当执行到END指令时就停止执行程序阶段,转入执行输出刷新阶段。如果程序中遗漏END指令,编程器执行时则会显示出错信号:“NO END INSET”:当加上END指令后,PLC才能正常运行。本指令也可用来分段调试程序。
3.互锁指令IL(02)和互锁清除指令ILC(0 3)
这两条指令不带操作数,IL指令为互锁条件,形成分支电路,即新母线以便与LD指令连用,表示互锁程序段的开始;ILC指令表示互锁程序段结束。
互锁指令IL和互锁清除指令ILC用来在梯形图的分支处形成新的母线,使某一部分梯形图受到某些条件的控制。IL和ILC指令应当成对配合使用,否则出错。IL/ILC指令的功能是:如果控制IL的条件成立(即ON),则执行互锁指令。若控制IL的条件不成立(即OFF),则IL与ILC之间的互锁程序段不执行,即位于IL/ILC之间的所有继电器均为OFF,此时所有定时器将复位,但所有的计数器,移位寄存器及保持继电器均保持当前值。
IL/ILC指令功能的应用见图4-8。
11
图4-8 IL/ILC指令的应用
在图4-8a 中,当外接输入触点00002闭合(即ON),IL/ILC互锁条件满足,指令顺序执行。输出继电器01000、01001、01002的状态分别由触点00003、00004、00005和00006决定。当00002状态为OFF,互锁条件不满足,不执行互锁程序段,输出继电器01000、01001、01002则全部OFF。图4-8b是IL/ILC指令应用的另一种梯形图表达形式,功能完全相同但表达形式更为直观。
4.跳转开始指令JMP(0 4)和跳转结束指令JME(0 5)
这两条指令不带操作数,JMP指令表示程序转移的开始,JME指令表示程序转移的结束。 JMP/JME指令组用于控制程序分支。当JMP条件为OFF时,程序转去执行JME后面的第一条指令;当JMP的条件为ON,则整个梯形图按顺序执行,如同JMP/JME指令不存在一样。JMP/JME指令的应用见图4-9a。图4-9b是JMP/JME指令应用的另一种梯形图表达形式,功能完全相同但表达形式更为直观。
图4-9 JMP/JME指令的应用
在使用JMP/JME指令时要注意,若JMP的条件为OFF,则JMP/JME之间的继电器状态为:输出继电器保持目前状态;定时器/计数器及移位寄存器均保持当前值。另外JMP/JME指令应配对使用,否则PLC显示出错。
5.逐位移位指令 SFT(10)
又称移位寄存器指令,本指令带两个操作数,以通道为单位,第一个操作数为首通道号D1,第二个操作数为末通道号D2。所使用的继电器有:000CH~019CH, 200CH~252CH, HR00~HR19。其功能相当于一个串行输入移位寄存器。
移位寄存器有数据输入端(IN)、移位时钟端(CP)及复位端(R),必须按照输入(IN)、时钟(CP)、复位(R)和SFT指令的顺序进行编程。当移位时钟由OFF→ON时,将(D1~D2)通道的内容,按照从低位到高位的顺序移动一位,最高位溢出丢失,最低位由输入数据填充。当复位端输入ON时,参与移位的所有通道数据均复位,即都为OFF。一个通道的移位举例如图4-10所示。
图4-10 SFT指令的编程举例
若把例中梯形图的最后一行改为20015控制01000时,可把移位寄存器16位的内容一
12
位一位地输出。当00005变为ON时,10号通道数据置零。
如果需要多于16位的数据进行移位,可以将几个通道级连起来。
移位指令在使用时须注意:起始通道和结束通道,必须在同一种继电器中且起始通道号≤结束通道号。
6.锁存指令KEEP(11)
本指令使用的操作数有:01000~01915、20000~25515、HR0000~HR1915,其功能相当于锁存器,当置位端(S端)条件为ON时,KEEP继电器一直保持ON状态,即使S端条件变为OFF,KEEP继电器也还保持ON,,直到复位端(R端)条件为ON时,才使之变OFF ,KEEP 指令主要用于线圈的保持,即继电器的自锁电路可用KEEP指令实现。若SET端和RES端同时为ON,则KEEP继电器优先变为OFF。锁存继电器指令编写必须按置位行(S端),复位行(R端)和KEEP继电器的顺序来编写。KEEP指令应用见图4-11。图4-11a为线圈的自锁保持电路,图4-11b用KEEP指令实现自锁。
图4-11 KEEP指令的应用
7.前沿微分脉冲指令DIFU(13)和后沿微分脉冲指令DIFD(14)
本指令使用操作数有:01000~01915、20000~25515、HR0000~HR1915,DIFU的功能是在输入脉冲的前(上升)沿使指定的继电器接通一个扫描周期之后释放,而DIFD的功能是在输入脉冲的后(下降)沿使指定的继电器接通一个扫描周期之后释放。其编程应用见图4-12。
图4-12 DIFU/DIFD指令的应用
8.快速定时器指令 TIMH(15)
本指令操作数占二行,一行为定时器号000~127(不得与TIM或CNT重复使用同号),另一行为设定时间。设定的定时时间,可以是常数,也可以由通道000CH~019CH,20000CH~25515CH,HR0000~HR1915中的内容决定,但必须为四位BCD码。其功能与基本指令中的普通定时器作用相似,唯一区别是TIMH定时精度为0. 01s,定时范围为0~99.99s。
以常数作为TIMH设定值的编程见图4-13。
图4-13 以常数作为TIMH设定值
13
9.通道移位指令WSFT(16)
又称字移位指令,本指令是以字(通道)为单位的串行移位。操作数为首通道号D1,末通道号D2。可取000CH~019CH, 200CH~252CH, HR00~HR19。通道移位指令执行时,当移位条件为ON,WSFT从首通道向末通道依此移动一个字,原首通道16位内容全部复位,原末通道中的16位内容全部移出丢失。
如图4-14所示,由于使用了微分指令,当00001由OFF变为ON时,20000接通一个扫描周期,在WSFT指令作用下进行移位:200通道中的内容移到201通道,201通道中的内容移到202通道,202通道中的原有内容全部溢出丢失,200通道中的16位全部复位。因为使用微分指令,故仅执行一次通道移位。
图4-14 WSFT指令的编程
WSFT指令在使用时须注意:首通道和末通道必须是同一类型的继电器;首通道号≤末通道号。
当移位条件为ON时,CPU每扫描一次程序就执行一次WSFT指令。如只要程序执行一次,则应该用微分指令。
10.可逆计数器指令 CNTR(12)
本指令的功能是对外部信号进行加1或减1的环形计数。带两个操作数:计数器号000~127,设定值范围0000~9999,设定值可以用常数,也可以用通道号,用通道号时,设定值为通道中的内容。
如图4-15所示,当计数器的当前值为设定值(即为5000)时,ACP端再输入一个正跳变(正向加1),则当前值变为0000,计数器输出为ON:若计数器的当前值为0000时,SCP端再输入一个正跳变(反向减1),则当前值变为了设定值,计数器输出为ON。在使用CNTR指令编程时须注意,若APC和SCP端同时为ON,则不能进行计数操作。当R端为ON时,计数器的当前值变为0000,并不接收输入信号。另外若CNTR位于IL/ILC指令之间时,当IL条件为OFF时,则CNTR将保持当前值。
图4-15 CNTR指令的编程及功能
11.比较指令CMP(20)
本指令的功能是将S(源通道)中的内容与D(目标通道)的内容进行比较,其比较结果送到PLC的内部专用继电器25505、05506、25507中进行处理后输出,输出状态见表4-9。
14
表4-9 比较结果输出专用继电器状态表
SMR S>D S=D S,D 25505 ON OFF OFF 25506 OFF ON OFF 25507 OFF OFF ON 比较指令CMP用于将通道数据S与另一通道数据D中的十六进制数或四位常数进行比较,S和D中至少有一个是通道数据。
如图4-16所示是一个用200通道中的数据与一个常数进行比较的编程示例。图中若输入信号 00001为ON时,200CH中的数又大于于B6D8,则专用继电器25506为ON输出,从而使输出继电器01001为ON。
图4-16 CMP指令的编程方法
12.数据传送指令 MOV(21)和数据求反传送指令MOVN(22)
这两条指令都是用于数据的传送。当MOV前面的状态为0N时,执行MOV指令,在每个扫描周期中把S中的源数据传送到目标D所指定的通道中去。当MOV前面的状态为0FF时,执行MOVN指令,在每个扫描周期中把S中的源数据求反后传送到目标D所指定的通道中去。执行传送指令后,如果目标通道D中的内容全为零时,则标志位25506为ON。
传送指令的编程应用如图4-17所示。当00002为ON时,CPU每扫描程序一次,MOV/MOVN指令就被执行一次。若要求传送过程只进行一次,则应当使用DIFU或DIFD指令。
图4-17 MOV/MOVN 指令的应用
13.进位置位指令STC(40)和进位复位位指令CLC(41)
这两条指令的功能是将进位标志继电器25504置位(即置ON)或强制将进位标志继电器25504复位(即置OFF)。当这两条指令前面状态为ON时,执行指令,否则不执行。通常在执行加、减运算操作之前,先执行CLC指令来清进位位,以确保运算结果的正确。其指令应用见图4-18、图4-19。
14.加法指令ADD(30) 本指令是将两个通道的内容或一个通道的内容与一个常数相加(带进位位),再把结果送至目标通道D。操作数中被加数S1、加数S2、运算结果D的内容见表4-10。
15
表4-10 加法指令的操作数内容
S1/S2 000~019CH 200~231CH HR00~HR19 TIM/CNT000~127 D 010~019CH 200~231CH HR00~HR19 — DM0000~1023 DM6144~6655 DM0000~1023 四位 常数 — 注:DM6144~6655不能用程序写入(只能用外围设备设定)
加法指令的应用见图4-18,在梯形图中,若10CH的数据为0153,则执行ADD指令后HR9CH中的数据为1387,专用继电器25504状态为OFF;若10CH通道的数据为9795,则执行ADD指令后HR9CH中的内容为1029,并产生了进位,专用继电器25504的状态为ON。
图4-18 ADD指令的应用
说明:执行加法运算前必须加一条清进位标志指令CLC(41)参加运算;被加数和加数必须是BCD数,否则25503置ON,不执行ADD指令;若相加后结果有进位,则进位标志继电器25504为ON;若和为零,则专用继电器25506变为ON。
15.减法指令SUB(31)
本指令与ADD指令相似,是把两个四位BCD数作带借位减法,差值送入指定通道,其操作数同ADD指令。在编写SUB指令语言时,必须指定被减数,减数和差值的存放通道三个数,其指令应用如图4-19所示。
图4-19 SUB指令的应用
说明:执行减法运算前必须加一条清进位位指令CLC(41);被减数和减数必须是BCD数,否则25503置ON,不执行SUB指令;若运算结果有借位,则进位标志继电器25504为ON;若运算结果为零,则专用继电器25506变为ON。
以上介绍是CPM1A系列PLC一些常用的专用指令,还有一些未作介绍,C200H系列PLC除了基本指令和CPM1A系列PLC相同外,很多功能指令也相同,另外又增加了一些功能指令,读者可以根据不同型号的PLC按其使用功能的不同参阅使用手册加以学习和掌握。
第三节 S7系列PLC概述
一、概述
德国西门子(SIEMENS)公司生产的可编程序控制器在我国的应用也相当广泛,在冶金、
16
化工、印刷生产线等领域都有应用。西门子(SIEMENS)公司的PLC产品包括LOGO,S7-200,S7-300,S7-400,工业网络,HMI人机界面,工业软件等。
西门子S7系列PLC体积小、速度快、标准化,具有网络通信能力,功能更强,可靠性更高。S7系列PLC产品可分为微型PLC(如S7-200),小规模性能要求的PLC(如S7-300)和中、高性能要求的PLC(如S7-400)等。
1.SIMATIC S7-200 PLC
S7-200 PLC是超小型化的PLC,它适用于各行各业,各种场合中的自动检测、监测及控制等。S7-200 PLC的强大功能使其无论单机运行,或连成网络都能实现复杂的控制功能。 S7-200PLC可提供4个不同的基本型号与8种CPU可供选择使用。
2.SIMATIC S7-300 PLC
S7-300是模块化小型PLC系统,能满足中等性能要求的应用。各种单独的模块之间可进行广泛组合构成不同要求的系统。与S7-200 PLC比较,S7-300 PLC采用模块化结构,具备高速(0.6~0.1μs)的指令运算速度;用浮点数运算比较有效地实现了更为复杂的算术运算;一个带标准用户接口的软件工具方便用户给所有模块进行参数赋值;方便的人机界面服务已经集成在S7-300操作系统内,人机对话的编程要求大大减少。SIMATIC人机界面(HMI)从S7-300中取得数据,S7-300按用户指定的刷新速度传送这些数据。S7-300操作系统自动地处理数据的传送;CPU的智能化的诊断系统连续监控系统的功能是否正常、记录错误和特殊系统事件(例如:超时,模块更换,等等);多级口令保护可以使用户高度、有效地保护其技术机密,防止未经允许的复制和修改;S7-300 PLC设有操作方式选择开关,操作方式选择开关像钥匙一样可以拔出,当钥匙拔出时,就不能改变操作方式,这样就可防止非法删除或改写用户程序。具备强大的通信功能,S7-300 PLC可通过编程软件Step 7的用户界面提供通信组态功能,这使得组态非常容易、简单。S7-300 PLC具有多种不同的通信接口,并通过多种通信处理器来连接AS-I总线接口和工业以太网总线系统;串行通信处理器用来连接点到点的通信系统;多点接口(MPI)集成在CPU中,用于同时连接编程器、PC机、人机界面系统及其他SIMATIC S7/M7/C7等自动化控制系统。
3. SIMATIC S7-400 PLC
S7-400 PLC是用于中、高档性能范围的可编程序控制器。
S7-400 PLC采用模块化无风扇的设计,可靠耐用,同时可以选用多种级别(功能逐步升级)的CPU,并配有多种通用功能的模板,这使用户能根据需要组合成不同的专用系统。当控制系统规模扩大或升级时,只要适当地增加一些模板,便能使系统升级和充分满足需要。
4. 工业通讯网络
通讯网络是自动化系统的支柱,西门子的全集成自动化网络平台提供了从控制级一直到现场级的一致性通讯,“SIMATIC NET”是全部网络系列产品的总称,他们能在工厂的不同部门,在不同的自动化站以及通过不同的级交换数据,有标准的接口并且相互之间完全兼容。
17
5. 人机界面(HMI)硬件
HMI硬件配合PLC使用,为用户提供数据、图形和事件显示,主要有文本操作面板TD200(可显示中文),OP3,OP7,OP17等;图形/文本操作面板OP27,OP37等,触摸屏操作面板TP7,TP27/37,TP170A/B等;SIMATIC面板型PC670等。个人计算机(PC)也可以作为HMI硬件使用。HMI硬件需要经过软件(如ProTool)组态才能配合PLC使用。
6. SIMATIC S7工业软件
西门子的工业软件分为三个不同的种类:
(1)编程和工程工具 编程和工程工具包括所有基于PLC或PC用于编程、组态、模拟和维护等控制所需的工具。STEP 7标准软件包SIMATIC S7是用于S7-300/400,C7 PLC和SIMATIC WinAC基于PC控制产品的组态编程和维护的项目管理工具,STEP 7-Micro/WIN是在Windows平台上运行的S7-200系列PLC的编程、在线仿真软件。
(2)基于PC的控制软件 基于PC的控制系统WinAC允许使用个人计算机作为可编程序控制器(PLC)运行用户的程序,运行在安装了Windows NT4.0操作系统的SIMATIC工控机或其它任何商用机。WinAC提供两种PLC,一种是软件PLC,在用户计算机上作为视窗任务运行。另一种是插槽PLC(在用户计算机上安装一个PC卡),它具有硬件PLC的全部功能。WinAC与SIMATIC S7系列处理器完全兼容,其编程采用统一的SIMATIC编程工具(如STEP 7),编制的程序既可运行在WinAC上,也可运行在S7系列处理器上。
(3)人机界面软件 人机界面软件为用户自动化项目提供人机界面(HMI)或SCADA系统,支持大范围的平台。人机界面软件有两种,一种是应用于机器级的ProTool,另一种是应用于监控级的WinCC。
ProTool适用于大部分HMI硬件的组态,从操作员面板到标准PC都可以用集成在STEP 7中的ProTool有效地完成组态。ProTool/lite用于文本显示的组态,如:OP3,OP7,OP17,TD17等。ProTool/Pro用于组态标准PC和所有西门子HMI产品,ProTool/Pro不只是组态软件,其运行版也用于Windows平台的监控系统。
WinCC是一个真正开放的,面向监控与数据采集的SCADA(Supervisory Control and Data Acquisition)软件,可在任何标准PC上运行。WinCC操作简单,系统可靠性高,与STEP 7功能集成,可直接进入PLC的硬件故障系统,节省项目开发时间。它的设计适合于广泛的应用,可以连接到已存在的自动化环境中,有大量的通信接口和全面的过程信息和数据处理能力,其最新的WinCC5.0支持在办公室通过IE浏览器动态监控生产过程。
二、S7-200系列PLC的硬件配置
本书以S7-200系列PLC为目标机型,介绍西门子PLC的特点,为今后更好地学习和掌握S7-300/400打下基础。S7-200系列PLC作为西门子SIMATIC PLC家族中的最小成员,以其超小体积,灵活的配置,强大的内置功能,在各个领域得到广泛的应用。
(一)S7-200系列PLC的基本硬件组成
18
S7-200系列PLC可提供4种不同的基本单元和6种型号的扩展单元。其系统构成包括基本单元、扩展单元、编程器、存储卡、写入器、文本显示器等。
1.基本单元
S7-200系列PLC中可提供4种不同的基本型号的8种CPU供选择使用,其输入输出点数的分配见表4-11:
表4-11 S7-200系列PLC中CPU22X的基本单元
型 号 S7-200CPU221 S7-200CPU222 S7-200CPU224 S7-200CPU226 S7-200CPU226XM 2.扩展单元
S7-200系列PLC主要有6种扩展单元,它本身没有CPU,只能与基本单元相连接使用,用于扩展I/O点数,S7-200系列PLC扩展单元型号及输入输出点数的分配如表4-12所示。
表4-12 S7-200系列PLC扩展单元型号及输入输出点数
类 型 数字量扩展模块 型 号 EM221 EM222 EM223 EM231 EM232 EM235 输入点 8 无 4/8/16 3 无 3 输出点 无 8 4/8/16 无 2 1 输入点 6 8 14 24 24 输出点 4 6 10 16 16 可带扩展模块数 — 2个扩展模块 78路数字量I/O点或10路模拟量I/O点 7个扩展模块 168路数字量I/O点或35路模拟量I/O点 2个扩展模块 248路数字量I/O点或35路模拟量I/O点 2个扩展模块 248路数字量I/O点或35路模拟量I/O点 模拟量扩展模块 3.编程器
PLC在正式运行时,不需要编程器。编程器主要用来进行用户程序的编制、存储和管理等,并将用户程序送入PLC中,在调试过程中,进行监控和故障检测。S7-200系列PLC可采用多种编程器,一般可分为简易型和智能型。
简易型编程器是袖珍型的,简单实用,价格低廉,是一种很好的现场编程及监测工具,但显示功能较差,只能用指令表方式输入,使用不够方便。智能型编程器采用计算机进行编程操作,将专用的编程软件装入计算机内,可直接采用梯形图语言编程,实现在线监测,非常直观,且功能强大,S7-200系列PLC的专用编程软件为STEP7-Micro/WIN。
4.程序存储卡
为了保证程序及重要参数的安全,一般小型PLC设有外接EEPROM卡盒接口,通过该接口可以将卡盒的内容写入PLC,也可将PLC内的程序及重要参数传到外接EEPROM卡盒
19
内作为备份。程序存储卡EEPROM有6ES 7291-8GC00-0XA0和6ES 7291-8GD00-0XA0两种,程序容量分别为8K和16K程序步。
5.写入器
写入器的功能是实现PLC和EPROM之间的程序传送,是将PLC中RAM区的程序通过写入器固化到程序存储卡中,或将PLC中程序存储卡中的程序通过写入器传送到RAM区。
6.文本显示器
文本显示器TD200不仅是一个用于显示系统信息的显示设备,还可以作为控制单元对某个量的数值进行修改,或直接设置输入/输出量。文本信息的显示用选择/确认的方法,最多可显示80条信息,每条信息最多4个变量的状态。过程参数可在显示器上显示,并可以随时修改。TD200面板上的8个可编程序的功能键,每个都分配了一个存储器位,这些功能键在启动和测试系统时,可以进行参数设置和诊断。
(二)S7-200系列PLC的主要技术性能
下面以S7-200 CPU224为例说明S7系列PLC的主要技术性能。 1.一般性能
S7-200 CPU224的一般性能如表4-13所示。
表4-13 S7-200 CPU224一般性能
电源电压 电源电压波动 环境温度、湿度 大气压 保护等级 输出给传感器的电压 输出给传感器的电流 为扩展模块提供的输出电流 程序存储器 数据存储器 存储器子模块 数据后备 编程语言 程序结构 程序执行 子程序级 用户程序保护 指令集 位操作执行时间 扫描时间监控
DC 24V,AC 100~230V DC 20.4-28.8V,AC 84-264V(47-63Hz) 水平安装0~550C,垂直安装0~450C,5~95% 860~1080hPa IP20到IEC529 DC 24V (20.4-28.8V) 280mA,电子式短路保护(600mA) 660mA 8K字节/典型值为2.6K条指令 2.5K字 1个可插入的存储器子模块 整个BD1在EEPROM中无需维护 在RAM中当前的DB1标志位、定时器、计数器等通过高能电容或电池维持,后备时间190h(400C时120h),插入电池后备200天 LAD,FBD,STL 一个主程序块(可以包括子程序) 自由循环。中断控制,定时控制(1~255ms) 8级 3级口令保护 逻辑运算、应用功能 0.37μs 300ms(可重启动) 20
内部标志位 计数器 定时器 接口 可连接的编程器/PC 本机I/O 可连接的I/O 最多可接扩展模块 2.输入特性
256,可保持:EEPROM中0~112 0~256,可保持:256,6个高速计数器 可保持:256, 4个定时器,1ms~30s 16个定时器,10ms~5min 236个定时器,100ms~54min 一个RS485通信接口 PG740PII,PG760PII,PC(AT) 数字量输入:14,其中4个可用作硬件中断,14个用于高速功能 数字量输出:10,其中2个可用作本机功能, 模拟电位器:2个 数字量输入/输出:最多94/74 模拟量输入/输出:最多28/7(或14) AS接口输入/输出:496 7个 S7-200 CPU224的输入特性如表4-14所示。
表4-14 S7-200 CPU224输入特性
类型 输入电压 隔离 输入电流 输入延迟(额定输入电压) 3.输出特性
S7-200 CPU224输出特性如表4-15所示。
表4-15 S7-200 CPU224的输出特性
类型 额定负载电压 输出电压 隔离 最大输出电流 最小输出电流 输出开关容量 晶体管输出型 DC 24V(20.4-28.8V) “1信号”:最小DC 20V 光耦隔离,5点 “1信号”:0.75A “0信号”:10μsA 阻性负载:0.75A 灯负载:5W 继电器输出型 DC 24V(4-30V) AC24-230V(20-250V) L+/L- 继电器隔离,3点和4点 “1信号”:2A “0信号”:0mA 阻性负载:2A 灯负载:DC30W,AC200W 源型或汇型 DC 24V,“1信号”:14-35A,“0信号”:0-5A, 光耦隔离,6点和8点 “1信号”:最大4mA 所有标准输入:全部0.2-12.8ms(可调节) 中断输入:(I0.0-0.3)0.2-12.8ms(可调节) 高速计数器:(I0.0-0.5)最大30kHz 4.扩展单元的主要技术特性
S7-200系列PLC是模块式结构,可以通过配接各种扩展模块来达到扩展功能、扩大控制能力的目的。目前S7-200主要有三大类扩展模块。
(1)输入/输出扩展模块 S7-200 CPU上已经集成了一定数量的数字量I/O点,但如用
21
户需要多于CPU单元I/O点时,必须对系统做必要的扩展。CPU221无I/O扩展能力,CPU 222最多可连接2个扩展模块(数字量或模拟量),而CPU224和CPU226最多可连接7个扩展模块。
S7-200 PLC系列目前总共提供共5大类扩展模块:数字量输入扩展板EM221(8路扩展输入);数字量输出扩展板EM222(8路扩展输出);数字量输入和输出混合扩展板EM223(8I/O,16I/O,32I/O);模拟量输入扩展板EM231,每个EM231可扩展3路模拟量输入通道,A/D转换时间为25μs,12位;模拟量输入和输出混合扩展模板EM235,每个EM235可同时扩展3路模拟输入和1路模拟量输出通道,其中A/D转换时间为25μs,D/A转换时间]100μs,位数均为12位。
基本单元通过其右侧的扩展接口用总线连接器(插件)与扩展单元左侧的扩展接口相连接。扩展单元正常工作需要+5VDC工作电源,此电源由基本单元通过总线连接器提供,扩展单元的24VDC输入点和输出点电源,可由基本单元的24VDC电源供电,但要注意基本单元所提供的最大电流能力。
(2)热电偶/热电阻扩展模块 热电偶、热电阻模块(EM231)是为CPU222,CPU224,CPU226设计的,S7-200与多种热电偶、热电阻的连接备有隔离接口。用户通过模块上的DIP开关来选择热电偶或热电阻的类型,接线方式,测量单位和开路故障的方向。
(3)通讯扩展模块 除了CPU集成通讯口外,S7-200还可以通过通讯扩展模块连接成更大的网络。S7-200系列目前有两种通讯扩展模块:PROFIBUS-DP扩展从站模块(EM277)和AS-i接口扩展模块(CP243-2)。
S7-200系列PLC输入/输出扩展模块的主要技术性能如表4-16所示。
表4-16 S7-200系列PLC输入/输出扩展模块的主要技术性能
数字量扩展模块 EM221 EM222 EM223 8 4/8/16 无 8 4/8/16 无 8 2 4 DC24V DC24V DC24V或DC24V或 输出电压 AC24-230V AC24-230V A/D转换时间 分辨率
三、S7-200系列 PLC的编程元件 (一)S7-200系列 PLC的存储器空间
S7-200 PLC的存储器空间大致分为三个空间,即程序空间、数据空间和参数空间。
22
类型 型号 输入点 输出点 隔离组点数 输入电压 模拟量扩展模块 EM231 EM232 EM235 3 3 无 2 1 无 无 无 无 <250μs 12bit A/D转换 电压:12bit 电流:11bit <250μs 12bit A/D转换 1.程序空间
该空间主要用于存放用户应用程序,程序空间容量在不同的CPU中是不同的。另外CPU中的RAM区与内置EEPROM上都有程序存储器,但它们互为映像,且空间大小一样。
2.数据空间
该空间的主要部分用于存放工作数据称为数据存储器,另外有一部分作寄存器使用称为数据对象。
(1)数据存储器 它包括变量存储器(V),输入信号缓存区(输入映象存储器I),输出信号缓冲区(输出映象存储区Q),内部标志位存储器(M)又称内部辅助继电器,特殊标志位存储器(SM)。除特殊标志位外,其他部分都能以位、字节、和双字的格式自由读取或写入。
变量存储器(V)是保存程序执行过程中控制逻辑操作的中间结果,所有的V存储器都可以存储在永久存储器区内,其内容可在与EEPROM或编程设备双向传送。
输入映象存储器(I)是以字节为单位的寄存器,它的每一位对应于一个数字量输入结点。在每个扫描周期开始,PLC依次对各个输入结点采样,并把采样结果送入输入映象存储器。PLC在执行用户程序过程中,不再理会输入结点的状态,它所处理的数据为输入映象存储器中的值。
输出映象存储器(Q)是以字节为单位的寄存器,它的每一位对应于一个数字输出量结点。PLC在执行用户程序的过程中,并不把输出信号随时送到输出结点,而是送到输出映象存储器,只有到了每个扫描周期的末尾,才将输出映象寄存器的输出信号几乎同时送到各输出结点。使用映象寄存器优点:①同步地在扫描周期开始采样所有输入点,并在扫描的执行阶段冻结所有输入值;②在程序执行完后再从映象寄存器刷新所有输出点,使被控系统能获得更好稳定性;⑧存取映象寄存器的速度高于存取I/O速度,使程序执行的更快;④I/O点只能以位为单位存取,但映象寄存器则能以位、字节、双字进行存取。因此,映象寄存器提供了更高的灵活性。另外对控制系统中个别I/O点要求实时性较高的情况下,可用直接I/O指令直接存取输入/输出点。
内部标志位(M)又称内部线圈(内部继电器等),它一般以位为单位使用,但也能以字、双字为单位使用。内部标志位容量根据CPU型号不同而不同。
特殊标志位(SM)用来存储系统的状态变量和有关控制信息,特殊标志位分为只读区和可写区,具体划分随CPU不同而不同。
(2)数据对象 数据对象包括定时器、计数器、高速计数器、累加器、模拟量输入/输出。
定时器类似于继电器电路中的时间继电器,但它的精度更高,定时精度分为lms,10ms和100ms三种,根据精度需要由编程者选用。定时器的数量根据CPU型号不同。
计数器的计数脉冲由外部输入,计数脉冲的有效沿是输入脉冲的上升沿或下降沿,计数
23
的方式有累加1和累减1两种方式。计数器的个数同各CPU的定时器个数。
高速计数器与一般计数器不同之处在于,计数脉冲频率更高可达2kHz/7kHz,计数容量大,一般计数器为16位,而高速计数器为32位,一般计数器可读可写,而高速计数器一般只能作读操作。
在S7-200CPU中有4个32位累加器,即AC0~AC3,用它可把参数传给子程序或任何带参数的指令和指令块。此外,PLC在响应外部或内部的中断请求而调用中断服务程序时,累加器中的数据是不会丢失的,即PLC会将其中的内容压入堆栈。因此,用户在中断服务程序中仍可使用这些累加器,待中断程序执行完返回时,将自动从堆栈中弹出原先的内容,以恢复中断前累加器的内容。但应注意,不能利用累加器作主程序和中断服务子程序之间的参数传递。
模拟量输入/输出可实现模拟量的A/D和D/A转换,而PLC所处理的是其中的数字量。 3.参数空间
用于存放有关PLC组态参数的区域,如保护口令、PLC站地址、停电记忆保持区、软件滤波、强制操作的设定信息等,存贮器为EEPROM。
(二)S7-200系列 PLC的数据存储器寻址
在S7-200PLC中所处理数据有三种,即常数、数据存贮器中的数据和数据对象中的数据。 1.常数及类型
在S7-200的指令中可以使用字节、字、双字类型的常数,常数的类型可指定为十进制、 十六进制(6#7AB4)、二进制(2#10001100)或ASCII字符(‘SIMATIC’)。PLC不支持数据类型的处理和检查,因此在有些指令隐含规定字符类型的条件下,必须注意输入数据的格式。
2.数据存贮器的寻址
(1)数据地址的一般格式 数据地址一般由二个部分组成,格式为:Aal.a2。其中:A区域代码(I,Q,M,SM,V),al字节首址,a2位地址(0~7)。例如I10.1表示该数据在I存储区10号地址的第1位。
(2)数据类型符的使用 在使用以字节、字或双字类型的数据时,除非所用指令已隐含有规定的类型外,一般都应使用数据类型符来指明所取数据的类型。数据类型符共有三个,即B(字节),W(字)和D(双字),它的位置应紧跟在数据区域地址符后面。例如对变量存贮器有VBl00、VW100、VDl00。同一个地址,在使用不同的数据类型后,所取出数据占用的内存量是不同的。
3.数据对象的寻址
数据对象的地址基本格式为:An,其中A为该数据对象所在的区域地址。A共有6种:T(定时器),C(计数器),HC(高速计数器),AC(累加器),AIW(模拟量输入),AQW(模拟量输出)。
24
S7-200 CPU存储器范围和特性如表4-17所示。
表4-17 S7-200 CPU存储器范围和特性表
第四节 S7-200系列PLC指令系统
本节主要讲解S7-200的常用指令及使用方法。
25
一、基本指令
S7-200系列的基本逻辑指令与FX系列和CPM1A系列基本逻辑指令大体相似,编程和梯形图表达方式也相差不多,这里列表表示S7-200系列的基本逻辑指令(见表4-18)。
表4-18 S7-200系列的基本逻辑指令
指令名称 取 取反 与 与非 或 或非 电路块与 电路块或 输出 置位 复位 指令符 LD bit LDN bit A bit AN bit O bit ON bit ALD OLD = bit S bit,N R bit,N 功能 读入逻辑行或电路块的第一个常开接点 读入逻辑行或电路块的第一个常闭接点 串联一个常开接点 串联一个常闭接点 并联一个常开接点 并联一个常闭接点 串联一个电路块 无 并联一个电路块 输出逻辑行的运算结果 置继电器状态为接通 使继电器复位为断开 Bit:Q,M,SM,T,C,V,S Bit: Q,M,SM,V,S Bit: I,Q,M,SM,T,C,V,S 操作数 1.基本逻辑指令的应用
基本逻辑指令的应用如图4-20所示。
图4-20 基本逻辑指令的应用
2.电路块并联的编程
电路块并联的编程如图4-21所示。
26
图4-21 电路块串联的编程
3.电路块串/并联的编程
电路块串/并联的编程如图4-22所示。
图4-22 电路块并联的编程
4.置位/复位指令S/R的编程
置位/复位指令S/R的编程如图4-23所示。IO.O的上升沿令QO.O接通并保持,即使IO.O断开也不再影响QO.O的状态。IO.1的上升沿状态使其断开并保持断开状态。
图4-23 置位/复位指令S/R的编程
对同一元件可以多次合用S/R指令。实际上图4-23所示的例子组成一个S-R触发器,当然也可把次序反过来组成R-S触发器。但要注意,由于是扫描工作方式,故写在后面的指令有优先权。如此例中,若IO.O和IO.I同时为1,则QO.O为O。RR指令写在后因而有优先权。
5.定时器指令的应用
S7-200系列PLC按时基脉冲分为1ms、10ms、100ms三种,按工作方式分为延时通定时器(TON)和保持型延时通定时器(TONR)两大类。
等比例定时器均有一个16bit当前值寄存器及一个1bit的状态位(反映其触点状态)。其应用如图4-24所示,当I0.接通时,即驱动T33开始计数(数时基脉冲);计时到设定值PT时,T33状态位置1,其常开触点接通,驱动Q0.0有输出;之后当前值仍增加,但不影响状态位。当I0.0断开时,T33复位,当前值清0,状态位也清0,即回复原始状态。若I0.0接通时间未到设定值就断开,则T33跟随复位,Q0.0不会有输出。
图4-24 等比例定时器的应用
当前值寄存器为16bit,最大计数值为32767,由此可推算不同分辨率的定时器的设定时间范围。
对于积算型定时器T3,则当输入IN为1时,定时器计时(基脉冲数);当IN为0时,其当前值保持(不像TON一样复位);下次IN再为1时,T3当前值从原保持值开始再往上
27
加,并将当前值与设定值PT作比较,当前值大于等于设定值时,T3状态bit置1,驱动Q0.0有输出;以后即使IN再为0也不会使T3复位,要令T3复位必须用复位指令。其程序及时序图如图4-25所示。
图4-25 积算型定时器的应用
注意:S7-200系列PLC的定时器中1ms、10ms、100ms的定时器的刷新方式是不同的。 (1)1ms定时器 由系统每隔1ms刷新一次,与扫描周期及程序处理无关。所以当扫描周期较长时,在一个周期内可能被多次刷新,其当前值在一个扫描周期内不一定保持一致。
(2)10ms定时器 由系统在每个扫描周期开始时自动刷新。由于是每个扫描周期只刷新一次,就在每次程序处理期间,其当前值为常数。
(3)100ms定时器 在该定时器指令执行时被刷新。因而要留意,如果该定时器线圈被激励而该定时器指令并不是每个扫描周期都执行的话,那么该定时器不能及时刷新,丢失时基脉冲,造成计时失准。若同一个100ms定时器指令在一个扫描周期中多次被执行,则该定时器就会数多了时基脉冲,相当于时钟走快了。
6.计数器指令的应用
S7-200系列PLC有两种计数器:加计数器(CTU)和加/减计数器(CTUD)。 每个计数器有一个16位的当前值寄存器及一个状态位。CU为加计数脉冲输入端,CD为减计数脉冲输入端,R为复位端 ,PV为设定值。当R端为0时,计数脉冲有效;当CU端(CD端)有上升沿输入时,计数器当前值加1(减1)。当计数器当前值大于或等于设定值时,状态位也清零。计数范围为-32768-32767,当达到最大值32767时,再来一个加计数脉冲,则当前值转为-32768。同样,当达到最小值-32768时,再来一个减计数脉冲,则当前值转为最大值32767。其应用如图4-26所示。
图4-26 计数器指令的应用
7.脉冲产生指令EU/ED的应用
EU指令在EU指令前的逻辑运算结果由OFF到ON时就产生一个宽度为一个扫描周期的脉冲,驱动其后面的输出线圈。其应用见图4-27,即为当IO.O有上升沿时,EU指令产生一个宽度为一个扫描周期的脉冲,驱动其后的输出线圈MO.O。
28
图4-27 EU指令的应用
而ED指令则在对应输入(IO.1)有下降沿时产生一宽度为一个扫描周期的脉冲,驱动其后的输出线圈(MO.1)。
8.逻辑堆栈的操作
LPS为进栈操作,LRD为读栈操作,LPP为出栈操作。
S7-200系列PLC中有一个9层堆栈,用于处理逻辑运算结果,称为逻辑堆栈。执行LPS、LPD、LPP指令时对逻辑堆栈的影响如图4-28所示。图中仅用了2层栈,实际上因为逻辑堆栈有9层,所以可以多次使用LPS,形成多层分支,使用时应注意LPS和LPP必须成队使用。
图4-28 执行LPS、LPD、LPP指令时对逻辑堆栈的影响
9.NOT、NOP和MEND指令
NOT、NOP及MEND指令的形式及功能如表4-19所示。
表4-19 NOT、NOP及MEND指令的形式及功能
STL NOT NOP MEND 功能 逻辑结果取反 空操作 无条件结束 操作数 — — — NOT为逻辑结果取反指令,在复杂逻辑结果取反时为用户提供方便。NOP为空操作,对程序没有实质影响。MEND为无条件结束指令,在编程结束时一定要写上该指令,否则会出现编译错误。调试程序时,在程序的适当位置插入MEND指令可以实现程序的分段调试。
10.比较指令
比较指令是将两个操作数按规定的条件作比较,条件成立时,触点就闭合。比较运算符有:=、>=、<=、>、<和<>。
(1)字节比较 字节比较用于比较两个字节型整数值INl和IN2的大小,字节比较是无符号的。比较式可以是LDB、AB或OB后直接加比较运算符构成。如:LDB=、AB<>、OB>=等。
整数INl和IN2的寻址范围:VB、IB、QB、MB、SB、SMB、LB、*VD、*AC、*LD和常数。
指令格式例如: LDB= VBl0,VBl2
(2)整数比较 整数比较用于比较两个一字长整数值INl和IN2的大小,整数比较是有符号的(整数范围为16#8000和16#7FFF之间)。比较式可以是LDW、AW或OW后直接加
29
比较运算符构成。如:LDW=、AW<>。OW>=等。
整数INl和IN2的寻址范围:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数。
指令格式例如: LDW= VWl0,VWl2
(3)双字整数比较 双字整数比较用于比较两个双字长整数值INl和IN2的大小,双字整数比较是有符号的(双字整数范围为16#80000000和16#7FFFFFFF之间)。比较式可以是LDD、AD或OD后直接加比较运算符构成。如:LDD=、AD<>、OD>=等。
双字整数INl和IN2的寻址范围:VD、ID、QD、MD、SD、SMD、LD、HC、AC、*VD、*AC、*LD和常数。
指令格式例如: LDD= VDl0,VDl2
(4)实数比较 实数比较用于比较两个双字长实数值INl和IN2的大小,实数比较是有符号的(负实数范围为-1.175495E-38和-3.402823E+38,正实数范围为+1.175495E-38和+3.402823E+38)。比较式可以是LDR、AR或OR后直接加比较运算符构成。如:LDR=、AR<>、OR>=等。
实数INl和IN2的寻址范围:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*AC、*LD和常数。
指令格式例如: LDR= VDl0,VDl2 二、功能指令
一般的逻辑控制系统用软继电器、定时器和计数器及基本指令就可以实现。利用功能指令可以开发出更复杂的控制系统,以致构成网络控制系统。这些功能指令实际上是厂商为满足各种客户的特殊需要而开发的通用子程序。功能指令的丰富程度及其合用的方便程度是衡量PLC性能的一个重要指标。
S7-200的功能指令很丰富,大致包括这几方面:算术与逻辑运算、传送、移位与循环移位、程序流控制、数据表处理、PID指令、数据格式变换、高速处理、通信以及实时时钟等。
功能指令的助记符与汇编语言相似,略具计算机知识的人学习起来也不会有太大困难。但S7-200系列PLC功能指令毕竟太多,一般读者不必准确记忆其详尽用法,需要时可可查阅产品手册。本节仅对S7-200系列PLC的功能指令作列表归纳,不再一一说明。
1.四则运算指令
四则运算指令如表4-20所示。
表4-20 四则运算指令
名称 指令格式 (语句表) 功能 操作数寻址范围 30
+I IN1,OUT 加法指令 +D IN1,IN2 两个16位带符号整数相加,得到一个IN1,IN2,OUT:VW,IW,QW,16位带符号整数。 MW,SW,SMW,LW, T,C,AC,执行结果:IN1+OUT=OUT(在LAD和*VD,*AC,*LD FBD中为:IN1+IN2=OUT) IN1和IN2还可以是AIW和常数 两个32位带符号整数相加,得到一个IN1,IN2,OUT:VD,ID,QD,MD,32位带符号整数。 SD,SMD,LD,AC,*VD,*AC,执行结果:IN1+OUT=OUT(在LAD和*LD FBD中为:IN1+IN2=OUT) IN1和IN2还可以是HC和常数 两个32位实数相加,得到一个32位IN1,IN2,OUT:VD,ID,QD,MD,实数。 SD,SMD,LD,AC,*VD,*AC,执行结果:IN1+OUT=OUT(在LAD和*LD FBD中为:IN1+IN2=OUT) IN1和IN2还可以常数 两个16位带符号整数相减,得到一个IN1,IN2,OUT:VW,IW,QW,16位带符号整数。 MW,SW,SMW,LW, T,C,AC,执行结果:OUT-IN1=OUT(在LAD和*VD,*AC,*LD FBD中为:IN1-IN2=OUT) IN1和IN2还可以是AIW和常数 两个32位带符号整数相减,得到一个IN1,IN2,OUT:VD,ID,QD,MD,32位带符号整数。 SD,SMD,LD,AC,*VD,*AC,执行结果:OUT-IN1=OUT(在LAD和*LD FBD中为:IN1-IN2=OUT) IN1和IN2还可以是HC和常数 +R IN1,OUT -I IN1,OUT 减法指令 -D IN1,OUT 两个32位实数相加,得到一个32位IN1,IN2,OUT:VD,ID,QD,MD,实数。 SD,SMD,LD,AC,*VD,*AC,-R IN1,OUT 执行结果:OUT-IN1=OUT(在LAD和*LD IN1和IN2还可以常数 FBD中为:IN1-IN2=OUT) 两个16位符号整数相乘,得到一个IN1,IN2,OUT:VW,IW,QW,16整数。 MW,SW,SMW,LW, T,C,AC,*I IN1,OUT 执行结果:IN1*OUT=OUT(在LAD和*VD,*AC,*LD FBD中为:IN1*IN2=OUT) IN1和IN2还可以是AIW和常数 两个16位带符号整数相乘,得到一个IN1,IN2:VW,IW,QW,MW,SW,32位带符号整数。 SMW,LW,AIW,T,C,AC,*VD,MUL IN1,OUT 执行结果:IN1*OUT=OUT(在LAD和*AC,*LD和常数 FBD中为:IN1*IN2=OUT) OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD 乘法指令 两个32位带符号整数相乘,得到一个IN1,IN2,OUT:VD,ID,QD,MD,32位带符号整数。 SD,SMD,LD,AC,*VD,*AC,*D IN1,OUT 执行结果:IN1*OUT=OUT(在LAD和*LD IN1和IN2还可以是HC和常数 FBD中为:IN1*IN2=OUT) *R IN1,OUT 两个32位实数相乘,得到一个32位IN1,IN2,OUT:VD,ID,QD,MD,实数。 SD,SMD,LD,AC,*VD,*AC,执行结果:IN1*OUT=OUT(在LAD和*LD IN1和IN2还可以是常数 FBD中为:IN1*IN2=OUT) 两个16位带符号整数相除,得到一个IN1,IN2,OUT:VW,IW,QW,16位带符号整数商,不保留余数。 MW,SW,SMW,LW, T,C,AC,/I IN1,OUT 执行结果:OUT/IN1=OUT(在LAD和*VD,*AC,*LD FBD中为:IN1/IN2=OUT) IN1和IN2还可以是AIW和常数 除法指令 两个16位带符号整数相除,得到一个IN1,IN2:VW,IW,QW,MW,SW,32位结果,其中低16位为商,高16SMW,LW,AIW,T,C,AC,*VD,DIV IN1,OUT 位为结果。 *AC,*LD和常数 执行结果:OUT/IN1=OUT(在LAD和OUT:VD,ID,QD,MD,SD,SMD,FBD中为:IN1/IN2=OUT) LD,AC,*VD,*AC,*LD
31
/D IN1,OUT 两个32位带符号整数相除,得到一个IN1,IN2,OUT:VD,ID,QD,MD,32位整数商,不保留余数。 SD,SMD,LD,AC,*VD,*AC,执行结果:OUT/IN1=OUT(在LAD和*LD IN1和IN2还可以是HC和常数 FBD中为:IN1/IN2=OUT) 两个32位实数相除,得到一个32位IN1,IN2,OUT:VD,ID,QD,MD,实数商。 SD,SMD,LD,AC,*VD,*AC,执行结果:OUT/IN1=OUT(在LAD和*LD IN1和IN2还可以是常数 FBD中为:IN1/IN2=OUT) 把一个32位实数(IN)开平方,得到IN,OUT:VD,ID,QD,MD,SD,32位实数结果(OUT) SMD,LD,AC,*VD,*AC,*LD IN还可以是常数 对一个32位实数(IN)取自然对数,得到32位实数结果(OUT) 对一个32位实数(IN)取以e为底数的指数,得到32位实数结果(OUT) 分别对一个32位实数弧度值(IN)取正弦、余弦、正切,得到32位实数结果(OUT) 将字节无符号输入数加1 IN,OUT:VB,IB,QB,MB,SB,执行结果:OUT+1=OUT(在LAD和SMB,LB,AC,*VD,*AC,*LD FBD中为:IN+1=OUT) IN还可以是常数 将字节无符号输入数减1 执行结果:OUT-1=OUT(在LAD和FBD中为:IN-1=OUT) 将字(16位)有符号输入数加1 IN,OUT:VW,IW,QW,MW,SW,执行结果:OUT+1=OUT(在LAD和SMW,LW,T,C,AC,*VD,*AC,*LD FBD中为:IN+1=OUT) IN还可以是AIW和常数 将字(16位)有符号输入数减1 执行结果:OUT-1=OUT(在LAD和FBD中为:IN-1=OUT) 将双字(32位)有符号输入数加1 IN,OUT:VD,ID,QD,MD,SD,执行结果:OUT+1=OUT(在LAD和SMD,LD,AC,*VD,*AC,*LD FBD中为:IN+1=OUT) IN还可以是HC和常数 将字(32位)有符号输入数减1 执行结果:OUT-1=OUT(在LAD和FBD中为:IN-1=OUT) /R IN1,OUT SQRT IN,OUT LN IN,OUT 数学函数指EXP IN,OUT 令 SIN IN,OUT COS IN,OUT TAN IN,OUT INCB OUT DECB OUT INCW OUT 增减指令 DECW OUT INCD OUT DECD OUT
2.逻辑运算指令
逻辑运算指令如表4-21所示。
表4-21 逻辑运算指令
名称 指令格式 (语句表) 功能 操作数 将字节IN1和OUT按位作逻辑与运IN1,IN2,OUT:VB,IB,QB,ANDB IN1,OUT 算,OUT输出结果 MB,SB,SMB,LB,AC,*VD,字节逻辑运将字节IN1和OUT按位作逻辑或运*AC,*LD ORB IN1,OUT IN1和IN2还可以是常数 算指令 算,OUT输出结果 XORB IN1,OUT 将字节IN1和OUT按位作逻辑异或运算,OUT输出结果 32
INVB OUT ANDW IN1,OUT ORW IN1,OUT XORW IN1,OUT INVW OUT ANDD IN1,OUT 将字节OUT按位取反,OUT输出结果 将字IN1和OUT按位作逻辑与运算,IN1,IN2,OUT:VW,IW,QW,OUT输出结果 MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD 将字IN1和OUT按位作逻辑或运算,IN1和IN2还可以是AIW和常数 OUT输出结果 将字IN1和OUT按位作逻辑异或运算,OUT输出结果 将字OUT按位取反,OUT输出结果 字逻辑运算指令 将双字IN1和OUT按位作逻辑与运IN1,IN2,OUT:VD,ID,QD,算,OUT输出结果 MD,SD,SMD,LD,AC,*VD,将双字IN1和OUT按位作逻辑或运*AC,*LD ORD IN1,OUT IN1和IN2还可以是HC和常数 算,OUT输出结果 双字逻辑运将双字IN1和OUT按位作逻辑异或运算指令 XORD IN1,OUT 算,OUT输出结果 INVD OUT 将双字OUT按位取反,OUT输出结果 3.数据传送指令
数据传送指令如表4-22所示。
表4-22 数据传送指令
名称 指令格式 (语句表) MOVB IN,OUT 功能 操作数 IN,OUT:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD IN还可以是常数 IN,OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD IN还可以是AIW和常数 OUT还可以是AQW MOVW IN,OUT 单一传送指MOVD IN,OUT 令 MOVR IN,OUT 将IN的内容拷贝到OUT中 IN和OUT的数据类型应相同,可分别为字,字节,双字,实数 IN,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN还可以是HC,常数,&VB,&IB,&QB,&MB,&T,&C IN,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD IN还可以是常数 IN:IB 立即读取输入IN的值,将结果输出OUT:VB,IB,QB,MB,SB,SMB,LB,到OUT AC,*VD,*AC,*LD IN:VB,IB,QB,MB,SB,SMB,LB,立即将IN单元的值写到OUT所指的AC,*VD,*AC,*LD和常数 物理输出区 OUT:QB 将从IN开始的连续N个字节数据拷IN,OUT:VB,IB,QB,MB,SB,SMB,贝到从OUT开始的数据块 LB,*VD,*AC,*LD N的有效范围是1~255 N:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD和常数 33
BIR IN,OUT BIW IN,OUT 块传送指令 BMB IN,OUT,N
BMW IN,OUT,N BMD IN,OUT,N IN,OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,*VD,*AC,*LD 将从IN开始的连续N个字数据拷贝IN还可以是AIW 到从OUT开始的数据块 OUT还可以是AQW N的有效范围是1~255 N:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD和常数 将从IN开始的连续N个双字数据拷IN,OUT:VD,ID,QD,MD,SD,SMD,贝到从OUT开始的数据块 LD, *VD,*AC,*LD N的有效范围是1~255 N:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD和常数
4.移位与循环移位指令
移位与循环移位指令如表4-23所示。
表4-23 移位与循环移位指令
名称 指令格式 (语句表) SRB OUT,N SLB OUT,N RRB OUT,N RLB OUT,N SRW OUT,N 功能 操作数 字节移位指令 将字节OUT右移N位,最左边的位依IN,OUT,N:VB,IB,QB,MB,SB,次用0填充 SMB,LB,AC,*VD,*AC,*LD 将字节OUT左移N位,最右边的位依IN和N还可以是常数 次用0填充 将字节OUT循环右移N位,从最右边移出的位送到OUT的最左位 将字节OUT循环左移N位,从最左边移出的位送到OUT的最右位 将字OUT右移N位,最左边的位依次IN,OUT:VW,IW,QW,MW,SW,SMW,用0填充 LW,T,C,AC,*VD,*AC,*LD 将字OUT左移N位,最右边的位依次IN还可以是AIW和常数 SLW OUT,N N:VB,IB,QB,MB,SB,SMB,LB,用0填充 字移位指令 将字OUT循环右移N位,从最右边移AC,*VD,*AC,*LD,常数 RRW OUT,N 出的位送到OUT的最左位 将字OUT循环左移N位,从最左边移RLW OUT,N 出的位送到OUT的最右位 将双字OUT右移N位,最左边的位依IN,OUT:VD,ID,QD,MD,SD,SMD,SRD OUT,N 次用0填充 LD,AC,*VD,*AC,*LD 将双字OUT左移N位,最右边的位依IN还可以是HC和常数 SLD OUT,N N:VB,IB,QB,MB,SB,SMB,LB,次用0填充 双字移位指令 将双字OUT循环右移N位,从最右边AC,*VD,*AC,*LD,常数 RRD OUT,N 移出的位送到OUT的最左位 将双字OUT循环左移N位,从最左边RLD OUT,N 移出的位送到OUT的最右位 将DATA的值(位型)移入移位寄存DATA,S_BIT:I,Q,M,SM,T,C,位移位寄存SHRB DATA,S_BIT,器;S_BIT指定移位寄存器的最低位,V,S,L 器指令 N N指定移位寄存器的长度(正向移位N:VB,IB,QB,MB,SB,SMB,LB,=N,反向移位=-N) AC,*VD,*AC,*LD,常数
5.交换和填充指令
交换和填充指令如表4-24所示。
34
表4-24 交换和填充指令
名称 指令格式 (语句表) 功能 操作数 换字节指令 SWAP IN 将输入字IN的高位字节与低位字节IN:VW,IW,QW,MW,SW,SMW,LW,的内容交换,结果放回IN中 T,C,AC,*VD,*AC,*LD IN,OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD 用输入字IN填充从OUT开始的N个IN还可以是AIW和常数 填充指令 FILL IN,OUT,N 字存储单元 OUT还可以是AQW N的范围为1~255 N:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD,常数
6.表操作指令
表操作指令如表4-25所示。
表4-25 表操作指令
名称 指令格式 (语句表) 功能 操作数 DATA,TABLE:VW,IW,QW,MW,SW,将一个字型数据DATA添加到表表存数指令 ATT DATA,TABLE SMW,LW,T,C,AC,*VD,*AC,*LD TABLE的末尾。EC值加1 DATA还可以是AIW,AC和常数 将表TABLE的第一个字型数据删除,DATA,TABLE:VW,IW,QW,MW,SW,并将它送到DATA指定的单元。表中SMW,LW,T,C, *VD,*AC,*LD FIFO TABLE,DATA 其余的数据项都向前移动一个位DATA还可以是AQW和AC 置,同时实际填表数EC值减1 表取数指令 将表TABLE的最后一个字型数据删除,并将它送到DATA指定的单元。LIFO TABLE,DATA 剩余数据位置保持不变,同时实际填表数EC值减1 搜索表TBL,从INDEX指定的数据项TBL:VW,IW,QW,MW,SMW,LW,T,FND= TBL,PTN,开始,用给定值PTN检索出符合条C, *VD,*AC,*LD INDEX 件(=,<>,<,>)的数据项 PTN,INDEX:VW,IW,QW,MW,SW,FND<> TBL,PTN,如果找到一个符合条件的数据项,SMW,LW,T,C,AC, *VD,*AC,*LD INDEX 表查找指令 则INDEX指明该数据项在表中的位PTN还可以是AIW和AC FND< TBL,PTN,置。如果一个也找不到,则INDEXINDEX 的值等于数据表的长度。为了搜索FND> TBL,PTN,下一个符合的值,在再次使用该指INDEX 令之前,必须先将INDEX加1
7.数据转换指令
数据转换指令如表4-26所示。
表4-26 数据转换指令
名称 指令格式 (语句表) 功能 操作数 35
BTI IN,OUT ITB IN,OUT DTI IN,OUT 数据类型转换指令 ITD IN,OUT ROUND IN,OUT TRUNC IN,OUT DTR IN,OUT BCDI OUT IBCD OUT ENCO IN,OUT 编码译码指令 DECO IN,OUT IN:VB,IB,QB,MB,SB,SMB,LB,将字节输入数据IN转换成整数类AC,*VD,*AC,*LD,常数 型,结果送到OUT,无符号扩展 OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD IN:VW,IW,QW,MW,SW,SMW,LW,将整数输入数据IN转换成一个字T,C,AIW,AC,*VD,*AC,*LD,常节,结果送到OUT。输入数据超出字数 节范围(0~255)则产生溢出 OUT:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD IN:VD,ID,QD,MD,SD,SMD,LD,将双整数输入数据IN转换成整数,HC,AC,*VD,*AC,*LD,常数 结果送到OUT。 OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD IN:VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,AC,*VD,*AC,*LD,常将整数输入数据IN转换成双整数数 (符号进行扩展),结果送到OUT OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD 将实数输入数据IN转换成双整数,IN,OUT:VD,ID,QD,MD,SD,SMD,小数部分四舍五入,结果送到OUT LD,AC,*VD,*AC,*LD 将实数输入数据IN转换成双整数,IN还可以是常数 小数部分直接舍去,结果送到OUT 在ROUND指令中IN还可以是HC IN,OUT:VD,ID,QD,MD,SD,SMD,将双整数输入数据IN转换成实数,LD,AC,*VD,*AC,*LD 结果送到OUT IN还可以是HC和常数 将BCD码输入数据IN转换成整数,IN,OUT:VW,IW,QW,MW,SW,SMW,结果送到OUT。IN的范围为0~9999 LW,T,C,AC,*VD,*AC,*LD 将整数输入数据IN转换成BCD码,IN还可以是AIW和常数 结果送到OUT。IN的范围为0~9999 AC和常数 IN:VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,AC,*VD,*AC,*LD,常将字节输入数据IN的最低有效位数 (值为1的位)的位号输出到OUTOUT:VB,IB,QB,MB,SB,SMB,LB,指定的字节单元的低4位 AC,*VD,*AC,*LD IN:VB,IB,QB,MB,SB,SMB,LB,根据字节输入数据IN的低4位所表AC,*VD,*AC,*LD,常数 示的位号将OUT所指定的字单元的IN:VW,IW,QW,MW,SW,SMW,LW,相应位置1,其它位置0 T,C,AQW,AC,*VD,*AC,*LD IN,OUT:VB,IB,QB,MB,SB,SMB,根据字节输入数据IN的低4位有效LB,AC,*VD,*AC,*LD 数字产生相应的七段码,结果输出到IN还可以是常数 OUT,OUT的最高位恒为0 段码指令 SEG IN,OUT 把从IN开始的长度为LEN的ASCⅡIN,OUT,LEN:VB,IB,QB,MB,SB,码字符串转换成16进制数,并存放SMB,LB,*VD,*AC,*LD 字符串转换在以OUT为首地址的存储区中。合法LEN还可以是AC和常数 ATH IN,OUT,LEN 指令 的ASCⅡ码字符的16进制值在30H~39H,41H~46H之间,字符串的最大长度为255个字符
8.特殊指令
36
特殊指令如表4-27所示。PLC中一些实现特殊功能的硬件需要通过特殊指令来使用,可实现特定的复杂的控制目的,同时程序的编制非常简单。
表4-27 特殊指令
名称 指令格式 (语句表) ATCH INT,EVNT DTCH EVNT ENI 中断指令 DISI CRETI RETI 功能 操作数 把一个中断事件(EVNT)和一个中断INT:常数 程序联系起来,并允许该中断事件 EVNT:常数(CPU221/222:0~12,27~33;CPU224:0~23,27~33;截断一个中断事件和所有中断程序19~23,CPU226:0~33) 的联系,并禁止该中断事件 全局地允许所有被连接的中断事件 无 全局地关闭所有被连接的中断事件 根据逻辑操作的条件从中断程序中返回 位于中断程序结束,是必选部分,程序编译时软件自动在程序结尾加入该指令 初始化通讯操作,通过指令端口TBL:VB,MB,*VD,*AC,*LD (PORT)从远程设备上接收数据并形PORT:常数 成表(TBL)。可以从远程站点读最多16个字节的信息 初始化通讯操作,通过指定端口(PORT)向远程设备写表(TBL)中的数据,可以向远程站点写最多16个字节的信息 用于自由端口模式。指定激活发送数TBL:VB,IB,QB,MB,SB,SMB,*VD,据缓冲区(TBL)中的数据,数据缓*AC,*LD 冲区的第一个数据指明了要发送的PORT:常数(CPU221/222/224为0;字节数,PORT指定用于发送的端口 CPU226为0或1) 激活初始化或结束接收信息的服务。通过指定端口(PORT)接收的信息存储于数据缓冲区(TBL),数据缓冲区的第一个数据指明了接收的字节数 读取PORT指定的CPU口的站地址,ADDR:VB,IB,QB,MB,SB,SMB,将数值放入ADDR指定的地址中 LB,AC,*VD,*AC,*LD 在SPA指令中ADDR还可以是常数 将CPU口的站地址(PORT)设置为PORT:常数 ADDR指定的数值 读当前时间和日期并把它装入一个T:VB,IB,QB,MB,SB,SMB,LB,8字节的缓冲区(起始地址为T) *VD,*AC,*LD 将包含当前时间和日期的一个8字节的缓冲区(起始地址是T)装入时钟 为指定的高速计数器分配一种工作HSC:常数(0~5) 模式。每个高速计数器使用之前必须MODE:常数(0~11) 使用HDEF指令,且只能使用一次 NETR TBL,PORT NETW TBL,PORT 通信指令 XMT TBL,PORT RCV TBL,PORT GPA ADDR,PORT SPA ADDR,PORT TODR T 时钟指令 TODW T 高速计数器HDEF HSC,MODE 指令 37
HSC N 根据高速计数器特殊存储器位的状N:常数(0~5) 态,按照HDEF指令指定的工作模式,设置和控制高速计数器。N指定了高速计数器号 检测用户程序设置的特殊存储器位,Q:常数(0或1) 激活由控制位定义的脉冲操作,从Q0.0或Q0.1输出高速脉冲 可用于激活高速脉冲串输出(PTO)或宽度可调脉冲输出(PWM) 运用回路表中的输入和组态信息,进TBL:VB 行PID运算。要执行该指令,逻辑堆LOOP:常数(0到7) 栈顶(TOS)必须为ON状态。TBL指定回路表的起始地址,LOOP指定控制回路号 回路表包含9个用来控制和监视PID运算的参数:过程变量当前值(PVn),过程变量前值(PVn-1),给定值(SPn),输出值(Mn),增益(Kc),采样时间(Ts),积分时间(Ti),微分时间(Td)和积分项前值(MX) 为使PID计算是以所要求的采样时间进行,应在定时中断执行中断服务程序或在由定时器控制的主程序中完成,其中定时时间必须填入回路表中,以作为PID指令的一个输入参数 高速脉冲输PLS Q 出指令 PID回路指PID TBL,LOOP 令 习 题
4-1 欧姆龙C系列PLC和三菱F系列PLC的基本指令,有哪些指令的功能和指令助记符都相同?哪些功能相同但助记符不同?
4-2 欧姆龙C系列PLC,在同一程序段中TIM和CNT能否使用同一编号?
4-3 按一下启动按钮后,电动机运转10S,停止5S,反复如此动作3次后停止运转。试分别用欧姆龙C系列PLC和西门子S-200设计梯形图和指令助记符程序。
4-4 试采用PLC的二种长延时方式分别设计一个延时时长为1800S的电路。(分别用欧姆龙C系列PLC和西门子S-200)
4-5 试分别用欧姆龙C系列PLC和西门子S-200设计三相异步电动机的正、停、反控制。 4-6 试分别用欧姆龙C系列PLC和西门子S-200设计一个抢答器,要求:有4个答题人,出题人提出问题,答题人按动按钮开关,仅仅是最早按的人输出,出题人按复位按钮,引出下一个问题,试画出梯形图及PC的I/O接线图。
38
因篇幅问题不能全部显示,请点此查看更多更全内容