習(xí)五大常見(jiàn)誤區(qū):從接線到工藝的實(shí)戰(zhàn)避坑指南)
經(jīng)常有剛?cè)胄谢蛘呦朕D(zhuǎn)行的人問(wèn)我PLC到底該怎么學(xué)。這個(gè)問(wèn)題問(wèn)多了之后我發(fā)現(xiàn)一個(gè)規(guī)律問(wèn)的人其實(shí)已經(jīng)買(mǎi)了不少書(shū)存了不少網(wǎng)盤(pán)資料甚至看了不少教學(xué)視頻真正缺的不是學(xué)習(xí)資源而是一條有反饋、能驗(yàn)證、能積累的動(dòng)手路徑。結(jié)合我這些年帶新人、做項(xiàng)目時(shí)見(jiàn)過(guò)的真實(shí)問(wèn)題我想把大家最容易踩進(jìn)去的五個(gè)坑一次性說(shuō)清楚。這篇內(nèi)容不會(huì)給你列一張長(zhǎng)長(zhǎng)的書(shū)單也不會(huì)讓你先從背指令開(kāi)始而是會(huì)告訴你為什么有的人折騰半年還在原地踏步有的人三個(gè)月就能獨(dú)立改程序、查故障。如果你正在猶豫要不要買(mǎi)開(kāi)發(fā)板或者軟件授權(quán)先別急著下單看完這篇再?zèng)Q定也不遲。1. 先把話說(shuō)透你缺的不是資料是反饋回路1.1 “搜什么”往往暴露了你卡在哪我平時(shí)會(huì)留意很多PLC相關(guān)的搜索詞比如“S7-PLCSIM Advanced v5.0實(shí)例為什么啟動(dòng)不了”“威倫通觸摸屏軟件上找不到匯川PLC驅(qū)動(dòng)”“MCGS與信捷PLC怎么連”這類(lèi)問(wèn)題出現(xiàn)頻率非常高。這些搜索詞表面上是問(wèn)軟件操作實(shí)際上暴露了一個(gè)共同的事實(shí)提問(wèn)的人已經(jīng)進(jìn)入了實(shí)操環(huán)節(jié)但在某個(gè)具體環(huán)節(jié)上被卡住了又找不到人問(wèn)。這其實(shí)是好現(xiàn)象說(shuō)明你已經(jīng)在動(dòng)手了。真正令人擔(dān)心的不是這類(lèi)問(wèn)題而是收藏了一堆“PLC編程入門(mén)基礎(chǔ)知識(shí)”視頻看倒是看了卻沒(méi)有打開(kāi)過(guò)任何一款編程軟件也沒(méi)有接過(guò)一根線。從熱門(mén)搜索詞來(lái)看“西門(mén)子PLC輸入輸出接線”被搜得很多這本身就說(shuō)明大家知道接線很重要但很多人只是搜了、存了并沒(méi)有真的拿一個(gè)開(kāi)關(guān)、一個(gè)指示燈去驗(yàn)證一遍。1.2 學(xué)習(xí)目標(biāo)決定了你該怎么學(xué)我建議初學(xué)者把目標(biāo)拆成三個(gè)臺(tái)階第一看得見(jiàn)也就是能看懂PLC的輸入輸出接線知道傳感器和開(kāi)關(guān)怎么進(jìn)燈和繼電器怎么出第二寫(xiě)得動(dòng)能用梯形圖或結(jié)構(gòu)化文本寫(xiě)出啟保停、定時(shí)、計(jì)數(shù)這套基礎(chǔ)邏輯第三聯(lián)得上讓PLC和觸摸屏、變頻器、上位機(jī)通信起來(lái)有數(shù)據(jù)交換有畫(huà)面操作。如果沒(méi)有這三個(gè)臺(tái)階學(xué)習(xí)很容易走回“背知識(shí)點(diǎn)”的老路。很多人學(xué)了很久指令手冊(cè)快翻爛了但你把一個(gè)十字路口的紅綠燈控制要求放在他面前他還是不知道第一步該分幾個(gè)I/O點(diǎn)第二步該怎么處理時(shí)序關(guān)系。這不是因?yàn)樗慷且驗(yàn)樗麖膩?lái)沒(méi)有建立過(guò)從“需求”到“程序”的翻譯能力而這種能力只有靠完成一個(gè)又一個(gè)真實(shí)的小項(xiàng)目才能練出來(lái)。2. 第一個(gè)坑硬盤(pán)里塞滿了教程卻連一個(gè)輸出點(diǎn)都沒(méi)點(diǎn)亮過(guò)2.1 收藏夾帶來(lái)的虛假滿足感我必須說(shuō)一個(gè)比較扎心的事實(shí)下載資料和真正學(xué)會(huì)完全是兩回事。下載那一刻大腦會(huì)分泌一點(diǎn)“我在進(jìn)步”的信號(hào)但這只是收藏的快樂(lè)不是學(xué)習(xí)的結(jié)果。PLC是一門(mén)極度依賴反饋的工程技能你寫(xiě)的程序到底對(duì)不對(duì)輸出點(diǎn)到底亮不亮電機(jī)到底轉(zhuǎn)不轉(zhuǎn)只有通電之后才能見(jiàn)分曉。我見(jiàn)過(guò)太多人電腦里存了幾十個(gè)G的課程視頻各種品牌的教學(xué)包全齊西門(mén)子、三菱、匯川、信捷一個(gè)不落。問(wèn)他PLC掃描周期是怎么回事他答得上來(lái)讓他去現(xiàn)場(chǎng)接線、確認(rèn)一個(gè)漏型輸入是怎么通的他就開(kāi)始犯怵。而這種犯怵會(huì)在面試和實(shí)際工作中被無(wú)限放大因?yàn)槊嬖嚬俨粫?huì)問(wèn)你收藏了多少資料只會(huì)讓你畫(huà)出接線圖或者讓你說(shuō)出某個(gè)輸入點(diǎn)不亮?xí)r怎么排查。2.2 動(dòng)手第一步按圖點(diǎn)亮一盞燈真正有效的第一步極其簡(jiǎn)單找一臺(tái)入門(mén)級(jí)PLC西門(mén)子S7-200 SMART也好三菱FX系列也好匯川Easy系列也好任何一個(gè)主流品牌都行然后完成一個(gè)最小系統(tǒng)。把24V電源接到PLC的L/M端把一個(gè)按鈕開(kāi)關(guān)接到數(shù)字量輸入端子再把數(shù)字量輸出端子接到一個(gè)中間繼電器或者指示燈上。這里涉及一個(gè)新手最容易忽略的概念源型輸入和漏型輸入。西門(mén)子的S7系列大多數(shù)支持源型輸入也就是電流從模塊流入傳感器再?gòu)膫鞲衅骰氐焦捕硕獾暮芏嗬闲吞?hào)默認(rèn)是漏型COM端接正極開(kāi)關(guān)另一端接輸入端子。接線前先查清楚你的PLC型號(hào)是哪種接法這比背任何指令都重要。很多“輸入點(diǎn)不亮”的問(wèn)題其實(shí)不是PLC壞了而是COM端沒(méi)接對(duì)或者傳感器和PLC的NPN、PNP類(lèi)型不匹配。接好線之后下載一個(gè)最簡(jiǎn)單的程序把I0.0的常開(kāi)觸點(diǎn)直接驅(qū)動(dòng)Q0.0輸出。強(qiáng)制I0.0或者按下按鈕注意觀察輸入點(diǎn)指示燈是否亮起輸出點(diǎn)指示燈是否跟隨。這一套動(dòng)作做完你對(duì)PLC的信任感才算真正建立起來(lái)。以后不管多復(fù)雜的程序身體機(jī)制都明白PLC不是神秘的黑盒子不過(guò)是“讀到信號(hào)執(zhí)行邏輯再送去輸出”。2.3 老設(shè)備和老軟件別硬碰硬身邊有不少人在糾結(jié)三菱老款FX2系列怎么連接電腦搜索“fxgpwin win7_8_10_xp.zip”這類(lèi)關(guān)鍵詞。這里給個(gè)建議老軟件對(duì)現(xiàn)代Windows系統(tǒng)的兼容性確實(shí)差不必和自己較勁。家里有舊電腦就裝個(gè)XP系統(tǒng)或者直接用虛擬機(jī)跑一個(gè)XP環(huán)境通信驅(qū)動(dòng)選好串口或USB轉(zhuǎn)串口的COM口號(hào)一般都能解決。折騰老設(shè)備的重點(diǎn)不是炫技而是讓你明白做自動(dòng)化控制很多時(shí)候軟件適配比程序本身還磨人這本身就是一種現(xiàn)場(chǎng)能力。3. 第二個(gè)坑把梯形圖當(dāng)普通編程寫(xiě)完全忽略掃描周期3.1 程序里的每一行都是排隊(duì)過(guò)安檢很多有編程基礎(chǔ)的人學(xué)PLC時(shí)會(huì)覺(jué)得梯形圖太簡(jiǎn)單了“無(wú)非就是與或非邏輯”。但是第一批栽跟頭的人往往也是這批人。PLC程序不是像網(wǎng)頁(yè)腳本那樣“響應(yīng)事件”運(yùn)行的它循著一個(gè)固定的周期一直循環(huán)讀入輸入映像區(qū)執(zhí)行用戶程序刷新輸出映像區(qū)再回到第一步。這個(gè)循環(huán)就是掃描周期S7-200 SMART默認(rèn)的循環(huán)時(shí)間往往只有幾毫秒但它依然是有順序、有時(shí)間概念的。不理解掃描周期最典型的問(wèn)題就是對(duì)同一個(gè)輸出點(diǎn)重復(fù)使用線圈。有些初學(xué)者覺(jué)得我在程序前面讓Q0.0輸出一次程序后面再讓Q0.0輸出一次那它應(yīng)該“優(yōu)先響應(yīng)最后來(lái)的那個(gè)條件”。但實(shí)際上PLC執(zhí)行到第二個(gè)線圈時(shí)會(huì)直接覆蓋前一個(gè)線圈的結(jié)果。最終Q0.0亮不亮取決于程序里最后一次寫(xiě)它的那行結(jié)果而不是“誰(shuí)觸發(fā)了就保持住”。這種隱蔽的覆蓋問(wèn)題在程序短的時(shí)候看不出來(lái)程序一長(zhǎng)或者中間插入了跳轉(zhuǎn)指令就會(huì)出現(xiàn)“這里明明置位了輸出為啥老不對(duì)”的靈異現(xiàn)象。3.2 一個(gè)真實(shí)例子同樣的邏輯位置不同結(jié)果不同假設(shè)有這樣一個(gè)控制要求機(jī)器啟動(dòng)后用一個(gè)定時(shí)器延時(shí)2秒再亮燈。你可能會(huì)這樣寫(xiě)Network 1 Q0.0通過(guò)T37的常開(kāi)觸點(diǎn)控制 T37 Q0.0 ----| |-----------( )---- Network 2 T37定時(shí)器線圈設(shè)定2秒 I0.0 T37 ----| |------(TON, 2s)----我把定時(shí)器線圈放在網(wǎng)絡(luò)2觸點(diǎn)判斷放在網(wǎng)絡(luò)1。結(jié)果就是當(dāng)T37計(jì)時(shí)到2秒的那一刻同一個(gè)掃描周期里網(wǎng)絡(luò)1先執(zhí)行它看到T37還沒(méi)“更新”成通的狀態(tài)所以Q0.0不會(huì)立刻變亮要等到下一個(gè)掃描周期T37的狀態(tài)才會(huì)被重新掃描到Q0.0才亮。差一個(gè)掃描周期在很多場(chǎng)合無(wú)所謂但在一些需要嚴(yán)格同步的設(shè)備上這種時(shí)序會(huì)讓你排查到懷疑人生。正確的方式是讓輸出判斷和定時(shí)器線圈的先后順序符合你的預(yù)期或者使用邊沿指令和中間變量讓置位和復(fù)位條件不再依賴掃描順序。理解這些之后你才算真正從“會(huì)寫(xiě)指令”進(jìn)階到“會(huì)安排程序結(jié)構(gòu)”。3.3 入門(mén)指令到底該怎么學(xué)我建議的學(xué)習(xí)路線是這樣的先接觸點(diǎn)、線圈把與、或、非邏輯吃透然后用定時(shí)器和計(jì)數(shù)器做小練習(xí)比如紅綠燈閃爍再學(xué)傳送指令、比較指令處理數(shù)值然后再碰中斷、PID、通信這些進(jìn)階內(nèi)容。這條路線和很多課程大綱看起來(lái)差不多但關(guān)鍵差別在于每學(xué)一類(lèi)指令都要給它匹配一個(gè)物理現(xiàn)象。學(xué)傳送指令就讓觸摸屏寫(xiě)一個(gè)數(shù)PLC把它傳送到變頻器頻率學(xué)比較指令就用它做流量報(bào)警。指令是工具不是目的。背指令表就像背字典有需要時(shí)能查到會(huì)用就行真正值錢(qián)的是你看到一段程序能不能說(shuō)清楚它背后的時(shí)序關(guān)系和聯(lián)鎖邏輯。4. 第三個(gè)坑只玩單機(jī)版PLC不碰觸摸屏、變頻器和SCADA4.1 現(xiàn)場(chǎng)里的PLC從來(lái)不是孤軍奮戰(zhàn)現(xiàn)在搜索“plc,scada如何與plc連接”的人越來(lái)越多了這其實(shí)是一個(gè)很好的信號(hào)說(shuō)明大家開(kāi)始意識(shí)到自動(dòng)化項(xiàng)目里PLC只是大腦它要跟眼睛、手、腳配合才能干活。一個(gè)典型的柜子里PLC旁邊大概率站著觸摸屏下面一排變頻器或者伺服驅(qū)動(dòng)器柜門(mén)外面掛著傳感器和執(zhí)行器。如果你只會(huì)在PC上模擬PLC程序不理解通信那你最多只能做程序里的一部分活離“獨(dú)立調(diào)試”還差得遠(yuǎn)。很多招聘要求里都寫(xiě)著“熟悉Modbus、Profibus、Profinet等常用協(xié)議”原因就在這里。通信不是附加技能而是基本功。比如你用西門(mén)子PLC去控制一臺(tái)ABB變頻器可能就會(huì)搜索“ABB變頻器與西門(mén)子PLC”怎么連本質(zhì)上要做的就是把變頻器的通信參數(shù)設(shè)對(duì)然后讓PLC通過(guò)串口或以太網(wǎng)按Modbus RTU或Modbus TCP協(xié)議去讀寫(xiě)變頻器的寄存器。4.2 從“讀變頻器轉(zhuǎn)速”開(kāi)始把通信打通建議你的第一個(gè)通信練習(xí)就選變頻器因?yàn)榉答伜苤庇^PLC讀到轉(zhuǎn)速顯示到觸摸屏上你立刻能看到數(shù)據(jù)對(duì)不對(duì)。首先把變頻器的通信參數(shù)設(shè)置好。以ABB ACS510系列為例站地址設(shè)為1波特率9600或者19200協(xié)議校驗(yàn)方式選無(wú)校驗(yàn)或偶校驗(yàn)通信協(xié)議類(lèi)型設(shè)為Modbus RTU。然后在PLC側(cè)配置主站和變頻器的站地址、波特率保持一致。接下來(lái)要查變頻器的寄存器手冊(cè)比如運(yùn)行頻率寄存器地址是40001那么你要寫(xiě)的Modbus地址就是40001對(duì)應(yīng)的協(xié)議地址0000H。(* 西門(mén)子S7-200 SMART用Modbus RTU讀變頻器頻率示例 *) // 在初始化程序中 // MODBUS_CTRL: 設(shè)置9600波特率, 無(wú)校驗(yàn), 從站1 // MBUS_CTRL 模式 1, 波特率 9600, 校驗(yàn) 0, 從站 1 // 在輪詢程序中 // MODBUS_MSG: 讀取從站1的保持寄存器起始地址40001 // 數(shù)據(jù)長(zhǎng)度1個(gè)字存到VB100開(kāi)始的變量里 // 將VB100里讀到的原始值按變頻器量程比例換算為實(shí)際轉(zhuǎn)速通信失敗的時(shí)候不要急著改程序。先查物理鏈路串口線是不是交叉線以太網(wǎng)IP是不是在同一個(gè)網(wǎng)段再查參數(shù)一致性波特率、校驗(yàn)位、站地址一樣不一樣最后查寄存器地址映射是不是找錯(cuò)了功能碼。這三步能解決絕大多數(shù)連不上問(wèn)題。很多人栽在第一步就是把PLC的COM口和變頻器的控制端子當(dāng)成普通電源線來(lái)理解忽略了RS485是A、B兩條線接反了是不會(huì)通的。4.3 觸摸屏和SCADA先學(xué)會(huì)連上再談畫(huà)畫(huà)面有網(wǎng)友問(wèn)“威倫通觸摸屏軟件上怎么找不到匯川PLC的驅(qū)動(dòng)”這種情況我遇到過(guò)不少次。威倫通的EBPro軟件默認(rèn)驅(qū)動(dòng)列表只顯示它內(nèi)置支持的設(shè)備如果確實(shí)找不到對(duì)應(yīng)驅(qū)動(dòng)通常有兩個(gè)解決方向一是在驅(qū)動(dòng)管理里更新數(shù)據(jù)庫(kù)新版軟件會(huì)補(bǔ)充新設(shè)備驅(qū)動(dòng)二是換個(gè)思路不用品牌專(zhuān)用驅(qū)動(dòng)而是讓觸摸屏和PLC雙方都使用標(biāo)準(zhǔn)的Modbus協(xié)議通信這是最通用也最省事的做法。信捷XD系列連接觸摸屏?xí)r也是一樣MCGS組態(tài)軟件如果找不到信捷驅(qū)動(dòng)走M(jìn)odbus通道往往比你去翻驅(qū)動(dòng)更加穩(wěn)妥。SCADA和觸摸屏的本質(zhì)區(qū)別也值得搞清楚。觸摸屏是本地人機(jī)界面做按鈕、畫(huà)面、報(bào)警顯示SCADA是上位監(jiān)控系統(tǒng)重點(diǎn)在數(shù)據(jù)采集、歷史存儲(chǔ)、趨勢(shì)曲線和整個(gè)系統(tǒng)的調(diào)度。用C#或者組態(tài)軟件寫(xiě)上位機(jī)去讀PLC時(shí)很多人會(huì)問(wèn)“PLC讀取頻率多少合適”。我的建議做普通監(jiān)控輪詢周期設(shè)在100到500毫秒就很合適太短了會(huì)給PLC增加沒(méi)必要的通信負(fù)擔(dān)太長(zhǎng)了你畫(huà)面上看到的數(shù)據(jù)就像幻燈片。這種輪詢間隔的控制正是SCADA工程經(jīng)驗(yàn)的一部分。4.4 通信聯(lián)不上時(shí)的通用排查鏈路這一套排查思路你以后會(huì)遇到無(wú)數(shù)次值得養(yǎng)成肌肉記憶先看指示燈PLC的通信口燈有沒(méi)有閃爍再看接線三線制傳感器、屏蔽線是否接地、串口線是否交叉再查參數(shù)站號(hào)、波特率、數(shù)據(jù)位、校驗(yàn)位最后用調(diào)試助手單獨(dú)測(cè)從站看從站本身回不回應(yīng)指令。如果從站單獨(dú)用調(diào)試軟件能通掛上PLC就不通那問(wèn)題大概率出在PLC側(cè)的程序沒(méi)有正確初始化通信口或者輪詢頻率太快從站處理不過(guò)來(lái)。5. 第四個(gè)坑仿真器里跑得飛快真機(jī)卻點(diǎn)火不著5.1 仿真模擬的是邏輯不是物理世界PLCSIM、S7-PLCSIM這類(lèi)仿真工具確實(shí)很好用它讓你不需要硬件也能驗(yàn)證程序邏輯。但我必須強(qiáng)調(diào)一句話仿真器把CPU邏輯模擬得很像卻把真實(shí)世界的一切都“隱去”了。你在仿真器里點(diǎn)一下鼠標(biāo)就是輸入信號(hào)可在現(xiàn)場(chǎng)輸入信號(hào)要經(jīng)過(guò)24V電源、傳感器、屏蔽線、端子排才能進(jìn)入輸入點(diǎn)輸出信號(hào)要經(jīng)過(guò)PLC的晶體管或繼電器再帶動(dòng)外面的接觸器和電機(jī)。這就是為什么總有搜索詞問(wèn)“S7-PLCSIM Advanced v5.0實(shí)例為什么啟動(dòng)不了且沒(méi)有報(bào)錯(cuò)”的原因。仿真軟件本身的安裝環(huán)境就比真實(shí)PLC對(duì)系統(tǒng)要求更敏感缺少授權(quán)文件、Windows版本不在官方支持列表、運(yùn)行在虛擬機(jī)里沒(méi)開(kāi)嵌套虛擬化、和舊版PLCSIM沖突都可能導(dǎo)致啟動(dòng)過(guò)程卡住但又不彈出明確報(bào)錯(cuò)。這種體驗(yàn)其實(shí)變相提醒我們軟件工具永遠(yuǎn)只是輔助真機(jī)才是標(biāo)準(zhǔn)。把仿真器和真機(jī)放在一起看差別非常明顯我列了一個(gè)表對(duì)比項(xiàng)仿真器真實(shí)PLC輸入信號(hào)來(lái)源鼠標(biāo)操作或強(qiáng)制變量按鈕、傳感器、現(xiàn)場(chǎng)線路存在抖動(dòng)和干擾輸出結(jié)果變量狀態(tài)變化必須驅(qū)動(dòng)真實(shí)負(fù)載會(huì)面臨短路、過(guò)載掃描周期通常極快不受外部影響受程序復(fù)雜度和通信影響周期會(huì)波動(dòng)錯(cuò)誤信息以軟件彈窗為主有模塊指示燈、診斷緩沖區(qū)、故障碼接線和公共端完全不涉及漏型源型接錯(cuò)、端子松動(dòng)、信號(hào)地電位差都可能導(dǎo)致故障5.2 真機(jī)“沒(méi)報(bào)錯(cuò)但就是不運(yùn)行”的現(xiàn)場(chǎng)排查流程這種問(wèn)題最讓人頭疼。PLC的RUN燈明明亮著SF燈也沒(méi)報(bào)警監(jiān)控程序狀態(tài)也正??奢敵鼍褪遣粍?dòng)或者設(shè)備就是不走。這時(shí)候千萬(wàn)別急著改程序先按順序查幾件事第一步看CPU的運(yùn)行狀態(tài)和面板指示燈。如果RUN燈沒(méi)亮先查是否處在STOP狀態(tài)急停回路、安全門(mén)信號(hào)有沒(méi)有閉合很多PLC在硬件輸入模塊里設(shè)置了“外部急停信號(hào)沒(méi)到位就無(wú)法啟動(dòng)”的隱藏條件這種邏輯不會(huì)報(bào)錯(cuò)但會(huì)卡住整個(gè)程序。第二步在線打開(kāi)診斷緩沖區(qū)一條條讀事件。很多時(shí)候設(shè)備剛開(kāi)電時(shí)發(fā)生過(guò)一次短暫供電跌落CPU可能重啟過(guò)程序沒(méi)有恢復(fù)運(yùn)行。這種現(xiàn)場(chǎng)記錄比你看程序時(shí)猜來(lái)猜去管用得多。第三步檢查I/O狀態(tài)。用萬(wàn)用表量傳感器的供電有沒(méi)有24V量PLC輸入點(diǎn)對(duì)COM的電壓對(duì)不對(duì)再看輸入點(diǎn)指示燈亮不亮。觸摸屏上顯示的變量可以強(qiáng)制但是強(qiáng)制之前必須搞清楚這個(gè)強(qiáng)制的值是不是瞬間被程序邏輯覆蓋了我遇到過(guò)強(qiáng)制線圈條件結(jié)果程序里又復(fù)位掉的尷尬情況。第四步排查“導(dǎo)致PLC宕機(jī)”的外部因素。程序死循環(huán)、通信指令超時(shí)堵塞、模擬量模塊信號(hào)超量程、輸出點(diǎn)短路導(dǎo)致模塊過(guò)流都可能讓CPU看起來(lái)像是宕機(jī)了。有些老練的工程師會(huì)把外接負(fù)載先斷開(kāi)單獨(dú)讓PLC跑一段空程序用這種“排除法”來(lái)確認(rèn)到底是負(fù)載問(wèn)題還是程序問(wèn)題。5.3 仿真練什么、不練什么仿真最適合練邏輯啟保停、紅綠燈時(shí)序、包裝線計(jì)數(shù)分流、電梯平層開(kāi)門(mén)這些純邏輯場(chǎng)景用仿真器反復(fù)調(diào)參是完全值得的。但仿真練不了排障因?yàn)榕耪系膶?duì)象很大程度在物理層面是接線、是電源、是接地、是屏蔽和干擾。我見(jiàn)過(guò)一個(gè)學(xué)員在仿真器里調(diào)一個(gè)PID回路調(diào)得頭頭是道到了現(xiàn)場(chǎng)卻發(fā)現(xiàn)傳感器信號(hào)在4到20毫安環(huán)路上跳得厲害根本原因就是屏蔽線單端接地沒(méi)做好變送器和PLC的電源還不是同一路。仿真器再先進(jìn)也教不了你這種問(wèn)題。6. 第五個(gè)坑指令表背得溜拿到工藝照樣懵6.1 “電梯、紅綠燈、大棚灌溉、包裝線”才是真正的考試題如果你搜過(guò)PLC相關(guān)的學(xué)習(xí)資源大概也搜過(guò)“十字路口紅綠燈PLC程序”“PLC四層電梯控制程序”“基于西門(mén)子PLC大棚灌溉”“基于PLC的自動(dòng)化包裝線控制系統(tǒng)設(shè)計(jì)”。這些才是真正的考試題因?yàn)樗鼈兌际枪に囼?qū)動(dòng)型的項(xiàng)目。一個(gè)好的PLC程序從來(lái)不是把最復(fù)雜的指令堆上去而是把工藝需求理解透拆解成步驟再落實(shí)到每一個(gè)I/O點(diǎn)和每一段邏輯里。很多人學(xué)了很久掌握的指令不少但拿到一個(gè)“大棚灌溉”需求時(shí)依然會(huì)懵不知道水泵和電磁閥要占幾個(gè)輸出點(diǎn)不知道該用定時(shí)器按時(shí)段灌還是用濕度傳感器PID閉環(huán)灌更不知道缺水保護(hù)和過(guò)流保護(hù)應(yīng)該放在哪一段程序里。這就是只學(xué)指令、不學(xué)工藝的結(jié)果。舉個(gè)最經(jīng)典的“四層電梯”例子。電梯程序的難點(diǎn)不是你會(huì)不會(huì)用上升沿而是你要把“內(nèi)呼、外呼、上行優(yōu)先、平層、開(kāi)門(mén)延時(shí)、超重保護(hù)、檢修模式”這些狀態(tài)理清楚。每一層是什么位置限位開(kāi)關(guān)在哪轎廂門(mén)鎖信號(hào)怎么進(jìn)入安全回路這些和指令沒(méi)關(guān)系只和工藝流程有關(guān)。6.2 五步拆解任何工藝從包裝線說(shuō)起我?guī)氯藭r(shí)經(jīng)常教他們一套拆解方法任何工藝都可以用這五步走完第一步把工藝的動(dòng)作順序用文字寫(xiě)清楚。比如一個(gè)包裝線產(chǎn)品到達(dá)傳感器A啟動(dòng)擋停氣缸機(jī)械手抓取放到包裝位封口計(jì)數(shù)加一如果計(jì)數(shù)到20個(gè)啟動(dòng)換箱提醒。第二步列出所有輸入輸出點(diǎn)給它們分配地址。傳感器A是I0.0啟動(dòng)按鈕I0.1急停I0.2擋停氣缸Q0.0機(jī)械手夾緊Q0.1換箱指示燈Q0.2。第三步把動(dòng)作順序翻譯成步驟或狀態(tài)。這就是常說(shuō)的狀態(tài)機(jī)思想起步階段可以用中間繼電器M區(qū)來(lái)做步進(jìn)條件滿足才允許進(jìn)入下一步不滿足就停在那一步。第四步把所有保護(hù)條件補(bǔ)充進(jìn)去。急停必須優(yōu)先于一切動(dòng)作氣缸兩端要有到位信號(hào)有手自動(dòng)切換時(shí)手動(dòng)模式必須繞過(guò)自動(dòng)流程的某些步驟。第五步寫(xiě)報(bào)警和復(fù)位邏輯。報(bào)警觸發(fā)后設(shè)備停在哪個(gè)狀態(tài)按鈕復(fù)位后從哪一步重啟這些都是工藝邏輯而不是“見(jiàn)字寫(xiě)指令”能解決的。拿這個(gè)思路去看“PLC怎么設(shè)置時(shí)間到期自動(dòng)停機(jī)”這個(gè)問(wèn)題本質(zhì)也是工藝需求系統(tǒng)經(jīng)過(guò)累積運(yùn)行時(shí)間或者到了設(shè)定時(shí)刻發(fā)送停機(jī)指令鎖存停機(jī)狀態(tài)直到人工復(fù)位。用PLC內(nèi)部實(shí)時(shí)時(shí)鐘加上比較指令就能完成難的是你要想清楚停機(jī)時(shí)設(shè)備處于什么工況要不要先完成當(dāng)前動(dòng)作再停車(chē)這些才是真正的前提。6.3 把安全互鎖和消抖當(dāng)成職業(yè)習(xí)慣最后一類(lèi)不得不提就是安全邏輯。不是所有問(wèn)題都能靠程序解決但程序至少不能制造危險(xiǎn)。工程上急停按下時(shí)輸出必須斷開(kāi)安全門(mén)打開(kāi)時(shí)運(yùn)行必須停止電機(jī)正反轉(zhuǎn)不能同時(shí)接通。這些互鎖邏輯必須寫(xiě)進(jìn)程序里不能依賴操作員反應(yīng)。(* 電機(jī)正反轉(zhuǎn)安全互鎖示例 *) IF EmergencyStop THEN MotorForward : FALSE; MotorReverse : FALSE; ELSIF NOT SafetyDoorClosed THEN MotorForward : FALSE; MotorReverse : FALSE; ELSE MotorForward : StartForward AND NOT MotorReverse AND NOT Overload; MotorReverse : StartReverse AND NOT MotorForward AND NOT Overload; END_IF;這種代碼的結(jié)構(gòu)在PLC里再常見(jiàn)不過(guò)優(yōu)先級(jí)從安全條件開(kāi)始一層層往下。新手容易犯的錯(cuò)誤是先寫(xiě)運(yùn)行邏輯再補(bǔ)保護(hù)結(jié)果保護(hù)條件被運(yùn)行邏輯的賦值覆蓋了。記住一個(gè)原則安全條件永遠(yuǎn)放在不會(huì)被覆蓋的最前面輸出線圈在整個(gè)程序里盡量只出現(xiàn)一次。輸入信號(hào)的抖動(dòng)處理也一樣重要。按鈕按下時(shí)由于機(jī)械觸點(diǎn)抖動(dòng)PLC可能會(huì)在幾毫秒內(nèi)讀到多次通斷一次觸發(fā)變成多次執(zhí)行計(jì)數(shù)自然不準(zhǔn)。我習(xí)慣在程序里加一個(gè)十幾毫秒的延時(shí)確認(rèn)或者使用PLC自帶的輸入濾波時(shí)間設(shè)置讓信號(hào)穩(wěn)定后再參與邏輯。至于“AI生成PLC代碼”這件事我也想多說(shuō)一句。AI工具確實(shí)能輔助生成結(jié)構(gòu)化文本或者幫你看一段梯形圖的邏輯關(guān)系但它不了解你的端子接了什么傳感器也不了解現(xiàn)場(chǎng)急?;芈肥欠裉幱陂]合狀態(tài)更不理解工藝?yán)锬切撘?guī)則的互相矛盾。可以把AI當(dāng)成一個(gè)幫你整理思路的助手但不能跳過(guò)接線、排障和工藝分析這些基本功。代碼生成不等于設(shè)備調(diào)試這也是為什么現(xiàn)場(chǎng)經(jīng)驗(yàn)永遠(yuǎn)值錢(qián)。7. 踩過(guò)這些坑之后我給自己定下的三條規(guī)矩第一個(gè)規(guī)矩先接線再寫(xiě)程序哪怕只是接一個(gè)按鈕、一個(gè)燈也要在真機(jī)上跑一遍。沒(méi)有物理上的“通”和“斷”你對(duì)I/O的理解永遠(yuǎn)只是紙面上的。第二個(gè)規(guī)矩能去現(xiàn)場(chǎng)就不要只開(kāi)仿真器。柜子里的PLC、觸摸屏、變頻器、傳感器它們之間靠的是電纜、端子排、通信線這些東西在仿真器里統(tǒng)統(tǒng)不存在而真正出問(wèn)題的往往就是這些環(huán)節(jié)。第三個(gè)規(guī)矩拿到任何程序先問(wèn)工藝再過(guò)指令。不管是電梯、紅綠燈、大棚灌溉還是包裝線先畫(huà)出動(dòng)作時(shí)序列出I/O表標(biāo)明互鎖和報(bào)警然后再想用什么指令去實(shí)現(xiàn)。指令只是表達(dá)方式工藝才是你要解決的事情。說(shuō)起來(lái)這些規(guī)矩也是我自己走了不少?gòu)澛凡趴偨Y(jié)出來(lái)的。早些年我也囤過(guò)資料也迷信過(guò)仿真也在現(xiàn)場(chǎng)被一個(gè)跟不上時(shí)序的輸出折騰過(guò)一整天。后來(lái)發(fā)現(xiàn)學(xué)PLC沒(méi)有捷徑但確實(shí)有更聰明的方式那就是盡早給自己制造真實(shí)的反饋回路讓每一次接線、每一次通信失敗、每一次程序覆蓋都成為你能記住的知識(shí)點(diǎn)。希望這篇內(nèi)容能幫你少走幾步彎路把時(shí)間花在真正能提升能力的事情上。