#Q0.2(21)断开,使Q0.1(21)不能得电,小车不能左行,互锁。
小车右行到达位置4,SQ4闭合,I2.3得电,I2.3(6)闭合,执行MOVB指令,将“4”送VB100,停车工位号寄存器为“4”。
由于VB100(4)=VB110(4),VB100(3)小于VB110(4)不成立,因此Q0.2(22)失电,KM1失电,电动机停转。
T37(23)得电,开始30S延时,延时时间到,#T37(20)断开,M10.1(20)失电,#M10.1(11)复位闭合,Q0.0(11)得电,指示灯亮,指示可进行呼车。
】
左行工作过程:
设送料小车现暂停于4号工作台,SQ4闭合,I2.3得电,I2.3(6)闭合,执行MOVB指令(6),将“4”送入VB100,停车工位号寄存器为“4”。
由于#M10.1(11)闭合,Q0.0(11)得电,指示灯亮,指示可进行呼车。
这时2号工作台呼叫,SB2闭合,I0.1得电。
【I0.1得电,I0.1(13)闭合,执行MOVB指令,将“2”送入VB110,呼车工位号寄存器为“2”。
I0.1(20)闭合,MI0.1(20)得电,有工位呼车,#M10.1(11)断开,Q0.0(11)失电,指示灯灭,指示灯已有工位呼车,其他工位不可进行呼车。
执行比较指令(21)到(23),将VB100与VB110相比较,由于VB100(4)大于VB110
(2),因此Q0.1(21)得电,KM2得电吸合,电动机正转,小车由位置4开始左行。
#Q0.1(22)断开,使Q0.2(22)不能得电,小车不能右行,互锁。
小车左行经过位置3,SQ3闭合,I2.2得电,I2.2(5)闭合,执行MOVB指令,将“3”送入VB100,停车工位号寄存器为“3”,由于VB100(3)大于VB110
(2),因此Q0.0(21)得电,KM2得电吸合,电动机正转,小车由位置3继续左行。
#Q0.1(22)断开,使Q0.2(22)不能得电,小车不能右行,互锁,小车左行到达位置2,SQ2闭合,I2.1得电,I2.1(4)闭合。
执行MOVB指令,将“2”送入VB100,停车工位号寄存器为“2”。
由于VB100
(2)=VB110
(2),VB100(3)>VB110
(2)不成立,因此Q0.1(21)失电,KM2失电,电动机停转。
T37(23)得电,开始30S延时,延时时间到,#T37断开。
M10.1(20)失电,#M10.1(11)复位闭合,Q0.0(11)得电指示灯亮,指示可进行呼车。
原位不动:
若小车停在3位,而3号工作台呼叫,则小车原位不动。
由于小车停在3位SQ3受压,I2.2得电,I2.2(5)闭合,执行MOVB指令(5),将“3”送入VB100,停车工位号寄存器为“3”。
由于VB100(3)=VB110(3),因此执行比较指令(21)到(23)时,Q0.1和Q0.2不能得电。
KM1,KM2不能得电,电动机停转,小车原位不动。
【T37(23)得电,开始30S延时,延时时间到,#T37(20)断开,M10.1(20)失电,#M10.1(11)复位闭合,Q0.0(11)得电,指示灯亮,指示可进行呼车。
】
4、软件设计
本次课程设计用到PLC软件编程是西门子S7-200和组态王6.53。
4.1、PLC软件梯形图
本课题的控制程序通过梯形图实现,而PLC本身又有多种程序设计语言,如指令语句表语言、功能表语言等。
其中梯形图语言沿袭传统的电气符号控制图,但是简化了符号,编程容易且直观。
小车启动,停止控制,I1.0启动,I1.1停止。
子程序0运行。
在某工位停车时,送停车工位号至VB100将停车工位号1送VB100。
将停车工位号2送VB100。
将停车工位号3送VB100。
将停车工位号4送VB100。
将停车工位号5送VB100。
将停车工位号6送VB100。
将停车工位号7送VB100。
将停车工位号8送VB100。
可呼车指示。
某工位呼车时,送呼车工位号至VB110,将呼车工位号1送VB110。
将呼车工位号2送VB110。
将呼车工位号3送VB110。
将呼车工位号4送VB110。
将呼车工位号5送VB110。
将呼车工位号6送VB110。
将呼车工位号7送VB110。
将呼车工位号8送VB110。
停车工位号大于呼车工位号,电动机正转。
停车工位号小于呼车工位号,电动机反转。
停车后计时30S,方可再次呼车。
4.2、组态王画面的设计
为了与台车呼叫控制系统实验模板相一致,首先设计了八个可呼车指示灯和八个呼车按钮。
设计八个工作台,一个台车和运行通道,这样可以形象的表示台车呼叫控制系统的监控画面。
如图所示:
图4组态王台车呼叫控制画面
4.3、设计数据变量
表2数据词典变量表
变量名
变量类型
寄存器
SB1
I/O离散
I0.0
SB2
I/O离散
I0.1
SB3
I/O离散
I0.2
SB4
I/O离散
I0.3
SB5
I/O离散
I0.4
SB6
I/O离散
I0.5
SB7
I/O离散
I0.6
SB8
I/O离散
I0.7
SQ1
I/O离散
I2.0
SQ2
I/O离散
I2.1
SQ3
I/O离散
I2.2
SQ4
I/O离散
I2.3
SQ5
I/O离散
I2.4
SQ6
I/O离散
I2.5
SQ7
I/O离散
I2.6
SQ8
I/O离散
I2.7
启动
I/O离散
I1.0
停止
I/O离散
I1.1
呼车灯
I/O离散
Q0.0
车正转
I/O离散
Q0.1
车反转
I/O离散
Q0.2
以上就是与组态画面相关联的数据变量。
实现组态方法如下:
首先,为工程创建一个目录用来存放与工程相关的文件。
添加工程中需要的硬件设备和工程中使用的变量,包括内存变量和I/O变量。
按照实际工程的要求绘制监控画面并使静态画面随着过程控制对象产生动态效果。
通过脚本语言的编写以完成较复杂的操作上位控制。
对运行系统、报警、历史数据查询、网络、用户等进行设置,是系统完成用于现场前的必备工作。
完成以上步骤后,一个可以拿到现场运行的工程就制作完成了。
本课题的脚本程序是:
八个呼车按钮分别是\\本站点\呼车开关1==1,\\本站点\呼车开关2==1,\\本站点\呼车开关3==1,\\本站点\呼车开关4==1,\\本站点\呼车开关5==1,\\本站点\呼车开关6==1,\\本站点\呼车开关7==1,\\本站点\呼车开关8==1,用来表示当某个工位有人呼车时本工位的限位开关显示出来。
如图所示:
图5组态王台车呼叫控制按钮脚本画面
呼车灯是\\本站点\呼车灯,如图所示:
图6组态王台车呼叫控制呼车开关脚本画面
限位开关是\\本站点\呼车开关,如图所示:
图7组态王台车呼叫控制限位开关脚本画面
台车的控制是\\本站点\车
图8组态王台车呼叫控制台车脚本画面
4.4、组态王监控演示
图9组态王启动时监测画面
PLC上电后可呼车指示灯亮,表示各工位可以呼车。
图10组态王小车右行监测画面
某工作人员按本工位呼车按钮时,各工位指示灯均灭,呼车工位号大于停车工位号自动向高位行驶。
图11组态王小车左行监测画面
某工作人员按本工位呼车按钮时,可呼车指示灯灭,呼车工位号大小于停车工位号自动向低位行驶。
图12组态王小车行行至呼车位时监测画面
当台车运动到呼车位置时,小车停止运行,可呼车指示灯和电机运动灯均灭。
图1组态王小车行行至呼车位30秒后监测画面
当台车到达呼车工位供工人使用30秒后,可呼车指示灯打开,个工位可以呼车。
5、程序调试
在整个程序的调试过程中,我遇到了一些问题,比如刚开始时,由于试验室PLC没有台车呼叫控制系统的试验模板,我用了基本输入输出模板导致了我所做的台车控制输入和输出不够的问题,后来经过老师的指导又加入了一个基本输入输出模板才解决了这个问题。
有时接线完毕后,系统却达不到预期的效果。
我分析原因,大致有几种,一是接的线很有可能接触不良,导致显示灯无法发亮。
二是疏忽大意没有用线接PLC的输入输出串口。
而程序无法下载则可能是因为程序本身有错而无法编译,还有就是PLC的分配地址不对导致下载失败。
PLC在与组态王相连接的过程中也要注意地址的匹配,不然也将是无法通讯的。
了解了这些以后,做实验就相对轻松不少。
在PLC编程上进入了误区,后来研究程序,用了经典编程方法,才完成了程序方面的问题。
在组态王监控上,由于PLC没有台车呼叫控制系统的模板,所以组态王监控的小车运行部分始终实现不了,也是我本次课设所遇到的最大难题,最后经老师和同学的指导和帮助才得以实现。
6、结论
通过这次PLC课程设计,让我更加深刻理解了课本的知识,并使我熟悉和掌握了PLC基本指令的使用,掌握了PLC的I/O分配、程序调试等。
最终完成了台车呼叫控制系统的模拟。
7、总结
本次5周的课设使我收益很多,我们先进行了PLC的一般性实验,完成了喷泉的模拟控制,自动配料系统的模拟控制等等。
实现结果的时候发现,指导书上给的程序,不是完全正确,需要我们自己去修改调试,在此过程当中,遇到一些梯形图编程问题,在老师的细心讲解下终于完成了实验要求的效果。
其后练习使用组态王软件,完成上位机监控画面的开发。
在使用的过程中,基本的操作方法可以掌握,但是遇到有一些动画连接、命令语言的时候还需要查阅相关资料。
最后就是独立完成相关课题,通过前几周的练习,我最终很好完成了课设任务。
8、课设体会
这次设计,提高了我的动手和动脑能力,更让我们体会到了理论与实践相结合的重要性,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。
使我在PLC的基本原理以及编程设计思路技巧的掌握方面都能向前迈了一大步,为日后的工作和学习都有很大的帮助,还使我了解到了学习的乐趣。
这次设计由于种种原因做的不够完美,有很多不足之处,所以在以后的工作和学习中,我会更加努力,严格要求,追求完美。
参考文献
[1]赵相宾.可编程控制器技术与应用系统设计.机械工业出版社,2002,7
[2]钟肇新.范建东.可编程控制器原理及应用.华南理工大学出版社,2003
[3]陈金华.可编程序控制器(PC)应用技术.北京电子工业出版社,1995
[4]陈在平.赵相宾.可编程序控制器技术与应用系统设计.北京机械出版社,2002
[5]廖常初主编.PLC编程及应用.北京机械工业出版社,2002
[6]何衍庆.可编程序控制器原理及应用技巧.北京化学工业出版社,2000
附录
控制台车左右运动的脚本程序:
if(\\本站点\呼车开关1==1&&\\本站点\车==0)
\\本站点\车=0;
if(\\本站点\呼车开关1&&\\本站点\车>0)
\\本站点\车=\\本站点\车-10;
if(\\本站点\呼车开关2==1&&\\本站点\车==120)
\\本站点\车=120;
if(\\本站点\呼车开关2==1&&\\本站点\车>120)
\\本站点\车=\\本站点\车-10;
if(\\本站点\呼车开关2==1&&\\本站点\车<120)
\\本站点\车=\\本站点\车+10;
if(\\本站点\呼车开关3==1&&\\本站点\车==240)
\\本站点\车=240;
if(\\本站点\呼车开关3==1&&\\本站点\车>240)
\\本站点\车=\\本站点\车-10;
if(\\本站点\呼车开关3==1&&\\本站点\车<240)
\\本站点\车=\\本站点\车+10;
if(\\本站点\呼车开关4==1&&\\本站点\车==360)
\\本站点\车=360;
if(\\本站点\呼车开关4==1&&\\本站点\车>360)
\\本站点\车=\\本站点\车-10;
if(\\本站点\呼车开关4==1&&\\本站点\车<360)
\\本站点\车=\\本站点\车+10;
if(\\本站点\呼车开关5==1&&\\本站点\车==480)
\\本站点\车=480;
if(\\本站点\呼车开关5==1&&\\本站点\车>480)
\\本站点\车=\\本站点\车-10;
if(\\本站点\呼车开关5==1&&\\本站点\车<480)
\\本站点\车=\\本站点\车+10;
if(\\本站点\呼车开关6==1&&\\本站点\车==600)
\\本站点\车=600;
if(\\本站点\呼车开关6==1&&\\本站点\车>600)
\\本站点\车=\\本站点\车-10;
if(\\本站点\呼车开关6==1&&\\本站点\车<600)
\\本站点\车=\\本站点\车+10;
if(\\本站点\呼车开关7==1&&\\本站点\车==720)
\\本站点\车=720;
if(\\本站点\呼车开关7==1&&\\本站点\车>720)
\\本站点\车=\\本站点\车-10;
if(\\本站点\呼车开关7==1&&\\本站点\车<720)
\\本站点\车=\\本站点\车+10;
if(\\本站点\呼车开关8==1&&\\本站点\车==820)
\\本站点\车=820;
if(\\本站点\呼车开关8==1&&\\本站点\车>820)
\\本站点\车=\\本站点\车-10;
if(\\本站点\呼车开关8==1&&\\本站点\车<820)
\\本站点\车=\\本站点\车+10;