張強,張硯,屈揚
(西門子工廠自動化工程有限公司西安分公司,陜西 西安 710003)
隨著PROFINET、PROFIBUS等相關總線技術的快速發(fā)展,工控現場控制器之間或者控制器與設備之間使用總線通信技術可大大減輕布線工作量,減少故障發(fā)生點,易于系統(tǒng)工藝更新和狀態(tài)監(jiān)控。S7-200 SMART控制器通過PROFINET總線通信方式,控制V90伺服驅動器實現高速運動控制已成當前使用熱點,有必要對相關問題進行研究。
圓盤均勻打孔設備,需要每次控制轉盤上的工件走60度(該角度可以通過上位機更改),角度定位完成之后,打孔設備進行打孔,打孔完成繼續(xù)走60度,準備下一次打孔。一個工件打滿6個等間距的圓孔后,工件拿走并放入新的工件繼續(xù)打孔。
圓盤打孔設備中控制器采用S7-200 SMART以及相關的DI/DO點。驅動器采用SINAMICS V90伺服驅動器(PN類型),選用低慣量、增量式編碼器電機[1,2,3](見下表1所示)。
表1 研究環(huán)境
軟件使用STEP7 MicroWin SMART V2.5版本,且CPU固件版本為V2.5。V90組態(tài)軟件使用VASSISTANT V1.05版本[4]。
GSD文件的添加:V90做PROFINET IO設備時需要在STEP7 MicroWin SMART軟件中單擊“GSDML管理”安裝GSD文件后,S7-200 SMART才能在組態(tài)中選擇V90(見下圖1),需要注意的是STEP7 MicroWin SMART支持GSDML規(guī)范2.33或更早版本。
圖1 S7-200 SMART添加GSD文件
S7-200 SMART控制器設置如圖2所示,其中發(fā)送時鐘默認是1.0ms,無法更改,表示設備在一個確定的時間間隔內提供新數據的能力,即S7-200 SMART控制器能以最快1.0ms的時間間隔給V90發(fā)送數據,且不必每1.0ms都是更新的數據。啟動時間是指S7-200 SMART等待通信的所有V90啟動完成的時間,建議適當設置長一點。
圖2 S7-200 SMART控制器設置
S7-200 SMART報文配置如圖3所示,其中更新時間是指與S7-200 SMART所通信的所有V90數據更新的最大時間,更新時間的組成單位即是上文中的發(fā)送時鐘。數據保持是用來設置看門狗時間的,即看門狗時間等于數據保持乘以更新時間。舉例說明更新時間與發(fā)送時鐘之間的關系[6,7],假設一個總線系統(tǒng)連接了3個設備,設備1每1ms發(fā)送一次數據,設備2每2ms發(fā)送一次數據,設備3每4ms發(fā)送一次數據,則更新時間與發(fā)送時鐘之間的關系見如4所示。
圖3 S7-200 SMART PROFINET報文配置
黃色框表示設備1發(fā)送的數據,因其發(fā)送周期是1ms,與發(fā)送時鐘1ms時間相同,故其在每次發(fā)送時鐘更新數據。綠色框表示設備2發(fā)送的數據,因其發(fā)送周期是2ms,故其間隔一個發(fā)送時鐘后更新數據。紅色框表示設備3發(fā)送的數據,因其發(fā)送周期是4ms,故其間隔三個發(fā)送時鐘后更新數據。一個更新時間4ms后,所有設備數據都得到了刷新,所以更新時間要大于或等于所有IO設備中發(fā)送周期最大的那個時間。
圖4 更新時間與發(fā)送時鐘關系
在使用V-ASSISTANT軟件對V90進行通信組態(tài)時,根據圓盤打孔控制工藝,只能選擇“111報文”,控制模式選擇“基本定位器控制(EPOS)[8,9]”。設置機械結構如圖5所示。
圖5 V90 PROFINET通信機械結構設置
這里設置360000LU=360°,那么1000LU=1°。SINA_POS指令中的Position引腳位置值的單位是LU,所以在設置Position變量數值時需將實際度數乘以1000后的積給此變量;SINA_POS指令中的Velocity引腳速度的單位是1000LU/min,等于1°/min,在設置速度值時需了解。例如,需讓負載轉動60°,那么應該設置Position變量數值是60×1000LU=60000LU;速度Velocity變量設置為3600,即3600°/min,等于10轉/min。為簡單起見,設置齒輪箱系數為1:1。
基于STEP7 MicroWin SMART編程軟件,采用軟件自帶的庫指令SINA_POS可實現對V90的伺服位置控制;使用SINA_PARA_S指令可實現對V90中參數的讀取。根據圓盤打孔控制工藝,其控制流程如圖6所示:
圖6 圓盤均勻打孔控制流程圖
數據初始化:必須設置速度超馳(范圍0~199%)、加速度超馳(范圍0~100%)、減速度超馳(范圍0~100%)和ConfigEpos變量(如圖7所示)。其中,ConfigEpos變量的初始值必須是3,以保證不激活OFF2和OFF3停止(如圖8所示)。
圖7 運動控制初始化
圖8 ConfigEpos變量位功能說明
發(fā)送V90啟動信號:因為V90本身掃描周期的原因,當S7-200 SMART的掃描周期時間小于V90本身掃描周期時間時,S7-200 SMART的啟動信號V90無法獲取,導致V90無動作。這時需要將啟動信號進行短暫保持,保持時間大于等于V90本身掃描周期時間。本例中設置保持時間是30ms(如圖9所示)。
圖9 V90啟動信號的延遲
進行打孔操作:使用庫指令SINA_POS進行轉盤的旋轉運動控制(如圖10所示),引腳ModPos設置為1,走相對定位運行模式(在此模式下,無法在軸運行期間通過引腳Velocity實時更改速度值,但可以通過速度超馳變量實時更改),此時軸不必回零或絕對值編碼器可未被校正。CancelTraversing和IntermediateStop引腳必須為常1信號觸發(fā),且要先于軸使能引腳EnableAxis和執(zhí)行引腳Execute操作。軸的運動方向由Position的正負號決定。容易出錯的引腳Control_table必須使用間接尋址方式配置,即“&+變量地址”方式,否則會直接影響CPU上數字量輸入I點的狀態(tài)。
圖10 SINA_POS指令配置
讀取V90參數:S7-200SMART庫指令SINA_PARA_S用于管理非周期參數[10](如圖11所示),即可以讀取PROFINET通信(包含周期性通信和非周期性通信)中非周期通信時驅動器的參數。如果僅僅使用單個SINA_PARA_S讀取V90中的某個參數是沒有問題的,但是如果有多個參數想要同時讀取,多個SINA_PARA_S指令同時使能讀取,指令會報錯,結果也不對。這里提供一種解決辦法:采用定時輪詢的方法,假設有兩個(多個同樣適用)SINA_PARA_S指令需要讀取參數,第一秒第一個SINA_PARA_S指令的EN和Start引腳同時等于1,讀取參數;第二秒第一個SINA_PARA_S指令的EN和Start引腳同時等于0;第三秒第二個SINA_PARA_S指令的EN引腳等于1;第四秒第二個SINA_PARA_S指令的Start引腳等于1,讀取參數;第五秒第二個SINA_PARA_S指令的EN和Start引腳同時等于0。這樣,五秒一個輪詢周期,可保證兩個SINA_PARA_S指令讀取結果的正確性?,F場如果對實時性要求較高,可適當修改輪詢周期時間。
圖11 SINA_PARA_S指令配置
基于PROFINET通信的S7-200 SMART與V90伺服控制,結合圓盤均勻打孔控制工藝,在實際測試中取得了預期效果。