吳連偉,王平,司會萍,鞠濤濤,張世軍,張建
(濰柴動力股份有限公司 一號工廠,山東 濰坊 261061)
隨著“中國制造2025”戰略的逐步推進,以自動導引運輸車(AGV,Automated Guided Vehicle)為代表的新一代智能控制運送小車技術,越來越廣泛地應用在各大企業[1]。
而S7-1200可編程邏輯控制器(PLC,Programmable Logic Controller)集成以太網接口和很強的工藝功能,適合要求簡單或高級邏輯、人機交互(HMI,Human Machine Interface)和網絡功能的小型自動化系統,可用于柔性制造系統的研究與發展[2]。
本文設計了基于PLC控制的自動導引小車,設計制作AGV車體結構、硬件電路及其外圍控制電路,對差速原理進行論述并研究基于PLC的AGV自動運送小車控制,可按照既定路線實現AGV自動導引運送功能,滿足現代生產對物流系統、生產車間自動搬運作業的高要求。
自動引導小車AGV是自動化物料倉儲中物料運輸和柔性生產組織系統中的關鍵設備[2],是多種技術融合的體現,涉及傳感器技術、控制技術、導航技術、機電一體化技術等領域[3]。
PLC在工業控制領域使用最廣泛,擴展性最強,程序通用性強,并且以穩定性好、可靠性高、擴展能力強而著稱,隨著科技的發展,PLC的功能也來越強大。例如西門子的S7-1200PLC,有非常豐富的接口種類,支持高級語言編程(SCL,Structured Control Languge),能進行復雜的邏輯運算。因此選取PLC作為AGV的車載控制器。
研制基于色帶/磁條的AGV原型車,用來測試AGV循跡的算法及控制程序;研制激光導航的AGV控制系統,采用視覺成像系統,并對AGV循跡控制偏差、AGV繞固定點旋轉運動仿真,最終實現最優路徑規劃。
自主設計AGV車體(如圖1),由視覺導航相機、電池組、激光防碰、控制柜伺服系統等功能件組成,實現AGV小車的自動運行。行駛功能部分采用2輪驅動、4輪輔助行走機構,通過PLC控制、設計PID差速變道控制技術實現AGV小車的自動運行,能夠實現直線、轉彎行走、遇到障礙自動停、手動牽引等功能,最大運行速度為60 m/min。

圖1 AGV車體

圖2 AGV實體
AGV運行基于視覺成像原理,輔助顏色導軌和位置碼帶,采用位置導引視覺系統PGV100,對彩色條碼進行非接觸式定位,實行數據矩陣控制代碼讀值,設定通過速度為40 m/min。
小車運行為轉角速度控制,根據視覺導航反饋的角度及時調節兩驅動電動機速度差來修正運行軌跡。電動機速度是輪速度與變比乘積后與輪周長的一個比值。當AGV在一定范圍內直線行走時,PGV視覺導航傳感器掃描色帶傳回偏移量信號,設定左輪(右輪)速度不變,右輪(左輪)速度為左輪(右輪)速度與偏移量的差值,從而實現AGV小車轉向行駛。其中,偏移量的差值附帶三次測定系數。
運行中左右輪的速度關系計算:假設AGV右主動輪和左主動輪與地面僅僅存在純滾動接觸,其中O點為AGV瞬間回轉中心。當AGV向左向轉動時,需要使AGV右輪速度大于左輪速度,因右主動輪和左主動輪運動軌跡系一段圓弧,如圖3所 示,A 點為AGV旋轉中心點,根據角速度相等得

圖3 AGV循跡計算邏輯
式中:vL為AGV左主動輪速度;vR為AGV右主動輪速度;vC為AGV速度;D為兩驅動輪輪距;R為AGV轉彎半徑;w為AGV轉動角速度。
兩輪中心到A點的距離轉彎半徑設為R。則左右輪轉彎半徑為R,其AGV速度和轉動角速度計算公式如下:
在AGV行駛過程中,需要使用電動機控制器對AGV的左右輪進行不同的速度控制,以實現六輪AGV的軌跡調整,本文的AGV采用的是差速驅動運動方式,使用兩個電動機控制器對AGV的左右主動輪進行不同的速度控制,4個驅動輪用來保證AGV運動的平穩性。通過電動機控制器對AGV的左右主動輪進行調整,可以實現AGV小車的直行、轉彎、原地旋轉等運動方式。其中,AGV不同的左右主動輪速度對應著不同的AGV運動狀態。
也許,這才是人間煙火氣吧。易非想。陳留的腳會臭嗎?他看起來那么潔凈,都像有潔癖似的,肯定不會。若會,我會強迫他換襪子的,上午換一雙,下午再換一雙……想到這兒,易非笑了,笑過之后,倒在黑暗中不好意思的紅了臉,盡管這黑暗中的胡思亂想沒有人能察覺到。
當vL-vR=0且vL≠0時,
此時,右輪速度大于左輪速度,AGV為右轉運動狀態。
當vL-vR=0<0、vL<vc<vR時,
此時,右輪速度大于左輪速度,AGV為左轉運動狀態。
當vL+vR=0時,vL=-vR,R=0,此時,AGV做原地旋轉運動。
本文AGV采用差速驅動運動方式,首先對AGV差速驅動運動方式的理論進行分析,其次是通過將理論應用到實際,通過電動機控制器控制AGV左右輪的運動速度,最終實現AGV直行、左轉、右轉及原地旋轉的運動狀態。
本文的AGV是沿著色帶二維碼進行識別運動,在AGV底部安裝一個視覺圖像信息采集傳感器,該傳感器通過獲取AGV當前的位置信息并對該位置信息做出判斷。在最初小車行走過程中,AGV會發生一些抖動,輪子軌跡會出現位置偏差,AGV不能自動調節運動軌跡,此時就會產生位置偏移,因此需要對位置偏移做出判斷,判斷AGV是左偏移還是右偏移,并通過PLC對驅電動機控制器進行控制,對其運動偏差進行計算,使其能夠穩定地沿著色帶二維碼運行。AGV控制流程如圖4所示。

