发表于:2010/12/14 3:31:27
#0楼
学习plc编程离不开研读教科书。可是许多教科书中的例子并没有配上足够的讲解,读者很难理解程序的工作原理;第二,有不少教科书中的例子包含错误。
最近考察了一批教科书中的plc程序,发现大约有70%-80%的示例程序有大大小小的错误。有错的程序不一定是坏事,通过研究和分析程序错误可以更深刻地理解程序。
下面是某教科书中的五层电梯控制程序。先介绍一下程序的控制要求和io点分配,后面是梯形图。然后我们分析程序的错误。
这个程序的特殊之处是有换速功能,电梯正常运行时是快速,当接近目标楼层时变为慢速。由于换速处理不当,该程序无法控制电梯正常启动。
概述:交流双速电梯在自动运行状态下换速和换向子程序
换向说明:电梯内或门厅按钮按下时,根据检测到的上行或下行指令给出相应信号,
控制电机动作。当多个信号到达时,执行方式为优先响应向上运行信号,
再响应另一方向信号。对未及时响应信号要保留。
换速说明:电梯正常状态下快速启动,当药到达需要停止的楼层时,给出换速信号
控制拖动电机转为慢速运行,以确保电梯平稳停止。
信号说明:
传感器楼层监测: 一层到五层 -- i0.0 i0.1 i0.2 i0.3 i0.4
电梯内楼层选择: 一层到五层 -- i0.5 i0.6 i0.7 i1.0 i1.1
门厅内下楼按钮: 二层到五层 -- i1.2 i1.3 i1.4 i1.5
门厅内上楼按钮: 一层到四层 -- i1.6 i1.7 i2.0 i2.1
电机正转: q0.0 -- 电梯向上
电机反转: q0.1 -- 电梯向下
快速: q0.2
慢速: q0.3
这个程序有多个错,一个比较严重的错误是:,当电梯停在二楼,一楼门厅有人按下上楼按钮,电梯却无法下降。
下面是程序梯形图及其开始时的状态,红色部分为得电。图中可见i0.1为红色。这表示二楼检测器获得信号,电梯目前在二楼。其他输入信号均为黑色,表示没有任何按钮输入。在第二页上,所有输出线圈均为黑色,表示没有输出,电梯处在停止状态。
[
上面我们显示了电梯程序在开始时的状况。假设在第二个扫描周期中,plc检测到
一楼门厅有人按下了请求上楼的按钮,此时,电梯应该从二楼下降到一楼。
下面是第二周期的状态显示图,从中可以看到i1.6为红色,表示1楼的上楼按钮按下。然而,在第二副图中,控制电梯下楼的输出信号q0.1和q0.2依然为黑色,表示它们的输出为0,电梯没有启动。
为什么电梯没有启动呢?仔细分析一下最后一张图,可以发现问题出在换速控制信号m1.7上面。图中换速信号为红色,表示m1.7=1。这一情况,阻断了快速运动信号m3.0,后者又阻断了电梯快速运动输出信号q0.2和电梯向下运动输出信号q0.1。
那么m1.7怎么会变成1呢?为了分析这个问题,我们首先来考察一下换速的设计意图。按照控制要求,当电梯运行接近目标层的时候,应该减慢速度然后停下。换速信号就是用来检测是否在运动中接近目标层。这个检测分成两部分,第一部分是检测电梯究竟是在层与层之间运动,还是到达了某一层,相应的信号是m1.6。当电梯在层间运动时m1.6=1,当电梯处在某层时,m1.6=0。然而,当电梯还没有启动时,这个信号也为0。因此换速的第一条件成立。
换速的第二部分逻辑条件主要是对于每层具体分析是否具有换速要求。比如第二层的换速条件是:“电梯正从楼上下到二楼m4.2=1,或电梯正从楼下上到二楼m3.2=1,并且电梯已经到达了二楼m0.2”。在这组条件中,对于2,3,4楼的设计都是正确的,然而对1楼和5楼的设计是不正确的。比如1楼的条件相当于“如果电梯从楼下上到一楼m3.1=1,或电梯从楼上下到一楼m4.1=1”,这里多出了一个不必要的条件“m3.1=1”,少掉了一个必要条件“电梯处在一楼m0.1=1”。
因此我们对程序做下述修改:
在m1.7的计算中分别去掉从下面上到一楼和从上面下到五楼的多余条件m3.1=1和m4.5=1。去掉这两个信号的梯形图。此外在m1.7的计算中为一楼和五楼分别加上新条件m0.1和m0.5。
仔细观察上图,还会发现在关于m1.7的梯形图中,条件“m0.6=0 并且 m0.7=0”均称红色,这条道也会导致m1.7=1。我们认为这一条件也是多余的,将其去掉。最后得到了一个新的梯形图,它在一楼按下按钮之后,产生了快速下楼的输出信号:q0.1=1,q0.2=1。下图中可见这两个信号均为红色。
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=130787&Name=lingcore
最近考察了一批教科书中的plc程序,发现大约有70%-80%的示例程序有大大小小的错误。有错的程序不一定是坏事,通过研究和分析程序错误可以更深刻地理解程序。
下面是某教科书中的五层电梯控制程序。先介绍一下程序的控制要求和io点分配,后面是梯形图。然后我们分析程序的错误。
这个程序的特殊之处是有换速功能,电梯正常运行时是快速,当接近目标楼层时变为慢速。由于换速处理不当,该程序无法控制电梯正常启动。
概述:交流双速电梯在自动运行状态下换速和换向子程序
换向说明:电梯内或门厅按钮按下时,根据检测到的上行或下行指令给出相应信号,
控制电机动作。当多个信号到达时,执行方式为优先响应向上运行信号,
再响应另一方向信号。对未及时响应信号要保留。
换速说明:电梯正常状态下快速启动,当药到达需要停止的楼层时,给出换速信号
控制拖动电机转为慢速运行,以确保电梯平稳停止。
信号说明:
传感器楼层监测: 一层到五层 -- i0.0 i0.1 i0.2 i0.3 i0.4
电梯内楼层选择: 一层到五层 -- i0.5 i0.6 i0.7 i1.0 i1.1
门厅内下楼按钮: 二层到五层 -- i1.2 i1.3 i1.4 i1.5
门厅内上楼按钮: 一层到四层 -- i1.6 i1.7 i2.0 i2.1
电机正转: q0.0 -- 电梯向上
电机反转: q0.1 -- 电梯向下
快速: q0.2
慢速: q0.3
这个程序有多个错,一个比较严重的错误是:,当电梯停在二楼,一楼门厅有人按下上楼按钮,电梯却无法下降。
下面是程序梯形图及其开始时的状态,红色部分为得电。图中可见i0.1为红色。这表示二楼检测器获得信号,电梯目前在二楼。其他输入信号均为黑色,表示没有任何按钮输入。在第二页上,所有输出线圈均为黑色,表示没有输出,电梯处在停止状态。
[
上面我们显示了电梯程序在开始时的状况。假设在第二个扫描周期中,plc检测到
一楼门厅有人按下了请求上楼的按钮,此时,电梯应该从二楼下降到一楼。
下面是第二周期的状态显示图,从中可以看到i1.6为红色,表示1楼的上楼按钮按下。然而,在第二副图中,控制电梯下楼的输出信号q0.1和q0.2依然为黑色,表示它们的输出为0,电梯没有启动。
为什么电梯没有启动呢?仔细分析一下最后一张图,可以发现问题出在换速控制信号m1.7上面。图中换速信号为红色,表示m1.7=1。这一情况,阻断了快速运动信号m3.0,后者又阻断了电梯快速运动输出信号q0.2和电梯向下运动输出信号q0.1。
那么m1.7怎么会变成1呢?为了分析这个问题,我们首先来考察一下换速的设计意图。按照控制要求,当电梯运行接近目标层的时候,应该减慢速度然后停下。换速信号就是用来检测是否在运动中接近目标层。这个检测分成两部分,第一部分是检测电梯究竟是在层与层之间运动,还是到达了某一层,相应的信号是m1.6。当电梯在层间运动时m1.6=1,当电梯处在某层时,m1.6=0。然而,当电梯还没有启动时,这个信号也为0。因此换速的第一条件成立。
换速的第二部分逻辑条件主要是对于每层具体分析是否具有换速要求。比如第二层的换速条件是:“电梯正从楼上下到二楼m4.2=1,或电梯正从楼下上到二楼m3.2=1,并且电梯已经到达了二楼m0.2”。在这组条件中,对于2,3,4楼的设计都是正确的,然而对1楼和5楼的设计是不正确的。比如1楼的条件相当于“如果电梯从楼下上到一楼m3.1=1,或电梯从楼上下到一楼m4.1=1”,这里多出了一个不必要的条件“m3.1=1”,少掉了一个必要条件“电梯处在一楼m0.1=1”。
因此我们对程序做下述修改:
在m1.7的计算中分别去掉从下面上到一楼和从上面下到五楼的多余条件m3.1=1和m4.5=1。去掉这两个信号的梯形图。此外在m1.7的计算中为一楼和五楼分别加上新条件m0.1和m0.5。
仔细观察上图,还会发现在关于m1.7的梯形图中,条件“m0.6=0 并且 m0.7=0”均称红色,这条道也会导致m1.7=1。我们认为这一条件也是多余的,将其去掉。最后得到了一个新的梯形图,它在一楼按下按钮之后,产生了快速下楼的输出信号:q0.1=1,q0.2=1。下图中可见这两个信号均为红色。
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=130787&Name=lingcore