1 PBS系統的總體概述
  
1.1ç¾ä»£çš„æ±½è»Šç”Ÿç”¢ç·šä¸ï¼Œç¶“常在涂è£å’Œç¸½è£ä¹‹é–“需è¦é 留一個車輛緩沖å€ï¼ˆä¹Ÿå°±æ˜¯ä¸€å€‹è‡¨æ™‚的車輛å˜å„²å€ï¼‰ï¼Œé€šéŽé€™å€‹ç·©æ²–å˜å„²å€ï¼Œä¸Šå±¤å¯ä»¥é€šéŽç”Ÿç”¢è¨ˆåŠƒä»»å‹™ä¾†å¯¦ç¾è»Šè¼›æŒ‰è¨ˆåŠƒï¼ŒæŒ‰æ¥é©Ÿï¼Œæœ‰æ¬¡åºåœ°é€²è¡Œç”Ÿç”¢ã€‚å› æ¤é€™å€‹è»Šè¼›å˜å„²å€çš„æ„ç¾©å°‡è®Šå¾—å分é‡å¤§ï¼Œå®ƒé—œç³»åˆ°æ•´å€‹ç”Ÿç”¢ç³»çµ±çš„調度效率,生產節å¥ï¼Œä»¥åŠç”¢å“質é‡ç‰ç‰ã€‚基于這個緩沖å˜å„²å€ï¼Œå¹¶ä¸”來ç¶è·å’Œç›£æŽ§é€™å€‹å˜å„²å€ï¼Œæˆ‘們把這個系統定義為PBS系統(PBS為Painted Body Store的縮寫)。PBS系統是連接汽車生產線的涂è£å’Œç¸½è£éŽç¨‹çš„一個ä¸ä»‹ç·©å˜å€ã€‚ç›®å‰ï¼ŒPBS系統已在廣州本田以åŠåœ‹å…§çš„å°‘æ•¸å¹¾å®¶æ±½è»Šå» å®¶ä¸æˆåŠŸæ‡‰ç”¨äº†ã€‚
  
1.2 PBS系統的車體å˜å„²å’Œè¼¸é€é‡‡ç”¨çš„æ˜¯æ‘©æ“¦è¼ªå¼çš„輸é€çµæ§‹ï¼Œåœ¨å˜å„²å€ä¸æœ‰4æ¢è»Šè¼›å˜å„²ç·šï¼Œ1æ¢èª¿åº¦è¿”回線(用于車輛的緊急調度)和1æ¢ä¸Šç¸½è£ç·šï¼ˆç”¨äºŽè»Šè¼›å¾žPBS庫ä¸ä¸Šä»¶åˆ°ç¸½è£ç·šé€²è¡Œç¸½é«”è£é…)。PBS系統由三套三è±Q系列的PLC進行控制,å„PLC間通éŽä¸‰è±H網連接æˆç¶²çµ¡ï¼ŒåŒæ™‚è¨æœ‰ç®¡ç†ç¾å ´è¨ˆç®—機,來實ç¾ç”Ÿç”¢ç¾å ´çš„車輛和空臺車分布情æ³çš„實時監控,并能顯示出å˜å„²å€å…§çš„車體的生產信æ¯ï¼ˆå¦‚車體的é¡è‰²ï¼Œåž‹è™Ÿç‰ç‰ï¼‰ã€‚
   
