基于PLC表指令实现随机呼叫生产线的控制

时间:2022-06-24 05:52:41

基于PLC表指令实现随机呼叫生产线的控制

摘要:在成套生产线控制中,有许多控制任务均为呼叫控制,这类控制任务多属随机控制,其难点在于呼叫信号是实时无规律的出现。本文以工程项目为案例,详细介绍了如何使用西门子S7-200 PLC的表指令,设计随机呼叫控制软件的方法和步骤。

关键词:随机;表指令;表格式;先入先出

中图分类号:TP23文献标识码:A

1概述

在成套生产线控制中,有许多控制任务均为随机问题,例如,珠海南工业区数控教学模型机厂成套生产线的设计,就是典型的随机呼叫控制系统设计,该生产线控制要求如下:

1.系统上电时,料车处于起始位置接受工站的呼叫信号。

2.各个工站的呼叫信号随机出现,料车在诸多的随机呼叫信号中,能寻找出最先呼叫的工站,并自动移到该呼叫的工站停。当该工站装配完毕,发出完毕信号后,料车能自动判断在呼叫信号中次先呼叫的工站,并自动移动到次先呼叫的工站,如此类推,最后自动移动到最晚呼叫的工站。

3.每个工站操作台上安装呼叫按钮和工作完毕按钮,按下呼叫按钮,料车能记忆呼叫信号,并移动到本站停,按下工作完毕按钮,料车将自动移向记忆的下一工站。

由于随机呼叫控制的难点在于呼叫信号是实时无规律的出现。采用PLC控制时,其难点在于软件的设计,要将无规律的呼叫信号,通过软件处理成有规律的呼叫信号,才能准确无误的实现对随机呼叫生产过程的控制。作者使用西门子S7-200 PLC的表指令,成功完成了该生产线的随机呼叫控制设计。

2表格指令

西门子S7-200 PLC表格操作指令主要有三条:填表(ATT)指令、先入先出(FIFO)指令、后入先出(LIFO)指令,见LAD指令图1、图2、图3、所示。

2.1填表指令

见图1,向表格(TBL)中加入字值(DATA)。

EN端:置数脉冲(上沿脉冲);DATA端:要填入的数据所在的字号;TBL端:表格的第1个字地址;ENO端:错误条件设置。

2.1.1表格的格式

2.1.2填表指令使用要点

2.1.2.1填入表中的数据排列顺序:1234 4321

2.1.2.2数据填入的行号= 起步计数值+1

2.1.2.3对表格的第1个字地址赋表格数据行长度值, 对表格的第2个字地址赋起步计数值。

2.1.2.4源数据装入到源数据字中的方法:数据块中填写或使用第1次脉冲和MOV指令传送。

2.2先入先出指令

见图2,每次执行指令时,表格中的行计数减1。

EN端:使能(上沿脉冲); TBL端:表格中的首地址; DATA端:要移出的数据存放的内存位置(字型);ENO端:错误条件设置。

设置ENO = 0的错误条件;SM1.5 空表;如果从空表中移除,SM1.5被设为1。必须最先设定最大表行数,否则表格无效。所有的表格读取和表格写入指令必须用脉冲上沿指令。

2.3后入先出指令

见图3,将表格中的最新(或最后)一个数据移至输出内存地址。

EN端:使能(上沿脉冲); TBL端:表格中的首地址; DATA端:要移出的数据存放的内存位置(字型);ENO端:错误条件设置。

设置ENO = 0的错误条件;SM1.5 空表;如果从空表中移除,SM1.5被设为1。必须最先设定最大表行数,否则表格无效。所有的表格读取和表格写入指令必须用脉冲上沿指令。

3控制设计

3.1硬件设计方案

生产线由八段组成,八段连接成环形安装,每段六个工位。每段设计如下

每工位设置一个无触点开关,提供工位的位置信号。每工位设置工位按钮盒,布置呼叫和工作完毕按钮共两个,指示灯若干个。

使用1台CPU226作为主站,7台CPU224作从站,通过Wincc组态,连成网络如下图所示。

3.2随机呼叫软件设计

清零程序:

