2009-7-29 1
2009-7-29 2
可编程序控制器问世于 1969年。是美国汽车制造工业激烈竞争的结果。更新汽车型号必然要求加工生产线改变。正是从汽车制造业开始了对传统继电器控制的挑战。 1968年美国
General Motors公司,要求制造商为其装配线提供一种新型的通用程序控制器,并提出 10项招标指标。这就是著名的 GM 10条。
第一章 可编程控制器的基本知识第一节 可编程控制器的产生和发展一、可编程控制器的产生
2009-7-29 3
1.编程简单,可在现场修改程序 ;
2,可靠性高于继电器控制柜;
3,体积小于继电器控制柜;
4,维护方便,最好是插件式;
5.可将数据直接送入管理计算机 ;
6,在成本上可与继电器控制柜竞争;
7,输入可以是交流 115V;
8,输出为交流 115V,2A以上,能直接驱动电磁阀等;
9.在扩展时,原系统只需很小变更;
10.用户程序存贮器容量至少能扩展到 4K。
GM10条是可编程序控制器出现的直接原因:
2009-7-29 4
二,可编程控制器的发展及定义
1969年,美国数据设备公司 (DEC)研制出世界上第一台可编程控制器,并成功地应用在 GM公司的生产线上。
这一时期它 主要用于顺序控制,只能进行逻辑运算,
故称为可编程逻辑控制器,简称
PLC(Programmable Logic Controller)。
70年代后期,随着微电子技术和计算机技术的迅猛发展,使 PLC从开关量的逻辑控制扩展到数字控制及生产过程控制领域,真正成为一种电子计算机工业控制装置,故称为可编程控制器,简称 PC(Programmable
Controller)。但由于 PC容易和个人计算机 (Personal
Computer)相混淆,故人们仍 习惯地 用 PLC作为可编程控制器的缩写。
2009-7-29 5
1985年 1月 国际电工委员会的定义,
“可编程序控制器是一种数字运算的电子系统,
专为工业环境下应用而设计 。 它采用可编程序的存储器,用来在内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式、模拟式的输入和输出,控制各种类型的机械或生产过程。可编程序控制器及其有关设备,都应按 易于与工业控制系统联成一个整体,易于扩充的原则设计,。
2009-7-29 6
三,PLC与传统的继电器逻辑相比
1.可靠性高、逻辑功能强、体积小。
2.在需要大量中间继电器、时间继电器及计数继电器的场合,PLC 无需增加硬设备。
3.随着要求的变更 PLC对程序修改方便。继电器线路要想改变控制功能,必须变更硬接线,
灵活性差。
4.具有网络通讯功能,可附加高性能模块对模拟量进行处理,实现各种复杂控制功能。
2009-7-29 7
四,PLC与工业控制计算机相比
1.PLC继承了继电器系统的基本格式和习惯,对于有继电器系统方面知识和经验的人来说,尤其是现场的技术人员,学习起来十分方便。
2,PLC一般是由电气控制器的制造厂家研制生产,各厂家的产品不通用。 工业控制机 是由通用计算机推广应用发展起来的,一般由微机厂、芯片及板卡制造厂开发生产。它在硬件结构方面的突出优点是 总线标准化程度高,产品兼容性强。
3,PLC的运行方式与工业控制机不同,微机的许多软件不能直接使用。 工业控制机可使用通用微机的各种编程语言,对要求快速、实时性强、模型复杂的工业对象的控制占有优势。但它要求使用者具有一定的计算机专业知识。
2009-7-29 8
4.PLC和工业控制机都是专为工业现场应用环境而设计的。 都具有很高的可靠性。
5.PLC一般具有模块结构,可以针对不同的对象进行组合和扩展。
2009-7-29 9
第二节 可编程控制器的基本结构一,PLC的系统结构
I/O
扩展单元
I/O
扩展接口中 央处理单元
(CPU)
输入接口输出接口限位开关手动开关编码器数字开关电源外部设备接口存储器系统程序用户程序数据编程器上位计算机图形监控系统打印机
EP RO M写 入器盒式磁带机条码判读机电源电磁阀继电器指示灯蜂鸣器
2009-7-29 10
二,PLC各部分的作用
1.CPU
① 诊断 PLC电源、内部电路的工作状态及编制程序中的语法错误。
② 采集现场的状态或数据,并送人 PLC的寄存器中。
③ 逐条读取指令,完成各种运算和操作。
④ 将处理结果送至输出端。
⑤ 响应各种外部设备的工作请求。
2009-7-29 11
二,PLC各部分的作用
2.存储器
① 系统程序存储器,用以存放系统管理程序、监控程序及系统内部数据。 PLC出厂前已将其固化在只读存储器 ROM或 PROM中,用户不能更改。
② 用户存储器,包括用户程序存储区及工作数据存储区。这类存储器一般由低功耗的 CMOS-
RAM构成,其中的存储内容可读出并更改。
注意,PLC产品手册中给出的? 存储器类型? 和? 程序容量? 是针对用户程序存储器而言的。
2009-7-29 12
二,PLC各部分的作用
3.输入输出接口电路输入接口电路,采用光电耦合电路,将限位开关、
手动开关、编码器等现场输入设备的 控制信号转换 成
CPU所能接受和处理的 数字信号 。
PLC的输入接口电路(直流输入型)
2009-7-29 13
二,PLC各部分的作用输出接口电路,采用光电耦合电路,将 CPU处理过的信号转换成现场需要的强电信号输出,以驱动接触器、
电磁阀等外部设备的通断电。 有三种类型,
内部电路
LED
L:负 载
COM
L
~
L
输出端子继电器输出型
① 继电器输出型,为有触点输出方式,用于接通或断开 开关频率较低的 直流负载 或 交流负载 回路 。
2009-7-29 14
内部电路
LED
输出端子
L,负载
COM
L
L
~
( b) 晶闸管输出型
L:负 载输出端子LED
内部电路
COM
L
L
( c) 晶体管输出型
( NPN集电极开路 )
输出端子LED
内部电路
COM
L,负载
L
L
( d) 晶体管输出型
( PNP集电极开路 )
③ 晶体管输出型,为无触点输出方式,用于接通或断开 开关频率较高的 直流 电源负载。
② 晶闸管输出型,为无触点输出方式,用于接通或断开 开关频率较高的 交流 电源负载。
2009-7-29 15
4.电源
PLC的电源 是指将外部输入的交流电处理后转换成满足 PLC的 CPU、存储器、输人输出接口等内部电路工作需要的 直流电源电路或电源模块 。 许多 PLC的直流电源采用直流开关稳压电源,不仅可提供多路独立的电压 供内部电路使用,而且 还可为输入设备提供标准电源。
2009-7-29 16
5.手持编程器手持编程器采用 助记符语言编程,具有编辑、检索、修改程序、进行系统设置、内存监控等功能。可一机多用,具有使用方便、价格低廉的特点。
缺点,不够直观可通过 PLC的 RS232外设通讯口 (或 RS422
口配以适配器 )与计算机联机,利用专用工具软件 ( NPST- GR,FPSOFT,FPWIN- GR)
对 PLC进行编程和监控 。 利用计算机进行编程和监控比手持编程工具更加直观和方便。
2009-7-29 17
6.输入输出 I/ 0扩展接口若主机单元的 I/ O点数不能满足需要时,可通过此接口用扁平电缆线将 I/ O
扩展单元与主机相连,以 增加 I/ O点数 。
PLC的最大扩展能力主要受 CPU寻址能力和主机驱动能力 的限制。
2009-7-29 18
第三节 可编程控制器的原理及技术性能一,PLC的基本工作原理微机,等待命令 的工作方式
PLC,循环扫描 的工作方式
CPU从第一条指令开始按指令步序号作周期性的循环扫描,如果 无跳转指令,则从第一条指令开始逐条顺序执行用户程序,直至遇到结束符后又返回第一条指令,周而复始不断循环,每一个循环称为一个扫描周期。
2009-7-29 19
一个扫描周期主要分为三个阶段:
1,输入刷新阶段
2,程序执行阶段
3,输出刷新阶段输入刷新 程序执行 输出刷新一个扫描周期输入刷新
PLC的扫描工作过程用户输出设备输入端子输入锁存器输入映象寄存器输出映象寄存器输出锁存器输出端子程序执行用户输入设备写读读
2009-7-29 20
一,PLC的基本工作原理由于输入刷新阶段是紧接输出刷新阶段后马上进行的,
所以亦将这 两个阶段统称为 I/ O刷新阶段。 实际上,除了执行程序和 I/ O刷新外,PLC还要进行各种错误检测 (自诊断功能 )并与编程工具通讯,这些操作统称为“监视服务”。
一般在程序执行后进行。
扫描周期的长短主要取决于程序的长短。
由于每一个扫描周期只进行一次 I/ 0刷新,故使系统 存在输入、输出滞后现象。 这对于一般的开关量控制系统不但不会造成影响,反而可以 增强系统的抗干扰能力。
但对于控制时间要求较严格、响应速度要求较快的系统,就需要精心编制程序,必要时采用一些特殊功能,以减少因扫描周期造成的响应滞后。
2009-7-29 21
二,PLC的主要技术指标
1.输入/输出点数( I/O点数)
2.内存容量注意:,内存容量?实际是指用户程序容量,
不包括系统程序存储器的容量。
3.扫描速度 (单位,ms/ k或 μs/步。 )
4.指令条数
5.内部继电器和寄存器数目
6.编程语言及编程手段
7.高级模块主控模块可实现基本控制功能,高级模块可实现一些特殊的专门功能。 如 A/ D和 D/ A转换模块等 。
2009-7-29 22
三,PLC的内存分配及 I/ O点数
1.I/ 0继电器区,I/ 0区的寄存器 可直接与 PLC外部的输入、输出端子传递信息,具有“继电器”的功能,
有自己的“线圈”和“触点”。故常称为,I/ 0继电器区”。
2.内部通用继电器区,只能在 PLC内部使用,其作用与中间继电器相似,在程序控制中可存放中间变量。
3.数据寄存器区,只能按字使用,不能按位使用。一般只用来 存放各种数据 。
4.特殊继电器、寄存器区,被系统内部占用,专门用于某些特殊目的,一般 不能由用户任意占用 。
5.系统寄存器区,用来 存放各种重要信息和参数。 通过用户程序,不能读取和修改系统寄存器的内容。
2009-7-29 23
第四节 PLC的分类及功能一,PLC的分类
1,按结构形式分类
① 整体式
② 模块式
2,按功能分类
① 低档机
② 中档机
③ 高档机分 类 I/ 0点数 程序容量超小型机 64点以内 256~ 1000字节小型机 64~ 256 1~ 3.6K字节中型机 256~ 2048 3.6~ 13K字节大型机 2048以上 13K字节以上
3,按 I/ O点数和程序容量分类
2009-7-29 24
二,PLC的主要功能
1,条件控制功能
2.定时/计数控制功能
3,数据处理功能
4,步进控制功能
5.A/ D与 D/ A转换功能
6,运动控制功能
7,过程控制功能
8.扩展功能
9,远程 I/ 0功能
10.通信联网功能
11.监控功能
2009-7-29 25
第五节 PLC的特点、应用场合和发展趋势一,PLC的主要特点
1,可靠性高、抗干扰能力强。 主要有以下几个方面:
① 隔离 (采用光电耦合器 )
② 滤波
③ 对 PLC的内部电源采取了屏蔽、稳压、保护等措施。
④ 设置了连锁、环境检测与诊断,Watchdog等电路。
⑤ 利用系统软件定期进行系统状态、用户程序、工作环境和故障检测。
⑥ 对用户程序及动态工作数据进行电池备份。
⑦ 采用密封、防尘、抗振的外壳封装结构。
⑧ 以集成电路为基本元件,内部处理过程不依赖于机械触点。 采用循环扫描的工作方式,也提高了抗干扰能力。
2009-7-29 26
2.可实现三电一体化将电控 (逻辑控制 )、电仪 (过程控制 )和电结
(运动控制 )集于一体,可以方便、灵活地组合成各种不同规模和要求的控制系统。
3.编程简单、使用方便、柔性好
4.体积小、重量轻、功耗低
2009-7-29 27
二,PLC的应用场合
1,逻辑控制,可取代传统继电器系统和顺序控制器。
如各种机床、自动电梯、装配生产线、电镀流水线、
运输和检测等的控制。
2,运动控制,可用于精密金属切削机床、机械手、
机器人等设备的控制。
3,过程控制,通过配用 A/ D,D/ A转换模块及智能 PID模块实现对生产过程中的温度、压力、流量、
速度等连续变化的模拟量进行闭环调节控制。
4.数据处理
5,多级控制,利用 PLC的网络通信功能模块及远程 I
/ O控制模块实现多台 PLC之间,PLC与上位计算机的链接,以完成较大规模的复杂控制。
2009-7-29 28
三,可编程控制器的发展趋势
1.在系统构成规模上 向大、小两个方向发展 ;
2.功能不断增强,各种应用模块不断推出 ;
3.产品更加 规范化、标准化 。
2009-7-29 29
第六节 PLC的几种编程语言不采用微机的编程语言,采用梯形图语言、指令助记符语言、控制系统流程图语言、布尔代数语言等。其中 梯形图、指令助记符语言最为常用。
PLC的设计和生产至今尚无国际统一标准,不同厂家所用语言和符号也不尽相同。 但它们的梯形图语言的基本结构和功能是 大同小异 的。
2009-7-29 30
一,梯形图语言梯形图是 在原继电器 — 接触器控制系统的继电器梯形图基础上演变而来的 一种图形语言 。 它是目前用得最多的
PLC编程语言。
注意,梯形图表示的 并 不是一个实际电路而只是一个控制程序,其间的连线表示的是它们之间的逻辑关系,即所谓“软接线”。
常开触点,
常闭触点:
线圈:
注意,它们并非是物理实体,而是?软继电器?。 每个? 软继电器? 仅对应 PLC存储单元中的一位。 该位状态为
,1”时,对应的继电器线圈接通,其常开触点闭合、常闭触点断开;状态为,0”时,对应的继电器线圈不通,其常开、常闭触点保持原态。
2009-7-29 31
二,指令助记符语言助记符语言类似于计算机汇编语言,用一些简洁易记的文字符号表达 PLC的各种指令。
同一厂家的 PLC产品,其助记符语言与梯形图语言是相互对应的,可互相转换。
助记符语言常用于手持编程器中,梯形图语言则多用于计算机编程环境中。
2009-7-29 32
FP1是一种功能很强的小型机,它的某些技术性能是一些同档次机型的小型机所不具备的。 具有通常只在大型 PLC中才具备的功能。
通过主机上配有的 RS422或 RS232接口,可实现 PLC与 PC机之间的通信,将 PC机上的梯形图程序直接传送到可编程控制器中去。
有近 200条的指令。 数据处理功能比一般小型机强。
第二章 松下电工可编程控制器产品- FP1介绍
2009-7-29 33
第一节 FP1系列产品及技术性能一,FP1系列产品类型及构成在 FP系列产品中,FP1属于小型 PLC产品。
该产品系列有 C14,C16,C24,C40,C56和
C72型等多种规格。扩展单元有 E8~ E40四种规格。
以 C字母开头代表主控单元 (或称主机 ),
以 E字母开头代表扩展单元 (或称扩展机 )。
后面跟的数字代表 I/O点数 。
例如 C24表示输入和输出点数之和为 24。
2009-7-29 34
表 2-1 FP1系列 PLC主要产品规格简表品名 类型 I/ O点数 内部寄存器 工作电压 输出形式
C14 标准型 8/ 6
EEPROM
DC24V或
AC100~
240V
继电器、晶体管( NPN,PNP)
C16 标准型 8/ 8
C24
C24C
标准型带 RS232口和时钟/日历 16/ 8
RAM
C40
C40C
标准型带 RS232口和时钟/日历 24/ 16
C56
C56C
标准型带 RS232口和时钟/日历 32/ 24
C72
C72C
标准型带 RS232口和时钟/日历 40/ 32
E8
8/ 0
4/ 4
0/ 8
/
/
继电器、晶体管( NPN,PNP)E16
16/ 0
8/ 8
0/ 16
/
E24 16/ 8 / DC24V或
AC100~
240VE40 24/ 16 /
2009-7-29 35
RS232口 电 池座 电源输入端子 输出端子直流电源输出端子 输入端子
I/O状态指示灯扩展插座方式选择开关运行监视指示灯电位器( V0,V1)
波特率选择开关编程工具连接插座
FP1系列 C24型 PLC控制单元的外形图
2009-7-29 36
1,RS232口只有 C24,C40,C56和 C72的 C型机才配有。 该口能与 PC机通讯编程,也可连接其它外围设备。
2,运行监视指示灯
① 当运行程序时,,RUN”指示灯亮;
② 当控制单元中止执行程序时,,PROG” 指示灯亮;
③ 当发生自诊断错误时,,ERR” 指示灯亮;
④ 当检测到异常的情况时或出现,Watchdog”定时故障时,,ALARM” 指示灯亮。
3,电池座
4,电源输入端子
FP1型主机有交、直流电源两种类型,交流型接 100~
240V交流电源,直流型接 24V直流电源。
2009-7-29 37
5,工作方式选择开关有三个工作方式档位,即,RUN”、,REMOTE”和
,PROG”。
6,输出端子该端子板为两头带螺丝可拆卸的板。 带?,? 标记的端子不能作为输出端子使用。
7,直流电源输出端子在 FP1系列 主机内部均配有一个供输入端使用的
24V直流电源。
8,输人端子该端子板为两头带螺丝可拆卸的板。输入电压范围为直流 12~ 24V。 带?,? 标记的端子不能作为输入端子使用。
2009-7-29 38
9,编程工具连接插座 (RS422口 )
可用此插座经专用外设电缆连接编程工具。
10.波特率选择开关
11.电位器 (V0,V1)
这两个电位器可用螺丝刀进行手动调节,实现外部设定。 当调节该电位器时,PLC内部对应的特殊数据寄存器 DT9040和 DT9041的内容在 0~ 255之间变化,相当于输入外部可调的模拟量。
12.I/ O状态指示灯用来指示输人 /输出的通断状态。
13.I/ O扩展单元接口插座用于连接 FP1扩展单元及 A/ D,D/ A转换单元、链接单元。
2009-7-29 39
二,FP1系列可编程控制器的技术性能可编程控制器的功能是否强大,很大程度上取决于它的技术性能。
表 2-2 FP1系列 PLC控制单元技术性能一览表项 目 C14 C16 C24 C40 C56 C72
主机 I/ O点数 8/ 6 8/ 8 16/ 8 24/ 16 32/ 24 40/ 32
最大 I/ O点数 54 56 104 120 136 152
运行速度 1.6μ s/步程序容量 900步 2720步 5000步程序存储器类型 EEPROM(无电池 ) RAM(备用电池)和 EPROM
指令数 基本 41 80 8l高级 85 111 111
内部继电器 (R) 256点 1008点特殊内部继电器 (R) 64点 64点
2009-7-29 40
项 目 C14 C16 C24 C40 C56 C72
定时器/计数器 (T/ C) 128点 144点数据寄存器 (DT) 256字 1660字 6144字特殊数据寄存器 (DT) 70字 70字索引寄存器 (Ⅸ,IY) 2字 2字主控指令( MC/ MCE)点数 16点 32点跳转标记数 (LBL)个数
(用于 JMP,LOOP指令) 32点 64点微分点数 (DF或 DF/ ) 点数不限制步进数 64级 128级子程序个数 8个 16个中断个数 / 9个程序输入滤波时间 1~ 128ms
自诊断功能 看门狗定时器,电池检测,程序检测特殊功能高速计数 X0,X1为计数输入,可加/减计数。单相输入时计数最高频率为 10KHZ,两路两相输入时最高频率为 5KHZ。 X2为复位输入手动拨盘寄存器 1点 2点 4点脉冲捕捉输入 4点 共 8点中断输入 / 共 8点定时中断 / 10ms~ 30s间隔脉冲输出
1点 (Y7) 2点 (Y6,Y7)
脉冲输出频率,45HZ~ 4.9KHZ
固定扫描 2.5ms × 设定值 (160ms或更小 )
2009-7-29 41
第二节 FP1的内部寄存器及 I/ O配置在使用 FP1的 PLC之前,了解 PLC的 I/ O分配以及内部寄存器的功能和配置是十分重要的。
X,WX为 I/ O区的输入继电器,可直接与输入端子传递信息。 Y,WY为 I/ 0区的输出继电器,可向输出端子传递信息。
2009-7-29 42
表 2-3 FP1系列 PLC内部寄存器配置表名 称 符号 (位/宇 )
编 号
C14,C16 C24,C40 C56,C72
输入继电器
X(bit) 208点,X0~ X12F
WX(word) 13字,WX0~ WXl2
输出继电器
Y(bit) 208点,Y0~ Y12F
WY(word) 13字,WY0~ WYl2
内部继电器
R(bit) 256点,R0~ R15F 1008点,R0~ R62F
WR(word) 16字,WR0~ WRl5 63字,WR0~ WR62
特殊内部继电器
R(bit) 64点,R9000~ R903F
WR(word) 4字,WR900~ WR903
定时器 T(bit) 100点,T0~ T99
计数器 C(bit) 28点,C100~ C127 44点,C100~ C143
定时器/计数器设定值寄存器 SV(word) 128字,SV0~ SVl27 144字,SV0~ SVl43
定时器/计数器经过值寄存器 EV(word) 128字,EV0~ EVl27 144字,EV0~ EVl43
通用数据寄存器 DT(word) 256字,DT0~ DT255 1660字:DT0~ DTl659 6144宇:DT0~ DT6143
特殊数据寄存器 DT(word) 70字,DT9000~ DT9069
系统寄存器 (word) No.0~ No.418
索引寄存器
IX(word)
IX,IY各一个
IY(word)
十进制常数寄存器 K
16位常数 (字 ),K- 32768~ K32767
32位常数 (双字 ),K- 2147483648~ K2147483647
十六进制常数寄存器 H
16位常数 (字 ),H0~ HFFFF
32位常数(双字),H0~ HFFFFFFFF
2009-7-29 43
X和 Y是按位寻址的,而 WX和 WY只能按? 字? 寻址。 X与的地址编号规则完全相同,下面以 X为例说明如下,
如,X110表示寄存器 WXl1中的第 0位,X11F表示寄存器
WXl1中的第 F号位。图示如下:
WX11:
X11F X110
注意,字地址为 0时可省略字地址数字,只给位地址即可。
例:若 X4为,ON”,则 WX0的第四位为,1”。
若 WY1=5,则表明 Y10和 Y12两个触点,ON”。
表中 R和 WR的编号规则与 X,WX和 Y,WY相同。
F E D C B A 9 8 7 6 5 4 3 2 1 0
位址(用十六进制表示)
寄存器地址(用十进制表示)
X
2009-7-29 44
一,输入继电器输入继电器的作用是将外部开关信号或传感器的信号输入到 PLC。
注意,输入继电器只能由外部信号来驱动,而不能由内部指令来驱动,其触点也不能直接输出去驱动执行元件。
二,输出继电器输出继电器的作用是将 PLC的执行结果向外输出,驱动外设 (如接触器、电磁阀 )动作。
注意,输出继电器必须是由 PLC控制程序执行的结果来驱动。
三,内部继电器
PLC的内部寄存器供用户存放中间变量,其作用与继电器 — 接触器控制系统中的中间继电器相似,因此称为内部继电器 (软继电器 )。
2009-7-29 45
四,特殊内部继电器
R9000~ R903F为特殊内部继电器,均有专门的用途,用户不能占用。这些继电器 不能用于输出,只能做内部触点用。 其主要功能是:
1,标志继电器
2,特殊控制继电器,例如,初始闭合继电器 R9013,它的功能是只在运行中第一次扫描时闭合,从第二次扫描开始断开并保持打开状态。
3,信号源继电器五,定时器/计数器( T/ C)
定时器 (T)触点的通断由定时器指令 (TM)的输出决定。 如果定时器指令定时时间到,则与其同号的触点动作。
计数器 (C)的触点是计数器指令 (CT)的输出。 如果计数器指令计数完毕,则与其同号的触点动作。
2009-7-29 46
六,定时器/计数器的设定值寄存器( SV)
与经过值寄存器( EV)
SV是存储定时器/计数器指令 预置值 的寄存器; EV是存贮定时器/计数器 经过值 的寄存器。 EV的值随着程序的运行而递减变化,当它的内容变为 0时,定时器/计数器的触点动作。
每个定时器/计数器的编号都有一组 SV和 EV与之相对应 (表 2-4)
表 2-4 T/ C与 SV,EV对应示意表定时器/计数器编号 设定值寄存器 SV 经过值寄存器 EV
T0
┆
T99
C100
┆
C143
SV0
┆
SV99
SV100
┆
SV143
EV0
┆
EV99
EV100
┆
EV143
2009-7-29 47
七,通用数据寄存器 (DT) 和特殊数据寄存器 (DT)
通用数据寄存器用来存储各种数据。 它是纯粹的寄存器,
不带任何触点。
特殊数据寄存器是具有特殊用途的寄存器。每个数据寄存器由一个字 (16-bit)组成。
八,索引寄存器 (Ⅸ,IY)
在 FPl系列的 PLC内部有两个 16位的索引寄存器 Ⅸ 和 IY。
其作用有以下两类:
1.作数据寄存器使用作为数据寄存器使用时,可作为 16-bit寄存器单独使用;
当用作 32-bit寄存器时,Ⅸ 作低 16-bit,IY作高 16-bit;
作为 32-bit操作数编程时,如果指定 Ⅸ 为低 16-bit,则高
16-bit自动指定为 IY。
2009-7-29 48
八,索引寄存器 (Ⅸ,IY)
2.其它操作数的修正值
① 地址修正值功能 (适用于 WX,WY,WR,SV,EV和 DT)
例,有指令为 [FO MV,DT1,IXDTl00],执行后的结果为:
当 Ⅸ = K30时,DT1中的数据被传送至 DTl30。
当 Ⅸ = K50时,DT1中的数据被传送至 DTl50。
② 常数修正值功能 (对 K和 H)
例,有指令为 [FO MV,IXK30,DTl00],执行后的结果为:
当 Ⅸ = K20时,传送至 DT100内容为 K50。
当 Ⅸ = K50时,传送至 DT100内容为 K80
注意,索引寄存器不能用索引寄存器来修正;当索引寄存器用作地址修正值时,要确保修正后的地址不要超出有效范围;当索引寄存器用作常数修正值时,修正后的值可能上溢或下溢。
2009-7-29 49
九,常数寄存器( K,H)
常数寄存器主要用来存放 PLC输入数据,十进制常数以数据前加字头 K来表示,十六进制常数用数据前加字头 H来表示。
控制单元、初级扩展单元、次级扩展单元,I/ O链接单元和智能单元 (A/ D转换单元和 D/ A转换单元 )的 I/ 0
分配是固定的。
FP1系列 PLC的 I/ O点数共有 416点(输入 X0~ X12F
共 208点,输出 Y0~ Y12F也是 208点),但受外部接线端子和主机驱动能力的限制,最多可扩展 152点( C72
型),其余的可作内部寄存器使用。
2009-7-29 50
表 2-5 FP1的 I/ O地址分配表品 种 型 号 输入端编号 输出端编号控制单元
C14 X0~ X7 Y0~ Y4,Y7
C16 XO~ X7 Y0~ Y7
C24 X0~ XF Y0~ Y7
C40 X0~ XF,X10~ X17 Y0~ YF
C56 X0~ XF,X10~ X1F Y0~ YF,Y10~Y17
C72 X0~ XF,X10~ X1FX20~ X27 Y0~ YF,Y10~Y1F
初级扩展单元
E8
输入类型 X30~ X37 /
I/ O类型 X30~ X33 Y30~ Y33
输出类型 / Y30~ Y37
E16
输入类型 X30~ X3F /
I/ O类型 X30~ X37 Y30~ Y37
输出类型 / Y30~ Y3F
E24 I/ O类型 X30~ X3F Y30~ Y37
E40 I/ O类型 X30~ X3F,X40~X47 Y30~ Y3F
2009-7-29 51
续上表品 种 型 号 输入端编号 输出端编号次级扩展单元
E8
输入类型 X50 ~ X57 /
I/ O类型 K50 ~ X53 Y50 ~ Y53
输出类型 / Y50 ~ Y57
E16
输入类型 X50 ~ X5F /
I/ O类型 X50 ~ X57 Y50 ~ Y57
输出类型 / Y50 ~ Y5F
E24 I/ O类型 X50 ~ X5F Y50 ~ Y57
E40 I/ O类型 X50 ~ X5F,X60 ~ K67 Y50 ~ Y5F
I/ O链接单元 X70 ~ X7F(WX7)X80 ~ X8F(WX8) Y70 ~ Y7F(WY7)Y80 ~ Y8F(WY8)
A/ D转换单元通道 0 X90 ~ X9F(WX9) /
通道 1 X100 ~ X10F(WXl0) /
通道 2 X110 ~ X11F(WX11) /
通道 3 X120 ~ X12F(WXl2) /
D/ A转换单元单元号 0
通道 0 / Y90 ~ Y9F(WY9)
通道 1 / Y100 ~ Y10F(WYl0)
单元号 l
通道 0 / Y110 ~ Y11F(WY11)
通道 1 / Y120 ~ Y12F(WYl2)
2009-7-29 52
第三章 FP1的指令系统第一节 概述
2009-7-29 53
一、继电器系统与 PLC指令系统可编程控制器来源于继电器系统和计算机系统,可以将其理解为计算机化的继电器系统 。 继电器在控制系统中主要起两种作用:
1) 逻辑运算 。 运用继电器触点的串,并联接等完成逻辑与,或,非等功能,从而可完成较复杂的逻辑运算 。
2) 弱电控制强电 。 即通过有关的触点的通断,控制继电器的电磁线圈,从而来控制强电的断通 。
对于简单控制功能的完成,采用继电器控制系统具有简单,可靠,方便等特点,因此,继电器控制系统得到了广泛应用 。
2009-7-29 54
注意:
PLC内部的硬件资源多数是以继电器的概念出现的 。 注意,只是概念上的继电器,并非物理继电器 。 这里所指的继电器均为软继电器,
是由 PLC内部的存储单元构成的 。
2009-7-29 55
二,FP1指令系统分类表 3-1 FP1系列可编程控制器指令统计表分类名称 C14/C16 C24/C40 C56/C72
基本指令顺序指令 19 19 19
功能指令 7 7 8
控制指令 15 18 18
条件比较指令 0 36 36
高级数据传输指令 11 11 1l
数据运算及比较指令 36 41 41
数据转换指令 16 26 26
2009-7-29 56
基本指令
高级指令
键盘指令 。 可以直接在键盘上输入的指令 ( 即各种指令在手持编程器上有相应的按键 ) 。
非键盘指令 。 键盘上找不到,输入时需借助于,SC”
和,HELP”键,指令方可输入 。
扩展功能指令 。 也是键盘上找不到的,但可通过输入其功能号将其输入,即用,FN”键加上数字键输入该类指令 。 这类指令在指令表中都各自带有功能编号,
在显示器上显示为,FN ×××,,其中 N是功能编号,
××× 是指令的助记符 。 输入功能编号后,助记符可自动显示,不必由用户输入 。
按照在手持编程器上的 输入方式 可为三种
FP1的指令按照 功能 可分为两大类
2009-7-29 57
第三章 FP1的指令系统第二节 FP1的基本指令系统
2009-7-29 58
基本指令可分为四大类,即
基本顺序指令,主要执行以位 (bit)为单位的逻辑操作,是继电器控制电路的基础 。
基本功能指令,有定时器,计数器和移位寄存器指令 。
控制指令,可根据条件判断,来决定程序执行顺序和流程的指令 。
比较指令,主要进行数据比较 。
基本指令多数是构成继电器顺序控制电路的基础,所以借用继电器的线圈和触点来表示 。 同时,该类指令还是可编程控制器使用中最常见,也是用得最多的指令,因此,
属于必须熟练掌握和运用的内容 。
2009-7-29 59
一、基本顺序指令基本顺序指令主要是对继电器和继电器触点进行逻辑操作的指令 。
FP1的指令表达式比较简单,由操作码和操作数构成,
格式为:
地址 操作码 操作数其中,操作码规定了 CPU所执行的功能 。
例如,AN X0,表示对 X0进行与操作操作数包含了操作数的地址,性质和内容 。 操作数可以没有,也可以是一个,两个,三个甚至四个,随不同的指令而不同 。 如 / 指令就没有操作数 。
2009-7-29 60
指令助记符继电器 定时 /计数器触 点
X Y R T C
ST,ST/
OT × × ×
AN、
AN/
OR、
OR/
SET、
RST × × ×
KP × × ×
表 3-3 基本顺序指令的操作数表中对应项目为,×,表示该项不可用,为空则表示可用 。
例如,OT指令对应继电器 X项为,×,,说明 OT指令的操作数不能为 X继电器 。
2009-7-29 61
1,输入输出指令,ST,ST/,OT
ST 加载 用 A类触点 (常开触点 )
开始逻辑运算的指令 。
ST/ 加载非 用 B类触点 (常闭触点 )开始逻辑运算的指令 。
OT 输出 输出运算结果到指定的输出端,是继电器线圈的驱动指令 。
2009-7-29 62
梯 形 图
0
4
X0
X0
Y0
Y1
Y2
地 址 指 令 数 据
0 ST X 0
1 O T Y 0
2 /
3 O T Y 1
4 ST/ X 0
5 O T Y 2
指 令 表时 序 图
X 0
Y 0
Y 1
Y 2
例 3-1
2009-7-29 63
当 X0接通时,Y0接通;当 X0断开时,Y1
接通,Y2接通。
由例中可见,Y0和 Y1都受控于 X0,但是因为 Y1前面有非指令,因此与 Y0的状态正好相反,这与继电器系统明显不同,
在继电器系统中,X0断开,Y1回路就不可能导通。
此外,对于输出 Y2,也是当输入触点 X0
断开时,Y2接通,与 Y1的控制方式一样。
可见,常闭触点的功能可以用上述两种例题说明:
2009-7-29 64
/ 指令为逻辑取反指令,可单独使用,
但是一般都是与其它指令组合形成新指令使用,如 ST/。
OT不能直接从左母线开始,但是必须以右母线结束。
OT指令可以连续使用,构成并联输出,
也属于分支的一种,可参见堆栈指令。
一般情况下,对于某个输出继电器只能用一次 OT指令,否则,可编程控制器按照出错对待。
注意事项
2009-7-29 65
2,逻辑操作指令,AN,AN/,OR,OR/
AN 与 串联一个 A类 (常开 )触点。
AN/ 与非 串联一个 B类 (常闭 )触点。
OR 或 并联一个 A类 (常开 )触点。
OR/ 或非 并联一个 B类 (常闭 )触点。
2009-7-29 66
例 3-2
梯 形 图
0
6
X 0
R 0
R 0
Y 0
X 1
X 2
X 4X 3
地 址 指 令 数 据
0 S T X 0
1 O R / X 1
2 O R X 2
3 A N / X 3
4 A N X 4
5 O T R 0
6 S T R 0
7 O T Y 0
指 令 表时 序 图
X 0
X 3
X 4
R 0
Y 0
2009-7-29 67
注意事项例题说明:
当 X0,X4接通且 X3断开时,R0接通; R0同时又是
Y0的控制触点,R0接通时 Y0也接通 。
由于 X0,X1和 X2三个触点并联,X2与 X0同为常开触点,所以 X2和 X0具有同样的性质;而 X1为常闭触点,与
X0的性质正好相反 。 X2和 X1的时序图也与 X0相同或相反,
故这里略去 。
AN,AN/,OR,OR/ 可连续使用。
2009-7-29 68
3,块逻辑操作指令,ANS,ORS
ANS 组与 执行多指令块的与操作,即实现多个逻辑块相串联。
ORS 组或 执行多指令块的或操作,即实现多个逻辑块相并联。
2009-7-29 69
例 3-3
梯 形 图
0
X 0 X 1 X 4
X 2 X 3 X 5
Y 0
地 址 指 令 数 据
0 S T X 0
1 A N X 1
2 S T X 2
3 A N X 3
4 O R S
5 S T X 4
6 O R X 5
7 A N S
8 O T Y 0
指 令 表时 序 图
X 0
X 1
X 4
X 5
Y 0
X 2
X 3
1 2 3 4
2009-7-29 70
例题说明:
当 X0,X1接通且 X4接通时,Y0接通,对应图中第 1段接通情况 。
当 X0,X1接通且 X5接通时,Y0接通,对应图中第 2段接通情况 。
当 X2,X3接通且 X4接通时,Y0接通,对应图中第 3段接通情况 。
当 X2,X3接通且 X5接通时,Y0接通,对应图中第 4段接通情况 。
从时序图上看,该例的逻辑关系显得比较复杂,但是仔细分析就可发现 Y0有四个接通段,分别代表了该例子的四种有效组合。
2009-7-29 71
注意事项掌握 ANS,ORS的关键主要有两点:一是要理解好串,并联关系,
二是要形成块的观念 。 针对例 3-3,在下面的图中,分别从程序和逻辑关系表达式两方面对此加以具体说明 。
从图中可见,X0和 X1串联后组成逻辑块 1,X2和 X3串联后组成逻辑块 2,用 ORS将逻辑块 1和逻辑块 2并联起来,组合成为逻辑块 3;
然后由 X4和 X5并联后组成逻辑块 4,再用 ANS将逻辑块 3和逻辑块 4
串联起来,组合成为逻辑块 5,结果输出给 Y0。
地 址 指 令 数 据
0 S T X 0
1 A N X 1
2 S T X 2
3 A N X 3
4 O R S
5 S T X 4
6 O R X 5
7 A N S
8 O T Y 0
块 1
块 2
块 3
块 4
块 5
Y 0 = ( X 0 · X 1 + X 2 · X 3 ) · ( X 4 + X 5 )
块 1 块 2
块 4块 3
块 5
2009-7-29 72
4,堆栈指令,PSHS,RDS,POPS
PSHS 推入堆栈 存储该指令处的操作结果 。
RDS 读取堆栈 读出 PSHS指令存储的操作结果 。
POPS 弹出堆栈 读出并清除由 PSHS指令存储的操作结果 。
堆栈指令主要用于构成具有分支结构的梯形图,
使用时必须遵循规定的 PSHS,RDS,POPS的先后顺序 。
2009-7-29 73
例 3-4
0
X 0 X 1
X 3
X 5
X 6
Y 0X 2
X 4
Y 4
Y 1
Y 2
Y 3
1 4
梯 形 图地 址 指 令 数 据
0 S T X 0
1 P S H S
2 A N X 1
3 A N / X 2
4 O T Y 0
5 R D S
6 A N X 3
7 O T Y 1
8 R D S
9 A N / X 4
指 令 表
1 0 O T Y 2
1 1 P O P S
1 2 A N X 5
1 3 O T Y 3
1 4 S T X 6
1 5 O T Y 4
2009-7-29 74
例题说明:
存储 PSHS指令处的运算结果 ( 这里指 X0的状态 ),这时 X0接通,
则当 X1也接通且 X2断开时,Y0输出 。
由 RDS指令读出存储的结果,即 X0接通,则当 X3接通时,Y1输出 。
由 RDS指令读出存储的结果,即 X0接通,则当 X4断开时,Y2输出 。
由 POPS指令读出存储的结果,即 X0接通,则当 X5接通时,Y3输出;然后将 PSHS指令存储的结果清除,即解除与 X0的关联,后续指令的执行将不再受 X0影响 。
当 X6接通时,Y4输出 。 此时与 X0的状态不再相关 。
本例中连用了两个 RDS指令,目的是为了说明该指令只是读存储结果,而不影响存储结果;在执行了 POPS后,就结束了堆栈指令,
不再与 X0的状态相关,如例中,Y4的状态只受 X6控制。
当 X0接通时,程序依次完成下述操作。
2009-7-29 75
注意事项
当程序中遇到 PSHS时,可理解为是将左母线到 PSHS指令 ( 即分支点 )
之间的所有指令存储起来,推入堆栈,提供给下面的支路使用 。 换个角度,也可理解为左母线向右平移到分支点,随后的指令从平移后的左母线处开始 。
RDS用于 PSHS之后,这样,当每次遇到 RDS时,该指令相当于将
PSHS保存的指令重新调出,随后的指令表面上是接着 RDS,实际上相当于接着堆栈中的指令来写 。 在功能上看,也就是相当于将堆栈中的那段梯形图与 RDS后面的梯形图直接串联起来 。
POPS相当于先执行 RDS的功能,然后结束本次堆栈,因此,用在
PSHS和 RDS的后面,作为分支结构的最后一个分支回路 。
从上面对构成堆栈的三个指令的分析可知,最简单的分支,即两个分支,
可只由 PSHS和 POPS构成;而三个以上的分支,则通过反复调用 RDS
指令完成,这点可参见例题 。 也就是说,一组堆栈指令中,有且只有一个 PSHS和一个 POPS,但是可以没有或有多个 RDS。
注意区分分支结构和并联输出结构梯形图 。 二者的本质区别在于:分支结构中,分支点与输出点之间串联有触点,而不单纯是输出线圈 。
堆栈指令的复杂应用还包括嵌套使用 。
2009-7-29 76
5,微分指令,DF,DF/
DF 上升沿微分 检测到触发信号上升沿,使触点接通一个扫描周期 。
DF/ 下降沿微分 检测到触发信号下降沿,使触点接通一个扫描周期 。
2009-7-29 77
例 3-5
梯 形 图
( D F )
0
X 0 X 2
X 2
Y 0
X 1
Y 1
5
X 0
( D F / )
地 址 指 令 数 据
0 S T X 0
1 A N / X 1
2 D F
3 A N X 2
4 O T Y 0
5 S T X 0
6 D F /
7 A N X 2
8 O T Y 1
指 令 表时 序 图
X 0
X 1
X 2
Y 0
Y 1
t 1
2009-7-29 78
例题说明:
当检测到触发信号的上升沿时,即 X1断开,X2接通且
X0由 OFF→ON时,Y0接通一个扫描周期 。 另一种情况是 X0
接通,X2接通且 X1由 ON→OFF时,Y0也接通一个扫描周期,
这是由于 X1是常闭触点的缘故 。
当检测到触发信号的下降沿时,即 X2接通且 X0由
ON→OFF时,Y1接通一个扫描周期 。
2009-7-29 79
注意事项
DF和 DF/ 指令的作用都是在控制条件满足的瞬间,触发后面的被控对象 ( 触点或操作指令 ),使其接通一个扫描周期 。 这两条指令的区别在于:前者是当控制条件接通瞬间 ( 上升沿 ) 起作用,而后者是在控制条件断开瞬间
( 下降沿 ) 起作用 。 这两个微分指令在实际程序中很有用,
可用于控制那些只需触发执行一次的动作 。 在程序中,对微分指令的使用次数无限制 。
这里所谓的,触发信号,,指的是 DF或 DF/前面指令的运算结果,而不是单纯的某个触点的状态,如例中 X0与
X1的组合;也不是后面的触点状态,如在时序图中的 t1时刻,X0和 X1都处于有效状态,X2的上升沿却不能使 Y0接通 。
2009-7-29 80
6,置位、复位指令,SET,RST
SET 置位 保持触点接通,为 ON。
RST 复位 保持触点断开,为 OFF。
2009-7-29 81
例 3-6
梯 形 图
0
X 0
4
X 1
Y 0
< S E T >
Y 0
< R S T >
地 址 指 令 数 据
0 S T X 0
1 S E T Y 0
4 S T X 1
5 R S T Y 0
指 令 表时 序 图
X 0
X 1
Y 0
例题说明:
该程序执行的结果是,当 X0接通时,使 Y0接通,此后不管 X0是何状态,Y0一直保持接通 。 而当 X1接通时,将 Y0断开,此后不管 X1是何状态,Y0一直保持断开 。
2009-7-29 82
7,保持指令,KP
KP 保持 使输出为 ON,并保持 。
KP指令的作用是将输出线圈接通并保持 。 该指令有两个控制条件,一个是置位条件 ( S),另一个是复位条件 ( R) 。 当满足置位条件,输出继电器 ( Y或 R) 接通,
一旦接通后,无论置位条件如何变化,该继电器仍然保持接通状态,直至复位条件满足时断开 。
S端与 R端相比,R端的优先权高,即如果两个信号同时接通,复位信号优先有效 。
2009-7-29 83
例 3-7
例题说明:
梯 形 图
0
X 0
X 1
K P Y 0
S
R
地 址 指 令 数 据
0 S T X 0
1 S T X 1
2 K P Y 0
指 令 表 时 序 图
X 0
X 1
Y 0
当 X0接通时,Y0接通;当 X1接通时,Y0断开,而不论 X0状态如何。
注意事项该指令与 SET,RST有些类似,另外,SET,RST允许输出重复使用,而 KP指令则不允许。
2009-7-29 84
8,空操作指令,NOP
NOP 空操作 空操作 。
PLC执行 NOP指令时,无任何操作,但是要消耗一定的时间 。
当没有输入程序或进行清理内存操作时,程序存储器各单元均自动为空操作指令 。
可用 NOP作为查找时的特殊标记,人为插入若干个
NOP指令,对程序进行分段,便于检查和修改 。 如程序中某一点插入的 NOP指令的数量超出 1个,编程系统会自动对其进行编号,因此,该指令常在调试程序时使用,
此时,程序的大小有所增加,但是对运算结果没有影响 。
2009-7-29 85
二、基本功能指令基本功能指令主要包括一些具有定时器,计数器和移位寄存器三种功能的指令 。 其中,定时和计数本质上是同一功能 。 根据指令功能分类,将高级指令中的可逆计数指令 F118(UDC),左右移位指令 F119(LRSR)以及辅助定时器指令 F137(STMR)也包括在内 。
表 3-5 基本功能指令的操作数指令助记符可用寄存器继电器 定时 /计数器 寄存器 索引寄存器 常数 索引修正值W
X
W
Y
W
R SV EV DT IX IY K H
TM预置值 × × × × × × × × ×
CT预置值 × × × × × × × × ×
2009-7-29 86
1,定时器指令,TM,F137(STMR)
TMR 以 0.01s为最小时间单位,设置延时接通的定时器 。
TMX 以 0.1s为最小时间单位,设置延时接通的定时器 。
TMY 以 1.0s为最小时间单位,设置延时接通的定时器 。
定时器的工作原理为:定时器为减 1计数 。 当程序进入运行状态后,输入触点接通瞬间定时器开始工作,先将设定值寄存器 SV的内容装入过程值寄存器 EV中,然后开始计数 。 每来一个时钟脉冲,过程值减 1,直至 EV中内容减为 0时,该定时器各对应触点动作,即常开触点闭合,常闭触点断开 。 而当输入触点断开时,定时器复位,对应触点恢复原来状态,且 EV清零,但 SV不变 。 若在定时器未达到设定时间时断开其输入触点,则定时器停止计时,其过程值寄存器被清零,且定时器对应触点不动作,直至输入触点再接通,重新开始定时 。
2009-7-29 87
TM
定 时 器 设 定 值,K 1 ~ K 32767
定 时 器 序 号,默 认 值 0 ~ 99
定 时 器 类 型,R,X,Y三 种简单的说,当定时器的执行条件成立时,定时器以 R、
X,Y所规定的时间单位对预置值作减计数,预置值减为 0时,
定时器导通。其对应的常开触点闭合,常闭触点断开。
2009-7-29 88
例 3-8
梯 形 图
0
X 0
T 1
T M X 1,K 1 0 0
Y 0
4
地 址 指 令 数 据
0 S T X 0
1 T M X 1
K 1 0 0
4 S T T 1
5 O T Y 0
指 令 表时 序 图
X 0
T 1
Y 0
1 0 s 1 0 s
例题说明:
当 X0接通时,定时器开始定时,10秒后,定时时间到,定时器对应的常开触点 T1接通,使输出继电器 Y0导通为 ON;当 X0断开时,定时器复位,对应的常开触点 T1断开,输出继电器 Y0断开为 OFF。
2009-7-29 89
注意事项
1) TM指令是减法计数型预置定时器,参数有两个,一个是时间单位,
即定时时钟,可分为 3种,R=0.01s,X=0.1s,Y=1.0s;另一个是预置值,只能用十进制,编程格式为 K加上十进制数,因此,取值范围可表示为 K1 ~ K32767。 这样,定时时间就可以根据上述两个参数直接计算出来,即定时时间 = 时间单位 × 预置值也正是由于这个原因,TM R1 K1000,TM X1 K100,TM Y1
K10这三条指令的延时时间是相同的,都是 10秒,差别仅在于定时的时间精度不同 。 对于这个例子,由于只用到定时结果,采用上述任何一种写法都可以 。
2) 定时器的设定值和过程值会自动存入相同编号的专用寄存器 SV和
EV中,因此可通过察看同一编号的 SV和 EV内容来监控该定时器的工作情况 。 采用不同的定时时钟会影响精度,也就是说,过程值 EV的变化过程不同 。
2009-7-29 90
3) 同输出继电器的概念一样,定时器也包括线圈和触点两个部分,采用相同编号,但是线圈是用来设置,触点则是用于引用 。 因此,在同一个程序中,相同编号的定时器只能使用一次,即设置一次,而该定时器的触点可以通过常开或常闭触点的形式被多次引用 。
4) 在 FP1-C24中,初始定义有 100个定时器,编号为 T0 ~ T99,通过系统寄存器 No.5可重新设置定时器的个数 。
5) 由于定时器在定时过程中需持续接通,所以在程序中定时器的控制信号后面不能串联微分指令 。
6) 在实际的 PLC程序中,定时器的使用是非常灵活的,如将若干个定时器串联或是将定时器和计数器级联使用可扩大定时范围,或将两个定时器互锁使用可构成方波发生器,还可以在程序中利用高级指令
F0(MV)直接在 SV寄存器中写入预置值,从而实现可变定时时间控制 。
2009-7-29 91
例 3-9
例题说明:
指 令 表地 址 指 令 数 据
0 S T X 0
1 F 1 3 7 ( S T M R )
K 1 0 0 0
D T 5
6 S T R 9 0 0 D
7 O T Y 0
梯 形 图
X 0
F 1 3 7 S T M R,K 1 0 0 0,D T 50
Y 0
6
R 9 0 0 D
该例与上例中使用 TMX实现的定时结果类似,但是当用 R900D作为定时器的触点编程时,务必将 R900D编写在紧随 F137(STMR)指令之后 。 此外,这里的 DT5起到与经过值寄存器 EV类似的作用 。
F137(STMR) 以 0.01s为最小时间单位设置延时接通的定时器 。 该定时器与 TMR类似,但是设置方式上有所区别 。
下面举例说明 。
2009-7-29 92
2.计数器指令,CT,F118(UDC)
CT指令是一个减计数型的预置计数器。其工作原理为:程序一进入“运行”方式,计数器就自动进入初始状态,此时 SV的值被自动装入
EV,当计数器的计数输入端 CP检测到一个脉冲上升沿时,预置值被减 1,
当预置值被减为 0时,计数器接通,其相应的常开触点闭合,常闭触点断开。计数器的另一输入端为复位输入端 R,当 R端接收到一个脉冲上升沿时计数器复位,计数器不接通,其常开触点断开,常闭触点闭合;
当 R端接收到脉冲下降沿时,将预置值数据再次从 SV传送到 EV中,计数器开始工作。计数器 CT指令的梯形图符号如下图所示。
C T
计 数 器 设 定 值,K 0 ~ K 3 2 7 6 7
计 数 器 序 号,默 认 值 1 0 0 ~ 1 4 3
C P
R
2009-7-29 93
例 3-10
例题说明:
地 址 指 令 数 据
0 S T X 0
1 S T X 1
2 C T 1 0 1
K 5 0 0
5 S T C 1 0 1
6 O T Y 0
梯 形 图 指 令 表
0
X 0
X 1
5
C T 1 0 1
C P
R
K 5 0 0
C 1 0 1
Y 0
程序开始运行时,计数器自动进入计数状态。当检测到 X0的上升沿 500次时,计数器对应的常开触点 C101接通,使输出继电器 Y0导通为 ON;当 X1接通时,计数器复位清零,对应的常开触点 C101断开,输出继电器 Y0断开为 OFF。
2009-7-29 94
注意事项
FP1-C24中,共有 44个计数器,编号为 C100 ~ C143。 此编号可用系统寄存器 No.5重新设置 。 设置时注意 TM和 CT的编号要前后错开 。
计数器与定时器有密切的关系,编号也是连续的 。 定时器本质上就是计数器,只不过是对固定间隔的时钟脉冲进行计数,因此两者有许多性质是类似的 。
与定时器一样,每个计数器都有对应相同编号的 16位专用寄存器 SV
和 EV,以存储预置值和过程值 。
同一程序中相同编号的计数器只能使用一次,而对应的常开和常闭触点可使用无数次 。
计数器有两个输入端,即计数脉冲输入端 CP和复位端 R,分别由两个输入触点控制,R端比 CP端优先权高 。
计数器的预置值即为计数器的初始值,该值为 0 ~ 32767中的任意十进制数,书写时前面一定要加字母,K”。
2009-7-29 95
例 3-11
F118(UDC)指令,也起到计数器的作用 。 与 CT不同的是,
该指令可以根据参数设置,分别实现加 /减计数的功能,下面举例说明 。
地 址 指 令 数 据
5 0 S T X 0
5 1 S T X 1
5 2 S T X 2
5 3 F 1 1 8 ( U D C )
D T 1 0
D T 0
5 8 S T R 9 0 0 B
5 9 O T R 5 0
梯 形 图 指 令 表
5 0
X 0
X 1
X 2
F 1 1 8 U D C
D T 1 0
D T 0
R 5 0R 9 0 0 B
5 8
5 2
5 1
2009-7-29 96
例题说明:
使用 F118(UDC)指令编程时,一定要有加 /减控制,
计数输入和复位触发三个信号 。
当检测到复位触发信号 X2的下降沿时,DT10中的数据被传送到 DT0中,计数器开始工作;当检测到 X2的上升沿时,即复位信号有效,DT0被清 0,计数器停止工作 。
X0为加 /减控制信号,当其为 ON时,进行加计数,为
OFF时,进行减计数 。
X1为计数输入信号,检测到其上升沿时,根据 X0的状态,执行加 1或减 1计数 。
这里,DT10相当于 CT指令中的预置值寄存器 SV,
DT0相当于经过值寄存器 EV。 当 DT0中的结果为 0时,特殊内部寄存器 R900B接通,内部寄存器 R50有输出 。
2009-7-29 97
3.移位指令,SR,F119(LRSR)
SR为左移移位指令 。 其功能为:
当 R端为 OFF状态时,该指令有效 。
这时,每检测到一个 CP端的上升沿
(OFF→ON),WRn中的数据就从低位向高位依次左移一位,其中,
WRn的最低位用数据输入端 IN的状态补入,最高位数据丢失 。 当 R为
ON状态时,该指令复位,WRn中的数据被清零 。 此外,需要指出的是,
该指令的操作数只能用内部字继电器 WR,n为 WR继电器的编号 。
S R W R n
I N
R
C P
2009-7-29 98
例 3-12
例题说明:
地 址 指 令 数 据
0 S T X 1
1 S T X 2
2 S T X 3
3 S R W R 6
梯 形 图 指 令 表
0
X 1
X 2
X 3
S R W R 6
IN
R
C P
当复位信号 X3为 OFF状态时,每当检测到移位信号 X2的上升沿,
WR6寄存器的数据左移 1位,最高位丢失,最低位由当时数据输入信号
X1的状态决定:如果当时 X1处于接通状态,则补 1,否则,补 0。
如果 X3接通,WR6的内容清 0,这时 X2信号无效,移位指令停止工作 。
2009-7-29 99
F119( LRSR) 指令为左 /右移位寄存器指令,使 16-bit内部继电器中的数据向左或向右移动 1-bit。 F119( LRSR) 指令可以使用作为数据区的寄存器和常数见下表 。
D1:移位区内首地址寄存器;
D2:移位区内末地址寄存器;
注意:移位区内的首地址和末地址要求是同一种类型的寄存器,并满足 D1≤D2。
操作数可用寄存器继电器 定时 /计数器 寄存器 索引寄存器 常数 索引修正值W
X
W
Y
W
R SV EV DT IX IY K H
D1 × × × × × ×
D2 × × × × × ×
2009-7-29 100
例 3-13 地 址 指 令 数 据
5 0 S T X 0
5 1 S T X 1
5 2 S T X 2
5 3 S T X 3
5 4 F 1 1 9 ( L R S R )
D T 0
D T 9
梯 形 图 指 令 表
5 0
X 0
X 1
X 2
F 1 1 9 L R S R
D T 0
D T 9
X 3
5 3
5 2
5 1
2009-7-29 101
F119(LRSR)指令需要有 4个输入信号,即左 /右移位信号,数据输入,移位信号和复位触发信号,分别对应例中
X0 ~ X3共 4个触点 。 DT0指定移位区首地址,DT9指定末地址 。
当 X3为 ON时,复位信号有效,DT0和 DT9均被清 0,
移位寄存器停止工作 。
当 X3为 OFF时,移位寄存器正常工作 。 这时,由移位触发信号 X2的上升沿触发移位操作,移动的方向由 X0决定,
若 X0为 ON,表示进行数据左移,为 OFF,表示进行数据右移 。 至于移入的数据为 1还是为 0,则取决于 X1的状态,若
X1接通,移入数据为 1,否则,移入数据为 0。
这里,DT0 ~ DT9构成了连续的 16位寄存器区,移位操作使所有位同时进行,整个区域按照高位在左侧,低位在右侧的顺序排列 。
例题说明:
2009-7-29 102
三、控制指令从程序的执行步骤和结构构成上看,基本顺序指令和基本功能指令是按照其地址顺序执行的,直到程序结束为止;而控制指令则可以改变程序的执行顺序和流程,产生跳转和循环,构成复杂的程序及逻辑结构。
PLC指令的执行特点是采用扫描执行方式,
这里就存在扫描和执行的关系的问题:
对于一段代码,扫描并执行 是正常的步骤,但是也存在另外一种情况,就是 扫描但不执行,从时间上看,仍然要占用
2009-7-29 103
1.主控继电器指令,MC,MCE
MC:主控继电器指令 。
MCE:主控继电器结束指令 。
功能:用于在程序中将某一段程序单独界定出来 。
当 MC前面的控制触点闭合时,执行 MC至 MCE间的指令;
当该触点断开时,不执行 MC至 MCE间的指令 。
2009-7-29 104
例 3-14
梯 形 图
0
X 0
3
( M C 0 )
( M C E 0 )
5
7
X 1
Y 0
Y 1
X 2
X 0 X 1
Y 0
Y 1
X 2
X 0 接 通执 行 条 件地 址 指 令 数 据
0 S T X 0
1 M C 0
3 S T X 1
4 O T Y 0
5 S T / X 2
6 O T Y 1
7 M C E 0
指 令 表时 序 图
X 0
X 1
Y 0
2009-7-29 105
例题说明:
当控制触点 X0接通时,执行 MC0到 MCE0之间的程序,这时,
从上图中的梯形图可以看出,效果等同于右侧的简化梯形图 。 否则,
不执行 MC0到 MCE0之间的程序 。
值得注意的是,当主控继电器控制触点断开时,在 MC至 MCE
之间的程序,遵循扫描但不执行的规则,可编程控制器仍然扫描这段程序,不能简单地认为可编程控制器跳过了这段程序 。 而且,在该程序段中不同的指令状态变化情况也有所不同,具体情况参见下表 。
指令或寄存器 状态变化
OT(Y,R等 ) 全部 OFF状态
KP,SET,RST 保持控制触点断开前对应各继电器的状态
TM,F137(STMR) 复位,即停止工作
CT,F118(UDC) 保持控制触点断开前经过值,但停止工作
2009-7-29 106
注意事项
MC和 MCE在程序中应成对出现,每对编号相同,编号范围为 0 ~ 31之间的整数 。 而且,同一编号在一个程序中只能出现一次 。
MC和 MCE的顺序不能颠倒 。
MC指令不能直接从母线开始,即必须有控制触点 。
在一对主控继电器指令 (MC,MCE)之间可以嵌套另一对主控继电器指令 。
2009-7-29 107
2.跳转指令,JP,LBL
JP:跳转指令 。
LBL:跳转标记指令 。
当控制触点闭合时,跳转到和 JP指令编号相同的 LBL
处,不执行 JP和 LBL之间的程序,转而执行 LBL指令之后的程序 。 与主控指令不同,遵循不扫描不执行的原则,在执行跳转指令时,JP和 LBL之间的指令略过,所以可使整个程序的扫描周期变短 。
2009-7-29 108
例 3-15
例题说明:
在 JP1指令的前面,JP1与 LBL1中间,以及 LBL1的后面都可能有其它的指令程序段,如图所示 。 当控制触点 X0断开时,跳转指令不起作用,JP1与 LBL1中间的指令正常执行,与没有跳转指令一样;当控制触点 X0接通时,执行跳转指令,跳过 JP1与 LBL1中间的程序段,直接执行 LBL1的后面的程序段 。
地 址 指 令 数 据
…
1 0 S T X 0
1 1 J P 1
…
2 0 L B L 1
…
指 令 表梯 形 图
1 0
X 0
( J P 1 )
( L B L 1 )
2 0
.,,程 序 段
X 0 接 通,
该 段 不 执 行
X 0 断 开,
该 段 正 常 执 行
.,,程 序 段
.,,程 序 段
2009-7-29 109
注意事项
可以使用多个编号相同的 JP指令,即允许设置多个跳向一处的跳转点,编号可以是 0 ~ 63以内的任意整数,但不能出现相同编号的 LBL指令,否则程序将无法确定将要跳转的位置 。
LBL指令应该放在同序号的 JP指令的后面,当然,放在前面也可以,不过这时扫描不会终止,而且可能发生瓶颈错误,详细内容请参见手册 。
JP指令不能直接从母线开始,即前面必须有触发信号 。
在一对跳转指令之间可以嵌套另一对跳转指令 。
不能从结束指令 ED以前的程序跳转到 ED以后的程序中去;不能在子程序或中断程序与主程序之间跳转;不能在步进区和非步进区进行跳转 。
2009-7-29 110
3.循环跳转指令,LOOP,LBL
LOOP:循环指令 。
LBL:循环标记指令 。
循环指令的功能为:当执行条件成立时,循环次数减
1,如果结果不为 0,跳转到与 LOOP相同编号的 LBL处,
执行 LBL指令后的程序 。 重复上述过程,直至结果为 0,
停止循环;当执行条件不成立时,不循环执行 。
2009-7-29 111
例 3-16
例题说明:
当 X6接通时,数据寄存器 DT0的预置值减 1,若结果不为 0,
LOOP指令跳转到 LBL1处,执行 LBL1之后的程序 。 重复执行相同的操作直至 DT0中的内容变为 0,结束循环 。
当 X6断开时,不执行循环 。
地 址 指 令 数 据
…
1 0 L B L 1
…
2 0 S T X 6
L O O P 1
D T 0
…
指 令 表梯 形 图
1 0
X 6
( L B L 1 )
2 0
循 环 体
.,,程 序 段
( L O O P 1,D T 0 )
2009-7-29 112
注意事项
可以使用多个编号相同的 LOOP指令,编号可以是 0 ~ 63以内的任意整数,但不能出现相同编号的 LBL指令,否则程序将无法确定循环区间 。 此外,该指令可以与 JP指令共用相同编号的 LBL指令,但为了程序清晰,尽量避免 。
LBL指令与同编号的 LOOP指令的前后顺序不限,但工作过程不同 。
一般将 LBL指令放于 LOOP指令的上面,此时,执行循环指令的整个过程都是在一个扫描周期内完成的,所以整个循环过程不可太长,
否则扫描周期变长,影响了 PLC的响应速度,有时甚至会出错 。
LOOP指令不能直接从母线开始,即必须有触发信号 。 当某编号的
LOOP对应的触发信号接通时,与同编号的 LBL即构成一个循环 。
循环跳转指令可以嵌套使用 。
不能从结束指令 ED以前的程序跳转到 ED以后的程序中去;也不能在子程序或中断程序与主程序之间跳转;不能在步进区和非步进区进行跳转 。
2009-7-29 113
4.结束指令,ED,CNDE
ED:结束指令,表示主程序结束 。
CNDE:条件结束指令,当控制触点闭合时,可编程控制器不再继续执行程序,结束当前扫描周期,返回起始地址;否则,继续执行该指令后面的程序段 。
例 3-17
X 0
X 1
Y 1
(C N D E )
( E D )
例题说明:
当控制触点 X0闭合时,条件结束指令 CNDE起作用,返回程序起始地址,当前的扫描结束,进入下一次扫描;否则,控制触点 X0断开,继续执行下面的指令扫描,当遇到 ED指令,才结束当前的扫描。
2009-7-29 114
5,步进指令,SSTP,NSTP,NSTL、
CSTP,STPESSTP:步进开始指令,表明开始执行该段步进程序 。
NSTP,NSTL:转入指定步进过程指令 。 这两个指令的功能一样,
都是当触发信号来时,程序转入下一段步进程序段,并将前面程序所用过的数据区清除,输出 OT关断,定时器 TM复位 。 区别在于触发方式不同,前者为脉冲式,仅当控制触点闭合瞬间动作,即检测控制触点的上升沿,类似于微分指令;后者为扫描式,每次扫描检测到控制触点闭合都要动作 。
CSTP:复位指定的步进过程 。
STPE:步进结束指令,结束整个步进过程 。
除了用于生产过程的顺序控制,步进指令还可用于选择分支控制,并行分支控制等,
2009-7-29 115
例 3-18
例题说明:
当检测到 X0的上升沿时,执行步进过程 1(SSTP1~SSTP2);当 X1
接通时,清除步进过程 1,并执行步进过程 2;当 X3接通时,清除步进过程 50,步进程序执行完毕 。
地 址 指 令 数 据
…
1 0 S T X 0
1 1 N S T P 1
1 4 S S T P 1
1 7 O T Y 1 0
1 8 S T X 1
1 9 N S T L 2
2 2 S S T P 2
…
1 0 0 S T X 3
1 0 1 C S T P 5 0
1 0 4 S T P E
指 令 表梯 形 图
1 0
X 0
( N S T P 1 )
1 7
1 4
.,,其 它 步 进 程 序 段
1 8
( S S T P 1 )
Y 1 0
X 1
( N S T L 2 )
( S S T P 2 )
X 3
( C S T P 5 0 )
( S T P E )
2 2
1 0 0
1 0 4
2009-7-29 116
注意事项
步进程序中允许输出 OT直接同左母线相连 。
步进程序中不能使用 MC和 MCE,JP和 LBL,LOOP和
LBL,ED和 CNDE指令 。
在步进程序区中,识别一个过程是从一个 SSTP指令开始到下一个 SSTP指令,或一个 SSTP指令到 STPE指令,
即步进程序区全部结束 。
当 NSTP或 NSTL前面的控制触点接通时,程序进入下一段步进程序 。 这里的控制触点和步进控制程序区结束指令 STPE都是必需的 。
2009-7-29 117
6.子程序调用指令,CALL,SUB,RET
CALL:子程序调用指令,执行指定的子程序 。
SUB:子程序开始标志指令,用于定义子程序 。
RET:子程序结束指令,执行完毕返回到主程序 。
子程序调用指令的功能:当 CALL n指令的执行条件成立时,程序转至子程序起始指令 SUB n处,执行 SUB n
到 RET之间的第 n号子程序 。 遇到 RET指令,子程序结束并返回到 CALL n的下一条指令处,继续执行主程序 。
2009-7-29 118
例 3-19
例题说明:
当 X0接通时,程序从主程序转到编号为 1的子程序的起始地址 SUB
1处,开始执行子程序;当执行到 RET处时,子程序执行完毕,返回到主程序调用处,从 CALL 1指令的下一条指令继续执行随后的主程序 。
当 X0断开时,不调用子程序,继续执行主程序 。
地 址 指 令 数 据
…
1 0 S T X 0
1 1 C A L L 1
…
2 0 E D
2 1 S U B 1
…
3 0 R E T
…
指 令 表梯 形 图
1 0
X 0
( C A L L 1 )
2 1
主程序区
.,,程 序 段 ( 主 程 序 )
( E D )
2 0
( S U B 1 )
.,,程 序 段 ( 子 程 序 )
( R E T )
.,,程 序 段 ( 主 程 序 )
3 0
子程序区
2009-7-29 119
注意事项
FP1-C24可用子程序的个数为 16个,即子程序编号范围为 SUB0 ~
SUB15,且两个子程序的编号不能相同 。
子程序必须编写在主程序的 ED指令后面,由子程序入口标志 SUB开始,最后是 RET指令,缺一不可 。
子程序调用指令 CALL可以在主程序,子程序或中断程序中使用,可见,子程序可以嵌套调用,但最多不超过 5层 。
当控制触点为 OFF时,子程序不执行 。 这时,子程序内的指令状态如下表所示 。
指令或寄存器 状态变化
OT,KP,SET,RST 保持控制触点断开前对应各继电器的状态
TM,F137(STMR) 不执行
CT,F118(UDC); SR、
F119(LRSR)
保持控制触点断开前经过值,
但停止工作其它指令 不执行
2009-7-29 120
7.中断指令,INT,ICTL,IRET
ICTL:中断控制指令,用于设定中断的类型及参数 。
INT,中断程序开始标志 。
IRET:中断程序结束标志 。
为了提高 PLC的实时控制能力,提高 PLC与外部设备配合运行的工作效率以及 PLC处理突发事件的能力,
FP1设置了中断功能 。 中断就是中止当前正在运行的程序,去执行为要求立即响应信号而编制的中断服务程序,
执行完毕再返回原先被中止的程序并继续运行 。
2009-7-29 121
FP1的中断类型
1) 外部中断共有 8个中断源 X0 ~ X7,对应中断入口为
X0? INT0 X4? INT4
X1? INT1 X5? INT5
X2? INT2 X6? INT6
X3? INT3 X7? INT7
其优先级别为 INT0最高,INT7最低 。 FP1规定中断信号的持续时间应 ≥2ms。
2) 内部定时中断是通过软件编程来设定每间隔一定的时间去响应一次中断服务程序,定时中断的中断入口为 INT24。
FP1-C24以上机型均有中断功能,其中断功能有两种类型,一种是外部中断,又叫 硬件中断,一种是定时中断,又叫 软件中断 。
2009-7-29 122
中断的实现
1) 对于内部定时中断,是通过编程来实现的,定时中断的时间,由中断命令控制字设定。
2) 对于外部中断,应先设定系统寄存器 No.403的值,然后再设定中断控制字,并按中断程序的书写格式编写程序。
ICTL是中断控制字指令,有二个操作数 S1和 S2。它可以是常数 H,也可以是某个寄存器的数据。其中 S1设置中断类型,S2设置中断参数。具体设置方法参见手册。
中断控制字的设置此外,与普通微机不同,PLC的中断是非嵌套的,也就是说,在执行低级中断时,若有高级中断到来,并不立即响应高级中断,而是在执行完当前中断后,才响应高级中断。
2009-7-29 123
注意事项
使用外部中断之前,首先设置系统寄存器 No.403。
ICTL指令应和 DF指令配合使用 。
中断子程序应放在主程序结束指令 ED之后 。
INT和 IRET指令必须成对使用 。
中断子程序中不能使用定时器指令 TM。
中断子程序的执行时间不受扫描周期的限制 。
中断子程序中可以使用子程序调用指令 。
2009-7-29 124
四、比较指令比较指令由 3部分组成第一部分为助记符,分别由 ST,AN,OR开始,
用于指定条件满足后要进行的操作是开始,
还是逻辑与,逻辑或;
第二部分为比较运算符,主要有等于 (=),大于 (>),小于 (<),大于等于 (>=),小于等于 (<=)和不等于 (<>)共 6种关系,满足关系
S 1 S 2
比 较 数 据 2 ( 寄 存 器 或 常 数 )
比 较 数 据 1 ( 寄 存 器 或 常 数 )
比 较 运 算 符 ( =,>,<,> =,< =,< > )
助 记 符 ( S T,A N,O R )
2009-7-29 125
例 3-20
地 址 指 令 数 据
0 S T > =
D T 2
K 1 6
5 A N < =
D T 2
K 3 2
1 0 O R D > =
D T 0
K 6 4
1 9 O T R 0
指 令 表
0
R 0
> = D T 2,K 1 6 < = D T 2,K 3 2
梯 形 图
D > = D T 0,K 6 4
该程序的功能为,根据 DT2中的数据范围,或 (DT1,DT0)中的内容,
来决定 R0的输出状态 。 设 DT2中数据用 x表示,(DT1,DT0)中数据用 y
表示,则当 16≤x≤32,或者 y≥64时,R0导通,输出为 ON;否则,R0断开,输出为 OFF。
从该例可以看出,比较指令实际上相当于一个条件触点,根据条件是否满足,决定触点的通断 。
例题说明:
2009-7-29 126
单字比较为 16位数据,双字比较为 32位数据,用寄存器寻址时,后者采用两个相邻寄存器联合取值,如例中 (DT1,
DT0),表示由 DT1和 DT0联合构成 32位数据。
在构成梯形图时,ST,AN,OR与基本顺序指令中用法类似,区别仅在于操作数上,前者为寄存器 (16-bit或 32-
bit),后者为继电器 (1-bit)。
单字指令步数为 5步,而双字指令步数为
9步。
注意事项
2009-7-29 127
第三节 高级指令概述第三章 FP1的指令系统
2009-7-29 128
一、高级指令的类型数据传送指令,16位,32位数据,以及位数据的传送,拷贝,交换等功能 。
算术运算指令,二进制数和 BCD码的加,减,
乘,除等算术运算 。
数据比较指令,16位或 32位数据的比较 。
逻辑运算指令,16位数据的与,或,异或和异或非运算 。
数据转换指令,16位或 32位数据按指定的格式进行转换 。
数据移位指令,16位数据进行左移,右移,
2009-7-29 129
二、高级指令的构成高级指令由大写字母? F”,指令功能号、助记符和操作数组成,指令的格式如下。
S,DF
目 的 操 作 数 ( 目 的 数 据 区 )
源 操 作 数 ( 1 6 位 常 数 或 源 数 据 区 )
助 记 符功 能 号 ( n = 0 ~ 1 6 5 )
Fn是指令功能号,Fn= F0 ~ F165。 不同的功能号规定 CPU进行不同的操作 。 指令的助记符用英文缩写表示,一般可据此大致推测出该指令的功能 。
S是源操作数或源数据区,D是目的操作数或目的数据区,分别指定操作数或其地址,性质和内容 。
操作数可以是一个,二个或者三个,取决于所用的指令,可以是单字
(16-bit)和双字 (32-bit)的数据,若为位操作指令,还可以是位 (1-bit)数据 。
2009-7-29 130
三、高级指令的操作数
1.进位制
二进制系统 (BIN)
十进制常数 (K常数 )
十六进制常数 (H常数 )
二进制表示的十进制数 (BCD码 )
2、寄存器和常数字继电器 (WX,WY,WR),定时器 /计数器区 (T,C,SV,EV)、
数据寄存器 (DT),索引寄存器 (IX,IY)和常数 (K,H)均由 1个字 (16-bit)构成,且以字为单位进行处理 。 字继电器的内容按位对应其继电器元件的状态 。
2009-7-29 131
四、使用高级指令应注意的问题在高级指令的前面必须加控制触点 (触发信号 ),而在后面只能是右母线。
根据执行的过程,FP1的指令有两种类型,即
F型和 P型。如果控制触点接通后,其后续的指令每个扫描周期都要执行一次,称为? F
型? 指令;否则,如果后续的指令只在触发信号的上升沿执行一次,称为? P型? 指令。
本书中只介绍? F型? 指令,如果在控制过程中需要只执行一次高级指令,可在 F型高级指令的前面使用微分指令 (DF)实现。
如果多个高级指令连续使用同一控制触点,
不必每次都画出或写出该控制触点。见下图
0
X 0
F 0 M V,D T 0 D T 1
X 0
F 0 M V,D T 6 D T 7
X 0
F 1 D M V,D T 2 D T 4
0
X 0
F 0 M V,D T 0 D T 1
F 0 M V,D T 6 D T 7
F 1 D M V,D T 2 D T 4
(a) (b)
2009-7-29 132
第三章 FP1的指令系统第四节 FP1的高级指令
2009-7-29 133
一、数据传送指令数据传送指令的功能是将源操作数中的数据,按照规定的要求,复制到目的操作数中去,可分为数据传送、位传送、数字传送、块传送及复制、寄存器交换等。 1.数据传送,F0(MV),F1(DMV)、F2(MV/),F3(DMV/)
[F0 MV S,D ],将一个 16位的常数或寄存器中的数据传送到另一个寄存器中去 。
[F1 DMV S,D ],将一个 32位的常数或寄存器区中的数据传送到另一个寄存器区中去 。
[F2 MV/ S,D ],将一个 16位的常数或寄存器中的数据取反后传送到另一个寄存器中去 。
[F3 DMV/ S,D ],将一个 32位的常数或寄存器区中的数据取反后传送到另一个寄存器区中去 。
2009-7-29 134
例 3-21
0
X 0
F 0 M V,K 1 0 0 D T 0
D,目 的 操 作 数
S,源 操 作 数助 记 符功 能 号 ( n )
控 制 触 点 (触 发 信 号 )
地 址 指 令 数 据
0 S T X 0
1 F 0 ( M V )
K 1 0 0
D T 0
梯 形 图 指 令 表该程序的功能是,当控制触点 X0闭合时,每个扫描周期都要重复将十进制数 100传送到内部字寄存器 DT0中 。
F0(MV)指令对源操作数没有要求,而目的操作数不能是输入继电器 WX和常数 K,H,原因很明显:目的操作数是用来保存结果的,自然不能用输入继电器和常数 。 后面介绍的其它指令也有类似情况 。
2009-7-29 135
例 3-22
与上例相比,该例有 5点不同,下面加以详细说明 。
1) 在控制触点后,增加了微分指令 DF,表示该指令仅在检测到控制触点 X0闭合时执行一次;
2) F3(DMV/)指令助记符的第一个字符为,D”,表示该指令为双字操作,
目的操作数为 DT0寄存器,表示数据保存在寄存器 DT1,DT0构成的 32
位单元中 。 在以后的双字操作指令中也遵循这一原则,即由相邻 2个 16
位寄存器联合构成一个 32位寄存器,默认指定的是低 16位寄存器 。 如果低 16位区已分别指定为 S,D,则高 16位分别自动指定为 S+1,D+1,
本例中:
S+1(高位 )= WR3,S(低位 )= WR2
D+1(高位 )= DT1,D(低位 )= DT0
指令表地址 指令 数据
0 ST X0
1 F 0 (DMV /)
WR2
DT0
梯形图
X0
F 3 D MV /,WR 2 D T00 (DF )
2009-7-29 136
3) F3(DMV/)指令助记符的最后一个字符为,/”,表示在进行传送时,要对被传送的数据先进行取反,然后将结果送往目的寄存器区 。
4) 源操作数和目的操作数都用寄存器方式寻址,源操作数在执行指令后内容不变,目的操作数则被覆盖,相当于执行数据拷贝操作 。 数据的传递关系与结果参看下表 。
5) 与 F0(MV)指令不同的是,S和 D不能用 IY寄存器 。 IX和 IY除用作索引寄存器外,还可以用作通用寄存器 。 当用作通用 16位寄存器时,二者可单独使用;当用作 32位存储区时,二者联用,IX存低 16位,IY
存高 16位,因此程序中只能引用 IX,IY由系统自动引用,无论是 S还是 D均如此 。 这个规则对于所有的双字 (32-bit)指令都适用 。
2009-7-29 137
2,位传输,F5(BTM),F6(DGT)
[ F5 BTM S,n,D ],16位二进制数的位传送指令 。 将一个 16位二进制数的任意指定位,拷贝到另一个 16位二进制数据中的任意指定位中去 。
[ F6 DGT S,n,D ],16位十六进制数的位传送指令 。
将一个 16位数据按十六进制,传送若干位 (digit)到另一个
16位寄存器区中去 。
2009-7-29 138
例 3-23
指 令 表地 址 指 令 数 据
0 S T X 0
1 F 5 (B T M )
W X 0
H 0 B 0 5
D T 0
梯 形 图
X 0
F 5 B T M,W X 0 H 0 B 0 5 D T 00
例题说明:
当控制触点 X0接通时,WX0中第 05位数据传送到 DT0中的第 11位去,如下图所示。 WX0中的数据由前面的程序赋值,DT0中的数据可能已经赋值,也可能没有赋值,但是执行完该指令后,DT0的第 11位被赋值为 1。
1 5
1 4 1 3 1 2 1 1 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 5
1 4 1 3 1 2 1 1 1 0 9 8 7 6 5 4 3 2 1 0
1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 1
位 地 址位 地 址
W X 0
D T 0
源 数 据 区目 的 数 据 区
1
2009-7-29 139
在 F5(BTM)指令中,S为源操作数,是被传送的 16位常数或寄存器中的数据; D为目的操作数,表示接收数据的 16位目的寄存器; n是 16
位的操作数,又称传输控制码,它指明了源操作数中哪一位数据将被传送以及传送到目的操作数中的哪一位置 。 在 n中,bit0 ~ bit3用以指定源操作数中哪一位将被传送,bit8 ~ bit11用以指定被传送数据放在目的操作数的什么位置,bit4 ~ bit7,bit12 ~ bit15这 8位未用,可随便取值,
不影响结果,为简便计,一般均取为 0。 因此,本例中源区位地址取为
H5,目的区位地址取为 HB。 n的设置参见下图 。
5B
1 5 … 1 2
未 用 未 用
n,
源 区 位 地 址范 围,H 0 ~ H F
目 的 区 位 地 址范 围,H 0 ~ H F
1 1 … 8 7,,,4 3 … 0
2009-7-29 140
对于 F6(DGT),在 n的定义上有所不同,一是数据操作的最小单位为十六进制的 1位,即 1digit,相当于二进制的 4bits;二是要拷贝的数据不像 F5那样只有 1位,而是有效范围内的任意位,因此还需要指定参与操作的位数 。 n的设置可参考下图 。
拷 贝 的 十 六 进 制 位 ( d i g i t ) 个 数,
范 围,H 0 ~ H 3
H 0,拷 贝 1 个 ; H 1,拷 贝 2 个 ;
H 2,拷 贝 3 个 ; H 3,拷 贝 4 个 ;
目 的 区 d i g i t 首 地 址,范 围,H 0 ~ H 3
d i g i t 3
1 5 … 1 2
未 用
n,
源 区 d i g i t 首 地 址,范 围,H 0 ~ H 3
d i g i t 2
1 1 … 8
d i g i t 1
7,,,4
d i g i t 0
3 … 0
十 六 进 制二 进 制由图中可见,n的 bit12 ~ bit15未用,以十六进制表示,即 digit3未用。
2009-7-29 141
为了能够表示数据段,采用的是,首地址 +段长度,的表示方式,
即由 digit2表示目的区首地址,digit1表示要拷贝的数据段位数,digit0表示源区首地址,这样进行操作的数据区地址就可唯一确定 。
举例而言,若想将源区的 4个十六进制位 (digit0 ~ digit3)拷贝到目的区的 4个十六进制位 (digit1 ~ digit3,digit0),可将 n取值为 H0130,其含义见左图,执行情况见右图 。
n,H 0 1 3 0
源 区 从 d i g i t 0 开 始目 的 区 从 d i g i t 1 开 始共 拷 贝 4 个 十 六 进 制 数
S
D
d i g i t 3 d i g i t 2 d i g i t 1 d i g i t 0
值得注意的是,这里有个,循环,的概念,即如果目的区位数不够,自动回到最小位,再进行拷贝 。 如例中 S的 digit3应该送给 D中的
digit4,但是 D的最大位为 digit3,则该数据自动送往 D的 digit0。
2009-7-29 142
3,块传输指令,F10(BKMV)、
F11(COPY)1) F10(BKMV):区块传输指令 。
格式,[ F10 BKMV S1,S2,D ]
说明:数据段采用的是,首地址 +尾地址,的表示方式,
即将指定的以 S1为起始地址,S2为终止地址的数据块拷贝到以 D为起始地址的目的区中 。 要求 S1和 S2应为同一类型的寄存器,且 S2≥S1。
2) F11(COPY):块拷贝指令 。
格式,[ F11 COPY S,D1,D2 ]
说明:即将由 S指定的 16-bit常数或寄存器中的值重复拷贝到以 D1为起始地址,D2为终止地址的目的区中 。 要求 D1和 D2应为同一类型的寄存器,且
D2≥D1。
2009-7-29 143
4.数据交换指令,F15(XCH)、
F16(DXCH),F17(SWAP)1) F15(XCH),16位数据交换 。格式,[ F15 XCH D1,D2 ]
说明:将 D1和 D2寄存器中的 16位数据互相交换 。
2) F16(DXCH),32位数据交换 。
格式,[ F16 DXCH D1,D2 ]
说明:将 (D1+1,D1)寄存器中的 32位数据与 (D2+l,
D2)中的 32位数据互换 。
3) F17(SWAP),16位数据的高低字节互换 。
格式,[ F17 SWAP D ]
说明:将 D寄存器中的 16位数据高 8位和低 8位互换 。
2009-7-29 144
二、算术运算指令算术运算指令共有 32条,但是同前面介绍的比较指令类似,规律性很强 。 因此,
书中仅对其规律加以总结分析,掌握规律后,
结合指令表,不难掌握这类指令 。1、指令分类? 按照进位制可分为二进制 BIN算术运算指令和 BCD码算术运算指令,
各为 16条指令,后者在指令中增加大写字母,B”以示区别 。
按照参与运算的数据字长 (位数 )可以分为单字 (16-bit)和双字 (32-bit)
指令,后者在助记符中以大写字母,D”区别,在 FP1的其它指令中也是采用这种方式 。
按照运算规则可分为加,减,乘,除四则运算,以及加 1,减 1共六种基本运算 。 其中,加 1和减 1可以看作是加,减运算的特例 。
按照参与运算的操作数的多少可分为一操作数,两操作数和三操作数 。
2009-7-29 145
2.操作数的数据范围
16位二进制数,?32768 ~ 32767
或 H8000 ~ H7FFF。
32位二进制数,?2147483648 ~ 2147483647
或 H80000000 ~ H7FFFFFFF。
4位 BCD码,0 ~ 9999。
8位 BCD码,0 ~ 99999999。
2009-7-29 146
3.运算标志算术运算要影响标志继电器,包括特殊内部继电器
R9008,R9009和 R900B。 这里仅对影响情况做简单概括,
详细情况需要结合具体的指令,参考手册学习掌握 。
R9008:错误标志 。 当有操作错误发生时,R9008接通一个扫描周期,并把发生错误的地址存入 DT9018中 。
R9009:进位,借位或溢出标志 。 当运算结果溢出或由移位指令将其置 1时,R9009接通一个扫描周期 。
R900B,0结果标志 。 当比较指令中比较结果相同,或是算术运算结果为 0时,R900B接通一个扫描周期 。
2009-7-29 147
4.运算规则
1) 加法指令的算法两操作数,(D) + (S) → (D)
三操作数,(S1) + (S2) → (D)
2) 减法指令的算法两操作数,(D) – (S) → (D)
三操作数,(S1) – (S2) → (D)
3) 乘法指令的算法
(S1) × (S2) → (D)
乘法运算可能会导致 16位数据升为 32位,因此结果用 32位存储;同理,32位乘法结果用 64位存储 。 存储区自动取指定寄存器连续的高位寄存器,例如指定寄存器为
D,对于 64位,结果自动存于 (D+3,D+2,D+1,D)四个连续寄存器中 。
2009-7-29 148
4) 除法指令的算法
(S1) ÷ (S2) → (D)
除法运算在每次运算完后,商数保存于 D中或 (D+1,
D)中 。 此外,还可能产生余数,如果是单字运算,可到
DT9015中取余数;如果是双字运算,可到 (DT9016,
DT9015)中取余数 。
5) 加 1和减 1指令算法加 1指令,(D) + 1 → (D)
减 1指令,(D) – 1 → (D)
算术运算一般都是一次性的,而 PLC采用的是扫描执行方式,因此该类指令常常和微分指令 (DF)联合使用 。 下面举例对算术指令加以说明 。
2009-7-29 149
5.举例例 3-24:用算术运算指令完成算式,这里包括了加,减,乘,除四种运算 。 要求 X1闭合时开始运算,X0闭合时各单元清零,且清零优先 。
解:使用二进制 (BIN)运算指令实现时,梯形图如下图 。 同样的功能也可采用 BCD码运算指令实现 。
0
X 0
F 2 2 +,K 1 2 3 0,K 6 5 4,D T 0
F 3 0 *,D T 0,K 2 0 0 2,D T 2
F 2 8 D -,K 5 6 0 0,D T 2,D T 4
F 1 1 C O P Y,K 0,D T 0,D T 7
F 3 3 D %,D T 4,K 2 5 6,D T 6
X 1
( D F )
( E D )
1
1
X 0
3 9
4 7
256 2002)6541230(5600
2009-7-29 150
三、数据比较指令数据比较指令包括 16位或 32位数据比较指令、一个 16位或 32位数据与数据区间进行比较、数据块比较等 5条指令。比较的结果用特殊内部继电器 R9009、
R900A,R900B和 R900C的状态来表示。
1,16位和 32位数据比较指令,F60(CMP)、
F61(DCMP) [ F60 CMP,S1,S2 ],16位数据比较指令 。
[ F61 DCMP,S1,S2 ],32位数据比较指令 。
该类指令的功能为:当控制触点闭合时,将 S1指定数据与 S2指定数据进行比较,比较的结果反映到标志位中 。
2009-7-29 151
如果程序中多次使用 F60(CMP)指令,则标志继电器的状态总是取决于前面最临近的比较指令 。 为了保证使用中不出现混乱,一个办法是在比较指令和标志继电器前使用相同的控制触点来进行控制;另一个办法是在比较指令后立即使用相关的标志继电器 。
标志位结果
R900A R900B R900C R9009
>标志 =标志 <标志 进位标 志有符号数比较
S1< S2 OFF OFF ON –
S1= S2 OFF ON OFF OFF
S1> S2 ON OFF OFF –
BCD数据或无符号数比较
S1< S2 – OFF – ON
S1= S2 OFF ON OFF OFF
S1> S2 – OFF – OFF
表 3-14 16位数据比较指令 F60(CMP) 对标志位影响
2009-7-29 152
2,16位和 32位数据区间比较指令:
F62(WIN),F63(DWIN)[ F62 WIN,S1,S2,S3 ],16位数据区段比较指令。
[ F63 DWIN,S1,S2,S3 ],32位数据区段比较指令。
该类指令的功能为:当控制触点闭合时,将 S1指定数据与 S2指定下限,S3指定上限的数据区间中的数据比较,比较的结果反映到标志位中。
标志位结果
R900A R900B R900C
>标志 =标志 <标志
S1< S2 OFF OFF ON
S2≤ S1≤ S3 OFF ON OFF
S1> S3 ON OFF OFF
表 3-15 16位数据区间比较指令 F62(WIN)对标志位影响
2009-7-29 153
3.数据块比较指令,F64(BCMP)
[ F64 BCMP,S1,S2,S3 ],数据块比较指令 。
该指令功能为:当控制触点闭合时,根据 S1指定的比较参数,该参数包括数据块的起点和长度,比较由 S2指定首地址的数据块和由 S3指定首地址的数据块中的内容,当两个数据块完全相同时,特殊内部继电器
R900B接通 。
S1指定的比较参数的定义见下图。
H
将 要 比 较 的 字 节 数范 围,H 0 1 ~ H 9 9 ( B C D )
由 S 2 指 定 的 数 据 块 起 始 字 节 的 位 置
1,从 高 字 节 开 始
0,从 低 字 节 开 始由 S 3 指 定 的 数 据 块 起 始 字 节 的 位 置
1,从 高 字 节 开 始
0,从 低 字 节 开 始
S 1
2009-7-29 154
四、逻辑运算指令该类指令很简单,包括与,或,异或和异或非 4种 。 操作数均为 16位,均有三操作数,将 S1和 S2分别进行上述 4种运算,结果存于 D中 。
1,F65(WAN):
格式,[ F65 WAN S1,S2,D ]
功能,16-bit data AND,16位数据,与,运算 。
2,F66(WOR):
格式,[ F66 WOR S1,S2,D ]
功能,16-bit data OR,16位数据,或,运算 。
3,F67(XOR):
格式,[ F67 XOR S1,S2,D ]
功能,16-bit data exclusive OR,16位数据,异或,运算 。
4,F68(XNR):
格式,[ F68 XNR S1,S2,D ]
功能,16-bit data exclusive NOR,16位数据,异或非,运算 。
2009-7-29 155
五、数据转换指令数据转换指令包含各种数制,
码制之间的相互转换,有二进制,十六进制及 BCD码数据同 ASCII码之间的相互转换,二进制数据与 BCD码间的相互转换,
指令较多 。 此外还有二进制数据的求反,
求补,取绝对值;符号位的扩展等操作以及解码,编码,译码,数据分离,数据组合,数据查表等操作 。 通过这些指令,在程序中可以较好地解决 PLC输入,
输出的数据类型与内部运算数据类型不一致的问题 。
2009-7-29 156
1.区块检查码计算指令,F70(BCC)
[F70 BCC S1,S2,S3,D],这条指令常用于数据通信时检查数据传输是否正确 。 该指令是 FP1指令系统中惟一的一条四操作数的指令 。
2,码制变换指令,F71 ~ F83
1) F71 ~ F78,是 8条三操作数的码制变换指令,分别实现十六进制数据,BCD码,16位二进制数据,32位二进制数据与 ASCII码间的互换,
2) F80 ~ F83,是 4条双操作数的码制变换指令,分别实现
16位和 32位二进制数据与 BCD码数据间的互换 。
根据前面所学知识,不难推测出 S和 D可取用的寄存器范围 。 即目的寄存器不可取用 WX,K,H,当操作数是 32
位数据时,不可取用 IY。
2009-7-29 157
3.数据计算指令,F84 ~ F88
F84 ~ F88这 5条指令是将 D指定的 16位数据或 32位二进制数据分别求反,求补,取绝对值,并将结果存储在 D或
(D+1,D)中 。 操作数 D不可用寄存器 WX,K,H。
4,16位数据符号位扩展指令,F89(EXT)
该指令的功能为:将 D指定的 16位数据的符号位全部拷贝到 D+1寄存器的各个位中,保留 D寄存器,扩展结果作为
32位数据存储于 (D+1,D)中 。 用该指令可将 16位数据转变为 32位数据 。
2009-7-29 158
5.编码 /解码指令,F90 ~ F92
H
解 码 的 位 数范 围,H0 ~ H8
待 解 码 数 据 的 起 始 位 地 址范 围,H0 ~ HF
图 3-39 n的格式示意图
1) [ F90 DECO S,n,D],解码指令 。 所谓解码,就是将若干位二进制数转换成具有特定意义的信息,
即类似于数字电路中的 3-8译码器的功能,将 S指定的 16位二进制数根据 n规定的规则进行解码,解码的结果存于以 D指定的 16位寄存器作为首地址的连续区域 。
2) [ F91 SEGT S,D ],位数据七段解码指令 。 是把一个 4位二进制数译成七段显示码 。 即将 S指定 的 16位数据转换为七段显示码,转换结果存储于以 D为首地址的寄存器区域中 。 其中,S为被译码的数据或寄存器 。 D
为存放译码结果的寄存器首地址 。
在执行该指令时,将每 4?bit二进制码译成 7位的七段显示码,数码的前面补 0变成 8位,因此,译码结果使数据位扩大了一倍 。
2009-7-29 159
H
待 编 码 的 位 数范 围,H1 ~ H8
编 码 后 数 据 的 起 始 位 地 址范 围,H0 ~ HF
图 3-40 n的格式示意图
3) [ F92 ENCO S,n,D ],编码指令 。 所谓编码,就是将具有特定意义的信息变成若干位二进制数 。
将 S指定的 16位二进制数据根据 n
的规定进行编码,编码结果存储于
D指定的寄存器中 。
其中,S为被编码的数据或寄存器首地址,n为编码控制字或存放控制字的寄存器 。
nL为 n的 bit0 ~ bit3,用于设定编码数据的有效位长度,nL的取值范围为 H1 ~ H8。 S的有效位长度= 2nL。
nH是 n的 bit8 ~ bit11,用于设定 D寄存器从何位开始存放结果,nH
取值范围为 H0 ~ HF。
2009-7-29 160
6,数据组和 /分离指令,F93,F941) [ F93 UNIT S,n,D ],数据组合指令,其功能是将一组数据的低 4
位 (bit0 ~ bit3)重新组成一个 16位数据 。
2) [ F94 DIST S,n,D ],数据分离指令,其功能和数据组合指令相反,
是将一个 16位数,每 4bits为一组分成 4组,按 n规定的方式,存到结果寄存器 D的低 4位中去 。
7.字符 → ASCII码转换指令,F95(ASC)
[ F95 ASC S,D ],将 S指定的字符常数转换为 ASCII,转换后的结果存储于以 D指定的 16位寄存器开始的区域中。
8.表数据查找指令,F96(SRC)
[ F96 SRC S1,S2,S3 ],在 S2(首地址 )和 S3(尾地址 )指定的数据区中查找与 S1的内容相同的数据,并将查找到的数据的个数存储于特殊数据寄存器 DT9037中,第一次发现该数据的位置存储于特殊数据寄存器
DT9038中 。
2009-7-29 161
六、数据移位指令
FP1高级指令系统中包含了位,
字以及字段的左 /右移位指令,共有 16位数据的左 /右移位,4位 BCD码的左 /右移位,字数据的左 /右移位,16位数据的左
/右循环移位等 12条指令 。 其中位移位指令有进位标志位参与运算,并分为非循环移位指令 (普通移位 )和循环移位指令两种 。 这些移位指令比前文介绍过的 SR
指令的功能要强大得多,且不象 SR那样每次只能移动 1位,而是可以根据需要,
在指令中设置一次移动若干位 。 此外,
各种通用寄存器都可以参与多种移位操
2009-7-29 162
1,16位数据的左 /右移位指令该类移位指令只是针对 16位二进制数据,根据循环情况的不同又可分为普通 ( 非循环 ) 移位指令,循环移位指令和包含进位标志的循环移位指令三种情况 。 其区别主要在于移入位的数据处理上,简单地说,普通 ( 非循环 ) 移位指令不循环,移入位直接依次补 0;循环移位指令移入位则由移出位补入;包含进位标志的循环移位指令移入位由进位标志依次补入 。
这里要注意的是,为了便于理解,也可将一次移动 n位的过程理解成移动 n次,每次移动 1位,实际上指令是一次完成移位的 。
2009-7-29 163
1) 普通(非循环)移位指令
[ F100 SHR,D,n ],寄存器 D中的 16位数据右移 n位,高位侧移入数据均为 0,低位侧向右移出 n位,且第 n位移入进位标志位 CY(R9009)中 。
[ F101 SHL,D,n ],寄存器 D中的 16位数据左移 n位,高位侧向左移出
n位,且第 n位移入进位标志位 CY(R9009)中,低位侧移入数据均为 0。
其中,n用于设定移位的位数,为常数或 16位寄存器,取值范围为
K0 ~ K255。
1 5 0
F 1 0 0 ( S H R )
C Y 1 5 0
F 1 0 1 ( S H L )
C Y
D D
0 0
2009-7-29 164
2) 循环移位指令
[ F120 ROR,D,n ],寄存器 D中的 16位数据右移 n位,低位侧移出的 n
位依次移入高位侧,同时移出的第 n位复制到进位标志位 CY(R9009)中 。
[ F121 ROL,D,n ],寄存器 D中的 16位数据左移 n位,高位侧移出的 n
位依次移入低位侧,同时移出的第 n位复制到进位标志位 CY(R9009)中 。
注意这两条指令与 F100和 F101的区别在于:这里是循环移位,而不是补 0。
1 5 0
F 1 2 0 ( R O R )
C Y 1 5 0
F 1 2 1 ( R O L )
C Y
D D
2009-7-29 165
3) 包含进位标志的循环移位指令
[ F122 RCR,D,n ],寄存器 D中的 16位数据右移 n位,移出的第 n位移入进位标志位 CY,而进位标志位 CY原来的数据则移入从最高位侧计的第
n位 。
[ F123 RCL,D,n ],寄存器 D中的 16位数据左移 n位,移出的第 n位移入进位标志位 CY,而进位标志位 CY原来的数据则移入从最低位侧计的第
n位 。
1 5 0
F 1 2 2 ( R C R )
C Y 1 5 0
F 1 2 3 ( R C L )
C Y
D D
2009-7-29 166
2.十六进制数的左 /右移位指令
d i g i t 3
1 5 … 1 2
d i g i t 2
1 1 … 8
d i g i t 1
7,,,4
d i g i t 0
3,,,0
0
1 5 … 1 2 1 1 … 8 7,,,4 3,,,0
0
D
D T 9 0 1 4
F 1 0 5 ( B S R )
d i g i t 3
1 5 … 1 2
d i g i t 2
1 1 … 8
d i g i t 1
7,,,4
d i g i t 0
3,,,0
1 5 … 1 2 1 1 … 8 7 … 4 3,,,0
D
D T 9 0 1 4
F 1 0 6 ( B S L )
[ F105 BSR,D ],寄存器 D中的 4位十六进制数右移 1位,相当于右移二进制的 4bits,移出的低 4bits数据送到特殊数据寄存器 DT9014的低
4bits,同时 D的高 4bits变为 0。
[ F106 BSL,D ],寄存器 D中的 4位十六进制数左移 1位,相当于左移二进制的 4bits,移出的高 4bits数据送到特殊数据寄存器 DT9014的低 4bits,
同时 D的低 4bits变为 0。
2009-7-29 167
3.数据区按字左 /右移位指令
[ F110 WSHR,D1,D2 ],由 D1为首地址,D2为末地址定义的 16位寄存器数据区,整体右移一个字,相当于二进制的 16-bit。 执行后,首地址寄存器的原数据丢失,末地址寄存器为 0。
[ F111 WSHL,D1,D2 ],由 D1为首地址,D2为末地址定义的 16位寄存器数据区,整体左移一个字,相当于二进制的 16-bit。 执行后,首地址寄存器为 0,末地址寄存器的原数据丢失 。
D 2
.,,
D 1D 1 + 1.,,
0
丢 失数 据 区
F 1 1 0 ( W S H R )
D 2
.,,
D 1D 1 + 1.,,
0丢 失数 据 区
F 1 1 1 ( W S H L )
同前面针对数据区操作的高级指令一样,D1和 D2应是同一类型的寄存器,且末地址寄存器号应大于或等于首地址寄存器号,即 D2≥D1。
此外,还要注意的是首尾地址的编排顺序是左边为末地址,右边为首地址 。
2009-7-29 168
4.十六进制数据区的左 /右移位指令
...
D 2(末 地 址 )
F113(W B SL )
0丢 失
digit3
15 … 12
D 1(首 地 址 )
digit0
3,.,0
...
...0 丢 失
D 2(末 地 址 )
F112(W B SR )
digit3
15 … 12
D 1(首 地 址 )
digit0
3,.,0
...
[ F112 WBSR,D1,D2 ],由 D1为首地址,D2为末地址定义的 16位寄存器数据区,整体右移一个十六进制数,相当于二进制的 4bits。
[ F113 WBSL,D1,D2 ],由 D1为首地址,D2为末地址定义的 16位寄存器数据区,整体左移一个十六进制数,相当于二进制的 4bits。
2009-7-29 169
七、位操作指令位操作就是指被操作的对象不是字,而是字中的某一位或几位 。 FP1系列 PLC具有较强的位操作能力,可以进行
16位数据的位置位 (置 1),位复位 (清 0)、
位求反以及位测试,还可计算 16位或 32
位数据中,位值为? 1” 的位数 。 位操作指令共有 6条,可分为位处理指令和位计算指令两类 。
由于这些指令可以对寄存器中
2009-7-29 170
1.位处理指令
[ F130 BTS,D,n],位置 1指令 。
[ F131 BTR,D,n],位清 0指令 。
[ F132 BTI,D,n],位求反指令 。
[ F133 BTT,D,n],位测试指令 。
前 3条指令的功能是对位进行运算处理,分别对 D寄存器中,位地址为 n的数据位进行置位 (置 1),复位 (清 0),求反 。
其中,由于 n用来表示 16位数据的位地址,因此取值范围为
K0 ~ K15。
第 4条指令用于测试 16位数据 D中任意位 n的状态为,0”
还是为,1”。 测试的结果存储在内部继电器 R900B中,如果测试结果为 0,则 R900B=1;测试结果为 1,R900B=0。
2009-7-29 171
2.位计算指令位计算指令就是计算寄存器的数据或常数中有多少位是,1”。
[ F135 BCU,S,D],16位位计算指令 。
[ F136 DBCU,S,D],32位位计算指令 。
F135(BCU)和 F136(DBCU)的功能是分别统计 S指定的
16位和 32位数据中位值为,1”的位的个数,并把统计的结果存储于 D指定的存储区中 。
2009-7-29 172
八、特殊指令
1、时间变换指令,F138(HMSS)、
F139(SHMS)
FP1-C24以上机型均有日历及实时时钟功能 。 使用手持编程器或编程软件将年,月,日,时,分,秒,星期等的初值设置到特殊数据寄存器 DT9054 ~ DT9057中,
即可实现自动计时,即使断电后,计时也不会间断 。 校表时,采用舍入法,DT9058是 30秒校表寄存器,当
DT9058置入,1”时,若秒位显示小于 30秒则舍去,若大于 30秒,则分位加,1”。
2009-7-29 173
1) F138(HMSS)
格式,[ F138 HMSS S,D ]
功能:将以时 /分 /秒格式表示的时间数据,变换成以秒为单位的时间数据 。 将 (S+1,S)中存放的时 /分 /秒数据转换为秒数据,结果存放于寄存器 (D+1,D)中 。 在这里,S和 D中的数据均用 BCD码表示 。 表示形式如下图所示 。
图 3-47 F138指令中 S和 D的含义
2) F139(SHMS)
格式,[ F139 SHMS S,D ]
功能:将以秒为单位的时间数据,变换成以时 /分 /秒格式表示的时间数据 。 功能与 F138完全相反 。
源 操 作 数
S + 1 S
时 数 据
H 0 0 0 0 ~ H 9 9 9 9
分 数 据
H 0 ~ H 5 9
秒 数 据
H 0 ~ H 5 9
H
数 据,
范 围 ( B C D ),
D + 1 D
秒 数 据
H 0 0 0 0 0 0 0 0 ~ H 9 9 9 9 9 9 9 9
H
目 的 操 作 数
2009-7-29 174
2、进位位 (CY)的置位和复位指令:
F140(STC),F141(CLC)格式,[ F140 STC ],[ F141 CLC ]功能,F140(STC)和 F141(CLC)指令是 FP1高级指令中仅有的两条无操作数的指令,其功能是将特殊内部继电器 R9009(进位标志位 )置位和复位,即将 R9009置为 1或者清 0。
3、刷新部分 I/O指令,F143(IORF)
格式,[ F143 IORF D1,D2 ]
功能:刷新指定的部分 I/O点 。
F143指令只要触发信号接通,即使在执行程序阶段,也能立即将输入 (WX)或输出 (WY)寄存器 D1至 D2的内容刷新,避免由扫描时间造成的延时 。 该指令要求 D1
和 D2为同一类型的操作数,且 D2≥D1。
2009-7-29 175
4、串行数据通信指令,F144(TRNS)
格式,[ F144 TRNS S,n ]
功能:通过 RS232串行口与外设通讯,以字节为单位,发送或接收数据 。 一般型号末端带,C”的 PLC带有 RS232串行口 。
其中,S为发送或接收数据的寄存器区首地址,且 S只能使用数据寄存器 DT。 寄存器 S用作发送或接收监视之用,
之后的寄存器 S+1,S+2,……,存放着发送或接收的数据 。
也就是说,S+1为发送和接收数据的首地址,数据存放在
S+1及以后的寄存器中 。 n则用来设定要发送的字节数 。
1) 数据发送,特殊内部继电器 R9039是发送标志继电器,
发送过程中 R9039为 OFF状态,结束后为 ON状态 。
2) 数据接收,特殊内部继电器 R9038是接收标志继电器,
接收过程中 R9038为 OFF状态,结束后为 ON状态 。
2009-7-29 176
5、并行打印输出指令,F147(PR)
格式,[ F147 PR S,D ]
功能:通过并行通讯口打印输出字符 。 每次执行打印指令可连续打印 12个字符,并占用 37个扫描周期,由 Y8自动发出打印脉冲 。 C24以上晶体管输出型的 PLC具有并行打印输出功能 。
其中,S指定了要输出字符的首地址,S和随后的 S+1、
S+2等保存的必须是字符型 ASCII数据 。 D为打印机信号输出,
只可用 WY输出继电器,且 0 ~ 8位与打印机对应,PLC与打印机之间的连线如下表所示 。
表 3-21 FP1与打印机连接端点晶体管输出型
FP1
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 COM DC+5V
打印机 Data1 Data2 Data3 Data4 Data5 Data6 Data7 Data8 Strobe COM DC+5V
2009-7-29 177
6、自诊断错误设置指令,F148(ERR)
格式,[ F148 ERR n ]
功能:将某特殊状态设置为自诊断错误,或者将由自诊断错误
E45,E50或 E200 ~ E299引起的错误状态复位 。 F148指令的运行由 n决定,n为自诊断错误代码,范围为 0和 100 ~ 299。
n = 0:清除由自诊断错误 E45,E50或 E200 ~ E299引起的错误状态;
n = 100 ~ 299:将指令的触发信号设置为第 n号自诊断错误 。
具体内容请参见手册的,错误代码表,。
7、信息显示指令,F149(MSG)格式,[ F149 MSG S ]
功能:将 S指定的字符常数 (以 M开始的字符串 )显示在 FP编程器 II屏幕上。
2009-7-29 178
8、时间运算指令,F157(CADD)、
F158(CSUB)1) F157(CADD)
格式,[ F157 CADD S1,S2,D ]
功能:在 (S1+2,S1+1,S1)指定的日期 (年,月,日 )和时间 (时,分,秒 )数据中加上 (S2+1,S2)指定的时间数据,
所得的结果 (年,月,日,时,分,秒 )存放在 (D+2,D+1,
D)中,日期,时间数据均用 BCD码表示 。
2) F158(CSUB)
格式,[ F158 CSUB S1,S2,D ]
功能:同 F157(CADD)类似,只是相加运算变为相减运算,详细用法请参考手册 。
2009-7-29 179
第三章结束哈尔滨理工大学电气与电子工程学院电气技术教研室
2003年 3月 24日
2009-7-29 180
第四章 PLC的编程及应用第一节 PLC编程特点和原则一,PLC的编程特点梯形图编程是 PLC编程中最常用的方法。它源于传统的继电器电路图,但发展到今天两者之间有了较大的差别。
1,程序的执行顺序
① 继电器梯形图和 PLC梯形图执行顺序的比较
X1 Y1
Y2
X1 Y1
Y2
继电器梯形图
X1闭合后,Y1,Y2同时得电
PLC梯形图
X1闭合后,Y1先输出,Y2后输出
2009-7-29 181
② PLC程序的扫描执行结果扫描执行方式优点,可滤掉高频干扰,增强抗干扰能力。
缺点,产生响应滞后,影响可靠性。
2,继电器自身的延时效应
Y1
Y1
Y2
X1
X1
Y2
Y1
Y1
X1闭合后,Y1,Y2在同一扫描周期内动作
X1闭合后,Y1,Y2在两个扫描周期内动作
X1
X1
Y1
Y2
X0
Y1
Y0
X0
X1动作时,Y1,Y2
不同时得电与断电
X1动作时,Y0,Y1
同时得电与断电
2009-7-29 182
3.PLC中的软继电器所谓软继电器是指 PLC存储空间中的一个可以寻址的位。
在 PLC中,软继电器种类多、数量大。
如 FP1-C24,共有 R内部继电器 1008个,特殊继电器 64个,定时器 /计数器 144个。
寄存器中触发器的状态可以读取任意次,相当于每个继电器有无数个常开和常闭触点。
2009-7-29 183
二,PLC的编程原则
1,输入 /输出继电器、内部辅助继电器、定时器、计数器等器件的 触点可以多次重复使用,无需复杂的程序结构来减少触点的使用次数。
2,梯形图每一行都是从左母线开始,线圈终止于右母线。
触点不能放在线圈的右边。
接点和线圈的顺序:
X0 X1 Y0X2 X0 X1 Y0 X2
正确程序 错误程序
2009-7-29 184
3,除步进程序外,任何线圈、定时器、计数器、
高级指令等不能直接与左母线相连。 如果需要任何时候都被执行的程序段,可以通过特殊内部常闭继电器或某个内部继电器的常闭触点来连接。
4,在程序中,不允许同一编号的线圈两次输出。 下面的梯形图是不允许的。
R 9 0 1 0 T M R 0,K 1 0 0 T M R 0,K 1 0 0R0
利用内部特殊继电器实现常闭输出利用内部继电器常闭接点实现常闭输出
X1
X0
Y0
Y0
2009-7-29 185
5,不允许出现桥式电路。
注意,触点应画在水平线上,不能画在垂直分支上。
6,程序的编写顺序应按 自上而下、从左至右 的方式编写。
为了减少程序的执行步数,程序应为,左大右小,上大下小,。如:
X0
X2 X4
X1
X3
Y0
Y1
X2 X4 X1 Y0
X0
X0
X2
X4 X3 Y1
错误的桥式电路 桥式电路的替代电路
X0
X1 X2
Y0
0 ST X0
1 S T X 1
2 AN X2
3 O R S
4 OT Y0
不符合上大下小的电路,共 5步
2009-7-29 186
X1 X2
X0
Y0
0 ST X1
1 A N X 2
2 OR X0
3 OT Y0
符合上大下小的电路,共 4步
X0 X1
X2
Y00 ST X0
1 S T X 1
2 OR X2
3 ANS
4 OT Y0
不符合左大右小的电路,共 5步
X1 X0
X2
Y1
符合左大右小的电路,共 4步
2009-7-29 187
第二节 基本电路一,AND运算二,OR运算例如,在锅炉控制过程中,无论是水罐的压力过高,还是水温过高都要产生声光报警。
X1 X2 Y0
AND电路,Y0接受 X1和 X2
的 AND运算结果块1 块2 Y0
AND扩展电路,Y0接受块 1和块 2
的 AND运算结果
X1
X2
Y1
例如,只有当设备的状态为就绪状态,并且按下“开始”
按扭,设备才能开始工作。
OR扩展电路,Y1接受的是块 1
和块 2的 OR运算结果
Y1
块1
块2
OR电路,Y1接受的是 X1
和 X2的 OR运算结果
2009-7-29 188
三,自锁(自保持)电路自锁电路分为:关断优先式和启动优先式关断优先式自锁电路,当执行关断指令,X2闭合时,无论 X1的状态如何,线圈 Y1均不得电。
启动优先式自锁电路,当执行启动指令,X1闭合时,无论 X2的状态如何,线圈 Y1都得电。
X1 X2
Y1
Y1
0 ST X1
1 OR Y1
2 AN/ X2
3 OT Y1关断优先式自锁电路
Y1 X2
X1
Y1
0 ST Y1
1 AN/ X2
2 OR X1
3 O T Y 1
启动优先式自锁电路
2009-7-29 189
四,互锁电路互锁电路用于不允许同时动作的两个继电器的控制,
如电机的正反转控制。
五,时间电路时间电路主要用于延时、定时和脉冲控制中。
时间控制电路既可以用定时器实现也可以用标准时钟脉冲实现。
在 FP1型 PLC内部有多达 100个定时器和三种标准时钟脉冲( 0.01s,0.1s,1s)可用于时间控制。
X0 X2
Y1
Y1Y2
X1 X2
Y2
Y2Y1
0 ST X0
1 O R Y 1
2 AN/ X2
3 A N / Y 2
4 O T Y1
5 S T X1
6 O R Y 2
7 AN/ X2
8 A N / Y 1
9 O T Y2互锁控制电路
2009-7-29 190
1,延时电路下图利用两个定时器组合以实现长延时。
即 Y0在 X0闭合 30秒之后得电。
X1 T M X 1,K 3 0
T1 Y1
时间继电器 TMX1起到延时 30× 0.1=3秒的作用。
X0 T M Y 0,K 1 0
T0 T M Y 1,K 2 0
T1 Y0
0 ST X0
1 TM Y0
K 10
5 S T T 0
6 T M Y 1
K 2 0
1 0 S T T 1
1 1 O T Y 0
X0
T1
Y0
20s10s
T0
2009-7-29 191
下图利用定时器串联实现长延时。即 Y2
在 X0闭合 30秒之后导通。
X0 T M Y 2,K 2 0
T1 Y1
T M Y 1,K 1 0
T2 Y2
0 ST X0
1 TM Y1
K 1 0
5 T M Y 2
K 2 0
9 S T T 1
1 0 O T Y 1
1 1 S T T 2
1 2 O T Y 2
X0
T2
Y1
20s10s
T1
Y2
2009-7-29 192
2.脉冲电路利用定时器可以方便地产生脉冲序列。在上图程序的运行过程中,R0每隔 3秒产生一次脉冲,其脉宽为一个扫描周期。
在 FP1的内部有七种标准的时钟脉冲继电器,分别为
R9018( 0.01s),R9019( 0.02s),R901A( 0.1s ),
R901B( 0.2s),R901C( 1s),R901D( 2s),R901E
( 1min)。若需要这几种时间的脉冲,可直接利用这几个时间脉冲发生器。
R0 T M X 0,K 3 0
T0 R0
0 S T / R0
1 TM X0
K 3 0
4 S T T 0
5 O T R 0
2009-7-29 193
六,分支电路分支电路主要用于一个控制电路导致几个输出的情况。
例如,开动吊车的同时打开警示灯。
下图中,当 X0闭合后,线圈 Y1,Y2同时得电。
X0
Y2
Y1
0 ST X0
1 OT Y1
2 O T Y 2
2009-7-29 194
第三节 PLC编程实例一,电动机正反转控制
1.系统结构利用 PLC控制一台异步电动机的正反转。
输入端直流电源 E由 PLC内部提供,可直接将 PLC电源端子接在开关上。交流电源则是由外部供给。
2009-7-29 195
X1
X2
2 4 V D C
C O M
X0
220~240V
Y0
Y1
C O M
P L C
红按钮
KM1
KM2
正转
2 4 V D C
~220 V
~220 V
反转黄按钮蓝按钮
PLC控制电动机正反转外部接线图要求:
黄按钮 按下:电机正转蓝按钮 按下:电机反转红按钮 按下:电机停止
2009-7-29 196
2.系统的控制要求按动黄按钮时:
①若在此之前电机没有工作,则电机正转启动,并保持电机正转;
②若在此之前电机反转,则将电机切换到正转状态,并保持电机正转;
③若在此之前电机的已经是正转,则电机的转动状态不变。
电机正转状态一直保持到有篮按钮或红按钮按下为止。
按动蓝按钮时:
①若在此之前电机没有工作,则电机反转启动,并保持电机反转;
②若在此之前电机正转,则将电机切换到反转状态,并保持电机反转;
③若在此之前电机的已经是反转,则电机的转动状态不变。
电机反转状态一直保持到有黄按钮或红按钮按下为止。
按下红按钮时,停止电机的转动注:电机不可以同时进行正转和反转,否则会损坏系统
2009-7-29 197
3,PLC的 I/O点的确定与分配
4,系统编程分析和实现电机正反转控制 PLC的 I/O点分配表
PLC点名称 连接的外部设备 功能说明
X0 红按钮 停止命令
X1 黄按钮 电机正转命令
X2 蓝按钮 电机反转命令
Y0 正转继电器 控制电机正转
Y1 反转继电器 控制电机反转
X1
Y0
Y0
X1
Y0
Y0
X2
Y1
Y1
电机初步正转控制电路 电机初步正反转控制电路
2009-7-29 198
系统要求电机不可以同时进行正转和反转,如下图所示利用互锁电路可以实现。
利用正转按钮来切断反转的控制通路;利用反转按钮来切断正转的控制通路。
X1 Y1
Y0
Y0
X2 Y0
Y1
Y1
电机正反转的互锁电路
X1 Y1
Y0
Y0X2
X2 Y0
Y1
Y1X1
电机正反转的切换电路
2009-7-29 199
当按下红按钮时,无论在此之前电机的转动状态如何,
都停止电机的转动。
利用红色按钮同时切断正转和反转的控制通路。
X1 Y1
Y0
Y0X2
X2 Y0
Y1
Y1X1 X0
X0
( E D )
0 ST X1
1 O R Y 0
2 AN/ Y 1
3 A N / X 2
4 A N / X 0
5 O T Y 0
6 S T X 2
7 O R Y 1
8 AN/ Y 0
9 A N / X 1
1 0 A N / X 0
11 O T Y 1
1 2 E D
电机正反转的最终控制程序
2009-7-29 200
二,锅炉点火和熄火控制锅炉的点火和熄火过程是典型的定时器式顺序控制过程。
控制要求:
点火过程,先启动引风,5分钟后启动鼓风,2分钟后点火燃烧。
熄火过程,先熄灭火焰,2分钟后停鼓风,5分钟后停引风。
1.PLC的 I/O点的确定与分配锅炉点火和熄火控制 PLC的 I/O点分配表
PLC点名称 连接的外部设备 功能说明
X0 蓝按钮 点火命令
X1 红按钮 熄火命令
Y0 控制继电器 1 控制引风
Y1 控制继电器 2 控制鼓风
Y2 控制继电器 3 控制点火开关
2009-7-29 201
2.编程分析和实现
(1)点火过程工作过程:
当蓝按钮按下( X0接通)后,启动引风( Y0输出 。因 X0选用的是非自锁按钮,故需要利用自锁电路锁住 Y0,同时利用 Y0触发时间继电器 T0,
T0延时 300s( 5分钟)后,输出继电器 Y1动作,即启动鼓风。 同时利用 T0
触发定时继电器 T1,T1延时 120s( 2分钟)后,输出 Y2,点火燃烧。
Y0 T M Y 0,K 3 0 0
T M Y 1,K 1 2 0
X0
Y0
Y0
T0
T1 Y2
( E D )
Y1
0 ST X0
1 O R Y 0
2 OT Y0
3 S T Y 0
4 T M Y 0
K 3 0 0
8 S T T 0
9 O T Y 1
10 TM Y 1
K 1 2 0
1 4 S T T 1
15 O T Y 2
1 6 E D
锅炉点火过程控制程序
2009-7-29 202
( 2) 系统的点火和熄火过程的综合程序下面所示的两个程序都可以实现锅炉系统的点火和熄火过程控制,但实现的方式不同。
图 (a)程序利用了 4个时间继电器,但程序的逻辑关系比较简单易懂。
2009-7-29 203( a) 锅炉系统点火和熄火过程的综合程序 (1)
2009-7-29 204
图 (b)程序利用了 2个时间继电器,节约了 2个时间继电器,但控制 逻辑相对复杂些。
( b) 锅炉系统点火和熄火过程的综合程序 (2)
2009-7-29 205
三,房间灯的控制现在一些宾馆和家庭客厅中的装饰灯,是利用一个开关来实现不同的控制组合。
例如,房间内有 1,2,3号三个灯按动一下开关,三个灯全亮;
再按一下,1,3号灯亮,2号灭;
再按一下,2号灯亮,1,3号灭;
再按一下全部灭。
此控制是利用按动开关次数来控制各个灯的亮、灭,
故可以用计数器来实现计数式顺序控制 。
房间灯控制 PLC的 I/O点分配表
PLC点名称 连接的外部设备 功能说明
X0 按钮 开关命令
Y1 控制继电器 1 控制 1号灯亮灭
Y2 控制继电器 2 控制 2号灯亮灭
Y3 控制继电器 3 控制 3号灯亮灭
2009-7-29 206
房间灯计数式顺序控制程序
2009-7-29 207
这里使用 R9013是程序初始化的需要。一进入程序,
就把十进制数 3赋给 SV100。从这以后 R9013就不起作用了。
在程序中使用微分指令是使 X0具有非自锁按钮的作用。
初始状态,EV100=3,R3通 → Y1,Y2,Y3不通,
3个灯全灭;
第一次接通 X0,EV100=2,R2通 → Y1,Y2,Y3全通,
3个灯全亮;
第二次接通 X0,EV100=1,R1通 → Y1和 Y3通,Y2断,
故 2号灭,1号和 3号灯亮;
第三次接通 X0,EV100=0,R0通 → Y2通,Y1和 Y3断,
故 2号亮,1号和 3号灯灭。
EV100=0时,若再次闭合 X0,则计数器复位,灯全灭,
程序从头开始重复以上过程。
2009-7-29 208
四、多地点控制要求:在三个不同的地方分别用三个开关控制一盏灯,
任何一地的开关动作都可以使灯的状态发生改变,即 不管开关是开还是关,只要有开关动作则灯的状态就发生改变。
三地控制一盏灯 I/O分配表
PLC点名称 连接的外部设备 功能说明
X0 A地开关 在 A地控制
X1 B地开关 在 B地控制
X2 C地开关 在 C地控制
Y0 灯 被控对象
2009-7-29 209
从这个程序中不难发现其编程规律,并能很容易地把它扩展到四地、五地甚至更多地点的控制。 但其设计方法完全靠设计者的经验,初学者不易掌握。
三地控制一盏灯程序( 1)
2009-7-29 210
利用数字电路中组合逻辑电路的设计方法,使编程者有章可循。
规定,输入量为逻辑变量,输出量为逻辑函数;常开触点为原变量,常闭触点为反变量。这样就可以把继电控制的逻辑关系变成数字逻辑关系。
三地控制一盏灯逻辑函数真值表
X0 X1 X2 Y0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
真值表按照每 相邻两行只允许一个输入变量变化的规则排列。 即三个开关中的任意一个开关状态的变化,都会引起输出 Y0由,1” 变到,0”,或由,0” 变到,1” 。
由真值表写出输出与输入之间的逻辑函数关系式:
2102102102100 XXXXXXXXXXXXY
2009-7-29 211
可设计出梯形图程序如下图所示:
三地控制一盏灯程序( 2)
2009-7-29 212
使用高级指令可使程序更加简单 。 下图为应用高级指令
F132编写的控制程序。
三地控制一盏灯程序( 3)
上面的程序只要开关动作 (不管开关是接通还是断开 ),
即将 Y0求反。 程序中每一开关使用了两个微分指令,既可检测上升沿又可检测下降沿,十分巧妙地实现了控制要求。
对于这种编程方式,无论多少个地方,只要在梯形图中多加几个输入触点和几条微分指令就可实现控制要求。
2009-7-29 213
三地控制一盏灯程序( 4)
① 使用条件比较指令,只要( WXO) ≠ ( WRO),就把 YO
求反。
②( WXO) → ( WRO),使两个寄存器中内容完全一样。
③ 只要 WX0中的内容改变,YO的状态就立即变化 。
使用了字比较指令,故 WXO中的 16位都可以用来作为控制开关,使程序大大简化。
2009-7-29 214
五、易拉罐自动生产线计数控制在易拉罐自动生产线上,常常需要统计出每小时生产的易拉罐数量。罐装好的易拉罐饮料一个接一个不断地经过计数装置。假设计数装置上有一感应传感器,每当一听饮料经过时,就会产生一个脉冲。
要求,编制程序将一天 24小时中每小时生产的数量统计出来。
易拉罐计数控制 PLC的 I/O点分配表
PLC点名称 连接的外部设备 功能说明
X0 蓝按钮(自锁) 启动命令
X1 红按钮(自锁) 停止命令
X2 传感器开关 计数脉冲
2009-7-29 215
易拉罐生产数量计数控制梯形图如下:
R9013,对程序初始化。
DT0~ DT23:存放一天 24小时每小时生产罐的数量;
SV0,记录每小时内的时间。
IX作为地址修正值,当 F35指令的操作数地址发生移动时,移动量为 IX中的值。
如:当 IX=0时,F35指令将 DT0的内容加 1;当 IX=10时,则将 DT10的内容加 1。
2009-7-29 216
六、查找最大数上例中,一天 24小时内每小时生产的易拉罐数已分别存储在数据寄存器 DT0~ DT23中。编程找出其中最大的数,
存入 DT24中,并将最大数所在寄存器的编号存入 DT50中。
要求,X0的上升沿开始查找,找到后,输出 Y0表示查找完成。
查找最大数据梯形图
2009-7-29 217
查找数据中的最大数,只需将数据区中的数据进行两两比较即可。
索引寄存器 IX:用作地址修正;
R0:用来表示查找状态。
未查找完时,R0一直接通,当查找结束时,
R0断开。
2009-7-29 218
第五章 FP1的特殊功能及高级模块第一节 FP1的特殊功能
2009-7-29 219
一、脉冲输出电机电机驱动高速计数器脉冲
F P 1
控制单元图 5-1 脉冲输出进行位置控制示意图
FP1的输出端 Y7可输出一路脉冲信号,最大频率范围为 45Hz ~ 5kHz。这一功能只有晶体管输出方式的 PLC才具有,且需配合脉冲输出控制指令 F164(SPD0)使用。
2009-7-29 220
二、高速计数功能( HSC)
在 FP1内部有高速计数器,可同时输入两路脉冲。
最高计数频率,10kHz;
计数范围,K-8388608 ~ K8388607;
输入模式:加计数、减计数、可逆计数、两相输入;
此外,每种模式又分为有复位输入和无复位输入两种情况,输入计数不受扫描周期影响,处理过程中响应时间不延时。
2009-7-29 221
1.占用的输入端子
HSC需占用 FP1输入端子 X0,X1和 X2。其中
X0和 X1作为脉冲输入端,X2作为复位端,可由外部复位开关通过 X2使 HSC复位。
2,输入模式及设置
HSC的四种输入模式中,前三种为单相输入,最后一种为两相输入。如图 5-2所示。
1) 加计数模式
2) 减计数模式
3) 加 /减计数模式
4) 两相输入方式
2009-7-29 222
(a) (b)
(c)
X 0
0 4321
...
计 数 值
...
X 1
3 2 3 4,..
加 计 数 减 计 数 加 计 数
X 1
5 1234
...
计 数 值,..
X 0
0 4321
...
计 数 值,..
(d)
X 0
0 4321
...
计 数 值
...
X 1
...
X 0
5 1234
...
计 数 值
...
X 1
...
图 5-2 四种计数模式的脉冲波形示意图
2009-7-29 223
3.与 HSC相关的寄存器表 5-1 系统寄存器 No.400控制字说明设定值 功 能 输入模式X0 X1 X2
H1 双相输入 - 双相输入方式
H2 双相输入 复位
H3 加计数 - - 加计数方式
H4 加计数 - 复位
H5 - 减计数 - 减计数方式
H6 - 减计数 复位
H7 加计数 减计数 - 加 /减计数方式
H8 加计数 减计数 复位
H0 HSC功能未用 不工作 (默认模式 )
2009-7-29 224
4.高速计数功能指令
1) 高速计数器的控制指令
[ F0 MV,S,DT9052 ]:高速计数器控制指令。
该指令功能是将 S中的控制字数据写入 DT9052中,
DT9052的低四位作为高速计数器控制用。
1 5
与 其 它 高 速 计 数 指 令 有 关 的 位
0,继 续 执 行 F 1 6 2,F 1 6 3,1 6 4,F 1 6 5 指 令
1,清 除 F 1 6 2,F 1 6 3,1 6 4,F 1 6 5 指 令
S,
位 地 址,1 2.,1 1 8.,7 4.,3 02 1
选 择,复 位 输 入 端,X 2 的 可 用 性 控 制 位
0,复 位 输 入 端 X 2 使 能
1,复 位 输 入 端 X 2 禁 止计 数 器 输 入 控 制 位
0,接 受 计 数 输 入
1,计 数 输 入 无 效软 件 复 位 控 制 位
0,不 执 行 软 件 复 位
1,高 速 计 数 器 的 经 过 值 复 位
2009-7-29 225
2) 高速计数器经过值的读写指令
[ F1 DMV,S,DT9044 ]:存储高速计数器经过值。将 (S+1,S)中高速计数器的经过值写入 DT9045,DT9044中。
[ F1 DMV,DT9044,D ]:调出高速计数器经过值。是将 DT9045,DT9044中的经过值读出拷贝到 (D+1,D)中。
3) 高速计数器输出置位复位指令
[ F162 HC0S,S,Yn ]:高速计数器的输出置位指令。
[ F163 HC0R,S,Yn ]:高速计数器的输出复位指令。
2009-7-29 226
4) 速度和位置控制指令
[ F164 SPD0,S ]:速度及位置控制。
该指令配合高速计数器和 Y7的脉冲输出可以实现速度和位置控制。
a) 脉冲工作方式
b) 波形工作方式
5) 凸轮控制指令
[ F165 CAM0,S ]:凸轮控制。当高速计数器的经过值和参数表中设定的目标值相一致时,
接通或断开参数表中指定的输出继电器。
2009-7-29 227
三、可调输入延时滤波图中,t1为干扰脉冲,小于延时时间 Δt,因此不响应; t2,t4分别为机械开关接通和断开时的抖动时间,由图可见,经过延时,避开了输入信号的抖动部分,直接在稳定导通区间 t3进行输入状态的采集和响应。
外 部 输 入响 应 信 号
t
1
t
2
t
4
t
3
t t t
图 5-4 输入信号延时滤波示意图
2009-7-29 228
FP1的延迟时间可以根据需要,在 1 ~
128ms之间进行调节。延时时间的设定是通过软件,
在对应的系统寄存器中设置时间常数来实现,时间常数和延时时间的对应关系如下表:
表 5-2 时间常数与对应延时时间关系系统寄存器 No.404 ~ 407用于预先存放设置的时间常数,与输入端的对应关系为:
No.404:设定 X0 ~ X1F的时间常数。
No.405:设定 X20 ~ X3F的时间常数。
No.406:设定 X40 ~ X5F的时间常数。
No.407:设定 X60 ~ X6F的时间常数。
时间常数
(BCD码 ) 0 1 2 3 4 5 6 7
延时时间 (ms) 1 2 4 8 16 32 64 128
2009-7-29 229
四、输入窄脉冲捕捉一个窄脉冲在第 n个扫描周期的 I/O刷新后到来,若无捕捉功能,
此脉冲将会被漏掉;有了捕捉功能,PLC内部电路将此脉冲一直延时到下一个 (第 n+1个 )扫描周期的 I/O刷新结束,这样 PLC就能响应此脉冲。
图 5-5 脉冲捕捉示意图瞬 间 窄 脉 冲
I / O 刷 新扫 描 周 期捕 捉 后 的输 入 脉 冲执 行 指 令 I / O 刷 新 执 行 指 令第 n 个 扫 描 周 期 第 n + 1 个 扫 描 周 期
2009-7-29 230
只有输入端 X0 ~ X7共 8个输入端可以设成具有脉冲捕捉功能的输入端,这可以通过对系统寄存器 No.402的设置来实现。输入端子与系统寄存器
No.402的位对应关系如下所示:
输入端 X0 ~ X7分别与 No.402的低 8位对应,
当某位设置为 1时,则该位对应的输入端就具有脉冲捕捉功能;设置为 0时,对应的输入端仍是普通的输入端。
07位 地 址,6 5 4 3 2 1
X 0X 7 X 6 X 5 X 4 X 3 X 2 X 1
1 5 8.,,
高 8 位 未 用
2009-7-29 231
五、特殊功能占用输入端优先权排队 大多数特殊功能均需占用 PLC的 I/O点,当多种功能同时使用时,对 I/O的占用须按一定顺序进行优先权排队。
FP1特殊功能优先权排队从高到低依次为:
高速计数器 → 脉冲捕捉 → 中断 → 输入延时滤波六、其他功能
FP1还有一些其它的特殊控制功能,如强制置位 /复位控制功能、口令保护功能、固定扫描时间设定功能和时钟日历控制功能等
2009-7-29 232
第五章 FP1的特殊功能及高级模块第二节 FP1的高级模块
2009-7-29 233
一,A/D转换模块
1,占用通道及编程方法
A/D转换单元 4个模拟输入通道占用输入端子分别为:
CH0,WX9(X90 ~ X9F) CH1,WX10(X100 ~ X10F)
CH2,WX11(X110 ~ X11F) CH3,WX12(X120 ~ X12F)
PLC每个扫描周期对各通道采样一次,并进行模数转换,转换的结果分别存放在输入通道 (WX9 ~ WX12)中。
A/D转换的编程可用指令 F0实现,如 [ F0 MV,WX9,DT0 ] 。执行这一指令后,CH0输入的模拟信号经 A/D转换变成数字信号后送入
WX9,并由 F0指令读出保存到 DT0中。其它通道也可仿照此格式进行编程。
注意,FP1对 A/D模块读取数据,每个扫描周期只进行一次。
2009-7-29 234
2,A/D的技术参数项目 说明模拟输入点数 4通道 /单元 (CH0 ~ CH3)
模拟输入范围 电压 0 ~ 5V和 0 ~ 10V电流 0 ~ 20mA
分辨率 1/1000
总精度 满量程的 ± 1%
响应时间 2.5ms/通道输入阻抗 电压 不小于 1兆欧 (0 ~ 5V和 0 ~ 10V范围内 )电流 250欧姆 (0 ~ 20mA)
绝对输入范围 电压 +7.5V(0 ~ 5V),+15V(0 ~ 10V)电流 +30mA(0 ~ 20mA)
数字输出范围 K0 ~ K1000(H0 ~ H03E8)
绝缘方式 光耦合:端子与内部电路之间无绝缘:通道间连接方式 端子板 (M3.5螺丝 )
2009-7-29 235
1000
500
模 拟 输 入 (V )
0 2.5 5.0
数字输出
(
K
)
(a) 0 ~ 5V (b) 0 ~ 10V (c) 0 ~ 20m A
1000
500
模 拟 输 入 (V )
0 5 10
数字输出
(
K
)
1000
500
模 拟 输 入 (m A )
0 10 20
数字输出
(
K
)
图 5-6 A/D转换单元的输入输出特性
2009-7-29 236
3,A/D转换单元的面板布置及接线方法扩展槽 (右侧 )
连接到 FP1的 D/A转换单元或 I/O LINK单元通道 0到通道 3的端子说明:
V:模拟电压输入端子
I:模拟电流输入端子
C:公共端子
F.G.:框架接地端子电源端子 通道 3电压范围选择端子通道 0 通道 1 通道 2
DIN导轨安装杆扩展槽 (左侧 )
连接到 FP1的控制单元或扩展单元电源指示灯图 5-7 A/D单元的面板布置图
2009-7-29 237
屏蔽线输入设备输入设备屏蔽线图 5-8 电压输入接线方式 图 5-9 电流输入接线方式
2009-7-29 238
4,应用举例当需对某信号进行监测,要求超限报警。这时可将该信号输入到
A/D,并用段比较指令将输入信号与上、下限进行比较。程序如图 5-10
所示。
0
X 0
F 6 2 W I N,W X 9,K 3 4 0,K 3 6 0
8
R 9 0 0 B Y 0
图 5-10 A/D模块信号监控举例若将 A/D模块输入范围选在 0 ~ 10V(即将 RANGE短接 ),并将需监测的信号输入 CH0,则执行该程序后可实现下面功能:设输入信号上限为 3.6V,即对应 A/D内部十进制数为 K360;输入信号下限为 3.4V,
对应 A/D内部十进制数为 K340。当输入信号在 3.4V ~ 3.6V之间时则
R900B常闭触点断开,故 Y0→OFF,报警灯不亮。若信号超出此范围则 R900B常闭触点接通,故 Y0→ON,报警灯亮,从而实现对信号的监测。
2009-7-29 239
二,D/A转换模块
1,占用通道及编程方法
FP1可扩展两个 D/A模块,可用开关设定其单元号,即 No.0和
No.1;每个 D/A模块有两个输出通道,即 CH0和 CH1。
当开关置于左边时,该模块设为 No.0,其 I/O通道分配如下:
CH0,WY9(Y90 ~ Y9F) CH1,WY10(Y100 ~ Y10F)
当开关置于右边时,该模块设为 No.1,其 I/O通道分配如下:
CH0,WY11(Y110 ~ Y11F) CH1,WY12(Y120 ~ Y12F)
D/A转换的编程也可用指令 F0实现,如 [ F0 MV,DT0,WY9 ] 。
执行这一指令后,将 DT0的内容经 WY9送往 D/A转换器,并将转换好的模拟信号经 No.0的 CH0通道输出。其它通道也可仿照此格式进行编程。
注意,FP1对 D/A模块写入数据,每个扫描周期只进行一次。
2009-7-29 240
2,D/A的技术参数项目 说明模拟输出点数 2通道 /单元 (CH0 ~ CH1)
模拟输出范围 电压 0 ~ 5V和 0 ~ 10V电流 0 ~ 20mA
分辨率 1/1000
总精度 满量程的 ± 1%
响应时间 2.5ms/通道输出阻抗 不大于 0.5欧姆 (电压输出端 )
最大输出电流 20mA(电压输出端 )
允许负载电阻 0 ~ 500欧姆 (电流输出端 )
数字输出范围 K0 ~ K1000(H0 ~ H03E8)
绝缘方式 光耦合:端子与内部电路之间无绝缘:通道间连接方式 端子板 (M3.5螺丝 )
2009-7-29 241
图 5-11 D/A转换单元的输入输出特性
5,0
2,5
数 字 输 入 ( K )
0 5 0 0 1 0 0 0
模拟输出
(
V
)
( a ) 0 ~ 5 V ( b ) 0 ~ 1 0 V ( c ) 0 ~ 2 0 m A
1 0
5
数 字 输 入 ( K )
0 5 0 0 1 0 0 0
模拟输出
(
V
)
2 0
1 0
0 5 0 0 1 0 0 0
模拟输出
(
m
A
)
数 字 输 入 ( K )
2009-7-29 242
3,D/A转换单元的面板布置及接线方法图 5-12 D/A转换单元的面板布置图扩展槽 (右侧 )
连接到 FP1的智能单元
(A/D或 D/A转换单元 )
或 I/O LINK单元通道 0和通道 1的端子说明:
V+,V-:模拟电压输出端子
RANGE:电压范围选择端子
I+,I-:模拟电流输出端子电源端子通道 0 通道 1
DIN导轨安装杆扩展槽 (左侧 )
连接到 FP1的控制单元或扩展单元电源指示灯单元号选择开关
2009-7-29 243
图 5-13 电压输出接线方式 图 5-14 电流输出接线方式
0 ~ 5V
负载设备屏蔽线 屏蔽线屏蔽线负载设备 负载设备
5 ~ 10V 10 ~ 20mA
2009-7-29 244
4,应用举例三个模拟量信号分别从 A/D模块的 CH0 ~ CH2输入,求平均值,再由 D/A模块 No.1的 CH1通道输出。梯形图如图 5-15所示。
图 5-15 A/D和 D/A模块应用举例
X 0
F 2 2 +,W X 9,W X 1 0,D T 0
F 2 0 +,W X 1 1,D T 0
F 3 2 %,D T 0,K 3,W Y 1 2
( D F )
( E D )
1
1
2009-7-29 245
第五章 FP1的特殊功能及高级模块第三节 FP1的通讯功能
2009-7-29 246
集散式控制系统的关键技术之一是系统的通信和互联。松下电工提供了 6
种 (C-NET,F-Link,P-Link,H-Link,
W-Link,FP以太网 )功能强大的网络形式,同时提供了若干种与相应的网络连接方式有关的通信链接单元,适合于各种工业自动化网络的不同需要。
2009-7-29 247
一、通讯的有关基本概念
1,并行通信与串行通信
2,同步通信与异步通信
3,波特率
4,单工、双工通信方式
1) 单工通信
2) 半双工通信 (Half Duplex)
3) 全双工通信 (Full Duplex)
2009-7-29 248
二,FP1的通讯接口
FP1系列 PLC进行数据交换时常采用 RS232C,RS422、
RS485三种串行通信接口,相关的链接单元也有三种,均为串行通信方式。
I/O LINK单元 是用于 FP1和 FP3/FP5等大中型 PLC之间进行 I/O信息交换的接口 (1个 RS485接口和 2个扩展插座 );
C-NET适配器 是 RS485? RS422/RS232C信号转换器 (1个
RS485,1个 RS422,1个 RS232C接口 ),用于 PLC与计算机之间的数据通讯;
S1型 C-NET适配器 是 RS485? RS422信号转换器 (1个
RS485,1个 RS422接口 ),用于 C-NET适配器和 FP1控制单元之间的通讯。
2009-7-29 249
1,RS232C通信接口
RS232C所采用的电路是单端接收电路,数据传输速率最高为 20kbps,电缆最长为 15m。
2,RS422通信接口
RS422标准规定的电气接口是差分平衡式的,能在较长的距离内明显地提高传输速率,例如,
1200m的距离,速率可以达到 100kbps,而在 12m等较短的距离内则可提高到 10Mbps。
3,RS485通信接口
RS485实际上是 RS422的简化变型,RS485
分时使用一对信号线发送或接收。可以高速远距离传送,传输距离可达 1200m,传输速率达 10Mbps 。
2009-7-29 250
三、通讯方式
1,FP1与计算机 (PC)之间的通讯一般地,一台计算机与一台 FP1之间的通讯称 1:1方式,
一台计算机与多台 FP1之间的通讯称 1:N方式。
有两种方法可以实现一台计算机与一台 FP1之间的通讯。一种方法是直接通过 FP1的 RS232口与 PC进行串行通讯。另一种方法可经 RS232/RS422适配器用编程电缆同
PC进行通讯。
2009-7-29 251
FP1控制单元
RS232C端口计算机
FP1控制单元计算机
RS422/232C适配器编程工具插座 (RS422端口 )
RS422 RS232C
图 5-17 直接通过 RS232口进行串行通讯 图 5-18 通过适配器进行通讯
2009-7-29 252
C-NET
适配器标准型
C-NET
适配器
S1型
C-NET
适配器
S1型
FP1
控制单元
FP1
控制单元条码判读器计算机最多可连接 32台 FP1
图 5-19 1:N通讯方式
2009-7-29 253
2,FP1与 FP3/5的通讯主站
FP3或 FP5
从站从单元主单元
FP1
控制单元
FP1 I/O
LINK单元
FP3或 FP5 FP1 I/O
终端板
FP1 I/O
终端单元双绞线图 5-20 FP1与 FP3/5的通讯
2009-7-29 254
3,FP1和外围设备之间的通信
FP1的相关外围设备有:智能终端 I.O.P.,条形码判读器,EPROM写入器和打印机等。这些外围设备均设有
RS232串行通信口,可以方便地实现与 FP1的通信。
2009-7-29 255
四、专用通信协议 MEWTOCOL
通信协议是通信双方就如何交换信息所建立的一些规定和过程。它是 FP系列 PLC网络设计的基础。
FP1采用松下电工公司专用通信协议? MEWTOCOL。
该协议共分为两个部分:
MEWTOCOL-COM:计算机与 PLC之间的命令通信协议;
MEWTOCOL-DATA,PLC与 PLC之间及 PLC与计算机之间的数据传输协议。
MEWTOCOL-DATA协议用于分散型工业局域网 H-LINK、
P-LINK,W-LINK及 ETLAN中 PLC与 PLC之间及 PLC与计算机间的数据传输。
2009-7-29 256
第五章结束哈尔滨理工大学电气与电子工程学院电气技术教研室
2003年 3月 24日
2009-7-29 257
第六章 松下电工 PLC编程工具及三维力控监控组态软件简介第一节 松下电工 PLC编程工具简介
FP1系列 PLC的编程手段有两种:
1.利用相应配套编程软件在个人计算机上进行。
2.使用 FP手持编程器。
2009-7-29 258
一,松下电工 PLC编程软件
1,概述日本松下电工公司开发的 PLC编程软件有三种:
① DOS环境下使用的 NPST-GR
② Windows环境下 FPSOFT
③ Windows环境下 FPWIN-GR
● NPST-GR采用的是典型的 DOS界面。 具有中、英文两种版本。因汉化后的 CNPST-GR开发的比较早,对近几年生产的 FPO,FP2等系列 PLC不支持。
● FPWIN-GR软件采用的是典型的 Windows界面。 具有中、
英文两种版本。由于 FPWIN-GR是新近开发出来的软件,其各项功能更趋合理、使用更加方便。
● FPSOFT软件是早期开发的,它的出现开创了 Windows环境的 PLC编程软件的先河。 但由于它开发得较早,虽大部分功能与上述 FPWIN-GR相似,但有些功能不如
FPWIN-GR那样完善。
2009-7-29 259
2,FPWIN-GR软件(汉化 1.1版本)
(1) 认识 FPWIN- GR
FPWIN- GR界面各部分名称及分布:
认识 -
界面各部分名称及分布:
2009-7-29 260
输入段栏
功能键栏在编写程序时:
① 用鼠标点击“功能键栏” 实现指令输入。
② 用功能键,F1”~,F12”与,SHIFT” 的组合实现指令输入。
③ 用功能键,F1”~,F12”与,CTRL”的组合实现指令输入。
各个按钮左下角的数字表示所对应的功能键号 。第 1段、第
2段中分布的是主要指令的快捷键。第 1段的操作 只需按功能键 即为有效。第 2段的操作需 同时按 Shift + 功能键 有效。第 3段中分布的是功能的快捷键。第 3段的操作需 同时按 Ctrl + 功能键 有效。
显示当前正在输入的回路。通过单击输入栏中的 [Enter]或按键盘中的 [Enter]键确认输入内容。
2009-7-29 261
(a) 在功能键栏中输入 [F1],[F2],[F4],[F8]或 [SHIFT]+[F1]( [F2]、
[F8])时,将显示触点线圈的基本指令如下图:
X,输入外部输入
Y,输入外部输出
R,输入内部继电器
L:链接继电器
P:脉冲继电器
T,定时器触点
C,输入计数器触点
E:输入错误警告继电器比较,输入数据比较指令
NOT/,将到光标位置为止的运算结果反转
INDEX:输入索引修饰
№清除,清除输入区段中的设备编号
↑↓:用于上升沿检出 /下降沿检出的图形符号。能否使用本功能取决于所用 PLC机型。
2009-7-29 262
(b) 在功能键栏中输入 [F5]时,将显示定时器 /计数器指令 (TM/CT)。
TMX,输入 0.1秒定时器
TMY,输入 1秒定时器
TMR,输入 0.01秒定时器
TML:输入 0.001秒定时器
CT,在输入区段中输入计数器
INDEX:在输入区段中输入索引修饰
2009-7-29 263
(c)在功能键栏中输入 [SHIFT]+[F5]时,将显示比较指令 (CMP)。
D,在进行双字 (32位 )比较指令时输入
=,相等比较时输入
>,大于比较时输入
<,小于比较时输入
2009-7-29 264
(d) 在功能键栏中输入 [F6],[SHIFT]+[F6]或
[SHIFT]+[F9]时,将显示高级指令列表。
2009-7-29 265
高级指令有以下两种类型:
FUN,每次扫描执行型指令,按 [F6]键。
PFUN:微分执行型指令,按 Shift + [F6]键。
在高级指令列表中:
左侧选择指令的类型,右侧会显示出该类型中的相关指令。按指令的序号排列。下部显示相应指令的说明。 选择 [OK],指令出现在编辑画面中。
一个高级指令出现在编辑画面后,需添加相应的指令参数,将光标移到指令中的 []位置处进行添加。 这时功能键栏变为下图。
2009-7-29 266
WX:输入 WX (以字指定的外部输入 )
WY:输入 WY (以字指定的外部输出 )
WR:输入 WR (以字指定的内部继电器 )
WL,WL (以字指定的链接继电器 )
DT:输入 DT (数据寄存器 )
LD:输入 LD (链接数据 )
FL:输入 FL (文件寄存器 )
SV:输入 SV (定时器 ·计数器的设定值 )
EV:输入 EV (定时器 ·计数器的目标值 )
K,在输入区段中输入 10进制常数允许输入范围:
16位运算时,K-32,768 ~ K32,767
32位运算时,K-2,147,483,648 ~ K2,147,483,647
2009-7-29 267
H,在输入区段中输入 16进制常数允许输入范围:
16位运算时,H0 ~ HFFFF
32位运算时,H0 ~ HFFFFFFFF
M:输入字符串常数
f:输入实数常数
INDEX,在输入区段中输入索引寄存器,或者在输入区段内输入设备索引修饰。
№清除,清除输入区段中的设备编号
2009-7-29 268
(e)在功能键栏中输入 [F9]时,将显示指定索引。
注意:
在符号梯形图编辑模式下编写了程序以后,为了确定由梯形图所编写的程序,必须进行?程序转换? 处理。
在进行程序转换处理时,有以下几点限制:
1) 程序行数的限制一次可转换的程序行数须在 33行以内。
2).折回点的限制在一个程序块中,所使用的折回点总数不能超过 32个。
3),OR指令数的限制连续输入的 OR指令数量不能超过 33个。
2009-7-29 269
4),OT指令数的限制连续输入的 OT指令数量不能超过 33个。
5),PSHS指令数的限制可连续使用的 PSHS指令的次数有一定限制。限制数量随 PLC机型的不同而有所差别。
FP0,FP1,FP-M,最多 8次
FP10,FP10S,最多 5次
FP5,FP3,FP-C,FP2,FP2SH,FP10SH
:最多 7次
2009-7-29 270
3,FPWIN- GR应用举例下面通过一个简单的例子说明如何利用 FPWIN-GR输入程序。梯形图程序如图所示。
启动 FPWIN-GR,选择“创建新程序”,在选择机型的对话框中选择,FP1 C24,C40”,此时在屏幕上显示的是?符号梯形图编辑?区 (若在标题栏显示的不是
“符号梯形图编辑”,可以选择菜单“视图 \符号梯形图编辑” ),在屏幕的左上角显示一个 绿色的矩形光标。
X0 Y0
X1 Y1R901C
Y2
( E D )
0 ST X0
1 OT Y0
2 S T X 1
3 AN R 9 0 1 C
4 O T Y 1
5 O T Y 2
6 E D
2009-7-29 271
利用鼠标(也可用键盘)操作输入程序如下:
1) 输入 [F1]-[F1]-[0]-[Enter],显示结点 X0。
2) 输入 [F4]-[F2]-[0]-[Enter],显示结点 Y0。
通过 1),2)两步所输入的程序如下图所示,
3)输入 [F1]-[F1]-[1]-[Enter],显示结点 X1。
4)输入 [F1]-[F3]-[9]-[0]-[1]-[C]-[Enter],显示结点 R901C。
5)输入 [F4]-[F2]-[1]-[Enter],显示结点 Y1。通过以上几步所输入的程序如下图:
X0 Y0
X0 Y0
X1 Y1R901C
2009-7-29 272
6)将光标放在结点 R901C和 Y1之间的下一行,输入 [F3]-
[F4]-[F2]-[2]-[Enter]显示结点 Y2。
输入的程序如下图所示,
7)输入 [Shift]+[F4]-[Enter],显示程序结束标志。此时完全输入例程。
8) [Ctrl]+[F1],进行程序转换,然后保存文件即可。
选择菜单,视图 \布而非梯形图编辑,,即可看到本程序的助记符程序如图 6-9( a)所示。
X0 Y0
X1 Y1R901C
Y2
2009-7-29 273
二,FP编程器 Ⅱ
FP编程器 Ⅱ 是一种手持编程工具。 适用于 FP
系列的 PLC(FP1,FP3,FP5,FPl0S,FPl0,FP-C和
FP-M等 )。
手持编程器的功能如下:
① 程序编辑。
② FP编程器 Ⅱ 具有? OP”功能 。 用此功能,可监视或设置存储于 PLC中的继电器通/断状态、寄存器内容以及系统寄存器参数等。
③ 程序双向传送到 FPWIN- GR或 PLC中等。
2009-7-29 274
1,FP编程器 Ⅱ 键盘功能介绍
FP编程器 Ⅱ 如下图所示。
2009-7-29 275
(1)插座插座是 FP编程器 Ⅱ 与 PLC,PC机或调制解调器相连接的接口。当与 FP1,FP3,FP5,FPl0S或 FPl0相连时,可用 作为 RS422接口; 当与 FP-C和 FP-M连接时,可作为
RS232接口。
(2)液晶显示器 (LCD)
LCD用于显示指令及信息。在显示窗口可同时 显示两行信息或数据 。 若出现错误,在显示窗口的上一行将显示出错信息。
(3)操作键利用操作键,可通过 FP编程器 Ⅱ 进行输入指令与设置系统寄存器值,以及监视继电器或寄存器等项操作。
FP编程器 Ⅱ 上共有 35个键。
2009-7-29 276
ST
X-WX
继电器指令键
① 用于输入 ST(初始加载 )指令。
② 用于输入 X或 WX触点 。
AN
Y-WY
① 用于输入 AN(与 )指令。
② 用于输入 Y或 WY(输出继电器 )。
OR
R-WR
OT
L-WL
FN/P
FL
NOT
DT/Ld
① 用于输人 OT(输出 )指令。
② 用于输人 L或 WL(链接继电器 )。
① FN为? 扫描执行方式? 的高级指令 ; P为“脉冲执行方式”的高级指令。每按一次该键,可交替输入 FN和 P。
② 用于输入 FL(文件寄存器 )。
① 用于输入 NOT(非 )指令。
②用于输人 DT(数据寄存器 )或 LD(链接数据寄存器 )。
① 用于输人 OR(或 )指令。
② 用于输人 R或 WR(内部继电器 )。
2009-7-29 277
STK
IX/IY
① 当输入 ANS(组与 )指令时,依次按 键和该键。
②当输人 ORS(组或 )指令时,依次按 键和该键。
③ 用于输入 Ⅸ 或 IY(索引寄存器 )。
AN
Y-WY
OR
R-WR
TM
T-SV ① 用于输入 TM(定时器 )指令。②用于输入 T(定时器触点 )或 SV(定时器/计数器的预置值 )。
CT
C-EV
① 用于输入 CT(计数器 )指令。
②用于输入 C(计数器触点 )或 EV(定时器/计数器的经过值 )。
字母数字键
4
=
C
D
D
<
E
>
F 8 9 BA
765 2 30 1
① 数字键用于输入数值和序号。
② 当输入 ST,AN或 OR指令后,还可输入上挡键,=”,,>”,
,<” 及,D”,以组成字比较指令。
2009-7-29 278
其它键
,帮助/清除”键
(HELP)
CLR
① 当显示指令时,用此键可清除 LCD下面一行的指令名和操作数,而地址仍保留,以便输人新的指令。
② 当监视寄存器时,用此键可清除寄存器值,以便重新设置新的数值。
③在初始状态下,若按 键后再按此键,可显示非键盘指令的代码表。
④在执行 OP功能时,若按 键后再按此键,可列出 OP功能表。
SHIFT
SC
SHIFT
SC
,全清,键
ACLR ① 清除当前显示的所有数据 (清屏 )。②若执行 OP功能过程中按此键,将退出 OP功能。
③ 按此键后,将显示出两个 (* *)号,此状态称为,初始状态,。
,删除 /插人,键
(DELT)
INST
① 在程序中插入刚输入的指令。
②按 键后再按此键,可删除 LCD中下面一行中的内容。SHIFTSC
2009-7-29 279
,数制转换/常数,键
(BIN)
K/H
① 输入常数字符 K或 H时,每按一下此键,将交替显示 K或 H。
②按此键可以以十进制 (K)或十六进制 (H)显示寄存器值。依次按 键和此键,还可以以二进制显示寄存器值。SHIFTSC
,指令切换,键
SHIFT
SC
① 按此键进人 SC方式,在 SC方式下可输人一些键盘上没有的基本指令 (非键盘指令 ),如 ED(结束 )或 NOP(空操作 )指令。 再按一下此键,即可退出 SC方式。
用此键激活一些键上用橙色表示的一些功能。例如先按此键,
然后再按 键,可删除当前屏上的指令。(DELT)INST
,操作/负号,键
(- )
OP
① 用此键可进入 OP功能,但需先按 键后再按此键。
②用此键可为常数或数值输人负号。
ACLR
2009-7-29 280
,查找 /上箭头,键
SCR
▲
① 查找带有继电器、寄存器名的指令程序和地址。
②按此键可使 LCD上显示的指令按地址顺序向上滚动。
,读取/下箭头,键
READ
▼
① 从 PLC中读取指令、继电器状态或寄存器值。
②按此键可使 LCD上显示的指令按地址顺序向下滚动。
,写人,键
WRT
为将指令、寄存器值或继电器状态写入 PLC,在输入指令或参数后,须按此键。
,输人,键
ENT ① 录人高级指令名和高级指令,CT,TM指令的操作数。②录入所选择的 OP功能。
2009-7-29 281
说明:
(1)有些键具有两种或多种功能,如 键既可以输入 ST指令,也可以输入继电器名称 X,WX。而具体输入的内容将根据当时的操作而自动识别。
当需输入指令码时,按此键输入的是 ST;若是在输入基本指令后再按此键,
则输入 X;当输入高级指令 [例如 F0( MV) ]之后,按此键则输入为 WX。
(2)一些操作键上的斜线(/)表示每按一次键,被斜线隔开的字符将交替输入显示。
(3)一些操作键上用橙色表示的字符或功能(如 BIN,—,DELT,HELP),
只有先按了 键后再按这些键才有效。
(4)每按一次键,蜂鸣器会响一下。如果输入了错误的数值,蜂鸣器就会响两次。 所以,当听到蜂鸣器响两声时,须重新输入正确的数值。若连续发声报警,说明操作或运行有误。 错误信息随之显示于 LCD的上面一行。
若要停止报警,可按 键或 键停止报警并删除错误指令或解除错误运行状态。
ST
X-WX
SHIFT
SC
ACLR (HELP)CLR
2009-7-29 282
2,指令输入方式指令按其输入方式可分为 三类,键盘指令、非键盘指令和高级功能指令。
1)键盘指令这类指令是指键盘上已标明的指令,只需直接按键即可输人。
2)非键盘指令这类指令是指键盘上没有,需用指令代码方可输入的指令。 输入步骤分为两种:
a.当已知指令代码,输入指令的步骤为:
b.当不知道指令代码需借助 键调出非键盘指令表。其输入指令的步骤为,(HELP)CLR
调出非键盘指令表将要输入的指令移到当前行输入查出的指令代码
SHIFT
SC
指令代码
SHIFT
SC WRT
WRTSHIFTSC (HELP)CLR SCR▲ SCR▼ 指令代码
2009-7-29 283
3)高级功能指令这类指令是指键盘上没有,需借助于 键方可输人的指令,一条完整的指令包括有,F”,功能号、助记符和若干操作数,其中除助记符可自动生成之外,其它都需一步一步地输入。 每输入完一个内容后,用键将其存人程序缓冲器中,只有到输入完最后一个操作数后,才用键将其指令存人 PLC。 高级功能指令根据指令中是否有操作数而输入步骤不同。
a.有操作数的高级功能指令,输入操作步骤为:
b.无操作数的高级功能指令,输入操作步骤为:
FN/P
FL
WRT
ENT
WRTFN/ PFL 功能号
WRTFN/ PFL 功能号 ENT 操作数 1 ENT 操作数 n
2009-7-29 284
3.清除命令清除命令可以分为三类,
1)利用 键 清除屏幕当前行显示 (即 LCD上的第二行),以便对该行指令做出修改。
2)利用 键 将当前屏幕显示全部清除,以便进行程序调试、监控等操作,但程序仍保留在内存中,即仍可重新调出。
3)利用 OP-0功能将程序从内存中清除,即程序不能再被调出,这是在输入一个新程序之前必须进行的工作。
有关其他操作细节和 OP功能请读者参阅 FP编程器 Ⅱ 操作手册。
CLR
ACLR
2009-7-29 285
第二节 监控组态软件简介一,监控组态软件简介
1.概念组态软件指一些数据采集与过程控制的专用软件,它们是在自动控制系统监控层一级的软件平台和开发环境,能以灵活多样的组态方式(而不是编程方式) 提供良好的用户开发界面和简捷的使用方法,其预设置的各种软件模块可以非常容易地实现和完成监控层的各项功能,并能同时 支持各种硬件厂家的计算机和 I/O设备,与高可靠的工控计算机和网络系统结合,可向控制层和管理层提供软、
硬件的全部接口,进行系统集成。
2009-7-29 286
2.组态软件的发展和现状世界上第一个把组态软件做为商品进行开发、销售的专业软件公司是美国的 Wonderware公司,它于 80年代末率先推出第一个商品化 监控组态软件 Intouch。此后组态软件得到了迅猛的发展。目前世界上的组态软件有几十种之多,国际上较知名的监控组态软件有,Fix,Intouch,Wincc,LabView,
Citech等。
3.组态软件的特点
① 使用简单,用户只需编写少量自己所需的控制算法代码,
甚至可以不写代码 。
② 运行可靠。
③ 提供数据采集设备的驱动程序。
④ 提供自动化应用系统所需的组件。
⑤ 强大的图形设计工具。
2009-7-29 287
二、力控监控组态软件简介力控监控组态软件 ( ForceControl) 是一个面向方案的 HMI/SCADA( human machine
interface/ supervisory control and data acquisition)
平台软件。分布式实时多数据库系统,可提供访问工厂和企业系统数据的一个公共入口。 内置 TCP/IP
协议的网络服务程序使用户可以充分利用 Intranet
或 Internet的网络资源。
力控可用于开发石油、化工、半导体、汽车、电力等多个行业和领域的工业自动化、过程控制、管理监测、工业现场监视、远程监视 /远程诊断等系统。
2009-7-29 288
1,ForceControl集成环境:
开发系统( Draw),是一个集成环境,可以创建工程画面,
配置各种系统参数,启动力控其它程序组件等。
界面运行系统( View),界面运行系统用来运行由开发系统
Draw创建的画面。
实时数据库( DB),是数据处理的核心,构建分布式应用系统的基础。
它负责实时数据处理、历史数据存储、统计数据处理、报警处理、数据服务请求处理等。
I/O驱动程序,I/O驱动程序负责力控与 I/O设备的通信。它将
I/O设备寄存器中的数据读出后,传送到力控的数据库,然后在界面运行系统的画面上动态显示。
网络通信程序 ( NetClient/NetServer),网络通信程序采用 TCP/IP通信协议,可利用 Intranet/Internet实现不同网络结点上力控之间的数据通信。
2009-7-29 289
2.ForceControl 2.6中其它的可选程序组件,
串行通信程序( SCOMClient/SCOMServer):
两台计算机之间,使用 RS232C/422/485接口,可实现一对一的通信;如果使用 RS485总线,还可实现一对多台计算机的通信。
拨号通信程序( TelClient/TelServer):
任何地方与工业现场之间,只要能拨打电话,就可以实现对远程现场生产过程的实时监控,唯一需要的是 Modem和电话线。
Web服务器程序( Web Server):
Web服务器程序可为处在世界各地的远程用户实现在台式机或便携机上用标准浏览器实时监控现场生产过程。
控制策略生成器( StrategyBuilder):
是面向控制的新一代软件 逻辑自动化控制软件。 提供包括:
变量、数学运算、逻辑功能和程序控制处理等在内的十几类基本运算块,内置常规 PID、比值控制、开关控制、斜坡控制等丰富的控制算法。同时提供开放的算法接口,可以嵌入用户自己的控制程序。
2009-7-29 290
三、力控实例入门
1,建立工程打开应用管理器,选择?增加新应用?,
在应用名称对话框中输入一个应用程序的名称
,MonitorPLC”,按“确定”按钮。在工程列表中会出现新建的工程,单击该工程并进入组态,打开
Draw,开始组态工作。
2,创建点
① Draw导航器中 双击“实时数据库”项 使其展开,在展开项目中 双击“数据库组态” 启动组态程序 DbManger,
如图所示。
2009-7-29 291
② 启动 DbManger后出现 DbManger主窗口,如图所示。
2009-7-29 292
③ 选择菜单命令,点 /新建,或 在右侧的点表上双击任一空白行,出现“指定区域和点类型”对话框,如图所示。
2009-7-29 293
④ 选择? 区域 … 00”及? 数字 I/O点? 点类型,然后 单击? 继续,,按钮,进入点定义对话框,如图所示。
2009-7-29 294
⑤ 在,点名,输入框内键入点名,MX0”,其它参数可以采用系统提供的缺省值。单击,确定”按钮,在点表中增加了一个点,MX0”,
如图所示。
⑥ 重复以上步骤,创建 MX1,MY0,MY1和 MY2点。
最后单击“存盘”按钮保存组态内容,然后单击“退出”按钮,
返回到主窗口。
2009-7-29 295
3.定义 I/O设备在数据库中定义了上述 5个点后,下面将建立一个 I/O
设备 — PLC,上述定义好的 5个点的值将取自 PLC。
① 在 Draw导航器中 双击?实时数据库? 项使其展开,选择? I/O
设备驱动? 项 使其展开,在展开项目中选择,PLC”项并双击使其展开,然后继续选择厂商名
,NaiS(松下电工)” 并双击使其展开后,选择项目,FP系列”,
如图所示。
2009-7-29 296
② 双击 项目,FP系列,出现,I/O设备定义,对话框,在
“设备名称”输入框内键入一个人为定义的名称
,NEWPLC”(大小写不限)。 在通信端口下拉条中选择
,COM1”,“设备地址”输入框内键入 1。其余保持默认值。点击“完成”按钮。如图所示。
此时在导航器的? FP系列? 下面增加了一项
NEWPLC”。
2009-7-29 297
③ 数据连接现在将已经创建的 5个数据库点与 NEWPLC联系起来,以使这 5个点的 PV参数值能与 I/O设备 NEWPLC进行实时数据交换。 这个过程就是建立数据连接的过程。 由于数据库可以与多个 I/O设备进行数据交换,所以我们 必须指定哪些点与哪个 I/O设备建立数据连接。
a,启动数据库组态程序 DbManager,
双击点,MX0”,切换到,数据连接” 一页,出现如图所示对话框。
2009-7-29 298
b,点击参数,PV”,在? 连接 I/O设备? 的? 设备?
下拉框中选择设备? NEWPLC”。点击? 增加? 按钮,
出现如图所示的? 设备连接项? 对话框。
在? 寄存器 /继电器? 选择框中选择? X/WX
(外部输入继电器)?,在“地址”输入框中输入 0,
“位偏移”输入框中输入 0,点击“确定”返回。
2009-7-29 299
重复上述步骤,可连接所有定义过的点。在重复上述步骤时,对于同一个继电器,位偏移依次加 1。 对话框中填写的值如表所示。
MX0 MX1 MY0 MY1 MY2
寄存器 /继电器 X(按位 ) X(按位 ) Y(按位 ) Y(按位 ) Y(按位 )
数据格式 bit bit bit bit bit
地址 0 1 0 1 2
2009-7-29 300
最终结果如图所示。 单击“退出”按钮,返回 DRAW主窗口。
2009-7-29 301
4,创建窗口选择? 文件 [F]/新建? 命令出现?窗口属性?
对话框,如图所示。
全部保持默认值,点击“确定”按扭,建立了一个新的窗口。
2009-7-29 302
按图所示绘制窗口图形 。
2009-7-29 303
5,制作动画连接前面已经做了很多事情,包括,制作显示画面、
创建数据库点,并通过一个自己定义的 I/O设备
NEWPLC”把数据库点的过程值与设备 NEWPLC连接起来。 现在再回到开发环境 Draw中,通过 制作动画链接 使显示画面活动起来。
( 1)定义数据源界面系统除了 可以访问本地数据库 (即与界面系统运行在同一台 PC机上的数据库)外,还可以通过网络访问安装在其它计算机上的 ForceControl
数据库中的数据。 因此,当在界面系统 Draw中创建变量时,如果变量引用的是外部数据源(包括:
ForceControl数据库,DDE服务器或其它第三方数据提供方),首先对要引用的外部数据源进行定义。
2009-7-29 304
激活 Draw菜单? 特殊功能 [S]/数据源定义?,出现“数据源定义”列表框,如图所示。
列表框中已经存在了一个数据源:“本地数据库
( DB)”。这是 系统缺省定义的数据源,它指向本机上的 DB数据库 。
( 2)单击“取消”和“返回”按钮,退出“数据源定义”对话框。
2009-7-29 305
( 3)动画连接有了变量之后就可以制作动画连接。 一旦创建了一个图形对象,给它加上动画连接就相当于赋予它“生命”
使其“活动”起来。 双击,X0”上面的图形,弹出如图所示的“动画连接”对话框。
2009-7-29 306
单击?颜色相关动作? 一列中的?条件? 按扭,
弹出?颜色变化? 对话框如图所示。
2009-7-29 307
单击?变量选择? 按扭,弹出“变量选择”对话框,如图所示。
在上图中,选择,MX0”和,PV”,点击“选择”按扭。然后“确认”每一个对话框,则第一个圆的动画连接就制作完成。同理,按上述步骤定义其余图形的动画连接。 注意变量选择与相应的标注相同,
即 MX0为监视 PLC中的 X0的接点,依次类推。 保存制作结果。
2009-7-29 308
6,配置系统在导航器中选择?配置?、初始启动设置?,
弹出“初始启动设置”对话框,如图所示。 点击? 增加? 按扭,选择? DRAW1”,“确定”该对话框。
2009-7-29 309
到现在为止,上位机的组态程序已经制作完成。 连接 PLC和计算机,启动 FPWIN-
GR,编一小段 PLC程序下载到 PLC中并让其运行,再切换到? 离线? 状态。 然后 在
ForceControl工程管理器中 选择应用程序
MonitorPLC”,进入? 运行系统? 。 接通
PLC的 X0,X1点可以看到组态画面上的图形颜色随 PLC上接点的变化而变化。
2009-7-29 310
第七章 监控组态软件与 PLC应用总体设计第一节 自动售货机 PLC控制与监控组态设计一、仿真系统组成本仿真系统由上位机和下位机两部分组成。上位机利用 PC机,下位机利用松下的 FP1系列可编程控制器 FP1-
C24。
上位机内装北京力控组态软件 FORCECONTROL 2.6
和松下编程软件 FPWIN-GR。组态软件 FORCECONTROL
用以 制作仿真画面、编写仿真程序并与下位机进行通信。
FPWIN-GR是松下可编程序控制器与 PC机联机的编程支持工具,利用 它可以实现程序输入、程序注释、程序修改、
程序编译、状态监控和测试以及设置系统寄存器和 PLC各种参数等 。
2009-7-29 311
二,自动售货机功能分析
1,自动售货机的基本功能售货机基本功能,对投入的货币进行运算,并根据货币数值判断是否能购买某种商品,并做出相应的反应。
2.仿真实验系统中售货机的分析售货机的全部功能是在上位机上模拟的,其部分硬件由计算机软件模拟代替。
如钱币识别系统可以用按压某个“仿真对象”
输出一个脉冲直接给 PLC发布命令。
2009-7-29 312
1)实验状态假设
a 自动售货机只售 8种商品;
b.自动售货机可识别 10元,5元,1元,5角,1角硬币;
c.自动售货机可退币 10元,5元,1元,5角,1角硬币;
d.自动售货机有液晶显示功能;
f.实验中售货机忽略了各种故障以及缺货等因素。
2) 一次交易过程分析
a.初始状态,由电子标签显示各商品价格,显示屏显示友好界面,此时不能购买任何商品。
b.投币状态,按下投币按钮,显示投币框,按下所投币值,
显示屏显示投入、消费、余额数值,当所投币值超过某商品价格时,相应商品选择按钮发生变化,提示可以购买。
c.购买状态,按下可以购买的“选择”按钮,所选的商品出现在出货框中,同时显示屏上的金额数字根据消费情况相应变化。取走商品后出货框消失。
d.退币状态,按下退币按钮,显示退币框,同时显示出应退币值及数量。按下确认钮,则恢复初始状态。
2009-7-29 313
三、设计任务的确定上位机与下位机之间的任务分工:
上位机主要用来完成仿真界面的制作工作;下位机则主要用来完成 PLC程序的编写。
在进行 PLC程序的编写时需要先分配 PLC的 I/O点,确定上、下位机的接口。然后,对上位机和下位机分别进行设计工作。最后,进行上位机设计结果与下位机设计结果的配合工作,经调试后完成整个系统的设计。
一方面,仿真的自动售货机接受 PLC的控制指令并完成相应的动作;另一方面,仿真界面中的仿真自动售货机的运行,都是由组态界面所提供的命令语言来完成的。
2009-7-29 314
四,程序设计部分
1.程序设计说明仿真程序的编写利用了力控组态软件
FORCECONTROL2.6。下位机程序的编制则是利用松下 PLC专用编程软件 FPWIN-GR完成的。
2,PLC程序设计把一次交易过程分为几个程序块:
运行初期电子标签价格的内部传递 ; 投币过程 ;
价格比较过程 ; 选择商品过程 ; 退币过程 。
2009-7-29 315
1)运行初期电子标签价格的内部传递程序的设计仿真系统运行初期的任务:
①要由 PLC向仿真画面相应对象传递已经存储好的价格;
②给投入显示、消费显示及余额显示寄存器清零;
③给存储退币币值的存储器清零。
程序编制过程中,要用到运行初期闭合继电器
R9013,16位数据传送指令 F0,同时在上位机
FORCECONTROL中,必须定义相应的变量,来实现与
PLC程序的对接。
2009-7-29 316
电子标签价格内部传递变量表:
说明 上位机 FORCECONTROL变量 对应 PLC地址投入显示 POITR001.PV WR1
消费显示 POIXF002.PV WR2
余额显示 POIYE003.PV WR3
01商品价格 JG01.PV WR4
02商品价格 JG02.PV WR5
03商品价格 JG03.PV WR6
04商品价格 JG04.PV WR7
05商品价格 JG05.PV WR8
06商品价格 JG06.PV WR9
07商品价格 JG07.PV WR10
08商品价格 JG08.PV WR11
退币 10元 TB$100.PV SV0
退币 5元 TB$50.PV SV1
退币 1元 TB$10.PV SV2
退币 5角 TB$5.PV SV3
退币 1角 TB$1.PV SV4
2009-7-29 317
运行初期电子标签价格的内部传递程序,
系统初始化时,通过运行初期闭合继电器 R9013在第一次扫描时将数值传递给上位机。通过指令 F0给
WR1~ WR11及 SV0~ SV4赋初值。
2009-7-29 318
2) 投币过程每投下一枚硬币,投入显示将增加相应的币值,余额也增加同样的币值。
投币过程变量表:
说明 上位机 FORCECONTROL变量 对应 PLC地址投入一角 TR$1.PV R200
投入五角 TR$5.PV R201
投入一元 TR$10.PV R202
投入五元 TR$50.PV R203
投入十元 TR$100.PV R204
2009-7-29 319
投币过程梯形图:
在上图中,当按下投入一角时,相当于让 R200接通,之所以用一个微分指令,就是要只在接通时检测一次,不能永远加下去 。投入一角要使投入显示、余额显示都相应增加相同数值,加法由 16位加法指令 F20实现的。投入五角、一元、五元、十元,原理同上。
2009-7-29 320
3 ) 价格比较过程价格的比较要贯穿实验过程的始终,只要余额大于某种商品价格时,就需要输出一个信号,提示可以购买。 这里用选择灯来代表此信号。
价格比较过程变量表说明 上位机 FORCECONTROL变量 对应 PLC地址
01商品灯亮 D01.PV Y0
02商品灯亮 D02.PV Y1
03商品灯亮 D03.PV Y2
04商品灯亮 D04.PV Y3
05商品灯亮 D05.PV Y4
06商品灯亮 D06.PV Y5
07商品灯亮 D07.PV Y6
08商品灯亮 D08.PV Y7
2009-7-29 321
价格比较梯形图,
本图中,在程序执行过程中,R9010
始终保持闭合,是 16
位数据比较指令,
F60用来比较余额和商品的价格,R900A
是大于标志,R900B
是等于标志。 当余额大于等于某种商品价格时,程序使相应的指示灯闪烁表示可以购买该种商品。
2009-7-29 322
4)选择商品过程当投入的币值可以购买某种商品时,按下相应的“选择”按钮即可在出货框中出现该种商品,同时消费显示栏中显示出已经消费掉的金额,余额也将扣除已消费的币值,接着余额继续与价格比较,
判断是否能继续购买。 出现在出货口的商品在没有取走前,一直保持显示状态,用鼠标点击该商品代表已经取走,出货口中的商品隐藏。
2009-7-29 323
选择商品过程变量表,
说明上位机
FORCECONTROL
变量对应 PLC
地址选择 01商品 XZ01.PV R205
选择 02商品 XZ02.PV R206
选择 03商品 XZ03.PV R207
选择 04商品 XZ04.PV R208
选择 05商品 XZ05.PV R209
选择 06商品 XZ06.PV R20A
选择 07商品 XZ07.PV R20B
选择 08商品 XZ08.PV R20C
01商品出现 CX01.PV Y8
02商品出现 CX02.PV Y9
03商品出现 CX03.PV YA
04商品出现 CX04.PV YB
05商品出现 CX05.PV YC
06商品出现 CX06.PV YD
07商品出现 CX07.PV YE
08商品出现 CX08.PV YF
取 01商品 Q01.PV R230
取 02商品 Q02.PV R231
取 03商品 Q03.PV R232
取 04商品 Q04.PV R233
取 05商品 Q05.PV R234
取 06商品 Q06.PV R235
取 07商品 Q07.PV R236
取 08商品 Q08.PV R237
2009-7-29 324
选择商品梯形图:
2009-7-29 325
选择商品梯形图 (续上图):
2009-7-29 326
在选择商品的过程中:
一是要使商品出现在出货框中,二是要实现内部货币的运算。
如:按下选择 01商品键,相当于给 R205加一个信号
(只接受一次脉冲,所以用 DF微分指令),当 Y0接通( 01
商品灯亮)时,则系统显示可以购买 01商品。由于取 01商品 R230是常闭触点,故 Y8输出,代表在出货框中出现 01商品,购买成功。当按下取 01商品按钮时,R230断开,不能输出 Y8,代表 01商品被取走。
内部币值的计算和是否取走商品无关,只要按下选择按钮,并且可以购买此商品就要从余额中扣除相应的金额,
显示消费的币值。 加法由 F20指令实现,减法由 F25指令实现。
2009-7-29 327
5)退币过程在退币过程中,最主要的是要完成退币的运算过程,根据结果输出相应的钱币,退币结束时还要给程序中使用到的某些寄存器重新赋零。
退币过程变量表:
说明 上位机 FORCECONTROL变量 对应 PLC地址退币按钮 TENTER R20F
退币 0.1元 TB$1.PV SV4
退币 0.5元 TB$5.PV SV3
退币 1元 TB$10.PV SV2
退币 5元 TB$50.PV SV1
退币 10元 TB$100.PV SV0
退币确任按钮 TUIBIOK.PV R0
2009-7-29 328
退币过程梯形图:
2009-7-29 329
退币过程,在按下退币按钮(即 R20F接通)时执行,
同样也用到一个微分指令,在接收到信号时产生一次开关脉冲,进而执行一次其下面的指令。
F32是除法指令,第一次将余额的币值除以 1000,商存储于 SV0中,作为退币 10元的输出值。余数则存储于特殊数据寄存器 DT9015中,下次将不能被 1000( 10元)整除的余数除以 500( 5元),商存储于 SV1中,余数继续下传,直至被 1角除过,由于所投币值最小是 1角,并且商品价格也确定在整角,所以最终能被 1角整除。
在程序的初始化时曾给 WR13,WR15,WR17、
WR19和 WR20赋零,WR13,WR15,WR17,WR19和
WR20是程序的中间量。
退币过程结束后,PLC要将寄存器中的数值置回原定的初值 0,完成一次交易,防止下一次交易时出错。
2009-7-29 330
数据初始化梯形图:
程序中分别将投入显示、消费显示、余额显示,10元存储,5元存储,1元存储,5角存储和 1角存储清零,还将中间量 WR13,WR15,WR17,WR19和 WR20清零。
2009-7-29 331
五、仿真界面的设计
1.售货机背景的设计售货机背景是一个不动的画面,可以利用图片处理的方法按照制定样式的功能画出售货机的整体。
2009-7-29 332
2.显示屏部分的设计图中的欢迎字符是可以闪烁变化的,‘ aaaa’字符可以用来显示系统的时间。
交易过程中的币值显示画面如下图:
2009-7-29 333
3.电子标签的设计电子标签用来显示程序中传递上来的价格,其中要有可以定义的字符,设计出的标签为 。
其中的字符‘ J.03’表示可以显示 03商品价格的变量。
4.按钮的设计
“选择” 按钮的设计要反映出可以购买和不可购买时的差异,所以其中也要有可以变化的字符。
设计如右图,其中字符‘选择’在满足条件以后可以闪烁变色。按钮均可以动作。
2009-7-29 334
5,投退币提示框的设计投、退币提示框中要有可以投入的硬币、确认按钮以及框架,其中硬币、确认按钮和字符‘ a’均是可以定义的变量。
6,出货框的设计出货框出货框中要有 01至 08商品的示意图以及框架。其中的商品在满足条件后可以出现,鼠标点击后可以消失,是可定义的变量。
投币提示框 退币提示框出货框
2009-7-29 335
六,仿真界面中各变量的定义仿真程序上的各部分若实现仿真功能,就必须定义成相应的变量,再与 PLC程序中的软继电器相匹配,这样才能实现 PLC的控制功能。
1.中间变量中间变量的作用域为整个应用程序,不限于单个窗口。
中间变量适于作为整个应用程序动作控制的全局性变量、
全局引用的计算变量或用于保存临时结果。
该仿真实验系统中有 3个中间变量:
⑴ poiwindows:该变量是控制显示屏的。
poiwindows=1:显示屏进入投币交易状态;
poiwindows=0:显示屏返回初始欢迎状态。
⑵ poiwinJB:该变量是控制投币框的。
poiwinJB=1:显示投币框;
poiwinJB=0:投币框消失。
⑶ poiwinTB:该变量是控制退币框的。
poiwinTB=1:显示退币框,
poiwinTB=0:退币框消失。
2009-7-29 336
2,数据库变量当要在界面上显示处理数据库中的数据时,需要使用数据库变量。一个数据库变量对应数据库中的一个点参数。
数据库变量的作用域为整个应用程序。
数据库变量有三种:实型数据库变量、整型数据库变量和字符数据库变量。
仿真系统中有 56个整型数据库变量,分别对应 PLC程序中的 56个软继电器。
3.仿真界面与 PLC程序的配合定义
⑴初始状态
poiwindows=0:显示屏显示初始欢迎状态。
以 01商品为例,电子标签中的字符‘ J.01’ 对应的变量 JG01.PV与 PLC程序中的地址 WR4相匹配,WR4中存储的数据为 250,如何让字符显示 2.50元呢?
2009-7-29 337
方法,在开发系统( Draw)中,双击字符‘ J.01’,来到
“动画连接”画面,选择“数值输出”中的“模拟”项,
键入‘ JG01.PV/100’即可,由 250到 2.50实际是计算机来完成的。其它的价格也是如此显示的。
动画连接画面
2009-7-29 338
⑵ 投币状态当投币时,按下“投币”提示字,出现投币框。如何定义“投币”呢?双击汉字“投币”,来到“动画连接”画面,
选择“触敏动作”中的“左键动作”,在“动作描述”框中作如下定义:按下鼠标时,poiwinJB=1,poiwinJB这个变量是控制投币框的,当 poiwinJB=1时,出现钱币和提示框;
poiwinJB=0,钱币和提示框隐藏。
下面分别定义提示框和钱币以及? 确认? 按钮 。
双击提示框,来到“动画连接”画面,选择“显示 /隐藏”项,定义 poiwinJB==1时显示,各硬币也用同样的方法定义,“确认”按钮也同样定义,这样就使在按下汉字“投币”时,变量 poiwinJB=1,从而出现投币框,以及硬币等。
定义了投币框的显示状态,用鼠标点击代替了实际过程中的钱币投入动作,最重要的任务是投币运算,下面介绍钱币的定义方法。
2009-7-29 339
以十元为例,双击十元硬币,来到“动画连接”画面,
选择“触敏动作”中的“左键动作”,在动作描述中如下定义:按下鼠标时,poiwindows=1; TR$100.PV=1; 释放鼠标时,TR$100.PV=0;动作描述画面下图所示。
动作描述画面
2009-7-29 340
其中 poiwindows=1,是让显示屏不再显示友好界面,
来到交易界面;
TR$100.PV=1时给 PLC发出一个接通信号,由于
TR$100.PV对应的 PLC地址是 R204,使得 R204继电器导通,
转而执行相应的加十元程序。
同样定义其它钱币,注意其对应的 PLC软继电器。
最后还要定义“确认”按钮。要实现的功能是按下
“确认”按钮时,所有的钱币以及投币提示框均消失。
这里作如下定义:双击“确认”按钮,来到“动画连接”画面,选择“触敏动作”中的“左键动作”,在动作描述中作如下定义:按下鼠标时,poiwinJB=0;
poiwinJB=0时,所有的钱币以及投币提示框均消失,这是由计算机控制的内部变量。
2009-7-29 341
投币以后,显示屏要及时反映出投币情况,同时?选择?指示也要相应变化(闪烁、变色)。 下面来定义显示屏和“选择”按钮。
显示屏要显示 3种数据,分别为:投入显示、消费显示、余额显示。
三种显示均用力控软件自带的附件 — 数码管来显示。
先在工具箱中点击“选择子图项”,在子图库中找到仪表中的数码管,放在显示屏中,作为投入显示,再复制两个,分别作为消费显示、余额显示。双击数码管来到数码管属性设置画面,在表达式中作如下定义:
poiTR001.PV/100,poiTR001.PV连接的是 PLC程序中的
WR1软继电器,是用来存储投入显示数据的,除以 100同样是为了 PLC数据计算的方便。这样就可用数码管来显示投入的币值。 同样定义消费显示,余额显示。
2009-7-29 342
数码管的属性设置画面如图所示,
2009-7-29 343
,选择”按钮要根据余额的数值发生闪烁和变色。
定义过程如下:双击“选择”按钮,来到“动画连接”画面,在“颜色相关动作”中选择“闪烁”
项,分别定义属性和频率,在变量选择项中选择相应的指示灯变量。
以 01商品的选择指示灯为例,在变量选择项中选择 D01.PV==1,满足条件时指示灯变色。
这样就定义好了投币状态的上位机仿真变量,
配合 PLC程序可以实现投币功能。
2009-7-29 344
下图是一幅投币时的画面,投入 6.60元,还未买商品,
注意看显示屏的显示以及选择按钮的变化,此时还不能购买 05号商品(价格 12元)。
2009-7-29 345
⑶ 购买状态定义了投币状态,就可以购买商品了。 当选择指示灯变色以后,按下它,将会在出货口处出现我们要买的商品。
以 01商品为例:定义“选择”按钮:双击“选择”按钮,来到“动画连接”画面,选择“触敏动作”中的“左键动作”,在动作描述中如下定义:
按下鼠标时 XZ01.PV=1;释放鼠标时,XZ01.PV=0。
XZ01.PV与 PLC程序中的 R205相对应,按下可以购买商品的选择键,转而执行相应的 PLC程序同时消费显示增加相应的币值,余额显示减少相应的币值,
此时还要在出货口处出现相应的商品。
2009-7-29 346
用? 显示 /隐藏? 功能来定义在出货口中出现的商品。
双击出货口处的小商品,来到“动画连接”画面,选择“显示 /隐藏”项,定义 CX01.PV==1时显示。定义画面下图所示。
2009-7-29 347
出货口框架的隐藏 /显现是用程序来控制的。 当有一种商品出现在出货口,就会显示框架;当全部商品均消失后框架隐藏。程序如下图所示。图中
R210是控制出货口框架是否出现的继电器。
2009-7-29 348
⑷ 退币状态当按下“退币”按钮时,PLC要进行退币运算。所以 按下“退币“按钮就要与 PLC通讯,执行退币计算。
下面来定义退币按钮。
双击“退币”按钮,出现“动画连接”画面,选择
“触敏动作”中的“左键动作”,动作描述为:按下鼠标,
poiwinJB=0; poiwinTB=1; Tenter.PV=1。释放鼠标,
Tenter.PV=0;内部变量 poiwinJB=0是让投币框消失,
poiwinTB=1是让退币框出现,Tenter.PV与 PLC程序中的
R20F对应。
退币框中要有五种硬币,还要有表示硬币个数的数字。
由于计算中采用的算法使得退币时按照币值大小顺序退币,
例如退五元,只退一个五元,而不退五个一元。定义表示硬币个数的变量只用一位数即可。 在退币时,要退出的硬币及个数显示,而不退的硬币隐藏。
2009-7-29 349
以十元为例,定义钱币时,双击十元硬币,出现动画连接画面,选择“显现 /隐藏”项,在“可见性定义”对话框中 作如下图的定义。
其它硬币定义方法同上。
2009-7-29 350
定义钱币个数,双击十元硬币个数字符,a”,出现
“动画连接”画面,选择“数值输出”中的“模拟”
项,作下图的定义。
同时钱币个数也要定义是否隐藏,定义方法和定义钱币相同 。
2009-7-29 351
定义“确认”键时,按下”确认”键,代表取走了所有硬币,完成此次交易,因此退币“确认”
键的定义很重要。 双击“确认”键,出现“动画连接”画面,选择“触敏动作”中的“左键动作”,
在动作描述栏中定义如下:按下鼠标
poiwinTB=0; 功能:退币框消失;
TuiBiok.PV=1; 功能:给 PLC信号,闭合 R0,
完成数据的初始化;
poiwindows=0; 功能:显示屏显示友好界面。
2009-7-29 352
为了防止在未取走商品时退币,按下“确认”
键后又不能返回原始状态。 在描述中加入以下一段程序,强行抛掉已经购买的商品。
CX01.PV=0;
CX02.PV=0;
CX03.PV=0;
CX04.PV=0;
CX05.PV=0;
CX06.PV=0;
CX07.PV=0;
CX08.PV=0;
2009-7-29 353
释放鼠标时,TuiBiok.PV=0。只是给 PLC一个微分信号,不能将 R0永远置为 1。 还有一点要注意,
“确认”键也要有隐藏的时候,定义方法同钱币。
定义退币框架:
按下“退币”按钮后就会出现退币框架。可以这样定义:双击退币框架,来到“动画连接”画面,选择“显现 /隐藏”项,在“可见性定义”表达式中定义 poiwinTB==1时显现即可。
2009-7-29 354
七、数据连接
1.定义 I/O设备数据库是从 I/O驱动程序中获取过程数据的,
而数据库同时可以与多个 I/O驱动程序进行通信,
一个 I/O驱动程序也可以连接一个或多个设备。
下面创建 I/O设备。
2009-7-29 355
1) 在 Draw导航器中双击“实时数据库”项使其展开,选择
,I/O设备驱动,项使其展开,在展开项目中选择,PLC”
项双击使其展开,然后继续选择厂商名“松下电工”并双击使其展开后,选择项目双击并按下图定义。
2009-7-29 356
2)单击? 完成? 按钮返回,在? 松下电工? 项目下面增加了一项? PLC001”。
如果要对 I/O设备,PLC001”的配置进行修改,双击项目,PLC001”,会再次出现 PLC001的,I/O设备定义”对话框。若要删除 I/O设备,PLC001”,用鼠标右键单击项目
,PLC001”,在弹出的右键菜单中选择“删除”。
2,数据连接刚刚创建了一个名为,PLC001”的 I/O设备,而且它连接的正是假想的 PLC设备。
现在的问题是如何将已经创建的多个数据库点与 PLC
联系起来,以使这些点的 PV参数值能与 I/O设备 PLC进行实时数据交换,这个过程就是建立数据连接的过程。
2009-7-29 357
由于数据库可以与多个 I/O设备进行数据交换,所以必须指定哪些点与哪个 I/O设备建立数据连接。为方便起见,将数据列表整理成如下表所示。
数字 I/O表
2009-7-29 358
(续上表)
2009-7-29 359
模拟 I/O表
2009-7-29 360
3,运行保存所有组态内容,然后关闭所有力控程序,包括,Draw,DbManager等。
将自动售货机的 PLC程序下传到 PLC装置中并让其执行,切换到离线状态,然后再次启动力控工程管理器,选择本工程,并单击,进入运行,按钮启动整个运行系统。在运行中,可以按照实际自动售货机的功能来操作,以检验所编程序的正确与否。
2009-7-29 361
第二节 五层楼电梯 PLC控制与监控组态设计一、电梯的基本功能在进行上位机程序以及下位机程序编写之前,
首先要做的工作是确定电梯本身所具有的功能和电梯在乘客进行某种操作后应具有的状态。
1.电梯内部部件功能简介在电梯内部,应该有五个楼层( 1-5层)按钮、
开门和关门按钮以及楼层显示器、上升和下行显示器。当乘客进入电梯后,电梯内应该有能让乘客按下的代表其要去目的地的楼层按钮,称为内呼叫按钮。
2009-7-29 362
电梯停下时,应具有开门、关门的功能,即电梯门可以自动打开,经过一定的延时后,又可自动关闭。而且,在电梯内部也应有控制电梯开门、关门的按钮,使乘客可以在电梯停下时随时地控制电梯的开门与关门。
电梯内部还应配有指示灯,用来显示电梯现在所处的状态,即电梯是上升还是下降以及电梯处在楼层的第几层,这样可以使电梯里的乘客清楚地知道自己所处的位置,离自己要到的楼层还有多远,
电梯是上升还是下降等。
2009-7-29 363
2,电梯的外部部件功能简介电梯的外部共分五层,每层都应该有呼叫按钮、
呼叫指示灯、上升和下降指示灯,以及楼层显示器。
呼叫按钮是乘客用来发出呼叫的工具,呼叫指示灯在完成相应的呼叫请求之前应一直保持为亮,
它和上升指示灯、下降指示灯、楼层显示器一样,
都是用来显示电梯所处的状态的。
五层楼电梯中,一层只有上呼叫按钮,五层只有下呼叫按钮,其余三层都同时具有上呼叫和下呼叫按钮。而上升、下降指示灯以及楼层显示器应相同。
2009-7-29 364
3.电梯的初始状态、运行中状态和运行后状态分析
1)电梯的初始状态:设电梯位于一层待命,各层显示器都被初始化,电梯处于以下状态:
a.各层呼叫灯均不亮;
b.电梯内部及外部各楼层显示器显示均为,1”;
c.电梯内部及外部各层电梯门均关。
2)电梯在运行过程中:
a.按下某层呼叫按钮( 1-5层)后,该层呼叫灯亮,
电梯响应该层呼叫;
b.电梯上行或下行直至该层;
2009-7-29 365
c.各楼层显示随电梯移动而改变,各层指示灯也随之而变;
d.运行中电梯门始终关闭,到达指定层时,门才打开;
e.在电梯运行过程中,支持其它呼叫。
3) 电梯运行后状态:在到达指定楼层后,电梯会继续待命,直至新命令产生。
a.电梯在到达指定楼层后,电梯门会自动打开,经一段延时自动关闭,在此过程中,支持手动开门或关门;
b.各楼层显示值为该层所在位置,且上行与下行指示灯均灭 。
2009-7-29 366
二,实际运行中的情况分析
1,分类分析
1) 电梯上行分析:
若电梯在上行过程中,某楼层有呼叫产生时,
可分以下两种情况:
a.若呼叫层处于电梯当前运行层之上目标运行层之下,则电梯应在完成前一指令之前先上行至该层,完成该层呼叫后再由近至远的完成其它各个呼叫动作;
b.呼叫层处于电梯当前运行层之下,则电梯在完成前一指令之前不响应该指令,直至电梯重新处于待命状态为止。
2009-7-29 367
2)电梯下行分析:
若电梯在下行过程中,楼层有呼叫产生时,分以下两种情况:
a,若呼叫层处于电梯当前运行层之下目标运行层之上,
则电梯应在完成前一指令之前先下行至该层,完成该层呼叫后再由近至远地完成其它各个呼叫动作;
b,若呼叫层处于电梯运行层之上,则电梯在完成前一指令之前不响应该指令,直至电梯重新处于待命状态为止。
2.总结规律由以上各种分析可以看出,电梯在接受指令后,总是由近至远地完成各个呼叫任务。 电梯机制只要依此原则进行设计动作,就不会在运行时出现电梯上下乱跑的情况了。
2009-7-29 368
五层楼电梯控制组态仿真界面
2009-7-29 369
左半部分是电梯的内视图,其中包括一个楼层显示灯、开门按钮、关门按钮、一层到五层的呼叫按钮以及电梯的上升和下降状态指示灯等。两扇电梯门打开后可以看到楼道的景象。
右半部分是五层楼宇电梯的外视图,表示五层楼宇和一个电梯的轿箱。 在电梯的外视图中,一层有一个上呼叫按钮五层有一个下呼叫按钮,二、三和四层有上、下呼叫按钮各一个,每个呼叫按钮内都有一个相应的指示灯,用来表示该呼叫是否得到响应。轿箱的电梯门和每层的电梯门都可以 打开。
2009-7-29 370
3.仿真电梯的控制要求
1) 接受每个呼叫按钮(包括内部和外部的呼叫)的呼叫命令,并作出相应的响应。
2)电梯停在某一层(例如 3层)时,此时按动该层( 3层)
的呼叫按钮(上呼叫或下呼叫),则相当于发出打开电梯门命令,进行开门的动作过程;若此时电梯的轿箱不在该层(在 1,2,4,5层),则等到电梯关门后,按照不换向原则控制电梯向上或向下运行。
3) 电梯运行的不换向原则是指电梯优先响应不改变现在电梯运行方向的呼叫,直到这些命令全部响应完毕后才响应使电梯反方向运行的呼叫。 例如现在电梯的位置在一层和二层之间上行,此时出现了一层上呼叫、二层下呼叫和三层上呼叫,则电梯首先响应三层上呼叫,然后再依次响应二层下呼叫和一层上呼叫。
2009-7-29 371
4) 电梯在每一层都有一个行程开关,当电梯碰到某层的行程开关时,表示电梯已经到达该层。
5)当按动某个呼叫按钮后,相应的呼叫指示灯亮并保持,直到电梯响应该呼叫为止。
6)当电梯停在某层时,在电梯内部按动开门按钮,
则电梯门打开,按动电梯内部的关门按钮,则电梯门关闭。 但在电梯行进期间电梯门是不能被打开的。
7) 当电梯运行到某层后,相应的楼层指示灯亮,
直到电梯运行到前方一层时楼层指示灯改变 。
2009-7-29 372
三、设计部分首先,应该做上位机与下位机之间的任务分工:
上位机主要用来完成仿真界面的制作及动画连接工作。
下位机则主要用来完成 PLC程序的运行。
其实,上位机与下位机的设计工作是密切配合的。它们无论在通讯中使用的变量,还是在进行界面仿真时控制的对象都应该是一致的。总体上讲,仿真界面是被控对象,
PLC是存储运行程序的装置,而控制指令则由仿真界面中的仿真控制器件发出。另一方面,仿真界面中仿真电梯的运动,门的运动等,都是由力控组态软件所提供的命令语言来完成的。
2009-7-29 373
1,PLC程序中 I/O点的定义在编程过程中,所用到的 I/O地址分配如下表所示。编程过程可分为电梯内部和电梯外部两部分进行。
说明 对应 PLC地址 说明 对应 PLC地址外部一层上呼叫按钮 R101 外部一层上呼叫灯 Y1
外部二层上呼叫按钮 R102 外部二层上呼叫灯 Y2
外部二层下呼叫按钮 R103 外部二层下呼叫灯 Y3
外部三层上呼叫按钮 R104 外部三层上呼叫灯 Y4
外部三层下呼叫按钮 R105 外部三层下呼叫灯 Y5
外部四层上呼叫按钮 R106 外部四层上呼叫灯 Y6
外部四层下呼叫按钮 R107 外部四层下呼叫灯 Y7
外部五层下呼叫按钮 R108 外部五层下呼叫灯 Y8
一层行程开关 R109 一层位灯 Y9
二层行程开关 R10A 二层位灯 YA
三层行程开关 R10B 三层位灯 YB
四层行程开关 R10C 四层位灯 YC
五层行程开关 R10D 五层位灯 YD
I/O分配表
2009-7-29 374
内部一层呼叫按钮 R10E 电梯上升 YE
内部二层呼叫按钮 R10F 电梯下降 YF
内部三层呼叫按钮 R110 上升指示灯 Y10
内部四层呼叫按钮 R111 下降指示灯 Y11
内部五层呼叫按钮 R112 电梯开门 Y12
开门呼叫按钮 R113 电梯关门 Y13
关门呼叫按钮 R114
开门行程开关 R115
关门行程开关 R116
内部一层呼叫灯 RE
内部二层呼叫灯 RF
内部三层呼叫灯 R10
内部四层呼叫灯 R11
内部五层呼叫灯 R12
(续上表)
2009-7-29 375
2,电梯内部的 PLC编程
1)五层楼的内呼叫灯 PLC程序电梯内部的五个呼叫按钮,指定的是电梯的运行目标。因此在电梯未达到指定目标时,该层呼叫灯应一直有显示(为绿),因此输出时就应该使用保持继电器。另外,当电梯达到指定楼层时,呼叫灯应该灭掉,即保持继电器断开。
先以一层内呼叫灯为例,所得的程序如下图所示。
2009-7-29 376
五层楼内呼叫灯的 PLC梯形图程序如下图,
2009-7-29 377
2) 电梯内的楼层显示器楼层显示器是以电梯是否碰到行程开关来决定的。
显示器同样有保持特性。另外要替换某一显示器的值,
需要电梯接触到其上层或下层的行程开关。
综合以上因素可得程序如下图所示(以第二层显示器为例)。
2009-7-29 378
3)电梯内的电梯升降显示器升降显示器的状态共三种,显示上升、显示下降、或都不显示。 另外,无论上升还是下降,都与电梯的呼叫有密切关系。上升包括了从第一层到第五层的上升运动,下降也同样如此。因此程序应从最基本、简单的过程入手。现以电梯从第四层到第五层的上升为例。
若五层有呼叫,包括两种情况,电梯内呼叫、
电梯外呼叫。 若电梯由第四层上行至第五层,此时
Y10亮,Y11灭,下降触点 YF断开,上升触点 YE闭合。
并列的条件还有四层外部上呼叫闭合、五层下呼叫闭合、五层呼叫按钮的闭合,这些条件同样使得四层显示器改变,因此在编程时都要考虑。
2009-7-29 379
四层升至五层的升降显示器 PLC程序如下图:
2009-7-29 380
由三层升至五层的升降显示器 PLC程序如下图:
由上面的分析可以看出,整个电梯上升显示程序即是对各层的上升程序取程序块并联逻辑操作。
电梯下降指示灯的程序编写方法与上升指示灯的编写方法是一样的。
2009-7-29 381
3,电梯到达楼层后的停止由于在电梯外部有上升呼叫和下降呼叫,
所以 当呼叫方向与电梯运行方向相同时,电梯才能停止 。
下面以向下呼叫停止 R201为例说明。而上升呼叫停止 R200的编程思路与下降呼叫停止 R201相似。
2009-7-29 382
电梯到达呼叫楼层后停止的 PLC程序如下图所示。
当电梯一直显示向下运行,即 Y11
接通时,只有当每层楼的向下呼叫即
Y3,Y5,Y7和该层的行程开关接通时,
电梯到达各层后
R201才接通,否则并不接通。
另外,如果电梯一直停在某一层,
不显示上升与下降,
该层的上呼叫接通时 R201也接通 。
2009-7-29 383
4,电梯的开、关门程序以电梯的开门 Y12程序为例说明。
首先,只有当电梯既不上升也不下降时才能进行开门,即 Y12才能输出。 无论电梯的上升停止或下降停止,只要 R200或 R201有一个输出,电梯经过延时后都会自动开门。如果电梯停在某一层,
按下该层的外部呼叫也会输出 R200或 R201,电梯门也会打开。当开门 Y12输出时,关门 Y13断开。
如果关门 Y13接通时,Y12也应立即断开。
2009-7-29 384
电梯开门的 PLC梯形图程序如下图,
2009-7-29 385
5,电梯外部操作与显示的 PLC程序
1) 外部呼叫电梯外部呼叫与内部呼叫是类似的。一个呼叫灯的接通对应于相应的外部呼叫接通,其关闭条件为相应行程开关闭合,相应升降指示灯闭合。另外,
外部呼叫同样有保持特性,故也应使用保持继电器作为输出。需要指出的是第一、第五层的呼叫是单向的,故其关闭条件也相应变为行程开关闭合
,AND”电梯升降断开。
2009-7-29 386
a,2层 — 4层以 2层为例:
b,1层,5层以 1层为例,
1层电梯外部呼叫梯形图
2层电梯外部上呼叫梯形图
2009-7-29 387
下 呼叫与上呼叫类似,不同之处在于关闭条件中的 Y10
(上升指示)应换为 Y11(下降指示)。
2) 楼层的电梯位置指示灯外部楼层的电梯位置指示灯与电梯内的位置指示灯相同。
3) 电梯的上升与下降设电梯从一层到五层上升。
由于电梯在第一层,此时构成电梯上升的因素包括:二层上 /下呼叫、三层上 /下呼叫、四层上 /下呼叫、五层下呼叫、
内二层呼叫灯、内三层呼叫灯、内四层呼叫灯、内五层呼叫灯,这 11种条件对于电梯的上升是一种逻辑,OR”的关系,
而这些条件的产生的前提条件则是电梯此时在一层,即一层位灯 Y9有输出。可见,Y9与前 11个,OR”逻辑是,AND”的关系。
2009-7-29 388
电梯从一层到五层上升的梯形图如下图:
2009-7-29 389
电梯由二层上升到五层、三层上升到五层、四层上升到五层的编程思路与一层上升到五层相似,
不同之处为上升条件同某层位灯逻辑,AND” 运算之后还应排除电梯下降指示的情况,这里将电梯下降指示 Y11的常闭触点与之串联。另外由于电梯上升,电梯门应关门,电梯下降线圈 YF应断电,这又是和以上程序块取逻辑,AND” 与的过程。
电梯下降程序的编写方法与上升程序的编写方法相似。
需要指出的是,电梯上升与下降都是建立在开门和关门继电器线圈不接通的情况下。
因此,在电梯上升与下降的过程中要将这两个因素考虑在内。
2009-7-29 390
四、五层楼电梯 PLC控制参考程序五层楼电梯仿真系统的 PLC控制参考程序如教材图 7-32所示。由于篇幅的限制,有关五层楼电梯仿真系统界面的制作、脚本程序的编写、仿真系统的运行过程以及系统编程时易出现的问题和解决办法在这儿就不详细地叙述了。读者可把本书配套光盘中的应用程序“五层楼电梯”装载到自己的计算机中运行,通过实际操作了解电梯的基本功能,仔细分析该仿真系统的设计过程,从中学习利用监控组态软件进行 PLC系统设计的方法和技巧。
2009-7-29 2
可编程序控制器问世于 1969年。是美国汽车制造工业激烈竞争的结果。更新汽车型号必然要求加工生产线改变。正是从汽车制造业开始了对传统继电器控制的挑战。 1968年美国
General Motors公司,要求制造商为其装配线提供一种新型的通用程序控制器,并提出 10项招标指标。这就是著名的 GM 10条。
第一章 可编程控制器的基本知识第一节 可编程控制器的产生和发展一、可编程控制器的产生
2009-7-29 3
1.编程简单,可在现场修改程序 ;
2,可靠性高于继电器控制柜;
3,体积小于继电器控制柜;
4,维护方便,最好是插件式;
5.可将数据直接送入管理计算机 ;
6,在成本上可与继电器控制柜竞争;
7,输入可以是交流 115V;
8,输出为交流 115V,2A以上,能直接驱动电磁阀等;
9.在扩展时,原系统只需很小变更;
10.用户程序存贮器容量至少能扩展到 4K。
GM10条是可编程序控制器出现的直接原因:
2009-7-29 4
二,可编程控制器的发展及定义
1969年,美国数据设备公司 (DEC)研制出世界上第一台可编程控制器,并成功地应用在 GM公司的生产线上。
这一时期它 主要用于顺序控制,只能进行逻辑运算,
故称为可编程逻辑控制器,简称
PLC(Programmable Logic Controller)。
70年代后期,随着微电子技术和计算机技术的迅猛发展,使 PLC从开关量的逻辑控制扩展到数字控制及生产过程控制领域,真正成为一种电子计算机工业控制装置,故称为可编程控制器,简称 PC(Programmable
Controller)。但由于 PC容易和个人计算机 (Personal
Computer)相混淆,故人们仍 习惯地 用 PLC作为可编程控制器的缩写。
2009-7-29 5
1985年 1月 国际电工委员会的定义,
“可编程序控制器是一种数字运算的电子系统,
专为工业环境下应用而设计 。 它采用可编程序的存储器,用来在内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式、模拟式的输入和输出,控制各种类型的机械或生产过程。可编程序控制器及其有关设备,都应按 易于与工业控制系统联成一个整体,易于扩充的原则设计,。
2009-7-29 6
三,PLC与传统的继电器逻辑相比
1.可靠性高、逻辑功能强、体积小。
2.在需要大量中间继电器、时间继电器及计数继电器的场合,PLC 无需增加硬设备。
3.随着要求的变更 PLC对程序修改方便。继电器线路要想改变控制功能,必须变更硬接线,
灵活性差。
4.具有网络通讯功能,可附加高性能模块对模拟量进行处理,实现各种复杂控制功能。
2009-7-29 7
四,PLC与工业控制计算机相比
1.PLC继承了继电器系统的基本格式和习惯,对于有继电器系统方面知识和经验的人来说,尤其是现场的技术人员,学习起来十分方便。
2,PLC一般是由电气控制器的制造厂家研制生产,各厂家的产品不通用。 工业控制机 是由通用计算机推广应用发展起来的,一般由微机厂、芯片及板卡制造厂开发生产。它在硬件结构方面的突出优点是 总线标准化程度高,产品兼容性强。
3,PLC的运行方式与工业控制机不同,微机的许多软件不能直接使用。 工业控制机可使用通用微机的各种编程语言,对要求快速、实时性强、模型复杂的工业对象的控制占有优势。但它要求使用者具有一定的计算机专业知识。
2009-7-29 8
4.PLC和工业控制机都是专为工业现场应用环境而设计的。 都具有很高的可靠性。
5.PLC一般具有模块结构,可以针对不同的对象进行组合和扩展。
2009-7-29 9
第二节 可编程控制器的基本结构一,PLC的系统结构
I/O
扩展单元
I/O
扩展接口中 央处理单元
(CPU)
输入接口输出接口限位开关手动开关编码器数字开关电源外部设备接口存储器系统程序用户程序数据编程器上位计算机图形监控系统打印机
EP RO M写 入器盒式磁带机条码判读机电源电磁阀继电器指示灯蜂鸣器
2009-7-29 10
二,PLC各部分的作用
1.CPU
① 诊断 PLC电源、内部电路的工作状态及编制程序中的语法错误。
② 采集现场的状态或数据,并送人 PLC的寄存器中。
③ 逐条读取指令,完成各种运算和操作。
④ 将处理结果送至输出端。
⑤ 响应各种外部设备的工作请求。
2009-7-29 11
二,PLC各部分的作用
2.存储器
① 系统程序存储器,用以存放系统管理程序、监控程序及系统内部数据。 PLC出厂前已将其固化在只读存储器 ROM或 PROM中,用户不能更改。
② 用户存储器,包括用户程序存储区及工作数据存储区。这类存储器一般由低功耗的 CMOS-
RAM构成,其中的存储内容可读出并更改。
注意,PLC产品手册中给出的? 存储器类型? 和? 程序容量? 是针对用户程序存储器而言的。
2009-7-29 12
二,PLC各部分的作用
3.输入输出接口电路输入接口电路,采用光电耦合电路,将限位开关、
手动开关、编码器等现场输入设备的 控制信号转换 成
CPU所能接受和处理的 数字信号 。
PLC的输入接口电路(直流输入型)
2009-7-29 13
二,PLC各部分的作用输出接口电路,采用光电耦合电路,将 CPU处理过的信号转换成现场需要的强电信号输出,以驱动接触器、
电磁阀等外部设备的通断电。 有三种类型,
内部电路
LED
L:负 载
COM
L
~
L
输出端子继电器输出型
① 继电器输出型,为有触点输出方式,用于接通或断开 开关频率较低的 直流负载 或 交流负载 回路 。
2009-7-29 14
内部电路
LED
输出端子
L,负载
COM
L
L
~
( b) 晶闸管输出型
L:负 载输出端子LED
内部电路
COM
L
L
( c) 晶体管输出型
( NPN集电极开路 )
输出端子LED
内部电路
COM
L,负载
L
L
( d) 晶体管输出型
( PNP集电极开路 )
③ 晶体管输出型,为无触点输出方式,用于接通或断开 开关频率较高的 直流 电源负载。
② 晶闸管输出型,为无触点输出方式,用于接通或断开 开关频率较高的 交流 电源负载。
2009-7-29 15
4.电源
PLC的电源 是指将外部输入的交流电处理后转换成满足 PLC的 CPU、存储器、输人输出接口等内部电路工作需要的 直流电源电路或电源模块 。 许多 PLC的直流电源采用直流开关稳压电源,不仅可提供多路独立的电压 供内部电路使用,而且 还可为输入设备提供标准电源。
2009-7-29 16
5.手持编程器手持编程器采用 助记符语言编程,具有编辑、检索、修改程序、进行系统设置、内存监控等功能。可一机多用,具有使用方便、价格低廉的特点。
缺点,不够直观可通过 PLC的 RS232外设通讯口 (或 RS422
口配以适配器 )与计算机联机,利用专用工具软件 ( NPST- GR,FPSOFT,FPWIN- GR)
对 PLC进行编程和监控 。 利用计算机进行编程和监控比手持编程工具更加直观和方便。
2009-7-29 17
6.输入输出 I/ 0扩展接口若主机单元的 I/ O点数不能满足需要时,可通过此接口用扁平电缆线将 I/ O
扩展单元与主机相连,以 增加 I/ O点数 。
PLC的最大扩展能力主要受 CPU寻址能力和主机驱动能力 的限制。
2009-7-29 18
第三节 可编程控制器的原理及技术性能一,PLC的基本工作原理微机,等待命令 的工作方式
PLC,循环扫描 的工作方式
CPU从第一条指令开始按指令步序号作周期性的循环扫描,如果 无跳转指令,则从第一条指令开始逐条顺序执行用户程序,直至遇到结束符后又返回第一条指令,周而复始不断循环,每一个循环称为一个扫描周期。
2009-7-29 19
一个扫描周期主要分为三个阶段:
1,输入刷新阶段
2,程序执行阶段
3,输出刷新阶段输入刷新 程序执行 输出刷新一个扫描周期输入刷新
PLC的扫描工作过程用户输出设备输入端子输入锁存器输入映象寄存器输出映象寄存器输出锁存器输出端子程序执行用户输入设备写读读
2009-7-29 20
一,PLC的基本工作原理由于输入刷新阶段是紧接输出刷新阶段后马上进行的,
所以亦将这 两个阶段统称为 I/ O刷新阶段。 实际上,除了执行程序和 I/ O刷新外,PLC还要进行各种错误检测 (自诊断功能 )并与编程工具通讯,这些操作统称为“监视服务”。
一般在程序执行后进行。
扫描周期的长短主要取决于程序的长短。
由于每一个扫描周期只进行一次 I/ 0刷新,故使系统 存在输入、输出滞后现象。 这对于一般的开关量控制系统不但不会造成影响,反而可以 增强系统的抗干扰能力。
但对于控制时间要求较严格、响应速度要求较快的系统,就需要精心编制程序,必要时采用一些特殊功能,以减少因扫描周期造成的响应滞后。
2009-7-29 21
二,PLC的主要技术指标
1.输入/输出点数( I/O点数)
2.内存容量注意:,内存容量?实际是指用户程序容量,
不包括系统程序存储器的容量。
3.扫描速度 (单位,ms/ k或 μs/步。 )
4.指令条数
5.内部继电器和寄存器数目
6.编程语言及编程手段
7.高级模块主控模块可实现基本控制功能,高级模块可实现一些特殊的专门功能。 如 A/ D和 D/ A转换模块等 。
2009-7-29 22
三,PLC的内存分配及 I/ O点数
1.I/ 0继电器区,I/ 0区的寄存器 可直接与 PLC外部的输入、输出端子传递信息,具有“继电器”的功能,
有自己的“线圈”和“触点”。故常称为,I/ 0继电器区”。
2.内部通用继电器区,只能在 PLC内部使用,其作用与中间继电器相似,在程序控制中可存放中间变量。
3.数据寄存器区,只能按字使用,不能按位使用。一般只用来 存放各种数据 。
4.特殊继电器、寄存器区,被系统内部占用,专门用于某些特殊目的,一般 不能由用户任意占用 。
5.系统寄存器区,用来 存放各种重要信息和参数。 通过用户程序,不能读取和修改系统寄存器的内容。
2009-7-29 23
第四节 PLC的分类及功能一,PLC的分类
1,按结构形式分类
① 整体式
② 模块式
2,按功能分类
① 低档机
② 中档机
③ 高档机分 类 I/ 0点数 程序容量超小型机 64点以内 256~ 1000字节小型机 64~ 256 1~ 3.6K字节中型机 256~ 2048 3.6~ 13K字节大型机 2048以上 13K字节以上
3,按 I/ O点数和程序容量分类
2009-7-29 24
二,PLC的主要功能
1,条件控制功能
2.定时/计数控制功能
3,数据处理功能
4,步进控制功能
5.A/ D与 D/ A转换功能
6,运动控制功能
7,过程控制功能
8.扩展功能
9,远程 I/ 0功能
10.通信联网功能
11.监控功能
2009-7-29 25
第五节 PLC的特点、应用场合和发展趋势一,PLC的主要特点
1,可靠性高、抗干扰能力强。 主要有以下几个方面:
① 隔离 (采用光电耦合器 )
② 滤波
③ 对 PLC的内部电源采取了屏蔽、稳压、保护等措施。
④ 设置了连锁、环境检测与诊断,Watchdog等电路。
⑤ 利用系统软件定期进行系统状态、用户程序、工作环境和故障检测。
⑥ 对用户程序及动态工作数据进行电池备份。
⑦ 采用密封、防尘、抗振的外壳封装结构。
⑧ 以集成电路为基本元件,内部处理过程不依赖于机械触点。 采用循环扫描的工作方式,也提高了抗干扰能力。
2009-7-29 26
2.可实现三电一体化将电控 (逻辑控制 )、电仪 (过程控制 )和电结
(运动控制 )集于一体,可以方便、灵活地组合成各种不同规模和要求的控制系统。
3.编程简单、使用方便、柔性好
4.体积小、重量轻、功耗低
2009-7-29 27
二,PLC的应用场合
1,逻辑控制,可取代传统继电器系统和顺序控制器。
如各种机床、自动电梯、装配生产线、电镀流水线、
运输和检测等的控制。
2,运动控制,可用于精密金属切削机床、机械手、
机器人等设备的控制。
3,过程控制,通过配用 A/ D,D/ A转换模块及智能 PID模块实现对生产过程中的温度、压力、流量、
速度等连续变化的模拟量进行闭环调节控制。
4.数据处理
5,多级控制,利用 PLC的网络通信功能模块及远程 I
/ O控制模块实现多台 PLC之间,PLC与上位计算机的链接,以完成较大规模的复杂控制。
2009-7-29 28
三,可编程控制器的发展趋势
1.在系统构成规模上 向大、小两个方向发展 ;
2.功能不断增强,各种应用模块不断推出 ;
3.产品更加 规范化、标准化 。
2009-7-29 29
第六节 PLC的几种编程语言不采用微机的编程语言,采用梯形图语言、指令助记符语言、控制系统流程图语言、布尔代数语言等。其中 梯形图、指令助记符语言最为常用。
PLC的设计和生产至今尚无国际统一标准,不同厂家所用语言和符号也不尽相同。 但它们的梯形图语言的基本结构和功能是 大同小异 的。
2009-7-29 30
一,梯形图语言梯形图是 在原继电器 — 接触器控制系统的继电器梯形图基础上演变而来的 一种图形语言 。 它是目前用得最多的
PLC编程语言。
注意,梯形图表示的 并 不是一个实际电路而只是一个控制程序,其间的连线表示的是它们之间的逻辑关系,即所谓“软接线”。
常开触点,
常闭触点:
线圈:
注意,它们并非是物理实体,而是?软继电器?。 每个? 软继电器? 仅对应 PLC存储单元中的一位。 该位状态为
,1”时,对应的继电器线圈接通,其常开触点闭合、常闭触点断开;状态为,0”时,对应的继电器线圈不通,其常开、常闭触点保持原态。
2009-7-29 31
二,指令助记符语言助记符语言类似于计算机汇编语言,用一些简洁易记的文字符号表达 PLC的各种指令。
同一厂家的 PLC产品,其助记符语言与梯形图语言是相互对应的,可互相转换。
助记符语言常用于手持编程器中,梯形图语言则多用于计算机编程环境中。
2009-7-29 32
FP1是一种功能很强的小型机,它的某些技术性能是一些同档次机型的小型机所不具备的。 具有通常只在大型 PLC中才具备的功能。
通过主机上配有的 RS422或 RS232接口,可实现 PLC与 PC机之间的通信,将 PC机上的梯形图程序直接传送到可编程控制器中去。
有近 200条的指令。 数据处理功能比一般小型机强。
第二章 松下电工可编程控制器产品- FP1介绍
2009-7-29 33
第一节 FP1系列产品及技术性能一,FP1系列产品类型及构成在 FP系列产品中,FP1属于小型 PLC产品。
该产品系列有 C14,C16,C24,C40,C56和
C72型等多种规格。扩展单元有 E8~ E40四种规格。
以 C字母开头代表主控单元 (或称主机 ),
以 E字母开头代表扩展单元 (或称扩展机 )。
后面跟的数字代表 I/O点数 。
例如 C24表示输入和输出点数之和为 24。
2009-7-29 34
表 2-1 FP1系列 PLC主要产品规格简表品名 类型 I/ O点数 内部寄存器 工作电压 输出形式
C14 标准型 8/ 6
EEPROM
DC24V或
AC100~
240V
继电器、晶体管( NPN,PNP)
C16 标准型 8/ 8
C24
C24C
标准型带 RS232口和时钟/日历 16/ 8
RAM
C40
C40C
标准型带 RS232口和时钟/日历 24/ 16
C56
C56C
标准型带 RS232口和时钟/日历 32/ 24
C72
C72C
标准型带 RS232口和时钟/日历 40/ 32
E8
8/ 0
4/ 4
0/ 8
/
/
继电器、晶体管( NPN,PNP)E16
16/ 0
8/ 8
0/ 16
/
E24 16/ 8 / DC24V或
AC100~
240VE40 24/ 16 /
2009-7-29 35
RS232口 电 池座 电源输入端子 输出端子直流电源输出端子 输入端子
I/O状态指示灯扩展插座方式选择开关运行监视指示灯电位器( V0,V1)
波特率选择开关编程工具连接插座
FP1系列 C24型 PLC控制单元的外形图
2009-7-29 36
1,RS232口只有 C24,C40,C56和 C72的 C型机才配有。 该口能与 PC机通讯编程,也可连接其它外围设备。
2,运行监视指示灯
① 当运行程序时,,RUN”指示灯亮;
② 当控制单元中止执行程序时,,PROG” 指示灯亮;
③ 当发生自诊断错误时,,ERR” 指示灯亮;
④ 当检测到异常的情况时或出现,Watchdog”定时故障时,,ALARM” 指示灯亮。
3,电池座
4,电源输入端子
FP1型主机有交、直流电源两种类型,交流型接 100~
240V交流电源,直流型接 24V直流电源。
2009-7-29 37
5,工作方式选择开关有三个工作方式档位,即,RUN”、,REMOTE”和
,PROG”。
6,输出端子该端子板为两头带螺丝可拆卸的板。 带?,? 标记的端子不能作为输出端子使用。
7,直流电源输出端子在 FP1系列 主机内部均配有一个供输入端使用的
24V直流电源。
8,输人端子该端子板为两头带螺丝可拆卸的板。输入电压范围为直流 12~ 24V。 带?,? 标记的端子不能作为输入端子使用。
2009-7-29 38
9,编程工具连接插座 (RS422口 )
可用此插座经专用外设电缆连接编程工具。
10.波特率选择开关
11.电位器 (V0,V1)
这两个电位器可用螺丝刀进行手动调节,实现外部设定。 当调节该电位器时,PLC内部对应的特殊数据寄存器 DT9040和 DT9041的内容在 0~ 255之间变化,相当于输入外部可调的模拟量。
12.I/ O状态指示灯用来指示输人 /输出的通断状态。
13.I/ O扩展单元接口插座用于连接 FP1扩展单元及 A/ D,D/ A转换单元、链接单元。
2009-7-29 39
二,FP1系列可编程控制器的技术性能可编程控制器的功能是否强大,很大程度上取决于它的技术性能。
表 2-2 FP1系列 PLC控制单元技术性能一览表项 目 C14 C16 C24 C40 C56 C72
主机 I/ O点数 8/ 6 8/ 8 16/ 8 24/ 16 32/ 24 40/ 32
最大 I/ O点数 54 56 104 120 136 152
运行速度 1.6μ s/步程序容量 900步 2720步 5000步程序存储器类型 EEPROM(无电池 ) RAM(备用电池)和 EPROM
指令数 基本 41 80 8l高级 85 111 111
内部继电器 (R) 256点 1008点特殊内部继电器 (R) 64点 64点
2009-7-29 40
项 目 C14 C16 C24 C40 C56 C72
定时器/计数器 (T/ C) 128点 144点数据寄存器 (DT) 256字 1660字 6144字特殊数据寄存器 (DT) 70字 70字索引寄存器 (Ⅸ,IY) 2字 2字主控指令( MC/ MCE)点数 16点 32点跳转标记数 (LBL)个数
(用于 JMP,LOOP指令) 32点 64点微分点数 (DF或 DF/ ) 点数不限制步进数 64级 128级子程序个数 8个 16个中断个数 / 9个程序输入滤波时间 1~ 128ms
自诊断功能 看门狗定时器,电池检测,程序检测特殊功能高速计数 X0,X1为计数输入,可加/减计数。单相输入时计数最高频率为 10KHZ,两路两相输入时最高频率为 5KHZ。 X2为复位输入手动拨盘寄存器 1点 2点 4点脉冲捕捉输入 4点 共 8点中断输入 / 共 8点定时中断 / 10ms~ 30s间隔脉冲输出
1点 (Y7) 2点 (Y6,Y7)
脉冲输出频率,45HZ~ 4.9KHZ
固定扫描 2.5ms × 设定值 (160ms或更小 )
2009-7-29 41
第二节 FP1的内部寄存器及 I/ O配置在使用 FP1的 PLC之前,了解 PLC的 I/ O分配以及内部寄存器的功能和配置是十分重要的。
X,WX为 I/ O区的输入继电器,可直接与输入端子传递信息。 Y,WY为 I/ 0区的输出继电器,可向输出端子传递信息。
2009-7-29 42
表 2-3 FP1系列 PLC内部寄存器配置表名 称 符号 (位/宇 )
编 号
C14,C16 C24,C40 C56,C72
输入继电器
X(bit) 208点,X0~ X12F
WX(word) 13字,WX0~ WXl2
输出继电器
Y(bit) 208点,Y0~ Y12F
WY(word) 13字,WY0~ WYl2
内部继电器
R(bit) 256点,R0~ R15F 1008点,R0~ R62F
WR(word) 16字,WR0~ WRl5 63字,WR0~ WR62
特殊内部继电器
R(bit) 64点,R9000~ R903F
WR(word) 4字,WR900~ WR903
定时器 T(bit) 100点,T0~ T99
计数器 C(bit) 28点,C100~ C127 44点,C100~ C143
定时器/计数器设定值寄存器 SV(word) 128字,SV0~ SVl27 144字,SV0~ SVl43
定时器/计数器经过值寄存器 EV(word) 128字,EV0~ EVl27 144字,EV0~ EVl43
通用数据寄存器 DT(word) 256字,DT0~ DT255 1660字:DT0~ DTl659 6144宇:DT0~ DT6143
特殊数据寄存器 DT(word) 70字,DT9000~ DT9069
系统寄存器 (word) No.0~ No.418
索引寄存器
IX(word)
IX,IY各一个
IY(word)
十进制常数寄存器 K
16位常数 (字 ),K- 32768~ K32767
32位常数 (双字 ),K- 2147483648~ K2147483647
十六进制常数寄存器 H
16位常数 (字 ),H0~ HFFFF
32位常数(双字),H0~ HFFFFFFFF
2009-7-29 43
X和 Y是按位寻址的,而 WX和 WY只能按? 字? 寻址。 X与的地址编号规则完全相同,下面以 X为例说明如下,
如,X110表示寄存器 WXl1中的第 0位,X11F表示寄存器
WXl1中的第 F号位。图示如下:
WX11:
X11F X110
注意,字地址为 0时可省略字地址数字,只给位地址即可。
例:若 X4为,ON”,则 WX0的第四位为,1”。
若 WY1=5,则表明 Y10和 Y12两个触点,ON”。
表中 R和 WR的编号规则与 X,WX和 Y,WY相同。
F E D C B A 9 8 7 6 5 4 3 2 1 0
位址(用十六进制表示)
寄存器地址(用十进制表示)
X
2009-7-29 44
一,输入继电器输入继电器的作用是将外部开关信号或传感器的信号输入到 PLC。
注意,输入继电器只能由外部信号来驱动,而不能由内部指令来驱动,其触点也不能直接输出去驱动执行元件。
二,输出继电器输出继电器的作用是将 PLC的执行结果向外输出,驱动外设 (如接触器、电磁阀 )动作。
注意,输出继电器必须是由 PLC控制程序执行的结果来驱动。
三,内部继电器
PLC的内部寄存器供用户存放中间变量,其作用与继电器 — 接触器控制系统中的中间继电器相似,因此称为内部继电器 (软继电器 )。
2009-7-29 45
四,特殊内部继电器
R9000~ R903F为特殊内部继电器,均有专门的用途,用户不能占用。这些继电器 不能用于输出,只能做内部触点用。 其主要功能是:
1,标志继电器
2,特殊控制继电器,例如,初始闭合继电器 R9013,它的功能是只在运行中第一次扫描时闭合,从第二次扫描开始断开并保持打开状态。
3,信号源继电器五,定时器/计数器( T/ C)
定时器 (T)触点的通断由定时器指令 (TM)的输出决定。 如果定时器指令定时时间到,则与其同号的触点动作。
计数器 (C)的触点是计数器指令 (CT)的输出。 如果计数器指令计数完毕,则与其同号的触点动作。
2009-7-29 46
六,定时器/计数器的设定值寄存器( SV)
与经过值寄存器( EV)
SV是存储定时器/计数器指令 预置值 的寄存器; EV是存贮定时器/计数器 经过值 的寄存器。 EV的值随着程序的运行而递减变化,当它的内容变为 0时,定时器/计数器的触点动作。
每个定时器/计数器的编号都有一组 SV和 EV与之相对应 (表 2-4)
表 2-4 T/ C与 SV,EV对应示意表定时器/计数器编号 设定值寄存器 SV 经过值寄存器 EV
T0
┆
T99
C100
┆
C143
SV0
┆
SV99
SV100
┆
SV143
EV0
┆
EV99
EV100
┆
EV143
2009-7-29 47
七,通用数据寄存器 (DT) 和特殊数据寄存器 (DT)
通用数据寄存器用来存储各种数据。 它是纯粹的寄存器,
不带任何触点。
特殊数据寄存器是具有特殊用途的寄存器。每个数据寄存器由一个字 (16-bit)组成。
八,索引寄存器 (Ⅸ,IY)
在 FPl系列的 PLC内部有两个 16位的索引寄存器 Ⅸ 和 IY。
其作用有以下两类:
1.作数据寄存器使用作为数据寄存器使用时,可作为 16-bit寄存器单独使用;
当用作 32-bit寄存器时,Ⅸ 作低 16-bit,IY作高 16-bit;
作为 32-bit操作数编程时,如果指定 Ⅸ 为低 16-bit,则高
16-bit自动指定为 IY。
2009-7-29 48
八,索引寄存器 (Ⅸ,IY)
2.其它操作数的修正值
① 地址修正值功能 (适用于 WX,WY,WR,SV,EV和 DT)
例,有指令为 [FO MV,DT1,IXDTl00],执行后的结果为:
当 Ⅸ = K30时,DT1中的数据被传送至 DTl30。
当 Ⅸ = K50时,DT1中的数据被传送至 DTl50。
② 常数修正值功能 (对 K和 H)
例,有指令为 [FO MV,IXK30,DTl00],执行后的结果为:
当 Ⅸ = K20时,传送至 DT100内容为 K50。
当 Ⅸ = K50时,传送至 DT100内容为 K80
注意,索引寄存器不能用索引寄存器来修正;当索引寄存器用作地址修正值时,要确保修正后的地址不要超出有效范围;当索引寄存器用作常数修正值时,修正后的值可能上溢或下溢。
2009-7-29 49
九,常数寄存器( K,H)
常数寄存器主要用来存放 PLC输入数据,十进制常数以数据前加字头 K来表示,十六进制常数用数据前加字头 H来表示。
控制单元、初级扩展单元、次级扩展单元,I/ O链接单元和智能单元 (A/ D转换单元和 D/ A转换单元 )的 I/ 0
分配是固定的。
FP1系列 PLC的 I/ O点数共有 416点(输入 X0~ X12F
共 208点,输出 Y0~ Y12F也是 208点),但受外部接线端子和主机驱动能力的限制,最多可扩展 152点( C72
型),其余的可作内部寄存器使用。
2009-7-29 50
表 2-5 FP1的 I/ O地址分配表品 种 型 号 输入端编号 输出端编号控制单元
C14 X0~ X7 Y0~ Y4,Y7
C16 XO~ X7 Y0~ Y7
C24 X0~ XF Y0~ Y7
C40 X0~ XF,X10~ X17 Y0~ YF
C56 X0~ XF,X10~ X1F Y0~ YF,Y10~Y17
C72 X0~ XF,X10~ X1FX20~ X27 Y0~ YF,Y10~Y1F
初级扩展单元
E8
输入类型 X30~ X37 /
I/ O类型 X30~ X33 Y30~ Y33
输出类型 / Y30~ Y37
E16
输入类型 X30~ X3F /
I/ O类型 X30~ X37 Y30~ Y37
输出类型 / Y30~ Y3F
E24 I/ O类型 X30~ X3F Y30~ Y37
E40 I/ O类型 X30~ X3F,X40~X47 Y30~ Y3F
2009-7-29 51
续上表品 种 型 号 输入端编号 输出端编号次级扩展单元
E8
输入类型 X50 ~ X57 /
I/ O类型 K50 ~ X53 Y50 ~ Y53
输出类型 / Y50 ~ Y57
E16
输入类型 X50 ~ X5F /
I/ O类型 X50 ~ X57 Y50 ~ Y57
输出类型 / Y50 ~ Y5F
E24 I/ O类型 X50 ~ X5F Y50 ~ Y57
E40 I/ O类型 X50 ~ X5F,X60 ~ K67 Y50 ~ Y5F
I/ O链接单元 X70 ~ X7F(WX7)X80 ~ X8F(WX8) Y70 ~ Y7F(WY7)Y80 ~ Y8F(WY8)
A/ D转换单元通道 0 X90 ~ X9F(WX9) /
通道 1 X100 ~ X10F(WXl0) /
通道 2 X110 ~ X11F(WX11) /
通道 3 X120 ~ X12F(WXl2) /
D/ A转换单元单元号 0
通道 0 / Y90 ~ Y9F(WY9)
通道 1 / Y100 ~ Y10F(WYl0)
单元号 l
通道 0 / Y110 ~ Y11F(WY11)
通道 1 / Y120 ~ Y12F(WYl2)
2009-7-29 52
第三章 FP1的指令系统第一节 概述
2009-7-29 53
一、继电器系统与 PLC指令系统可编程控制器来源于继电器系统和计算机系统,可以将其理解为计算机化的继电器系统 。 继电器在控制系统中主要起两种作用:
1) 逻辑运算 。 运用继电器触点的串,并联接等完成逻辑与,或,非等功能,从而可完成较复杂的逻辑运算 。
2) 弱电控制强电 。 即通过有关的触点的通断,控制继电器的电磁线圈,从而来控制强电的断通 。
对于简单控制功能的完成,采用继电器控制系统具有简单,可靠,方便等特点,因此,继电器控制系统得到了广泛应用 。
2009-7-29 54
注意:
PLC内部的硬件资源多数是以继电器的概念出现的 。 注意,只是概念上的继电器,并非物理继电器 。 这里所指的继电器均为软继电器,
是由 PLC内部的存储单元构成的 。
2009-7-29 55
二,FP1指令系统分类表 3-1 FP1系列可编程控制器指令统计表分类名称 C14/C16 C24/C40 C56/C72
基本指令顺序指令 19 19 19
功能指令 7 7 8
控制指令 15 18 18
条件比较指令 0 36 36
高级数据传输指令 11 11 1l
数据运算及比较指令 36 41 41
数据转换指令 16 26 26
2009-7-29 56
基本指令
高级指令
键盘指令 。 可以直接在键盘上输入的指令 ( 即各种指令在手持编程器上有相应的按键 ) 。
非键盘指令 。 键盘上找不到,输入时需借助于,SC”
和,HELP”键,指令方可输入 。
扩展功能指令 。 也是键盘上找不到的,但可通过输入其功能号将其输入,即用,FN”键加上数字键输入该类指令 。 这类指令在指令表中都各自带有功能编号,
在显示器上显示为,FN ×××,,其中 N是功能编号,
××× 是指令的助记符 。 输入功能编号后,助记符可自动显示,不必由用户输入 。
按照在手持编程器上的 输入方式 可为三种
FP1的指令按照 功能 可分为两大类
2009-7-29 57
第三章 FP1的指令系统第二节 FP1的基本指令系统
2009-7-29 58
基本指令可分为四大类,即
基本顺序指令,主要执行以位 (bit)为单位的逻辑操作,是继电器控制电路的基础 。
基本功能指令,有定时器,计数器和移位寄存器指令 。
控制指令,可根据条件判断,来决定程序执行顺序和流程的指令 。
比较指令,主要进行数据比较 。
基本指令多数是构成继电器顺序控制电路的基础,所以借用继电器的线圈和触点来表示 。 同时,该类指令还是可编程控制器使用中最常见,也是用得最多的指令,因此,
属于必须熟练掌握和运用的内容 。
2009-7-29 59
一、基本顺序指令基本顺序指令主要是对继电器和继电器触点进行逻辑操作的指令 。
FP1的指令表达式比较简单,由操作码和操作数构成,
格式为:
地址 操作码 操作数其中,操作码规定了 CPU所执行的功能 。
例如,AN X0,表示对 X0进行与操作操作数包含了操作数的地址,性质和内容 。 操作数可以没有,也可以是一个,两个,三个甚至四个,随不同的指令而不同 。 如 / 指令就没有操作数 。
2009-7-29 60
指令助记符继电器 定时 /计数器触 点
X Y R T C
ST,ST/
OT × × ×
AN、
AN/
OR、
OR/
SET、
RST × × ×
KP × × ×
表 3-3 基本顺序指令的操作数表中对应项目为,×,表示该项不可用,为空则表示可用 。
例如,OT指令对应继电器 X项为,×,,说明 OT指令的操作数不能为 X继电器 。
2009-7-29 61
1,输入输出指令,ST,ST/,OT
ST 加载 用 A类触点 (常开触点 )
开始逻辑运算的指令 。
ST/ 加载非 用 B类触点 (常闭触点 )开始逻辑运算的指令 。
OT 输出 输出运算结果到指定的输出端,是继电器线圈的驱动指令 。
2009-7-29 62
梯 形 图
0
4
X0
X0
Y0
Y1
Y2
地 址 指 令 数 据
0 ST X 0
1 O T Y 0
2 /
3 O T Y 1
4 ST/ X 0
5 O T Y 2
指 令 表时 序 图
X 0
Y 0
Y 1
Y 2
例 3-1
2009-7-29 63
当 X0接通时,Y0接通;当 X0断开时,Y1
接通,Y2接通。
由例中可见,Y0和 Y1都受控于 X0,但是因为 Y1前面有非指令,因此与 Y0的状态正好相反,这与继电器系统明显不同,
在继电器系统中,X0断开,Y1回路就不可能导通。
此外,对于输出 Y2,也是当输入触点 X0
断开时,Y2接通,与 Y1的控制方式一样。
可见,常闭触点的功能可以用上述两种例题说明:
2009-7-29 64
/ 指令为逻辑取反指令,可单独使用,
但是一般都是与其它指令组合形成新指令使用,如 ST/。
OT不能直接从左母线开始,但是必须以右母线结束。
OT指令可以连续使用,构成并联输出,
也属于分支的一种,可参见堆栈指令。
一般情况下,对于某个输出继电器只能用一次 OT指令,否则,可编程控制器按照出错对待。
注意事项
2009-7-29 65
2,逻辑操作指令,AN,AN/,OR,OR/
AN 与 串联一个 A类 (常开 )触点。
AN/ 与非 串联一个 B类 (常闭 )触点。
OR 或 并联一个 A类 (常开 )触点。
OR/ 或非 并联一个 B类 (常闭 )触点。
2009-7-29 66
例 3-2
梯 形 图
0
6
X 0
R 0
R 0
Y 0
X 1
X 2
X 4X 3
地 址 指 令 数 据
0 S T X 0
1 O R / X 1
2 O R X 2
3 A N / X 3
4 A N X 4
5 O T R 0
6 S T R 0
7 O T Y 0
指 令 表时 序 图
X 0
X 3
X 4
R 0
Y 0
2009-7-29 67
注意事项例题说明:
当 X0,X4接通且 X3断开时,R0接通; R0同时又是
Y0的控制触点,R0接通时 Y0也接通 。
由于 X0,X1和 X2三个触点并联,X2与 X0同为常开触点,所以 X2和 X0具有同样的性质;而 X1为常闭触点,与
X0的性质正好相反 。 X2和 X1的时序图也与 X0相同或相反,
故这里略去 。
AN,AN/,OR,OR/ 可连续使用。
2009-7-29 68
3,块逻辑操作指令,ANS,ORS
ANS 组与 执行多指令块的与操作,即实现多个逻辑块相串联。
ORS 组或 执行多指令块的或操作,即实现多个逻辑块相并联。
2009-7-29 69
例 3-3
梯 形 图
0
X 0 X 1 X 4
X 2 X 3 X 5
Y 0
地 址 指 令 数 据
0 S T X 0
1 A N X 1
2 S T X 2
3 A N X 3
4 O R S
5 S T X 4
6 O R X 5
7 A N S
8 O T Y 0
指 令 表时 序 图
X 0
X 1
X 4
X 5
Y 0
X 2
X 3
1 2 3 4
2009-7-29 70
例题说明:
当 X0,X1接通且 X4接通时,Y0接通,对应图中第 1段接通情况 。
当 X0,X1接通且 X5接通时,Y0接通,对应图中第 2段接通情况 。
当 X2,X3接通且 X4接通时,Y0接通,对应图中第 3段接通情况 。
当 X2,X3接通且 X5接通时,Y0接通,对应图中第 4段接通情况 。
从时序图上看,该例的逻辑关系显得比较复杂,但是仔细分析就可发现 Y0有四个接通段,分别代表了该例子的四种有效组合。
2009-7-29 71
注意事项掌握 ANS,ORS的关键主要有两点:一是要理解好串,并联关系,
二是要形成块的观念 。 针对例 3-3,在下面的图中,分别从程序和逻辑关系表达式两方面对此加以具体说明 。
从图中可见,X0和 X1串联后组成逻辑块 1,X2和 X3串联后组成逻辑块 2,用 ORS将逻辑块 1和逻辑块 2并联起来,组合成为逻辑块 3;
然后由 X4和 X5并联后组成逻辑块 4,再用 ANS将逻辑块 3和逻辑块 4
串联起来,组合成为逻辑块 5,结果输出给 Y0。
地 址 指 令 数 据
0 S T X 0
1 A N X 1
2 S T X 2
3 A N X 3
4 O R S
5 S T X 4
6 O R X 5
7 A N S
8 O T Y 0
块 1
块 2
块 3
块 4
块 5
Y 0 = ( X 0 · X 1 + X 2 · X 3 ) · ( X 4 + X 5 )
块 1 块 2
块 4块 3
块 5
2009-7-29 72
4,堆栈指令,PSHS,RDS,POPS
PSHS 推入堆栈 存储该指令处的操作结果 。
RDS 读取堆栈 读出 PSHS指令存储的操作结果 。
POPS 弹出堆栈 读出并清除由 PSHS指令存储的操作结果 。
堆栈指令主要用于构成具有分支结构的梯形图,
使用时必须遵循规定的 PSHS,RDS,POPS的先后顺序 。
2009-7-29 73
例 3-4
0
X 0 X 1
X 3
X 5
X 6
Y 0X 2
X 4
Y 4
Y 1
Y 2
Y 3
1 4
梯 形 图地 址 指 令 数 据
0 S T X 0
1 P S H S
2 A N X 1
3 A N / X 2
4 O T Y 0
5 R D S
6 A N X 3
7 O T Y 1
8 R D S
9 A N / X 4
指 令 表
1 0 O T Y 2
1 1 P O P S
1 2 A N X 5
1 3 O T Y 3
1 4 S T X 6
1 5 O T Y 4
2009-7-29 74
例题说明:
存储 PSHS指令处的运算结果 ( 这里指 X0的状态 ),这时 X0接通,
则当 X1也接通且 X2断开时,Y0输出 。
由 RDS指令读出存储的结果,即 X0接通,则当 X3接通时,Y1输出 。
由 RDS指令读出存储的结果,即 X0接通,则当 X4断开时,Y2输出 。
由 POPS指令读出存储的结果,即 X0接通,则当 X5接通时,Y3输出;然后将 PSHS指令存储的结果清除,即解除与 X0的关联,后续指令的执行将不再受 X0影响 。
当 X6接通时,Y4输出 。 此时与 X0的状态不再相关 。
本例中连用了两个 RDS指令,目的是为了说明该指令只是读存储结果,而不影响存储结果;在执行了 POPS后,就结束了堆栈指令,
不再与 X0的状态相关,如例中,Y4的状态只受 X6控制。
当 X0接通时,程序依次完成下述操作。
2009-7-29 75
注意事项
当程序中遇到 PSHS时,可理解为是将左母线到 PSHS指令 ( 即分支点 )
之间的所有指令存储起来,推入堆栈,提供给下面的支路使用 。 换个角度,也可理解为左母线向右平移到分支点,随后的指令从平移后的左母线处开始 。
RDS用于 PSHS之后,这样,当每次遇到 RDS时,该指令相当于将
PSHS保存的指令重新调出,随后的指令表面上是接着 RDS,实际上相当于接着堆栈中的指令来写 。 在功能上看,也就是相当于将堆栈中的那段梯形图与 RDS后面的梯形图直接串联起来 。
POPS相当于先执行 RDS的功能,然后结束本次堆栈,因此,用在
PSHS和 RDS的后面,作为分支结构的最后一个分支回路 。
从上面对构成堆栈的三个指令的分析可知,最简单的分支,即两个分支,
可只由 PSHS和 POPS构成;而三个以上的分支,则通过反复调用 RDS
指令完成,这点可参见例题 。 也就是说,一组堆栈指令中,有且只有一个 PSHS和一个 POPS,但是可以没有或有多个 RDS。
注意区分分支结构和并联输出结构梯形图 。 二者的本质区别在于:分支结构中,分支点与输出点之间串联有触点,而不单纯是输出线圈 。
堆栈指令的复杂应用还包括嵌套使用 。
2009-7-29 76
5,微分指令,DF,DF/
DF 上升沿微分 检测到触发信号上升沿,使触点接通一个扫描周期 。
DF/ 下降沿微分 检测到触发信号下降沿,使触点接通一个扫描周期 。
2009-7-29 77
例 3-5
梯 形 图
( D F )
0
X 0 X 2
X 2
Y 0
X 1
Y 1
5
X 0
( D F / )
地 址 指 令 数 据
0 S T X 0
1 A N / X 1
2 D F
3 A N X 2
4 O T Y 0
5 S T X 0
6 D F /
7 A N X 2
8 O T Y 1
指 令 表时 序 图
X 0
X 1
X 2
Y 0
Y 1
t 1
2009-7-29 78
例题说明:
当检测到触发信号的上升沿时,即 X1断开,X2接通且
X0由 OFF→ON时,Y0接通一个扫描周期 。 另一种情况是 X0
接通,X2接通且 X1由 ON→OFF时,Y0也接通一个扫描周期,
这是由于 X1是常闭触点的缘故 。
当检测到触发信号的下降沿时,即 X2接通且 X0由
ON→OFF时,Y1接通一个扫描周期 。
2009-7-29 79
注意事项
DF和 DF/ 指令的作用都是在控制条件满足的瞬间,触发后面的被控对象 ( 触点或操作指令 ),使其接通一个扫描周期 。 这两条指令的区别在于:前者是当控制条件接通瞬间 ( 上升沿 ) 起作用,而后者是在控制条件断开瞬间
( 下降沿 ) 起作用 。 这两个微分指令在实际程序中很有用,
可用于控制那些只需触发执行一次的动作 。 在程序中,对微分指令的使用次数无限制 。
这里所谓的,触发信号,,指的是 DF或 DF/前面指令的运算结果,而不是单纯的某个触点的状态,如例中 X0与
X1的组合;也不是后面的触点状态,如在时序图中的 t1时刻,X0和 X1都处于有效状态,X2的上升沿却不能使 Y0接通 。
2009-7-29 80
6,置位、复位指令,SET,RST
SET 置位 保持触点接通,为 ON。
RST 复位 保持触点断开,为 OFF。
2009-7-29 81
例 3-6
梯 形 图
0
X 0
4
X 1
Y 0
< S E T >
Y 0
< R S T >
地 址 指 令 数 据
0 S T X 0
1 S E T Y 0
4 S T X 1
5 R S T Y 0
指 令 表时 序 图
X 0
X 1
Y 0
例题说明:
该程序执行的结果是,当 X0接通时,使 Y0接通,此后不管 X0是何状态,Y0一直保持接通 。 而当 X1接通时,将 Y0断开,此后不管 X1是何状态,Y0一直保持断开 。
2009-7-29 82
7,保持指令,KP
KP 保持 使输出为 ON,并保持 。
KP指令的作用是将输出线圈接通并保持 。 该指令有两个控制条件,一个是置位条件 ( S),另一个是复位条件 ( R) 。 当满足置位条件,输出继电器 ( Y或 R) 接通,
一旦接通后,无论置位条件如何变化,该继电器仍然保持接通状态,直至复位条件满足时断开 。
S端与 R端相比,R端的优先权高,即如果两个信号同时接通,复位信号优先有效 。
2009-7-29 83
例 3-7
例题说明:
梯 形 图
0
X 0
X 1
K P Y 0
S
R
地 址 指 令 数 据
0 S T X 0
1 S T X 1
2 K P Y 0
指 令 表 时 序 图
X 0
X 1
Y 0
当 X0接通时,Y0接通;当 X1接通时,Y0断开,而不论 X0状态如何。
注意事项该指令与 SET,RST有些类似,另外,SET,RST允许输出重复使用,而 KP指令则不允许。
2009-7-29 84
8,空操作指令,NOP
NOP 空操作 空操作 。
PLC执行 NOP指令时,无任何操作,但是要消耗一定的时间 。
当没有输入程序或进行清理内存操作时,程序存储器各单元均自动为空操作指令 。
可用 NOP作为查找时的特殊标记,人为插入若干个
NOP指令,对程序进行分段,便于检查和修改 。 如程序中某一点插入的 NOP指令的数量超出 1个,编程系统会自动对其进行编号,因此,该指令常在调试程序时使用,
此时,程序的大小有所增加,但是对运算结果没有影响 。
2009-7-29 85
二、基本功能指令基本功能指令主要包括一些具有定时器,计数器和移位寄存器三种功能的指令 。 其中,定时和计数本质上是同一功能 。 根据指令功能分类,将高级指令中的可逆计数指令 F118(UDC),左右移位指令 F119(LRSR)以及辅助定时器指令 F137(STMR)也包括在内 。
表 3-5 基本功能指令的操作数指令助记符可用寄存器继电器 定时 /计数器 寄存器 索引寄存器 常数 索引修正值W
X
W
Y
W
R SV EV DT IX IY K H
TM预置值 × × × × × × × × ×
CT预置值 × × × × × × × × ×
2009-7-29 86
1,定时器指令,TM,F137(STMR)
TMR 以 0.01s为最小时间单位,设置延时接通的定时器 。
TMX 以 0.1s为最小时间单位,设置延时接通的定时器 。
TMY 以 1.0s为最小时间单位,设置延时接通的定时器 。
定时器的工作原理为:定时器为减 1计数 。 当程序进入运行状态后,输入触点接通瞬间定时器开始工作,先将设定值寄存器 SV的内容装入过程值寄存器 EV中,然后开始计数 。 每来一个时钟脉冲,过程值减 1,直至 EV中内容减为 0时,该定时器各对应触点动作,即常开触点闭合,常闭触点断开 。 而当输入触点断开时,定时器复位,对应触点恢复原来状态,且 EV清零,但 SV不变 。 若在定时器未达到设定时间时断开其输入触点,则定时器停止计时,其过程值寄存器被清零,且定时器对应触点不动作,直至输入触点再接通,重新开始定时 。
2009-7-29 87
TM
定 时 器 设 定 值,K 1 ~ K 32767
定 时 器 序 号,默 认 值 0 ~ 99
定 时 器 类 型,R,X,Y三 种简单的说,当定时器的执行条件成立时,定时器以 R、
X,Y所规定的时间单位对预置值作减计数,预置值减为 0时,
定时器导通。其对应的常开触点闭合,常闭触点断开。
2009-7-29 88
例 3-8
梯 形 图
0
X 0
T 1
T M X 1,K 1 0 0
Y 0
4
地 址 指 令 数 据
0 S T X 0
1 T M X 1
K 1 0 0
4 S T T 1
5 O T Y 0
指 令 表时 序 图
X 0
T 1
Y 0
1 0 s 1 0 s
例题说明:
当 X0接通时,定时器开始定时,10秒后,定时时间到,定时器对应的常开触点 T1接通,使输出继电器 Y0导通为 ON;当 X0断开时,定时器复位,对应的常开触点 T1断开,输出继电器 Y0断开为 OFF。
2009-7-29 89
注意事项
1) TM指令是减法计数型预置定时器,参数有两个,一个是时间单位,
即定时时钟,可分为 3种,R=0.01s,X=0.1s,Y=1.0s;另一个是预置值,只能用十进制,编程格式为 K加上十进制数,因此,取值范围可表示为 K1 ~ K32767。 这样,定时时间就可以根据上述两个参数直接计算出来,即定时时间 = 时间单位 × 预置值也正是由于这个原因,TM R1 K1000,TM X1 K100,TM Y1
K10这三条指令的延时时间是相同的,都是 10秒,差别仅在于定时的时间精度不同 。 对于这个例子,由于只用到定时结果,采用上述任何一种写法都可以 。
2) 定时器的设定值和过程值会自动存入相同编号的专用寄存器 SV和
EV中,因此可通过察看同一编号的 SV和 EV内容来监控该定时器的工作情况 。 采用不同的定时时钟会影响精度,也就是说,过程值 EV的变化过程不同 。
2009-7-29 90
3) 同输出继电器的概念一样,定时器也包括线圈和触点两个部分,采用相同编号,但是线圈是用来设置,触点则是用于引用 。 因此,在同一个程序中,相同编号的定时器只能使用一次,即设置一次,而该定时器的触点可以通过常开或常闭触点的形式被多次引用 。
4) 在 FP1-C24中,初始定义有 100个定时器,编号为 T0 ~ T99,通过系统寄存器 No.5可重新设置定时器的个数 。
5) 由于定时器在定时过程中需持续接通,所以在程序中定时器的控制信号后面不能串联微分指令 。
6) 在实际的 PLC程序中,定时器的使用是非常灵活的,如将若干个定时器串联或是将定时器和计数器级联使用可扩大定时范围,或将两个定时器互锁使用可构成方波发生器,还可以在程序中利用高级指令
F0(MV)直接在 SV寄存器中写入预置值,从而实现可变定时时间控制 。
2009-7-29 91
例 3-9
例题说明:
指 令 表地 址 指 令 数 据
0 S T X 0
1 F 1 3 7 ( S T M R )
K 1 0 0 0
D T 5
6 S T R 9 0 0 D
7 O T Y 0
梯 形 图
X 0
F 1 3 7 S T M R,K 1 0 0 0,D T 50
Y 0
6
R 9 0 0 D
该例与上例中使用 TMX实现的定时结果类似,但是当用 R900D作为定时器的触点编程时,务必将 R900D编写在紧随 F137(STMR)指令之后 。 此外,这里的 DT5起到与经过值寄存器 EV类似的作用 。
F137(STMR) 以 0.01s为最小时间单位设置延时接通的定时器 。 该定时器与 TMR类似,但是设置方式上有所区别 。
下面举例说明 。
2009-7-29 92
2.计数器指令,CT,F118(UDC)
CT指令是一个减计数型的预置计数器。其工作原理为:程序一进入“运行”方式,计数器就自动进入初始状态,此时 SV的值被自动装入
EV,当计数器的计数输入端 CP检测到一个脉冲上升沿时,预置值被减 1,
当预置值被减为 0时,计数器接通,其相应的常开触点闭合,常闭触点断开。计数器的另一输入端为复位输入端 R,当 R端接收到一个脉冲上升沿时计数器复位,计数器不接通,其常开触点断开,常闭触点闭合;
当 R端接收到脉冲下降沿时,将预置值数据再次从 SV传送到 EV中,计数器开始工作。计数器 CT指令的梯形图符号如下图所示。
C T
计 数 器 设 定 值,K 0 ~ K 3 2 7 6 7
计 数 器 序 号,默 认 值 1 0 0 ~ 1 4 3
C P
R
2009-7-29 93
例 3-10
例题说明:
地 址 指 令 数 据
0 S T X 0
1 S T X 1
2 C T 1 0 1
K 5 0 0
5 S T C 1 0 1
6 O T Y 0
梯 形 图 指 令 表
0
X 0
X 1
5
C T 1 0 1
C P
R
K 5 0 0
C 1 0 1
Y 0
程序开始运行时,计数器自动进入计数状态。当检测到 X0的上升沿 500次时,计数器对应的常开触点 C101接通,使输出继电器 Y0导通为 ON;当 X1接通时,计数器复位清零,对应的常开触点 C101断开,输出继电器 Y0断开为 OFF。
2009-7-29 94
注意事项
FP1-C24中,共有 44个计数器,编号为 C100 ~ C143。 此编号可用系统寄存器 No.5重新设置 。 设置时注意 TM和 CT的编号要前后错开 。
计数器与定时器有密切的关系,编号也是连续的 。 定时器本质上就是计数器,只不过是对固定间隔的时钟脉冲进行计数,因此两者有许多性质是类似的 。
与定时器一样,每个计数器都有对应相同编号的 16位专用寄存器 SV
和 EV,以存储预置值和过程值 。
同一程序中相同编号的计数器只能使用一次,而对应的常开和常闭触点可使用无数次 。
计数器有两个输入端,即计数脉冲输入端 CP和复位端 R,分别由两个输入触点控制,R端比 CP端优先权高 。
计数器的预置值即为计数器的初始值,该值为 0 ~ 32767中的任意十进制数,书写时前面一定要加字母,K”。
2009-7-29 95
例 3-11
F118(UDC)指令,也起到计数器的作用 。 与 CT不同的是,
该指令可以根据参数设置,分别实现加 /减计数的功能,下面举例说明 。
地 址 指 令 数 据
5 0 S T X 0
5 1 S T X 1
5 2 S T X 2
5 3 F 1 1 8 ( U D C )
D T 1 0
D T 0
5 8 S T R 9 0 0 B
5 9 O T R 5 0
梯 形 图 指 令 表
5 0
X 0
X 1
X 2
F 1 1 8 U D C
D T 1 0
D T 0
R 5 0R 9 0 0 B
5 8
5 2
5 1
2009-7-29 96
例题说明:
使用 F118(UDC)指令编程时,一定要有加 /减控制,
计数输入和复位触发三个信号 。
当检测到复位触发信号 X2的下降沿时,DT10中的数据被传送到 DT0中,计数器开始工作;当检测到 X2的上升沿时,即复位信号有效,DT0被清 0,计数器停止工作 。
X0为加 /减控制信号,当其为 ON时,进行加计数,为
OFF时,进行减计数 。
X1为计数输入信号,检测到其上升沿时,根据 X0的状态,执行加 1或减 1计数 。
这里,DT10相当于 CT指令中的预置值寄存器 SV,
DT0相当于经过值寄存器 EV。 当 DT0中的结果为 0时,特殊内部寄存器 R900B接通,内部寄存器 R50有输出 。
2009-7-29 97
3.移位指令,SR,F119(LRSR)
SR为左移移位指令 。 其功能为:
当 R端为 OFF状态时,该指令有效 。
这时,每检测到一个 CP端的上升沿
(OFF→ON),WRn中的数据就从低位向高位依次左移一位,其中,
WRn的最低位用数据输入端 IN的状态补入,最高位数据丢失 。 当 R为
ON状态时,该指令复位,WRn中的数据被清零 。 此外,需要指出的是,
该指令的操作数只能用内部字继电器 WR,n为 WR继电器的编号 。
S R W R n
I N
R
C P
2009-7-29 98
例 3-12
例题说明:
地 址 指 令 数 据
0 S T X 1
1 S T X 2
2 S T X 3
3 S R W R 6
梯 形 图 指 令 表
0
X 1
X 2
X 3
S R W R 6
IN
R
C P
当复位信号 X3为 OFF状态时,每当检测到移位信号 X2的上升沿,
WR6寄存器的数据左移 1位,最高位丢失,最低位由当时数据输入信号
X1的状态决定:如果当时 X1处于接通状态,则补 1,否则,补 0。
如果 X3接通,WR6的内容清 0,这时 X2信号无效,移位指令停止工作 。
2009-7-29 99
F119( LRSR) 指令为左 /右移位寄存器指令,使 16-bit内部继电器中的数据向左或向右移动 1-bit。 F119( LRSR) 指令可以使用作为数据区的寄存器和常数见下表 。
D1:移位区内首地址寄存器;
D2:移位区内末地址寄存器;
注意:移位区内的首地址和末地址要求是同一种类型的寄存器,并满足 D1≤D2。
操作数可用寄存器继电器 定时 /计数器 寄存器 索引寄存器 常数 索引修正值W
X
W
Y
W
R SV EV DT IX IY K H
D1 × × × × × ×
D2 × × × × × ×
2009-7-29 100
例 3-13 地 址 指 令 数 据
5 0 S T X 0
5 1 S T X 1
5 2 S T X 2
5 3 S T X 3
5 4 F 1 1 9 ( L R S R )
D T 0
D T 9
梯 形 图 指 令 表
5 0
X 0
X 1
X 2
F 1 1 9 L R S R
D T 0
D T 9
X 3
5 3
5 2
5 1
2009-7-29 101
F119(LRSR)指令需要有 4个输入信号,即左 /右移位信号,数据输入,移位信号和复位触发信号,分别对应例中
X0 ~ X3共 4个触点 。 DT0指定移位区首地址,DT9指定末地址 。
当 X3为 ON时,复位信号有效,DT0和 DT9均被清 0,
移位寄存器停止工作 。
当 X3为 OFF时,移位寄存器正常工作 。 这时,由移位触发信号 X2的上升沿触发移位操作,移动的方向由 X0决定,
若 X0为 ON,表示进行数据左移,为 OFF,表示进行数据右移 。 至于移入的数据为 1还是为 0,则取决于 X1的状态,若
X1接通,移入数据为 1,否则,移入数据为 0。
这里,DT0 ~ DT9构成了连续的 16位寄存器区,移位操作使所有位同时进行,整个区域按照高位在左侧,低位在右侧的顺序排列 。
例题说明:
2009-7-29 102
三、控制指令从程序的执行步骤和结构构成上看,基本顺序指令和基本功能指令是按照其地址顺序执行的,直到程序结束为止;而控制指令则可以改变程序的执行顺序和流程,产生跳转和循环,构成复杂的程序及逻辑结构。
PLC指令的执行特点是采用扫描执行方式,
这里就存在扫描和执行的关系的问题:
对于一段代码,扫描并执行 是正常的步骤,但是也存在另外一种情况,就是 扫描但不执行,从时间上看,仍然要占用
2009-7-29 103
1.主控继电器指令,MC,MCE
MC:主控继电器指令 。
MCE:主控继电器结束指令 。
功能:用于在程序中将某一段程序单独界定出来 。
当 MC前面的控制触点闭合时,执行 MC至 MCE间的指令;
当该触点断开时,不执行 MC至 MCE间的指令 。
2009-7-29 104
例 3-14
梯 形 图
0
X 0
3
( M C 0 )
( M C E 0 )
5
7
X 1
Y 0
Y 1
X 2
X 0 X 1
Y 0
Y 1
X 2
X 0 接 通执 行 条 件地 址 指 令 数 据
0 S T X 0
1 M C 0
3 S T X 1
4 O T Y 0
5 S T / X 2
6 O T Y 1
7 M C E 0
指 令 表时 序 图
X 0
X 1
Y 0
2009-7-29 105
例题说明:
当控制触点 X0接通时,执行 MC0到 MCE0之间的程序,这时,
从上图中的梯形图可以看出,效果等同于右侧的简化梯形图 。 否则,
不执行 MC0到 MCE0之间的程序 。
值得注意的是,当主控继电器控制触点断开时,在 MC至 MCE
之间的程序,遵循扫描但不执行的规则,可编程控制器仍然扫描这段程序,不能简单地认为可编程控制器跳过了这段程序 。 而且,在该程序段中不同的指令状态变化情况也有所不同,具体情况参见下表 。
指令或寄存器 状态变化
OT(Y,R等 ) 全部 OFF状态
KP,SET,RST 保持控制触点断开前对应各继电器的状态
TM,F137(STMR) 复位,即停止工作
CT,F118(UDC) 保持控制触点断开前经过值,但停止工作
2009-7-29 106
注意事项
MC和 MCE在程序中应成对出现,每对编号相同,编号范围为 0 ~ 31之间的整数 。 而且,同一编号在一个程序中只能出现一次 。
MC和 MCE的顺序不能颠倒 。
MC指令不能直接从母线开始,即必须有控制触点 。
在一对主控继电器指令 (MC,MCE)之间可以嵌套另一对主控继电器指令 。
2009-7-29 107
2.跳转指令,JP,LBL
JP:跳转指令 。
LBL:跳转标记指令 。
当控制触点闭合时,跳转到和 JP指令编号相同的 LBL
处,不执行 JP和 LBL之间的程序,转而执行 LBL指令之后的程序 。 与主控指令不同,遵循不扫描不执行的原则,在执行跳转指令时,JP和 LBL之间的指令略过,所以可使整个程序的扫描周期变短 。
2009-7-29 108
例 3-15
例题说明:
在 JP1指令的前面,JP1与 LBL1中间,以及 LBL1的后面都可能有其它的指令程序段,如图所示 。 当控制触点 X0断开时,跳转指令不起作用,JP1与 LBL1中间的指令正常执行,与没有跳转指令一样;当控制触点 X0接通时,执行跳转指令,跳过 JP1与 LBL1中间的程序段,直接执行 LBL1的后面的程序段 。
地 址 指 令 数 据
…
1 0 S T X 0
1 1 J P 1
…
2 0 L B L 1
…
指 令 表梯 形 图
1 0
X 0
( J P 1 )
( L B L 1 )
2 0
.,,程 序 段
X 0 接 通,
该 段 不 执 行
X 0 断 开,
该 段 正 常 执 行
.,,程 序 段
.,,程 序 段
2009-7-29 109
注意事项
可以使用多个编号相同的 JP指令,即允许设置多个跳向一处的跳转点,编号可以是 0 ~ 63以内的任意整数,但不能出现相同编号的 LBL指令,否则程序将无法确定将要跳转的位置 。
LBL指令应该放在同序号的 JP指令的后面,当然,放在前面也可以,不过这时扫描不会终止,而且可能发生瓶颈错误,详细内容请参见手册 。
JP指令不能直接从母线开始,即前面必须有触发信号 。
在一对跳转指令之间可以嵌套另一对跳转指令 。
不能从结束指令 ED以前的程序跳转到 ED以后的程序中去;不能在子程序或中断程序与主程序之间跳转;不能在步进区和非步进区进行跳转 。
2009-7-29 110
3.循环跳转指令,LOOP,LBL
LOOP:循环指令 。
LBL:循环标记指令 。
循环指令的功能为:当执行条件成立时,循环次数减
1,如果结果不为 0,跳转到与 LOOP相同编号的 LBL处,
执行 LBL指令后的程序 。 重复上述过程,直至结果为 0,
停止循环;当执行条件不成立时,不循环执行 。
2009-7-29 111
例 3-16
例题说明:
当 X6接通时,数据寄存器 DT0的预置值减 1,若结果不为 0,
LOOP指令跳转到 LBL1处,执行 LBL1之后的程序 。 重复执行相同的操作直至 DT0中的内容变为 0,结束循环 。
当 X6断开时,不执行循环 。
地 址 指 令 数 据
…
1 0 L B L 1
…
2 0 S T X 6
L O O P 1
D T 0
…
指 令 表梯 形 图
1 0
X 6
( L B L 1 )
2 0
循 环 体
.,,程 序 段
( L O O P 1,D T 0 )
2009-7-29 112
注意事项
可以使用多个编号相同的 LOOP指令,编号可以是 0 ~ 63以内的任意整数,但不能出现相同编号的 LBL指令,否则程序将无法确定循环区间 。 此外,该指令可以与 JP指令共用相同编号的 LBL指令,但为了程序清晰,尽量避免 。
LBL指令与同编号的 LOOP指令的前后顺序不限,但工作过程不同 。
一般将 LBL指令放于 LOOP指令的上面,此时,执行循环指令的整个过程都是在一个扫描周期内完成的,所以整个循环过程不可太长,
否则扫描周期变长,影响了 PLC的响应速度,有时甚至会出错 。
LOOP指令不能直接从母线开始,即必须有触发信号 。 当某编号的
LOOP对应的触发信号接通时,与同编号的 LBL即构成一个循环 。
循环跳转指令可以嵌套使用 。
不能从结束指令 ED以前的程序跳转到 ED以后的程序中去;也不能在子程序或中断程序与主程序之间跳转;不能在步进区和非步进区进行跳转 。
2009-7-29 113
4.结束指令,ED,CNDE
ED:结束指令,表示主程序结束 。
CNDE:条件结束指令,当控制触点闭合时,可编程控制器不再继续执行程序,结束当前扫描周期,返回起始地址;否则,继续执行该指令后面的程序段 。
例 3-17
X 0
X 1
Y 1
(C N D E )
( E D )
例题说明:
当控制触点 X0闭合时,条件结束指令 CNDE起作用,返回程序起始地址,当前的扫描结束,进入下一次扫描;否则,控制触点 X0断开,继续执行下面的指令扫描,当遇到 ED指令,才结束当前的扫描。
2009-7-29 114
5,步进指令,SSTP,NSTP,NSTL、
CSTP,STPESSTP:步进开始指令,表明开始执行该段步进程序 。
NSTP,NSTL:转入指定步进过程指令 。 这两个指令的功能一样,
都是当触发信号来时,程序转入下一段步进程序段,并将前面程序所用过的数据区清除,输出 OT关断,定时器 TM复位 。 区别在于触发方式不同,前者为脉冲式,仅当控制触点闭合瞬间动作,即检测控制触点的上升沿,类似于微分指令;后者为扫描式,每次扫描检测到控制触点闭合都要动作 。
CSTP:复位指定的步进过程 。
STPE:步进结束指令,结束整个步进过程 。
除了用于生产过程的顺序控制,步进指令还可用于选择分支控制,并行分支控制等,
2009-7-29 115
例 3-18
例题说明:
当检测到 X0的上升沿时,执行步进过程 1(SSTP1~SSTP2);当 X1
接通时,清除步进过程 1,并执行步进过程 2;当 X3接通时,清除步进过程 50,步进程序执行完毕 。
地 址 指 令 数 据
…
1 0 S T X 0
1 1 N S T P 1
1 4 S S T P 1
1 7 O T Y 1 0
1 8 S T X 1
1 9 N S T L 2
2 2 S S T P 2
…
1 0 0 S T X 3
1 0 1 C S T P 5 0
1 0 4 S T P E
指 令 表梯 形 图
1 0
X 0
( N S T P 1 )
1 7
1 4
.,,其 它 步 进 程 序 段
1 8
( S S T P 1 )
Y 1 0
X 1
( N S T L 2 )
( S S T P 2 )
X 3
( C S T P 5 0 )
( S T P E )
2 2
1 0 0
1 0 4
2009-7-29 116
注意事项
步进程序中允许输出 OT直接同左母线相连 。
步进程序中不能使用 MC和 MCE,JP和 LBL,LOOP和
LBL,ED和 CNDE指令 。
在步进程序区中,识别一个过程是从一个 SSTP指令开始到下一个 SSTP指令,或一个 SSTP指令到 STPE指令,
即步进程序区全部结束 。
当 NSTP或 NSTL前面的控制触点接通时,程序进入下一段步进程序 。 这里的控制触点和步进控制程序区结束指令 STPE都是必需的 。
2009-7-29 117
6.子程序调用指令,CALL,SUB,RET
CALL:子程序调用指令,执行指定的子程序 。
SUB:子程序开始标志指令,用于定义子程序 。
RET:子程序结束指令,执行完毕返回到主程序 。
子程序调用指令的功能:当 CALL n指令的执行条件成立时,程序转至子程序起始指令 SUB n处,执行 SUB n
到 RET之间的第 n号子程序 。 遇到 RET指令,子程序结束并返回到 CALL n的下一条指令处,继续执行主程序 。
2009-7-29 118
例 3-19
例题说明:
当 X0接通时,程序从主程序转到编号为 1的子程序的起始地址 SUB
1处,开始执行子程序;当执行到 RET处时,子程序执行完毕,返回到主程序调用处,从 CALL 1指令的下一条指令继续执行随后的主程序 。
当 X0断开时,不调用子程序,继续执行主程序 。
地 址 指 令 数 据
…
1 0 S T X 0
1 1 C A L L 1
…
2 0 E D
2 1 S U B 1
…
3 0 R E T
…
指 令 表梯 形 图
1 0
X 0
( C A L L 1 )
2 1
主程序区
.,,程 序 段 ( 主 程 序 )
( E D )
2 0
( S U B 1 )
.,,程 序 段 ( 子 程 序 )
( R E T )
.,,程 序 段 ( 主 程 序 )
3 0
子程序区
2009-7-29 119
注意事项
FP1-C24可用子程序的个数为 16个,即子程序编号范围为 SUB0 ~
SUB15,且两个子程序的编号不能相同 。
子程序必须编写在主程序的 ED指令后面,由子程序入口标志 SUB开始,最后是 RET指令,缺一不可 。
子程序调用指令 CALL可以在主程序,子程序或中断程序中使用,可见,子程序可以嵌套调用,但最多不超过 5层 。
当控制触点为 OFF时,子程序不执行 。 这时,子程序内的指令状态如下表所示 。
指令或寄存器 状态变化
OT,KP,SET,RST 保持控制触点断开前对应各继电器的状态
TM,F137(STMR) 不执行
CT,F118(UDC); SR、
F119(LRSR)
保持控制触点断开前经过值,
但停止工作其它指令 不执行
2009-7-29 120
7.中断指令,INT,ICTL,IRET
ICTL:中断控制指令,用于设定中断的类型及参数 。
INT,中断程序开始标志 。
IRET:中断程序结束标志 。
为了提高 PLC的实时控制能力,提高 PLC与外部设备配合运行的工作效率以及 PLC处理突发事件的能力,
FP1设置了中断功能 。 中断就是中止当前正在运行的程序,去执行为要求立即响应信号而编制的中断服务程序,
执行完毕再返回原先被中止的程序并继续运行 。
2009-7-29 121
FP1的中断类型
1) 外部中断共有 8个中断源 X0 ~ X7,对应中断入口为
X0? INT0 X4? INT4
X1? INT1 X5? INT5
X2? INT2 X6? INT6
X3? INT3 X7? INT7
其优先级别为 INT0最高,INT7最低 。 FP1规定中断信号的持续时间应 ≥2ms。
2) 内部定时中断是通过软件编程来设定每间隔一定的时间去响应一次中断服务程序,定时中断的中断入口为 INT24。
FP1-C24以上机型均有中断功能,其中断功能有两种类型,一种是外部中断,又叫 硬件中断,一种是定时中断,又叫 软件中断 。
2009-7-29 122
中断的实现
1) 对于内部定时中断,是通过编程来实现的,定时中断的时间,由中断命令控制字设定。
2) 对于外部中断,应先设定系统寄存器 No.403的值,然后再设定中断控制字,并按中断程序的书写格式编写程序。
ICTL是中断控制字指令,有二个操作数 S1和 S2。它可以是常数 H,也可以是某个寄存器的数据。其中 S1设置中断类型,S2设置中断参数。具体设置方法参见手册。
中断控制字的设置此外,与普通微机不同,PLC的中断是非嵌套的,也就是说,在执行低级中断时,若有高级中断到来,并不立即响应高级中断,而是在执行完当前中断后,才响应高级中断。
2009-7-29 123
注意事项
使用外部中断之前,首先设置系统寄存器 No.403。
ICTL指令应和 DF指令配合使用 。
中断子程序应放在主程序结束指令 ED之后 。
INT和 IRET指令必须成对使用 。
中断子程序中不能使用定时器指令 TM。
中断子程序的执行时间不受扫描周期的限制 。
中断子程序中可以使用子程序调用指令 。
2009-7-29 124
四、比较指令比较指令由 3部分组成第一部分为助记符,分别由 ST,AN,OR开始,
用于指定条件满足后要进行的操作是开始,
还是逻辑与,逻辑或;
第二部分为比较运算符,主要有等于 (=),大于 (>),小于 (<),大于等于 (>=),小于等于 (<=)和不等于 (<>)共 6种关系,满足关系
S 1 S 2
比 较 数 据 2 ( 寄 存 器 或 常 数 )
比 较 数 据 1 ( 寄 存 器 或 常 数 )
比 较 运 算 符 ( =,>,<,> =,< =,< > )
助 记 符 ( S T,A N,O R )
2009-7-29 125
例 3-20
地 址 指 令 数 据
0 S T > =
D T 2
K 1 6
5 A N < =
D T 2
K 3 2
1 0 O R D > =
D T 0
K 6 4
1 9 O T R 0
指 令 表
0
R 0
> = D T 2,K 1 6 < = D T 2,K 3 2
梯 形 图
D > = D T 0,K 6 4
该程序的功能为,根据 DT2中的数据范围,或 (DT1,DT0)中的内容,
来决定 R0的输出状态 。 设 DT2中数据用 x表示,(DT1,DT0)中数据用 y
表示,则当 16≤x≤32,或者 y≥64时,R0导通,输出为 ON;否则,R0断开,输出为 OFF。
从该例可以看出,比较指令实际上相当于一个条件触点,根据条件是否满足,决定触点的通断 。
例题说明:
2009-7-29 126
单字比较为 16位数据,双字比较为 32位数据,用寄存器寻址时,后者采用两个相邻寄存器联合取值,如例中 (DT1,
DT0),表示由 DT1和 DT0联合构成 32位数据。
在构成梯形图时,ST,AN,OR与基本顺序指令中用法类似,区别仅在于操作数上,前者为寄存器 (16-bit或 32-
bit),后者为继电器 (1-bit)。
单字指令步数为 5步,而双字指令步数为
9步。
注意事项
2009-7-29 127
第三节 高级指令概述第三章 FP1的指令系统
2009-7-29 128
一、高级指令的类型数据传送指令,16位,32位数据,以及位数据的传送,拷贝,交换等功能 。
算术运算指令,二进制数和 BCD码的加,减,
乘,除等算术运算 。
数据比较指令,16位或 32位数据的比较 。
逻辑运算指令,16位数据的与,或,异或和异或非运算 。
数据转换指令,16位或 32位数据按指定的格式进行转换 。
数据移位指令,16位数据进行左移,右移,
2009-7-29 129
二、高级指令的构成高级指令由大写字母? F”,指令功能号、助记符和操作数组成,指令的格式如下。
S,DF
目 的 操 作 数 ( 目 的 数 据 区 )
源 操 作 数 ( 1 6 位 常 数 或 源 数 据 区 )
助 记 符功 能 号 ( n = 0 ~ 1 6 5 )
Fn是指令功能号,Fn= F0 ~ F165。 不同的功能号规定 CPU进行不同的操作 。 指令的助记符用英文缩写表示,一般可据此大致推测出该指令的功能 。
S是源操作数或源数据区,D是目的操作数或目的数据区,分别指定操作数或其地址,性质和内容 。
操作数可以是一个,二个或者三个,取决于所用的指令,可以是单字
(16-bit)和双字 (32-bit)的数据,若为位操作指令,还可以是位 (1-bit)数据 。
2009-7-29 130
三、高级指令的操作数
1.进位制
二进制系统 (BIN)
十进制常数 (K常数 )
十六进制常数 (H常数 )
二进制表示的十进制数 (BCD码 )
2、寄存器和常数字继电器 (WX,WY,WR),定时器 /计数器区 (T,C,SV,EV)、
数据寄存器 (DT),索引寄存器 (IX,IY)和常数 (K,H)均由 1个字 (16-bit)构成,且以字为单位进行处理 。 字继电器的内容按位对应其继电器元件的状态 。
2009-7-29 131
四、使用高级指令应注意的问题在高级指令的前面必须加控制触点 (触发信号 ),而在后面只能是右母线。
根据执行的过程,FP1的指令有两种类型,即
F型和 P型。如果控制触点接通后,其后续的指令每个扫描周期都要执行一次,称为? F
型? 指令;否则,如果后续的指令只在触发信号的上升沿执行一次,称为? P型? 指令。
本书中只介绍? F型? 指令,如果在控制过程中需要只执行一次高级指令,可在 F型高级指令的前面使用微分指令 (DF)实现。
如果多个高级指令连续使用同一控制触点,
不必每次都画出或写出该控制触点。见下图
0
X 0
F 0 M V,D T 0 D T 1
X 0
F 0 M V,D T 6 D T 7
X 0
F 1 D M V,D T 2 D T 4
0
X 0
F 0 M V,D T 0 D T 1
F 0 M V,D T 6 D T 7
F 1 D M V,D T 2 D T 4
(a) (b)
2009-7-29 132
第三章 FP1的指令系统第四节 FP1的高级指令
2009-7-29 133
一、数据传送指令数据传送指令的功能是将源操作数中的数据,按照规定的要求,复制到目的操作数中去,可分为数据传送、位传送、数字传送、块传送及复制、寄存器交换等。 1.数据传送,F0(MV),F1(DMV)、F2(MV/),F3(DMV/)
[F0 MV S,D ],将一个 16位的常数或寄存器中的数据传送到另一个寄存器中去 。
[F1 DMV S,D ],将一个 32位的常数或寄存器区中的数据传送到另一个寄存器区中去 。
[F2 MV/ S,D ],将一个 16位的常数或寄存器中的数据取反后传送到另一个寄存器中去 。
[F3 DMV/ S,D ],将一个 32位的常数或寄存器区中的数据取反后传送到另一个寄存器区中去 。
2009-7-29 134
例 3-21
0
X 0
F 0 M V,K 1 0 0 D T 0
D,目 的 操 作 数
S,源 操 作 数助 记 符功 能 号 ( n )
控 制 触 点 (触 发 信 号 )
地 址 指 令 数 据
0 S T X 0
1 F 0 ( M V )
K 1 0 0
D T 0
梯 形 图 指 令 表该程序的功能是,当控制触点 X0闭合时,每个扫描周期都要重复将十进制数 100传送到内部字寄存器 DT0中 。
F0(MV)指令对源操作数没有要求,而目的操作数不能是输入继电器 WX和常数 K,H,原因很明显:目的操作数是用来保存结果的,自然不能用输入继电器和常数 。 后面介绍的其它指令也有类似情况 。
2009-7-29 135
例 3-22
与上例相比,该例有 5点不同,下面加以详细说明 。
1) 在控制触点后,增加了微分指令 DF,表示该指令仅在检测到控制触点 X0闭合时执行一次;
2) F3(DMV/)指令助记符的第一个字符为,D”,表示该指令为双字操作,
目的操作数为 DT0寄存器,表示数据保存在寄存器 DT1,DT0构成的 32
位单元中 。 在以后的双字操作指令中也遵循这一原则,即由相邻 2个 16
位寄存器联合构成一个 32位寄存器,默认指定的是低 16位寄存器 。 如果低 16位区已分别指定为 S,D,则高 16位分别自动指定为 S+1,D+1,
本例中:
S+1(高位 )= WR3,S(低位 )= WR2
D+1(高位 )= DT1,D(低位 )= DT0
指令表地址 指令 数据
0 ST X0
1 F 0 (DMV /)
WR2
DT0
梯形图
X0
F 3 D MV /,WR 2 D T00 (DF )
2009-7-29 136
3) F3(DMV/)指令助记符的最后一个字符为,/”,表示在进行传送时,要对被传送的数据先进行取反,然后将结果送往目的寄存器区 。
4) 源操作数和目的操作数都用寄存器方式寻址,源操作数在执行指令后内容不变,目的操作数则被覆盖,相当于执行数据拷贝操作 。 数据的传递关系与结果参看下表 。
5) 与 F0(MV)指令不同的是,S和 D不能用 IY寄存器 。 IX和 IY除用作索引寄存器外,还可以用作通用寄存器 。 当用作通用 16位寄存器时,二者可单独使用;当用作 32位存储区时,二者联用,IX存低 16位,IY
存高 16位,因此程序中只能引用 IX,IY由系统自动引用,无论是 S还是 D均如此 。 这个规则对于所有的双字 (32-bit)指令都适用 。
2009-7-29 137
2,位传输,F5(BTM),F6(DGT)
[ F5 BTM S,n,D ],16位二进制数的位传送指令 。 将一个 16位二进制数的任意指定位,拷贝到另一个 16位二进制数据中的任意指定位中去 。
[ F6 DGT S,n,D ],16位十六进制数的位传送指令 。
将一个 16位数据按十六进制,传送若干位 (digit)到另一个
16位寄存器区中去 。
2009-7-29 138
例 3-23
指 令 表地 址 指 令 数 据
0 S T X 0
1 F 5 (B T M )
W X 0
H 0 B 0 5
D T 0
梯 形 图
X 0
F 5 B T M,W X 0 H 0 B 0 5 D T 00
例题说明:
当控制触点 X0接通时,WX0中第 05位数据传送到 DT0中的第 11位去,如下图所示。 WX0中的数据由前面的程序赋值,DT0中的数据可能已经赋值,也可能没有赋值,但是执行完该指令后,DT0的第 11位被赋值为 1。
1 5
1 4 1 3 1 2 1 1 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 5
1 4 1 3 1 2 1 1 1 0 9 8 7 6 5 4 3 2 1 0
1 1 0 0 1 0 0 0 1 0 1 1 0 1 1 1
位 地 址位 地 址
W X 0
D T 0
源 数 据 区目 的 数 据 区
1
2009-7-29 139
在 F5(BTM)指令中,S为源操作数,是被传送的 16位常数或寄存器中的数据; D为目的操作数,表示接收数据的 16位目的寄存器; n是 16
位的操作数,又称传输控制码,它指明了源操作数中哪一位数据将被传送以及传送到目的操作数中的哪一位置 。 在 n中,bit0 ~ bit3用以指定源操作数中哪一位将被传送,bit8 ~ bit11用以指定被传送数据放在目的操作数的什么位置,bit4 ~ bit7,bit12 ~ bit15这 8位未用,可随便取值,
不影响结果,为简便计,一般均取为 0。 因此,本例中源区位地址取为
H5,目的区位地址取为 HB。 n的设置参见下图 。
5B
1 5 … 1 2
未 用 未 用
n,
源 区 位 地 址范 围,H 0 ~ H F
目 的 区 位 地 址范 围,H 0 ~ H F
1 1 … 8 7,,,4 3 … 0
2009-7-29 140
对于 F6(DGT),在 n的定义上有所不同,一是数据操作的最小单位为十六进制的 1位,即 1digit,相当于二进制的 4bits;二是要拷贝的数据不像 F5那样只有 1位,而是有效范围内的任意位,因此还需要指定参与操作的位数 。 n的设置可参考下图 。
拷 贝 的 十 六 进 制 位 ( d i g i t ) 个 数,
范 围,H 0 ~ H 3
H 0,拷 贝 1 个 ; H 1,拷 贝 2 个 ;
H 2,拷 贝 3 个 ; H 3,拷 贝 4 个 ;
目 的 区 d i g i t 首 地 址,范 围,H 0 ~ H 3
d i g i t 3
1 5 … 1 2
未 用
n,
源 区 d i g i t 首 地 址,范 围,H 0 ~ H 3
d i g i t 2
1 1 … 8
d i g i t 1
7,,,4
d i g i t 0
3 … 0
十 六 进 制二 进 制由图中可见,n的 bit12 ~ bit15未用,以十六进制表示,即 digit3未用。
2009-7-29 141
为了能够表示数据段,采用的是,首地址 +段长度,的表示方式,
即由 digit2表示目的区首地址,digit1表示要拷贝的数据段位数,digit0表示源区首地址,这样进行操作的数据区地址就可唯一确定 。
举例而言,若想将源区的 4个十六进制位 (digit0 ~ digit3)拷贝到目的区的 4个十六进制位 (digit1 ~ digit3,digit0),可将 n取值为 H0130,其含义见左图,执行情况见右图 。
n,H 0 1 3 0
源 区 从 d i g i t 0 开 始目 的 区 从 d i g i t 1 开 始共 拷 贝 4 个 十 六 进 制 数
S
D
d i g i t 3 d i g i t 2 d i g i t 1 d i g i t 0
值得注意的是,这里有个,循环,的概念,即如果目的区位数不够,自动回到最小位,再进行拷贝 。 如例中 S的 digit3应该送给 D中的
digit4,但是 D的最大位为 digit3,则该数据自动送往 D的 digit0。
2009-7-29 142
3,块传输指令,F10(BKMV)、
F11(COPY)1) F10(BKMV):区块传输指令 。
格式,[ F10 BKMV S1,S2,D ]
说明:数据段采用的是,首地址 +尾地址,的表示方式,
即将指定的以 S1为起始地址,S2为终止地址的数据块拷贝到以 D为起始地址的目的区中 。 要求 S1和 S2应为同一类型的寄存器,且 S2≥S1。
2) F11(COPY):块拷贝指令 。
格式,[ F11 COPY S,D1,D2 ]
说明:即将由 S指定的 16-bit常数或寄存器中的值重复拷贝到以 D1为起始地址,D2为终止地址的目的区中 。 要求 D1和 D2应为同一类型的寄存器,且
D2≥D1。
2009-7-29 143
4.数据交换指令,F15(XCH)、
F16(DXCH),F17(SWAP)1) F15(XCH),16位数据交换 。格式,[ F15 XCH D1,D2 ]
说明:将 D1和 D2寄存器中的 16位数据互相交换 。
2) F16(DXCH),32位数据交换 。
格式,[ F16 DXCH D1,D2 ]
说明:将 (D1+1,D1)寄存器中的 32位数据与 (D2+l,
D2)中的 32位数据互换 。
3) F17(SWAP),16位数据的高低字节互换 。
格式,[ F17 SWAP D ]
说明:将 D寄存器中的 16位数据高 8位和低 8位互换 。
2009-7-29 144
二、算术运算指令算术运算指令共有 32条,但是同前面介绍的比较指令类似,规律性很强 。 因此,
书中仅对其规律加以总结分析,掌握规律后,
结合指令表,不难掌握这类指令 。1、指令分类? 按照进位制可分为二进制 BIN算术运算指令和 BCD码算术运算指令,
各为 16条指令,后者在指令中增加大写字母,B”以示区别 。
按照参与运算的数据字长 (位数 )可以分为单字 (16-bit)和双字 (32-bit)
指令,后者在助记符中以大写字母,D”区别,在 FP1的其它指令中也是采用这种方式 。
按照运算规则可分为加,减,乘,除四则运算,以及加 1,减 1共六种基本运算 。 其中,加 1和减 1可以看作是加,减运算的特例 。
按照参与运算的操作数的多少可分为一操作数,两操作数和三操作数 。
2009-7-29 145
2.操作数的数据范围
16位二进制数,?32768 ~ 32767
或 H8000 ~ H7FFF。
32位二进制数,?2147483648 ~ 2147483647
或 H80000000 ~ H7FFFFFFF。
4位 BCD码,0 ~ 9999。
8位 BCD码,0 ~ 99999999。
2009-7-29 146
3.运算标志算术运算要影响标志继电器,包括特殊内部继电器
R9008,R9009和 R900B。 这里仅对影响情况做简单概括,
详细情况需要结合具体的指令,参考手册学习掌握 。
R9008:错误标志 。 当有操作错误发生时,R9008接通一个扫描周期,并把发生错误的地址存入 DT9018中 。
R9009:进位,借位或溢出标志 。 当运算结果溢出或由移位指令将其置 1时,R9009接通一个扫描周期 。
R900B,0结果标志 。 当比较指令中比较结果相同,或是算术运算结果为 0时,R900B接通一个扫描周期 。
2009-7-29 147
4.运算规则
1) 加法指令的算法两操作数,(D) + (S) → (D)
三操作数,(S1) + (S2) → (D)
2) 减法指令的算法两操作数,(D) – (S) → (D)
三操作数,(S1) – (S2) → (D)
3) 乘法指令的算法
(S1) × (S2) → (D)
乘法运算可能会导致 16位数据升为 32位,因此结果用 32位存储;同理,32位乘法结果用 64位存储 。 存储区自动取指定寄存器连续的高位寄存器,例如指定寄存器为
D,对于 64位,结果自动存于 (D+3,D+2,D+1,D)四个连续寄存器中 。
2009-7-29 148
4) 除法指令的算法
(S1) ÷ (S2) → (D)
除法运算在每次运算完后,商数保存于 D中或 (D+1,
D)中 。 此外,还可能产生余数,如果是单字运算,可到
DT9015中取余数;如果是双字运算,可到 (DT9016,
DT9015)中取余数 。
5) 加 1和减 1指令算法加 1指令,(D) + 1 → (D)
减 1指令,(D) – 1 → (D)
算术运算一般都是一次性的,而 PLC采用的是扫描执行方式,因此该类指令常常和微分指令 (DF)联合使用 。 下面举例对算术指令加以说明 。
2009-7-29 149
5.举例例 3-24:用算术运算指令完成算式,这里包括了加,减,乘,除四种运算 。 要求 X1闭合时开始运算,X0闭合时各单元清零,且清零优先 。
解:使用二进制 (BIN)运算指令实现时,梯形图如下图 。 同样的功能也可采用 BCD码运算指令实现 。
0
X 0
F 2 2 +,K 1 2 3 0,K 6 5 4,D T 0
F 3 0 *,D T 0,K 2 0 0 2,D T 2
F 2 8 D -,K 5 6 0 0,D T 2,D T 4
F 1 1 C O P Y,K 0,D T 0,D T 7
F 3 3 D %,D T 4,K 2 5 6,D T 6
X 1
( D F )
( E D )
1
1
X 0
3 9
4 7
256 2002)6541230(5600
2009-7-29 150
三、数据比较指令数据比较指令包括 16位或 32位数据比较指令、一个 16位或 32位数据与数据区间进行比较、数据块比较等 5条指令。比较的结果用特殊内部继电器 R9009、
R900A,R900B和 R900C的状态来表示。
1,16位和 32位数据比较指令,F60(CMP)、
F61(DCMP) [ F60 CMP,S1,S2 ],16位数据比较指令 。
[ F61 DCMP,S1,S2 ],32位数据比较指令 。
该类指令的功能为:当控制触点闭合时,将 S1指定数据与 S2指定数据进行比较,比较的结果反映到标志位中 。
2009-7-29 151
如果程序中多次使用 F60(CMP)指令,则标志继电器的状态总是取决于前面最临近的比较指令 。 为了保证使用中不出现混乱,一个办法是在比较指令和标志继电器前使用相同的控制触点来进行控制;另一个办法是在比较指令后立即使用相关的标志继电器 。
标志位结果
R900A R900B R900C R9009
>标志 =标志 <标志 进位标 志有符号数比较
S1< S2 OFF OFF ON –
S1= S2 OFF ON OFF OFF
S1> S2 ON OFF OFF –
BCD数据或无符号数比较
S1< S2 – OFF – ON
S1= S2 OFF ON OFF OFF
S1> S2 – OFF – OFF
表 3-14 16位数据比较指令 F60(CMP) 对标志位影响
2009-7-29 152
2,16位和 32位数据区间比较指令:
F62(WIN),F63(DWIN)[ F62 WIN,S1,S2,S3 ],16位数据区段比较指令。
[ F63 DWIN,S1,S2,S3 ],32位数据区段比较指令。
该类指令的功能为:当控制触点闭合时,将 S1指定数据与 S2指定下限,S3指定上限的数据区间中的数据比较,比较的结果反映到标志位中。
标志位结果
R900A R900B R900C
>标志 =标志 <标志
S1< S2 OFF OFF ON
S2≤ S1≤ S3 OFF ON OFF
S1> S3 ON OFF OFF
表 3-15 16位数据区间比较指令 F62(WIN)对标志位影响
2009-7-29 153
3.数据块比较指令,F64(BCMP)
[ F64 BCMP,S1,S2,S3 ],数据块比较指令 。
该指令功能为:当控制触点闭合时,根据 S1指定的比较参数,该参数包括数据块的起点和长度,比较由 S2指定首地址的数据块和由 S3指定首地址的数据块中的内容,当两个数据块完全相同时,特殊内部继电器
R900B接通 。
S1指定的比较参数的定义见下图。
H
将 要 比 较 的 字 节 数范 围,H 0 1 ~ H 9 9 ( B C D )
由 S 2 指 定 的 数 据 块 起 始 字 节 的 位 置
1,从 高 字 节 开 始
0,从 低 字 节 开 始由 S 3 指 定 的 数 据 块 起 始 字 节 的 位 置
1,从 高 字 节 开 始
0,从 低 字 节 开 始
S 1
2009-7-29 154
四、逻辑运算指令该类指令很简单,包括与,或,异或和异或非 4种 。 操作数均为 16位,均有三操作数,将 S1和 S2分别进行上述 4种运算,结果存于 D中 。
1,F65(WAN):
格式,[ F65 WAN S1,S2,D ]
功能,16-bit data AND,16位数据,与,运算 。
2,F66(WOR):
格式,[ F66 WOR S1,S2,D ]
功能,16-bit data OR,16位数据,或,运算 。
3,F67(XOR):
格式,[ F67 XOR S1,S2,D ]
功能,16-bit data exclusive OR,16位数据,异或,运算 。
4,F68(XNR):
格式,[ F68 XNR S1,S2,D ]
功能,16-bit data exclusive NOR,16位数据,异或非,运算 。
2009-7-29 155
五、数据转换指令数据转换指令包含各种数制,
码制之间的相互转换,有二进制,十六进制及 BCD码数据同 ASCII码之间的相互转换,二进制数据与 BCD码间的相互转换,
指令较多 。 此外还有二进制数据的求反,
求补,取绝对值;符号位的扩展等操作以及解码,编码,译码,数据分离,数据组合,数据查表等操作 。 通过这些指令,在程序中可以较好地解决 PLC输入,
输出的数据类型与内部运算数据类型不一致的问题 。
2009-7-29 156
1.区块检查码计算指令,F70(BCC)
[F70 BCC S1,S2,S3,D],这条指令常用于数据通信时检查数据传输是否正确 。 该指令是 FP1指令系统中惟一的一条四操作数的指令 。
2,码制变换指令,F71 ~ F83
1) F71 ~ F78,是 8条三操作数的码制变换指令,分别实现十六进制数据,BCD码,16位二进制数据,32位二进制数据与 ASCII码间的互换,
2) F80 ~ F83,是 4条双操作数的码制变换指令,分别实现
16位和 32位二进制数据与 BCD码数据间的互换 。
根据前面所学知识,不难推测出 S和 D可取用的寄存器范围 。 即目的寄存器不可取用 WX,K,H,当操作数是 32
位数据时,不可取用 IY。
2009-7-29 157
3.数据计算指令,F84 ~ F88
F84 ~ F88这 5条指令是将 D指定的 16位数据或 32位二进制数据分别求反,求补,取绝对值,并将结果存储在 D或
(D+1,D)中 。 操作数 D不可用寄存器 WX,K,H。
4,16位数据符号位扩展指令,F89(EXT)
该指令的功能为:将 D指定的 16位数据的符号位全部拷贝到 D+1寄存器的各个位中,保留 D寄存器,扩展结果作为
32位数据存储于 (D+1,D)中 。 用该指令可将 16位数据转变为 32位数据 。
2009-7-29 158
5.编码 /解码指令,F90 ~ F92
H
解 码 的 位 数范 围,H0 ~ H8
待 解 码 数 据 的 起 始 位 地 址范 围,H0 ~ HF
图 3-39 n的格式示意图
1) [ F90 DECO S,n,D],解码指令 。 所谓解码,就是将若干位二进制数转换成具有特定意义的信息,
即类似于数字电路中的 3-8译码器的功能,将 S指定的 16位二进制数根据 n规定的规则进行解码,解码的结果存于以 D指定的 16位寄存器作为首地址的连续区域 。
2) [ F91 SEGT S,D ],位数据七段解码指令 。 是把一个 4位二进制数译成七段显示码 。 即将 S指定 的 16位数据转换为七段显示码,转换结果存储于以 D为首地址的寄存器区域中 。 其中,S为被译码的数据或寄存器 。 D
为存放译码结果的寄存器首地址 。
在执行该指令时,将每 4?bit二进制码译成 7位的七段显示码,数码的前面补 0变成 8位,因此,译码结果使数据位扩大了一倍 。
2009-7-29 159
H
待 编 码 的 位 数范 围,H1 ~ H8
编 码 后 数 据 的 起 始 位 地 址范 围,H0 ~ HF
图 3-40 n的格式示意图
3) [ F92 ENCO S,n,D ],编码指令 。 所谓编码,就是将具有特定意义的信息变成若干位二进制数 。
将 S指定的 16位二进制数据根据 n
的规定进行编码,编码结果存储于
D指定的寄存器中 。
其中,S为被编码的数据或寄存器首地址,n为编码控制字或存放控制字的寄存器 。
nL为 n的 bit0 ~ bit3,用于设定编码数据的有效位长度,nL的取值范围为 H1 ~ H8。 S的有效位长度= 2nL。
nH是 n的 bit8 ~ bit11,用于设定 D寄存器从何位开始存放结果,nH
取值范围为 H0 ~ HF。
2009-7-29 160
6,数据组和 /分离指令,F93,F941) [ F93 UNIT S,n,D ],数据组合指令,其功能是将一组数据的低 4
位 (bit0 ~ bit3)重新组成一个 16位数据 。
2) [ F94 DIST S,n,D ],数据分离指令,其功能和数据组合指令相反,
是将一个 16位数,每 4bits为一组分成 4组,按 n规定的方式,存到结果寄存器 D的低 4位中去 。
7.字符 → ASCII码转换指令,F95(ASC)
[ F95 ASC S,D ],将 S指定的字符常数转换为 ASCII,转换后的结果存储于以 D指定的 16位寄存器开始的区域中。
8.表数据查找指令,F96(SRC)
[ F96 SRC S1,S2,S3 ],在 S2(首地址 )和 S3(尾地址 )指定的数据区中查找与 S1的内容相同的数据,并将查找到的数据的个数存储于特殊数据寄存器 DT9037中,第一次发现该数据的位置存储于特殊数据寄存器
DT9038中 。
2009-7-29 161
六、数据移位指令
FP1高级指令系统中包含了位,
字以及字段的左 /右移位指令,共有 16位数据的左 /右移位,4位 BCD码的左 /右移位,字数据的左 /右移位,16位数据的左
/右循环移位等 12条指令 。 其中位移位指令有进位标志位参与运算,并分为非循环移位指令 (普通移位 )和循环移位指令两种 。 这些移位指令比前文介绍过的 SR
指令的功能要强大得多,且不象 SR那样每次只能移动 1位,而是可以根据需要,
在指令中设置一次移动若干位 。 此外,
各种通用寄存器都可以参与多种移位操
2009-7-29 162
1,16位数据的左 /右移位指令该类移位指令只是针对 16位二进制数据,根据循环情况的不同又可分为普通 ( 非循环 ) 移位指令,循环移位指令和包含进位标志的循环移位指令三种情况 。 其区别主要在于移入位的数据处理上,简单地说,普通 ( 非循环 ) 移位指令不循环,移入位直接依次补 0;循环移位指令移入位则由移出位补入;包含进位标志的循环移位指令移入位由进位标志依次补入 。
这里要注意的是,为了便于理解,也可将一次移动 n位的过程理解成移动 n次,每次移动 1位,实际上指令是一次完成移位的 。
2009-7-29 163
1) 普通(非循环)移位指令
[ F100 SHR,D,n ],寄存器 D中的 16位数据右移 n位,高位侧移入数据均为 0,低位侧向右移出 n位,且第 n位移入进位标志位 CY(R9009)中 。
[ F101 SHL,D,n ],寄存器 D中的 16位数据左移 n位,高位侧向左移出
n位,且第 n位移入进位标志位 CY(R9009)中,低位侧移入数据均为 0。
其中,n用于设定移位的位数,为常数或 16位寄存器,取值范围为
K0 ~ K255。
1 5 0
F 1 0 0 ( S H R )
C Y 1 5 0
F 1 0 1 ( S H L )
C Y
D D
0 0
2009-7-29 164
2) 循环移位指令
[ F120 ROR,D,n ],寄存器 D中的 16位数据右移 n位,低位侧移出的 n
位依次移入高位侧,同时移出的第 n位复制到进位标志位 CY(R9009)中 。
[ F121 ROL,D,n ],寄存器 D中的 16位数据左移 n位,高位侧移出的 n
位依次移入低位侧,同时移出的第 n位复制到进位标志位 CY(R9009)中 。
注意这两条指令与 F100和 F101的区别在于:这里是循环移位,而不是补 0。
1 5 0
F 1 2 0 ( R O R )
C Y 1 5 0
F 1 2 1 ( R O L )
C Y
D D
2009-7-29 165
3) 包含进位标志的循环移位指令
[ F122 RCR,D,n ],寄存器 D中的 16位数据右移 n位,移出的第 n位移入进位标志位 CY,而进位标志位 CY原来的数据则移入从最高位侧计的第
n位 。
[ F123 RCL,D,n ],寄存器 D中的 16位数据左移 n位,移出的第 n位移入进位标志位 CY,而进位标志位 CY原来的数据则移入从最低位侧计的第
n位 。
1 5 0
F 1 2 2 ( R C R )
C Y 1 5 0
F 1 2 3 ( R C L )
C Y
D D
2009-7-29 166
2.十六进制数的左 /右移位指令
d i g i t 3
1 5 … 1 2
d i g i t 2
1 1 … 8
d i g i t 1
7,,,4
d i g i t 0
3,,,0
0
1 5 … 1 2 1 1 … 8 7,,,4 3,,,0
0
D
D T 9 0 1 4
F 1 0 5 ( B S R )
d i g i t 3
1 5 … 1 2
d i g i t 2
1 1 … 8
d i g i t 1
7,,,4
d i g i t 0
3,,,0
1 5 … 1 2 1 1 … 8 7 … 4 3,,,0
D
D T 9 0 1 4
F 1 0 6 ( B S L )
[ F105 BSR,D ],寄存器 D中的 4位十六进制数右移 1位,相当于右移二进制的 4bits,移出的低 4bits数据送到特殊数据寄存器 DT9014的低
4bits,同时 D的高 4bits变为 0。
[ F106 BSL,D ],寄存器 D中的 4位十六进制数左移 1位,相当于左移二进制的 4bits,移出的高 4bits数据送到特殊数据寄存器 DT9014的低 4bits,
同时 D的低 4bits变为 0。
2009-7-29 167
3.数据区按字左 /右移位指令
[ F110 WSHR,D1,D2 ],由 D1为首地址,D2为末地址定义的 16位寄存器数据区,整体右移一个字,相当于二进制的 16-bit。 执行后,首地址寄存器的原数据丢失,末地址寄存器为 0。
[ F111 WSHL,D1,D2 ],由 D1为首地址,D2为末地址定义的 16位寄存器数据区,整体左移一个字,相当于二进制的 16-bit。 执行后,首地址寄存器为 0,末地址寄存器的原数据丢失 。
D 2
.,,
D 1D 1 + 1.,,
0
丢 失数 据 区
F 1 1 0 ( W S H R )
D 2
.,,
D 1D 1 + 1.,,
0丢 失数 据 区
F 1 1 1 ( W S H L )
同前面针对数据区操作的高级指令一样,D1和 D2应是同一类型的寄存器,且末地址寄存器号应大于或等于首地址寄存器号,即 D2≥D1。
此外,还要注意的是首尾地址的编排顺序是左边为末地址,右边为首地址 。
2009-7-29 168
4.十六进制数据区的左 /右移位指令
...
D 2(末 地 址 )
F113(W B SL )
0丢 失
digit3
15 … 12
D 1(首 地 址 )
digit0
3,.,0
...
...0 丢 失
D 2(末 地 址 )
F112(W B SR )
digit3
15 … 12
D 1(首 地 址 )
digit0
3,.,0
...
[ F112 WBSR,D1,D2 ],由 D1为首地址,D2为末地址定义的 16位寄存器数据区,整体右移一个十六进制数,相当于二进制的 4bits。
[ F113 WBSL,D1,D2 ],由 D1为首地址,D2为末地址定义的 16位寄存器数据区,整体左移一个十六进制数,相当于二进制的 4bits。
2009-7-29 169
七、位操作指令位操作就是指被操作的对象不是字,而是字中的某一位或几位 。 FP1系列 PLC具有较强的位操作能力,可以进行
16位数据的位置位 (置 1),位复位 (清 0)、
位求反以及位测试,还可计算 16位或 32
位数据中,位值为? 1” 的位数 。 位操作指令共有 6条,可分为位处理指令和位计算指令两类 。
由于这些指令可以对寄存器中
2009-7-29 170
1.位处理指令
[ F130 BTS,D,n],位置 1指令 。
[ F131 BTR,D,n],位清 0指令 。
[ F132 BTI,D,n],位求反指令 。
[ F133 BTT,D,n],位测试指令 。
前 3条指令的功能是对位进行运算处理,分别对 D寄存器中,位地址为 n的数据位进行置位 (置 1),复位 (清 0),求反 。
其中,由于 n用来表示 16位数据的位地址,因此取值范围为
K0 ~ K15。
第 4条指令用于测试 16位数据 D中任意位 n的状态为,0”
还是为,1”。 测试的结果存储在内部继电器 R900B中,如果测试结果为 0,则 R900B=1;测试结果为 1,R900B=0。
2009-7-29 171
2.位计算指令位计算指令就是计算寄存器的数据或常数中有多少位是,1”。
[ F135 BCU,S,D],16位位计算指令 。
[ F136 DBCU,S,D],32位位计算指令 。
F135(BCU)和 F136(DBCU)的功能是分别统计 S指定的
16位和 32位数据中位值为,1”的位的个数,并把统计的结果存储于 D指定的存储区中 。
2009-7-29 172
八、特殊指令
1、时间变换指令,F138(HMSS)、
F139(SHMS)
FP1-C24以上机型均有日历及实时时钟功能 。 使用手持编程器或编程软件将年,月,日,时,分,秒,星期等的初值设置到特殊数据寄存器 DT9054 ~ DT9057中,
即可实现自动计时,即使断电后,计时也不会间断 。 校表时,采用舍入法,DT9058是 30秒校表寄存器,当
DT9058置入,1”时,若秒位显示小于 30秒则舍去,若大于 30秒,则分位加,1”。
2009-7-29 173
1) F138(HMSS)
格式,[ F138 HMSS S,D ]
功能:将以时 /分 /秒格式表示的时间数据,变换成以秒为单位的时间数据 。 将 (S+1,S)中存放的时 /分 /秒数据转换为秒数据,结果存放于寄存器 (D+1,D)中 。 在这里,S和 D中的数据均用 BCD码表示 。 表示形式如下图所示 。
图 3-47 F138指令中 S和 D的含义
2) F139(SHMS)
格式,[ F139 SHMS S,D ]
功能:将以秒为单位的时间数据,变换成以时 /分 /秒格式表示的时间数据 。 功能与 F138完全相反 。
源 操 作 数
S + 1 S
时 数 据
H 0 0 0 0 ~ H 9 9 9 9
分 数 据
H 0 ~ H 5 9
秒 数 据
H 0 ~ H 5 9
H
数 据,
范 围 ( B C D ),
D + 1 D
秒 数 据
H 0 0 0 0 0 0 0 0 ~ H 9 9 9 9 9 9 9 9
H
目 的 操 作 数
2009-7-29 174
2、进位位 (CY)的置位和复位指令:
F140(STC),F141(CLC)格式,[ F140 STC ],[ F141 CLC ]功能,F140(STC)和 F141(CLC)指令是 FP1高级指令中仅有的两条无操作数的指令,其功能是将特殊内部继电器 R9009(进位标志位 )置位和复位,即将 R9009置为 1或者清 0。
3、刷新部分 I/O指令,F143(IORF)
格式,[ F143 IORF D1,D2 ]
功能:刷新指定的部分 I/O点 。
F143指令只要触发信号接通,即使在执行程序阶段,也能立即将输入 (WX)或输出 (WY)寄存器 D1至 D2的内容刷新,避免由扫描时间造成的延时 。 该指令要求 D1
和 D2为同一类型的操作数,且 D2≥D1。
2009-7-29 175
4、串行数据通信指令,F144(TRNS)
格式,[ F144 TRNS S,n ]
功能:通过 RS232串行口与外设通讯,以字节为单位,发送或接收数据 。 一般型号末端带,C”的 PLC带有 RS232串行口 。
其中,S为发送或接收数据的寄存器区首地址,且 S只能使用数据寄存器 DT。 寄存器 S用作发送或接收监视之用,
之后的寄存器 S+1,S+2,……,存放着发送或接收的数据 。
也就是说,S+1为发送和接收数据的首地址,数据存放在
S+1及以后的寄存器中 。 n则用来设定要发送的字节数 。
1) 数据发送,特殊内部继电器 R9039是发送标志继电器,
发送过程中 R9039为 OFF状态,结束后为 ON状态 。
2) 数据接收,特殊内部继电器 R9038是接收标志继电器,
接收过程中 R9038为 OFF状态,结束后为 ON状态 。
2009-7-29 176
5、并行打印输出指令,F147(PR)
格式,[ F147 PR S,D ]
功能:通过并行通讯口打印输出字符 。 每次执行打印指令可连续打印 12个字符,并占用 37个扫描周期,由 Y8自动发出打印脉冲 。 C24以上晶体管输出型的 PLC具有并行打印输出功能 。
其中,S指定了要输出字符的首地址,S和随后的 S+1、
S+2等保存的必须是字符型 ASCII数据 。 D为打印机信号输出,
只可用 WY输出继电器,且 0 ~ 8位与打印机对应,PLC与打印机之间的连线如下表所示 。
表 3-21 FP1与打印机连接端点晶体管输出型
FP1
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 COM DC+5V
打印机 Data1 Data2 Data3 Data4 Data5 Data6 Data7 Data8 Strobe COM DC+5V
2009-7-29 177
6、自诊断错误设置指令,F148(ERR)
格式,[ F148 ERR n ]
功能:将某特殊状态设置为自诊断错误,或者将由自诊断错误
E45,E50或 E200 ~ E299引起的错误状态复位 。 F148指令的运行由 n决定,n为自诊断错误代码,范围为 0和 100 ~ 299。
n = 0:清除由自诊断错误 E45,E50或 E200 ~ E299引起的错误状态;
n = 100 ~ 299:将指令的触发信号设置为第 n号自诊断错误 。
具体内容请参见手册的,错误代码表,。
7、信息显示指令,F149(MSG)格式,[ F149 MSG S ]
功能:将 S指定的字符常数 (以 M开始的字符串 )显示在 FP编程器 II屏幕上。
2009-7-29 178
8、时间运算指令,F157(CADD)、
F158(CSUB)1) F157(CADD)
格式,[ F157 CADD S1,S2,D ]
功能:在 (S1+2,S1+1,S1)指定的日期 (年,月,日 )和时间 (时,分,秒 )数据中加上 (S2+1,S2)指定的时间数据,
所得的结果 (年,月,日,时,分,秒 )存放在 (D+2,D+1,
D)中,日期,时间数据均用 BCD码表示 。
2) F158(CSUB)
格式,[ F158 CSUB S1,S2,D ]
功能:同 F157(CADD)类似,只是相加运算变为相减运算,详细用法请参考手册 。
2009-7-29 179
第三章结束哈尔滨理工大学电气与电子工程学院电气技术教研室
2003年 3月 24日
2009-7-29 180
第四章 PLC的编程及应用第一节 PLC编程特点和原则一,PLC的编程特点梯形图编程是 PLC编程中最常用的方法。它源于传统的继电器电路图,但发展到今天两者之间有了较大的差别。
1,程序的执行顺序
① 继电器梯形图和 PLC梯形图执行顺序的比较
X1 Y1
Y2
X1 Y1
Y2
继电器梯形图
X1闭合后,Y1,Y2同时得电
PLC梯形图
X1闭合后,Y1先输出,Y2后输出
2009-7-29 181
② PLC程序的扫描执行结果扫描执行方式优点,可滤掉高频干扰,增强抗干扰能力。
缺点,产生响应滞后,影响可靠性。
2,继电器自身的延时效应
Y1
Y1
Y2
X1
X1
Y2
Y1
Y1
X1闭合后,Y1,Y2在同一扫描周期内动作
X1闭合后,Y1,Y2在两个扫描周期内动作
X1
X1
Y1
Y2
X0
Y1
Y0
X0
X1动作时,Y1,Y2
不同时得电与断电
X1动作时,Y0,Y1
同时得电与断电
2009-7-29 182
3.PLC中的软继电器所谓软继电器是指 PLC存储空间中的一个可以寻址的位。
在 PLC中,软继电器种类多、数量大。
如 FP1-C24,共有 R内部继电器 1008个,特殊继电器 64个,定时器 /计数器 144个。
寄存器中触发器的状态可以读取任意次,相当于每个继电器有无数个常开和常闭触点。
2009-7-29 183
二,PLC的编程原则
1,输入 /输出继电器、内部辅助继电器、定时器、计数器等器件的 触点可以多次重复使用,无需复杂的程序结构来减少触点的使用次数。
2,梯形图每一行都是从左母线开始,线圈终止于右母线。
触点不能放在线圈的右边。
接点和线圈的顺序:
X0 X1 Y0X2 X0 X1 Y0 X2
正确程序 错误程序
2009-7-29 184
3,除步进程序外,任何线圈、定时器、计数器、
高级指令等不能直接与左母线相连。 如果需要任何时候都被执行的程序段,可以通过特殊内部常闭继电器或某个内部继电器的常闭触点来连接。
4,在程序中,不允许同一编号的线圈两次输出。 下面的梯形图是不允许的。
R 9 0 1 0 T M R 0,K 1 0 0 T M R 0,K 1 0 0R0
利用内部特殊继电器实现常闭输出利用内部继电器常闭接点实现常闭输出
X1
X0
Y0
Y0
2009-7-29 185
5,不允许出现桥式电路。
注意,触点应画在水平线上,不能画在垂直分支上。
6,程序的编写顺序应按 自上而下、从左至右 的方式编写。
为了减少程序的执行步数,程序应为,左大右小,上大下小,。如:
X0
X2 X4
X1
X3
Y0
Y1
X2 X4 X1 Y0
X0
X0
X2
X4 X3 Y1
错误的桥式电路 桥式电路的替代电路
X0
X1 X2
Y0
0 ST X0
1 S T X 1
2 AN X2
3 O R S
4 OT Y0
不符合上大下小的电路,共 5步
2009-7-29 186
X1 X2
X0
Y0
0 ST X1
1 A N X 2
2 OR X0
3 OT Y0
符合上大下小的电路,共 4步
X0 X1
X2
Y00 ST X0
1 S T X 1
2 OR X2
3 ANS
4 OT Y0
不符合左大右小的电路,共 5步
X1 X0
X2
Y1
符合左大右小的电路,共 4步
2009-7-29 187
第二节 基本电路一,AND运算二,OR运算例如,在锅炉控制过程中,无论是水罐的压力过高,还是水温过高都要产生声光报警。
X1 X2 Y0
AND电路,Y0接受 X1和 X2
的 AND运算结果块1 块2 Y0
AND扩展电路,Y0接受块 1和块 2
的 AND运算结果
X1
X2
Y1
例如,只有当设备的状态为就绪状态,并且按下“开始”
按扭,设备才能开始工作。
OR扩展电路,Y1接受的是块 1
和块 2的 OR运算结果
Y1
块1
块2
OR电路,Y1接受的是 X1
和 X2的 OR运算结果
2009-7-29 188
三,自锁(自保持)电路自锁电路分为:关断优先式和启动优先式关断优先式自锁电路,当执行关断指令,X2闭合时,无论 X1的状态如何,线圈 Y1均不得电。
启动优先式自锁电路,当执行启动指令,X1闭合时,无论 X2的状态如何,线圈 Y1都得电。
X1 X2
Y1
Y1
0 ST X1
1 OR Y1
2 AN/ X2
3 OT Y1关断优先式自锁电路
Y1 X2
X1
Y1
0 ST Y1
1 AN/ X2
2 OR X1
3 O T Y 1
启动优先式自锁电路
2009-7-29 189
四,互锁电路互锁电路用于不允许同时动作的两个继电器的控制,
如电机的正反转控制。
五,时间电路时间电路主要用于延时、定时和脉冲控制中。
时间控制电路既可以用定时器实现也可以用标准时钟脉冲实现。
在 FP1型 PLC内部有多达 100个定时器和三种标准时钟脉冲( 0.01s,0.1s,1s)可用于时间控制。
X0 X2
Y1
Y1Y2
X1 X2
Y2
Y2Y1
0 ST X0
1 O R Y 1
2 AN/ X2
3 A N / Y 2
4 O T Y1
5 S T X1
6 O R Y 2
7 AN/ X2
8 A N / Y 1
9 O T Y2互锁控制电路
2009-7-29 190
1,延时电路下图利用两个定时器组合以实现长延时。
即 Y0在 X0闭合 30秒之后得电。
X1 T M X 1,K 3 0
T1 Y1
时间继电器 TMX1起到延时 30× 0.1=3秒的作用。
X0 T M Y 0,K 1 0
T0 T M Y 1,K 2 0
T1 Y0
0 ST X0
1 TM Y0
K 10
5 S T T 0
6 T M Y 1
K 2 0
1 0 S T T 1
1 1 O T Y 0
X0
T1
Y0
20s10s
T0
2009-7-29 191
下图利用定时器串联实现长延时。即 Y2
在 X0闭合 30秒之后导通。
X0 T M Y 2,K 2 0
T1 Y1
T M Y 1,K 1 0
T2 Y2
0 ST X0
1 TM Y1
K 1 0
5 T M Y 2
K 2 0
9 S T T 1
1 0 O T Y 1
1 1 S T T 2
1 2 O T Y 2
X0
T2
Y1
20s10s
T1
Y2
2009-7-29 192
2.脉冲电路利用定时器可以方便地产生脉冲序列。在上图程序的运行过程中,R0每隔 3秒产生一次脉冲,其脉宽为一个扫描周期。
在 FP1的内部有七种标准的时钟脉冲继电器,分别为
R9018( 0.01s),R9019( 0.02s),R901A( 0.1s ),
R901B( 0.2s),R901C( 1s),R901D( 2s),R901E
( 1min)。若需要这几种时间的脉冲,可直接利用这几个时间脉冲发生器。
R0 T M X 0,K 3 0
T0 R0
0 S T / R0
1 TM X0
K 3 0
4 S T T 0
5 O T R 0
2009-7-29 193
六,分支电路分支电路主要用于一个控制电路导致几个输出的情况。
例如,开动吊车的同时打开警示灯。
下图中,当 X0闭合后,线圈 Y1,Y2同时得电。
X0
Y2
Y1
0 ST X0
1 OT Y1
2 O T Y 2
2009-7-29 194
第三节 PLC编程实例一,电动机正反转控制
1.系统结构利用 PLC控制一台异步电动机的正反转。
输入端直流电源 E由 PLC内部提供,可直接将 PLC电源端子接在开关上。交流电源则是由外部供给。
2009-7-29 195
X1
X2
2 4 V D C
C O M
X0
220~240V
Y0
Y1
C O M
P L C
红按钮
KM1
KM2
正转
2 4 V D C
~220 V
~220 V
反转黄按钮蓝按钮
PLC控制电动机正反转外部接线图要求:
黄按钮 按下:电机正转蓝按钮 按下:电机反转红按钮 按下:电机停止
2009-7-29 196
2.系统的控制要求按动黄按钮时:
①若在此之前电机没有工作,则电机正转启动,并保持电机正转;
②若在此之前电机反转,则将电机切换到正转状态,并保持电机正转;
③若在此之前电机的已经是正转,则电机的转动状态不变。
电机正转状态一直保持到有篮按钮或红按钮按下为止。
按动蓝按钮时:
①若在此之前电机没有工作,则电机反转启动,并保持电机反转;
②若在此之前电机正转,则将电机切换到反转状态,并保持电机反转;
③若在此之前电机的已经是反转,则电机的转动状态不变。
电机反转状态一直保持到有黄按钮或红按钮按下为止。
按下红按钮时,停止电机的转动注:电机不可以同时进行正转和反转,否则会损坏系统
2009-7-29 197
3,PLC的 I/O点的确定与分配
4,系统编程分析和实现电机正反转控制 PLC的 I/O点分配表
PLC点名称 连接的外部设备 功能说明
X0 红按钮 停止命令
X1 黄按钮 电机正转命令
X2 蓝按钮 电机反转命令
Y0 正转继电器 控制电机正转
Y1 反转继电器 控制电机反转
X1
Y0
Y0
X1
Y0
Y0
X2
Y1
Y1
电机初步正转控制电路 电机初步正反转控制电路
2009-7-29 198
系统要求电机不可以同时进行正转和反转,如下图所示利用互锁电路可以实现。
利用正转按钮来切断反转的控制通路;利用反转按钮来切断正转的控制通路。
X1 Y1
Y0
Y0
X2 Y0
Y1
Y1
电机正反转的互锁电路
X1 Y1
Y0
Y0X2
X2 Y0
Y1
Y1X1
电机正反转的切换电路
2009-7-29 199
当按下红按钮时,无论在此之前电机的转动状态如何,
都停止电机的转动。
利用红色按钮同时切断正转和反转的控制通路。
X1 Y1
Y0
Y0X2
X2 Y0
Y1
Y1X1 X0
X0
( E D )
0 ST X1
1 O R Y 0
2 AN/ Y 1
3 A N / X 2
4 A N / X 0
5 O T Y 0
6 S T X 2
7 O R Y 1
8 AN/ Y 0
9 A N / X 1
1 0 A N / X 0
11 O T Y 1
1 2 E D
电机正反转的最终控制程序
2009-7-29 200
二,锅炉点火和熄火控制锅炉的点火和熄火过程是典型的定时器式顺序控制过程。
控制要求:
点火过程,先启动引风,5分钟后启动鼓风,2分钟后点火燃烧。
熄火过程,先熄灭火焰,2分钟后停鼓风,5分钟后停引风。
1.PLC的 I/O点的确定与分配锅炉点火和熄火控制 PLC的 I/O点分配表
PLC点名称 连接的外部设备 功能说明
X0 蓝按钮 点火命令
X1 红按钮 熄火命令
Y0 控制继电器 1 控制引风
Y1 控制继电器 2 控制鼓风
Y2 控制继电器 3 控制点火开关
2009-7-29 201
2.编程分析和实现
(1)点火过程工作过程:
当蓝按钮按下( X0接通)后,启动引风( Y0输出 。因 X0选用的是非自锁按钮,故需要利用自锁电路锁住 Y0,同时利用 Y0触发时间继电器 T0,
T0延时 300s( 5分钟)后,输出继电器 Y1动作,即启动鼓风。 同时利用 T0
触发定时继电器 T1,T1延时 120s( 2分钟)后,输出 Y2,点火燃烧。
Y0 T M Y 0,K 3 0 0
T M Y 1,K 1 2 0
X0
Y0
Y0
T0
T1 Y2
( E D )
Y1
0 ST X0
1 O R Y 0
2 OT Y0
3 S T Y 0
4 T M Y 0
K 3 0 0
8 S T T 0
9 O T Y 1
10 TM Y 1
K 1 2 0
1 4 S T T 1
15 O T Y 2
1 6 E D
锅炉点火过程控制程序
2009-7-29 202
( 2) 系统的点火和熄火过程的综合程序下面所示的两个程序都可以实现锅炉系统的点火和熄火过程控制,但实现的方式不同。
图 (a)程序利用了 4个时间继电器,但程序的逻辑关系比较简单易懂。
2009-7-29 203( a) 锅炉系统点火和熄火过程的综合程序 (1)
2009-7-29 204
图 (b)程序利用了 2个时间继电器,节约了 2个时间继电器,但控制 逻辑相对复杂些。
( b) 锅炉系统点火和熄火过程的综合程序 (2)
2009-7-29 205
三,房间灯的控制现在一些宾馆和家庭客厅中的装饰灯,是利用一个开关来实现不同的控制组合。
例如,房间内有 1,2,3号三个灯按动一下开关,三个灯全亮;
再按一下,1,3号灯亮,2号灭;
再按一下,2号灯亮,1,3号灭;
再按一下全部灭。
此控制是利用按动开关次数来控制各个灯的亮、灭,
故可以用计数器来实现计数式顺序控制 。
房间灯控制 PLC的 I/O点分配表
PLC点名称 连接的外部设备 功能说明
X0 按钮 开关命令
Y1 控制继电器 1 控制 1号灯亮灭
Y2 控制继电器 2 控制 2号灯亮灭
Y3 控制继电器 3 控制 3号灯亮灭
2009-7-29 206
房间灯计数式顺序控制程序
2009-7-29 207
这里使用 R9013是程序初始化的需要。一进入程序,
就把十进制数 3赋给 SV100。从这以后 R9013就不起作用了。
在程序中使用微分指令是使 X0具有非自锁按钮的作用。
初始状态,EV100=3,R3通 → Y1,Y2,Y3不通,
3个灯全灭;
第一次接通 X0,EV100=2,R2通 → Y1,Y2,Y3全通,
3个灯全亮;
第二次接通 X0,EV100=1,R1通 → Y1和 Y3通,Y2断,
故 2号灭,1号和 3号灯亮;
第三次接通 X0,EV100=0,R0通 → Y2通,Y1和 Y3断,
故 2号亮,1号和 3号灯灭。
EV100=0时,若再次闭合 X0,则计数器复位,灯全灭,
程序从头开始重复以上过程。
2009-7-29 208
四、多地点控制要求:在三个不同的地方分别用三个开关控制一盏灯,
任何一地的开关动作都可以使灯的状态发生改变,即 不管开关是开还是关,只要有开关动作则灯的状态就发生改变。
三地控制一盏灯 I/O分配表
PLC点名称 连接的外部设备 功能说明
X0 A地开关 在 A地控制
X1 B地开关 在 B地控制
X2 C地开关 在 C地控制
Y0 灯 被控对象
2009-7-29 209
从这个程序中不难发现其编程规律,并能很容易地把它扩展到四地、五地甚至更多地点的控制。 但其设计方法完全靠设计者的经验,初学者不易掌握。
三地控制一盏灯程序( 1)
2009-7-29 210
利用数字电路中组合逻辑电路的设计方法,使编程者有章可循。
规定,输入量为逻辑变量,输出量为逻辑函数;常开触点为原变量,常闭触点为反变量。这样就可以把继电控制的逻辑关系变成数字逻辑关系。
三地控制一盏灯逻辑函数真值表
X0 X1 X2 Y0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
真值表按照每 相邻两行只允许一个输入变量变化的规则排列。 即三个开关中的任意一个开关状态的变化,都会引起输出 Y0由,1” 变到,0”,或由,0” 变到,1” 。
由真值表写出输出与输入之间的逻辑函数关系式:
2102102102100 XXXXXXXXXXXXY
2009-7-29 211
可设计出梯形图程序如下图所示:
三地控制一盏灯程序( 2)
2009-7-29 212
使用高级指令可使程序更加简单 。 下图为应用高级指令
F132编写的控制程序。
三地控制一盏灯程序( 3)
上面的程序只要开关动作 (不管开关是接通还是断开 ),
即将 Y0求反。 程序中每一开关使用了两个微分指令,既可检测上升沿又可检测下降沿,十分巧妙地实现了控制要求。
对于这种编程方式,无论多少个地方,只要在梯形图中多加几个输入触点和几条微分指令就可实现控制要求。
2009-7-29 213
三地控制一盏灯程序( 4)
① 使用条件比较指令,只要( WXO) ≠ ( WRO),就把 YO
求反。
②( WXO) → ( WRO),使两个寄存器中内容完全一样。
③ 只要 WX0中的内容改变,YO的状态就立即变化 。
使用了字比较指令,故 WXO中的 16位都可以用来作为控制开关,使程序大大简化。
2009-7-29 214
五、易拉罐自动生产线计数控制在易拉罐自动生产线上,常常需要统计出每小时生产的易拉罐数量。罐装好的易拉罐饮料一个接一个不断地经过计数装置。假设计数装置上有一感应传感器,每当一听饮料经过时,就会产生一个脉冲。
要求,编制程序将一天 24小时中每小时生产的数量统计出来。
易拉罐计数控制 PLC的 I/O点分配表
PLC点名称 连接的外部设备 功能说明
X0 蓝按钮(自锁) 启动命令
X1 红按钮(自锁) 停止命令
X2 传感器开关 计数脉冲
2009-7-29 215
易拉罐生产数量计数控制梯形图如下:
R9013,对程序初始化。
DT0~ DT23:存放一天 24小时每小时生产罐的数量;
SV0,记录每小时内的时间。
IX作为地址修正值,当 F35指令的操作数地址发生移动时,移动量为 IX中的值。
如:当 IX=0时,F35指令将 DT0的内容加 1;当 IX=10时,则将 DT10的内容加 1。
2009-7-29 216
六、查找最大数上例中,一天 24小时内每小时生产的易拉罐数已分别存储在数据寄存器 DT0~ DT23中。编程找出其中最大的数,
存入 DT24中,并将最大数所在寄存器的编号存入 DT50中。
要求,X0的上升沿开始查找,找到后,输出 Y0表示查找完成。
查找最大数据梯形图
2009-7-29 217
查找数据中的最大数,只需将数据区中的数据进行两两比较即可。
索引寄存器 IX:用作地址修正;
R0:用来表示查找状态。
未查找完时,R0一直接通,当查找结束时,
R0断开。
2009-7-29 218
第五章 FP1的特殊功能及高级模块第一节 FP1的特殊功能
2009-7-29 219
一、脉冲输出电机电机驱动高速计数器脉冲
F P 1
控制单元图 5-1 脉冲输出进行位置控制示意图
FP1的输出端 Y7可输出一路脉冲信号,最大频率范围为 45Hz ~ 5kHz。这一功能只有晶体管输出方式的 PLC才具有,且需配合脉冲输出控制指令 F164(SPD0)使用。
2009-7-29 220
二、高速计数功能( HSC)
在 FP1内部有高速计数器,可同时输入两路脉冲。
最高计数频率,10kHz;
计数范围,K-8388608 ~ K8388607;
输入模式:加计数、减计数、可逆计数、两相输入;
此外,每种模式又分为有复位输入和无复位输入两种情况,输入计数不受扫描周期影响,处理过程中响应时间不延时。
2009-7-29 221
1.占用的输入端子
HSC需占用 FP1输入端子 X0,X1和 X2。其中
X0和 X1作为脉冲输入端,X2作为复位端,可由外部复位开关通过 X2使 HSC复位。
2,输入模式及设置
HSC的四种输入模式中,前三种为单相输入,最后一种为两相输入。如图 5-2所示。
1) 加计数模式
2) 减计数模式
3) 加 /减计数模式
4) 两相输入方式
2009-7-29 222
(a) (b)
(c)
X 0
0 4321
...
计 数 值
...
X 1
3 2 3 4,..
加 计 数 减 计 数 加 计 数
X 1
5 1234
...
计 数 值,..
X 0
0 4321
...
计 数 值,..
(d)
X 0
0 4321
...
计 数 值
...
X 1
...
X 0
5 1234
...
计 数 值
...
X 1
...
图 5-2 四种计数模式的脉冲波形示意图
2009-7-29 223
3.与 HSC相关的寄存器表 5-1 系统寄存器 No.400控制字说明设定值 功 能 输入模式X0 X1 X2
H1 双相输入 - 双相输入方式
H2 双相输入 复位
H3 加计数 - - 加计数方式
H4 加计数 - 复位
H5 - 减计数 - 减计数方式
H6 - 减计数 复位
H7 加计数 减计数 - 加 /减计数方式
H8 加计数 减计数 复位
H0 HSC功能未用 不工作 (默认模式 )
2009-7-29 224
4.高速计数功能指令
1) 高速计数器的控制指令
[ F0 MV,S,DT9052 ]:高速计数器控制指令。
该指令功能是将 S中的控制字数据写入 DT9052中,
DT9052的低四位作为高速计数器控制用。
1 5
与 其 它 高 速 计 数 指 令 有 关 的 位
0,继 续 执 行 F 1 6 2,F 1 6 3,1 6 4,F 1 6 5 指 令
1,清 除 F 1 6 2,F 1 6 3,1 6 4,F 1 6 5 指 令
S,
位 地 址,1 2.,1 1 8.,7 4.,3 02 1
选 择,复 位 输 入 端,X 2 的 可 用 性 控 制 位
0,复 位 输 入 端 X 2 使 能
1,复 位 输 入 端 X 2 禁 止计 数 器 输 入 控 制 位
0,接 受 计 数 输 入
1,计 数 输 入 无 效软 件 复 位 控 制 位
0,不 执 行 软 件 复 位
1,高 速 计 数 器 的 经 过 值 复 位
2009-7-29 225
2) 高速计数器经过值的读写指令
[ F1 DMV,S,DT9044 ]:存储高速计数器经过值。将 (S+1,S)中高速计数器的经过值写入 DT9045,DT9044中。
[ F1 DMV,DT9044,D ]:调出高速计数器经过值。是将 DT9045,DT9044中的经过值读出拷贝到 (D+1,D)中。
3) 高速计数器输出置位复位指令
[ F162 HC0S,S,Yn ]:高速计数器的输出置位指令。
[ F163 HC0R,S,Yn ]:高速计数器的输出复位指令。
2009-7-29 226
4) 速度和位置控制指令
[ F164 SPD0,S ]:速度及位置控制。
该指令配合高速计数器和 Y7的脉冲输出可以实现速度和位置控制。
a) 脉冲工作方式
b) 波形工作方式
5) 凸轮控制指令
[ F165 CAM0,S ]:凸轮控制。当高速计数器的经过值和参数表中设定的目标值相一致时,
接通或断开参数表中指定的输出继电器。
2009-7-29 227
三、可调输入延时滤波图中,t1为干扰脉冲,小于延时时间 Δt,因此不响应; t2,t4分别为机械开关接通和断开时的抖动时间,由图可见,经过延时,避开了输入信号的抖动部分,直接在稳定导通区间 t3进行输入状态的采集和响应。
外 部 输 入响 应 信 号
t
1
t
2
t
4
t
3
t t t
图 5-4 输入信号延时滤波示意图
2009-7-29 228
FP1的延迟时间可以根据需要,在 1 ~
128ms之间进行调节。延时时间的设定是通过软件,
在对应的系统寄存器中设置时间常数来实现,时间常数和延时时间的对应关系如下表:
表 5-2 时间常数与对应延时时间关系系统寄存器 No.404 ~ 407用于预先存放设置的时间常数,与输入端的对应关系为:
No.404:设定 X0 ~ X1F的时间常数。
No.405:设定 X20 ~ X3F的时间常数。
No.406:设定 X40 ~ X5F的时间常数。
No.407:设定 X60 ~ X6F的时间常数。
时间常数
(BCD码 ) 0 1 2 3 4 5 6 7
延时时间 (ms) 1 2 4 8 16 32 64 128
2009-7-29 229
四、输入窄脉冲捕捉一个窄脉冲在第 n个扫描周期的 I/O刷新后到来,若无捕捉功能,
此脉冲将会被漏掉;有了捕捉功能,PLC内部电路将此脉冲一直延时到下一个 (第 n+1个 )扫描周期的 I/O刷新结束,这样 PLC就能响应此脉冲。
图 5-5 脉冲捕捉示意图瞬 间 窄 脉 冲
I / O 刷 新扫 描 周 期捕 捉 后 的输 入 脉 冲执 行 指 令 I / O 刷 新 执 行 指 令第 n 个 扫 描 周 期 第 n + 1 个 扫 描 周 期
2009-7-29 230
只有输入端 X0 ~ X7共 8个输入端可以设成具有脉冲捕捉功能的输入端,这可以通过对系统寄存器 No.402的设置来实现。输入端子与系统寄存器
No.402的位对应关系如下所示:
输入端 X0 ~ X7分别与 No.402的低 8位对应,
当某位设置为 1时,则该位对应的输入端就具有脉冲捕捉功能;设置为 0时,对应的输入端仍是普通的输入端。
07位 地 址,6 5 4 3 2 1
X 0X 7 X 6 X 5 X 4 X 3 X 2 X 1
1 5 8.,,
高 8 位 未 用
2009-7-29 231
五、特殊功能占用输入端优先权排队 大多数特殊功能均需占用 PLC的 I/O点,当多种功能同时使用时,对 I/O的占用须按一定顺序进行优先权排队。
FP1特殊功能优先权排队从高到低依次为:
高速计数器 → 脉冲捕捉 → 中断 → 输入延时滤波六、其他功能
FP1还有一些其它的特殊控制功能,如强制置位 /复位控制功能、口令保护功能、固定扫描时间设定功能和时钟日历控制功能等
2009-7-29 232
第五章 FP1的特殊功能及高级模块第二节 FP1的高级模块
2009-7-29 233
一,A/D转换模块
1,占用通道及编程方法
A/D转换单元 4个模拟输入通道占用输入端子分别为:
CH0,WX9(X90 ~ X9F) CH1,WX10(X100 ~ X10F)
CH2,WX11(X110 ~ X11F) CH3,WX12(X120 ~ X12F)
PLC每个扫描周期对各通道采样一次,并进行模数转换,转换的结果分别存放在输入通道 (WX9 ~ WX12)中。
A/D转换的编程可用指令 F0实现,如 [ F0 MV,WX9,DT0 ] 。执行这一指令后,CH0输入的模拟信号经 A/D转换变成数字信号后送入
WX9,并由 F0指令读出保存到 DT0中。其它通道也可仿照此格式进行编程。
注意,FP1对 A/D模块读取数据,每个扫描周期只进行一次。
2009-7-29 234
2,A/D的技术参数项目 说明模拟输入点数 4通道 /单元 (CH0 ~ CH3)
模拟输入范围 电压 0 ~ 5V和 0 ~ 10V电流 0 ~ 20mA
分辨率 1/1000
总精度 满量程的 ± 1%
响应时间 2.5ms/通道输入阻抗 电压 不小于 1兆欧 (0 ~ 5V和 0 ~ 10V范围内 )电流 250欧姆 (0 ~ 20mA)
绝对输入范围 电压 +7.5V(0 ~ 5V),+15V(0 ~ 10V)电流 +30mA(0 ~ 20mA)
数字输出范围 K0 ~ K1000(H0 ~ H03E8)
绝缘方式 光耦合:端子与内部电路之间无绝缘:通道间连接方式 端子板 (M3.5螺丝 )
2009-7-29 235
1000
500
模 拟 输 入 (V )
0 2.5 5.0
数字输出
(
K
)
(a) 0 ~ 5V (b) 0 ~ 10V (c) 0 ~ 20m A
1000
500
模 拟 输 入 (V )
0 5 10
数字输出
(
K
)
1000
500
模 拟 输 入 (m A )
0 10 20
数字输出
(
K
)
图 5-6 A/D转换单元的输入输出特性
2009-7-29 236
3,A/D转换单元的面板布置及接线方法扩展槽 (右侧 )
连接到 FP1的 D/A转换单元或 I/O LINK单元通道 0到通道 3的端子说明:
V:模拟电压输入端子
I:模拟电流输入端子
C:公共端子
F.G.:框架接地端子电源端子 通道 3电压范围选择端子通道 0 通道 1 通道 2
DIN导轨安装杆扩展槽 (左侧 )
连接到 FP1的控制单元或扩展单元电源指示灯图 5-7 A/D单元的面板布置图
2009-7-29 237
屏蔽线输入设备输入设备屏蔽线图 5-8 电压输入接线方式 图 5-9 电流输入接线方式
2009-7-29 238
4,应用举例当需对某信号进行监测,要求超限报警。这时可将该信号输入到
A/D,并用段比较指令将输入信号与上、下限进行比较。程序如图 5-10
所示。
0
X 0
F 6 2 W I N,W X 9,K 3 4 0,K 3 6 0
8
R 9 0 0 B Y 0
图 5-10 A/D模块信号监控举例若将 A/D模块输入范围选在 0 ~ 10V(即将 RANGE短接 ),并将需监测的信号输入 CH0,则执行该程序后可实现下面功能:设输入信号上限为 3.6V,即对应 A/D内部十进制数为 K360;输入信号下限为 3.4V,
对应 A/D内部十进制数为 K340。当输入信号在 3.4V ~ 3.6V之间时则
R900B常闭触点断开,故 Y0→OFF,报警灯不亮。若信号超出此范围则 R900B常闭触点接通,故 Y0→ON,报警灯亮,从而实现对信号的监测。
2009-7-29 239
二,D/A转换模块
1,占用通道及编程方法
FP1可扩展两个 D/A模块,可用开关设定其单元号,即 No.0和
No.1;每个 D/A模块有两个输出通道,即 CH0和 CH1。
当开关置于左边时,该模块设为 No.0,其 I/O通道分配如下:
CH0,WY9(Y90 ~ Y9F) CH1,WY10(Y100 ~ Y10F)
当开关置于右边时,该模块设为 No.1,其 I/O通道分配如下:
CH0,WY11(Y110 ~ Y11F) CH1,WY12(Y120 ~ Y12F)
D/A转换的编程也可用指令 F0实现,如 [ F0 MV,DT0,WY9 ] 。
执行这一指令后,将 DT0的内容经 WY9送往 D/A转换器,并将转换好的模拟信号经 No.0的 CH0通道输出。其它通道也可仿照此格式进行编程。
注意,FP1对 D/A模块写入数据,每个扫描周期只进行一次。
2009-7-29 240
2,D/A的技术参数项目 说明模拟输出点数 2通道 /单元 (CH0 ~ CH1)
模拟输出范围 电压 0 ~ 5V和 0 ~ 10V电流 0 ~ 20mA
分辨率 1/1000
总精度 满量程的 ± 1%
响应时间 2.5ms/通道输出阻抗 不大于 0.5欧姆 (电压输出端 )
最大输出电流 20mA(电压输出端 )
允许负载电阻 0 ~ 500欧姆 (电流输出端 )
数字输出范围 K0 ~ K1000(H0 ~ H03E8)
绝缘方式 光耦合:端子与内部电路之间无绝缘:通道间连接方式 端子板 (M3.5螺丝 )
2009-7-29 241
图 5-11 D/A转换单元的输入输出特性
5,0
2,5
数 字 输 入 ( K )
0 5 0 0 1 0 0 0
模拟输出
(
V
)
( a ) 0 ~ 5 V ( b ) 0 ~ 1 0 V ( c ) 0 ~ 2 0 m A
1 0
5
数 字 输 入 ( K )
0 5 0 0 1 0 0 0
模拟输出
(
V
)
2 0
1 0
0 5 0 0 1 0 0 0
模拟输出
(
m
A
)
数 字 输 入 ( K )
2009-7-29 242
3,D/A转换单元的面板布置及接线方法图 5-12 D/A转换单元的面板布置图扩展槽 (右侧 )
连接到 FP1的智能单元
(A/D或 D/A转换单元 )
或 I/O LINK单元通道 0和通道 1的端子说明:
V+,V-:模拟电压输出端子
RANGE:电压范围选择端子
I+,I-:模拟电流输出端子电源端子通道 0 通道 1
DIN导轨安装杆扩展槽 (左侧 )
连接到 FP1的控制单元或扩展单元电源指示灯单元号选择开关
2009-7-29 243
图 5-13 电压输出接线方式 图 5-14 电流输出接线方式
0 ~ 5V
负载设备屏蔽线 屏蔽线屏蔽线负载设备 负载设备
5 ~ 10V 10 ~ 20mA
2009-7-29 244
4,应用举例三个模拟量信号分别从 A/D模块的 CH0 ~ CH2输入,求平均值,再由 D/A模块 No.1的 CH1通道输出。梯形图如图 5-15所示。
图 5-15 A/D和 D/A模块应用举例
X 0
F 2 2 +,W X 9,W X 1 0,D T 0
F 2 0 +,W X 1 1,D T 0
F 3 2 %,D T 0,K 3,W Y 1 2
( D F )
( E D )
1
1
2009-7-29 245
第五章 FP1的特殊功能及高级模块第三节 FP1的通讯功能
2009-7-29 246
集散式控制系统的关键技术之一是系统的通信和互联。松下电工提供了 6
种 (C-NET,F-Link,P-Link,H-Link,
W-Link,FP以太网 )功能强大的网络形式,同时提供了若干种与相应的网络连接方式有关的通信链接单元,适合于各种工业自动化网络的不同需要。
2009-7-29 247
一、通讯的有关基本概念
1,并行通信与串行通信
2,同步通信与异步通信
3,波特率
4,单工、双工通信方式
1) 单工通信
2) 半双工通信 (Half Duplex)
3) 全双工通信 (Full Duplex)
2009-7-29 248
二,FP1的通讯接口
FP1系列 PLC进行数据交换时常采用 RS232C,RS422、
RS485三种串行通信接口,相关的链接单元也有三种,均为串行通信方式。
I/O LINK单元 是用于 FP1和 FP3/FP5等大中型 PLC之间进行 I/O信息交换的接口 (1个 RS485接口和 2个扩展插座 );
C-NET适配器 是 RS485? RS422/RS232C信号转换器 (1个
RS485,1个 RS422,1个 RS232C接口 ),用于 PLC与计算机之间的数据通讯;
S1型 C-NET适配器 是 RS485? RS422信号转换器 (1个
RS485,1个 RS422接口 ),用于 C-NET适配器和 FP1控制单元之间的通讯。
2009-7-29 249
1,RS232C通信接口
RS232C所采用的电路是单端接收电路,数据传输速率最高为 20kbps,电缆最长为 15m。
2,RS422通信接口
RS422标准规定的电气接口是差分平衡式的,能在较长的距离内明显地提高传输速率,例如,
1200m的距离,速率可以达到 100kbps,而在 12m等较短的距离内则可提高到 10Mbps。
3,RS485通信接口
RS485实际上是 RS422的简化变型,RS485
分时使用一对信号线发送或接收。可以高速远距离传送,传输距离可达 1200m,传输速率达 10Mbps 。
2009-7-29 250
三、通讯方式
1,FP1与计算机 (PC)之间的通讯一般地,一台计算机与一台 FP1之间的通讯称 1:1方式,
一台计算机与多台 FP1之间的通讯称 1:N方式。
有两种方法可以实现一台计算机与一台 FP1之间的通讯。一种方法是直接通过 FP1的 RS232口与 PC进行串行通讯。另一种方法可经 RS232/RS422适配器用编程电缆同
PC进行通讯。
2009-7-29 251
FP1控制单元
RS232C端口计算机
FP1控制单元计算机
RS422/232C适配器编程工具插座 (RS422端口 )
RS422 RS232C
图 5-17 直接通过 RS232口进行串行通讯 图 5-18 通过适配器进行通讯
2009-7-29 252
C-NET
适配器标准型
C-NET
适配器
S1型
C-NET
适配器
S1型
FP1
控制单元
FP1
控制单元条码判读器计算机最多可连接 32台 FP1
图 5-19 1:N通讯方式
2009-7-29 253
2,FP1与 FP3/5的通讯主站
FP3或 FP5
从站从单元主单元
FP1
控制单元
FP1 I/O
LINK单元
FP3或 FP5 FP1 I/O
终端板
FP1 I/O
终端单元双绞线图 5-20 FP1与 FP3/5的通讯
2009-7-29 254
3,FP1和外围设备之间的通信
FP1的相关外围设备有:智能终端 I.O.P.,条形码判读器,EPROM写入器和打印机等。这些外围设备均设有
RS232串行通信口,可以方便地实现与 FP1的通信。
2009-7-29 255
四、专用通信协议 MEWTOCOL
通信协议是通信双方就如何交换信息所建立的一些规定和过程。它是 FP系列 PLC网络设计的基础。
FP1采用松下电工公司专用通信协议? MEWTOCOL。
该协议共分为两个部分:
MEWTOCOL-COM:计算机与 PLC之间的命令通信协议;
MEWTOCOL-DATA,PLC与 PLC之间及 PLC与计算机之间的数据传输协议。
MEWTOCOL-DATA协议用于分散型工业局域网 H-LINK、
P-LINK,W-LINK及 ETLAN中 PLC与 PLC之间及 PLC与计算机间的数据传输。
2009-7-29 256
第五章结束哈尔滨理工大学电气与电子工程学院电气技术教研室
2003年 3月 24日
2009-7-29 257
第六章 松下电工 PLC编程工具及三维力控监控组态软件简介第一节 松下电工 PLC编程工具简介
FP1系列 PLC的编程手段有两种:
1.利用相应配套编程软件在个人计算机上进行。
2.使用 FP手持编程器。
2009-7-29 258
一,松下电工 PLC编程软件
1,概述日本松下电工公司开发的 PLC编程软件有三种:
① DOS环境下使用的 NPST-GR
② Windows环境下 FPSOFT
③ Windows环境下 FPWIN-GR
● NPST-GR采用的是典型的 DOS界面。 具有中、英文两种版本。因汉化后的 CNPST-GR开发的比较早,对近几年生产的 FPO,FP2等系列 PLC不支持。
● FPWIN-GR软件采用的是典型的 Windows界面。 具有中、
英文两种版本。由于 FPWIN-GR是新近开发出来的软件,其各项功能更趋合理、使用更加方便。
● FPSOFT软件是早期开发的,它的出现开创了 Windows环境的 PLC编程软件的先河。 但由于它开发得较早,虽大部分功能与上述 FPWIN-GR相似,但有些功能不如
FPWIN-GR那样完善。
2009-7-29 259
2,FPWIN-GR软件(汉化 1.1版本)
(1) 认识 FPWIN- GR
FPWIN- GR界面各部分名称及分布:
认识 -
界面各部分名称及分布:
2009-7-29 260
输入段栏
功能键栏在编写程序时:
① 用鼠标点击“功能键栏” 实现指令输入。
② 用功能键,F1”~,F12”与,SHIFT” 的组合实现指令输入。
③ 用功能键,F1”~,F12”与,CTRL”的组合实现指令输入。
各个按钮左下角的数字表示所对应的功能键号 。第 1段、第
2段中分布的是主要指令的快捷键。第 1段的操作 只需按功能键 即为有效。第 2段的操作需 同时按 Shift + 功能键 有效。第 3段中分布的是功能的快捷键。第 3段的操作需 同时按 Ctrl + 功能键 有效。
显示当前正在输入的回路。通过单击输入栏中的 [Enter]或按键盘中的 [Enter]键确认输入内容。
2009-7-29 261
(a) 在功能键栏中输入 [F1],[F2],[F4],[F8]或 [SHIFT]+[F1]( [F2]、
[F8])时,将显示触点线圈的基本指令如下图:
X,输入外部输入
Y,输入外部输出
R,输入内部继电器
L:链接继电器
P:脉冲继电器
T,定时器触点
C,输入计数器触点
E:输入错误警告继电器比较,输入数据比较指令
NOT/,将到光标位置为止的运算结果反转
INDEX:输入索引修饰
№清除,清除输入区段中的设备编号
↑↓:用于上升沿检出 /下降沿检出的图形符号。能否使用本功能取决于所用 PLC机型。
2009-7-29 262
(b) 在功能键栏中输入 [F5]时,将显示定时器 /计数器指令 (TM/CT)。
TMX,输入 0.1秒定时器
TMY,输入 1秒定时器
TMR,输入 0.01秒定时器
TML:输入 0.001秒定时器
CT,在输入区段中输入计数器
INDEX:在输入区段中输入索引修饰
2009-7-29 263
(c)在功能键栏中输入 [SHIFT]+[F5]时,将显示比较指令 (CMP)。
D,在进行双字 (32位 )比较指令时输入
=,相等比较时输入
>,大于比较时输入
<,小于比较时输入
2009-7-29 264
(d) 在功能键栏中输入 [F6],[SHIFT]+[F6]或
[SHIFT]+[F9]时,将显示高级指令列表。
2009-7-29 265
高级指令有以下两种类型:
FUN,每次扫描执行型指令,按 [F6]键。
PFUN:微分执行型指令,按 Shift + [F6]键。
在高级指令列表中:
左侧选择指令的类型,右侧会显示出该类型中的相关指令。按指令的序号排列。下部显示相应指令的说明。 选择 [OK],指令出现在编辑画面中。
一个高级指令出现在编辑画面后,需添加相应的指令参数,将光标移到指令中的 []位置处进行添加。 这时功能键栏变为下图。
2009-7-29 266
WX:输入 WX (以字指定的外部输入 )
WY:输入 WY (以字指定的外部输出 )
WR:输入 WR (以字指定的内部继电器 )
WL,WL (以字指定的链接继电器 )
DT:输入 DT (数据寄存器 )
LD:输入 LD (链接数据 )
FL:输入 FL (文件寄存器 )
SV:输入 SV (定时器 ·计数器的设定值 )
EV:输入 EV (定时器 ·计数器的目标值 )
K,在输入区段中输入 10进制常数允许输入范围:
16位运算时,K-32,768 ~ K32,767
32位运算时,K-2,147,483,648 ~ K2,147,483,647
2009-7-29 267
H,在输入区段中输入 16进制常数允许输入范围:
16位运算时,H0 ~ HFFFF
32位运算时,H0 ~ HFFFFFFFF
M:输入字符串常数
f:输入实数常数
INDEX,在输入区段中输入索引寄存器,或者在输入区段内输入设备索引修饰。
№清除,清除输入区段中的设备编号
2009-7-29 268
(e)在功能键栏中输入 [F9]时,将显示指定索引。
注意:
在符号梯形图编辑模式下编写了程序以后,为了确定由梯形图所编写的程序,必须进行?程序转换? 处理。
在进行程序转换处理时,有以下几点限制:
1) 程序行数的限制一次可转换的程序行数须在 33行以内。
2).折回点的限制在一个程序块中,所使用的折回点总数不能超过 32个。
3),OR指令数的限制连续输入的 OR指令数量不能超过 33个。
2009-7-29 269
4),OT指令数的限制连续输入的 OT指令数量不能超过 33个。
5),PSHS指令数的限制可连续使用的 PSHS指令的次数有一定限制。限制数量随 PLC机型的不同而有所差别。
FP0,FP1,FP-M,最多 8次
FP10,FP10S,最多 5次
FP5,FP3,FP-C,FP2,FP2SH,FP10SH
:最多 7次
2009-7-29 270
3,FPWIN- GR应用举例下面通过一个简单的例子说明如何利用 FPWIN-GR输入程序。梯形图程序如图所示。
启动 FPWIN-GR,选择“创建新程序”,在选择机型的对话框中选择,FP1 C24,C40”,此时在屏幕上显示的是?符号梯形图编辑?区 (若在标题栏显示的不是
“符号梯形图编辑”,可以选择菜单“视图 \符号梯形图编辑” ),在屏幕的左上角显示一个 绿色的矩形光标。
X0 Y0
X1 Y1R901C
Y2
( E D )
0 ST X0
1 OT Y0
2 S T X 1
3 AN R 9 0 1 C
4 O T Y 1
5 O T Y 2
6 E D
2009-7-29 271
利用鼠标(也可用键盘)操作输入程序如下:
1) 输入 [F1]-[F1]-[0]-[Enter],显示结点 X0。
2) 输入 [F4]-[F2]-[0]-[Enter],显示结点 Y0。
通过 1),2)两步所输入的程序如下图所示,
3)输入 [F1]-[F1]-[1]-[Enter],显示结点 X1。
4)输入 [F1]-[F3]-[9]-[0]-[1]-[C]-[Enter],显示结点 R901C。
5)输入 [F4]-[F2]-[1]-[Enter],显示结点 Y1。通过以上几步所输入的程序如下图:
X0 Y0
X0 Y0
X1 Y1R901C
2009-7-29 272
6)将光标放在结点 R901C和 Y1之间的下一行,输入 [F3]-
[F4]-[F2]-[2]-[Enter]显示结点 Y2。
输入的程序如下图所示,
7)输入 [Shift]+[F4]-[Enter],显示程序结束标志。此时完全输入例程。
8) [Ctrl]+[F1],进行程序转换,然后保存文件即可。
选择菜单,视图 \布而非梯形图编辑,,即可看到本程序的助记符程序如图 6-9( a)所示。
X0 Y0
X1 Y1R901C
Y2
2009-7-29 273
二,FP编程器 Ⅱ
FP编程器 Ⅱ 是一种手持编程工具。 适用于 FP
系列的 PLC(FP1,FP3,FP5,FPl0S,FPl0,FP-C和
FP-M等 )。
手持编程器的功能如下:
① 程序编辑。
② FP编程器 Ⅱ 具有? OP”功能 。 用此功能,可监视或设置存储于 PLC中的继电器通/断状态、寄存器内容以及系统寄存器参数等。
③ 程序双向传送到 FPWIN- GR或 PLC中等。
2009-7-29 274
1,FP编程器 Ⅱ 键盘功能介绍
FP编程器 Ⅱ 如下图所示。
2009-7-29 275
(1)插座插座是 FP编程器 Ⅱ 与 PLC,PC机或调制解调器相连接的接口。当与 FP1,FP3,FP5,FPl0S或 FPl0相连时,可用 作为 RS422接口; 当与 FP-C和 FP-M连接时,可作为
RS232接口。
(2)液晶显示器 (LCD)
LCD用于显示指令及信息。在显示窗口可同时 显示两行信息或数据 。 若出现错误,在显示窗口的上一行将显示出错信息。
(3)操作键利用操作键,可通过 FP编程器 Ⅱ 进行输入指令与设置系统寄存器值,以及监视继电器或寄存器等项操作。
FP编程器 Ⅱ 上共有 35个键。
2009-7-29 276
ST
X-WX
继电器指令键
① 用于输入 ST(初始加载 )指令。
② 用于输入 X或 WX触点 。
AN
Y-WY
① 用于输入 AN(与 )指令。
② 用于输入 Y或 WY(输出继电器 )。
OR
R-WR
OT
L-WL
FN/P
FL
NOT
DT/Ld
① 用于输人 OT(输出 )指令。
② 用于输人 L或 WL(链接继电器 )。
① FN为? 扫描执行方式? 的高级指令 ; P为“脉冲执行方式”的高级指令。每按一次该键,可交替输入 FN和 P。
② 用于输入 FL(文件寄存器 )。
① 用于输入 NOT(非 )指令。
②用于输人 DT(数据寄存器 )或 LD(链接数据寄存器 )。
① 用于输人 OR(或 )指令。
② 用于输人 R或 WR(内部继电器 )。
2009-7-29 277
STK
IX/IY
① 当输入 ANS(组与 )指令时,依次按 键和该键。
②当输人 ORS(组或 )指令时,依次按 键和该键。
③ 用于输入 Ⅸ 或 IY(索引寄存器 )。
AN
Y-WY
OR
R-WR
TM
T-SV ① 用于输入 TM(定时器 )指令。②用于输入 T(定时器触点 )或 SV(定时器/计数器的预置值 )。
CT
C-EV
① 用于输入 CT(计数器 )指令。
②用于输入 C(计数器触点 )或 EV(定时器/计数器的经过值 )。
字母数字键
4
=
C
D
D
<
E
>
F 8 9 BA
765 2 30 1
① 数字键用于输入数值和序号。
② 当输入 ST,AN或 OR指令后,还可输入上挡键,=”,,>”,
,<” 及,D”,以组成字比较指令。
2009-7-29 278
其它键
,帮助/清除”键
(HELP)
CLR
① 当显示指令时,用此键可清除 LCD下面一行的指令名和操作数,而地址仍保留,以便输人新的指令。
② 当监视寄存器时,用此键可清除寄存器值,以便重新设置新的数值。
③在初始状态下,若按 键后再按此键,可显示非键盘指令的代码表。
④在执行 OP功能时,若按 键后再按此键,可列出 OP功能表。
SHIFT
SC
SHIFT
SC
,全清,键
ACLR ① 清除当前显示的所有数据 (清屏 )。②若执行 OP功能过程中按此键,将退出 OP功能。
③ 按此键后,将显示出两个 (* *)号,此状态称为,初始状态,。
,删除 /插人,键
(DELT)
INST
① 在程序中插入刚输入的指令。
②按 键后再按此键,可删除 LCD中下面一行中的内容。SHIFTSC
2009-7-29 279
,数制转换/常数,键
(BIN)
K/H
① 输入常数字符 K或 H时,每按一下此键,将交替显示 K或 H。
②按此键可以以十进制 (K)或十六进制 (H)显示寄存器值。依次按 键和此键,还可以以二进制显示寄存器值。SHIFTSC
,指令切换,键
SHIFT
SC
① 按此键进人 SC方式,在 SC方式下可输人一些键盘上没有的基本指令 (非键盘指令 ),如 ED(结束 )或 NOP(空操作 )指令。 再按一下此键,即可退出 SC方式。
用此键激活一些键上用橙色表示的一些功能。例如先按此键,
然后再按 键,可删除当前屏上的指令。(DELT)INST
,操作/负号,键
(- )
OP
① 用此键可进入 OP功能,但需先按 键后再按此键。
②用此键可为常数或数值输人负号。
ACLR
2009-7-29 280
,查找 /上箭头,键
SCR
▲
① 查找带有继电器、寄存器名的指令程序和地址。
②按此键可使 LCD上显示的指令按地址顺序向上滚动。
,读取/下箭头,键
READ
▼
① 从 PLC中读取指令、继电器状态或寄存器值。
②按此键可使 LCD上显示的指令按地址顺序向下滚动。
,写人,键
WRT
为将指令、寄存器值或继电器状态写入 PLC,在输入指令或参数后,须按此键。
,输人,键
ENT ① 录人高级指令名和高级指令,CT,TM指令的操作数。②录入所选择的 OP功能。
2009-7-29 281
说明:
(1)有些键具有两种或多种功能,如 键既可以输入 ST指令,也可以输入继电器名称 X,WX。而具体输入的内容将根据当时的操作而自动识别。
当需输入指令码时,按此键输入的是 ST;若是在输入基本指令后再按此键,
则输入 X;当输入高级指令 [例如 F0( MV) ]之后,按此键则输入为 WX。
(2)一些操作键上的斜线(/)表示每按一次键,被斜线隔开的字符将交替输入显示。
(3)一些操作键上用橙色表示的字符或功能(如 BIN,—,DELT,HELP),
只有先按了 键后再按这些键才有效。
(4)每按一次键,蜂鸣器会响一下。如果输入了错误的数值,蜂鸣器就会响两次。 所以,当听到蜂鸣器响两声时,须重新输入正确的数值。若连续发声报警,说明操作或运行有误。 错误信息随之显示于 LCD的上面一行。
若要停止报警,可按 键或 键停止报警并删除错误指令或解除错误运行状态。
ST
X-WX
SHIFT
SC
ACLR (HELP)CLR
2009-7-29 282
2,指令输入方式指令按其输入方式可分为 三类,键盘指令、非键盘指令和高级功能指令。
1)键盘指令这类指令是指键盘上已标明的指令,只需直接按键即可输人。
2)非键盘指令这类指令是指键盘上没有,需用指令代码方可输入的指令。 输入步骤分为两种:
a.当已知指令代码,输入指令的步骤为:
b.当不知道指令代码需借助 键调出非键盘指令表。其输入指令的步骤为,(HELP)CLR
调出非键盘指令表将要输入的指令移到当前行输入查出的指令代码
SHIFT
SC
指令代码
SHIFT
SC WRT
WRTSHIFTSC (HELP)CLR SCR▲ SCR▼ 指令代码
2009-7-29 283
3)高级功能指令这类指令是指键盘上没有,需借助于 键方可输人的指令,一条完整的指令包括有,F”,功能号、助记符和若干操作数,其中除助记符可自动生成之外,其它都需一步一步地输入。 每输入完一个内容后,用键将其存人程序缓冲器中,只有到输入完最后一个操作数后,才用键将其指令存人 PLC。 高级功能指令根据指令中是否有操作数而输入步骤不同。
a.有操作数的高级功能指令,输入操作步骤为:
b.无操作数的高级功能指令,输入操作步骤为:
FN/P
FL
WRT
ENT
WRTFN/ PFL 功能号
WRTFN/ PFL 功能号 ENT 操作数 1 ENT 操作数 n
2009-7-29 284
3.清除命令清除命令可以分为三类,
1)利用 键 清除屏幕当前行显示 (即 LCD上的第二行),以便对该行指令做出修改。
2)利用 键 将当前屏幕显示全部清除,以便进行程序调试、监控等操作,但程序仍保留在内存中,即仍可重新调出。
3)利用 OP-0功能将程序从内存中清除,即程序不能再被调出,这是在输入一个新程序之前必须进行的工作。
有关其他操作细节和 OP功能请读者参阅 FP编程器 Ⅱ 操作手册。
CLR
ACLR
2009-7-29 285
第二节 监控组态软件简介一,监控组态软件简介
1.概念组态软件指一些数据采集与过程控制的专用软件,它们是在自动控制系统监控层一级的软件平台和开发环境,能以灵活多样的组态方式(而不是编程方式) 提供良好的用户开发界面和简捷的使用方法,其预设置的各种软件模块可以非常容易地实现和完成监控层的各项功能,并能同时 支持各种硬件厂家的计算机和 I/O设备,与高可靠的工控计算机和网络系统结合,可向控制层和管理层提供软、
硬件的全部接口,进行系统集成。
2009-7-29 286
2.组态软件的发展和现状世界上第一个把组态软件做为商品进行开发、销售的专业软件公司是美国的 Wonderware公司,它于 80年代末率先推出第一个商品化 监控组态软件 Intouch。此后组态软件得到了迅猛的发展。目前世界上的组态软件有几十种之多,国际上较知名的监控组态软件有,Fix,Intouch,Wincc,LabView,
Citech等。
3.组态软件的特点
① 使用简单,用户只需编写少量自己所需的控制算法代码,
甚至可以不写代码 。
② 运行可靠。
③ 提供数据采集设备的驱动程序。
④ 提供自动化应用系统所需的组件。
⑤ 强大的图形设计工具。
2009-7-29 287
二、力控监控组态软件简介力控监控组态软件 ( ForceControl) 是一个面向方案的 HMI/SCADA( human machine
interface/ supervisory control and data acquisition)
平台软件。分布式实时多数据库系统,可提供访问工厂和企业系统数据的一个公共入口。 内置 TCP/IP
协议的网络服务程序使用户可以充分利用 Intranet
或 Internet的网络资源。
力控可用于开发石油、化工、半导体、汽车、电力等多个行业和领域的工业自动化、过程控制、管理监测、工业现场监视、远程监视 /远程诊断等系统。
2009-7-29 288
1,ForceControl集成环境:
开发系统( Draw),是一个集成环境,可以创建工程画面,
配置各种系统参数,启动力控其它程序组件等。
界面运行系统( View),界面运行系统用来运行由开发系统
Draw创建的画面。
实时数据库( DB),是数据处理的核心,构建分布式应用系统的基础。
它负责实时数据处理、历史数据存储、统计数据处理、报警处理、数据服务请求处理等。
I/O驱动程序,I/O驱动程序负责力控与 I/O设备的通信。它将
I/O设备寄存器中的数据读出后,传送到力控的数据库,然后在界面运行系统的画面上动态显示。
网络通信程序 ( NetClient/NetServer),网络通信程序采用 TCP/IP通信协议,可利用 Intranet/Internet实现不同网络结点上力控之间的数据通信。
2009-7-29 289
2.ForceControl 2.6中其它的可选程序组件,
串行通信程序( SCOMClient/SCOMServer):
两台计算机之间,使用 RS232C/422/485接口,可实现一对一的通信;如果使用 RS485总线,还可实现一对多台计算机的通信。
拨号通信程序( TelClient/TelServer):
任何地方与工业现场之间,只要能拨打电话,就可以实现对远程现场生产过程的实时监控,唯一需要的是 Modem和电话线。
Web服务器程序( Web Server):
Web服务器程序可为处在世界各地的远程用户实现在台式机或便携机上用标准浏览器实时监控现场生产过程。
控制策略生成器( StrategyBuilder):
是面向控制的新一代软件 逻辑自动化控制软件。 提供包括:
变量、数学运算、逻辑功能和程序控制处理等在内的十几类基本运算块,内置常规 PID、比值控制、开关控制、斜坡控制等丰富的控制算法。同时提供开放的算法接口,可以嵌入用户自己的控制程序。
2009-7-29 290
三、力控实例入门
1,建立工程打开应用管理器,选择?增加新应用?,
在应用名称对话框中输入一个应用程序的名称
,MonitorPLC”,按“确定”按钮。在工程列表中会出现新建的工程,单击该工程并进入组态,打开
Draw,开始组态工作。
2,创建点
① Draw导航器中 双击“实时数据库”项 使其展开,在展开项目中 双击“数据库组态” 启动组态程序 DbManger,
如图所示。
2009-7-29 291
② 启动 DbManger后出现 DbManger主窗口,如图所示。
2009-7-29 292
③ 选择菜单命令,点 /新建,或 在右侧的点表上双击任一空白行,出现“指定区域和点类型”对话框,如图所示。
2009-7-29 293
④ 选择? 区域 … 00”及? 数字 I/O点? 点类型,然后 单击? 继续,,按钮,进入点定义对话框,如图所示。
2009-7-29 294
⑤ 在,点名,输入框内键入点名,MX0”,其它参数可以采用系统提供的缺省值。单击,确定”按钮,在点表中增加了一个点,MX0”,
如图所示。
⑥ 重复以上步骤,创建 MX1,MY0,MY1和 MY2点。
最后单击“存盘”按钮保存组态内容,然后单击“退出”按钮,
返回到主窗口。
2009-7-29 295
3.定义 I/O设备在数据库中定义了上述 5个点后,下面将建立一个 I/O
设备 — PLC,上述定义好的 5个点的值将取自 PLC。
① 在 Draw导航器中 双击?实时数据库? 项使其展开,选择? I/O
设备驱动? 项 使其展开,在展开项目中选择,PLC”项并双击使其展开,然后继续选择厂商名
,NaiS(松下电工)” 并双击使其展开后,选择项目,FP系列”,
如图所示。
2009-7-29 296
② 双击 项目,FP系列,出现,I/O设备定义,对话框,在
“设备名称”输入框内键入一个人为定义的名称
,NEWPLC”(大小写不限)。 在通信端口下拉条中选择
,COM1”,“设备地址”输入框内键入 1。其余保持默认值。点击“完成”按钮。如图所示。
此时在导航器的? FP系列? 下面增加了一项
NEWPLC”。
2009-7-29 297
③ 数据连接现在将已经创建的 5个数据库点与 NEWPLC联系起来,以使这 5个点的 PV参数值能与 I/O设备 NEWPLC进行实时数据交换。 这个过程就是建立数据连接的过程。 由于数据库可以与多个 I/O设备进行数据交换,所以我们 必须指定哪些点与哪个 I/O设备建立数据连接。
a,启动数据库组态程序 DbManager,
双击点,MX0”,切换到,数据连接” 一页,出现如图所示对话框。
2009-7-29 298
b,点击参数,PV”,在? 连接 I/O设备? 的? 设备?
下拉框中选择设备? NEWPLC”。点击? 增加? 按钮,
出现如图所示的? 设备连接项? 对话框。
在? 寄存器 /继电器? 选择框中选择? X/WX
(外部输入继电器)?,在“地址”输入框中输入 0,
“位偏移”输入框中输入 0,点击“确定”返回。
2009-7-29 299
重复上述步骤,可连接所有定义过的点。在重复上述步骤时,对于同一个继电器,位偏移依次加 1。 对话框中填写的值如表所示。
MX0 MX1 MY0 MY1 MY2
寄存器 /继电器 X(按位 ) X(按位 ) Y(按位 ) Y(按位 ) Y(按位 )
数据格式 bit bit bit bit bit
地址 0 1 0 1 2
2009-7-29 300
最终结果如图所示。 单击“退出”按钮,返回 DRAW主窗口。
2009-7-29 301
4,创建窗口选择? 文件 [F]/新建? 命令出现?窗口属性?
对话框,如图所示。
全部保持默认值,点击“确定”按扭,建立了一个新的窗口。
2009-7-29 302
按图所示绘制窗口图形 。
2009-7-29 303
5,制作动画连接前面已经做了很多事情,包括,制作显示画面、
创建数据库点,并通过一个自己定义的 I/O设备
NEWPLC”把数据库点的过程值与设备 NEWPLC连接起来。 现在再回到开发环境 Draw中,通过 制作动画链接 使显示画面活动起来。
( 1)定义数据源界面系统除了 可以访问本地数据库 (即与界面系统运行在同一台 PC机上的数据库)外,还可以通过网络访问安装在其它计算机上的 ForceControl
数据库中的数据。 因此,当在界面系统 Draw中创建变量时,如果变量引用的是外部数据源(包括:
ForceControl数据库,DDE服务器或其它第三方数据提供方),首先对要引用的外部数据源进行定义。
2009-7-29 304
激活 Draw菜单? 特殊功能 [S]/数据源定义?,出现“数据源定义”列表框,如图所示。
列表框中已经存在了一个数据源:“本地数据库
( DB)”。这是 系统缺省定义的数据源,它指向本机上的 DB数据库 。
( 2)单击“取消”和“返回”按钮,退出“数据源定义”对话框。
2009-7-29 305
( 3)动画连接有了变量之后就可以制作动画连接。 一旦创建了一个图形对象,给它加上动画连接就相当于赋予它“生命”
使其“活动”起来。 双击,X0”上面的图形,弹出如图所示的“动画连接”对话框。
2009-7-29 306
单击?颜色相关动作? 一列中的?条件? 按扭,
弹出?颜色变化? 对话框如图所示。
2009-7-29 307
单击?变量选择? 按扭,弹出“变量选择”对话框,如图所示。
在上图中,选择,MX0”和,PV”,点击“选择”按扭。然后“确认”每一个对话框,则第一个圆的动画连接就制作完成。同理,按上述步骤定义其余图形的动画连接。 注意变量选择与相应的标注相同,
即 MX0为监视 PLC中的 X0的接点,依次类推。 保存制作结果。
2009-7-29 308
6,配置系统在导航器中选择?配置?、初始启动设置?,
弹出“初始启动设置”对话框,如图所示。 点击? 增加? 按扭,选择? DRAW1”,“确定”该对话框。
2009-7-29 309
到现在为止,上位机的组态程序已经制作完成。 连接 PLC和计算机,启动 FPWIN-
GR,编一小段 PLC程序下载到 PLC中并让其运行,再切换到? 离线? 状态。 然后 在
ForceControl工程管理器中 选择应用程序
MonitorPLC”,进入? 运行系统? 。 接通
PLC的 X0,X1点可以看到组态画面上的图形颜色随 PLC上接点的变化而变化。
2009-7-29 310
第七章 监控组态软件与 PLC应用总体设计第一节 自动售货机 PLC控制与监控组态设计一、仿真系统组成本仿真系统由上位机和下位机两部分组成。上位机利用 PC机,下位机利用松下的 FP1系列可编程控制器 FP1-
C24。
上位机内装北京力控组态软件 FORCECONTROL 2.6
和松下编程软件 FPWIN-GR。组态软件 FORCECONTROL
用以 制作仿真画面、编写仿真程序并与下位机进行通信。
FPWIN-GR是松下可编程序控制器与 PC机联机的编程支持工具,利用 它可以实现程序输入、程序注释、程序修改、
程序编译、状态监控和测试以及设置系统寄存器和 PLC各种参数等 。
2009-7-29 311
二,自动售货机功能分析
1,自动售货机的基本功能售货机基本功能,对投入的货币进行运算,并根据货币数值判断是否能购买某种商品,并做出相应的反应。
2.仿真实验系统中售货机的分析售货机的全部功能是在上位机上模拟的,其部分硬件由计算机软件模拟代替。
如钱币识别系统可以用按压某个“仿真对象”
输出一个脉冲直接给 PLC发布命令。
2009-7-29 312
1)实验状态假设
a 自动售货机只售 8种商品;
b.自动售货机可识别 10元,5元,1元,5角,1角硬币;
c.自动售货机可退币 10元,5元,1元,5角,1角硬币;
d.自动售货机有液晶显示功能;
f.实验中售货机忽略了各种故障以及缺货等因素。
2) 一次交易过程分析
a.初始状态,由电子标签显示各商品价格,显示屏显示友好界面,此时不能购买任何商品。
b.投币状态,按下投币按钮,显示投币框,按下所投币值,
显示屏显示投入、消费、余额数值,当所投币值超过某商品价格时,相应商品选择按钮发生变化,提示可以购买。
c.购买状态,按下可以购买的“选择”按钮,所选的商品出现在出货框中,同时显示屏上的金额数字根据消费情况相应变化。取走商品后出货框消失。
d.退币状态,按下退币按钮,显示退币框,同时显示出应退币值及数量。按下确认钮,则恢复初始状态。
2009-7-29 313
三、设计任务的确定上位机与下位机之间的任务分工:
上位机主要用来完成仿真界面的制作工作;下位机则主要用来完成 PLC程序的编写。
在进行 PLC程序的编写时需要先分配 PLC的 I/O点,确定上、下位机的接口。然后,对上位机和下位机分别进行设计工作。最后,进行上位机设计结果与下位机设计结果的配合工作,经调试后完成整个系统的设计。
一方面,仿真的自动售货机接受 PLC的控制指令并完成相应的动作;另一方面,仿真界面中的仿真自动售货机的运行,都是由组态界面所提供的命令语言来完成的。
2009-7-29 314
四,程序设计部分
1.程序设计说明仿真程序的编写利用了力控组态软件
FORCECONTROL2.6。下位机程序的编制则是利用松下 PLC专用编程软件 FPWIN-GR完成的。
2,PLC程序设计把一次交易过程分为几个程序块:
运行初期电子标签价格的内部传递 ; 投币过程 ;
价格比较过程 ; 选择商品过程 ; 退币过程 。
2009-7-29 315
1)运行初期电子标签价格的内部传递程序的设计仿真系统运行初期的任务:
①要由 PLC向仿真画面相应对象传递已经存储好的价格;
②给投入显示、消费显示及余额显示寄存器清零;
③给存储退币币值的存储器清零。
程序编制过程中,要用到运行初期闭合继电器
R9013,16位数据传送指令 F0,同时在上位机
FORCECONTROL中,必须定义相应的变量,来实现与
PLC程序的对接。
2009-7-29 316
电子标签价格内部传递变量表:
说明 上位机 FORCECONTROL变量 对应 PLC地址投入显示 POITR001.PV WR1
消费显示 POIXF002.PV WR2
余额显示 POIYE003.PV WR3
01商品价格 JG01.PV WR4
02商品价格 JG02.PV WR5
03商品价格 JG03.PV WR6
04商品价格 JG04.PV WR7
05商品价格 JG05.PV WR8
06商品价格 JG06.PV WR9
07商品价格 JG07.PV WR10
08商品价格 JG08.PV WR11
退币 10元 TB$100.PV SV0
退币 5元 TB$50.PV SV1
退币 1元 TB$10.PV SV2
退币 5角 TB$5.PV SV3
退币 1角 TB$1.PV SV4
2009-7-29 317
运行初期电子标签价格的内部传递程序,
系统初始化时,通过运行初期闭合继电器 R9013在第一次扫描时将数值传递给上位机。通过指令 F0给
WR1~ WR11及 SV0~ SV4赋初值。
2009-7-29 318
2) 投币过程每投下一枚硬币,投入显示将增加相应的币值,余额也增加同样的币值。
投币过程变量表:
说明 上位机 FORCECONTROL变量 对应 PLC地址投入一角 TR$1.PV R200
投入五角 TR$5.PV R201
投入一元 TR$10.PV R202
投入五元 TR$50.PV R203
投入十元 TR$100.PV R204
2009-7-29 319
投币过程梯形图:
在上图中,当按下投入一角时,相当于让 R200接通,之所以用一个微分指令,就是要只在接通时检测一次,不能永远加下去 。投入一角要使投入显示、余额显示都相应增加相同数值,加法由 16位加法指令 F20实现的。投入五角、一元、五元、十元,原理同上。
2009-7-29 320
3 ) 价格比较过程价格的比较要贯穿实验过程的始终,只要余额大于某种商品价格时,就需要输出一个信号,提示可以购买。 这里用选择灯来代表此信号。
价格比较过程变量表说明 上位机 FORCECONTROL变量 对应 PLC地址
01商品灯亮 D01.PV Y0
02商品灯亮 D02.PV Y1
03商品灯亮 D03.PV Y2
04商品灯亮 D04.PV Y3
05商品灯亮 D05.PV Y4
06商品灯亮 D06.PV Y5
07商品灯亮 D07.PV Y6
08商品灯亮 D08.PV Y7
2009-7-29 321
价格比较梯形图,
本图中,在程序执行过程中,R9010
始终保持闭合,是 16
位数据比较指令,
F60用来比较余额和商品的价格,R900A
是大于标志,R900B
是等于标志。 当余额大于等于某种商品价格时,程序使相应的指示灯闪烁表示可以购买该种商品。
2009-7-29 322
4)选择商品过程当投入的币值可以购买某种商品时,按下相应的“选择”按钮即可在出货框中出现该种商品,同时消费显示栏中显示出已经消费掉的金额,余额也将扣除已消费的币值,接着余额继续与价格比较,
判断是否能继续购买。 出现在出货口的商品在没有取走前,一直保持显示状态,用鼠标点击该商品代表已经取走,出货口中的商品隐藏。
2009-7-29 323
选择商品过程变量表,
说明上位机
FORCECONTROL
变量对应 PLC
地址选择 01商品 XZ01.PV R205
选择 02商品 XZ02.PV R206
选择 03商品 XZ03.PV R207
选择 04商品 XZ04.PV R208
选择 05商品 XZ05.PV R209
选择 06商品 XZ06.PV R20A
选择 07商品 XZ07.PV R20B
选择 08商品 XZ08.PV R20C
01商品出现 CX01.PV Y8
02商品出现 CX02.PV Y9
03商品出现 CX03.PV YA
04商品出现 CX04.PV YB
05商品出现 CX05.PV YC
06商品出现 CX06.PV YD
07商品出现 CX07.PV YE
08商品出现 CX08.PV YF
取 01商品 Q01.PV R230
取 02商品 Q02.PV R231
取 03商品 Q03.PV R232
取 04商品 Q04.PV R233
取 05商品 Q05.PV R234
取 06商品 Q06.PV R235
取 07商品 Q07.PV R236
取 08商品 Q08.PV R237
2009-7-29 324
选择商品梯形图:
2009-7-29 325
选择商品梯形图 (续上图):
2009-7-29 326
在选择商品的过程中:
一是要使商品出现在出货框中,二是要实现内部货币的运算。
如:按下选择 01商品键,相当于给 R205加一个信号
(只接受一次脉冲,所以用 DF微分指令),当 Y0接通( 01
商品灯亮)时,则系统显示可以购买 01商品。由于取 01商品 R230是常闭触点,故 Y8输出,代表在出货框中出现 01商品,购买成功。当按下取 01商品按钮时,R230断开,不能输出 Y8,代表 01商品被取走。
内部币值的计算和是否取走商品无关,只要按下选择按钮,并且可以购买此商品就要从余额中扣除相应的金额,
显示消费的币值。 加法由 F20指令实现,减法由 F25指令实现。
2009-7-29 327
5)退币过程在退币过程中,最主要的是要完成退币的运算过程,根据结果输出相应的钱币,退币结束时还要给程序中使用到的某些寄存器重新赋零。
退币过程变量表:
说明 上位机 FORCECONTROL变量 对应 PLC地址退币按钮 TENTER R20F
退币 0.1元 TB$1.PV SV4
退币 0.5元 TB$5.PV SV3
退币 1元 TB$10.PV SV2
退币 5元 TB$50.PV SV1
退币 10元 TB$100.PV SV0
退币确任按钮 TUIBIOK.PV R0
2009-7-29 328
退币过程梯形图:
2009-7-29 329
退币过程,在按下退币按钮(即 R20F接通)时执行,
同样也用到一个微分指令,在接收到信号时产生一次开关脉冲,进而执行一次其下面的指令。
F32是除法指令,第一次将余额的币值除以 1000,商存储于 SV0中,作为退币 10元的输出值。余数则存储于特殊数据寄存器 DT9015中,下次将不能被 1000( 10元)整除的余数除以 500( 5元),商存储于 SV1中,余数继续下传,直至被 1角除过,由于所投币值最小是 1角,并且商品价格也确定在整角,所以最终能被 1角整除。
在程序的初始化时曾给 WR13,WR15,WR17、
WR19和 WR20赋零,WR13,WR15,WR17,WR19和
WR20是程序的中间量。
退币过程结束后,PLC要将寄存器中的数值置回原定的初值 0,完成一次交易,防止下一次交易时出错。
2009-7-29 330
数据初始化梯形图:
程序中分别将投入显示、消费显示、余额显示,10元存储,5元存储,1元存储,5角存储和 1角存储清零,还将中间量 WR13,WR15,WR17,WR19和 WR20清零。
2009-7-29 331
五、仿真界面的设计
1.售货机背景的设计售货机背景是一个不动的画面,可以利用图片处理的方法按照制定样式的功能画出售货机的整体。
2009-7-29 332
2.显示屏部分的设计图中的欢迎字符是可以闪烁变化的,‘ aaaa’字符可以用来显示系统的时间。
交易过程中的币值显示画面如下图:
2009-7-29 333
3.电子标签的设计电子标签用来显示程序中传递上来的价格,其中要有可以定义的字符,设计出的标签为 。
其中的字符‘ J.03’表示可以显示 03商品价格的变量。
4.按钮的设计
“选择” 按钮的设计要反映出可以购买和不可购买时的差异,所以其中也要有可以变化的字符。
设计如右图,其中字符‘选择’在满足条件以后可以闪烁变色。按钮均可以动作。
2009-7-29 334
5,投退币提示框的设计投、退币提示框中要有可以投入的硬币、确认按钮以及框架,其中硬币、确认按钮和字符‘ a’均是可以定义的变量。
6,出货框的设计出货框出货框中要有 01至 08商品的示意图以及框架。其中的商品在满足条件后可以出现,鼠标点击后可以消失,是可定义的变量。
投币提示框 退币提示框出货框
2009-7-29 335
六,仿真界面中各变量的定义仿真程序上的各部分若实现仿真功能,就必须定义成相应的变量,再与 PLC程序中的软继电器相匹配,这样才能实现 PLC的控制功能。
1.中间变量中间变量的作用域为整个应用程序,不限于单个窗口。
中间变量适于作为整个应用程序动作控制的全局性变量、
全局引用的计算变量或用于保存临时结果。
该仿真实验系统中有 3个中间变量:
⑴ poiwindows:该变量是控制显示屏的。
poiwindows=1:显示屏进入投币交易状态;
poiwindows=0:显示屏返回初始欢迎状态。
⑵ poiwinJB:该变量是控制投币框的。
poiwinJB=1:显示投币框;
poiwinJB=0:投币框消失。
⑶ poiwinTB:该变量是控制退币框的。
poiwinTB=1:显示退币框,
poiwinTB=0:退币框消失。
2009-7-29 336
2,数据库变量当要在界面上显示处理数据库中的数据时,需要使用数据库变量。一个数据库变量对应数据库中的一个点参数。
数据库变量的作用域为整个应用程序。
数据库变量有三种:实型数据库变量、整型数据库变量和字符数据库变量。
仿真系统中有 56个整型数据库变量,分别对应 PLC程序中的 56个软继电器。
3.仿真界面与 PLC程序的配合定义
⑴初始状态
poiwindows=0:显示屏显示初始欢迎状态。
以 01商品为例,电子标签中的字符‘ J.01’ 对应的变量 JG01.PV与 PLC程序中的地址 WR4相匹配,WR4中存储的数据为 250,如何让字符显示 2.50元呢?
2009-7-29 337
方法,在开发系统( Draw)中,双击字符‘ J.01’,来到
“动画连接”画面,选择“数值输出”中的“模拟”项,
键入‘ JG01.PV/100’即可,由 250到 2.50实际是计算机来完成的。其它的价格也是如此显示的。
动画连接画面
2009-7-29 338
⑵ 投币状态当投币时,按下“投币”提示字,出现投币框。如何定义“投币”呢?双击汉字“投币”,来到“动画连接”画面,
选择“触敏动作”中的“左键动作”,在“动作描述”框中作如下定义:按下鼠标时,poiwinJB=1,poiwinJB这个变量是控制投币框的,当 poiwinJB=1时,出现钱币和提示框;
poiwinJB=0,钱币和提示框隐藏。
下面分别定义提示框和钱币以及? 确认? 按钮 。
双击提示框,来到“动画连接”画面,选择“显示 /隐藏”项,定义 poiwinJB==1时显示,各硬币也用同样的方法定义,“确认”按钮也同样定义,这样就使在按下汉字“投币”时,变量 poiwinJB=1,从而出现投币框,以及硬币等。
定义了投币框的显示状态,用鼠标点击代替了实际过程中的钱币投入动作,最重要的任务是投币运算,下面介绍钱币的定义方法。
2009-7-29 339
以十元为例,双击十元硬币,来到“动画连接”画面,
选择“触敏动作”中的“左键动作”,在动作描述中如下定义:按下鼠标时,poiwindows=1; TR$100.PV=1; 释放鼠标时,TR$100.PV=0;动作描述画面下图所示。
动作描述画面
2009-7-29 340
其中 poiwindows=1,是让显示屏不再显示友好界面,
来到交易界面;
TR$100.PV=1时给 PLC发出一个接通信号,由于
TR$100.PV对应的 PLC地址是 R204,使得 R204继电器导通,
转而执行相应的加十元程序。
同样定义其它钱币,注意其对应的 PLC软继电器。
最后还要定义“确认”按钮。要实现的功能是按下
“确认”按钮时,所有的钱币以及投币提示框均消失。
这里作如下定义:双击“确认”按钮,来到“动画连接”画面,选择“触敏动作”中的“左键动作”,在动作描述中作如下定义:按下鼠标时,poiwinJB=0;
poiwinJB=0时,所有的钱币以及投币提示框均消失,这是由计算机控制的内部变量。
2009-7-29 341
投币以后,显示屏要及时反映出投币情况,同时?选择?指示也要相应变化(闪烁、变色)。 下面来定义显示屏和“选择”按钮。
显示屏要显示 3种数据,分别为:投入显示、消费显示、余额显示。
三种显示均用力控软件自带的附件 — 数码管来显示。
先在工具箱中点击“选择子图项”,在子图库中找到仪表中的数码管,放在显示屏中,作为投入显示,再复制两个,分别作为消费显示、余额显示。双击数码管来到数码管属性设置画面,在表达式中作如下定义:
poiTR001.PV/100,poiTR001.PV连接的是 PLC程序中的
WR1软继电器,是用来存储投入显示数据的,除以 100同样是为了 PLC数据计算的方便。这样就可用数码管来显示投入的币值。 同样定义消费显示,余额显示。
2009-7-29 342
数码管的属性设置画面如图所示,
2009-7-29 343
,选择”按钮要根据余额的数值发生闪烁和变色。
定义过程如下:双击“选择”按钮,来到“动画连接”画面,在“颜色相关动作”中选择“闪烁”
项,分别定义属性和频率,在变量选择项中选择相应的指示灯变量。
以 01商品的选择指示灯为例,在变量选择项中选择 D01.PV==1,满足条件时指示灯变色。
这样就定义好了投币状态的上位机仿真变量,
配合 PLC程序可以实现投币功能。
2009-7-29 344
下图是一幅投币时的画面,投入 6.60元,还未买商品,
注意看显示屏的显示以及选择按钮的变化,此时还不能购买 05号商品(价格 12元)。
2009-7-29 345
⑶ 购买状态定义了投币状态,就可以购买商品了。 当选择指示灯变色以后,按下它,将会在出货口处出现我们要买的商品。
以 01商品为例:定义“选择”按钮:双击“选择”按钮,来到“动画连接”画面,选择“触敏动作”中的“左键动作”,在动作描述中如下定义:
按下鼠标时 XZ01.PV=1;释放鼠标时,XZ01.PV=0。
XZ01.PV与 PLC程序中的 R205相对应,按下可以购买商品的选择键,转而执行相应的 PLC程序同时消费显示增加相应的币值,余额显示减少相应的币值,
此时还要在出货口处出现相应的商品。
2009-7-29 346
用? 显示 /隐藏? 功能来定义在出货口中出现的商品。
双击出货口处的小商品,来到“动画连接”画面,选择“显示 /隐藏”项,定义 CX01.PV==1时显示。定义画面下图所示。
2009-7-29 347
出货口框架的隐藏 /显现是用程序来控制的。 当有一种商品出现在出货口,就会显示框架;当全部商品均消失后框架隐藏。程序如下图所示。图中
R210是控制出货口框架是否出现的继电器。
2009-7-29 348
⑷ 退币状态当按下“退币”按钮时,PLC要进行退币运算。所以 按下“退币“按钮就要与 PLC通讯,执行退币计算。
下面来定义退币按钮。
双击“退币”按钮,出现“动画连接”画面,选择
“触敏动作”中的“左键动作”,动作描述为:按下鼠标,
poiwinJB=0; poiwinTB=1; Tenter.PV=1。释放鼠标,
Tenter.PV=0;内部变量 poiwinJB=0是让投币框消失,
poiwinTB=1是让退币框出现,Tenter.PV与 PLC程序中的
R20F对应。
退币框中要有五种硬币,还要有表示硬币个数的数字。
由于计算中采用的算法使得退币时按照币值大小顺序退币,
例如退五元,只退一个五元,而不退五个一元。定义表示硬币个数的变量只用一位数即可。 在退币时,要退出的硬币及个数显示,而不退的硬币隐藏。
2009-7-29 349
以十元为例,定义钱币时,双击十元硬币,出现动画连接画面,选择“显现 /隐藏”项,在“可见性定义”对话框中 作如下图的定义。
其它硬币定义方法同上。
2009-7-29 350
定义钱币个数,双击十元硬币个数字符,a”,出现
“动画连接”画面,选择“数值输出”中的“模拟”
项,作下图的定义。
同时钱币个数也要定义是否隐藏,定义方法和定义钱币相同 。
2009-7-29 351
定义“确认”键时,按下”确认”键,代表取走了所有硬币,完成此次交易,因此退币“确认”
键的定义很重要。 双击“确认”键,出现“动画连接”画面,选择“触敏动作”中的“左键动作”,
在动作描述栏中定义如下:按下鼠标
poiwinTB=0; 功能:退币框消失;
TuiBiok.PV=1; 功能:给 PLC信号,闭合 R0,
完成数据的初始化;
poiwindows=0; 功能:显示屏显示友好界面。
2009-7-29 352
为了防止在未取走商品时退币,按下“确认”
键后又不能返回原始状态。 在描述中加入以下一段程序,强行抛掉已经购买的商品。
CX01.PV=0;
CX02.PV=0;
CX03.PV=0;
CX04.PV=0;
CX05.PV=0;
CX06.PV=0;
CX07.PV=0;
CX08.PV=0;
2009-7-29 353
释放鼠标时,TuiBiok.PV=0。只是给 PLC一个微分信号,不能将 R0永远置为 1。 还有一点要注意,
“确认”键也要有隐藏的时候,定义方法同钱币。
定义退币框架:
按下“退币”按钮后就会出现退币框架。可以这样定义:双击退币框架,来到“动画连接”画面,选择“显现 /隐藏”项,在“可见性定义”表达式中定义 poiwinTB==1时显现即可。
2009-7-29 354
七、数据连接
1.定义 I/O设备数据库是从 I/O驱动程序中获取过程数据的,
而数据库同时可以与多个 I/O驱动程序进行通信,
一个 I/O驱动程序也可以连接一个或多个设备。
下面创建 I/O设备。
2009-7-29 355
1) 在 Draw导航器中双击“实时数据库”项使其展开,选择
,I/O设备驱动,项使其展开,在展开项目中选择,PLC”
项双击使其展开,然后继续选择厂商名“松下电工”并双击使其展开后,选择项目双击并按下图定义。
2009-7-29 356
2)单击? 完成? 按钮返回,在? 松下电工? 项目下面增加了一项? PLC001”。
如果要对 I/O设备,PLC001”的配置进行修改,双击项目,PLC001”,会再次出现 PLC001的,I/O设备定义”对话框。若要删除 I/O设备,PLC001”,用鼠标右键单击项目
,PLC001”,在弹出的右键菜单中选择“删除”。
2,数据连接刚刚创建了一个名为,PLC001”的 I/O设备,而且它连接的正是假想的 PLC设备。
现在的问题是如何将已经创建的多个数据库点与 PLC
联系起来,以使这些点的 PV参数值能与 I/O设备 PLC进行实时数据交换,这个过程就是建立数据连接的过程。
2009-7-29 357
由于数据库可以与多个 I/O设备进行数据交换,所以必须指定哪些点与哪个 I/O设备建立数据连接。为方便起见,将数据列表整理成如下表所示。
数字 I/O表
2009-7-29 358
(续上表)
2009-7-29 359
模拟 I/O表
2009-7-29 360
3,运行保存所有组态内容,然后关闭所有力控程序,包括,Draw,DbManager等。
将自动售货机的 PLC程序下传到 PLC装置中并让其执行,切换到离线状态,然后再次启动力控工程管理器,选择本工程,并单击,进入运行,按钮启动整个运行系统。在运行中,可以按照实际自动售货机的功能来操作,以检验所编程序的正确与否。
2009-7-29 361
第二节 五层楼电梯 PLC控制与监控组态设计一、电梯的基本功能在进行上位机程序以及下位机程序编写之前,
首先要做的工作是确定电梯本身所具有的功能和电梯在乘客进行某种操作后应具有的状态。
1.电梯内部部件功能简介在电梯内部,应该有五个楼层( 1-5层)按钮、
开门和关门按钮以及楼层显示器、上升和下行显示器。当乘客进入电梯后,电梯内应该有能让乘客按下的代表其要去目的地的楼层按钮,称为内呼叫按钮。
2009-7-29 362
电梯停下时,应具有开门、关门的功能,即电梯门可以自动打开,经过一定的延时后,又可自动关闭。而且,在电梯内部也应有控制电梯开门、关门的按钮,使乘客可以在电梯停下时随时地控制电梯的开门与关门。
电梯内部还应配有指示灯,用来显示电梯现在所处的状态,即电梯是上升还是下降以及电梯处在楼层的第几层,这样可以使电梯里的乘客清楚地知道自己所处的位置,离自己要到的楼层还有多远,
电梯是上升还是下降等。
2009-7-29 363
2,电梯的外部部件功能简介电梯的外部共分五层,每层都应该有呼叫按钮、
呼叫指示灯、上升和下降指示灯,以及楼层显示器。
呼叫按钮是乘客用来发出呼叫的工具,呼叫指示灯在完成相应的呼叫请求之前应一直保持为亮,
它和上升指示灯、下降指示灯、楼层显示器一样,
都是用来显示电梯所处的状态的。
五层楼电梯中,一层只有上呼叫按钮,五层只有下呼叫按钮,其余三层都同时具有上呼叫和下呼叫按钮。而上升、下降指示灯以及楼层显示器应相同。
2009-7-29 364
3.电梯的初始状态、运行中状态和运行后状态分析
1)电梯的初始状态:设电梯位于一层待命,各层显示器都被初始化,电梯处于以下状态:
a.各层呼叫灯均不亮;
b.电梯内部及外部各楼层显示器显示均为,1”;
c.电梯内部及外部各层电梯门均关。
2)电梯在运行过程中:
a.按下某层呼叫按钮( 1-5层)后,该层呼叫灯亮,
电梯响应该层呼叫;
b.电梯上行或下行直至该层;
2009-7-29 365
c.各楼层显示随电梯移动而改变,各层指示灯也随之而变;
d.运行中电梯门始终关闭,到达指定层时,门才打开;
e.在电梯运行过程中,支持其它呼叫。
3) 电梯运行后状态:在到达指定楼层后,电梯会继续待命,直至新命令产生。
a.电梯在到达指定楼层后,电梯门会自动打开,经一段延时自动关闭,在此过程中,支持手动开门或关门;
b.各楼层显示值为该层所在位置,且上行与下行指示灯均灭 。
2009-7-29 366
二,实际运行中的情况分析
1,分类分析
1) 电梯上行分析:
若电梯在上行过程中,某楼层有呼叫产生时,
可分以下两种情况:
a.若呼叫层处于电梯当前运行层之上目标运行层之下,则电梯应在完成前一指令之前先上行至该层,完成该层呼叫后再由近至远的完成其它各个呼叫动作;
b.呼叫层处于电梯当前运行层之下,则电梯在完成前一指令之前不响应该指令,直至电梯重新处于待命状态为止。
2009-7-29 367
2)电梯下行分析:
若电梯在下行过程中,楼层有呼叫产生时,分以下两种情况:
a,若呼叫层处于电梯当前运行层之下目标运行层之上,
则电梯应在完成前一指令之前先下行至该层,完成该层呼叫后再由近至远地完成其它各个呼叫动作;
b,若呼叫层处于电梯运行层之上,则电梯在完成前一指令之前不响应该指令,直至电梯重新处于待命状态为止。
2.总结规律由以上各种分析可以看出,电梯在接受指令后,总是由近至远地完成各个呼叫任务。 电梯机制只要依此原则进行设计动作,就不会在运行时出现电梯上下乱跑的情况了。
2009-7-29 368
五层楼电梯控制组态仿真界面
2009-7-29 369
左半部分是电梯的内视图,其中包括一个楼层显示灯、开门按钮、关门按钮、一层到五层的呼叫按钮以及电梯的上升和下降状态指示灯等。两扇电梯门打开后可以看到楼道的景象。
右半部分是五层楼宇电梯的外视图,表示五层楼宇和一个电梯的轿箱。 在电梯的外视图中,一层有一个上呼叫按钮五层有一个下呼叫按钮,二、三和四层有上、下呼叫按钮各一个,每个呼叫按钮内都有一个相应的指示灯,用来表示该呼叫是否得到响应。轿箱的电梯门和每层的电梯门都可以 打开。
2009-7-29 370
3.仿真电梯的控制要求
1) 接受每个呼叫按钮(包括内部和外部的呼叫)的呼叫命令,并作出相应的响应。
2)电梯停在某一层(例如 3层)时,此时按动该层( 3层)
的呼叫按钮(上呼叫或下呼叫),则相当于发出打开电梯门命令,进行开门的动作过程;若此时电梯的轿箱不在该层(在 1,2,4,5层),则等到电梯关门后,按照不换向原则控制电梯向上或向下运行。
3) 电梯运行的不换向原则是指电梯优先响应不改变现在电梯运行方向的呼叫,直到这些命令全部响应完毕后才响应使电梯反方向运行的呼叫。 例如现在电梯的位置在一层和二层之间上行,此时出现了一层上呼叫、二层下呼叫和三层上呼叫,则电梯首先响应三层上呼叫,然后再依次响应二层下呼叫和一层上呼叫。
2009-7-29 371
4) 电梯在每一层都有一个行程开关,当电梯碰到某层的行程开关时,表示电梯已经到达该层。
5)当按动某个呼叫按钮后,相应的呼叫指示灯亮并保持,直到电梯响应该呼叫为止。
6)当电梯停在某层时,在电梯内部按动开门按钮,
则电梯门打开,按动电梯内部的关门按钮,则电梯门关闭。 但在电梯行进期间电梯门是不能被打开的。
7) 当电梯运行到某层后,相应的楼层指示灯亮,
直到电梯运行到前方一层时楼层指示灯改变 。
2009-7-29 372
三、设计部分首先,应该做上位机与下位机之间的任务分工:
上位机主要用来完成仿真界面的制作及动画连接工作。
下位机则主要用来完成 PLC程序的运行。
其实,上位机与下位机的设计工作是密切配合的。它们无论在通讯中使用的变量,还是在进行界面仿真时控制的对象都应该是一致的。总体上讲,仿真界面是被控对象,
PLC是存储运行程序的装置,而控制指令则由仿真界面中的仿真控制器件发出。另一方面,仿真界面中仿真电梯的运动,门的运动等,都是由力控组态软件所提供的命令语言来完成的。
2009-7-29 373
1,PLC程序中 I/O点的定义在编程过程中,所用到的 I/O地址分配如下表所示。编程过程可分为电梯内部和电梯外部两部分进行。
说明 对应 PLC地址 说明 对应 PLC地址外部一层上呼叫按钮 R101 外部一层上呼叫灯 Y1
外部二层上呼叫按钮 R102 外部二层上呼叫灯 Y2
外部二层下呼叫按钮 R103 外部二层下呼叫灯 Y3
外部三层上呼叫按钮 R104 外部三层上呼叫灯 Y4
外部三层下呼叫按钮 R105 外部三层下呼叫灯 Y5
外部四层上呼叫按钮 R106 外部四层上呼叫灯 Y6
外部四层下呼叫按钮 R107 外部四层下呼叫灯 Y7
外部五层下呼叫按钮 R108 外部五层下呼叫灯 Y8
一层行程开关 R109 一层位灯 Y9
二层行程开关 R10A 二层位灯 YA
三层行程开关 R10B 三层位灯 YB
四层行程开关 R10C 四层位灯 YC
五层行程开关 R10D 五层位灯 YD
I/O分配表
2009-7-29 374
内部一层呼叫按钮 R10E 电梯上升 YE
内部二层呼叫按钮 R10F 电梯下降 YF
内部三层呼叫按钮 R110 上升指示灯 Y10
内部四层呼叫按钮 R111 下降指示灯 Y11
内部五层呼叫按钮 R112 电梯开门 Y12
开门呼叫按钮 R113 电梯关门 Y13
关门呼叫按钮 R114
开门行程开关 R115
关门行程开关 R116
内部一层呼叫灯 RE
内部二层呼叫灯 RF
内部三层呼叫灯 R10
内部四层呼叫灯 R11
内部五层呼叫灯 R12
(续上表)
2009-7-29 375
2,电梯内部的 PLC编程
1)五层楼的内呼叫灯 PLC程序电梯内部的五个呼叫按钮,指定的是电梯的运行目标。因此在电梯未达到指定目标时,该层呼叫灯应一直有显示(为绿),因此输出时就应该使用保持继电器。另外,当电梯达到指定楼层时,呼叫灯应该灭掉,即保持继电器断开。
先以一层内呼叫灯为例,所得的程序如下图所示。
2009-7-29 376
五层楼内呼叫灯的 PLC梯形图程序如下图,
2009-7-29 377
2) 电梯内的楼层显示器楼层显示器是以电梯是否碰到行程开关来决定的。
显示器同样有保持特性。另外要替换某一显示器的值,
需要电梯接触到其上层或下层的行程开关。
综合以上因素可得程序如下图所示(以第二层显示器为例)。
2009-7-29 378
3)电梯内的电梯升降显示器升降显示器的状态共三种,显示上升、显示下降、或都不显示。 另外,无论上升还是下降,都与电梯的呼叫有密切关系。上升包括了从第一层到第五层的上升运动,下降也同样如此。因此程序应从最基本、简单的过程入手。现以电梯从第四层到第五层的上升为例。
若五层有呼叫,包括两种情况,电梯内呼叫、
电梯外呼叫。 若电梯由第四层上行至第五层,此时
Y10亮,Y11灭,下降触点 YF断开,上升触点 YE闭合。
并列的条件还有四层外部上呼叫闭合、五层下呼叫闭合、五层呼叫按钮的闭合,这些条件同样使得四层显示器改变,因此在编程时都要考虑。
2009-7-29 379
四层升至五层的升降显示器 PLC程序如下图:
2009-7-29 380
由三层升至五层的升降显示器 PLC程序如下图:
由上面的分析可以看出,整个电梯上升显示程序即是对各层的上升程序取程序块并联逻辑操作。
电梯下降指示灯的程序编写方法与上升指示灯的编写方法是一样的。
2009-7-29 381
3,电梯到达楼层后的停止由于在电梯外部有上升呼叫和下降呼叫,
所以 当呼叫方向与电梯运行方向相同时,电梯才能停止 。
下面以向下呼叫停止 R201为例说明。而上升呼叫停止 R200的编程思路与下降呼叫停止 R201相似。
2009-7-29 382
电梯到达呼叫楼层后停止的 PLC程序如下图所示。
当电梯一直显示向下运行,即 Y11
接通时,只有当每层楼的向下呼叫即
Y3,Y5,Y7和该层的行程开关接通时,
电梯到达各层后
R201才接通,否则并不接通。
另外,如果电梯一直停在某一层,
不显示上升与下降,
该层的上呼叫接通时 R201也接通 。
2009-7-29 383
4,电梯的开、关门程序以电梯的开门 Y12程序为例说明。
首先,只有当电梯既不上升也不下降时才能进行开门,即 Y12才能输出。 无论电梯的上升停止或下降停止,只要 R200或 R201有一个输出,电梯经过延时后都会自动开门。如果电梯停在某一层,
按下该层的外部呼叫也会输出 R200或 R201,电梯门也会打开。当开门 Y12输出时,关门 Y13断开。
如果关门 Y13接通时,Y12也应立即断开。
2009-7-29 384
电梯开门的 PLC梯形图程序如下图,
2009-7-29 385
5,电梯外部操作与显示的 PLC程序
1) 外部呼叫电梯外部呼叫与内部呼叫是类似的。一个呼叫灯的接通对应于相应的外部呼叫接通,其关闭条件为相应行程开关闭合,相应升降指示灯闭合。另外,
外部呼叫同样有保持特性,故也应使用保持继电器作为输出。需要指出的是第一、第五层的呼叫是单向的,故其关闭条件也相应变为行程开关闭合
,AND”电梯升降断开。
2009-7-29 386
a,2层 — 4层以 2层为例:
b,1层,5层以 1层为例,
1层电梯外部呼叫梯形图
2层电梯外部上呼叫梯形图
2009-7-29 387
下 呼叫与上呼叫类似,不同之处在于关闭条件中的 Y10
(上升指示)应换为 Y11(下降指示)。
2) 楼层的电梯位置指示灯外部楼层的电梯位置指示灯与电梯内的位置指示灯相同。
3) 电梯的上升与下降设电梯从一层到五层上升。
由于电梯在第一层,此时构成电梯上升的因素包括:二层上 /下呼叫、三层上 /下呼叫、四层上 /下呼叫、五层下呼叫、
内二层呼叫灯、内三层呼叫灯、内四层呼叫灯、内五层呼叫灯,这 11种条件对于电梯的上升是一种逻辑,OR”的关系,
而这些条件的产生的前提条件则是电梯此时在一层,即一层位灯 Y9有输出。可见,Y9与前 11个,OR”逻辑是,AND”的关系。
2009-7-29 388
电梯从一层到五层上升的梯形图如下图:
2009-7-29 389
电梯由二层上升到五层、三层上升到五层、四层上升到五层的编程思路与一层上升到五层相似,
不同之处为上升条件同某层位灯逻辑,AND” 运算之后还应排除电梯下降指示的情况,这里将电梯下降指示 Y11的常闭触点与之串联。另外由于电梯上升,电梯门应关门,电梯下降线圈 YF应断电,这又是和以上程序块取逻辑,AND” 与的过程。
电梯下降程序的编写方法与上升程序的编写方法相似。
需要指出的是,电梯上升与下降都是建立在开门和关门继电器线圈不接通的情况下。
因此,在电梯上升与下降的过程中要将这两个因素考虑在内。
2009-7-29 390
四、五层楼电梯 PLC控制参考程序五层楼电梯仿真系统的 PLC控制参考程序如教材图 7-32所示。由于篇幅的限制,有关五层楼电梯仿真系统界面的制作、脚本程序的编写、仿真系统的运行过程以及系统编程时易出现的问题和解决办法在这儿就不详细地叙述了。读者可把本书配套光盘中的应用程序“五层楼电梯”装载到自己的计算机中运行,通过实际操作了解电梯的基本功能,仔细分析该仿真系统的设计过程,从中学习利用监控组态软件进行 PLC系统设计的方法和技巧。