圖4 AGV控制流程圖
在小車前后運動過程中,以驅動輪中心點為中心,小車兩個驅動輪中心在運動過程中相對于引導線的中心位置會發生變化,通過傳傳感器測量方式可知:小車朝向右偏時,偏移角度為負,即θ1為負;小車朝向左側偏移時,偏移角度為正,即θ2為正,當傳感器在碼帶左邊時偏移量Y值為正,傳感器在碼帶右邊時偏移量Y值為負。因為在安裝過程中,傳感器與小車兩驅動輪連線的中心點并不重合,兩者之間的距離為d,如圖5所示。

圖5 驅動輪轉動示意圖
同理可證,當傳感器在碼帶右邊時,即偏移量Y值為負時,小車驅動輪連線中點的實際偏差量計算公式為
經研究論證,通過此方法修正小車運行過程中的偏移量,能夠大大提高小車在運行過程中的平穩性。
PID(Proportion Integration Differentiation)控制器是以比例、積分、微分3種運算聯合并組合成控制量進行偏差控制,通過對Ki、Kp、Kd等參數進行調整,以實現對AGV運動軌跡偏差的控制軌跡。如圖6所示,給定一個輸入值r(t),最后輸出一個輸出值y(t),并將輸入值和實際輸出值進行做差,獲取偏差值,通過PID 算法進行偏差值控制,最終獲取一個控制量輸出u(t)。

圖6 PID控制系統原理框圖
式中,Ti為積分時間常數。
增量式PID(Proportion Integration Differentiation)在控制運動偏差方面應用較廣,該算法在PID算法的基礎上將當前時刻和上一時刻的控制量進行做差計算,通過對差值進行分析以提高控制精度。如圖7所示,給定一個輸入值r(t),最后輸出一個輸出值y(t),并將輸入值和實際輸出值進行做差以獲取偏差值,而增量式控制是以當前時刻輸出的控制量和上一時刻輸出的控制量做差,以此不斷進行遞推,不需要進行累計積分計算,便于計算。

圖7 PID 控制流程圖
進行計算時,需要將PID模擬信號轉化為數值信號的形式,因此需要進行離散化采樣,設T為采樣周期,n為離散自變量,則離散化后的PID數學表達式為
u(n)為在當前時刻的誤差控制量輸出值,則PID在n-1時刻的增量式控制量輸出數學表達式為
設vL(n)與vR(n)分別是在第n個控制周期內AGV兩個左右驅動輪的速度,左右兩個驅動輪在每一個控制周期內的速度偏差量可以采用增量PID控制算法進行計算,以此周期不斷循環計算,最終用來實現AGV循跡的目的。PID算法是將當前時刻輸出的控制量u(n)和上一時刻輸出的控制量u(n-1)進行做差從而獲得Δu(n),從上式Δu(n)中可以看出Ki(比例系數)、Kp(積分系數)、Kd(微分系數)之間的直接關系。因此需要將3個誤差采樣值e(n)、e(n-1)和e(n-2)存儲起來,其中,e(n)是第n個控制周期內AGV相對于地面二維碼引導線出現的位置偏差值,Δu(n)為AGV在第n個周期內兩個驅動輪速度增量輸出。
本文通過設計PLC控制系統,實現AGV的直線行走、變速、變向、變向拐彎、定位、任務分配等功能;自主設計PLC控制程序,實現藍色尋跡運行,可實現直線、變速、變向、視覺掃描識別二維碼定位、任務分配等功能。AGV在沿著二維碼運行的過程中,以兩個驅動輪為連線的中心點在運動過程中會產生相對于行走線路中心的左右抖動偏差。為實現小車自動調整運行軌跡,本文通過視覺系統采集地面引導AGV運行的二維碼信息,將AGV視覺系統采集到的位置信息與二維碼引導線實際的位置信息的偏差作為PID控制器的輸入,采用增量PID控制算法對每個控制周期內的偏差不斷循環計算,最終實現AGV循跡的目的。
如圖8所示,在小車沿著直線前后運動的過程中,存在Y值突變的問題,是由于傳感器的測量Y值測量范圍太小導致的,并且小車糾偏過程振蕩過大不利于整個系統的穩定,于是本文采用PID算法控制小車在運動過程中的Y值突變問題。