因起步计数值为零,故从起步计数开始包括3行数据行再多几行一起清零,并对FIFO指令的取出数据存放字VW20清零。

LD SM0.1

FILL +0, VW12, 7//起步计数 VW12

MOVW +0, VW20//取出的数VW20

原位程序:

LD I0.6//原位开关

OSM0.1

OM2.0

=M2.0 //车在原位的信号

送工站号到源数据字中的程序:

LD M2.0

LPS

AI0.0//站1呼叫按钮

EU

MOVW +1, VW100

LRD

AI0.2 //站2呼叫按钮

EU

MOVW +2, VW100

LPP

AI0.4 //站3呼叫按钮

EU

MOVW +3, VW100 //工站的呼叫信号发出将工站号送入源数据字VW100中存放

填表程序:

LD I0.0//站1呼叫按钮

EU

LD I0.2//站2呼叫按钮

EU

OLD

LD I0.4//站3呼叫按钮

EU

OLD

ATTVW100, VW10//呼叫信号发出将源数据存放字中的工站号填进表中

工作完毕程序:

LD SM0.0

LPS

AI1.1//站1位置开关

AI0.1//站1完毕按钮

EU

=M3.3//站1完信号

LRD

AI1.2//站2位置开关

AI0.3 //站2完毕按钮

EU

=M3.4//站2完信号

LPP

AI1.3//站3位置开关

AI0.5//站3完毕按钮

EU

=M3.5//站3完信号

站1取数程序:站1呼叫第1次取数和站1完毕再次取数的程序:

LD I0.0//站1呼叫按钮

EU

OM1.3

AN M3.3//站1完信号

=M1.3//站1完取数

TONT37, +20//站1呼叫取数

站2取数程序: 站2呼叫第1次取数和站2完毕再次取数的程序:

LD I0.2//站2呼叫按钮

EU

OM1.4

AN M3.4//站2完信号

=M1.4 //站2完取数

TONT38, +20 //站2呼叫取数

站3取数程序: 站3呼叫第1次取数和站3完毕再次取数

LD I0.4 //站3呼叫按钮

EU

OM1.5//站3完取数

AN M3.5//站3完信号

=M1.5

TONT39, +20//站3呼叫取数

取数程序: 按钮呼叫时取1次数,工作完毕再取1次数。

LD T37//站1呼叫取数

OT38//站2呼叫取数

OT39//站3呼叫取数

EU

LD M1.3//站1完取数

ED

LD M1.4//站2完取数

ED

OLD

LD M1.5//站3完取数

ED

OLD

OLD

FIFO VW10, VW20//表首址VW10,取出的数VW20。

取出的数与工位号1比较,发出电机启动信号的程序:

LDW= VW20, +1//取出的数VW20

EU

M4.1

AN I1.1//站1位置开关

=M4.1 //站1起动电机

取出的数与工位号2比较,发出电机启动信号的程序:

LDW= VW20, +2 //取出的数VW20

EU

OM4.2

AN I1.2//站2位置开关

=M4.2//站2起动电机

取出的数与工位号3比较,发出电机启动信号的程序:

LDW= VW20, +3//取出的数VW20

EU

OM4.3

AN I1.3//站3位置开关

=M4.3//站3起动电机

电机正转控制程序:

LD M4.1//站1起动电机

OM4.2//站2起动电机

AN Q0.7//电机反转

=Q0.0//电机正转

电机反转控制程序:

LD M4.3//站3起动电机

OI1.5//手动调整2

AN Q0.0//电机正转

=Q0.7//电机反转

4结束语

对于随即呼叫生产线的控制,通常难点就在于信号无规律的出现,当使用可编程控制器控制时,用常规指令编程,不仅难度大、程序长,而且调试时间长。西门子S7-200 PLC提供的填表指令,实质就是对堆栈进行的操作,数据可进行先入后出或后入先出的操作。在随即呼叫生产线的控制中,使用该指令将无规律的呼叫信号,整理成有记忆有规律的信号,经生产线投入使用以来,证明运行完全可靠,准确的实施了预期的控制任务,满足了生产要求。

上一篇:Excel在无纸化作业中的应用 下一篇:浅析嵌入式实时操作系统