摘 要: 介紹了一種基于以太網和RS485總線的服裝吊掛系統設計,闡述了該系統的上位機軟件的設計與實現。上位機軟件是系統的控制中心,監控管理每個工作站的生產狀況,實時生成薪資報表、產量報表、生產分析圖。軟件界面采用C#編程語言,通信模塊的程序采用Delphi技術實現,后臺數據庫采用SQL2000。該系統已經投入企業使用,系統各項功能運行穩定,界面友好,滿足用戶需求。
關鍵詞: 服裝吊掛;上位機軟件;C#語言;Delphi;SQL2000
服裝生產屬于勞動密集型生產,生產過程基本是流水式作業。目前,我國許多服裝企業采用的仍然是“捆綁式”生產模式,生產浮余率高,生產效率低下,而且生產過程中容易發生衣片遺失和錯片等現象,造成較高的返工率。如何對生產過程進行控制、提高生產效率、提升生產質量,是每個服裝企業面臨的問題,服裝吊掛系統就是在這種需求下應運而生的。通過電腦系統集成控制,對加工工位生產數據進行實時采集、分析和處理,改變了服裝行業傳統的“捆綁式”生產方式,有效解決了制作過程中輔助作業時間比例大、生產周期長、成衣質量難以控制等問題[1]。作為一種先進的服裝生產管理系統,服裝吊掛系統在國內服裝企業中的普及率并不高。本研究針對服裝加工工藝特點,經大量市場需求調研,設計并實現了一種基于以太網和RS485總線的服裝吊掛生產控制系統。上位機通過以太網和RS485與每個制衣工位進行實時通信,實現對服裝生產加工過程的實時監控管理。
1 系統構成
服裝吊掛系統宏觀上是一套懸空的流水線式物件傳輸流水線,它通過一個循環運輸軌道把多個服裝生產工作站結合起來,可根據生產加工工藝的要求,利用特制衣架,自動將衣片、半成品及成衣按加工順序輸送到各個加工工作站,并且直接輸送到每個操作人員方便的位置上。它可以不受加工線路長短和加工位置排列的限制,可長可短,可高可低,可根據需要自由排列組合,靈活方便[2-3]。
本研究設計的服裝吊掛系統由上位機、若干個數據一級下位機和多個二級下位機組成,如圖1所示。上位機作為總控設備,通過以太網對一級下位機通信,一級下位機重新對上位機數據進行預處理,通過RS485與二級下位機進行數據交換。上位機動態顯示各個款式的加工狀況,為管理人員提供每個工作站、每個工人、每個衣架、每種款式等每時每刻的狀況,追蹤目標產量,顯示生產進度,產生生產報表以便管理人員及時掌握現場狀況,及時做出調整。一級下位機作為一個數據傳輸設備,完成兩種通信方式的連接和對上下間通信數據的轉換處理。二級下位機對應各個加工工作站,對工作站的加工過程進行控制,并實時采集工作的生產數據反饋給上位機。
隨著電腦的普及,以太網接口成為目前使用最廣泛的網絡接口,具有接口簡單、通信速度高、傳輸距離遠、通信協議完善和工作性能穩定等優點,能夠實現遠程高速數據通信[4]。RS485串行總線又有通信距離長、抗干擾能力強[5]等優點,在工業控制系統中,尤其在中小型數據采集和控制系統中運用廣泛。利用這兩種總線的控制方式,不僅有效解決了目前市場上服裝吊掛系統通信不穩定、總控設備和控制設備存在數據傳輸的瓶頸問題,而且整個系統的線路連接更加簡潔方便,利用交換機就可以實現對多條流水線的集中控制,擴展性增強,整體的成本也不高。
2 上位機軟件設計
從系統的總架構圖看到,系統由上位機和下位機(包括一級下位機和二級下位機)組成。上位機對下位機上傳的數據進行分析、保存和顯示,下位機實時采集數據,上傳給上位機并接收上位機指令完成相應動作。
上位機軟件主要由通信模塊、人機交互界面模塊、數據庫模塊等組成,其結構框架如圖2所示。
2.1 通信模塊設計
2.1.1 數據包格式
上位機與每個工作站的通信其實并不是直接“點對點”式進行,而是通過數據傳輸設備這一媒介進行數據交互的。上位機與數據傳輸設備之間的通信數據包含了所有的制衣工位信息、數據傳輸設備對整體數據的拆解和工位數據的收集等數據轉換功能。為保證整個通信可靠高效,數據包格式必須規劃布置合理,其數據包格式如圖3所示。
數據包總體格式為:公共數據+工位數據,公共數據部分是上位機下發給每個工作站的統一調度信息或各個工作站上傳的共有信息。 因每個工位做的工序不一樣,執行功能不同,每個時刻執行的動作也不一樣,所以將每個工位的數據分開,以工位數據的頭部作為地址。這種數據格式布局全面地涵蓋交互信息,利于拆解分析數據且有效地控制了數據包的大小。
2.1.2 功能命令
整個制衣加工過程的順利進行:上位機要設置制衣工作站的類型,即確立工作站做具體的某一道工序;合理控制工位的工作狀態,衣料的分發要根據員工的上線、離線及時地調整;實時廣播給每個工位下個動作的指令,保證衣料按照制定的加工方案調度;實時地將每個工位的生產情況發送給每個工位,督促員工的生產。每個工位根據生產情況,可以向上位機發送請求,以控制自己的生產;每個工位完成上位機下發的指令動作后需及時回復給上位機,以便上位機對其下一個任務安排。上位機和工作站信息交互的命令種類如表1所示。
2.1.3 通信模塊程序實現
在整個制衣加工過程中,各個工位的操作并不是同步進行,各個工位的數據量不一樣,為了實時監控每個工位的生產情況,系統上位機和工位間需頻繁進行數據交互,則對后臺數據庫操作會很頻繁。整個系統的數據大致可以分成兩類,一類數據需要頻繁更新,例如當前工位存有的衣數、當前的產量等;一類數據在較長一段時間固定不變,例如各個款式的備用加工方案。 所以對后臺數據庫頻繁操作的數據表相對比較固定。基于這種考慮,將通信部分從上位機管理終端中分離獨立開來,通信部分專門處理與工位的交互信息,操作后臺數據庫。管理終端負責數據查詢,呈現結果給用戶,兩者相輔相成,使得系統結構穩定性更強。
基于Delphi在數據庫操作方面的強大優勢[6],通信模塊使用Delphi技術實現。對通信模塊來說,對收到的數據要做兩個工作,一是對接收到的每個生產工位動作命令及數據進行處理,將生產工位的相關數據同步到數據庫;二是響應工位的上傳請求或對工位進行操作,下發指令給每個生產工位。以太網數據通信在Delphi7中可以利用TcpClient控件比較方便地實現。處理程序的偽代碼如下:
procedure TFormComm.TcpCommReceive( )
{
HandleRevData( )//處理所有工位信息進行
{
While(…)
{
HandleAveStData( );//處理每個工位數據
}
}
SendtoAllStData( ) //發送應答信息
{
While(…)
{
SendWhatdatatoAveSation ( );
}
}
}
在主界面上通過點擊“開始”按鈕,啟動通信模塊,進行數據交互。
2.2 人機交互界面模塊設計
本上位機界面是在Visual Studio 2005.NET編程環境中使用C#語言編程完成。C#語言是Microsoft專門為其推出.NET平臺“量身定做”的一種新型的面向對象的編程語言,它吸收了Java的許多優點,既具有VB的簡單易用性,又具有C++的靈活和功能強大的特點,而且克服了運用C/C++進行項目開發時難度大和周期長的缺點。在.NET平臺上運用C#可以很便捷地進行企業大型應用的開發,特別是分布式應用[7]。與SQL2000結合開發數據庫應用程序,Visual Studio.NET中提供的功能強大的控件和組件,可以輕松地生成非常復雜的SQL語句,使得對數據庫的各種操作和數據的展現更加方便。
2.2.1 功能設計
上位機界面的功能是制定服裝加工方案、分配工序工位、對生產進行智能調度、實時監控整個生產過程并呈現各個工位的生產狀態,及時提供生產報表、每個員工詳細薪資報表及生產分析圖等重要信息。界面分為4大模塊,具體功能模塊如圖4所示。
其中工作工位實況、生產平衡信息和在生產服裝信息三部分內容是生產過程中管理者最需要及時了解的信息,所以將這三個模塊布置在同一個界面,并作為軟件啟動后的默認主界面,友好性強。服裝款式管理和服裝加工方案設計這兩個模塊具有“父子”關系,每一款服裝都有對應的一種或幾種服裝加工方案,在服裝款式管理模塊點擊一種款式即可進入相應的方案設計模塊。
2.2.2 主界面設計及界面組織
由系統功能圖可以看出,整個上位機交互界面的層次性很強,功能模塊較多,而且某些模塊除自己獨立成塊以外還是其他一些模塊的子模塊。為了增強控件的通用性和重用性,筆者按功能根據VS2005工具箱中的控件并利用.NET程序集創建相應的用戶控件,在主界面對應的功能調用用戶控件。
主界面左面的窗格為系統功能樹,可依次展開,大致功能分布一目了然,利于用戶宏觀把握系統整個功能。右邊區域顯示各個功能的具體內容,在功能樹中雙擊某一功能模塊對應的樹節點,右邊區域就把對應模塊的用戶界面添加進來,實現代碼如下:
sContainer.Panel2.Controls.Add( 用戶空件名 );
2.3 數據庫模塊設計
服裝吊掛生產管理系統大致包含服裝款式、員工、生產工位、加工方案和產量五類數據。服裝款式是系統生產的對象,是數據庫組織的核心。它們之間的關系如圖5所示,每個款式制定在線加工方案,立即投入生產,制定備用加工方案,以備生產調整,根據加工方案分配人員和工位。
.NET提供的數據庫訪問組件ADO.NET功能非常強大,與DataSet類對象配合,可以映射出一個完整的數據庫。同時.NET還提供了功能強大的列表控件類DataGridView類,給類數據庫管理的可視化編程帶來了極大的方便[8]。
數據庫訪問的代碼實現:由于系統在運行時需要頻繁訪問數據庫,因此將數據庫數據訪問部分的代碼封裝成通用的數據庫訪問類,以便實現復用。數據庫訪問類CDataHandle的偽代碼為:
public class CDataHandle
{
private System.Data.SqlClient.SqlConnection connection;
//連接數據庫
private System.Data.SqlClient.aAdapter adapter;
//用于填充和更新數據集
private System.Data.SqlClient.SqlCommand selectCmd;
private System.Data.SqlClient.SqlCommand insertCmd ;
private System.Data.SqlClient.SqlCommand updateCmd ;
private System.Data.SqlClient.SqlCommand deleteCmd ;
…
public DataTable Select (String sqText ,DataSet ds ,
String tableName)
{
try
{
this.selectCmd.CommandText = sqlText;
this .selectCmd.Connection=this .connection;
this.connection .Open( );
if(ds.Table[tableName]==null)
ds.Table.Add(tableName);
this.adapter.Fill(ds.tableName);
this.connection.Close( );
}
Catch(Exception ex)
{
this.connection.Close( );
MessageBox.Show(ex.Message);
}
return ds.Tables[tableName];
}
…
Public void Insert(string sqlText, DataSet ds,
String tableName){…};
Public void Delete(string sqlText, DataSet ds,
String tableName){…};
Public void Update(string sqlText, DataSet ds,
String tableName){…};
}
該類對ADO. NET進行了封裝,實現了數據的查詢、插入、刪除、更新等數據庫操作,引用起來非常方便。
3 上位機軟件實現的關鍵點分析
3.1 數據的一致性
管理人員在前臺界面上操作,可能會使得后臺數據庫對多個表的數據進行Update、Insert或Delete的情形。如果前面的表數據已經更新成功而后面的表卻更新失敗,這時就會出現相關聯的數據不一致的問題。
上位機界面中使用.NET中數據操作的事務處理對象SqlTransaction來解決此問題。建立事務對象與sql命令對象綁定,由sql命令對象來負責數據操作的提交或回滾,這樣就可以達到保證數據一致性的目的。
3.2 跨線程訪問控件
在多線程編程中,經常要在工作線程中去更新界面顯示,而在多線程中直接調用界面控件的做法是錯誤的,一般采用Invoke和BeginLnvoke解決這個問題。它們的參數為委托delegate,委托的方法在Control的線程上執行,也就是平時所說的UI線程,以此來實現跨線程操作。Invoke在擁有此控件的基礎窗口句柄的線程上執行指定的委托,而BeginInvoke是在創建控件的基礎句柄所在線程上異步執行指定委托,本系統主要采用Invoke方法。
本研究設計的基于以太網和RS485總線的服裝吊掛生產控制系統將兩種通信方式混合集成使用達到了理想的效果,該系統已投入市場,系統運行穩定、操作簡單方便,用戶十分滿意。本上位機軟件操作方便,界面簡潔。通信模塊獨立于界面的設計,不僅增強了軟件的結構性,而且對多線程的操作要求降低。本文對于工業控制系統的監控管理類軟件的編寫也具有一定借鑒意義。
參考文獻
[1] 陳洪倩,陳雁,丁佳,等.服裝吊掛線生產組織分析[J].絲 綢,2012,49(1):30-32.
[2] 周旭東,宋曉霞,劉靜萍.智能服裝吊掛生產管理系統的研究[J].上海工程技術大學學報,2000,14(3):63-67.
[3] 傅菊芬.服裝吊掛生產系統的工藝分析[J].上海紡織科技,2001(6):43-44.
[4] LAN/MAN Standards Committee.IEEE Std.802.3-2005/Corl-2006 part3:carrier sense multiple access with collision detection(CSMA/CD) access method and physical layer specifications corrigendum 1[S].2006.
[5] 穆斌,羅珣.RS-485總線網絡應用中的安全與可靠性[J].光學精密工程,2003,11(2):193-197.
[6] 王林瑋.delphi7數據庫工程實用編程技術[M].北京:電子工業出版社,2006.
[7] 李煒,孫志宏,陳慶龍,等.基于.NET的服裝生產管理系統的研究與實踐[J].計算機應用與軟件,2005,22(9):127-129.
[8] 張立.C#程序設計編程經典[M].北京:清華大學出版社,2008.