西门子电源6ES7307-1EA01-0AA0型号介绍
“四选一”程序是《自学自会指令——三菱fx2n编程技术及应用》(莫操君 编著)的一个试验模型,它是实际问题的提炼,描述的是:
给定四个输入x0、x1、x2、x3,四个输出y0、y1、y2、y3;每个输入对应一个输出,但每次*多仅允许一个输出接通;四个输入中,每次仅有一个接通,才允许有对应输出。
并且,假定当输入x0~x3全部断开时,输出y0~y3保持前一状态不变;参见表1。
表1 输入输出的一一对应关系
序号 | 输 入 | 输 出 | 说 明 | 备 注 |
1 | x0 | y0 | x0单个接通、y0接通 | 输出y0~y3中,不允许有两个或两个以上同时接通 |
2 | x1 | y1 | x1单个接通、y1接通 | |
3 | x2 | y2 | x2单个接通、y2接通 | |
4 | x3 | y3 | x3单个接通、y3接通 |
当输出是、信号时,虽然在外电路中,可以通过互锁等连结方式,来保证输入信号的唯一性,但作为plc程序,仍必须考虑信号的正确与否,以保证在接线错误、程序调试时强制接通元件等情况下,系统能够正常工作。
所以,对于该问题的编程思路,可以是:
(1)判断信号是否正确;
(2)根据输入信号状态决定输出。
而且假定,当先有一个输入接通(例如x0)、对应输出y0接通时,x0不断开、再接通x1时,输出状态保持不变,即:y0接通、y1~y3断开。
而为了简化问题,当再次只有一个输入接通时,其动作情况暂不作要求,可以是立即转换到对应输出;实际编程时,可根据系统情况作出规定。
1.判别是否只有一个输入接通
对于输入信号数量的判别,《自学自会plc指令——三菱fx2n编程技术及应用》(下称文献[1])分别用sum、add、for、ld=、inc等指令进行了介绍。
按照文献[1]的思想,试验时可以寻求一个问题的不同解法,以熟悉指令和积累编程经验,故本文试用移位指令来进行编程,参见图1。
图1程序,当x0~x3中,只有一个接通时,m100接通;而当有两个或两个以上接通时,m20接通,m100断开。由于本问题,仅需要判断是否只有一个输入接通,而不需要具体数量,故图1程序能够满足使用要求。
但是对于图1的程序,随着输入接通个数的增加,m11、m12、m13均可以接通。
为了方便使用,如果设想,当只有一个输入接通时、则仅m10接通,而两个输入接通时、仅m11接通,三个输入接通时、仅m12接通,四个输入接通时、仅m13接通,能否做到呢?为此,试编制一个程序如图2所示。
图2中,为便于试验观察,特设定y4~y7作为m10~m13的动作指示。手头没有plc时,也可以用软件仿真来验证结果。
这样,当图1中的m100接通、或者图2中的m10接通,就表示输入信号正确,允许有对应输出继电器接通。
于是,可以进行第2步的程序编制了。
一、逻辑取及输出指令
1.指令作用
ld(取)为常开触头逻辑运算起始指令,ldi(取反)则为常闭触头逻辑运算起始指令,out(输出)用于线圈驱动,其驱动对象有输出(y)、辅助继电器(m)、状态继电器(s)、定时器(t)、计数器(c)等。out指令不能用于输入继电器,out指令驱动定时器(t)、计数器(c)时,必须设置常数k或数据寄存器值。
2.使用示例
图1是由ld、ldi、out指令组成的梯形图,其中out m100和out t0的线圈可并联使用。
图1 ld、ldi、out指令组成的梯形图
该梯形图对应的语句指令程序为:
程序步 语句 注释
1 ld x0 //与左母线相连
2 out y0 //驱动线圈
3 ldi x1
4 out m100 //驱动通用辅助继电器
5 out t0 //驱动定时器
k19 //设定常数
6 ld to
7 out y1
二、触头串联指令
1.指令作用
and(与)用于常开触头串联连接,ani则用于常闭触头串联连接。串联触头个数没有限制,理论上该指令可以无限次重复使用,实际由于图形编程器和打印机功能有限制,一般一行不超过10个触头和1个线圈,而连续输出总共不超过24行。
2.使用示例
图2是由and、ani指令组成的梯形图。out指令之后可通过触头对其他线圈使用out指令,称为纵向输出或连续输出。例在out m101指令后,可通过触头t1对线圈y4使用out进行连续输出,如果顺序不错,可多次重复使用连续输出。
梯形图对应的语句指令程序为:
ld x2
and x0 //串联常开触头
out y3
ld y3
ani x3 //串联常闭触头
out m101
and t1 //串联触头
out y4 //连续输出
三、触头并联指令
1.指令作用
or(或)是常开触头并联连接指令,ori(或反)是常闭触头并联连接指令。除第一行并联支路外,其余并联支路上若只有一个触头时就可使用or、ori指令。or、ori指令一般跟随ld、ldi指令后,对ld、ldi指令规定的触头再并联一个触头。
2.使用示例
图3是由or、ori指令组成的梯形图。由于or、ori指令只能将一个触头并联到一条支路的两端,即梯形图中m103或m110所在支路只有一个触头,梯形图对应的语句指令程序程序为:
ld x4
or x6 //并联一个常开触头
ori m102 //并联一个常闭触头
out y5
ldi y5
and x7
or m103 //并联一个常开触头
ani x10
ori m110 //并联一个常闭触头
out m103
图3 or、ori指令组成的梯形图
四、 边沿检测脉冲指令
1.指令作用
ldp(取脉冲上升沿)是上升沿检测运算开始指令,ldf(取脉冲下降沿)是下降沿脉冲运算开始指令,andp(与脉冲上升沿)是上升沿检测串联连接指令,andf(与脉冲下降沿)是下降沿检测串联连接指令,orp(或脉冲上升沿)是上升沿检测并联连接指令,orf(或脉冲下降沿)是下降沿检测并联连接指令。
ldp、andp、orp等指令用于检测触头状态变化的上升沿,当上升沿到来时,使其操作对象接通一个扫描周期,又称为上升沿微分指令。ldf、andf、orf等指令用于检测触头状态变化的下降沿,当下降沿到来时,使其操作对象接通一个扫描周期,又称为下降沿微分指令。这些指令的操作对象有x、y、m、s、t、c等。
2.使用示例
图4 ldp、orf、andp指令组成的梯形图
图4是由ldp、orf、andp指令组成的梯形图。在x2的上升沿或x3的下降沿时线圈y0接通。对于线圈m0,需在常开触头m3接通且t5上升沿时才接通。
梯形图对应的语句指令程序为:
ldp x2 //取脉冲上升沿
orf x3 //或脉冲下降沿
out y0
ld m3
andp t5 //与脉冲上升沿
out m0
五、块或块与指令
1.指令作用
两个或两个以上的触头串联连接的电路称为串联电路块,块或orb指令的作用是将串联电路块并联连接,连接时,分支开始用ld、ldi指令,分支结束则用orb指令。
两个或两个以上的触头并联连接的电路称为并联电路块,块与anb指令的作用是将并联电路块串联连接,连接时,分支开始用ld、ldi指令,分支结束则用anb指令。
块或(orb)和块与(anb)指令均无操作元件,同时orb、anb指令均可连续使用,但均将ld、ldi指令的使用次数限制在8次以下。
2.使用示例
图5是由orb、anb指令组成的梯形图。该梯形图先由x0、x1指令组成并联电路块a,然后将x2、x3组成串联电路块b,x4、x5组成串联电路块 c,再将两个串联电路块通过orb指令进行块或操作形并联电路块1,之后再进行或操作后形成并联电路块2,在此基础上通过anb指令进行块与操作*终形成串联电路块3。
图5 orb、anb指令组成的梯形图
对应语句指令程序为:
ld x0
or x3 //组成并联电路块a
ld x1 //分支起点
and x2 //组成串联电路块b
ldi x4 //分支起点
and x5 //组成串联电路块c
orb //将两个串联块进行块或操作,形成1
ori x6 //形成并联电路块2
anb //块与操作,形成3
or x7
out y0
六、 多重输出指令
1.指令作用
mps、mrd、mpp这组指令是将连接点结果存入堆栈存储器,以方便连接点后面电路的编程。fx2n系列中有11个存储运算中间结果的堆栈。
堆栈采用先进后出的数据存储方式,见图6。mps为进栈指令,其作用是将中间运算结果存入堆栈的第一个堆栈单元,同时使堆栈内各堆栈单元原有存储数据顺序下移一个堆栈单元。
图6 堆栈存储器数据存储方式
mrd为读栈指令,其作用是仅读出栈顶数据,而堆栈内数据维持原状。mrd指令可连续重复使用24次。
mpp为出栈指令,其作用是弹出堆栈中第一个堆栈单元的数据,此时该数据在堆栈中消失,同时堆栈内第二个堆栈单元至堆底的所有数据顺序上移一个单元,原第二个堆栈单元的数据进入栈顶。mps和mpp指令必须成对使用,连续使用次数则应少于11次。
2.使用示例
图7是两层堆栈应用示例梯形图。首先用mps将x0送进堆栈顶部的存储单元,然后再将xo与x1的结果用mps送进堆栈顶部的存储单元,这样原先在堆栈顶部存储单元的数据xo将顺序进入堆栈顶部下一个存储单元中。
出栈时,先将处于堆栈顶部的数据即xo与x1相与的结果取出,随着堆栈顶部数据的取出,数据xo顺序到达堆栈顶部的存储单元,然后在下一次的出栈操作中,数据x0被取出堆栈顶部。
两层堆栈应用示例梯形图对应的语句指令程序为:
ld x0
mps //将x0数据送进堆栈
and x1
图7 两层堆栈应用程序示例
mps //将x0 and x1数据送进堆栈
and x2
out y0
mpp //将x0 and x1数据取出堆栈
and x3
out y1
mpp //将x0数据取出堆栈
and x4
mps //将x0 and x4数据送进堆栈
and x5
out y2
mpp //将x0 and x4数据取出堆栈
and x6
out y3
七、主控触头指令
1.指令作用
mc主控指令用于公共串联触点的连接。执行mc后,表示主控区开始,该指令操作元件为y、m(不包括特殊辅助继电器)。
mcr主控复位指令用于公共触头串联的清除。执行mcr后,表示主控区结束,该指令的操作元件为主控指令的使用次数n0~n7。
2.使用示例
图8 由mc、mcr组成的梯形图
图8是由mc、mcr组成的梯形图。由于y0、y1线圈同时受一个触头x0控制,如果在第个线圈所在支路中均串联一个同样的触头,将占有较多存储单元。
使用主控指令mc后,可利用辅助继电器m100,将主左母线移到了常开触头m100后,形成新的左母线,该母线后之后的各支路中仍采用ld或ldi连接,其连接关系与m100和主左母线之间的连接关系相同,但节省了单元。当m100控制的各支路结束后,再用mcr指令撤消新的左母线。
梯形图对应语句指令程序为:
ld x0
mc n0 //主左母线移动到m100之后,建立新的左母线
m100
ld x1
out y0
ld x2
out y1
mcr n0 //撤消建立的新左母线
ld x5
out y5
八、置位复位指令
1.指令作用
set置位指令功能是驱动线圈并使用线圈接通(即置1),并具有维持接通状态的自锁功能。
rst复位指令功能是断开线圈并复位,具有维护断开状态的自锁功能。此外数据寄存器(d)、变址寄存器(v或z)、积算定时器t246~t255、计数器(c)的当前值清零及输出触头复位等均可使用rst。
2.使用示例
图9是set与rst指令组成的梯形图,当x0接通时,y0被置成on状态,之后x0再断开,y0状态仍然保持;而当x1接通时,y0的状态复位为off,之后x1断开,y0仍保持off状态。
图9 由set、rst组成的梯形图
该梯形图对应的语句指令程序为:
ld x0
set y0
ld x1
rst y0
九、 脉冲输出指令
1.指令作用
前沿脉冲pls指令在输入信号上升沿产生一个扫描周期的脉冲输出;后沿脉冲plf指令则在输入信号下降沿产生一个扫描周期的脉冲输出。pls和plf指令的驱动元件是y与m,但不包括特殊辅助继电器。
2.使用示例
图10是由pls、plf组成的示例梯形图。当x0由off至on的上升沿,辅助继电器m0接通,线圈y0接通;而在x1由on至off的下降沿,辅助继电器m1接通,线圈y0置位为off。
图10 由pls、plf组成的梯形图
对应语句指令程序为:
ld x0
pls m0 //在xo的上升沿置m0为on
ld m0
set y0 //置y0为on
ld x1
plf m1 //在x1的下降沿置m1为on
ld m1
rst y0 //将yo复位为off
十、取反及空操作结束指令
1.指令作用
取反inv指令在梯形图中用一条45°短斜线表示,其作用是将之前的运算结果取反,该指令无操作元件;空操作nop指令是一条无动作、无操作元件且占一个程序步的指令,程序中加入nop指令主要为了预留编程过程中追加指令的程序步;结束end指令用于标记用户程序存储区*后一个存储单元,使end指令后的nop指令不再运行并返回程序头,提高了plc程序的执行效率。
2.使用示例
图11是由inv、end指令组成的示例梯形图。其中x0与x1的结果由inv指令取反,x2也取反,两者进行或块操作后再取反,*后输出至y0。
图11 由inv、end指令组成的梯形图
其对应语句指令程序为:
ld x0
and x1
inv //对x0 and x1的操作结果取反
ld x2
inv //对x2取反
orb //或块操作
inv //对或块操作结果取反
outo y0
十一、工作任务
撰写ld、ldi、out;and、ani;or、ori;ldp、orf、andp;orb、anb;mc、mcr;set、rst等指令作用说明书