青岛工控机
Search
导航菜单
Search
文章检索
    研华工控机、PLC通信集成技术在轴瓦选配系统中的解决方案
    作者:    发布于:2017/4/25    浏览次数:834

    研华工控机作为工控领域的翘楚,其品质的稳定性为其带来了庞大的用户群体,下面青岛亨利达电脑有限公司将向大家介绍一下研华工控机与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();

    }。

脚注信息
Copyright(C)2009-2024 青岛亨利达电脑有限公司
脚注栏目