設計全解析:從選型到調(diào)試)
1. 先說點實在的這個選題為什么值得做每年到了一定時候總有人問我“畢設到底做什么好”。平臺開發(fā)爛大街爬蟲又撐不起篇幅搞深度學習沒機器。我一直覺得基于PLC的立體車庫自動存取系統(tǒng)是數(shù)一數(shù)二的好選題。它硬核但難度可控工程量足但邊界清楚有硬件有軟件有上位機有通信還能扯上物聯(lián)網(wǎng)和智慧停車答辯的時候東西夠講工作量考官也看得見。這個系統(tǒng)說白了就是用PLC當大腦控制電機、傳感器、限位開關這些部件把車自動停進立體車庫的指定車位取車的時候再自動把車調(diào)出來。整個過程不靠人刷卡或者按鍵一觸發(fā)PLC按預置的邏輯把橫移、升降、定位這些動作一串起來完事。從我實際帶過學生的經(jīng)驗看這個題目最大的優(yōu)勢在于不需要真的造一個庫用組態(tài)軟件可以虛擬仿真學校有條件就加一套小型實訓臺沒有也能出效果。源碼能跑、文檔能寫、界面能看、邏輯能講四件套齊了這就是一個非常合格的計算機類或自動化類畢業(yè)設計。而且無論你學的是三菱PLC、西門子S7-200 SMART還是用組態(tài)王、MCGS做上位機方法論是通用的換品牌也只是換個編程工具而已。這篇文章我把從硬件選型到軟件調(diào)試的完整鏈路拆開講把我在實際調(diào)試中踩過的坑、學生最容易犯的錯誤、答辯時老師最愛問的點全部整理出來。不管你是正在為選題發(fā)愁還是程序跑到一半卡住這篇文章應該都有你需要的答案。2. 整體設計思路先把車庫的“骨架”弄清楚2.1 立體車庫的種類與選型邏輯立體車庫不是只有一種。常見的有升降橫移式、垂直循環(huán)式、巷道堆垛式、平面移動式等。畢業(yè)設計里最常見、最適合用PLC來控制的是升降橫移式?jīng)]有之一。為什么選它原因很樸素結構直觀三言兩語能講清楚控制邏輯清晰不外乎“載車板橫移—升降機上下—定位—存取車”這幾個動作I/O點數(shù)適中選一臺小型PLC完全夠用不會因為點位不夠被評審老師質疑制造成本低實訓臺做得起即便只做仿真方案也不丟工作量。舉個例子一個典型的3層5列升降橫移式立體車庫地上三層一排5個車位底層留一個空位作為車輛移動的“空檔”中層和上層各5個頂層車位固定不動中下層車位可以橫移??偣材芡?1輛車。這樣一個車庫用一臺三菱FX3U或西門子S7-200 SMART就能全部搞定I/O點數(shù)大概就在40到70個之間根據(jù)你預留的傳感器余量不同有浮動性價比非常高。你要是用垂直循環(huán)式也行但那個結構復雜涉及連續(xù)旋轉定位和編碼器反饋對本科畢設來說有點過深了調(diào)試難度大我一般不推薦。一是程序寫起來費勁二是真出問題排查要花太久時間三是答辯時很難把原理講得讓老師滿意。除非你特別想挑戰(zhàn)自己否則不碰。2.2 系統(tǒng)組成不只是“寫個PLC程序”的事這個系統(tǒng)拆開來看分四層。第一層是傳感檢測層。包括車輛檢測傳感器用來判斷車位有沒有車、限位開關用來確定載車板和升降機是否到了位、位置編碼器用來精確讀取橫移和升降的行程位置。在簡易設計里前兩個已經(jīng)夠用編碼器看預算和實際需求加。第二層是執(zhí)行控制層。就是PLC這是整個系統(tǒng)的大腦。PLC接收傳感器信號按照用戶預先寫好的程序調(diào)用電機的啟停、方向切換等動作實現(xiàn)存取車邏輯。第三層是執(zhí)行機構層。也就是電機和傳動系統(tǒng)。橫移電機負責載車板在水平方向的移動升降電機負責讓載車板在垂直方向上到達對應樓層電磁抱閘負責電機斷電后鎖住位置防止滑落。第四層是人機交互層。最常見的方式是觸摸屏或工控機組態(tài)畫面操作人員按“存車”或“取車”按鈕系統(tǒng)自動完成后續(xù)動作同時在組態(tài)界面上顯示車位占用情況、設備運行狀態(tài)、故障報警等。這四層就是整個物理架構。對于畢業(yè)設計而言硬件層不一定要真的全部搭出來用組態(tài)軟件做仿真用指示燈模擬電機狀態(tài)也行。但邏輯上必須完整這一點在寫文檔時要特別注意否則論文結構會很單薄。2.3 控制流程存車和取車到底經(jīng)歷了什么我建議所有做這個題目的同學第一步先把控制流程圖手動畫出來。不要一上來就寫程序你邏輯不通后面全得推倒重來。存車流程是這樣的車輛駛入入口入口對射傳感器檢測到車到位。這時你按“存車”按鈕系統(tǒng)先判斷哪里有空車位。找空車位的邏輯是從離入口最近的底層車位開始找找不到就找中層的可橫移車位再找不到就找頂層車位。因為頂層車位需要升降機配合所以它優(yōu)先級最低。確定目標車位后如果是底層空位且正好在入口位直接開進車位傳感器確認車停好存車結束。如果要借助升降機這就有講究了先把目標車位所在層清空說白了就是把當前層擋住路徑的載車板全部橫移讓開讓升降機有通道能夠到達目標車位再把載車板移動過來或把車開上升降機升降機上升到目標層橫移入位傳感器確認到位停車。系統(tǒng)更新車位狀態(tài)存車完成。取車流程是反過來用戶輸入車位號或掃碼系統(tǒng)先判斷目標車位是否在某層非頂層。如果目標車位在底層可橫移位置PLC直接控制橫移電機把對應的載車板移到出入口位置用戶把車開走完成取車。如果目標車在頂層或中層PLC需要先把目標車位那一層的載車板橫移讓出升降通道然后升降機上升到指定層把載車板平移到升降機上再降到入口層橫移出庫車輛開走。這里有一個經(jīng)常被忽略的點取車跟存車用的優(yōu)先級邏輯恰恰相反。取車找路徑的時候要找的是“讓出通道的最優(yōu)方案”不是“直接奔著目標去”。這個順序寫錯了程序在特定布局下就會卡死。很多同學做仿真時發(fā)現(xiàn)某個車位取不出來十有八九就是這里出了問題。2.4 為什么核心控制選PLC而不是單片機有人會問我學的是計算機/電子方向用STM32做控制不是顯得更“高級”嗎我先說結論再用實際經(jīng)驗打臉。用PLC做畢業(yè)設計是性價比最高的選擇。PLC的梯形圖編程對電氣控制的表達是天然的學起來一個禮拜就能上手。老師不用花大量時間看你代碼直接看圖可讀性極強這對答辯是極大的加分項。第二個核心原因是抗干擾能力。立體車庫的現(xiàn)場環(huán)境里電機啟停會產(chǎn)生很強的電磁干擾PLC比單片機在這種環(huán)境下穩(wěn)定得多。雖然你做的是仿真實驗但這個論點寫進論文里依然是成立的而且是站得住的工程判斷。第三個原因是工時可控、出錯率低。使用單片機做系統(tǒng)你得另外設計電路排查掉通訊問題再縷一下傳感器信號處理時間可能得翻一倍。而PLC有現(xiàn)成的編程軟件有仿真有組態(tài)接口基本上一個人兩個月能搞完整個項目。當然單片機路線也不是不行如果你有一個自動化比賽的項目基礎里面用了STM32作為控制核心電機驅動、編碼器反饋都有現(xiàn)成代碼可以改那用單片機也是可以的。但對于絕大多數(shù)人來說PLC這個方案容錯率高得多。3. 硬件選型要點與參數(shù)配置別在這個環(huán)節(jié)給自己埋雷3.1 PLC選型I/O點數(shù)怎么算才不浪費這是很多同學第一次接觸工程選型最容易犯迷糊的地方。I/O點數(shù)不是拍腦袋定的有一個基本的估算套路。我以最常見的3層5列、共11個車位的升降橫移式方案為例來算一遍。輸入信號方面每個車位需要一個車輛檢測信號用來檢測該車位是否有車底層5個車位各需要一個橫移限位信號中層5個車位各需要一個橫移限位信號升降機需要上限位、下限位以及每個樓層的中位定位信號3個入口需要一個對射傳感器緊急停止至少1個手動操作的時候可能還要預備幾個按鈕。算下來輸入點大約在11 10 3 1 1 3 29個左右再加上冗余余量湊40個輸入點比較穩(wěn)妥。輸出信號方面每個橫移電機需要正轉和反轉兩個方向控制底層和中層各有5個橫移電機這就是20個點。升降電機有升、降兩個方向控制加2個點電磁抱閘需要2個點聲光報警需要1個點三色指示燈紅黃綠各一個3個點。再加上PLC和上位機通訊預留輸出點位約30個左右加冗余留32~40個。所以選型的時候輸入40點、輸出40點的組合完全夠用還帶有一點余量。三菱FX3U-64MR或者西門子S7-200 SMART SR60這種級別的完全能勝任。如果你是純仿真沒有實體I/O你可以在組態(tài)軟件和PLC仿真器里把點數(shù)照樣配齊按同一套分配表來走這樣仿真做出來的邏輯跟實物是一致的邏輯上完全說得通。3.2 傳感器選型別小看限位開關的作用定位問題在整個系統(tǒng)中是“生死線”。橫移沒到位就啟動升降或者升降沒到位就開始橫移輕則卡住鏈條重則車輛滑落損壞設備。所以傳感器的選型和安裝位置是絕對不能馬虎的環(huán)節(jié)。實踐中最保險的組合是“限位開關主定位 光電傳感器輔助判斷”。限位開關機械式/接近式用于硬定位。機械式結構簡單價格便宜環(huán)境適應性強接近式無接觸磨損使用壽命更長誤差小。用在升降機上時建議優(yōu)先選用接近開關因為升降臺的震動比較大機械式的容易松動。光電傳感器對射型用于車輛存在檢測。裝在車位入口兩側車停到位擋住光路輸出電平翻轉PLC據(jù)此判斷“車已就位”。在程序設計上我會做“雙重確認”先看限位開關是否動作再看對應車位光電信號是否正常兩個條件都滿足才認為定位成功。有些調(diào)試場景里只有一個信號也會出現(xiàn)偶然觸發(fā)雙確認能顯著降低誤動作的概率。另外要提一點傳感器接線時必須做屏蔽和接地處理尤其是接近開關和電機驅動線不要走在同一個線槽里。我在實訓臺上被這個坑過一次電機一啟動接近開關的信號亂跳差點以為PLC壞了后來把線分開走就正常了。這個經(jīng)驗你如果做實體系統(tǒng)一定會用得上。3.3 電機驅動和執(zhí)行機構設計要點立體車庫里最怕的事情是“溜車”。電機斷電后如果剎車不好載車板會緩緩下溜輕則定位不準重則砸車。所以設計的時候一定要選擇帶電磁抱閘的電機或者額外配置獨立的抱閘裝置。焊車板到位后PLC先啟動電磁抱閘鎖住電機軸再切斷電機電源這樣即便載車板上停了車輛也不會因為重力下溜。關于電機功率的選擇我提供一個常用經(jīng)驗值供參考。升降電機建議1.5kW及以上具體看你載車板加車輛的總重量和升降速度。橫移電機功率可以小一些0.75kW通常夠了因為橫移主要是克服滾動摩擦跟升降克服重力是兩碼事。變頻器可選可不選如果選用了變頻器建議加裝制動電阻以吸收電機在減速或下降時產(chǎn)生的再生電能避免變頻器過壓保護觸發(fā)。如果你是純組態(tài)仿真這個邏輯同樣體現(xiàn)在程序里每次升降動作結束后先輸出“抱閘鎖止”信號再停電機。仿真程序里沒有真實的物理慣性但這個順序一定得保持答辯時被問到“如何防止溜車”你答“抱閘先于電機斷電生效”就是標準答案。3.4 上位機組態(tài)與通信方式用組態(tài)王還是MCGS組態(tài)監(jiān)控是畢業(yè)設計展示環(huán)節(jié)的大殺器。畫面美觀、數(shù)據(jù)實時刷新、故障彈窗醒目答辯現(xiàn)場一亮相印象分就上來一大截。常見的上位機有兩種選擇組態(tài)王或MCGS嵌入版。我的建議是選MCGS。界面配置上手快和三菱PLC通信穩(wěn)定資料多、教程多出了問題容易搜索到解決方案。組態(tài)王功能強一些但配置稍復雜對初學者不太友好。通信方式優(yōu)先選串口通信或以太網(wǎng)通信。三菱FX3U系列用FX3U-ENET模塊支持以太網(wǎng)通信通過MCGS新建工程設置設備IP為PLC的IP地址端口號默認就行變量連上就能跑。S7-200 SMART自帶以太網(wǎng)口組態(tài)時也走TCP/IP協(xié)議配置更簡單。要注意的坑是PLC程序里對應寄存器地址必須跟組態(tài)里綁定的變量地址完全一一對應。比如你PLC程序里存車狀態(tài)用的是D100那組態(tài)畫面上“車位狀態(tài)”這個變量的通道地址就要綁定D100。對不上的話畫面上的數(shù)據(jù)永遠紋絲不動你半天找不到原因最后發(fā)現(xiàn)只是地址寫錯了。這種低級錯誤在實驗室里時不時就來一回。4. 軟件設計核心從梯形圖到組態(tài)畫面的實現(xiàn)路徑4.1 I/O分配表一張表治百病寫程序之前先把I/O分配表做好。這個是整個軟件設計的根一張表寫清楚后面寫梯形圖時不容易出錯調(diào)試時排查故障也快寫文檔時還能直接搬進論文。我見過太多同學上來直接擼程序I/O號混亂最后引腳對不上、信號沖突項目差點爛尾。I/O分配表的意義就像建筑圖紙的建筑坐標軸先定了位置才談得上施工。以三菱FX3U為例我常給學生一個參考分配信號名稱地址信號類型功能說明入口車輛檢測X0輸入檢測入口車輛是否到位底層1號車位檢測X1輸入底層1號載車板是否有車底層2號車位檢測X2輸入底層2號載車板是否有車中層1號車位檢測X3輸入中層1號載車板是否有車1號橫移左限位X10輸入1號橫移電機左行到位1號橫移右限位X11輸入1號橫移電機右行到位升降上限位X20輸入升降機升至最高層到位升降下限位X21輸入升降機降至最低層到位一層定位信號X22輸入升降機在一層到位二層定位信號X23輸入升降機在二層到位三層定位信號X24輸入升降機在三層到位急停按鈕X26輸入緊急停止回路1號橫移電機正轉Y0輸出控制1號橫移電機正轉1號橫移電機反轉Y1輸出控制1號橫移電機反轉升降電機上升Y20輸出升降電機上升接觸器升降電機下降Y21輸出升降電機下降接觸器抱閘鎖止Y22輸出電磁抱閘動作聲光報警Y23輸出故障報警運行指示燈綠Y24輸出系統(tǒng)正常運行指示故障指示燈紅Y25輸出系統(tǒng)故障指示這張表不是死板不變的你完全可以根據(jù)自己的方案調(diào)整。但分配的邏輯要合理輸入端、輸出端分別歸類信號功能標注清楚留有空余點位備用。這張表做好后寫進論文里老師一眼就能看出你系統(tǒng)設計能力和工程意識是實打實的加分點。4.2 梯形圖程序設計思路狀態(tài)機才是最穩(wěn)的寫PLC程序我最推薦的方式是“用狀態(tài)機的思路來組織梯形圖”。什么意思不要一上來就堆一大堆M繼電器和定時器而是先把整個系統(tǒng)的工作過程劃分成一個個狀態(tài)空閑狀態(tài)、存車執(zhí)行狀態(tài)、取車執(zhí)行狀態(tài)、故障急停狀態(tài)、復位狀態(tài)。每一個狀態(tài)對應一段梯形圖邏輯。狀態(tài)之間通過“轉換條件”來跳轉。比如存車的時候狀態(tài)的遷移順序就是空閑→檢測到入口有車→搜索空車位→空位確認→橫移讓位如需→升降到位→橫移入位→車輛就位確認→恢復空閑。每個轉換都綁定一個或多個條件比如“空位已找到”這個條件就是掃描車位狀態(tài)寄存器的結果和邏輯判斷的結果為真。這種寫法的好處太多了。第一思路清晰不會邏輯越寫越亂第二調(diào)試時能準確定位“現(xiàn)在卡在哪個狀態(tài)”第三答辯的時候你用狀態(tài)流轉圖一講老師馬上能get到你的設計能力。單靠一個梯形圖堆幾百行老師看著也頭疼你還不好解釋。在三菱PLC里常用M系列中間繼電器來表示當前所處的狀態(tài)位比如M100代表“空閑”、M101代表“執(zhí)行存車中”。每次狀態(tài)切換就是把M100狀態(tài)斷開、置位M101。用SET/RST指令來操作狀態(tài)位避免輸出線圈在其他地方被重復賦值導致雙線圈錯誤。4.3 核心控制邏輯拆解找車位、讓位、升降、取車剝開來看整個程序其實就四塊核心邏輯。第一塊找車位邏輯。我在文檔里列了個“空車位優(yōu)先表”底層優(yōu)先、中層次之、頂層最后。掃描順序在程序中體現(xiàn)為一串比較和跳轉指令。比如底層車位的狀態(tài)寄存器值是0表示空那就選它全是1再查中層中層也滿了只能選頂層。用梯形圖寫起來就是一個個“是否為空”的判斷分支。第二塊橫移讓位邏輯。這是最容易寫錯的地方。核心原則是“讓出升降通道”。如果目標車位在高層那么當前層所有擋在升降路徑上的載車板都要先移到旁邊空位。這個空位哪里來循環(huán)左移或右移找個空位。移動的時候要確保不會撞上位。所以在讓位程序里必須把限位信號和相鄰位占用信號交叉互鎖程序一旦檢測到?jīng)_突立即停車報警。第三塊升降定位邏輯。升降機的上升和下降依賴每層定位信號來停止。從1層到3層程序判斷當前層和目標層的差值決定電機運行時間策略或碰到中間層信號時繼續(xù)啟動直到碰到目標層定位信號才停車同時啟動抱閘。這一塊邏輯不難但最容易因為“抖動”或“信號干擾”導致誤停車。所以我在程序里加了時間濾波也就是定位信號要持續(xù)一個掃描周期以上才承認。第四塊取車調(diào)度邏輯。跟存車動作是鏡像對稱的。核心復雜點在于取高層車時得先判斷升降機停在哪個位置如果不在入口層得先主動把升降機降到入口層再讓車輛進入。很多同學在這里偷懶結果程序跑起來“卡死”必須手動復位。4.4 手動模式與自動模式一定要做兩種模式別忘了加手動模式。一是方便調(diào)試二是方便寫應急操作文檔三是答辯老師很可能問“如果自動系統(tǒng)出故障怎么辦”。有手動模式兜底回答就有底氣。手動模式下每個電機都由按鈕直接控制啟停傳感器只做限位保護不參與自動調(diào)度。自動模式下所有動作由程序自動完成。手動/自動的切換用M1000這個中間繼電器做總開關。切換時注意必須確保所有電機處于停止狀態(tài)防止切換瞬間誤動作。程序里加一條“切換前必須無運行信號”的條件這個細節(jié)雖然小但很體現(xiàn)工程素養(yǎng)。自動模式下存車按鈕、取車按鈕都會觸發(fā)完整的狀態(tài)鏈。手動模式下直接用對應的輸入點去控制Y輸出僅在限位到位的條件下允許動作。4.5 組態(tài)畫面設計讓你的系統(tǒng)“看得見”MCGS組態(tài)畫面建議按以下幾塊來布局。停車庫平面示意區(qū)畫一個3層5列的網(wǎng)格每個格子用顏色表示狀態(tài)綠色表示空紅色表示占用灰色表示載車板正在移動。組態(tài)腳本里輪詢PLC的D寄存器車位狀態(tài)值刷新對應圖形的顏色屬性。設備運行狀態(tài)區(qū)顯示升降機當前樓層、橫移電機動作方向、抱閘狀態(tài)。這些通過讀取M寄存器狀態(tài)位來實現(xiàn)。操作按鈕區(qū)存車按鈕、取車按鈕、急停按鈕、復位按鈕。這些按鈕對應向PLC的M寄存器寫狀態(tài)或觸發(fā)置位。故障報警區(qū)把PLC的故障代碼對應到文字描述顯示出來比如“1號橫移電機過載”“升降機定位超時”。MCGS的報警事件在“運行策略”里配置把PLC的D寄存器故障代碼映射到報警文本。動畫效果上最簡單的辦法是將每個載車板做成一個“圖形對象”通過腳本改變它的位置坐標來實現(xiàn)“移動動畫”的模擬效果。雖然不如專業(yè)3D渲染那么炫酷但配合顏色變化和文字信息提示在答辯現(xiàn)場演示的效果已經(jīng)足夠抓人眼球。畢竟畢業(yè)設計最重要的是合邏輯、能演示、可解釋。5. 仿真環(huán)境搭建與實操演示路徑5.1 無硬件情況下如何做出“真實感”很多學校的實驗室不具備搭實體立體車庫的條件但這不意味著你就做不了仿真。仿真分兩層一層是PLC邏輯仿真一層是組態(tài)畫面動態(tài)仿真。三菱PLC用GX Works2或GX Developer自帶仿真模式寫完梯形圖可以直接軟元件測試模擬外部信號的變化觀察輸出響應。你可以在仿真中人為給X0置ON模擬入口檢測到車看PLC有沒有進入存車狀態(tài)。用這種方法把狀態(tài)鏈全部跑一遍邏輯有沒有BUG一目了然。組態(tài)畫面部分用MCGS模擬運行模式配合PLC仿真器做數(shù)據(jù)交互。MCGS把設備通信指向“模擬PLC”的通訊地址這樣組態(tài)畫面就能讀到你仿真程序里的寄存器值變化。畫面上的按鈕也能寫寄存器觸發(fā)程序狀態(tài)切換。這套全軟路線做出來的效果除了沒有電動機實際轉動的聲音其他和真實系統(tǒng)幾乎一樣。我建議在文檔中要把仿真驗證部分寫細例如哪些信號是通過人為強制置位來模擬的、哪些寄存器是用來模擬車輛位置的、動作時序如何。老師看到這部分內(nèi)容就知道你沒糊弄是真做了東西。5.2 基于實訓臺或三菱FX3U的調(diào)試全流程如果你有條件接觸實物那更有優(yōu)勢。實際的調(diào)試流程通常分成三輪。第一輪是空載調(diào)試PLC通電程序下載手動模式下逐個測試每個電機動作是否正常、方向是否正確、限位是否靈敏。第二輪是邏輯調(diào)試自動模式下用手按壓傳感器來代替車輛存在信號觸發(fā)存車流程看整個狀態(tài)鏈是否按預想執(zhí)行。這里強烈建議用PLC的監(jiān)控功能邊單步執(zhí)行邊看M狀態(tài)的變化效率遠高于盲調(diào)。第三輪是帶載調(diào)試在載車板上放置模擬配重重復多次存取過程觀察升降電機的抱閘和定位情況。帶載狀態(tài)下可能暴露空載時發(fā)現(xiàn)不了的問題比如負載偏載引發(fā)的限位失靈或定位偏差。調(diào)試過程中最常見的現(xiàn)象就是程序看著沒問題但實際一跑升降機走到一半就停了。排查步驟是打開監(jiān)控畫面檢查目標層定位信號是否常閉或常開位置接反用萬用表量傳感器輸出以及加濾波時間消除抖動。這些排查思路我放在后面常見問題章節(jié)里詳細列舉。5.3 通信調(diào)試PLC和MCGS之間到底怎么連通信是讓很多同學頭痛的環(huán)節(jié)其實本質上就幾步接線或網(wǎng)絡配置、參數(shù)約定、變量綁定。用三菱FX3U-232-BD或FX3U-ENET模塊做通信串口參數(shù)要給波特率、數(shù)據(jù)位、停止位和校驗位。MCGS設備窗口里選好設備驅動填好通信參數(shù)后記得在PLC程序里把D寄存器地址規(guī)劃好。我提供一個實用建議在PLC程序的最前面加一段專門用于上位機通信的寄存器映射區(qū)把狀態(tài)集中的核心變量都搬運到這個映射區(qū)。比如D100存當前狀態(tài)編號D101到D110存車位占用狀態(tài)D120存報警代碼。這樣組態(tài)畫面只需要綁定這一小段地址不會亂調(diào)試的時候開著監(jiān)控看這些寄存器相當于“板載儀表盤”。MCGS通信不上時大部分原因是串口參數(shù)不一致、地址類型選錯或者物理鏈路接觸不良。先看PLC的通信指示燈是否在閃爍再用串口調(diào)試工具發(fā)送手動的讀命令來測鏈路能收到響應就說明鏈路通問題在配置。6. 畢業(yè)設計源碼與文檔的整理技巧6.1 源碼工程怎么整理才顯得“專業(yè)”源碼不是堆在文件夾里就完了評閱老師和答辯專家會看你的組織能力。我建議工程目錄結構如下PLC_Project/ │ ├── PLC_Program/ │ ├── 立體車庫_V1.0.gxw # GX Works2或對應工程文件 │ ├── 程序結構說明.txt │ └── 變量表.xlsx │ ├── HMI_Project/ │ ├── 立體車庫監(jiān)控.mcg # MCGS工程文件 │ ├── 畫面截圖/ # 關鍵界面截圖 │ └── 報警配置說明.doc │ ├── DOC/ │ ├── 開題報告.doc │ ├── 畢業(yè)論文.doc │ ├── 任務書.doc │ └── 中期檢查.doc │ ├── Simulation/ │ ├── 仿真視頻.mp4 # 實錄的組態(tài)演示視頻 │ └── 仿真說明.doc │ └── README.md # 整個項目的說明文件README里寫清楚項目簡介、運行環(huán)境、復現(xiàn)步驟。寫一句“在GX Works2環(huán)境下打開工程文件先下載到PLC或啟動仿真模式再打開MCGS運行工程即可”別人拿到手能復現(xiàn)這個就很加分。還有一些細節(jié)值得注意源文件里不要有未使用的工程碎片和臨時文件關鍵程序段注釋寫明白程序版本號規(guī)范比如V1.0表示完整可用版本V0.1表示初稿有多個方案比較時另開一個文件夾放廢棄方案不要混在一起。很多學生畢業(yè)之后拿著自己的源碼去面試面試官不看程序本身先看你的文檔組織這一關過了才有后面的事我跟你講這真的會影響工作機會。6.2 論文文檔如何把“邏輯”寫成“亮點”畢業(yè)設計文檔的質量直接決定你是良還是優(yōu)。有幾個章節(jié)我建議重點發(fā)力。系統(tǒng)總體設計部分把“電氣控制系統(tǒng)結構圖”“控制流程圖”“I/O分配表”用Visio畫好這是全文核心拿得出手。需求分析部分不要只寫一堆概念把每個功能需求的輸入輸出條件寫清楚比如“存車請求”這個功能前置條件是“入口有車且有空位”結果輸出是“存車完畢且車位狀態(tài)置位”。這種寫法看起來就有工程味?!败浻布{(diào)試與結果分析”這一章最容易被寫成“故障記錄流水賬”。我的建議是挑選兩到三個有代表性的調(diào)試場景展開比如“升降機定位抖動導致程序誤判”或“取車時路徑?jīng)_突”每個場景按照“故障現(xiàn)象→原因分析→排查過程→解決措施→驗證效果”來組織。這種寫法能讓老師看到你的分析能力而不僅僅是調(diào)試的結果。文末附錄里放上關鍵程序段的梯形圖或指令表、I/O分配總表、電氣原理圖。尤其是梯形圖打印出來至少能占好幾頁答辯時方便翻閱。這部分內(nèi)容多的同學論文頁數(shù)輕松破100。6.3 答辯匯報中的展示要點與常見的答辯追問答辯時間通常控制在10到20分鐘。匯報PPT建議按這個順序組織選題背景與意義1-2頁言簡意賅系統(tǒng)總體方案設計3-4頁放系統(tǒng)框圖、設計方案對比硬件設計和I/O分配2-3頁重點說你的計算過程軟件程序設計4-5頁上狀態(tài)流圖、梯形圖講核心邏輯上位機組態(tài)與仿真成果3-4頁放組態(tài)畫面截圖、演示視頻總結與未來展望1頁點到即止演示視頻是最好的答辯道具提前錄制好一段從存車到取車的完整流程視頻用時控制在60到90秒內(nèi)這樣現(xiàn)場即使設備出故障也不慌。老師最愛問的幾個問題是為什么選PLC而不是單片機答可靠性、編程直觀、便于維護上面的分析都用得上如何防止升降機溜車電磁抱閘加邏輯聯(lián)鎖怎么判斷當前是哪個車位在橫移看對應輸出點狀態(tài)和限位信號系統(tǒng)故障時如何人工接管手動模式。把這些都準備充分答辯狀態(tài)自然就穩(wěn)了。7. 調(diào)試階段常見問題與解決辦法實錄7.1 通信連不上PLC和組態(tài)畫面“各跑各的”現(xiàn)象PLC程序運行正常梯形圖里狀態(tài)在跳MCGS畫面你點按鈕沒反應狀態(tài)數(shù)字也不動。排查步驟先確認PLC程序有沒有實際運行。很多人下載程序后忘了RUNPLC是STOP狀態(tài)當然響應不了。確認運行后看通信參數(shù)串口號選對沒有、波特率是否一致、PLC站號是否匹配。再用MCGS自帶的設備調(diào)試窗口發(fā)送一條測試指令讀一個寄存器試試返回值。如果返回正常那問題在變量綁定上檢查畫面按鈕連接的通道地址和PLC寄存器地址是否對上了。地址錯一位全白搞這是最常見的坑。7.2 升降機定位抖動狀態(tài)偶爾亂跳現(xiàn)象升降機到達目標層后定位信號短暫閃斷程序誤認為未到位重新啟動電機導致來回振蕩。在繼電器頻繁動作時這種情況特別容易復現(xiàn)。原因分析限位開關在動作臨界點存在機械抖動信號在幾毫秒到幾十毫秒內(nèi)反復跳變。PLC掃描周期通常10毫秒左右如果抖動恰好發(fā)生在掃描期間程序可能讀到錯誤狀態(tài)。解決方案有兩層。硬件上選用帶滾輪杠桿臂的限位開關增加觸點壓力軟件上寫一個延時濾波程序定位信號持續(xù)10到50毫秒穩(wěn)定才被確認抖動干擾就濾掉了。我通常用定時器指令來寫這個濾波程序省事又可靠。這個實用技巧同樣適用于橫移限位信號。7.3 橫移讓位時突然急停沒撞到東西卻報警現(xiàn)象橫移過程中PLC報警但現(xiàn)場看載車板沒有碰到任何物理障礙。排查關鍵看報警代碼。在組態(tài)里報警區(qū)顯示了哪路信號出了問題。如果是橫移限位信號提前觸發(fā)大概率是限位開關安裝位置離車位邊界太近載車板啟動時的微小位移就碰到開關誤判為到位。也可能是相鄰車位的限位信號接反了調(diào)試時把兩個車位的中繼線混在一起。解決建議檢查限位開關的檔片位置確保只有載車板真正運動到對應停車位邊界時才觸發(fā)開關另外在程序里對每個限位信號都做互鎖比如“左限位有效時右行輸出必須為OFF”這樣即使傳感器信號有誤PLC不會同時給出矛盾的方向控制指令也能大幅降低誤動作風險。7.4 存車流程跑了一半卡住狀態(tài)位不動了現(xiàn)象自動存車過程中PLC的狀態(tài)位停在一個中間狀態(tài)后續(xù)動作不再觸發(fā)。排查方法打開PLC在線監(jiān)控查看當前M狀態(tài)位同時看當前狀態(tài)對應需要滿足的轉換條件。最常見的原因是行程限位不到位載車板還沒到指定位置條件不成立程序就“掛起”。如果是急停按鈕被誤觸發(fā)程序進入故障狀態(tài)后沒有自動復位需要手動按復位按鈕。在程序里我習慣加一個“超時保護”邏輯每一步執(zhí)行的時間超過預設值比如升降30秒、橫移20秒就自動觸發(fā)超時報警并停住。這個邏輯正常情況下永遠不會觸發(fā)但一旦設備卡住至少能及時報警不至于老師看演示時整個系統(tǒng)無響應干瞪眼。7.5 論文查重與源碼查重這個坑很多人踩畢業(yè)設計的文檔查重是硬指標。系統(tǒng)架構圖、流程描述、技術原理這類內(nèi)容容易被判定重復。注意幾點不要大段復制教材或網(wǎng)上論文的原文圖紙和表格盡量自己畫技術方案描述保持自己的語言風格。寫功能需求用“輸入—處理—輸出”表格化整理設計部分用模塊化拆解文風這樣既結構新穎又不會和別人的套路重疊。源碼查重不一樣它只關注代碼相似度。你要把程序注釋寫清楚但不要刻意為了降重去改變量名造成邏輯混亂。更重要的是設計思路上的差異化比如在程序中加入了手動測試模式、超時保護、互鎖邏輯等別人不會去做的細節(jié)。哪怕源碼結構相似這些獨有設計的痕跡也是你獨立完成的實證。8. 從畢業(yè)設計到項目落地這個系統(tǒng)還能怎么擴展很多做到一半的同學會有一種感覺這個題目是不是有點“簡單”控制邏輯似乎一眼望到底了。其實往深了做擴展空間非常大而且答辯和文檔里加一段“后續(xù)展望”也是有實際內(nèi)容的。你可以在現(xiàn)有系統(tǒng)上增加車牌識別功能結合OpenCV或云端API實現(xiàn)車輛身份綁定到車位號取車時輸入車牌號而不是車位號這套流程在程序設計里相當于增加了一個“預約取車”的新狀態(tài)鏈。還可以加手機App遠程查詢車位狀態(tài)、提前預約存取車PLC端增加通信協(xié)議解析模塊本質上就是把上位機從組態(tài)軟件替換成網(wǎng)絡服務端。更進一步的做法是引入變頻器和編碼器閉環(huán)讓橫移和升降都變成調(diào)速控制而不是簡單的啟停。這樣系統(tǒng)在運行時更平穩(wěn)定位精度更高論文的技術含量能上一個臺階。另外多組車庫之間的聯(lián)合調(diào)度也可以拓展兩個或三個獨立庫共用一個出入口優(yōu)先調(diào)度哪一組庫的車位這背后就是一個簡單的資源調(diào)度算法。對基礎薄弱一點的同學我不建議一上來就擴展太多模塊容易失控。先把主流程做透至少留出接口寄存器地址映射后期有時間和精力再加一個“分層調(diào)車”功能或“應急模式”就夠了。想要把課題做深關鍵在于把現(xiàn)有主線打磨到位擴展功能反而是錦上添花。9. 寫在最后一點掏心窩子的建議做這個課題我最深的體會是“進度管理遠比技術細節(jié)重要”。很多同學前期不緊不慢到了最后兩周期限快到了才開始熬夜趕程序結果程序改出了Bug文檔也沒時間潤色答辯前一晚還在復制粘貼圖表。而那些順利走完整個流程的人往往是前期把框架架構和時間節(jié)點控制得好第一周做方案第二周做選型第三、第四周寫程序第五周調(diào)通信最后兩周集中寫文檔。還有一句話是我常跟學生說的不要老想著“老師會不會覺得這個太簡單”而要多想“我是否真的把一個完整的工程做出來了”。你交出來的是一臺邏輯自洽、能演示、有文檔、有源碼的完整系統(tǒng)這本身就是專業(yè)能力的證明。關于畢業(yè)設計它的價值在于完整走通一個工程項目的閉環(huán)。從需求到設計再到實現(xiàn)、驗證、表達這個過程本身就是最好的學習。如果你正在為這個畢設焦頭爛額先把文里提到的I/O分配表做出來再把狀態(tài)轉移圖畫出來。這兩件事做完你的項目就已經(jīng)完成了一半。剩下的就是按部就班地往前推進。穩(wěn)住心態(tài)一步步來這個項目真的不難。