圖8 小車運動過程Y值突變
小車運行過程趨于平緩但仍然存在較大振蕩,原因是傳感器測量的Y值并不是實際的小車偏差值。因此需要判定Y值是否在限定值之內,如果在限定值之內,就初始化驅動輪左輪和驅動輪右輪的速度,如果Y值大于限定值上限并且小于測量范圍上限,就增加驅左輪速度并降低右輪速度,因此對Y值突變建立一個數學模型,根據Y值判定的程序流程如圖9所示。

圖9 Y值突變流程圖
AGV控制系統使用S7-1200PLC型號循跡傳感器,其中PGV模塊采用倍加福的PGV100,它們之間的通信方式是PROFINET通信。
其初始化差速循跡代碼程序如下:

增量PID程序代碼如下:

其實現的增量PID控制功能模塊如圖10所示。其Y值突變PLC仿真流程主程序代碼如下:



圖10 增量PID程序代碼
其PLC 控制的AGV系統設計結果如圖11所示。

圖11 AGV系統設計仿真結果
程序設計編寫功能塊使用增量PID算法循跡,新建一個FB塊輸入接口:PGV反饋、速度、Kp、Ki、Kd等參數的輸出接口為左右輪的速度輸出。局部變量為當前誤差e(n)、上次誤差e(n-1)、上上次誤差e(n-2)及計算結果Yv程序按照增量PID的算法,其算法流程采用SCL編程。
FB塊(如圖12)寫好后在循環中斷塊OB31中進行定時調用,OB31這里設置的是1 ms調用一次,這樣保證了小車的姿態調整的及時性。

圖12 FB模塊
設計基于視覺成像的AGV導航系統(如圖13),通過輔助顏色軌帶和位置碼帶(如圖14),采用位置引導視覺系統PGV100,對彩色條碼進行非接觸定位。設定二維碼數值在作業操作范圍內,包括減速定位值、定位值,當AGV小車到達加速定位值后,AGV小車行駛速度設置為5 m/min,直至行駛到定位值處,AGV停止行駛。當AGV作業完畢時,實施到位賦值(賦值為0),此時AGV重新出發。

圖13 視覺系統

圖14 應用效果
AGV上的車載機器人采用埃夫特ER3B-C60型號的機器人,小車和機器人的信號交互是通過現場總線MODBUS TCP來實現的。圖14為機器人讀取數據指令的模塊流程,圖15為寫數據指令模塊。對Modbus TCP服務的Modbus查詢,REQ的參數設置可以受到等級控制,當對REQ引腳輸入參數設置成(REQ=true)時,就會觸發指令發送通信請求。Modbus查詢開始后,背景數據塊將鎖定,其它客戶端無法使用。如果在服務器出現響應之前或者在服務器輸出錯誤消息之前對輸入的REQ數據參數進行更改,更改的數據輸入參數不會生效。若是在Modbus請求期間重新設置REQ相對應的參數,此時的讀寫數據傳輸將不會再進行。其MB_DATA_ADDR取決于MB_MODE選擇Modbus的請求模式(讀取、寫入或診斷)或直接選擇Modbus功能。

圖15 機器人讀取數據指令的模塊流程圖

圖16 機器人與AGV系統通信模塊寫指令
圖14和15模塊引腳是對應的,當MB_MODE引腳設置為0時,表示機器人讀取輸入的是數據指令,當MB_MODE 引腳設置為1時,表示正在向機器人寫數據指令。
本文主要研究了AGV循跡計算邏輯、AGV循跡控制偏差、增量式PID控制算法,通過系統的理論計算,結合MATLAB 仿真結果,設計制造AGV機械本體,圍繞各類算法和PLC控制系統,結合視覺成像和導航技術,設計開發AGV導航系統和控制系統。并通過關鍵接口實現機器人動作與AGV控制系統的耦合,最終獨立自主實現基于PLC控制的AGV智能物流輸送系統的設計與應用。
目前設計的AGV已應用于生產現場曲軸智能輸送、缸體自動輸送、各類零部件的智能投料等場景。隨著AGV技術的進一步發展,其技術的協同作用將越來越廣泛,將對智能物流起到關鍵的作用。