1 引言
基于伺服电机直接驱动的折弯机数控技术是九十年代发展起来的高新技术,属于先进制造技术前沿。它的研究和开发工作对于提高国产设备综合性能指标和打破国外在这一技术上的垄断位置有重要意义。随着PLC和触摸屏技术的发展,在折弯机中的应用都得到了很快的发展,为折弯机控制系统提供了新思路、新方法,也为生产效率的提高、为人类上产和生活水平的提高有着重要意义。PLC和触摸屏均采用开放性的编程方式,为折弯机的灵活性和创新性的控制方法提供了基础。
2液压板料折弯机介绍
2.1液压板料折弯机设备结构
液压板料折弯机设备外形见图1,其结构主要由机架、脚踏开关、折弯角度定位机构、水平挡料定位机构、下压折弯机构和电气控制系统等组成。
折弯角度定位机构由伺服电机和链条传动机构组成,可根据设定的折弯角度微调或自动进行高度调整,保证了高度定位的精度。水平挡料机构由伺服电机和丝杠传动机构组成,进行折弯工件的宽度定位,可微调定位也可自动定位,连续折弯中可进行多工步自动选择,依次实现对多个位置的定位折弯。下压折弯有液压机构执行,配合脚踏开关可进行点动、单次和连续三种工况。
2.2液压板料折弯机工作过程
折弯机工作过程可分为点动、单次和连续三种工作方式。
点动:选择点动操作档位,踩下脚踏慢进,下压折弯机构自动下压,碰下行程开关停止下压;下压过程松脚踏慢进,停在当前运行位置;下压过程踩下脚踏回程,下压折弯机构自动回程,碰上行程停止回程;回程过程松开脚踏回程,停在当前回程位置。
单次:设定保压时间,卸压时间,水平挡料进、退距离,调整好水平挡料位置;选择单次操作档位,下压折弯机构不在上行程开关位,自动回上行程开关位;踩下脚踏慢进,下压折弯机构自动下压;碰下行程开关时,水平挡料机构后退设定距离,自动进行保压;保压时间到自动进行卸压,卸压时间到下压折弯机构自动回程,水平挡料机构自动前进设定距离;碰上行程开关,单次折弯动作结束。
连续(工步):
(1)设定保压时间,卸压时间,水平挡料进退距离,调整好水平挡料位置;
(2)设定工步数以及每个工步的挡料位置、折弯张数;
(3)选择连续操作档位,下压折弯机构不在上行程开关位自动回上行程开关位;踩下脚踏慢进,下压折弯机构自动下压;碰下行程开关时,水平挡料机构后退设定距离,自动进行保压;保压时间到自动进行卸压,卸压时间到下压折弯机构自动回程,水平挡料机构自动前进设定距离;碰上行程开关,一次折弯动作结束,进行下一次折弯。
(4)当前工步折弯次数完成,碰上行程开关,水平挡料位置自动进行调整,进入下一工步折弯动作。
(5)所有工步动作完成,碰上行程开关,连续折弯动作结束。
图3 工步工作流程图
3监控系统设计
液压板料折弯机控制系统由控制部分、驱动部分和监控部分组成。系统结构如图4所示。
3.1PLC介绍
3.1.1PLC工作原理
PLC工作方式又扫描方式和中断方式,所谓扫描方式是周而复始的执行一系列任务。任务循环执行一次称为一个扫描周期,其扫描的工作过程如下:
(1)读输入:将物理输入点上的状态复制到输入过程映像寄存器中。
(2)执行逻辑控制程序:执行程序指令并将数据存储在变量存储区中。
(3)处理通讯请求:即执行通讯任务。
(4)执行CPU自诊断:检测固件、程序存储器和扩展模块是否工作正常。
(5)写输出:在输出过程映像寄存器中存储的数据被复制到物理输出点。
中断方式是指当中断事件发生时则立即执行一次相应的中断服务程序,不受扫描周期的影响,响应速度快,从而提高了PLC控制的可靠性。中断事件不发生时,不扫描中断服务程序,这样可以节约扫描时间,减少扫描周期。
3.1.2PLC特点
(1)PLC逻辑判断和控制能力强,抗干扰能力强,可靠性好。PLC从硬件上采用隔离、滤波措施有效地抑制和消除了干扰。
(2)扩展性和柔性好,且可移植性好,在不改变硬件的情况下,只改变软件的程序就可以实现不同的功能。
(3)编程语言丰富,可以采用不同语言编写程序,®LM系列PLC支持6种编程语言,包括:梯形图(LD)、指令表(IL)、结构化文本(ST)、功能块图(FBD)、顺序功能图(SFC)和连续功能图(SFC)。给编写程序带来很大方便。
3.2监控系统方案
监控系统要实现功能主要是:(1)控制参数的设置;(2) 状态和数据显示;(3)液压板料折弯机控制。本系统采用主、从站方式,通过MODBUS标准协议实现该监控系统的通讯功能,其中主站选用和利时触摸屏。考虑到控制系统的安全性和抗干扰性要求,结合PLC的特点,该系统控制部分采用PLC控制。从站选用LM系列PLC。其结构图如图4所示。
图4 控制系统结构图
3.3控制系统硬件
3.3.1PLC选型
本系统采用LM系列专用高速运动控制模块LM3106A控制。LM3106A是专为实现高速运动控制而设计的模块,主要用于实现步进或伺服电机的定位控制。
LM3106A本体集成14通道24VDC输入, 10通道晶体管输出,其输出有2个公共端,输出通道采用5-24VDC驱动电源供电,具有两路高速输出,可做PWM(100KHz)或PTO(50KHz)使用,还可以通过RS-232通讯口与和利时触摸屏进行通讯。
表1为控制系统的I/O配置。
表1 系统I/O分配表
信号类型 | 设备名称 | PLC地址 | 信号类型 | 设备名称 | PLC地址 |
开关量输入信号(DI) | 上行程开关 | %IX0.4 |
开关量输出信号(DO) | 快进 | %QX0.0 |
连续选择按钮 | %IX0.5 | 慢进 | %QX0.1 | ||
点动选择按钮 | %IX0.6 | 回程 | %QX0.2 | ||
下行程开关 | %IX0.7 | 角度步进脉冲 | %QX0.3 | ||
单次选择按钮 | %IX1.0 | 角度步进方向 | %QX0.4 | ||
慢进脚踏 | %IX1.1 | 挡料步进方向 | %QX1.0 | ||
回程脚踏 | %IX1.2 | 挡料步进脉冲 | %QX1.1 | ||
启动 | %IX1.3 | ||||
停止 | %IX1.4 |
3.3.2驱动电机选型
液压板料折弯机驱动部件主要包括挡料伺服电机、角度伺服电机和竖直液压气动装置。
伺服电机及驱动器均采用和利时公司的产品,其中“蜂鸟(Hummer)”系列低压无刷伺服电机驱动器是北京和利时电机公司新推出的适合低压直流供电的、小体积、高性能全数字伺服驱动器。硬件上采用32位高速RISC专用控制芯片,高效功率变换技术,以及创新编码器反馈技术;软件上采用先进的电机控制策略,完全以软件方式实现了电流环、速度环、位置环的闭环伺服控制;驱动器嵌入了运动控制功能,通过通讯接口即可完成如多段点到点、直线插补、圆弧插补等功能。挡料和折弯角度分别采用伺服电机进行定位,达到了jingque定位和角度调整,保证了设备控制要求及运行效果。
往复下压折弯动作由油泵和气动装置完成,通过PLC控制电磁阀的得、失电进行。
3.3.3监控部分
上位监控部份由一台和利时触摸屏,配以监控软件来完成,触摸屏上可以进行动作操作,运行参数设定,工作状态选择以及显示PLC的输入输出点工作状态。图5和图6为触摸屏部分监控画面。
4液压板料折弯机特点
液压板料折弯机适用于大型钢结构件,铁塔、路灯杆、高灯杆、汽车大梁、汽车车货箱等相关行业。基于和利时公司PLC和伺服自动控制系统的液压板料折弯机有以下特点:
(1) 采用电液伺服全闭环控制系统,折弯精度、重复定位精度达到很高的水准。
(2) 直接进行角度编程,具有角度补偿功能。
(3)每步程序可设定板料折弯位置(后档料X,相当于伺服的位置)、凸模具下压位置(Y值,相当于凸模具下降的距离)、折弯次数、保压时间4个参数。
(4)具有多工步编程功能,可实现多自动运行,每一步执行完后,触摸屏都要自动把下一步参数输入PLC和伺服,实现多工步零件一次性加工,提高生产效率。
该系统已投入生产使用,运行稳定可靠,控制精度高,维护使用方便,受到用户青睐。
5 结语
设备采用性价比极高的和利时PLC提供了整体解决方案,替代了原来的单片机控制系统,避免了干扰和不稳定因素的影响,保证设备运行达到好的控制效果。设备对角度调整和挡料定位精度要求较高,采用伺服电机进行角度调整和挡料自动定位控制,走位准确,能够满足复杂工艺的要求。
近年来,“嵌入式”一词越来越多的被人们提及,嵌入式产品被应用到各行各业。与嵌入式相关的技术如嵌入式产品,嵌入式系统的研究等也被列为“十五”家发展的重点方向。
嵌入式系统 (bbbbbdedSystem)被定义为:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
随着工业自动化的发展,基于PLC,单片机等设备的自动化系统,自动化设备越来越普及,几乎遍布所有自动化领域,与之相应的人机交互系统也应运而生,并得到同步发展。基于嵌入式技术的工业人机界面是人机交互系统中一颗耀眼的明星。高可靠,寿命,体积小,高性能,多线程,多任务,强实时等特点使嵌入式工业人机界面越来越受到自动化系统集成商,自动化设备制造商的青睐。它能够理想,生动地显示PLC,单片机等工业设备上的数据信息,功能强大,使用方便。它作为PLC等控制设备的上端设备在用户和机器之间架设了一条桥梁。该产品目前广泛应用在工业自动化系统,医疗,金融等行业的自动化设备。
随着越来越多的工程项目采用了嵌入式人机界面,相应的,用户对与嵌入式硬件配套使用的监控系统(SupervisoryControl and DataAcquisition,SCADA)等应用软件的需求也在增加。这也正是本文所要讨论的问题。这里讲的嵌入式监控系统,其硬件为嵌入式智能人机界面;其软件为嵌入式操作系统,另加自己开发的应用程序。本文后面主要介绍这个监控应用程序,重点介绍应用程序中通讯部分的实现原理。
当今,已发展有多种嵌入式操作系统,如Linux,VxWorks,WinCE.net等,完全可在其上开发出图文并茂、界面友好的应用,以满足监控系统的种种要求。只是由于嵌入式技术相对是一门新兴的技术,涉足的人相对还比较少,这样的应用目前还比较少。本文介绍的嵌入式监控系统算是一个实例吧。
2、系统组成
我们所开发的这套嵌入式监控系统,上位机是沈阳鹭岛资讯科技有限公司开发的嵌入式智能工业控制人机界面(以下简称人机界面)。其嵌入式工业控制器是以GeodeX86为核心处理器,包括网络通讯,数据通信,大尺寸触摸屏及液晶显示的硬件平台,在其上运行WinCE操作系统。提供20个通用IO点供用户使用,物理层支持ProfiBus等现场总线,支持16位真彩TFT LCD显示,有64MSDRAM内存,64M FLASH闪存,据有USB接口,10/100MEthernet网络通讯接口,以及串口,并口,VGA口等通用接口。
下位机用日本OMRON公司的PLC,或SIMENSPLC,或施耐德NEZA PLC,或日本三菱公司的PLC,等等当前比较流行的PLC,当然温控表,单片机,智能模块等工业现场控制设备也可以。
控制对象(比如锅炉等)的工作由上述控制设备(各种PLC等)控制;而控制对象的状态则用人机界面及在其上开发的应用程序进行监控。
人机界面的操作系统采用了微软的WinCE.net。WinCE.net是为各种嵌入式系统和产品设计的一种紧凑,高效,可伸缩的操作系统(OS),主要面向各种嵌入式系统和产品。其多线程、多任务、完全抢占式的特点是专门针对资源有限而设计的。OEM开发商可根据自己硬件组成的特点对WinCE.net进行选择裁剪,从而配置出稳定高效并且是特有的WinCE.net操作系统和相应的SDK开发包。在应用上,WinCE.net支持超过1000个公共MicrosoftWin32API和几种附加的编程接口,用户可利用它们来开发应用程序。微软为开发WinCE.net应用程序的人员提供了与VisualC++类似、支持MFC的Microsoft bbbbbded VisualC++语言。下面我们将介绍一下开发过程的细节问题。
3、软件流程
应用程序开发是在个人计算机上进行的。个人计算机的操作系统为bbbbbbS2000。应用程序的开发平台是Microsoft bbbbbded Visual C++集成开发环境。
在应用程序开发时,还可以利用微软提供的测试模拟器(Emulator)。有了它可做到,没有人机界面,也可进行程序调试。
开发终生成的可执行文件,可使用Microsoftbbbbbded Visual c++开发环境提供的下载功能,通过串口或局域网,下载给人机界面。
工作时,PLC等工控设备运行它的控制程序,而人机界面则运行这个下载的可执行文件。两者通过串口进行通讯,但通讯的主动方为人机界面。人机界面依监控要求,向PLC等发送通讯命令,PLC则作相应的应答。
人机界面从PLC上收到应答的数据后,在触摸屏上,以图表、动画,文字等的界面显现出来,供用户观察。还可把这些数据进行存贮、打印,甚至于向ERP等管理信息系统传送。
如须对PLC或控制对象进行干预,也可在人机界面的触摸屏上,通过触摸键或触摸鼠标,向PLC发送命令或数据,以实现相应的控制。
这个应用的执行流程框图为:
图1 执行流程框图
4、画面构成
一般的工程监控画面有:文字显示,生产工艺流程显示(包括动画,柱状图显示等),报警,人员操作,趋势曲线等等。我们的系统架构是做一个基于主对话框的程序。再将这些不同的画面用子对话框表现出来。
主对话框负责初始化串口,打开串口,启动读串口线程等;而各子对话框则定时或根据需要向串口发送各种命令,通过主对话框的线程读回命令的应答,再在子对话框中以一定的形式提供给用户,以供监控现场作业。这其中主要的技术就是串口通讯。下面我们重点讲述通讯的实现。
5、通讯实现
人机界面提供的串口是符合通用标准的。WinCE.net下的串口通讯与bbbbbbs下的串口通讯原理相同。都是应用程序不直接控制硬件,而是通过操作系统提供的设备驱动程序,来进行数据传递。
WinCE.net 是Win32编程。串口在Win 32中是作为文件来进行处理的,不是直接对端口进行操作。对于串行通信,Win 32提供了相应的文件I/O函数与通信函数。
也要注意WinCE.net所能支持的API函数只是bbbbbbAPI函数的子集。bbbbbbs有的,WinCE.net下不一定能使用。WinCE.net字符集类似于bbbbbbsNT而不同于bbbbbbs9x,它是基于Unicode的。这也是开发程序过程中从bbbbbbS转到WinCE.net的程序员遇到问题多的地方。在bbbbbbs下常用的一些通讯控件如MSComm等在WinCE.net下就不能正确使用了。
本监控系统采用API函数实现串口通讯。以下分几个问题介绍串口通讯及整个系统的实现。
5.1打开串口
是打开串口,这是串口通讯的步。其代码为:
BOOLCMainDlg::OnInitDialog()
{
......
m_hComm=CreateFile(_T("COM1:"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);//打开串口的操作,需要注意
WinCE.net系统与bbbbbbs系统表达方式的细微不同,WinCE.net需要在串口后加上冒号;
SetupComm(m_hComm,1024,1024);//初始化串口的输入,输出缓冲区参数;
SetCommState(m_hComm,&m_dcb); //配置串口参数;m_dcb为设置好的参数结构;
......
SetCommTimeouts(m_hComm,&timeout);//设置通讯超时时间参数;
PurgeComm(m_hComm,PURGE_TXbbbbb|PURGE_RXbbbbb);
//清空输入,输出缓冲区的字符,为开始接受数据,进入监控状态做好准备;
......
}
5.2读串口线程
是启动读串口线程,它让读串口程序不停地在后台运行,而不影响前台程序的工作。与此有关的代码为:
BOOLCMainDlg::OnInitDialog()
{
......
ReadFile(m_hComm,inBuffer+iBufLen,INBUFFERLEN-iBufLen,&dwBytes,NULL);//从串口读数据;
iBufLen+=dwBytes;
for(inti=0;i{
if(inBuffer[i]=="\r")//以连接的设备为OMRON PLC为例,其通讯协议规定应答应当以"\r"结尾;
inBuffer[i]=0;//字符串结束标志;
switch(m_iDlgType) //m_iDlgType为代表不同对话框的标志变量;
{
case子对话框1标志:
子对话框1.ProcData(inBuffer,i);//不同对话框中对命令应答的处理,ProcData为处理函数名;
break;
......
}
......
}
5.3各子对话框发送写命令
各个子对话框根据需要,采用定时器的形式,定时向PLC发送命令。以OMRONPLC为例,在发送命令时,根据OMRON PLC的通讯协议,还需对发送的命令字符串加校验码。这些程序代码为:
void子对话框1类::OnTimer(UINT nIDEvent)
{
......
strcpy(m_szCmd,"@00RR00000001");//OMRON PLC的命令字符串;
GenXor(m_szCmd,result);//进行校验码计算,调用 GenXor 函数;
sprintf(szTailer,"%02X*\r",result);//OMRON PLC通讯协议以“*\r”结尾;
strcat(m_szCmd,szTailer);//形成完整的通讯协议命令字符串;
WriteFile(m_hComm, m_szCmd,strlen(m_szCmd),&dwWriten,NULL);
//将命令字符串写入串口;
......
}
以下为上面所调用的计算校验码的代码:
voidGenXor(LPCSTR strSource,char& result)//为计算校验码的函数,进行异或运算:
{
result=0;//为校验码赋初值;
intlen=strlen(strSource); //命令协议字符串的长度;
for(inti=0;iresult^=strSource[i]; //按位进行异或;
}
5.4显示界面处理
后,读线程读到的数据,交由对应的子对话框进行处理。要对这些数据进行分析,并以动画,柱状图,趋势曲线等表现出来。以所连接的为OMRONPLC为例,其代码为:
void子对话框1类::ProcData(char*buffer, int len)
{
......sscanf(buffer+7,"%04X",&wData);//根据OMRON PLC的命令规约,从应答中将需要的数据取出到变量wData中;
.......//对获得的变量值根据需要进行处理,如以文字或动画等形式在子对话框中进行显示;
}
在进行界面处理时,有一些技巧,如动画显示时,可以用一个定时器控制图片的轮番显示。(在本系统中动画是通过CbitmapButton这个控件进行显示的。)
switch(m_iImage)// m_iImage为定义的动画显示标志;
{
case 1://显示幅图片,将动画显示标志置为2;
CBitmapButton控件变量.LoadBitmaps(图片标志1);
m_iImage=2;
break;
case 2://显示第二幅图片,将动画显示标志置为1;
CBitmapButton控件变量.LoadBitmaps(图片标志2);
m_iImage=1;
break;
}
在显示实时曲线时,采用循环数组的方式,在内存中开辟一定大小的空间,使读上来的数形成一个循环数组,在界面上动态的显示出来。
本系统中以20个模拟量为一个数组大小,也就是实时趋势曲线一直显示20个点的信息,但因为使用了循环数组的技术,看上去很有动感。
void子对话框类::循环数组函数(int iValue) // iValue为从命令应答中解析出来的有效数据;
{
intindex=(m_iBegin+m_iCount)%20; //计算循环数组的下标,初始从0开始;
m_aryValue=iValue;//为循环数组赋值;
m_iCount++;//循环数组的个数加1;
if(m_iCount>20)//判断个数是否超过20个,如是,将下一个数组下标从1开始,依此类推;
{
m_iCount=20;
m_iBegin=(m_iBegin+1)%20;
}
......
}
通讯是本系统的关键。我们的实践证明,以上四步是实现整个监控系统基本之要点。
6、结论
本监控系统软件的基本架构可以以下面这幅图直观的表示出来:
图2 监控系统软件的基本架构
随着嵌入式操作系统的兴起,各组态软件的开发商也纷纷开发出了嵌入式版的组态软件。但在实际应用中我们发现有许多企业,他们的生产控制流程比较固定,需要的人机界面的数量又比较大,对他们来说,按这里介绍的方法,针对企业自身的生产工艺特点进行开发,提供给用户的是终的运行系统,不需要用户再进行组态的二次开发。这样的系统对这样的用户来说,从时间,价格或性能上来说都比较适合。本系统在鹭岛公司研发的LEODO嵌入式工业控制人机界面上经过了测试运行,证明其运行速度较快,比较稳定。效果很好,比较适合工业现场使用。当然LEODO品牌的人机界面也内置了一套简明实用,画面资源丰富的ET组态软件,用户可根据实际情况决定自己用语言开发,还是用组态软件开发。
可以看出,人机界面利用Microsoftbbbbbded C++开发应用程序,与在bbbbbbs系统下用Microsoft VisualC++开发程序,有许多相象的地方。借助这个软、硬件平台,多数用户完全可以开发出适合自己需要的应用程序。