)
1. 從IO分配到運動控制接著上一篇往下聊上一篇把Sysmac Studio的安裝、建工程、界面布局和基礎設置過了一遍這篇直接進入實際干活的部分。很多初學者在看完第一篇后最大的困惑往往不是軟件不會點而是“我建好了工程接下來該干什么”。這篇就把這條主線的后半段講清楚——IO配置與分配、軸參數(shù)設定、ST程序編寫、在線調試與監(jiān)控以及離線模擬驗證。這些環(huán)節(jié)是真正用Sysmac Studio做項目的核心流程也是和傳統(tǒng)PLC編程習慣差異最大的地方。Sysmac Studio的核心設計思路是“一個軟件管全套”從硬件組態(tài)、IO映射、運動控制軸配置到邏輯編程、HMI畫面、模擬仿真甚至現(xiàn)場總線的參數(shù)設定全部集成在同一個工程文件里。這就意味著你不需要像以前那樣PLC用一個軟件、觸摸屏用另一個軟件、伺服調試再開一個工具來回切換還容易數(shù)據(jù)不同步。在Sysmac Studio里所有配置都匯總到一個工程內數(shù)據(jù)一致性由IDE統(tǒng)一維護。這篇內容適合剛接觸歐姆龍NJ/NX系列或者正在從傳統(tǒng)PLC轉向自動化平臺的人。如果你已經會用Codesys或者倍福TwinCAT那上手Sysmac會更順因為底層思路都是IEC 61131-3標準那套東西但具體操作細節(jié)差別不小值得細看。2. 核心配置操作拆解從設備樹到IO映射2.1 設備樹到底該怎么看新建工程并選中NJ系列控制器后左側會生成一個層次化的設備樹。很多習慣了傳統(tǒng)PLC軟件的人第一次看到這個樹狀結構容易懵其實它就是把整個控制系統(tǒng)“實物化”了。從上到下依次是控制器本體、內置IO、CPU單元內置EtherNet/IP端口、內置EtherCAT端口、以及通過EtherCAT擴展的從站設備。這里有個關鍵認知要轉變Sysmac Studio里的設備樹不只是配置界面它直接決定了程序里的變量和物理硬件怎么對應。你在設備樹里添加的每一個從站、每一條軸最終都會映射成程序里可用的系統(tǒng)定義變量。這一步確認到位后面寫程序才順。實操順序很重要。先把設備樹搭好再寫邏輯順序反了會浪費大量時間。具體步驟確認控制器型號和固件版本在“系統(tǒng)”里選對硬件型號在EtherCAT配置下添加實際使用的伺服驅動器、遠程IO從站為每個從站分配節(jié)點地址注意不能和實際硬件上的撥碼設定沖突全部添加完畢后執(zhí)行“比較與合并”功能軟件會自動同步實際從站配置。2.2 IO映射把物理點位變成程序變量IO映射這一步是初學者最容易搞混的地方因為Sysmac Studio不是像傳統(tǒng)PLC那樣編地址比如%IX0.0、%QW10這種而是采用變量名直連的方式。以NJ501為例內置IO模塊上的輸入輸出點在添加硬件后會出現(xiàn)在設備樹的“單元”下方。要做映射右鍵點擊內置IO模塊選擇“編輯單元操作數(shù)”彈出的窗口里可以看到每個物理端子的位置。雙擊“變量”列輸入一個工程內全局變量名比如Start_Button這個變量就直接綁定了物理輸入點。這種映射方式的最大優(yōu)勢在于程序里不再出現(xiàn)一串串物理地址全部使用有意義的變量名。項目規(guī)模大了之后可讀性和可維護性提升非常明顯。但要注意這個映射關系一旦鎖定程序里變量名就不能隨意改否則編譯直接報錯而且排查起來需要檢查變量映射表。我在實際項目里總結了幾個經驗變量命名建議帶前綴區(qū)分類型比如按鈕輸入用Btn_開頭傳感器用Sen_開頭輸出用Out_開頭伺服使能用Sv_Enable這種格式映射完成后導出IO映射表Excel存檔方便電氣工程師接線時對照內置IO的點位映射在工程里是“可讀寫”的運行時最好不要通過程序修改映射關系容易出意外。2.3 EtherCAT從站配置的常見坑EtherCAT是NJ/NX系列和伺服驅動器、遠程IO之間的高速總線。在設備樹中添加從站后有兩個細節(jié)特別容易踩坑第一從站名稱必須和實際硬件型號嚴格一致。Sysmac Studio的從站配置文件庫會隨著版本更新如果你用的驅動器型號比較新而軟件版本比較舊很可能找不到對應的配置文件。這種情況不要硬選其他型號代替正確做法是升級軟件到支持該設備配置文件的版本或者找設備廠商要ESI文件導入。第二EtherCAT的拓撲結構確認。雖然在軟件里可以拖拽從站順序但實際接線必須和軟件里的順序保持一致。EtherCAT是串聯(lián)菊花鏈結構一個節(jié)點斷開它后面的所有節(jié)點都會離線。在線連接后正確做法是在“EtherCAT”頁簽里執(zhí)行“與實際從站比較”讓軟件自動核對實際連接情況與工程配置是否一致。實測下來這個功能比人工核對可靠得多。3. 運動控制軸配置伺服都在這條線里3.1 軸類型與基本參數(shù)設定Sysmac Studio里運動控制是基于軸對象Axis的而不是直接操作驅動器寄存器。添加軸的入口在“運動控制設置”下的“軸設置”里。根據(jù)使用場景軸類型分為兩大類伺服軸Servo Axis和虛擬伺服軸Virtual Servo Axis。伺服軸對應實際的伺服驅動器虛擬軸常用于仿真、電子凸輪規(guī)劃、同步運算等場景。軸的基本參數(shù)設定是整個運動控制系統(tǒng)能否跑穩(wěn)的關鍵。雙擊軸圖標打開設置窗口后有幾個參數(shù)必須認真核對位置單位。Sysmac支持脈沖、毫米、微米、度等單位。實際項目中要結合機械結構來定如果帶動滾珠絲杠用毫米直觀如果是轉臺用度方便。這個參數(shù)影響后續(xù)所有位置指令的數(shù)值一旦定錯程序里所有位置數(shù)據(jù)都要返工。電子齒輪比。驅動器側電子齒輪分子分母設定后必須和軸配置里的“編碼器分辨率”“電機每轉移動量”匹配。這里最容易出錯的根源是單位混亂。具體分析如下編碼器分辨率在驅動器銘牌上通常以“編碼器分辨率pulse/rev”標注常見值有2的17次方、2的20次方、2的23次方等電機每轉移動量由機械結構決定滾珠絲杠就用導程皮帶輪就用有效周長轉臺就用每轉度數(shù)通常設為360電子齒輪比的計算基準是發(fā)送指令脈沖數(shù) × 編碼器分辨率 實際位移 ×電機每轉移動量對應的脈沖數(shù)。舉個實際例子。一款20位編碼器的伺服電機驅動器電子齒輪設為分子1、分母10配導程10mm的絲杠。位置單位選毫米時Sysmac內部會自動根據(jù)編碼器分辨率和電子齒輪比換算指令單位。操作中我通常這樣確定參數(shù)先把單位柵格設定完成再在軸參數(shù)頁“伺服”欄核對“電機每轉移動量”是否為10mm然后試運行“簡易定位”里的點動功能用百分表實測移動量誤差在兩個方向都小于一個脈沖當量說明齒輪比換算正確。3.2 原點返回參數(shù)的選擇邏輯原點返回是運動控制項目里繞不開的環(huán)節(jié)。Sysmac Studio提供多種原點返回方式常用的有“按照原點輸入”“按照原點輸入與Z相信號”和“按照限位輸入”。這里有個選擇邏輯值得展開講如果機械結構允許優(yōu)先選用“原點輸入與Z相”方式。只依賴原點傳感器的信號回零精度受傳感器安裝位置和響應速度影響接近開關類的傳感器尤其明顯每次停止位置都可能差幾個脈沖。而加入Z相信號后因為Z相在電機每轉一圈只有一個固定脈沖傳感器信號只是粗定位最終以Z相為精確零點重復精度會明顯提升。記得有一次現(xiàn)場一臺設備總是做完原點返回后定位精度不穩(wěn)定偶爾還會跑偏。排查后發(fā)現(xiàn)原點傳感器本身沒問題但機械安裝位置存在輕微松動導致觸發(fā)點每次都有微小差異。后來把原點返回方式改為“原點輸入Z相”后問題就解決了。原點返回速度參數(shù)也有講究。接近速度接近原點傳感器時的速度建議設定在較低值比如50mm/min太高容易過沖。返回速度可以快比如3000mm/min但接近速度慢定位重復精度才穩(wěn)。3.3 軸強制停止與軟限位這個章節(jié)存在的意義是提醒安全類參數(shù)不要省。Sysmac Studio中每個軸都可以設定正向軟限位和負向軟限位。軟限位的作用范圍是整個用戶程序運行期間無論JOG模式還是定位指令一旦到達限位位置軸立即停止。軟限位值設定時要注意先確認機械行程再往回留安全余量。比如絲杠行程是500mm軟限位我會設定為±480mm。如果行程盡頭有硬限位限位開關那么軟限位必須比硬限位更靠近中間區(qū)域絕不能和硬限位一樣甚至超出。強制停止輸入的配置也要單獨確認。在軸屬性中可以指定一個輸入點作為強制停止信號源建議直接綁定到驅動器/控制器的硬件輸入點而不是程序內部的軟變量。這樣即使程序跑飛物理急停信號依然能直接切斷軸脈沖輸出。4. 從寫程序到跑起來邏輯實現(xiàn)與在線調試4.1 程序組織方式和任務配置Sysmac Studio的程序組織與傳統(tǒng)PLC有本質不同。傳統(tǒng)PLC往往一個主程序寫完所有邏輯而Sysmac基于IEC 61131-3采用“程序Program任務Task”的結構。你必須把一個完整的控制邏輯拆分成多個程序塊然后將每個程序塊分配給不同的任務執(zhí)行。NJ/NX系列的任務優(yōu)先級是固定周期執(zhí)行的。這意味著理論上不同的程序可以在不同的刷新周期里運行主周期任務Primary Periodic Task運行運動控制相關邏輯周期最短默認1ms級別周期任務Periodic Task運行常規(guī)IO邏輯周期可以設置為1ms、2ms、4ms等事件任務Event Task只在特定條件觸發(fā)時執(zhí)行比如初始化、報警處理。這個設計直接影響程序架構。運動控制相關的軸指令比如定位、點動必須放在主周期任務里因為伺服控制指令必須在固定周期內刷新。如果放到周期任務里周期長了會出現(xiàn)指令響應延遲設備運動不穩(wěn)定如果放到事件任務里那執(zhí)行時機完全不可控運動控制基本沒法用。IO邏輯和普通業(yè)務邏輯放在周期任務里周期可以適當放大避免CPU占用過高。反正實測下來程序拆得合理CPU負荷會明顯下降掃周期也更穩(wěn)定。4.2 ST語言寫控制邏輯的實用要點在Sysmac Studio里程序塊內的編程語言可選梯形圖LD和結構化文本ST。實話說只要涉及復雜算法、數(shù)據(jù)處理、循環(huán)邏輯ST語言的效率比梯形圖高得多。運動控制指令在ST里調用也更簡潔。一個典型的ST程序段例子// 主周期任務中的簡單點動控制邏輯 if Btn_JogPositive AND NOT Sensor_LimitPositive then MC_Power( Axis : Servo_Axis, Enable : TRUE, EnablePositive : TRUE, EnableNegative : TRUE, Stop : FALSE, ... ); MC_MoveJog( Axis : Servo_Axis, JogPositive : TRUE, JogNegative : FALSE, Velocity : 100.0, ... ); else MC_MoveJog( Axis : Servo_Axis, JogPositive : FALSE, JogNegative : FALSE, ... ); end_if;注意到上面示例里MC_Power的供電使能必須在每次程序掃描時持續(xù)調用不能只在條件成立的瞬間調用一次。很多初學者都會寫“只在按下按鈕的那一個掃描周期調用MC_Power”結果軸根本沒使能或者使能后馬上掉電。這是因為運動控制指令輸出的是“持續(xù)性指令”必須在每個周期保持有效輸出。再一個問題是ST語句的賦值時機。Sysmac的任務周期和IO刷新之間有固定的時序關系。程序塊里的變量值在任務周期開始時采集輸入執(zhí)行后輸出在周期結束時統(tǒng)一刷新。所以如果你的邏輯依賴某個變量的“上一周期值”需要顯式使用帶歷史功能的變量或者自己寫延遲邏輯不能默認指令之間有掃描周期的延遲關系。4.3 在線連接前必須做的三項檢查把工程下載到控制器前強烈建議先完成這三項檢查。每一條都是我實際踩過坑之后總結出來的檢查1工程設置里的控制器型號、版本與實際現(xiàn)場硬件一致。型號選錯會直接導致通信失敗版本不一致有時能連上但功能受限。檢查2程序已經全編譯通過。不是只編譯自己改動的那個程序塊而是完整構建整個工程確認錯誤數(shù)為0。Sysmac Studio的“構建”按鈕在菜單欄和工具欄都有快捷鍵是F7需要養(yǎng)成習慣。檢查3軸參數(shù)配置中伺服驅動器通信協(xié)議版本匹配。NJ/NX和伺服間使用MECHATROLINK-III或者EtherCAT通信通信機制不同軸參數(shù)里的協(xié)議設置也要對應。不匹配的情況通常是能通電但軸不使能或者使能瞬間報警。5. 離線模擬與在線調試兩手都要硬5.1 離線模擬不用硬件也能把邏輯調通Sysmac Studio自帶模擬器功能這個功能的價值常被低估。在“模擬”頁簽下可以啟動模擬模式即使現(xiàn)場還沒有接真正的PLC也能在PC上模擬運行整個工程包括IO燈狀態(tài)變化、軸位置變化和指令執(zhí)行情況。離線模擬最大的優(yōu)勢在于驗證邏輯結構和指令使用是否正確。比如你寫了一段定位控制邏輯放在模擬環(huán)境里跑一遍能充分驗證軸沒有使能時報了什么錯位置到達后的完成標志是否按預期產生變量名和數(shù)據(jù)類型有沒有匹配不上程序分支條件是否遺漏。模擬模式下IO映射是不存在的需要用軟件提供的“模擬IO”功能手寫變量值變化來模擬輸入信號。這對控制程序驗證其實夠了核心是邏輯對不對而不是信號真實響應。5.2 在線調試的操作流程與監(jiān)控技巧工程下載后進入在線模式Sysmac Studio會顯示“在線”狀態(tài)。此時有幾個實用工具值得掌握數(shù)據(jù)監(jiān)控窗口Watch Window??梢蕴砑尤我庾兞坎崟r查看當前值。我通常會把關鍵的軸狀態(tài)變量、完成標志、報警代碼一次性拖進去做成一個固定的監(jiān)控布局現(xiàn)場排查問題時效率極高。時序圖監(jiān)視器Data Trace。這個工具能記錄變量在一段時間內的變化曲線。調試伺服定位時特別好用可以精確到幾毫秒間隔記錄速度指令與實際位置偏差幫助判斷加減速時間常數(shù)是否合適。強制輸入輸出Force。調試IO時可以直接強制某個物理輸入點閉合、某個輸出點點亮。但要注意強制狀態(tài)在程序切換運行/停止時可能自動清除不要依賴強制信號長時間保持。5.3 報警代碼的快速定位方法現(xiàn)場調試中不可能不出現(xiàn)報警。Sysmac Studio的報警處理邏輯很清晰但初學者往往不知道怎么快速定位。當控制器出現(xiàn)報警時在線模式左側的事件日志頁簽會顯示報警內容和代碼。雙擊某條報警會自動跳轉到相關軸或相關指令的位置。這個功能比逐個翻程序效率高得多。例如看到坐標超限報警雙擊后就能直接看到是哪個軸、哪個位置觸發(fā)。再結合軸參數(shù)頁面里的當前值查看問題基本能定位。分享一個排查報警的思路先看報警代碼的大類運動控制類、IO類、系統(tǒng)類再雙擊定位到具體位置最后對照手冊了解詳細原因。不要一上來就瞎猜Sysmac的報警體系非常規(guī)范按代碼索引排查最快。6. 避坑經驗匯總這些坑我替你們踩過了6.1 軸使能后自動掉電的排查清單這是現(xiàn)場出現(xiàn)頻率最高的怪問題——程序里明明調用了MC_Power軸使能后稍縱即逝又回到未使能狀態(tài)。先不要懷疑硬件按照以下順序排查確認MC_Power輸出被正確引用并且沒有被其他程序塊復位查軸報警是否因為正負極信號邏輯不對導致驅動禁止查程序周期確認MC_Power寫在主周期任務還是定時任務里不在主周期會有執(zhí)行時序問題查“原點未返回”相關報警部分運動模式設定了原點未返回時禁止使能。6.2 ST編程中“賦值多個軸”的陷阱Sysmac Studio允許在同一個程序塊中處理多個軸但有一個陷阱如果在同一個掃描周期內先后對兩個MC_MoveAbsolute指令賦值部分指令的輸出會在內部數(shù)據(jù)交換時互相覆蓋。解決方法是把軸指令分散到獨立的IF分支中避免在一個分支中直接連續(xù)操作多個軸。6.3 IO映射后程序不刷新的問題有時候改完IO映射保存、編譯、下載都做了但程序里引用的變量值還是舊的。這個大概率是編譯沒全部完成或者控制器沒有切換到運行模式。Sysmac Studio里修改映射后經常需要手動“構建”一次完整工程再下載不能只點“傳輸?shù)娇刂破鳌薄?. 實踐總結從入門到能干活關鍵在流程我?guī)У暮芏嘈氯藦牧闵鲜諷ysmac Studio最快的大概一周就能寫簡單程序但真正能獨立應付現(xiàn)場調試基本都要一個月以上。差異不在軟件操作熟練度而在于對“配置→編程→調試”完整流程的理解。Sysmac Studio和傳統(tǒng)PLC軟件相比最大不同就是把“配置工程的能力”提到了前面。硬件組態(tài)、IO映射、軸參數(shù)、任務分配每一步都會影響后面的程序邏輯。很多人在這一步草草了事最后總在調試階段反復返工說到底就是配置階段的坑帶到了調試階段。如果你想認真掌握這個工具我的建議是把這套流程固定下來從設備樹開始一個一個添加實際設備確認型號、節(jié)點、映射然后配置軸把每一個伺服軸的參數(shù)按機械實際數(shù)據(jù)填好接著寫程序按照任務分工拆開邏輯最后先在模擬模式驗證邏輯再上真實設備調試。就我個人經驗而言凡是嚴格執(zhí)行這條流程的項目調試階段都相對順利凡是跳過配置直接開寫程序的后期基本都要返工一到兩輪。Sysmac Studio本身的穩(wěn)定性沒得說但我們用工具的習慣往往比工具本身更能決定項目的結果。