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