1.3 èˆ‡ï¼°ï¼¢ï¼³ç³»çµ±ç›¸é—œçš„ä¸Šä¸‹å±¤çµæ§‹ç°¡åœ–a如下所示:
å…¶ä¸ï¼¥ï¼²ï¼°æ˜¯æ‰€æœ‰åç³»çµ±çš„æœ€é ‚ç´šï¼Œï¼¥ï¼²ï¼°ï¼ˆEnterprise Resource Planningï¼‰æ˜¯ä¼æ¥è³‡æºè¦åŠƒçš„ç¸®å¯«ï¼Œå…¶ä¸åŒ…æ‹¬ç”¢å“ææ–™é‡‡è³¼ï¼Œç”¢å“ç ”ç™¼å’Œåˆ¶é€ ï¼ŒMES (Manufacturing Execution Systemæ˜¯åˆ¶é€ åŸ·è¡Œç³»çµ±ï¼‰ï¼Œç”¢å“銷售,而ï¼ï¼¥ï¼³ä¸»è¦åŒ…括焊è£ï¼Œæ¶‚è£ï¼Œå’Œç¸½è£ç‰ã€‚PBS是介于涂è£å’Œç¸½è£ä¹‹é–“的部分,監控界é¢åœ¨ç¾å ´ç®¡ç†è¨ˆç®—機上,能和底層的PLC進行雙å‘çš„é€šä¿¡ï¼Œå¾žè€Œèƒ½å¤ å°ç¾å ´é€²è¡ŒæŽ§åˆ¶ï¼Œä¾‹å¦‚è»Šè¼›èª¿åº¦ï¼Œå•Ÿå‹•åœæ¢PBS系統ç‰ã€‚
  
2 基于iFIX組態軟件的監控界é¢çš„è¨è¨ˆ
  
在PBSç”Ÿç”¢ç›£æŽ§ç³»çµ±ä¸æ‰€ç”¨åˆ°çš„組態軟件是GE Fanucå…¬å¸ç”Ÿç”¢çš„iFIX組態軟件。iFIX的圖形功能很強,支æŒå¤šç¨®åœ–å½¢æ ¼å¼ï¼Œæœ‰å¯è¿½åŠ çš„åœ–å½¢åº«ï¼Œå…§å®¹è±å¯Œï¼Œç•Œé¢çš„è¨è¨ˆï¼Œç¶²çµ¡çš„通信,數據庫的管ç†è®Šå¾—ååˆ†æ–¹ä¾¿å’Œéˆæ´»ã€‚
  
2.1監控界é¢çš„è¨è¨ˆ
  
在PBS生產監控系統ä¸ä¸»è¦åŒ…括以下幾個界é¢ï¼š
  
1 監控系統主界é¢ï¼Œç”¨äºŽæ“作人員或生產管ç†è€…在ç¾å ´ç®¡ç†è¨ˆç®—æ©Ÿä¸Šé€²è¡Œå¯Ÿçœ‹è»Šåº«ä¸æ‰€æœ‰è»Šè¼›çš„ä¿¡æ¯ä»¥åŠå„個部分所處的狀態,比如說電機是å¦å·¥ä½œæ£å¸¸ï¼Œä¸€äº›ç¾å ´æ“作盒是處于手動狀態還是自動狀態ç‰ç‰ã€‚主界é¢çš„目的是從部分上察看細節。
  
2 總覽界é¢ï¼Œæ˜¯ä¸»ç•Œé¢ä¸ç•¥åŽ»äº†ä¸€äº›æ¬¡è¦çš„ä¿¡æ¯ï¼Œæ˜¯å¾žç³»çµ±çš„æ•´é«”上進行監控系統是å¦é‹è¡Œæ£å¸¸ã€‚
  
3 å ±è¦ç•Œé¢ï¼Œåˆ©ç”¨iFIXä¸çš„å ±è¦ä¸€è¦½æŽ§ä»¶ï¼Œå°‡æ•´å€‹ç”Ÿç”¢ç³»çµ±çš„æ‰€æœ‰å ±è¦é€²è¡Œçµ±ä¸€çš„管ç†é¡¯ç¤ºï¼Œå¹¶å¯ä»¥æŒ‰ç…§ä¸€å®šçš„é †åºé€²è¡ŒæŽ’åºï¼Œå ±è¦çš„統計以åŠå ±è¦åŽçš„相應處ç†ç‰ç‰ã€‚
  
4 ç”Ÿç”¢å ±è¡¨ï¼Œåˆ©ç”¨çµ„æ…‹è»Ÿä»¶ä¸çš„æ°´æ™¶å ±è¡¨ï¼Œé€šéŽç”Ÿç”¢å ±è¡¨å¯ä»¥å¾ˆå¥½çš„實ç¾ä¸Šå±¤ç®¡ç†äººå“¡å°ç³»çµ±é€²è¡Œç®¡ç†ã€‚
  
5 車輛信æ¯ç•Œé¢ï¼Œæ˜¯é€šéŽä»¥å¤ªç¶²å¾žMES層的數據庫ä¸ç²å¾—所需的信æ¯ï¼ˆè»Šé«”çš„é¡è‰²ï¼Œè»Šé«”的型號,é‡é‡ï¼Œè»Šè¼›å…¥åº«å‡ºåº«æ™‚é–“ç‰ï¼‰ï¼Œå¹¶å°‡ä¿¡æ¯é¡¯ç¤ºåœ¨è©²ç•Œé¢ä¸ã€‚
  
6車型跟蹤界é¢ï¼Œè©²ç•Œé¢çš„ç›®çš„æ˜¯å°æ•´å€‹åº«å€é‡Œçš„車輛進行實時的記錄跟蹤,å¹¶åŒæ™‚å°SQL SERVER數據庫ä¸çš„è»Šè¼›è·Ÿè¹¤è¡¨é€²è¡Œåˆ·æ–°ï¼Œä»¥ä¾¿ç³»çµ±æ ¹æ“šç”Ÿç”¢ä»»å‹™è¨ˆåŠƒé€²è¡Œè»Šè¼›çš„è‡ªå‹•èª¿åº¦å‡ºåº«ï¼Œå¦‚åœ–b所示。

2.2 iFIXéŽç¨‹æ•¸æ“šåº«PDB(Process Database)的建立
  
iFIX采用é¢å‘å°è±¡çš„æ•¸æ“šåº«è¨è¨ˆæ–¹æ³•ï¼Œæ•¸æ“šåº«ä¸»è¦æ˜¯ä»¥æ•¸æ“šå¡Šçš„形弿§‹æˆçš„,ä¸åŒçš„æ•¸æ“šå¡Šæ‰€å¯¦ç¾çš„功能ä¸åŒã€‚å¯ä»¥å°‡å¤šå€‹æ•¸æ“šå¡ŠæŒ‰å…ˆåŽçš„é †åºé€£æŽ¥èµ·ä¾†ï¼Œå°±çµ„æˆäº†æ•¸æ“šéˆã€‚在數據éˆä¸ï¼Œæ•¸æ“šå¾žä¸€å€‹æ•¸æ“šå¡Šå‚³éžåˆ°ä¸‹ä¸€æ•¸æ“šå¡Šä¾†å¯¦ç¾ä¸€äº›åŠŸèƒ½çš„çµ„åˆï¼Œæ•¸æ“šéˆèƒ½å¤ 讀å–åº•å±¤çš„æ•¸æ“šï¼Œç”¢ç”Ÿå ±è¦å¹¶è‡ªå‹•å®ŒæˆæŸå€‹éŽç¨‹ã€‚è¦æ¨¡è¼ƒå¤§çš„éŽç¨‹æŽ§åˆ¶ç³»çµ±åŒ…括較多I/O點,用簡單的數據塊實ç¾èµ·ä¾†è¼ƒç‚ºå¾©é›œï¼Œå› æ¤å¯ä»¥é€šéŽè¨è¨ˆå¤šå€‹æ•¸æ“šéˆï¼Œæ¯ä¸€æ¢éˆå®ŒæˆæŸä¸€åŠŸèƒ½ï¼Œæˆ–å¯¦ç¾æŽ§åˆ¶éŽç¨‹çš„æŸä¸€ç‰¹å®šåŠŸèƒ½ï¼Œé€™æ¨£å°±å¯ä»¥ä½¿å•題簡化。
  
在PBS系統è¨è¨ˆä¸ï¼Œç‚ºäº†è®€ï¼ˆå¯«ï¼‰PLCä¸è¨å‚™çš„æ•¸å€¼ï¼Œé‡‡ç”¨äº†DI塊(數å—é‡è¼¸å…¥å¡Šï¼‰ï¼ŒDO塊(數å—é‡è¼¸å‡ºå¡Šï¼‰ï¼ŒAI塊(模擬é‡è¼¸å…¥å¡Šï¼‰å’ŒPG塊(程åºå¡Šï¼‰ç‰ã€‚
  
2.3 監控系統的事件調度
  
åœ¨å¯¦éš›ä¸æœ‰ä¸€äº›ä»»å‹™å¸Œæœ›åœ¨ç‰¹å®šçš„æ™‚間或時間間隔進行,或éŽç¨‹ç™¼ç”Ÿè®ŠåŒ–時進行,這就是所謂的調度å•題。在iFIXçµ„æ…‹è»Ÿä»¶ä¸æœ‰å…©ç¨®èª¿åº¦ï¼Œåˆ†åˆ¥æ˜¯åŸºäºŽäº‹ä»¶çš„èª¿åº¦å’ŒåŸºäºŽæ™‚é–“çš„èª¿åº¦ï¼Œç‚ºäº†èª¿åº¦é€™äº›ä»»å‹™ï¼Œéœ€è¦æ ¹æ“šå¯¦éš›éœ€æ±‚定義觸發這些動作的時間或事件。下é¢çš„這段代碼是判斷æŸå€‹è»Šä½æœ‰ç„¡è»Šè¼›ä»¥åŠåœ¨å„個æ¢ä»¶ä¸‹ç›¸æ‡‰çš„åšä½•種æ“作。
  
事件調度腳本程åºå¦‚下:
  
Private Sub Vehicle_OnTrue() // 調度事件發生æ¢ä»¶ FIX32.FIX.STATE.F_CV為真時
  Dim a as variant // 定義一個變é‡aç”¨äºŽå˜æ”¾å¾žSTATEä¸å–出的值
  Dim b as Boolean // ç”¨äºŽå˜æ”¾å¾žDB䏿Ÿ¥åˆ°è©²è»Šä½æœ‰ç„¡è»Šçš„æ¨™å¿—ä½
  a = readvalue ( “Fix32.Fix.STATE.F_cv†) //讀å–STATE標簽ä¸çš„值
  If a = 1 then
  b = state(1) //stateç‚ºé—œç³»æ•¸æ“šåº«ä¸æ¨™å¿—æŸå€‹è»Šä½æœ‰ç„¡è»Šè¼›çš„å—æ®µ
   if b = TRUE Then
   User.Veh.CurrentValue = 1 // 該ä½ç½®è»Šè¼›å¯è¦‹,Veh是全局變é‡ï¼Œåˆ¤æ–·è»Šè¼›å¯è¦‹
   PBS.Vehicle.Foregrount = Rvalue(1) // 將車的é¡è‰²è¨ç½®æˆå¾žæ•¸æ“šåº«ä¸æŸ¥åˆ°çš„é¡è‰²
  PBS.type.visible = True //標志車輛類型的文本typeå¯è¦‹
   PBS.type.captain = typename(1)//將該車ä½type與DBä¸typenameç›¸å°æ‡‰
   end if
   while a = 1 //ç‰å¾…著標簽STATEä¸å€¼çš„變化
   a = readvalue ( “FIX32.FIX.STATE.F_CV“ )//䏿–·çš„è®€å–æ¨™ç°½ä¸çš„值
   Doevents //å…許æ“作系統處ç†ç‰å€™åœ¨éšŠåˆ—ä¸çš„事件和信æ¯
   wend
  end if
   if a = 0 then
   User.Veh.CurrentValue = 0 // 該ä½ç½®çš„車輛ä¸å¯è¦‹ï¼ŒVehè¨ç½®ç‚º0
   PBS.type.visible = False // typeä¸å¯è¦‹
   End if
   Call SeekDB( 1,2 ) // 更新關系數據庫ä¸çš„下一個ä½ç½®ï¼ŒSeekDB是更新數據庫表ä¸è¨˜éŒ„的函數
  End sub
  
3 PBS系統ä¸MITSUBISHI Q PLC的簡介
  
在PBS生產監控系統ä¸åº•層所使用的是三è±å…¬å¸ç”Ÿç”¢çš„Q系列PLC,PLC Type 為:Q12H。QCPU主è¦å…·æœ‰å¦‚下新特點:
  (1) å¯æŽ§åˆ¶è¼ƒå¤šçš„I/O 點;
  (2) å¯ä»¥å¯¦ç¾é«˜é€Ÿè™•ç†ï¼›å¯ç·¨ç¨‹æŽ§åˆ¶å™¨çš„部分類型,已經實ç¾äº†é«˜é€Ÿè™•ç†ã€‚(例如當使用LD指令時,Q12HCPU,0.034µs);
  (3) 通éŽèˆ‡GX Developer 的高速通訊æé«˜èª¿è©¦æ•ˆçŽ‡ï¼›
  (4) 坿供AnS 系列I/O模塊或特殊功能模塊: å°äºŽQ 系列,如果沒有é©ç•¶çš„æ¨¡å¡Šï¼Œå¯é€šéŽä½¿ç”¨QA1S65B/QA1S68B 擴展基æ¿å–®å…ƒï¼ŒAnS 系列I/O 模塊或特殊功能模塊也å¯ç”¨äºŽQCPU。
  
4通信部分的è¨ç½®
  
4.1 PLCä¸çš„ç¶²çµ¡åƒæ•¸è¨ç½®
  
PBS系統和底層PLC間的通信方å¼é‡‡ç”¨çš„æ˜¯OPC(OLE for Process Control) ,OPC的出ç¾ç‚ºåŸºäºŽWindows的應用程åºå’Œç¾å ´éŽç¨‹æŽ§åˆ¶æ‡‰ç”¨å»ºç«‹äº†æ©‹æ¢ï¼ŒPLC的通訊模塊采用的是QJ71E71。
  
é€šä¿¡åƒæ•¸åœ¨PLC開發軟件GX Developer 上進行è¨ç½®ï¼ŒNetwork parametersä¸çš„MELSECENT/Ethernetè¨ç½®å¦‚下:
  
èµ·å§‹I/O號: 寫入QJ71E71模塊所æ’çš„I/O槽起始地å€
  網絡號: å³Ethernetçš„network ID(例如:1)
  æ“作è¨ç½®ï¼š binary或ASCII,é¸binary
  IP地å€å’Œæ•¸å—æ ¼å¼ï¼š 鏿“‡ä¸€ç¨®æ ¼å¼å¹¶æ ¹æ“šæ ¼å¼å¯«å…¥IP地å€
  é‹è¡Œä¸å…許寫入: é¸ä¸å¾©é¸æ¡†è¡¨ç¤ºé‹è¡Œä¸ç›£è¦–的變é‡å€¼å¯ä¿®æ”¹
  在開放è¨ç½®ä¸é¸å®šé…置端å£è™Ÿï¼šæ³¨æ„æ•¸å—æ ¼å¼è½‰æ›ï¼Œå¦‚åå…進制的2000表示的端å£è™Ÿç‚º8192é€šè¨Šæ ¼å¼é¸TCP, unpassive,其余用默èªè¨å®šå³å¯ã€‚
  
4.2 在iFIXçš„éŽç¨‹æ•¸æ“šåº«ï¼ˆPDB)ä¸è¨ªå•OPC Server
  
å·¥ä½œè‡ºèƒ½å¤ ä½¿ç”¨ä¸€å€‹OLE for Process Control(OPC)æœå‹™å™¨ç™¼é€å’ŒæŽ¥æ”¶æ•¸æ“šã€‚通éŽå®Œæˆå¡Šçš„I/O驅動器域,您å¯ä»¥é…置任何數據庫塊接收和發é€OPC數據。
  OPC地å€èªžæ³•如下所示:
  ServerName; GroupName; ItemID; AccessPath
  其ä¸ServerName是OPCæœå‹™å™¨çš„åå—,GroupName是è¦è¨ªå•çš„OPC組的åå—,ItemID是è¦è®€å¯«çš„OPCé …ç›®çš„åå—。AccessPath是å¯é¸é …,它指示æœå‹™å™¨å¦‚ä½•è¨ªå•æ•¸æ“šã€‚
  最終的é…置如圖c所示:
4.3 MelsecExplorerçš„è¨ç½®
  
在實際生產ä¸ï¼Œé€šéŽMelsecExplorer軟件來采集來自PLC的底層信號,å†å’ŒPowerTool軟件實ç¾é€šä¿¡ï¼Œå°‡ç¶“éŽè™•ç†çš„信號最終傳éžçµ¦iFIXéŽç¨‹æ•¸æ“šåº«ï¼ˆä¾†å¾žåº•層進行信號采集)起到監控的效果。在MelsecExplorerä¸çš„Editèœå–®ä¸‹é¸æ“‡Portsé¸é …,在General䏋鏿“‡Ethernet,所進行的è¨ç½®å¦‚圖d所示:

å…¶ä¸å„åƒæ•¸èªªæ˜Žå¦‚下:
   Protocol: 通信方å¼é¸ç”¨TCP/IP
   Host: 默èªç‚ºæœ¬æ©Ÿç¶²çµ¡æ¨™è˜ï¼Œé€™é‡Œæ˜¯jonsonn
   IP: 本機IP地å€
   Port: 計算機讀數端å£ï¼Œè¨ç½®ç‚º0å³å¯
   MELSEC IP: PLC以太網的IP地å€ï¼Œèˆ‡ç”¨PLC編程軟件è¨ç½®çš„端å£ä¸€è‡´
  
MELSEC Port: PLC的端å£ï¼Œèˆ‡ç”¨PLC編程軟件è¨ç½®çš„端å£ä¸€è‡´ï¼ŒPLC的端å£è¨ç½®ç‚º1388。新建數據塊,數據塊需在所新建的端å£ä¸‹ï¼Œå¹¶ç¬¦åˆç›¸æ‡‰çš„PLC類型,在新建的數據塊下建立所需è¦é€šè¨Šçš„æ•¸æ“šé»žã€‚這樣完æˆOPC SERVERçš„è¨ç½®ï¼Œå°±å¯ä»¥ç”¨æ¨™æº–çš„OPC PowerTool來從底層PLCä¸è®€å–數據了。
  
5總çµ
  
本文介紹了PBS系統的定義,用途以åŠç™¼å±•。并在iFIX組態軟件的基礎上,以昌河鈴木汽車為例從PBS生產監控系統界é¢çš„è¨è¨ˆï¼ŒéŽç¨‹æ•¸æ“šåº«çš„建立,事件調度的è¨è¨ˆç‰æ–¹é¢é€²è¡Œäº†è«–è¿°ã€‚åŒæ™‚介紹了利用OPC SERVER和三è±PLC開發軟件進行一些é…置,以åŠiFIX組態軟件和底層PLCé–“é€šä¿¡å¯¦ç¾æ‰€è¦é€²è¡Œçš„è¨ç½®ï¼Œæœ€çµ‚實ç¾äº†ä¸Šå±¤å’Œåº•層å¯é 的通信并能實時的監控PBS庫ä¸çš„車輛狀態。通éŽå¯¦éš›çš„調試é‹è¡Œï¼Œæœ€çµ‚å¯é 的實ç¾äº†è»Šè¼›çš„å¯é 調度和跟蹤顯示記錄ç‰åŠŸèƒ½ã€‚
  
åƒè€ƒæ–‡ç»
  1 iFIX3.5çµ„æ…‹è»Ÿä»¶çš„é›»åæ›¸ï¼Œintellution Inc,2003
  2 王平,iFIX組態軟件在鋼éµå» 在生產調度監控系統ä¸çš„æ‡‰ç”¨ï¼Œ2002
  3 馬國è¯ï¼Œç›£æŽ§çµ„態軟件åŠå…¶æ‡‰ç”¨ï¼Œæ¸…è¯å¤§å¸ï¼Œ2001
  4 MITSUBISHI Q系列以太網系統用戶åƒè€ƒæ‰‹å†Š