研华工控机作为工控领域的翘楚,其品质的稳定性为其带来了庞大的用户群体,下面青岛亨利达电脑有限公司将向大家介绍一下研华工控机与PLC通讯集成技术解决方案,并结合该技术在轴瓦选配系统中的应用案例进行详尽分析。
轴瓦选配是发动机分组选配技术中的关键环节,重点解决的是曲轴与缸体、曲轴与连杆的配合问题。为了达到配合的要求,厂方主要依赖人工来选择配装,效率低下。本文介绍了一种通过工控机与PLC通信控制的轴瓦选配系统,它根据车型、缸体和曲轴的编号自动完成选配,并将结果直接显示出来。该系统综合了工控机软硬件资源丰富及PLC性能可靠的特点,极大地提高了选配的效率和精确度。
在装配现场,传输带用于传送待装配的缸体、曲轴和连杆,键盘或扫描枪用于车型代号输入。控制面板主要完成缸体与曲轴颈、曲轴与连杆编码的输入,并通过切换摄像头1、2,比对扫描枪或键盘输入的代号是否正确并进行调整。工控机实时显示接受的信息,并且与PLC进行通信,调用资源处理数据。eView两块液晶触摸屏上则艇示最后的络果,装配人员根据提示完成对应轴瓦的选配。本系统的控制部分采用了典型的两级控制方案。上位枫果用研华工控机,下位机选用的欧姆龙公司的CP1H囊PLC。为了便于上彼视和下位祝的通信,上位枧采用Visual C++编制的接口界面程序,而下位机则采用欧姆龙公司PLC的自带软件(cx-programmer)。
由于采取多重方案保证信息输入的准确往,确保整个系统能够做到真正实时、快速、有效地处理。
系统在工作过程中,首先,工控机接受来自扫描枪或键盘的车型代号,PLC则通过自身的I/O口接收缸体和曲轴颈,曲轴和连杆一共18位代码的输入,并将这些代码送到上位机。上位机将综合车型、缸体和轴颈、曲轴和连扦数据,并参照配色表(见表1)得出缸体与轴颈配合、曲轴与连杆配合的对应9组轴瓦,之后将这些配瓦结果保存的同时发送到PLC,PLC和触摸屏通过组态方式,使结果在触目屏上得以显示。
在工控机与PLC的集成控制系统中,如何实现工控机与PLC的数据交换非常重要。一般有两种方法:利用串口通信或通过I/0卡实现。考虑到数据的实时性和可靠性,本系统采用的是串口通信方式。
根据控制系统工作流程及输入输出信号编制PLC梯形图程序,并与工控机实时通信。图3显示的是通过I/O口输入的缸体与轴颈、曲轴与连杆代码按钮所对应的部分梯形图。
上位机程序采用Visual C++来编制,调用Mscom控件来对串日进行初始化,并随时接收来之PLC发送的数据量,加以转换;同时采集来自扫描枪的数据量加以显示,并将配瓦信息储存起来,以便日后查询。
//串口设置
m_ctrlComm.SetCommPorl(1);
m_ctrlComm.SetInBufferSize(2048);
m_ctrlComm.SetOutBufferSize(2048);
if(m_ctrlComm,GetPortOpen())
{
AfxMessageBox(“串口已打开!”);
m_ctrlComm.SetPortOpen(false);
}
If(1m_ctrlComm.GetPortOpen())
{
m_ctrlComm.SetPortOpen(true);
}
else
AfxMessageBox(“串口不能被打开!”);
m_etrlComm.SetSettings(“115200,n,8,l”);
m_ctrlComm.SetlnputMode(1);
m_ctrlComm.SetRThreshold(1);
m_ctrlComm.SetInputLen(0);
m_etrlComm.GetInput()。
3.2.2 读取数据
//数据识别
void CaxisLDlg::OnMscomm1()
{
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048];
CString str;
if(m_ctrlComm.GetCommEvent()==2)
{
variant_inp=m_ctrlComm.GetInput();
safearray_inp=variant_inp;
len=safearray_inp.GetOneDimSize();
……
}
}
UpdateData(false)。
接受来自条码扫描枪的条码数据,并进行相应的数据纠错处理。
//识别条码
BOOL CaxisLDlg::PreTranslateMessage(MSG*pMsg)
{
if(pMsg→message==WM_KEYDOWN)
{
CString str;
char c;
m_nfocus.SetFoeus();
UpdateData(true);
str=m_focus;
if(m_focus.GetLength()==21)
{
if((stL.GetAt(12)<“0”)︱︱(str.GetAt(12)>>“9”))
{
str.Empty();
UpdateData(false);
SetTimer(2,90,NULL);
return Cdialog::PreTranslateMessage(pMsg);
}
……
}
else
m_taoma.SetWindowText(m_focus);
UpdateData(false)。
}。
将配瓦信息添加到数据库中,并保存到工控机中以便日后查询。
//向data中添加记录
void CaxisLDlg::Addnew()
{
m_dateSet=new SjDate;
CTime time;
time=Ctime::GetCurrentTime();
CString TimeStr;
TimeStr=time.Format(“%y/%b/%d/%H/%M”);
if(!m_dateSet→IsOpen())
if(Bhao==1001)
CopyFile();
}。
上一篇: GHOST镜像制作对工控机软件、硬件的影响分析 | |
下一篇: 嵌入式工控机有哪些特点? |