APP下载

基于Arduino的自动供料单元控制系统的改进设计与实现

2019-09-10花勇

河南科技 2019年14期
关键词:自动化控制

花勇

摘 要:自动供料单元是自动生产线的初始单元。其包含传感器信号检测系统、机械本体、PLC单元、输入、输出端子以及执行机构等零件。但是,基于PLC控制设备的开发成本较高、中小型企业较难普及。本文采用Arduino开发板作为控制单元,采用启保停电路编程思路将SFC指令改编成适合Arduino运行的程序,有效降低了设备的开发成本,是用Arduino替代PLC实现自动化控制的一次有效尝试,具有一定的参考价值。

关键词:PLC;自动供料单元;Arduino;自动化控制

中图分类号:TP273 文献标识码:A 文章编号:1003-5168(2019)14-0012-04

An Improved Design and Implementation of Automatic

feed Unit Control System Based on Arduino

HUA Yong

(Jiangsu Food & Pharmaceutical Science College,Huaian Jiangsu 223003)

Abstract: Automatic feeding unit is the initial unit of automatic production line. It includes sensor signal detection system, mechanical body, PLC unit, input and output terminals, and actuator parts. However, the development cost of PLC-based control equipment is high, and it is difficult for small and medium-sized enterprises to popularize. In this paper, Arduino development board was used as control unit, SFC instructions were adapted to Arduino operation program by using start-stop circuit programming idea, which effectively reduced the development cost of equipment. It is an effective attempt to realize automatic control by replacing PLC with Arduino, which has a certain reference value.

Keywords: PLC;automatic feeding unit;Arduino;the automatic control

目前,自動化控制技术被广泛用于农业、化工、交通运输等领域。自动生产线指由下料、加工、装配、搬运、存储等单元组成,并按照产品生产工艺要求的顺序,自动完成全部或部分制造过程的生产系统。通常,自动生产线的各个单元由PLC根据工艺流程编写的合理程序自动完成加工工序。本文的研究对象是自动生产线的初始单元,即供料单元。其包含传感器信号检测系统、机械本体、PLC单元、输入和输出端子以及执行机构等零件。PLC控制虽然具有控制灵活、编程简单、可靠性高等优点,但开发基于PLC的自动生产线需要相当的研发力量和行业经验,这对小批量生产的产品来说,造价和开发成本太高,不利于产品的推广和验证。本文着重阐述利用传感器、电磁换向阀、Arduino元器件来设计自动生产线控制系统的控制电路,利用IDE软件来设计供料单元的控制程序,最终实现对供料单元的控制。

1 控制系统总体方案

1.1 控制系统组成

自动供料单元由铝合金型材、气路控制元件、传感器、按钮和Arduino Pro mini工控板等组件构成。气路控制元件主要由气动三联件、单向两位五通电磁阀组、两支双作用直线气缸提供动力控制。电气控制主要由光电传感器、磁性开关、金属传感器、Arduino Pro mini工控板等替代PLC实现对供料单元的自动控制。本文研究的重点是如何对Arduino Pro mini工控板编程,使其替代PLC,实现对供料单元的自动控制。

1.2 工作流程

第一步:初始步(M0),出料台没有工件,顶料气缸和推料气缸都缩回;第二步(M1),顶料气缸杆伸出,顶紧上一层的工件并保持该状态;第三步(M2),顶料气缸杆伸出,将底层工件推到物料台上;第四步(M3),完成推料后,推料气缸杆先缩回;第五步(M4),顶料气缸杆缩回,上层工件落入底层,料仓向下移动一个工件,为下一次推出工件做好准备。自动供料单元控制流程图如图1所示。

1.3 供料单元控制电路的设计方案

1.3.1 Arduino Pro mini开发板结构。自动供料控制单元主要包括基于Arduino Pro mini的单片机,其外接端子编程时可以定义成输入或输出。端子包括数字量和模拟量,并且每个外接端子都与MCU各端口互相隔离,支持在线编程。Arduino Pro mini开发板由带有螺钉端子的主电路PCB底板、Arduino单片机和标准的输入/输出扩展模块以及电源等组成,通过输入/输出扩展模块使Arduino与标准工业控制母线接轨(通常为24V电压标准),形成可用的工业控制器。

1.3.2 数字隔离电压输入、输出模块。Arduino外接信号通过数字隔离输入、输出模块传输。触点闭合时输入点有效,最大有4路隔离触点闭合输入。共阳极,Ve端需要外接正电源端供电,COM端不接任何电器。触点闭合时输出为低,Arduino单片机需要设置为输入上拉电阻状态。该模块用于少于4路输入时,不影响Arduino或MCU单片机其他IO口使用。数字隔离电压输入模块的结构如图2所示。

1.3.3 I/O地址分配。根据自动供料单元I/O信号分配和工作任务的要求,Arduino的I/O信号分配如表1所示。

2 系统控制程序设计

2.1 自动供料单元控制流程

顺序功能图(SFC)是专用于工业电气控制设计的一种重要方法,常用于PLC顺序控制系统中的程序设计。顺序功能图由活动步、有向线段、转移条件三部分组成,常见的编程方法有三类:起保停电路编程、以转换为中心编程和STL指令编程。其中,起保停电路编程通用性最好,也适用于改造成单片机语言。本文将利用Arduino Pro mini工控板编写SFC编程语句[1]。

