:從I/O分配到梯形圖調(diào)試全解析)
簡介西門子PLC四層電梯控制系統(tǒng)課程設(shè)計PDF面向工業(yè)自動化學習者與PLC初學者系統(tǒng)梳理PLC基本概念、分類、特點及控制優(yōu)越性并以四層電梯為案例從總體設(shè)計方案、硬件選型、輸入輸出分配與軟件調(diào)試流程展開說明。資源為單個PDF文檔體積約921KB內(nèi)含摘要、緒論、PLC控制系統(tǒng)設(shè)計、硬件選擇、程序調(diào)試等章節(jié)適合作為電氣自動化或機電類課程設(shè)計的參考模板。目前已有618人學習下載是一份兼具理論講解與工程實踐的入門資料。讀者可從中了解基于西門子PLC的電梯運行控制、門控與報警邏輯的設(shè)計思路包括轎廂呼叫、樓層指示等功能的實現(xiàn)方法可為此類項目開發(fā)提供直接借鑒。1. 西門子PLC四層電梯一份課設(shè)PDF里藏著的完整控制鏈路拿到這份課設(shè)PDF時我先翻的不是梯形圖而是I/O分配表和內(nèi)部寄存器表。四層電梯控制這塊硬件選型和地址分配定下來梯形圖只是把既定邏輯“翻譯”成PLC語言而已。這份西門子PLC四層電梯資料完整走了一遍從控制需求拆解、PLC選型、I/O點數(shù)估算到CPU224配EM223擴展、路徑記憶繼電器、梯形圖實現(xiàn)和調(diào)試的流程正好覆蓋課設(shè)和畢設(shè)里最常見的一整套動作。適合三類人正在做電梯控制類課設(shè)的學生、想快速搭一套S7-200四層電梯邏輯的開發(fā)者、手里有實驗臺想對著地址表核對接線的人。坦率說它的梯形圖可讀性一般最值錢的是中間那一層——M0.0到M3.2的路徑記憶和M10.0到M10.7的呼梯保持位把這一層看懂整份資源才算吃透。2. 硬件選型與I/O分配CPU224 EM223 怎么湊夠 27 個點拿到這類課設(shè)最容易犯的錯是上來就寫梯形圖。電梯控制的核心矛盾從來不是“怎么寫”而是“哪些信號要進PLC、哪些動作要出來、中間邏輯用什么寄存器過渡”。先把控制需求拆清楚硬件選型才有依據(jù)。2.1 從控制需求倒推硬件選型這份資料在3.2節(jié)列了八條功能要求基本決定了I/O規(guī)模行車方向由內(nèi)選信號決定順向優(yōu)先執(zhí)行行車途中遇呼梯信號時順向截車反向不截車內(nèi)選、外呼信號具有記憶功能執(zhí)行后解除到層自動開門、延時關(guān)門停層時可手動開門或關(guān)門行車時不能手動開門門開時電梯不允許運行電梯有效運行時間超過8秒發(fā)出超時報警并停車無內(nèi)外呼梯信號時電梯自動返回第一層待命開始運行時轎廂不在第一層會自動返回。對照這八條數(shù)一下輸入4個行程開關(guān)一至四層到位檢測、4個內(nèi)呼按鈕、6個外呼按鈕一層外呼、二層上、三層上、四層下、二層下、三層下、1個手動關(guān)門按鈕合計15個輸入點。輸出側(cè)上行、下行、上行顯示、下行顯示、開門指示、保持指示、關(guān)門指示、報警顯示再加上樓層顯示的4位BCD碼輸出合計12個輸出點??傂枨?7個I/O點以上實際上輸入輸出加起來要27個點。資料選的方案是CPU224加一塊EM223。CPU224自帶14點輸入、10點輸出輸入明顯不夠EM223提供8點輸入、8點輸出拼起來是22點輸入、18點輸出蓋住15入12出的需求還有差不多兩成余量。課設(shè)里這個余量不是浪費后面調(diào)試要臨時加信號、改地址余量就是后悔藥。選型時還有一個隱藏理由CPU224自帶兩個通信口、擴展能力也夠比小型的CPU221劃算得多。2.2 I/O分配表逐行解讀原資料的I/O分配表是整份PDF里最值得先抄到筆記本上的東西下面按S7-200的尋址習慣拆開看。輸入地址信號含義輸出地址信號含義I0.0一層行程開關(guān)Q0.0電梯上行I0.1二層行程開關(guān)Q0.1電梯下行I0.2三層行程開關(guān)Q0.2上行顯示I0.3四層行程開關(guān)Q0.3下行顯示I0.4一層內(nèi)呼Q0.4開門指示I0.5二層內(nèi)呼Q0.5保持指示I0.6三層內(nèi)呼Q0.6關(guān)門指示I0.7四層內(nèi)呼Q0.7報警顯示I1.0手動關(guān)門Q2.0樓層顯示BCD位0I2.0一層外呼Q2.1樓層顯示BCD位1I2.1二層上外呼Q2.2樓層顯示BCD位2I2.2三層上外呼Q2.3樓層顯示BCD位3I2.3四層下外呼I2.4二層下外呼I2.5三層下外呼這里有個新手必踩的地址規(guī)則CPU224本體的輸入是I0.0到I0.7、I1.0到I1.5輸出是Q0.0到Q0.7、Q1.0到Q1.1。掛在CPU右側(cè)的第一塊擴展模塊輸入地址從I2.0開始編號輸出從Q2.0開始編號。所以你看外呼按鈕全部落在I2.x樓層顯示全部落在Q2.x這不是隨手的安排而是S7-200擴展模塊地址自動順延的結(jié)果。有人畫接線圖時想當然地把擴展輸入編成I1.6、I1.7結(jié)果程序一跑數(shù)據(jù)全不對就是沒搞懂這條規(guī)則。分配表里還有個細節(jié)值得夸一筆一層外呼只有一個四層下外呼只有一個二層、三層既有上外呼又有下外呼。這是按實際物理場景設(shè)計的——一層不會有人呼下行四層不會有人呼上行省下兩個輸入點。課設(shè)里能做到這層考慮說明原作者是真對著電梯使用場景思考過的。2.3 數(shù)碼管顯示與譯碼電路樓層顯示用的是共陽極數(shù)碼管輸出端Q2.0到Q2.3送的是BCD碼中間經(jīng)過一塊譯碼電路轉(zhuǎn)成七段碼。我一般會提醒學生共陽極數(shù)碼管公共端接24V段選信號要低電平才點亮所以譯碼輸出和數(shù)碼管之間必須配合好。如果實驗臺上拿到的數(shù)碼管是共陰極接法完全反過來顯示就是亂的。譯碼電路本質(zhì)上把4位二進制翻譯成數(shù)碼管段碼CPU這邊只需要管Q2.0到Q2.3四個點輸出0到4的BCD碼。比如電梯在一層輸出001譯碼后數(shù)碼管顯示1在四層輸出100顯示4。這樣做的好處是節(jié)省輸出點如果直接用7段碼4層就要7x4個輸出點成本劃不來。接線圖上那一排電阻是限流用的別省不然數(shù)碼管段碼電流太大容易拉垮輸出點。3. 內(nèi)部寄存器分配把 M0.0-M3.2 讀成路徑記憶比看梯形圖有用原PDF的第四章給了幾十頁梯形圖說實話照著抄意義不大容易越抄越暈。真正把這套程序講明白的是第三章那一張內(nèi)部寄存器分配表。我拆這份資料花時間最多的地方就在這張表上。3.1 為什么必須用M寄存器直接拿I/O點寫邏輯不行嗎這個問題幾乎每個做課設(shè)的人都問過。四層電梯雖然樓層少但運行路徑組合非常多一層到二層、一層到三層、一層到四層、二層到三層、二層到四層、三層到四層反向還有四到三、四到二、四到一、三到二、三到一、二到一再加上途中截車的組合路徑二十多種情況。如果這些狀態(tài)直接用Q輸出點來記憶程序里全是互鎖和自鎖改一處邏輯要牽連七八個網(wǎng)絡(luò)。M寄存器是PLC內(nèi)部位存儲器不占物理I/O就是干這個用的。S7-200的M區(qū)容量不小資料里把M地址分成三塊M0.0到M3.2管運行路徑M10.0到M10.7管呼梯保持M20.0和M20.1管報警和歸位。這種分層正是梯形圖能寫下去的前提。你可以把M寄存器理解成PLC內(nèi)部的草稿紙——算復(fù)雜邏輯的時候先在草稿紙上把事情記下來最后再決定怎么驅(qū)動輸出。3.2 路徑記憶寄存器到底記了什么把寄存器分配表按路徑重新分組看邏輯會清晰很多寄存器范圍作用代表含義M0.0初始化上電復(fù)位標志M0.1開始信號有運行任務(wù)產(chǎn)生M0.2-M0.4一層出發(fā)路徑一層到二層/三層/四層M0.6-M0.7二層出發(fā)路徑二層到三層/四層M1.0-M1.2三層出發(fā)路徑三層到四層及相關(guān)M1.3-M1.5四層下行路徑四層到三層/二層/一層M1.6-M3.2組合路徑多段運行及截車路徑M10.0-M10.7呼梯保持位正向/反向外呼記憶M20.0報警設(shè)置超時報警使能M20.1開始歸位自動返回一層請求這里要注意原資料的命名并不統(tǒng)一M0.2叫“一層到二層”M0.5叫“二層先到四層”M1.1叫“三先到四”M3.0叫“三先到一”M3.1叫“再到四”。光看名字很容易懵我的讀法是全部當成“路徑”而不是“樓層狀態(tài)”。M0.2表示電梯正執(zhí)行從一層到二層的路徑M1.6表示從二層出發(fā)先到四層、再反向回一層的完整任務(wù)。這么理解梯形圖里那些成串的置位和復(fù)位就有了解釋。另一個細節(jié)組合路徑位占了M1.6到M3.2一大片地址里面反復(fù)出現(xiàn)“截車”。比如M2.1寫的是“二到三到四截車”M2.7是“四到三到二截車”。所謂截車就是電梯運行途中響應(yīng)順向呼梯信號在目標路徑上插入一個中間停靠。這個動作不是簡單地把終點改掉而是“原終點不變、沿途多停一次”所以才需要單獨一組寄存器來記憶半路插入的任務(wù)。3.3 M10.0-M10.7保持位與外呼記憶原資料3.2節(jié)里寫著“內(nèi)選信號、外呼信號具有記憶功能執(zhí)行后解除”這句話在梯形圖里的落地就靠M10.0到M10.7。外呼按鈕是瞬動開關(guān)人手按一下可能只有幾十毫秒而PLC一個掃描周期在毫秒級。如果程序剛好錯過那個掃描周期按鈕信號就丟了電梯根本沒“看見”呼梯。解決辦法是先把事件鎖存下來。以二層上行外呼為例I2.1接通后立即置位M10.1表示“二層有人要上行”這個事件被記住了。后面路徑判斷邏輯只讀M10.1不直接讀I2.1這樣哪怕按鈕已經(jīng)松開信號也不會丟。等電梯真正到達二層并開門后再復(fù)位M10.1完成“執(zhí)行后解除”。M10.0到M10.3是正向保持位M10.4到M10.7是反向保持位正好對應(yīng)四個樓層。把“事件發(fā)生”和“事件響應(yīng)”分到兩套地址上調(diào)試時查起來非??臁娞莶豁憫?yīng)呼梯先看對應(yīng)的M10.x有沒有置位一眼就能定位問題在前級還是后級。3.4 定時器與計數(shù)器參數(shù)怎么設(shè)資料里用到的定時器和計數(shù)器不多我整理成表編號功能參考設(shè)定T37延時2秒定時T37基時10msPT設(shè)為200T38門控時間開關(guān)1開門保持延時約3-5秒T39門控時間開關(guān)2關(guān)門延時約3-5秒T40報警時間設(shè)置超時報警按8秒反推PTC1當前位置計數(shù)用行程開關(guān)上升沿計數(shù)T37的用途是啟動時序緩沖。電梯從得到運行指令到真正輸出上行之間加一個2秒延時避免按鈕抖動和信號競爭造成誤動作。T38和T39管門控到站開門后保持一段時間然后自動關(guān)門。這兩個時間參數(shù)不需要太精確課設(shè)實驗臺通常給3到5秒比較合理太短乘客來不及進出太長影響運行效率。T40是報警定時器對應(yīng)“電梯有效運行時間小于8秒”那條要求。如果從啟動到平層超過8秒還停不下來就要置位M20.0、輸出Q0.7報警并停車。做法是給T40設(shè)定一個8秒的TON定時超時后切斷運行輸出。C1這個計數(shù)器容易被人忽略。它配合行程開關(guān)的上升沿來記憶當前位置比如從一層向上運行每過一個行程開關(guān)C1加1從四層向下每過一個行程開關(guān)C1減1。歸位邏輯要知道“轎廂現(xiàn)在在哪層”不能只靠I0.0到I0.3的瞬時狀態(tài)因為電梯可能在運行中、經(jīng)過某層但沒停瞬間信號不可靠。用C1累計的位置信息在“自動返回一層”和“開始歸位”邏輯里是核心依據(jù)。4. 軟件實現(xiàn)與梯形圖拆解順向截車、反向不截車是怎么寫成邏輯的硬件的地址和中間變量都定好了梯形圖的寫法就順理成章。這一章講程序結(jié)構(gòu)的拆解重點看兩條一是順向截車怎么落地二是反向不截車怎么攔住。4.1 梯形圖為主流程先立住S7-200的編程軟件支持梯形圖、指令表和SFC課設(shè)選梯形圖是主流因為直觀、好接線、老師也好審。但梯形圖之前得先有流程原資料給的流程圖雖然簡單信息量夠先初始化復(fù)位、電梯回到一層然后判斷上行呼叫、下行呼叫對應(yīng)執(zhí)行上行或下行。初始化網(wǎng)絡(luò) 復(fù)位 M0.0-M3.2 復(fù)位 M10.0-M10.7 復(fù)位 Q0.0-Q0.7 置位 M20.1歸位請求 主邏輯 若 M20.11 且 當前位置不等于一層 輸出 Q0.1下行 直到 I0.0 接通復(fù)位 M20.1 若有 M10.0-M10.7 任一保持位置位 按當前路徑位生成 Q0.0/Q0.1 輸出 到站后置位 Q0.4開門 若所有保持位都復(fù)位 延時后自動生成回一層路徑這段是行為模型不是能直接下載的源碼但它把梯形圖要干的活壓縮成了三件事歸位、響應(yīng)呼梯、自動待命。注意初始化網(wǎng)絡(luò)里復(fù)位和置位的順序M20.1要在最后置位否則歸位請求會被復(fù)位掉電梯動都不動。原資料的流程圖里“初始復(fù)位—電梯回到一層”是連在一起的兩個框梯形圖里如果寫成從上到下先復(fù)位M20.1再置位M0.1極容易出現(xiàn)第一周期就把啟動信號清了的情況。4.2 順向截車一個STL片段看明白置位邏輯順向截車是四層電梯課設(shè)的靈魂。我按這份資料的地址表還原一個最簡的STL片段演示“一層到二層”路徑是怎么生成的。注意這是常見寫法的示意原PDF沒有逐網(wǎng)絡(luò)給出STL但結(jié)構(gòu)和地址是能對上的// 上行順向截車電梯在一層二層有上行呼梯生成“一層到二層”路徑 LD I2.1 // 二層上行外呼按鈕 A M10.1 // 二層保持位已置位按鈕短信號被鎖存 A M0.1 // 運行許可信號有效 AN M0.2 // 還沒在一層到二層路徑上 AN M0.4 // 沒被“一層到四層”更遠路徑占用 AN Q0.1 // 不在下行狀態(tài) S M0.2, 1 // 置位“一層到二層”路徑寄存器 S Q0.0, 1 // 輸出電梯上行逐行解釋LD把I2.1當成條件起點A M10.1確保外呼按鈕之前已經(jīng)被保持位鎖存過避免短信號漏掃A M0.1要求系統(tǒng)處于允許運行的狀態(tài)。兩個AN是關(guān)鍵AN M0.2防止路徑重復(fù)置位AN M0.4確保更遠的目標路徑?jīng)]有占據(jù)執(zhí)行權(quán)——如果M0.4一層到四層已經(jīng)置位說明這次任務(wù)的終點是四層不是二層二層只是途經(jīng)層要不要停由截車邏輯另外判斷而不是重新生成一個終點為二層的路徑。最后的AN Q0.1是方向互鎖上行路徑絕不能在電梯下行時置位。S指令置位后M0.2和Q0.0會保持接通直到后續(xù)網(wǎng)絡(luò)用R指令復(fù)位。4.3 反向不截車與“劫車”的真相為什么反向不截車假設(shè)電梯正在從一層去四層的路上三層有人按下行呼梯。如果三層停了乘客進電梯后要去低樓層和當前運行方向完全相反。這時響應(yīng)呼梯不但不順路還要讓電梯先完成上行再掉頭下行路徑被打亂運行時間反而更長。所以標準的集選控制策略是方向不一致的呼梯只記憶、不響應(yīng)等電梯真正轉(zhuǎn)入下行方向后再處理。實現(xiàn)手法并不復(fù)雜。上行邏輯里串聯(lián)Q0.0常開和Q0.1常閉下行邏輯里反過來串聯(lián)Q0.1常開和Q0.0常閉。方向輸出一旦建立反向的路徑位根本沒有置位條件。三層下行呼梯的保持位M10.6雖然在執(zhí)行上行任務(wù)期間一直置位但它對應(yīng)的“四層到三層反向”路徑位不會在上行狀態(tài)下產(chǎn)生。等電梯完成任務(wù)回到一層方向變?yōu)橄滦泻驧10.6才參與路徑判斷電梯才會開去三層接人。這里要給原資料澄清一個字寄存器表里多處寫著“劫車”其實是“截車”的筆誤。截車在電梯控制里是專業(yè)說法不是搶車的意思我把這塊邏輯理順之后發(fā)現(xiàn)它的思路和教科書上集選控制是完全一致的。課上討論時有人問“劫車是不是就是非法截?!蔽艺f不是這就是順向途中響應(yīng)呼梯的縮寫。這種錯別字在課程設(shè)計PDF里很常見讀的時候要結(jié)合功能描述去理解別被字面帶偏。5. 調(diào)試避坑與常見問題仿真過不等于上電能用課設(shè)最常見的翻車現(xiàn)場程序在仿真軟件里邏輯全對一接上實驗臺就各種妖蛾子。這一章把我在類似項目上踩過的和幫別人排查過的坑集中寫一寫每一條都是“現(xiàn)象—原因—解決”。5.1 仿真能跑、實物不動初始化競爭現(xiàn)象程序下載后電梯停在原地怎么按呼梯都沒反應(yīng)監(jiān)控軟件里看M0.1始終是0。原因SM0.1是S7-200的上電初始化脈沖只在第一個掃描周期接通一次。如果初始化網(wǎng)絡(luò)先復(fù)位了M0.1緊接著又置位M0.1看起來沒問題但初始化網(wǎng)絡(luò)后面還有一個“開始信號產(chǎn)生”網(wǎng)絡(luò)它會和初始化搶同一個周期的執(zhí)行順序。掃描順序靠前時M0.1剛置位就被后面的復(fù)位清掉掃描順序靠后時M0.1又可能在復(fù)位之前被置位。兩種結(jié)果取決于網(wǎng)絡(luò)排列表現(xiàn)出來就是電梯“死”在那里。解決把所有運行邏輯的允許條件統(tǒng)一接一個“初始化完成位”比如M0.0。初始化網(wǎng)絡(luò)先復(fù)位M0.0全部復(fù)位動作做完后最后一個網(wǎng)絡(luò)置位M0.0。路徑判斷、歸位判斷、呼梯響應(yīng)全部串聯(lián)M0.0常開確保初始化沒完成前任何動作都不執(zhí)行。我一般還會在下載后先強制M0.0看電梯是否能動能分清是初始化問題還是外設(shè)問題。5.2 順向截車不響應(yīng)外呼按鈕短信號被漏掃現(xiàn)象按住二層上行外呼電梯從一層啟動經(jīng)過二層時沒停直接繼續(xù)往上走。原因按鈕按下的時間太短PLC掃描時沒采到I2.1或者采到了但程序里沒有先置位M10.1路徑判斷網(wǎng)絡(luò)里讀不到保持位整個截車事件就像沒發(fā)生過。仿真軟件里常見做法是把按鈕手動置位保持接通掩蓋了這個問題實物按鈕一松信號就消失。解決所有外呼、內(nèi)呼輸入先經(jīng)過一個獨立的“信號鎖存網(wǎng)絡(luò)”只要按鈕有上升沿就置位對應(yīng)的M10.x保持位路徑邏輯一律只讀M10.x不直接讀I2.x。執(zhí)行完截車動作后在開門到位網(wǎng)絡(luò)里復(fù)位對應(yīng)的保持位。調(diào)試時可以通過監(jiān)控表強制置位M10.1看路徑位M0.2是否建立這樣能把問題快速壓縮到“鎖存沒做”還是“執(zhí)行沒做”。5.3 數(shù)碼管顯示亂跳共陽極接成了共陰極現(xiàn)象樓層顯示時而正常、時而出錯顯示0、顯示8、顯示F都出現(xiàn)過按呼梯后顯示內(nèi)容完全對不上實際樓層。原因接線或選件上共陽極和共陰極搞混了。共陽極數(shù)碼管公共端接24V段碼低電平有效如果實驗臺實際配的是共陰極公共端得接0V段碼高電平有效。電路接反后譯碼輸出和數(shù)碼管段碼邏輯相反顯示必然是亂的。另外Q2.0到Q2.3送的是BCD碼如果譯碼電路輸入端A到D和這四個輸出的線序接錯也會出現(xiàn)數(shù)字錯位。解決拿萬用表量數(shù)碼管公共端對地電壓判斷是共陽極還是共陰極再逐根核對Q2.0到Q2.3與譯碼器輸入的對應(yīng)關(guān)系。S7-200擴展模塊的輸出地址從Q2.0開始不是順延Q1.2地址表一定對著Micro/WIN里的I/O配置看一遍再接線。我給學生的建議是上電前先用強制輸出功能讓Q2.0到Q2.3分別置位數(shù)碼管顯示有規(guī)律變化說明輸出和譯碼正常再討論邏輯。5.4 超時報警誤觸發(fā)定時器復(fù)位條件放錯了地方現(xiàn)象電梯明明在正常運行T40隔十幾秒就報警甚至剛啟動就報警停車Q0.7亮得莫名其妙。原因T40是TON定時器它的復(fù)位條件如果只放在“到達最終目標樓層”的網(wǎng)絡(luò)里中途經(jīng)過其它樓層時就一直在計時。電梯從一層到四層再加上開關(guān)門整套動作很容易超過8秒中途還有可能停靠截車樓層累計時間更久。T40一直在走走到設(shè)定位就置位報警。解決把T40的復(fù)位條件改為“電梯運行中每經(jīng)過一個行程開關(guān)就復(fù)位一次”。具體做法是I0.0到I0.3的上升沿并聯(lián)后驅(qū)動一個對T40的R復(fù)位。超時報警是兜底保護不是速度考核它的關(guān)注點是兩個平層信號之間是否卡死。如果實驗臺傳動慢可以把PT值放寬到15秒先保證正常流程不誤報再逐步收緊。報警后要加一個手動復(fù)位按鈕或讓M20.1重新置位否則停了就再也走不了。5.5 運行中能開門門控和方向輸出沒互鎖現(xiàn)象電梯運行中按手動關(guān)門或外部開門信號門能打開看起來非常嚇人。原因開門輸出Q0.4和關(guān)門輸出Q0.6之間做了互鎖但沒和方向輸出Q0.0、Q0.1做互鎖。也就是說運行時門控邏輯完全不知道電梯在動Q0.4的置位條件里沒有去檢查是否正在上行或下行。解決在Q0.4的置位網(wǎng)絡(luò)里串聯(lián)Q0.0和Q0.1的常閉觸點電梯運行中強制切斷開門條件同時在電梯啟動網(wǎng)絡(luò)里串聯(lián)門鎖反饋和門開狀態(tài)互鎖。雙向都要做運行中禁止開門門開時禁止運行。這個互鎖不只是課設(shè)要求更是安全底線實驗臺上雖然只是演示代碼里也必須體現(xiàn)。寫完檢查一下QT0.4網(wǎng)絡(luò)里有沒有“Q0.0常閉AND Q0.1常閉”缺一個都不行。6. 進階用狀態(tài)轉(zhuǎn)移表重新組織這套邏輯把“能跑”變成“能改”如果你只是想把課設(shè)交上去前面的內(nèi)容夠用了但如果你后面想做五層、六層電梯或者把課設(shè)改成比賽項目這套靠堆路徑寄存器的方式很快就會失控。我建議拿到這份PDF后做一次重構(gòu)練習把所有路徑位整理成一張狀態(tài)轉(zhuǎn)移表哪怕不改程序腦子里也會清晰很多。6.1 把路徑位整理成狀態(tài)轉(zhuǎn)移表當前樓層目標樓層方向?qū)?yīng)路徑位中途可能截車層一層二層/三層/四層上行M0.2/M0.3/M0.4二層/三層二層三層/四層上行M0.6/M0.7三層二層一層下行M1.3無三層四層上行M1.0無四層三層/二層/一層下行M1.5/M1.4/M1.3三層/二層多層先到中間層再繼續(xù)截車M2.1/M2.7等—這樣一看就明白路徑寄存器本質(zhì)上就是“當前樓層目標樓層方向”的組合編碼。截車路徑是把原路徑拆成兩段——先到截車層再到原目標層。梯形圖里的置位和復(fù)位就是在這些狀態(tài)之間跳轉(zhuǎn)。6.2 用“目標減當前”直接算方向替代堆疊狀態(tài)位// 結(jié)構(gòu)化文本思路S7-200里可用比較指令實現(xiàn) IF 目標樓層 當前樓層 THEN Q0.0 : TRUE; // 上行 Q0.1 : FALSE; ELSIF 目標樓層 當前樓層 THEN Q0.0 : FALSE; Q0.1 : TRUE; // 下行 ELSE Q0.0 : FALSE; Q0.1 : FALSE; Q0.4 : TRUE; // 到站開門 END_IF這套思路的價值在于加樓層時不用再為每條路徑單獨分配M寄存器只要維護好“目標樓層”變量方向和截車判斷都能靠比較自動算出來。從那以后我每次拆這類課程設(shè)計都強制自己先畫一張狀態(tài)轉(zhuǎn)移表再碰梯形圖這習慣幫我避開了好幾次“調(diào)一晚上發(fā)現(xiàn)只是地址表抄錯”的悲劇。希望幫到你。本文還有配套的精品資源點擊獲取