王景勝,李曉會
(北京機械工業自動化研究所,北京 100120)
在自動化生產線日益普及的今日,通用式組態軟件在自動化生產線的監控和管理應用中已經不可或缺,目前大部分組態軟件的主要功能是用于底層設備的實時監控和遠程控制。但本文中提到的組態軟件在自動化生產線中除具備監控和遠程控制功能外,還具備與上級MES管理系統進行信息對接和交互的功能,從而實現生產任務的自動下達及生產物料通過立體倉庫的自動配送。
在某類型電子產品的自動化裝配線中,要求實現對自動化裝配線的遠程監控和生產任務的自動接收與物料的自動配送,基于系統功能要求的考慮最終采用國內通用式組態軟件——“易控”實現以上功能,上位監控系統的軟件基于.NET平臺開發,采用C#語言進行代碼編寫。
上位機監控系統功能主要包括兩大部分,一為系統運行監控和底層設備遠程控制;二為與MES系統對接實現信息交互和生產物料自動配送。
系統運行監控界面如圖1所示,在監控界面中可以實時查看自動線和相應專機的運行情況,以及MES系統下達的生產信息和生產任務的實時狀態。

圖1 系統運行監控界面

圖2 MES任務信息查詢界面

圖3 生產任務信息獲取軟件流程圖
MES任務信息查詢畫面如圖2所示。
在上位管理系統啟動后,監控系統定時讀取MES系統生產任務信息,具體系統對接軟件流程圖如圖3所示,圖3主要描述了監控系統如何獲取MES系統下達的生產任務信息的過程。
定時讀取MES任務代碼舉例
/*定時讀取開啟*/
if(PLC數據通訊變量.MES定時讀取啟動開關==true)
{string linkword = "Server=172.16.3.1:15211;Data Source=mxb;User Id=jc_erp;Password=jc_erp";
using (OracleConnection connection = new OracleConnection(linkword))
{try
{ connection.Open();
OracleDataAdapter da=new OracleDataAdapt er(query,connection);
DataTable ds=new DataTable();
da.Fill(ds);
}
catch(Exception ee)
}
/*判斷MES中間表提交任務標記位(SUBMITFLAG)的狀態為提交態*/
int a = MES主任務.是否已提交給生產線設備;
switch(a)
{
case 1:
/*判斷MES中間表生產線執行標記位(ACCEPTFLAG)的狀態為未接收*/
if(MES主任務.是否已被生產線設備接收==0)
{
/*將MES中間表生產線執行標記位(ACCEPTFLAG)置位為1*/
//string linkword1 = "Server=172.16.8.70;Data Source=orcl;User Id=jc_test;Password=jc_test";
string linkword1 = "Server=172.16.3.1:1521;Data Source=mxb;User Id=jc_erp;Password=jc_erp";
string query1 = string.Format(@"update v_mes_pdline_proctask_inuse set ACCEPTFLAG=1 where PDLINE_PROCTASKID={0}”,MES主任務.生產線作業任務主鍵id);
using (OracleConnection connection = new OracleConnection(linkword1))
{try
{ connection.Open();
OracleDataAdapter da1=new OracleDataAda pter(query1,connection);
DataTable ds1=new DataTable();
da1.Fill(ds1);
GrpManager.MES主任務.DataGridView1.DataSource = ds1;
}
catch(Exception ee)
{Trace.WriteLine(ee.Message);}
finally
{connection.Close();
}
}
break;
/*判斷M E S中間表提交任務標記位(SUBMITFLAG)的狀態為取消態*/case 2:
/*將MES中間表生產線執行標記位(ACCEPTFLAG)置位為4*/
//string linkword2 = "Server=172.16.8.70;Data Source=orcl;User Id=jc_test;Password=jc_test";
string linkword2 = "Server=172.16.3.1:1521;Data Source=mxb;User Id=jc_erp;Password=jc_erp";
string query2 = string.Format(@”update v_mes_pdline_proctask_inuse set ACCEPTFLAG=4 where PDLINE_PROCTASKID={0}”,MES主任務.生產線作業任務主鍵id);
using (OracleConnection connection = new OracleConnection(linkword2))
{try
{ connection.Open();
OracleDataAdapter da2=new OracleDataAda pter(query2,connection);
DataTable ds2=new DataTable();
da2.Fill(ds2);
GrpManager.MES主任務.DataGridView1.DataSource = ds2;

圖4 生產物料信息獲取軟件流程圖
}
catch(Exception ee)
{
Trace.WriteLine(ee.Message);
}
finally
{
connection.Close();
}
}
}/*定時讀取開啟的if*/
由于生產物料的配送是通過立體倉庫自動配送的,MES系統按物料箱的到位情況自動下達物料箱信息,當物料使用完畢后,監控系統再次將相應物料信息反饋給MES系統,實現物料箱的自動回庫。軟件流程圖如圖4所示。
圖4為與自動線對應的3個物料配送口物料信息獲取的全部過程,通過與MES系統的信息對接實現生產物料的自動配送。
上位監控系統除具備后臺自動運行處理MES系統管理信息的功能外,還具備人工介入干預功能,當MES系統信息提交不及時或異常情況時,可采取手動人工介入方式進行相應信息處理。
通過采用通用式組態軟件,實現了對自動化裝配線體的遠程監控和與MES管理系統的信息對接,為自動化生產從生產物料自動化配送到最終產品的組裝完成提供了軟件實現基礎,確保了自動化裝配線體的穩定運行。
[1] 鄭阿奇. C#教程[M].北京:電子工業出版社,2010.
[2] 張貝克.組態軟件基礎與工程應用(易控INSPEC)[M].北京: 機械工業出版社,2011.
[3] 秦靖,劉存勇,等.Oracle從入門到精通[M].北京:機械工業出版社,2011.