2.2 基于Arduino语言的SFC编程

自动供料单元SFC编程属于单分支的顺序结构。当转换条件I0.0得电时,当前活动步M1通过转换条件进入M2,M1从活动步变成非活动步,M2将变成当前活动步;用M3的常闭触电作为互锁触点,同时并联一个M2触点自锁,状态M2变成活动步后,保证当前活动步只有一个M2,顶料气缸伸出保持,同时推料气缸伸出,将工件推出到物料台[2]。自动供料单元控制流图利用起保停进行PLC编程如图3所示。

将图3中工作步梯形图描述成Arduino语言结构步骤如下:

Start=1;

while(1)

{

输入扫描部分

工作步流程部分

输出部分

}

①进入有效工作步。启动Arduino IDE可以设置一个局部变量start,该变量在while (1)循环语句执行前为1,在循环语句结束前使该变量为0。这样该局部变量只在第一个while (1)循环中为1,因此可以作为进入有效工作步的条件[3]。

②输入扫描部分是启动按钮、行程开关、传感器等信号。本文输入扫描信号是来自单片机外部的光电传感器输入的信号I0.0,表示顶料气缸伸出到位。

③工作步流程部分。工作步流程部分是Arduino语言描述SFC编程的关键部分,其包括以下两个条件。一是工作步得电的条件。该步的上一个工作步是有效工作步,而该步的下一步没有工作,这时若出现转移条件,则该工作步就会得电变成有效工作步。二是工作步失电的条件。该步的下个工作步得电,则该工作步失电。一般情况下工作步都需要自锁。

假设自动供料单元的当前工作步为M1表示顶料气缸伸出到位后,推料气缸伸出。工作步的得电条件是上一步M1是活动工作步,若M2没有工作且出现转移条件I0_0得电,则M2变成有效工作步,M1失电,所以工作步M2都需要自锁;若出现转移条件I0_2得电,则M2失电,M3变成有效工作步,同时M2变成非活动步,所以程序要串联一个M3常闭出点互锁,保证当前活动状态只有一个。依据上述要求用if-else语句描述工作步得失电过程。

if(((M1&& I0_0)||M2) &&!M3) //顶料气缸伸出到位I0_2

M2=1;

else M2=0;

④工作步的输出。输出部分就是描述对应各个工作步的输出动作。从图3可以看出,当控制流程进入工作步M1时顶料气缸已经伸出,在满足条件顶料气缸伸出到位后工作步M2变成活动状态,此时顶料气缸和推料气缸同时伸出,采用if语句描述工作步输出的Arduino程序[4]。

if(M2)

{

digitalWrite(Q0_0,HIGH);  //顶料气缸伸出

if(I0_0)                 //顶料气缸伸出到位

digitalWrite(Q0_1,HIGH);  //推料气缸伸出

}

其中,高电平表示气缸线圈得电,低电平表示气缸线圈失电。

2.3 实验研究

将Arduino Pro mini控制板用螺钉固定在亚克力板底面,电磁阀和气动三连件固定在亚克力底板上,进行调压通气。将光电传感器和磁性开关接入Arduino工控板输入端。下载Arduino程序并通电测试,Arduino Pro mini控制板能顺利读取传感器信号,且能实现供料单元顶料推料的动作,达到预定的目标,安装调试如图4所示。

3 结语

本文按照供料单元的工作顺序与驱动要求,完成供料单元硬件设计与组装调试。此外,通过对SFC顺序控制指令的分析研究,利用Arduino IDE编写基于C语言的SFC指令,实现对供料单元控制系统的模拟仿真,最终实现基于Arduino自动供料单元控制系统的改进设计。在本项目实施过程中,由于能力及条件限制,还存在一些不

足的地方。例如:考虑到Arduino开发板的成本与体积,目前使用的Arduino Pro mini开发板最多有22个IO端口与工业检测控制设备连接,对于自动生产线中IO接口较少的单元基本可以满足要求;但是,當控制单元IO端口需求较多时,需要将开发板的控制核心升级到Arduino Mega2560(54路数字输入输出)。另外,由于研究时间短,像设备供料数量的计数、无线蓝牙控制和基于Android的手机APP程序的开发等还没有完成,可在后续的学习中继续完善,使设备控制更加方便可行。

总的来说,本文的研究有助于把Arduino引入自动生产线的改进设计中,节约了设计成本,具有一定的实用价值和现实意义。

参考文献:

[1]张毅.基于自动生产线的仿真教学系统设计与研究[D].南京:南京理工大学,2014.

[2]王丽.基于自动生产线控制系统的研究与应用[D].合肥:合肥工业大学,2010.

[3]夏路易.单片机技术基础教程与实践[M].北京:电子工业出版社,2008.

[4]卫东,金烨,范秀敏,等.自动生产线中搬运机械手动态调度策略的实现[J].制造技术与机床,2000(5):17-18.

猜你喜欢

自动化控制
浅析自动化控制技术及故障
探析智能化技术在电气工程自动化控制中的应用