西门子6ES7211-0BA23-0XB0产品规格
1 引言
配料生产线作为整个硅铁生产中的重要环节,其工艺性能技术指标,对整个硅铁生产工艺流程和硅铁产品质量提高有着直接的影响。目前西北地区许多硅铁厂的配料生产线的控制方式还停留在上世纪六、七十年代的继电器控制水平。随着对硅铁需求的数量增加和质量的更高要求,对落后的生产工艺进行改造显得非常必要。本文就某硅铁厂硅铁配料生产线控制系统的改造进行阐述。
2 改造前状况
原配料系统是由一台电子秤和布置在方形料仓四周的四台电磁下料机构成,控制系统是由简单的继电器组成的单控制回路,依靠人工在现场分别操作下料机完成配料。配料仓通过气阀将配好的物料卸到运料小车里,小车沿斜桥上料系统将物料加入到炉膛冶炼。系统主要存在以下问题。
①系统是人工控制,处于开环控制状态,配料误差大,无法满足控制精度,造成产品质量不稳定。
②运料小车卷扬机电机在全速运行时,由限位开关急停制动,容易因惯性过大造成制动失灵或停车位置不准,有时出现“挂顶”及“溜沟”事故,严重影响生产。
③原系统料车是恒速运行,由于起动频繁,起动电流过大,长时间运行必然会引起电网的波动,接触器及电机线圈容易烧毁。
④料车在斜桥上端卸料时,如果抱闸失灵,料车将在重力作用下下滑,带动电机反转,损坏系统设备。
⑤现场粉尘较大,工作环境恶劣。
3 改造方案设计
由于原来场地空间只适宜旧配料生产工艺,厂方要求在不改变原有配料工艺和机械设备基础上尽大可能地实现配料工艺自动化,从而节约改造资金。为此采取如下措施。
①机械设备和原有配料工艺保留。在四个大仓下面各装一个电磁振动给料机,四种物料仍然使用同一台电子称重仪,配料方法是四种物料依次配料,不许配。
②对电气控制系统进行改造。在上位机中使用“组态王”控制软件,以串口通讯方式与PLC连接,以实现可视化操作。系统的设计分为手动及自动控制系统两部分,手动控制系统作为一种应急控制而存在。系统采用IND560型电子秤仪表头完成,自动控制系统采用S7-200 型PLC 加扩展模块实现。由上位机(研华工控机ARK3389)、PLC、电磁振动控制器、电磁振动给料机、称重传感器和变频器组成一个小型的DCS系统。由值班人员在控制室完成所有物料的配料过程。
③上料小车由继电器控制卷扬机直接起动、恒速运行改为FR-740 型交流变频器变速驱动控制。变频调速是按照U/f恒压频比规律或矢量控制方式进行工作,通过改变定子供电频率达到电动机调速目的。调速过程中,人为机械特性与固有机械特性基本平行,消耗的转差功率变化不大,效率很高,节电效果明显。使用变频器控制能实现无级调速并且降低起动电流,减少对绕组的绝缘破坏,延长电动机使用寿命。变频器的一些保护功能可以大大提高生产安全性。使用变频调速方案可以很好地解决上述系统中存在的问题。
④将传统的机械式接近开关改为防水防尘光电接近开关,探测距离3cm以上,每个控制位两边安装接近开关,同一控制位的接近开关并联,只要有一边感应到,小车立即执行其动作。为了确保安全,小车低速运行停止后,不允许滑出接近开关的感应范围。
4 改造方案实施
4.1 硬件部分
手动时,用电磁振动控制器面板上旋钮设定输出电流大小;自动状态时,仪表接受PLC 4-20mA控制信号设定输出电流大小。PLC系统主要连线图如图1 所示。
该冶炼炉采用斜桥式料车上料系统。斜桥式料车上料机构主要由斜桥、料车、卷扬电机三部分组成。料车通过变频器控制,在斜桥上的运动分为起动、加速、稳定运行、减速、倾翻和制动六个阶段。变频器通电后,检查预设参数是否与出厂值一致,并对以下参数进行设定:①电动机参数;②加减速时间和模式;③高速和低速对应频率;④切换速度对应的外部触点控制信号;⑤转矩提升量;⑥变频器零速全转矩功能和直流制动励磁功能。料车提升一次所需时间与料车的运动速度和加速度有关,其变化曲线模式如图2所示。a1为0.2-0.4m/s2,a2在0.4-0.8m/s2,a 3和a4为-0.4~-0.8m/s2。
料车返回时也可以采用同样曲线控制。变频器主要控制端接线如图3 所示.
4.2 软件部分
工控机上的“组态王”软件实时监控电子秤数据并与PLC进行通信达到控制配料的目的。即将称重仪的模拟信号直接送到工控机组态软件里,而没有送入PLC 模拟量模块,省略了PLC模拟量模块的使用,节约了改造资金。所有配料的物料比例参数可以预设为不同的文件,即不同的配方,在配料开始前选择调用。软件设计框图如图4所示。
本软件的编写困难在于四种物料使用同一台电子称重仪,四种物料依次配料,不许配。下面就软件设计简述如下:
①配料开始时,电磁振动给料机以快速度下料,达到某一值后,开始变慢,到设定值后电流减到小,而PLC的模拟值是一个0-32000 的值,电磁振动控制器的输入有0-20mA 和4-20mA 两种,实际的关断电流并不是理论的0或者4mA,必须对此进行转换。
②由于所配物料的粒径大小不一,受空气湿度的影响,每种物料在不间段的下料速度不同,大大影响配料的时间。为了使配料员可以随时根据现场的情况修改,将预设配方、配方次数、物料的实际设定值、精度调整值、速度、第二速度、大电流、小电流、装料时间、卸料时间等参数都关联到“组态王”软件上面,参数定义为读写型的变量,计算机重启,各个参数都可以保持在后一次修改的值,系统可按用户要求记录各项配料参数。
③在配块状物料时,下料太快,受弹性形变的影响,出现仪表显示值大于实际值,恰被计算机读到,停止料配料,待秤稳定后,实际值明显小于设定值的情况。针对此情况,解决办法是不同的物料对其进行一定延时,是越接近实际值其配料的速度要越慢,以达到精度调整的目的。
④系统使用一块称重仪表,组态王将读入的称重数据赋给VD600 单元,上电复位后,系统清零。种物料使能信号接通,将VD600的数据赋给种物料的控制单元,用于配料控制,种物料配送结束后,系统清零仪表。第二种物料使能信号接通,VD600值赋给第二种物料控制程序。其它物料配置类同。改变变量的梯形图如图5 所示。
在配料开始前,用户要在“预定配方自动配料”或“手动输入各参数配料”两种方式中选择一种操作。当选择“预定配方自动配料”后,系统可在多种预定的配方中选择相应配方完成配料过程;当选择“手动输入各参数配料”后,系统会依次显示设定本轮配料中各物料的重量,经过确认后,配料开始。配料流程如图6所示。
5 结束语
在本次硅铁自动配料电气控制部分改造中,PLC和计算机的使用满足了用户配料自动化和工艺多样化的需求;利用变频器自身具有的软起动和多种保护功能的设定,克服了原有运料小车运行中存在的问题;“组态王”软件的应用,使配料系统实现可视化和动态监视。每份配料都打印有清单可查,提高了生产管理水平。
经统计比较,平均每班(8小时)比原先多配料10.2次,提高了生产效率;粗粒(80-120mm)配料精度达到每批料(300kg)±2kg,细料(5-15mm)配料精度达到每批料(250kg)±1kg以下,完全符合配料质量要求,一改过去人工配料忽多忽少的不确定性,产品合格率较以前因配料和设备故障的87.8%提高到现在的96.4%以上;产量也较以前每天增加3-4吨左右。极大地改善了人员工作环境和劳动强度。该系统自投入使用以来,运行稳定,工作可靠,具有很高的性价比。对同类企业的技术改造具有很好的借鉴意义。了解更多PLC技术、资讯、分析报告文章,请点击查看http://plc.jlck.cn/ 2011年PLC企业“爆”团,新鲜技术全接触。
0 引言
计算机技术的迅猛发展促使虚拟PLC技术应运而生。它通过借助PC完成PLC的计算、存储、编译以及通过I/O口完成于现场工业设备进行通讯的各项功能。
虚拟PLC结合计算机技术的发展,利用VC、VB、Delphi等编程语言及微机的图形处理功能开发出PLC的软件编程平台,并构建虚拟模型实现PLC的部分硬件功能。相对于传统PLC,虚拟PLC具有友好的PLC指令编辑界面和兼容性。虚拟PLC上可以很好的实现软实时性,而硬实时性差成为其发展的制约因素,还未完全实现“零距离”的体验。论文就如何实现虚拟PLC同硬件间实时通讯的开发与实现进行了研究。
1 虚拟PLC平台
论文中的虚拟PLC运行平台是作者所在课题组基于VisualC++6.0环境独立开发的。虚拟PLC基于计算机技术和虚拟现实技术开发的,在保证功能效果的前提下,如何提高用户在使用虚拟PLC时的真实感和沉浸感,是虚拟PLC要着重处理的问题。
该虚拟PLC系统中建立了虚拟仿真模型,并通过将Solidworks、3DS MAX等建立的三维模型导入EonStudio的方法,构建了虚拟模型与虚拟PLC的通讯,从而可以在没有任何硬件的情况下完成硬件PLC的各项仿真实验,达到实验教学的目的。
虚拟PLC的可视化增强了仿真的直观性和逼真度,更接近工业实践和提升学生的兴趣,大大降低PLC实验的费用。存在着与硬件间通讯弱的问题。它的总体框架如图1所示。
2 通讯系统总体框架
论文借助VisualC++6.0的串口通讯控件MSComm来实现上位机与单片机间的通讯。数据经USB口送出后,须先经过USB口转串口芯片处理,连接到单片机。后,由单片机来连接硬件电路。虚拟PLC借助单片机可以直接驱动硬件和采集现场信息,从而完成了整个通讯系统的建立。通讯系统总体框架图如图2所示。其中,整个通讯系统包含以下三个模块。
1 ) M S C o m m 模块。在V i s u a l C + + 6 . 0中,MSComm控件是Microsoft为我们提供进行串口通讯的ActiveX控件。
2)USB口转串口模块。USB口较九针口方便易用,但须在上位机中安装对应于USB口转串口芯片的驱动,以便通讯时进行USB协议的加载和解析。该系统中采用的USB口转串口芯片是PL2303hx。
3)下位机模块。该系统采用的下位机是单片机STC89c52rc。
3 MSComm模块
M S C o m m控件在进行串行通讯时有两种方法:事件驱动方法和查询法。论文采用事件驱动方法:在接收到数据时触发事件响应的消息,由专门的函数来对消息进行处理。论文采用的串口通讯相关参数如表1所示。
COM口的设置须参照设备管理器中生成的虚拟COM口号,该系统生成的虚拟口是COM3。在添加完M S C o m m控件后系统会自动生成CMSComm的通讯类,而我们仅需要调用该类中的函数即可完成串行通讯的设置,论文的具体相关设置的部分代码如下:
MSCommIni()
{
……
m_ctrlMSComm.SetCommPort(3); //选择COM口
m_ctrlMSComm.SetbbbbbMode(1);
//输入方式为二进制方式
m_ctrlMSComm.SetInBufferSize(1024);
//设置输入缓冲区大小
m_ctrlMSComm.SetOutBufferSize(1024);
//设置输出缓冲区大小
m_ctrlMSComm.SetbbbbbLen(0);
//设置当前接收区数据长度为0
m_ctrlMSComm.SetSettings("9600,n,8,1");
//波特率9600,无校验,8个数据位,1个停止位
m_ctrlMSComm.SetRThreshold(1);
//参数1表示串口接收缓冲区中有多于或等于1
个字符时将引发一个接收数据的OnComm事件
……
}
由于该系统主要是将Y口的状态发送给下位,选择的是二进制的传输方式。由于USB线通讯时的数据越少越好,将每个Y口对应一个bit位,每8个Y口状态按照一定的顺序进行一次绑定。后,将每次绑定的数据按照一定的顺序统一打包发送给单片机。发送的部分代码如下:
m_ctrlMSComm.SetOutput(binDT); //发送数据
MSComm控件在接收到单片机发送来的数据时,寻找相应的消息响应函数。这里,系统中响应函数为OnOnCommMscomm1()。具体响应的部分代码如下:
if(m_ctrlMSComm.GetCommEvent()==2)
//事件值为2表示接收缓冲区内有字符
{ myVar.Attach(m_ctrlMSComm.Getbbbbb());
safearray_inp=myVar;
//VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize();
//得到有效数据长度
for(k=0;k
safearray_inp.Gebbbement(&k,rxdata+k);
//转换为BYTE型数组
for(k=0;k
{BYTE bt=*(char*)(rxdata+k); //字符型
strtemp.bbbbat("%c",bt);
//将字符送入临时变量strtemp存放
char test[8]={'C','D','E','F','G','H','I','J'};
//定义不同事件响应的代号
for (int i=0;i<4;i++)
{If (strtemp == test[i])
//对比出单片机要引发哪个事件响应
{if(m_pDoc->m_bDlgPLC)
m_dlgPLC.vcX[i] = TRUE;
else if(m_pDoc->m_bDlgTrafficLight)
m_dlgTrafficLight.vcX[i] = TRUE;
}}}}
该系统中,MSComm控件既要将虚拟PLC运行平台的Y口状态发送到单片机,又要接收单片机发送来的数据,并对其中的有效数据处理后,影响虚拟PLC的运行状态。它的整个工作流程图如图3所示。
4 USB口转串口模块
上位机的数据发出后,要进行USB传输协议的处理,发送给单片机。USB口转串口模块就是负责USB协议的解析和打包。
论文采用PL2303hx作为USB口转串口芯片,须外接12.0MHZ的晶振,提供其外部的时钟脉冲。它的输出电平无需再经过MAX232的调平处理,可直接与单片机引脚连接。
PL2303hx可双向传输数据。一方面接收上位机模块的数据进行USB协议解析,并将电平转换为标准的TTL电平,保证单片机能正常的接收数据;另一方面,对单片机发送出来的数据进行USB协议处理和电平转换,保证数据能有效传输到上位机。
5 单片机模块
该系统就是采用单片机是S T C系列的89C52rc。它具有40个引脚,P0-P3各个P口有8个I/O口,其中P3.0和P3.1是负责与上位机模块进行串口数据的接收和发送。
单片机的多功能性使其在进行某一特定功能时,须先进行相关的设定。该系统主要用到了STC89c52rc的串行通讯功能、定时器功能等。该系统中单片机的外接晶振是11.0592MHz,而其所选的是可以进行自动重装的工作模式2,采用定时器1作为波特率发生器。定时时间t=1/9600,震荡周期为1/(11.0992×106)。根据公式:
t =(28 –T1的初值)×振荡周期×12;
计算出定时器1的初值并转化为16进制的形式。单片机中初始化的部分代码如下:
SerialIni(){
……
TMOD = 0x21; //工作在模式2
TH1 = 0xfd;
TL1 = 0xfd; /* 9600 */
TR1 = 1;
SCON = 0x50; /* 工作在方式1*/
……}
该系统采取中断的方式来响应上位机发送来的数据。一旦有数据发送过来时RI被置为1,进入中断程序。中断程序中先对RI复位,将串行缓存寄存器SBUF中的数值取出,经处理后存储在一个数组中,接着对设置的全局变量的值进行加1,判断全局变量是否超出了设定的上限值,超过就归零,否则不动作。进行下一次SBUF的扫描,直到RI归零为止。其中的全局变量取决于上位机发送来的Y口的总数。部分接收程序如下:
ReciveData(){ /*有串口数据过来*/
RI = 0;
temp = SBUF; //取出SBUF中的值
if((0x00<=temp)&&(temp<=0xff)){/*卡定范围*/
temp1 = temp-0x00; }
if(j==0){sled_data[0]=temp1; }
else if(j==1){sled_data[1]=temp1; }
else if(j==2){sled_data[2]=temp1; }
j=j+1;
if(j>2)
j=0;}
该系统设置通过P1口采集现场的硬件运行状况,接收用户信号的输入,并将采集到的数据处理后发送到上位机。这样,使得用户在操作时如发现电路运行时序出现错误,可以通过按下相应的按键等发送特定的信息给上位机,从而影响虚拟PLC的运行时序,保证了LED等组成的控制对象和上位机运行时序的同步及电路运行的安全。其部分代码如下:
if(down_to_up0 == 0) //捕获按键按下的消息
button1 = 0x43;
……
else if(down_to_up3 == 0)
button4 = 0x46;
if(button1!=0xff&&down_to_up0==1) //确保按
键按下时仅触发一次动作
{ SBUF = button1;button1 = 0xff;}
……
if(button4 != 0xff && down_to_up3 ==1)
{ SBUF = button4;button4 = 0xff;}
该系统中采用不断循环扫描的方式来进行串行通讯数据的接收和现场信息的采集。是检测P1口的各个引脚电平是否有变化,如有变化就发送相应的信息给上位机。扫描串行通讯中断标志位RI是否有效,有效则处理接收到的数据。其整体工作流程图如图4所示。
6 实验验证
论文选取虚拟PLC编辑的跑马灯程序进行通讯系统的验证。
电源模块是由USB接口处的VCC端提供外部电源的输入,经稳压处理后分别对USB口转串口模块、单片机模块、以及由LED灯组成的控制对象进行供电。USB口转串口芯片的供电是不经电源开关的,由VCC端输出后经滤波后直接供应;剩下的单片机模块和LED灯则是经电源开关控制其电源的供应,以确保电路运行的安全。在硬件电路中设置了四个按键X0~X4,分别对应上位机中的X000~X003按钮,通过该按键可以改变P1口的输入电平。整体的电路连接图如图5所示。
论文采用9盏LED灯做为硬件控制对象,分别对应虚拟PLC输出口的Y000-Y007和Y010。虚拟PLC通过编辑Y口的改变来驱动LED灯的运行,从而实现虚拟PLC对硬件的控制;用户可以通过按键来影响虚拟PLC的运行时序。其中,X0按键启动单灯,X1按键启动双灯跑动,X2停止单灯跑动,X3停止双灯跑动。其梯形图和硬件效果对比如图6所示。
7 结束语
论文针对虚拟PLC硬实时性差的问题,研究了基于单片机的硬件通讯系统,实现了虚拟PLC对LED等硬件的控制。存在的特色和创新之处如下:
1)通过该系统,可以实现虚拟PLC对硬件电路的控制,拓展了虚拟PLC的应用范围;
2)利用USB电源数据线代替DB九针使硬件仿真操作更为方便,具有很好的适用性,方便用户操作;
3)利用单片机代替硬件PLC来作为下位机,保证了PC仍是PLC运行的核心,较传统PLC降低了硬件仿真的成本。的工作,研究驱动功率更大,需求更为复杂的硬件模型。若要了解更多PLC技术、资讯、分析报告文章,请点击查看http://plc.jlck.cn/ 2011年PLC企业“爆”团,新鲜技术全接触。