可编程控制器的功能指令.docx
- 文档编号:7339485
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:17
- 大小:158.29KB
可编程控制器的功能指令.docx
《可编程控制器的功能指令.docx》由会员分享,可在线阅读,更多相关《可编程控制器的功能指令.docx(17页珍藏版)》请在冰豆网上搜索。
可编程控制器的功能指令
PLC课程论文
题目:
可编程控制器的功能指令
专业:
电子信息科学与技术
院系:
物理与电子工程学院
学生姓名:
学生学号:
年级、班:
指导教师:
2016年1月10日
可编程控制器的功能指令
PLC是由取代继电器控制开始产生、发展起来的,且早期的PLC绝大部分用于顺序控制,于是许多人习惯于把PLC看作是继电器、定时器、计数器的集合,把PLC的作用局限于等同继电接触器控制系统、顺控器等。
其实,PLC就是工业控制计算机,PLC系统属于计算机控制系统的一个分支,大型PLC系统就是当代较先进的计算机控制系统。
小型PLC由于运算速度较低及存贮容量较小,使其功能受到限制,但为了使PLC在其基本逻辑功能、顺序步进功能之外具有更进一步的特殊功能,以尽可能多地满足PLC用户的特殊要求,从80年代开始,PLC制造商就逐步地在小型PLC中加入一些功能指令(FunctionalInstruction)或称为应用指令(AppliedInstruction)。
这些功能指令实际上就是一个个功能不同的子程序。
随着芯片技术的进步,小型PLC的运算速度、存贮量不断增加,其指令的功能也越来越强。
许多工程技术人员以前不敢想象的功能,通过功能指令就能容易实现,从而大大提高了PLC的实用价值。
一般来说功能指令可以分以下几类:
(1)程序流控制。
(2)传送与比较。
(3)算术与逻辑运算。
(4)移位与循环移位。
(5)数据处理。
(6)高速处理。
(7)方便命令。
(8)外部输入输出处理。
(9)外部设备通讯。
4.1功能指令通则
4.1.1功能指令的表现形式
表4-1功能指令的表现形式表
MEANFNC45
(P)(16)
Mean
操作元件:
K、H
Knx
Kny
Knm
Kns
T
C
D
V、Z
N=1~64
步数:
MEAN、MEAN(P)7步
MEAN:
指令助记符FNC45:
功能号
(P):
脉冲执行功能(16):
只能做16bit操作
(16/32):
16或32bit操作
功能指令按功能号(FNC00~FNC99)编排,每条功能指令都有一助记符。
某些功能指令只需指定功能号即可,但许多功能指令在指定功能号的同时还必须指定操作数。
这是取平均值的指令。
图中[S·]指取值首元件。
n指定取值个数。
[D·]指定计算结果存放地址。
[S]:
(SOURSE)源操作数。
若可使用变址功能时,表达为[S·]。
有时源操作数不止一个,可用[S1·]、[S2·]表示。
[D]:
(DESTINATION)目标操作数。
若可使用变址功能时,表达为[D·]。
目标不止一个时用[D1·][D2·]表示。
m、n其它操作数。
常常用来表示数制(十进制、十六进制等)或制作源和目标的补充注释。
需注释的项目多时也可采用m1、m2等方式。
功能指令的功能号助记符占一个程序步,操作数占2或4个程序步,取决于指令是16bit还是32bit的。
注意,某些功能指令在整个程序中只能出现一次,即使用跳转指令使其分别处于两个不可能同时执行的程序中也不允许,但可利用变址寄存器多次改变其操作数。
4.1.2数据长度及指令的执行形式
1.16bit和32bit
功能指令可处理16bit的数据和32bit数据。
功能指令中附有符号(D)表示处理32bit数据。
如(D)MOV、FNC(D)—12、FNC12(D)。
处理32bit数据时,用元件号相邻的两元件组成元件对。
元件对的首元件号用奇数偶数均可。
但为避免错误,元件对的首元件建议统一用偶数编号。
32bit计数器(C200~C255)不能用作16bit指令的操作数。
2.连续执行/脉冲执行
助记符后附的(P)符号表示脉冲执行。
(P)和(D)可同时使用,如(D)MOV(P)。
上图所示功能指令仅在X0由OFF变为ON时执行。
在不需要每个扫描周期都执行时,用脉冲执行方式可缩短程序处理周期。
上图程序是连续执行方式的例子。
当X1为ON状态时上述指令在每个扫描周期都被重复执行。
某些指令,例如XCH、INC、DEC等,用连续执行方式时要特别留意,这些指令用“!
”号标示。
注意:
当X0和X1为OFF状态时,上述两指令不执行。
目标元件的内容不变化,除非另行指定。
4.1.3位元件
1.位元件和字元件
只处理ON/OFF状态的元件,例如X、Y、M和S,称为位元件,其它处理数字数据的元件,例如T、C和D,称为字元件。
位元件组合起来也可以处理数字数据。
位元件组合由Kn加首元件号来表示。
2.位元件的组合
位元件每4bit为一组合单元,KnM0中的n是组数,16bit数操作时为K1~K4,32bit数操作时为K1~K8。
当一个16bit的数据传送到K1M0、K2M0或K3M0时,只传送相应的低bit数据,较高bit的数据不传送。
32bit数据传送时也一样。
在进行16bit数操作时,参与操作的位元件由K1、K2、K3来指定,高位(不足部分)均作0,这就意味着只能处理正数(符号位为0)。
在处理32bit数操作时也一样。
由X4~X13组成的2位BCD码数转换成二进制码送到D0。
被组合的位元件号可以是任意的,但为避免混乱建议采用以0结尾的元件(如X0、X10、X20···等)。
注:
字的指定与字串,以D1开始的数据寄存器串即D1、D2、D3···,用位元件组合的字作为字串处理,其指定格式如下:
K1X0K1X4K1X10K1X14···,K2Y10K2Y20K2Y30···
K3M0K3M12K3M24K3M36···,K4S16K4S32K4S48···
即元件每4个为一组连续编号。
如果“K2Y0”用在32bit操作时,高16bit作“0”处理,要获得32bit数据需要用“K8Y0”。
4.1.4变址寄存器(V、Z)
变址寄存器在传送比较指令中用来修改操作对象的元件号,其操作方式与普通数据寄存器一样。
表示操作对象:
对定时器及计数器指其当前值寄存器
上图中表示从KnY到V、Z都可作为功能指令的目标元件。
在[D·]中的点(·)表示可以加入变址寄存器,对32bit指令,V作高16bit,Z为低16bit。
32bit指令中用到变址寄存器时只需指定Z,这时Z就代表了V和Z。
如上图所示,因为K10送到V,K20送到Z,所以(V)、(Z)的内容分别为10、20。
(D5V)+(D15Z)(D40Z)
就是(D15)+(D35)(D60)
V和Z可使编程简化。
(D1,D0)+(D3,D2)(D25,D24)
某些应用会用到各种标志,这些标志在附录中详细列表说明。
例如:
M8020:
零标志(Z)
M8021:
借位标志(Br)
M8022:
进位标志(Cy)
M8029:
执行完毕标志(F)
如果功能指令的语法或操作元件号有错误(出错将在附录中加以解释),出错标志M8067(E)将被置1.
功能指令每次执行时都会影响标志的状态(SET或RESET),而功能指令不执行或出错时标志状态不受影响。
许多功能指令都会影响标志的状态,编程时要多加小心。
4.2程序流控制指令(FNC00~FNC09)
4.2.1条件跳转指令
表4-2条件跳转指令功能表
CJFNC00
(P)(16)
条件跳转
操作元件:
指针P0~P63(允许变址修改)
P63即END,无需再标号。
程序步数:
CJ和CJ(P)······3步
标号PXX···1步
CJ和CJ(P)指令用于跳过顺序程序中的某一部分,这样可以减少扫描时间,并使“双线圈操作”成为可能。
4.2.4主程序结束指令
表4-6主程序结束指令表
FENDFNC06
主程序结束
操作元件:
无
程序步数:
1步
FEND指令表示主程序结束,执行到FEND指令时机器进行输出处理、输入处理、警戒时钟刷新,完成以后返回到第0步。
例1设计一PLC控制程序控制3盏灯A、B、C,使之具有手动和自动功能,自动时,每5秒起动一盏。
4.3传送和比较指令(FNC10~FNC19)
4.3.1比较指令
表4-9比较指令表
CMPFNC10
(P)(16/32)
比较
操作元件:
K、H
Knx
knY
knm
kns
T
C
D
V、Z
X
Y
M
S
程序步数:
CMP和CMP(P)···2步
(DCMP和(D)CMP(P)···1步
下面这段程序是将源[S1·]和[S2·]的数据比较,结果送到目标[D·]中。
这里源数据作代数比较(如-10<2=且所有的源数据均作为二进制数值处理。
程序中M0、M1、M2根据比较的结果动作。
K100>C20的当前值时,M0接通;K100=C20的当前值时,M1接通;K100<C20的当前值时,M2接通。
当执行条件X0=OFF时,CMP指令不执行,M0、M1、M2的状态保持不变。
注:
(1)一条CMP指令用到三个操作数,如果只指定了一或二个操作数,就会出错(出错码:
6503),防碍PC运行。
(2)指定的操作元件超出上表范围时出错(出错码:
6705).例如X、D、T或C被指定作目标时就会出错。
(3)如果被指定为操作数(元件)的元件号超出允许范围时出错(出错码:
6706).
用变址修改参数时可能会出现这种情况。
(4)由于上述指定操作数出错时,请参阅附录。
4.3.3传送指令
表4-11传送指令表
MOVFNC12
(P)(16/32)
传送
操作元件:
K、H
Knx
Kny
Knm
Kns
T
C
D
V、Z
程序步数:
MOV和MOV(P)5步
(D)MOV和(D)MOV(P)9步
源数据被传送到指定目标。
如X0=OFF指令不执行,数据保持不变。
当传送指令执行时,常数K100自动转换成二进制数。
4.4四则运算及逻辑运算指令(FNC20~FNC29)
4.4.1BIN加法指令
表4-19BIN加法指令表
ADDFNC20
(P)(16/32)
BIN加法
操作元件:
K、H
Knx
knY
knM
knS
T
C
D
V、Z
程序步数:
ADD和ADD(P)···7步
(D)ADD和(D)ADD(P)···13步
标志:
M8020(零标志),M8021(借位);M8022(进位)
指定的源元件中的二进制数相加,结果送到指定的目标元件。
每个数据的最高bit作为符号位(0为正,1为负)。
运算总是代数运算,如:
5+(-8)=-3。
如果运算结果为0,则零标志M8020置1。
如果运算结果超过32767(16bit运算)或2147483647(32bit运算),则进位标志M8022置1。
如果运算结果小于-32767(16bit运算)或-2147483647(32bit运算),则借位标志M8022置1。
在32bit运算中,用到字元件时,被指定的字元件是最低16bit元件,而其下一个元件即为最高16bit元件。
为了避免重复使用某些元件,建议指定操作元件时用偶数元件号。
源和目标可以用相同的元件号,若源和目标元件号相同而且采用连续执行的ADD/(D)ADD指令时,加法的结果在每个扫描周期都会改变。
上图所示程序,每当X1从OFF变为ON时,D0的数据加1。
这与INC(P)指令的执行结果相似。
其不同之处在执行ADD指令时,零、借位、进位标志将按前述方法置位。
4.4.2BIN减法指令
表4-20BIN减法指令表
SUDFNC20
(P)(16/32)
BIN减法
操作元件:
K、H
Knx
knY
knM
knS
T
C
D
V、Z
程序步数:
SUB和SUB(P)···7步
(D)SUB和(D)SUB(P)···13步
标志:
M8020(零标志),M8021(借位)M8022(进位)
[S1·]指定的元件中的数减去[S1·]指定的元件中的数,结果送到[D·]指定的目标中。
运算是二进制代数法。
例如:
5-(-8)=13
每个标志的功能、32bit运算的元件指定方法、连续执行和脉冲执行的区别等均与加法指令中的解释相同。
上图所示的运算与执行(D)DEC(P)指令的运算极其相似。
区别仅在于用SUB指令时可得到标志的状态。
4.4.3BIN乘法指令
表4-21BIN乘法指令表
MULFNC32
(P)(16/32)
BIN乘法
操作元件:
K、H
Knx
knY
knM
knS
T
C
D
V、Z
程序步数:
MUL和MUL(P)···7步
(D)MUL和(D)MUL(P)···13步
1.16bit运算
两源的乘积以32bit形式送到指定目标。
低16bit在指定目标元件,高16bit在下一个元件。
若D0=8,D2=9,则上例中(D5,D4)=72
最高bit是符号bit(0为正,1为负)。
V不用于[D·]之中,对bit元件,可用K1~K8来指定bit数。
记住结果是32bit数,所以如图K4指定bit数,则只能得到乘积的低16bit。
2.32bit运算
在32位运算中,如用bit元件作目标,则乘积只能得到低32bit,高32bit丢失,在这种情况下应先将数据移入字元件再进行运算。
用字元件时,不可能监控这64bit数据的内容。
在这种情况下通过监控结果的高32bit和低32bit并利用下式计算:
64bit结果=(高32bit)×232+(低32bit)
最高bit是符号bit,0为正,1为负。
V和Z不能用于[D·]。
4.4..4BIN除法指令
表4-22BIN除法指令表
DIYFNC23
(P)(16/32)
BIN除法
操作元件:
K、H
Knx
Kny
Knm
Kns
T
C
D
V、Z
*只有Z可用于16bit运算
程序步数:
DIY和DIY(P)7步
(D)DIY和(D)DIY(P)13步
1.16bit运算
用[S1·]指令被除数,[S2·]指定除数,商送到目标[D·],余数在[D·]的下一个元件,V不可用于[D·]中。
2.32bit运算
[S1·]指定的元件及其下一个元件组成被除数,[S2·]及其下一个元件组成除数,商和余数放在以[D·]开始的4个连续元件中。
V和Z不可用于[D·]中。
注:
(1)若除数为“0”则出错,该指令不执行。
(2)若bit元件被指定为目标[D·],则不能获得余数。
(3)商和余数的最高bit是符号bit。
例2设计一PLC程序,计算(5×352+7×212—4×577)/56的值,若余数大于28,A灯亮;若余数小于28,B灯亮;若余数等于28,C灯亮。
4.4.5加1和减1指令
表4-23加1和减1指令表
INCFNC24
(P)(16/32)(“!
”)
加1
操作元件:
K、H
Knx
knY
knM
knS
T
C
D
V、Z
程序步数:
INC、INC(P)DEC和DEC(P)···3步
(D)INC、(D)INC(P)、(D)DEC和(D)DEC(P)···5步
DECFNC25
(P)(16/32)(“!
”)
减1
上例中,每次X0由OFF变ON时,由[D·]指定的元件中的数增加1。
如果不用脉冲指令,则每个扫描周期加1。
在16bit运算中,达到+32767再加1就变为-32768但标志不动作。
32bit运算时,+2147483647再加1就变为-2147483648时,标志也不动作。
上例中,每次X1由OFF变为ON时,由[D·]指定的元件中的数减1。
16bit运算时,-32768减1就变为+32767,但标志不动作。
32bit运算时,-2147483648再减1就变为+2147483647,但标志不动作。
计数器C0~C9的当前值转换成BCD码送到输出K4Y0。
Z由复位输入X10清0。
每次X110N时,C0~C9的当前值依次输出。
例3用INC指令设计一计数器,当按下按钮5次时,指示灯亮。
4.5循环移位指令
4.5.3移位(左/右)指令
表4-28移位(左/右)指令表
SFTRFNC34
(P)(16)(“!
”)
右移位
操作元件:
X
Y
M
S
程序步数:
SFTR,SFTR(P),SFTL,SFTL(P)···9步
SFTRFNC35
(P)(16)(“!
”)
左移位
本指令使bit元件中的状态向右/向左移位,由n1指定bit元件长度,n2指定移位bit数(n2<n1<1024用脉冲移位指令时,在执行条件的上升沿到达时执行。
用连续移位指令时,当执行条件为ON时,每个扫描周期执行一次。
4.6数据处理指令(FNC40~FNC49)
4.6.1区间复位指令
表4-32区间复位指令表
ZRSTFNC40
(P)(16)
区间复位
操作元件:
K、H
Knx
knY
knM
knS
T
C
D
V、Z
X
Y
M
S
程序步数:
ZRST,ZRST(P)···5步
[D1·]和[D2·]指定的应为同类元件,[D1·]指定的元件号应小于等于[D2·]指定的元件号。
如果[D1·]号>[D2·]号,则只有[D1·]指定的元件被复位。
虽然ZRST作为16bit指令处理,但[D1·][D2·]也可同时指定32bit计数器。
注:
(1)[D1·][D2·]一个指定16bit,另一个指定32bit计数器是不允许的。
其他的复位指令:
(2)可用RST指令逐个元件复位。
(3)FNC16指令(FMOV)是对多点写入K0。
利用该指令,可将“0”写入KnY、KnM、KnS、T、C和D。
例4控制6盏灯A---F,每隔1s亮一盏,后面的亮则前面的灭,循环运行。
4.6.6平均值指令
表4-37平均值指令表
MBANFNC45
(P)(16)
平均值
操作元件:
K、H
Knx
knY
knM
knS
T
C
D
V、Z
程序步数:
MESN,MEAN(P)···7步
n个源数据的平均值送到指定目标,平均值是指n个源数据的代数和被n除所得的商,余数略去,若元件超出范围,n的值会自动缩小允许范围内元件的平均值,若指定的“n”值超出1~64的范围,则出错。
例5求123,236,528,753,902五个数的平均值
思考与练习
1、求1103、569、432、2056、987、358、1355七个数的平均值,并将此值除以35,若余数大于17,红灯亮;若余数小于17,绿灯亮;若余数等于17,黄灯亮。
2、控制8盏彩灯循环移位,每2s亮一盏,循环运行。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程控制器 功能 指令