摘要:本文主要講述了西門子S7-1200系列CPU在汽車內飾產品檢驗上的應用。結合S7-1200CPU的性能和TIAPortalV10.5的編程平臺,實現了對產品的檢驗,同時通過TCP方式采集保存檢測數據,并能在同一平臺上對不同產品進行檢測。
項目簡介
這是一個技改項目,原項目是采用單片機加上數據采集卡控制一個帶步進電機的測試臺,其主要應用目的是用于模擬汽車遮陽板上的鏡蓋反復開合,并將在開合過程中不同位置時得到的力矩值通過數據采集卡采集并發送給上位計算機,從而獲取整個開合過程的曲線,再根據試驗的次數等數據來判定測試樣本是否合格。然而,在實際應用中,用戶發現原方案在使用中存在步進電機發生失步的現象,從而影響測試結果的準確性。用戶決定將控制系統改成
PLC,在與用戶經過反復論證之后,zui終采用了西門子的SIMATICS7-1200系列PLC。
工藝流程介紹 主要的工藝流程如圖1所示,S7-1200通過高速脈沖輸出控制步進電機運動,步進電機驅動絲桿上所安裝的開合測試裝置,實現往復運動。步進電機所帶的旋轉編碼器將當前的運動位置反饋給PLC,同時開合測試裝置上的力矩傳感器則將當前位置的力矩以模擬量形式傳送給PLC,PLC則將這2組采集到的實時數據按照一定順序存儲在內部的數據塊中,當完成一次開合運動之后,就將這個運動過程中的所采集數據發送給上位機,并在上位機的界面上描繪出本次運動相關采集數據的曲線。如此周而復始,當完成一定次數的規定動作后,即完成了樣本的測試工作,根據樣本試驗次數的不同,上位機還需要將特定次數的采集數據保存成Excel文件以便日后查看,同時用戶也能以手動方式保存任意一次的采集數據。
方案確立
本項目從機械結構上看相對簡單,因此S7-200CPU224-XP和S7-1200CPU1214都能很好地完成步進電機控制,高速數據采集等控制任務。但是,由于單個測試動作的周期很短,zui大周期只有6秒鐘左右,而整個測試過程較長,需要幾百上千次的重復周期性動作,數據的采集周期僅為5ms,那么一個動作周期下來,采集到的數據約為1200個,4800字節,因此高頻率周期性實時的高速的數據傳送是本項目的一個zui大的技術難點之一。
S7-200在不增加CP模塊的情況下只能利用本機的RS485接口來完成通訊任務,RS485接口是半雙工的,zui高串行通訊波特率為115.2K,每次通訊傳送的字節數上限255個字節,那么這些數據需要近20次的通訊才能傳送完畢,因此數據傳送過程復雜,傳送效率低下,數據傳送的可靠性不能保證。
而S7-1200則可以直接利用本機集成的PN接口,RJ45接口,100M全雙工,支持TCP/UDP通訊,一次通訊zui大數據交換能力為8K字節,可以通過標準網線與上位機進行直連,本項目涉及的數據可以在一個測試周期內一次傳送完畢,并且還有能力出錯再發,確保數據傳送的效率及可靠性。
雖然S7-200也可以通過擴展CP243-1通訊模塊來實現上述功能,但S7-1200集成的優勢及成本上的差距是顯而易見的,zui終S7-1200成為本項目PLC選型的*選擇。
在上位機方面,原考慮采用WinCC作為監控及數據采集分析軟件,但經過一些研究發現,如果根據用戶所要求的技術參數,是根本不能滿足應用要求的。如前所述,因為測試的運動行程相對較短,運動速度也比較高,同時為了描繪出比較真實的曲線,必須增加采樣的次數與頻率,這導致采樣周期遠遠小于WinCC的采樣時間。如果考慮3秒鐘的采樣曲線顯示時間,那上位機必須在3秒鐘之內完成數據的接收,自動保存及圖形描繪這幾項主要任務,每6秒鐘一個工作周期,同時還要兼顧常規的操作及用戶對于數據的隨機查詢及即時保存任務,因此這也是本項目的另一個重大的技術難點。
經過多次的實驗驗證及對方案的反復論證,zui終采用如下系統方案:(1)由S7-1200實現測試運動的控制,數據的高速采集,本地存放,及利用集成的PN接口實現與上位機TCP/UDP通訊,傳送采樣數據包。(2)用VB開發一個的數據處理程序,通過以太網接口接收S7-1200發送的采樣數據,保存數據,根據采樣數據描繪測試過程曲線。(3)利用WinCC作為操作界面主平臺,完成測試系統工作參數的設置,常規邏輯操作,以及一些過程數據的顯示等,同時作為主界面調用的數據處理程序,把兩者有效的集成在一起,使用戶不認為這是2個不同的應用。
產品硬件配置
由于屬于改造項目,測試臺的機械部分包括步進電機幾乎沒有更改,只是加裝了一個尋參的接近開關。電氣部分,用戶自己裝配了一個小型的電氣控制箱,主體就是一個CPU1214DC/DC/DC,硬件的連接主要就是步進電機控制信號,步進電機的位置反饋編碼器信號,力矩測量信號,以及用于控制啟停和急停的信號。上位機部分使用的是安裝了WinCC組態軟件的普通商用電腦。
軟件開發
表格1,IO分配表
PLC程序的開發主要分為三部分,⑴步進電機的控制,⑵高速數據的采集,⑶與上位機的通訊。
*部分,步進電機的控制主要利用的是TIAPortal軟件中集成的工藝對象中的軸控制功能來實現的。根據TIAPortal軟件提供的導向,把項目中的機械數據輸入相關參數,我們可以十分便捷完成運動軸的組態。主要的參數包括選擇硬件接口,脈沖數,速比,脈沖反饋,極限位置,尋參方式等等。由于步進軸不支持實際物理位置的反饋,因此本項目中又另外定義了一個高速計數器的輸入作為步進電機實際運動位置的反饋輸入,根據項目實際情況進行設置。界面如圖2所示:
運動軸組態完之后,就可以利用軟件自帶的運動控制庫中的功能塊進行編程了,對應的功能塊的說明都能在幫助中找到,這給初次接觸這些功能塊的編程員提供了很大的幫助,同時西門子還提供了專門的電子文檔詳細介紹了這個功能。在這個項目中,采用的是軸的定位功能,使用的控制功能塊是MC_MoveAbsolute,如圖3所示。這個項目中測試的產品是遮陽板中的鏡蓋開合能力,因此步進電機需要來回運動,速度和運動的距離及位置都可以在上位機上進行設置,同時到達位置后,并不是馬上反向運動,而是會有一個小的停頓。
通過軸功能中加速度參數的調整,可以使步進電機在zui短時間內達到設定轉速,同時又不會失步,從而保證了測試運動的可靠性。
第二部分,高速數據采集也是本項目能夠順利實施的重要環節,zui初的方案是采用時間中斷進行數據采集,每5毫秒采集一次數據,S7-1200可以很輕松地實現,然而在試運行的過程中發現,測試行程及速度的不同,固定周期的數據采集往往遺漏了測試過程中一些關鍵位置點的數據,從而容易造成曲線的失真。又經過反復的論證,在確定了測試裝置可能的zui大的運動速度及連續2個采樣位置的可能的zui小間隔之后,我們轉而采取了位置中斷的數據采集方式,雖然運算量增加的許多,但在規定參數范圍內,S7-1200還是能夠出色的完成數據的采集任務,反復試驗的效果也很好,用戶也認可了此方案。如圖4所示,在每次中斷的時候,當時的力矩以及對應的位置都很被送入數據塊中。
第三部分,當測試工件往復一次運動之后,PLC需要將這次運動過程中采集到的數據發送到上位機去,這本項目中采用的是TCP通信,PLC程序中調用的是TSEND_C功能塊,具體的連接參數設置如圖5所示
在調用功能塊的時候,如圖6所示,只要設置好通信長度,以及發送數據塊的地址,當需要發送時,用上升沿觸發發送請求即可。
上位機的VB數據處理程序的通訊部分,其主體就是利用WinSock控件與PLC建立通訊連接,并通過用戶數據文報協議(UDP)或者傳輸控制協議(TCP)進行數據交換。這兩種協議都可以用來創建客戶與服務器應用程序。在運行時WinSock控件只在后臺運行。本項目中我們使用的是TCP協議與PLC通訊。TCP是基于連接的協議,即數據傳輸前必須先建立連接,這也是上面提到的TSEND_C功能塊的主要功能之一。
具體通訊過程如下:VB數據處理程序通過PLC的IP地址和的端口號,與PLC建立通訊尋連接。PLC在采集測試樣本往復運動一次的過程數據后,通過TSEND_C通訊功能塊將采樣數據發送給上位機的VB數據處理程序。VB數據處理程序通過WinSock控件在后臺接收到TCP數據包后,根據設定的數據格式提取采樣數據,并將提取到的采樣數據保存成格式數據文件,同時這些采樣數據也被輸入到趨勢曲線顯示控件中,由趨勢曲線顯示控件把測試過程曲線顯示在屏幕上。除了系統自動保存規定的數據以外,用戶也可實時地手動保存任意一次的采樣數據。
項目結果
該項目是我公司*個以S7-1200為主控制器來實施的小型綜合性項目,實施以來,已穩定運行1年多,達到了技改的目的,得到了用戶的認可與好評,同時也充分體現了S7-1200*性能與可靠性。
應用體會
高速數據采集及圖形處理一直都是單片機,PC數據采集卡等設備的應用領域,本次項目改造是西門子小型PLC在這個應用領域的一次十分有益的嘗試,并且取得了很好的效果,開發周期短,產品性能可靠,工作穩定,易于操作維護,適合批量生產,這表明隨著技術的不斷進步,以S7-1200為代表的小型PLC的技術能力又有了突飛猛進,*有能力在一些以前沒有涉及的新的應用領域取得應用上的突破,開拓新的應用市場。