西门子模块6ES7223-1PL22-0XA8产品规格
织机械上的大部分机器采用了工控触摸屏人机界面、变频调速技术、可编程控器(PLC)技术以及现场总线技术,实现了纺机产品的机电一体化,人机界面在纺织设备上应用很普及,从彩条机、调线机、针织机、并条、粗纱、细纱、络筒、整经、浆纱、无梭织机等均已采用。
人机界面的使用给产品品质的提升、功能的扩展和操作的便利性带来了长足的进步。
通常情况下人机界面在纺织机械上的使用简图如下:
控制系统说明:
人机界面负责与PLC的交互.通过PLC控制变频器和温控模块,人机界面不能直接控制变频器和温控模块.人机界面和PLC之间的交互可以通过RS232/422/485等接口方式连接。
此种模式不足:
1、控制系统复杂:由于变频器、温控模块等设备需要通过PLC控制,对PLC编程要求高,且控制不方便.
2、控制速度慢:操作人员需要修改某一控制参数,需要先通过人机界面传送到PLC,再通过PLC传输到变频器或温控模块,影响了设备的反映速度.
3、资源消耗大:由于对PLC要求高.程序量大,需要PLC处理能力强,CPU要求
4、操作不方便:如果需要改变温度范围或运动参数,用户不能直接通过人机界面来修改。操作很不方便
针对传统模式的不足,深圳显控公司提出了全新的解决方案:
方案说明:
显控人机界面可以提供两个COM口,每一个口均是RS232/422/485集成口;可以实现两接口设备的工作.如上图:显控人机界面直接对PLC、变频器和温度模块进行直接控制。而无须通过PLC来实现对变频器和温控仪表的控制.提高整个系统控制效率和合理性.
显控人机解决方案模式优点:
1、显控人机中集成了变频器和温控模块协议,可以实现对这些设备的直接控制,例如:可以把温控模块的各种参数直接读取出来,通过工程直接修改或保存温控模块的值。
2、控制效率提高:人机界面面的操作命令可以直接到达变频器等设备,变频器设备状态也可以直接显示到人机界面上。提高了整体控制的效率和jingque度。
3、节约成本:对PLC的处理能力要求低、程序量小等,节约硬件成本。显控人机拥有12M的内存,可以提供给用户保存大量的设备相关参数或生产数据,例如:设备温度变化值,报警值、配方等等
4、组态画面显示清晰,显控人机界面具有26万色的显示色彩,具有640*480的分辩率,能够组态出非常形象、生动的画面,在下到人机界面后不会出现失真.
一、引言
在砂带生产线中,其前道工序要求对坯布进行处理,清除其表面突起的纤维。坯布与胶辊与刮刀保持一定距离的间隙,在0.2-0.6mm间。在坯布刮刀之前有检测布缝的电容式传感器。当有布连接缝接近刮刀时,要求刮刀与坯布迅速打开一段距离,约40-60mm间。原系统采用气缸打开、关闭。由于气缸固有特性,使控制效果不理想。我方通过步进电机驱动胶辊,进行间隙调整达到理想效果。
二、系统构成
坯布需要两面处理,上下两面刮除突起的纤维。有两个刮刀与两个胶轴配合构成两个工作轴,分别为A、B轴。每轴两端分别有一台步进电机,A机与B机。
系统图下:
工艺流程示意图
每台步进电机都有一台驱动器,共四台驱动器,驱动器由PLC控制。电机输出轴经减速机输出给胶辊。
由于绝大多数PLC只有两个高速输出口,可控制两台步进电机驱动器。也可采用一台主机加高速定位模块完成对四台电机的控制,但定位模块成本比较高。本系统采用了两台台达DVP14ES型PLC。台达DVP系列PLC输入输出小为8入/6出。由于价格合理,本系统采用2台主机,仍比其它品牌机型加定位模块合适,并且输入、出量配置也较合理。一台PLC的高速脉冲Y0、Y1控制2台步进驱动器的运行速度,其Y4、Y5分别控制步进驱动器的运转方向,步进电机驱动器要求输入速度信号及方向信号。
三、工作原理
3.1刮刀与胶辊平行调整。由于某原因,可能导致刮刀与胶辊不平行,也就是一个轴左右两边与刮刀间隙大小不一致。可以调整工作轴中的一台电机,使其上升或下降使刮刀与胶辊平行。调整平行后即可使本胶辊投入正常使用。在人机界面上设计有控制A轴A机和B轴A机的手动按钮。间隙由塞尺测量。
3.2工作间隙的调整。在投入自动使用前,必须对间隙进行调整。在界面上有两种方法可以实现。一种是点动控制,另一种是设定运行数据进行控制。点动控制适用于在不知道胶辊与刮刀间隙时的初次调节间隙。用点动控制使胶辊与刮刀间隙为零,即调零。再人机界面上设定打开间隙量。当改变坯布品种时,只需根据两种坯布厚度差别,设定要改变的间隙量即可。
3.3 人机界面的设计。一台人机界面通过RS485通讯线与2台PLC相连。在人机界面程序设计中,可以利用PWS提供的宏指令,一个按钮控制两个PLC的中间继电器M20,即自动按钮。当M20为ON时,两个PLC的工作状态为自动模式。人机界面上还可以设定自动运行时刮刀打开间隙。分别有两个数值输入按钮,写进两台PLC,经过数据变换,作为步进电机控制器的脉冲输出量。调零工作完成后,调整工作间隙,使M20置为ON,投入自动运行。
3.4步进电机驱动器的设置。步进电机驱动器的细分设置为0.72,即PLC输出给步进电机驱动器每500个脉冲,步进电机输出轴旋转一周。细分值与PLC的高速输出命令相配合。细分过大时电机会因负载大而失步,细分太小时,在自动运行时,打开距离不够而使布缝被刮断。
控制系统图
四.应用效果及问题
经过一段时间的运行,证明系统运行正常,达到了设计要求。在程序设计中,利用高速输出命令PLSY时,电机在加速时失步,造成控制不稳,后来改为用PLSR命令。利用PLSR命令时,必须设置好加减速时间。改为PLSR命令后,远行稳定可靠。由于采用两台PLC,其控制对象工况一样,两台PLC程序完全一样,程序调试简便。
引言
近年来,“嵌入式”一词越来越多的被人们提及,嵌入式产品被应用到各行各业。与嵌入式相关的技术如嵌入式产品,嵌入式系统的研究等也被列为“十五”国家发展的重点方向。
嵌入式系统 (bbbbbdedSystem)被定义为:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
随着工业自动化的发展,基于PLC,单片机等设备的自动化系统,自动化设备越来越普及,几乎遍布所有自动化领域,与之相应的人机交互系统也应运而生,并得到同步发展。基于嵌入式技术的工业人机界面是人机交互系统中一颗耀眼的明星。高可靠,长寿命,体积小,高性能,多线程,多任务,强实时等特点使嵌入式工业人机界面越来越受到自动化系统集成商,自动化设备制造商的青睐。它能够理想,生动地显示PLC,单片机等工业设备上的数据信息,功能强大,使用方便。它作为PLC等控制设备的上端设备在用户和机器之间架设了一条桥梁。该产品目前广泛应用在工业自动化系统,医疗,金融等行业的自动化设备。
随着越来越多的工程项目采用了嵌入式人机界面,相应的,用户对与嵌入式硬件配套使用的监控系统(Supervisory Controland DataAcquisition,SCADA)等应用软件的需求也在增加。这也正是本文所要讨论的问题。这里讲的嵌入式监控系统,其硬件为嵌入式智能人机界面;其软件为嵌入式操作系统,另加自己开发的应用程序。本文后面主要介绍这个监控应用程序,重点介绍应用程序中通讯部分的实现原理。
当今,已发展有多种嵌入式操作系统,如Linux,VxWorks,WinCE.net等,完全可在其上开发出图文并茂、界面友好的应用,以满足监控系统的种种要求。只是由于嵌入式技术相对是一门新兴的技术,涉足的人相对还比较少,这样的应用目前还比较少。本文介绍的嵌入式监控系统算是一个实例吧。
2 系统组成
我们所开发的这套嵌入式监控系统,上位机是沈阳鹭岛资讯科技有限公司开发的嵌入式智能工业控制人机界面(以下简称人机界面)。其嵌入式工业控制器是以SA1110(Strong Arm 1110)为核心处理器,包括网络通讯,数据通信,大尺寸触摸屏及液晶显示的硬件平台,在其上运行WinCE操作系统。提供20个通用IO点供用户使用,物理层支持ProfiBus等现场总线,支持16位真彩TFT LCD显示,有64MSDRAM内存,32M FLASH闪存,据有USB接口,10/100MEthernet网络通讯接口,以及串口,并口,VGA口等通用接口。
下位机用日本OMRON公司的PLC,或SIMENS PLC,或施耐德NEZA PLC,或日本三菱公司的PLC,当然温控表,单片机等工业现场控制设备也可以。
控制对象(比如锅炉等)的工作由上述控制设备(各种PLC等)控制;而控制对象的状态则用人机界面及在其上开发的应用程序进行监控。
人机界面的操作系统采用了微软的WinCE.net。WinCE.net是为各种嵌入式系统和产品设计的一种紧凑,高效,可伸缩的操作系统(OS),主要面向各种嵌入式系统和产品。其多线程、多任务、完全抢占式的特点是专门针对资源有限而设计的。OEM开发商可根据自己硬件组成的特点对WinCE.net进行选择裁剪,从而配置出稳定高效并且是特有的WinCE.net操作系统和相应的SDK开发包。在应用上,WinCE.net支持超过1000个公共MicrosoftWin32API和几种附加的编程接口,用户可利用它们来开发应用程序。微软为开发WinCE.net应用程序的人员提供了与VisualC++类似、支持MFC的Microsoft bbbbbded Visual C++语言。下面我们将介绍一下开发过程的细节问题。
3. 软件流程
应用程序开发是在个人计算机上进行的。个人计算机的操作系统为bbbbbbS 2000。应用程序的开发平台是Microsoftbbbbbded Visual C++集成开发环境。
在应用程序开发时,还可以利用微软提供的测试模拟器(Emulator)。有了它可做到,没有人机界面,也可进行程序调试。
开发终生成的可执行文件,可使用Microsoft bbbbbded Visualc++开发环境提供的下载功能,通过串口或局域网,下载给人机界面。
工作时,PLC等工控设备运行它的控制程序,而人机界面则运行这个下载的可执行文件。两者通过串口进行通讯,但通讯的主动方为人机界面。人机界面依监控要求,向PLC等发送通讯命令,PLC则作相应的应答。
人机界面从PLC上收到应答的数据后,在触摸屏上,以图表、动画的界面显现出来,供用户观察。还可把这些数据进行存贮、打印,甚至于向ERP等管理信息系统传送。
如须对PLC或控制对象进行干预,也可在人机界面的触摸屏上,通过触摸键或触摸鼠标,向PLC发送命令或数据,以实现相应的控制。
4 画面构成
一般的工程监控画面有:文字显示,生产工艺流程显示(包括动画,柱状图显示等),报警,人员操作,趋势曲线等等。我们的系统架构是做一个基于主对话框的程序。再将这些不同的画面用子对话框表现出来。
主对话框负责初始化串口,打开串口,启动读串口线程等;而各子对话框则定时或根据需要向串口发送各种命令,通过主对话框的线程读回命令的应答,再在子对话框中以一定的形式提供给用户,以供监控现场作业。这其中主要的技术就是串口通讯。下面我们重点讲述通讯的实现。
5.通讯实现
人机界面提供的串口是符合通用标准的。WinCE.net下的串口通讯与bbbbbbs下的串口通讯原理相同。都是应用程序不直接控制硬件,而是通过操作系统提供的设备驱动程序,来进行数据传递。
WinCE.net 是Win 32编程。串口在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 打开串口
是打开串口,这是串口通讯的步。其代码为:
BOOL CMainDlg::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读串口线程
是启动读串口线程,它让读串口程序不停地在后台运行,而不影响前台程序的工作。与此有关的代码为:
BOOL CMainDlg::OnInitDialog()
{
。。。。。。
ReadFile(m_hComm,inBuffer+iBufLen,INBUFFERLEN-iBufLen,&dwBytes,NULL);//从串口读数据;
iBufLen+=dwBytes;
for(int i=0;i<ibuflen;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发送命令。以OMRON PLC为例,在发送命令时,根据OMRONPLC的通讯协议,还需对发送的命令字符串加校验码。这些程序代码为:
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
<ibuflen;i++)