返回传动网首页
  论坛首页 → 技术交流 → [分享]OMRON C系列PLC指令系统
发表新的主题 发起新的投票 发起新的交易 发起新的任务 回复话题
标题:[分享]OMRON C系列PLC指令系统
性感猪蹄
等级:技术员
权限:普通用户
积分:1809
金钱:1799
声望:0
经验:1374
发帖数:1358
注册时间:2007-6-9
收藏 编辑 删除 楼主

CPM1A系列PLC具有比较丰富的指令集,按其功能可分为两大类:基本指令和特殊功能指令。其指令功能与FX系列PLC大同小异,这里不再详述。

CPM1A系列PLC指令一般由助记符和操作数两部分组成,助记符表示CPU执行此命令所要完成的功能,而操作数则指出CPU的操作对象。操作数既可以是前面介绍的通道号和继电器编号,也可以是DM区或是立即数。立即数可以用十进制数表示,也可以用十六进制数表示。可能影响执行指令的系统标志有:ER(错误标志)、CY(进位标志)、EQ(相等标志)、GR(大于标志)和LE(小于标志)等。

该帖子于2007-8-1 9:57:26被 哥斯达黎加 编辑过

^_^
2007-8-1 9:50:30IP: 保密
性感猪蹄
等级:技术员
权限:普通用户
积分:1809
金钱:1799
声望:0
经验:1374
发帖数:1358
注册时间:2007-6-9
编辑 删除 引用 第2楼

一、基本指令

     CPM1A系列PLC的基本逻辑指令与FX系列PLC较为相似,梯形图表达方式也大致相同,这里列表表示CPM1A系列PLC的基本逻辑指令(见表4-8

 

4-8  CPM1A系列PLC的基本逻辑指令

指令名称

指令符

功能

操作数

LD

读入逻辑行或电路块的第一个常开接点

00000~01915

20000~25507

HR0000~1915

AR0000~1515

LR0000~1515

TIM/CNT000~127

TR0~7

*TR仅用于LD指令

取反

LD NOT

读入逻辑行或电路块的第一个常闭接点

AND

串联一个常开接点

与非

AND NOT

串联一个常闭接点

OR

并联一个常开接点

或非

OR NOT

并联一个常闭接点

电路块与

AND LD

串联一个电路块

电路块或

OR LD

并联一个电路块

输出

OUT

输出逻辑行的运算结果

00000~01915

20000~25507

HR0000~1915

AR0000~1515

LR0000~1515

TIM/CNT000~127

TR0~7

*TR仅用于OUT指令

输出求反

OUT NOT

求反输出逻辑行的运算结果

置位

SET

置继电器状态为接通

复位

RSET

使继电器复位为断开

定时

TIM

接通延时定时器(减算)

设定时间0~999.9S

TIM/CNT000~127

设定值0~9999

定时单位为0.1S

计数单位为1

计数

CNT

减法计数器

设定值0~9999

 

 

2.电路块串联的编程

电路块串联的编程如图4-3所示,当串联的电路块多于两个时,电路块连接的指令语句方法有两种:方法1是电路块的逐块连接,方法2是电路块编写后总连接,两种编写法的指令条数相同。在使用方法2时要注意以下两点:

1)  总连接时,使用AND LD指令的条数比实际电路块数少1

2)使用AND LD指令的条数≤8,即最多只能有9个电路块相连接。而方法1没有此限制。

   

       3.电路块并联的编程

电路块并联的编程如图4-4所示。与AND LD指令相同,当并联的电路块多于两个时,电路块连接的指令语句方法有两种:方法1是电路块的逐块连接,方法2是电路块编写后总连接,两种编写法的指令条数相同。在使用方法2时要以下注意两点:

1)总连接时,使用OR LD指令的条数比实际电路块数少1

2)使用OR LD指令的条数≤8,即最多只能有9个电路块相连接。而方法1没有此限制。

 

4TR指令的应用

在梯形图程序中如果有几个分支输出,并且分支后面还有触点串联时,前面的逻辑指令就不能直接写出其指令程序,这时要用暂存继电器TR来暂时保存分支点的状态后再进行编程。TR不是独立的编程指令,它必须与LDOUT指令配合使用。如图4-5

 

5.定时器指令的应用

CPM1A系列PLC定时器的定时方式为递减型,当输入条件为ON时,开始减1定时,每经过0.1s,定时器的当前值减1,定时设定时间到(即定时当前值减为0000时),定时器触点接通并保持。当输入条件为OFF时,定时器立即复位,当前值恢复到设定值,其触点断开。定时器作用相当于时间继电器。PLC电源掉电时,定时器复位。如图4-6

 

6.计数器指令编程应用

CPM1A系列PLC计数器工作方式为递减型,当其输入端(IN)的信号每出现一次由OFFON的跳变时,计数器的当前数值减1。当计数值减为零时,便产生一个输出信号,使计数器的触点接通并保持。当复位端R输入ON时,计数器复位,当前值立即恢复到设定值,同时其触点断开。PLC电源掉电时,计数器当前值保持不变。当R端复位信号和IN端计数信号同时到达时,复位信号优先。如图4-7

可以利用计数器级联来扩大计数范围,也可以利用定时器级联来扩大定时范围,或者利用定时器和计数器的组合来扩大定时范围,其应用与FX系列PLC类似。

该帖子于2007-8-1 9:54:23被 性感猪蹄 编辑过

^_^
2007-8-1 9:51:33IP:保密
性感猪蹄
等级:技术员
权限:普通用户
积分:1809
金钱:1799
声望:0
经验:1374
发帖数:1358
注册时间:2007-6-9
编辑 删除 引用 第3楼

二、功能指令 

功能指令又称专用指令,CPM1A系列PLC提供的功能指令主要用来实现程序控制,数据处理和算术运算等。这类指令在简易编程器上一般没有对应的指令键,只是为每个指令规定了一个功能代码,用两位数字表示。在输入这类指令时先按下“FUN”键,再按下相应的代码。下面将介绍部分常用的功能指令。

1.空操作指令NOP0 0

本指令不作任何的逻辑操作,故称空操作,也不使用继电器,无须操作数。该指令应用在程序中留出一个地址,以便调试程序时插入指令,还可用于微调扫描时间。

2.结束指令END01

本指令单独使用,无须操作数,是程序的最后一条指令,表示程序到此结束。PLC在执行用户程序时,当执行到END指令时就停止执行程序阶段,转入执行输出刷新阶段。如果程序中遗漏END指令,编程器执行时则会显示出错信号:“NO END INSET”:当加上END指令后,PLC才能正常运行。本指令也可用来分段调试程序。

3.互锁指令IL02)和互锁清除指令ILC0 3

这两条指令不带操作数,IL指令为互锁条件,形成分支电路,即新母线以便与LD指令连用,表示互锁程序段的开始;ILC指令表示互锁程序段结束。

互锁指令IL和互锁清除指令ILC用来在梯形图的分支处形成新的母线,使某一部分梯形图受到某些条件的控制。ILILC指令应当成对配合使用,否则出错。IL/ILC指令的功能是:如果控制IL的条件成立(即ON),则执行互锁指令。若控制IL的条件不成立(即OFF),则ILILC之间的互锁程序段不执行,即位于IL/ILC之间的所有继电器均为OFF,此时所有定时器将复位,但所有的计数器,移位寄存器及保持继电器均保持当前值。

 

4.跳转开始指令JMP0 4)和跳转结束指令JME0 5

这两条指令不带操作数,JMP指令表示程序转移的开始,JME指令表示程序转移的结束。

JMP/JME指令组用于控制程序分支。当JMP条件为OFF时,程序转去执行JME后面的第一条指令;当JMP的条件为ON,则整个梯形图按顺序执行,如同JMP/JME指令不存在一样。JMP/JME指令的应用见图4-9a。图4-9bJMP/JME指令应用的另一种梯形图表达形式,功能完全相同但表达形式更为直观。

在使用JMP/JME指令时要注意,若JMP的条件为OFF,则JMP/JME之间的继电器状态为:输出继电器保持目前状态;定时器/计数器及移位寄存器均保持当前值。另外JMP/JME指令应配对使用,否则PLC显示出错。

5.逐位移位指令 SFT10

又称移位寄存器指令,本指令带两个操作数,以通道为单位,第一个操作数为首通道号D1,第二个操作数为末通道号D2。所使用的继电器有:000CH~019CH, 200CH~252CH, HR00~HR19。其功能相当于一个串行输入移位寄存器。

移位寄存器有数据输入端(IN)、移位时钟端(CP)及复位端(R),必须按照输入(IN)、时钟(CP)、复位(R)和SFT指令的顺序进行编程。当移位时钟由OFFON时,将(D1~D2)通道的内容,按照从低位到高位的顺序移动一位,最高位溢出丢失,最低位由输入数据填充。当复位端输入ON时,参与移位的所有通道数据均复位,即都为OFF

若把例中梯形图的最后一行改为20015控制01000时,可把移位寄存器16位的内容一位一位地输出。当00005变为ON时,10号通道数据置零。

如果需要多于16位的数据进行移位,可以将几个通道级连起来。

移位指令在使用时须注意:起始通道和结束通道,必须在同一种继电器中且起始通道号≤结束通道号。

6.锁存指令KEEP11

本指令使用的操作数有:01000~0191520000~25515HR0000~HR1915,其功能相当于锁存器,当置位端(S端)条件为ON时,KEEP继电器一直保持ON状态,即使S端条件变为OFFKEEP继电器也还保持ON,,直到复位端(R端)条件为ON时,才使之变OFF KEEP 指令主要用于线圈的保持,即继电器的自锁电路可用KEEP指令实现。若SET端和RES端同时为ON,则KEEP继电器优先变为OFF。锁存继电器指令编写必须按置位行(S端),复位行(R端)和KEEP继电器的顺序来编写。KEEP指令应用见图4-11。图4-11a为线圈的自锁保持电路,图4-11bKEEP指令实现自锁。

7.前沿微分脉冲指令DIFU13)和后沿微分脉冲指令DIFD14

本指令使用操作数有:01000~0191520000~25515HR0000~HR1915DIFU的功能是在输入脉冲的前(上升)沿使指定的继电器接通一个扫描周期之后释放,而DIFD的功能是在输入脉冲的后(下降)沿使指定的继电器接通一个扫描周期之后释放。其编程应用见图4-12

8.快速定时器指令 TIMH15

本指令操作数占二行,一行为定时器号000~127(不得与TIMCNT重复使用同号),另一行为设定时间。设定的定时时间,可以是常数,也可以由通道000CH~019CH20000CH~25515CHHR0000~HR1915中的内容决定,但必须为四位BCD码。其功能与基本指令中的普通定时器作用相似,唯一区别是TIMH定时精度为0. 01s,定时范围为0~99.99s

9.通道移位指令WSFT16

又称字移位指令,本指令是以字(通道)为单位的串行移位。操作数为首通道号D1,末通道号D2。可取000CH~019CH, 200CH~252CH, HR00~HR19。通道移位指令执行时,当移位条件为ONWSFT从首通道向末通道依此移动一个字,原首通道16位内容全部复位,原末通道中的16位内容全部移出丢失。

如图4-14所示,由于使用了微分指令,当00001OFF变为ON时,20000接通一个扫描周期,在WSFT指令作用下进行移位:200通道中的内容移到201通道,201通道中的内容移到202通道,202通道中的原有内容全部溢出丢失,200通道中的16位全部复位。因为使用微分指令,故仅执行一次通道移位。

WSFT指令在使用时须注意:首通道和末通道必须是同一类型的继电器;首通道号≤末通道号。

当移位条件为ON时,CPU每扫描一次程序就执行一次WSFT指令。如只要程序执行一次,则应该用微分指令。

10.可逆计数器指令 CNTR12

本指令的功能是对外部信号进行加1或减1的环形计数。带两个操作数:计数器号000~127,设定值范围0000~9999,设定值可以用常数,也可以用通道号,用通道号时,设定值为通道中的内容。

如图4-15所示,当计数器的当前值为设定值(即为5000)时,ACP端再输入一个正跳变(正向加1),则当前值变为0000,计数器输出为ON:若计数器的当前值为0000时,SCP端再输入一个正跳变(反向减1),则当前值变为了设定值,计数器输出为ON。在使用CNTR指令编程时须注意,若APCSCP端同时为ON,则不能进行计数操作。当R端为ON时,计数器的当前值变为0000,并不接收输入信号。另外若CNTR位于IL/ILC指令之间时,当IL条件为OFF时,则CNTR将保持当前值。

11.比较指令CMP20

本指令的功能是将S(源通道)中的内容与D(目标通道)的内容进行比较,其比较结果送到PLC的内部专用继电器255050550625507中进行处理后输出,输出状态见表4-9

4-9  比较结果输出专用继电器状态表

SMR

25505

25506

25507

S>D

ON

OFF

OFF

S=D

OFF

ON

OFF

S,D

OFF

OFF

ON

比较指令CMP用于将通道数据S与另一通道数据D中的十六进制数或四位常数进行比较,SD中至少有一个是通道数据。

如图4-16所示是一个用200通道中的数据与一个常数进行比较的编程示例。图中若输入信号 00001ON时,200CH中的数又大于于B6D8,则专用继电器25506ON输出,从而使输出继电器01001ON

12.数据传送指令 MOV21)和数据求反传送指令MOVN22

这两条指令都是用于数据的传送。当MOV前面的状态为0N时,执行MOV指令,在每个扫描周期中把S中的源数据传送到目标D所指定的通道中去。当MOV前面的状态为0FF时,执行MOVN指令,在每个扫描周期中把S中的源数据求反后传送到目标D所指定的通道中去。执行传送指令后,如果目标通道D中的内容全为零时,则标志位25506ON

传送指令的编程应用如图4-17