那科與川崎機(jī)器人實(shí)戰(zhàn)解析)
1. 項目起步為什么是CCLINK而不是別的總線先交代一下這個項目的背景。當(dāng)時接的是一條汽車零部件裝配線的改造客戶對控制系統(tǒng)的要求就三條PLC用三菱、機(jī)器人能夠統(tǒng)一進(jìn)一套總線網(wǎng)絡(luò)、以后擴(kuò)展工位不能動主干。問題來了——這條線上的機(jī)器人既有發(fā)那科又有川崎兩大品牌的機(jī)器人控制器原本各有各的通信偏好發(fā)那科那邊習(xí)慣了EtherNet/IP或者Profinet川崎這邊又常用DeviceNet。如果按照“每個品牌各走各的”來設(shè)計PLC側(cè)就得掛好幾塊不同協(xié)議的主站模塊機(jī)柜空間、備件種類、后期維護(hù)全是麻煩事。所以當(dāng)時我們直接定了方案全部走CCLINK而且用三菱做主站把發(fā)那科和川崎兩臺機(jī)器人全部作為CCLINK從站掛到同一條總線上。很多人聽到這個組合第一反應(yīng)是“行不行”畢竟川崎機(jī)器人和三菱PLC走CCLINK這種搭配比起發(fā)那科加三菱要少見一些。但從硬件選型角度來說這兩個品牌都有CCLINK通信板卡或選件協(xié)議本身是開放的只要組態(tài)和地址規(guī)劃得當(dāng)完全可以跑得很穩(wěn)。這就要說清楚一個核心問題為什么在這種情況下優(yōu)先選CCLINK而不是其他總線第一個原因是三菱PLC對CCLINK的支持是原生級別的。Q系列有QJ61BT11N主站模塊L系列有LJ61BT11FX5U可以直接插FX5-CCL-MS組態(tài)的時候在GX Works里填參數(shù)就行不牽涉到網(wǎng)關(guān)轉(zhuǎn)換。相比EtherNet/IP要走額外模塊或者協(xié)議轉(zhuǎn)換CCLINK從硬件到軟件都是一條龍項目調(diào)試周期能壓縮不少。第二個原因是CCLINK的實(shí)時性。它的鏈路掃描時間跟從站數(shù)量、通信速率、占用站數(shù)直接相關(guān)對于機(jī)器人啟停、急停、狀態(tài)字這類周期性信號10Mbps速率下的刷新周期完全夠用而且畢竟是三菱自己的協(xié)議時序上的一致性比走通用以太網(wǎng)協(xié)議更可控。第三個原因是成本。機(jī)器人側(cè)選配CCLINK板卡的費(fèi)用和選配其他現(xiàn)場總線板卡基本在一個量級但PLC側(cè)省下了額外的主站模塊和網(wǎng)關(guān)設(shè)備。單臺PLC主站最多能掛64個從站對于大部分產(chǎn)線來說一條總線解決所有機(jī)器人加周邊設(shè)備的通信需求綽綽有余。這套方案的適用人群我認(rèn)為是三類一類是正在做設(shè)備選型的技術(shù)人員需要判斷“機(jī)器人品牌和PLC品牌不一樣總線該怎么走”一類是已經(jīng)在現(xiàn)場遇到了“多品牌機(jī)器人混掛一條總線”的需求正在找實(shí)施參考還有一類是調(diào)試工程師想提前知道CCLINK聯(lián)調(diào)中最容易出問題的地方以免在客戶現(xiàn)場熬夜查故障。2. 通信硬件配置與接線2.1 主站模塊選型與站號速率設(shè)定主站模塊的選擇取決于你用的PLC是什么系列。當(dāng)時我們用的是三菱Q系列所以主站選的是QJ61BT11N這是Q系列里最常用的一款CCLINK主站模塊支持CC-Link V1和V2版本既可以做主站也可以做本地站最高通信速率10Mbps。如果用的是FX5U就選FX5-CCL-MS如果用的是L系列就選LJ61BT11這幾款主站模塊的參數(shù)設(shè)置邏輯大同小異都遵循“站號傳輸速率占用站數(shù)”三個核心參數(shù)。站號設(shè)置有個基本規(guī)則主站站號固定為0從站站號從1開始分配不能重復(fù)。速率方面QJ61BT11N支持156kbps、625kbps、2.5Mbps、5Mbps、10Mbps五檔。傳輸距離和速率是成反比的10Mbps時總延長距離不能超過100米2.5Mbps時可以到400米625kbps可以到900米156kbps可以到1200米。項目規(guī)劃階段就要算清楚如果整個產(chǎn)線的物理布線長度接近上限寧可犧牲一點(diǎn)速率也要保證通信穩(wěn)定。我們這條產(chǎn)線主站到最遠(yuǎn)端從站大概在80米以內(nèi)所以直接用了10Mbps。提示傳輸速率不是所有站點(diǎn)單獨(dú)設(shè)定的而是主站和所有從站必須一致。速率不一致是CCLINK聯(lián)調(diào)時最常見的低級錯誤。撥碼開關(guān)這塊也容易踩坑。QJ61BT11N模塊正面有一排DIP開關(guān)STATION NO.設(shè)定站號TRANSMISSION RATE設(shè)定波特率。撥碼開關(guān)的數(shù)字是二進(jìn)制編碼不是十進(jìn)制比如站號5要撥成0101而不是直接撥第五個撥碼。調(diào)試的時候經(jīng)常有人把“5號站”撥成二進(jìn)制101實(shí)際對應(yīng)過去是站號5和站號1沖突這就要靠下載“撥碼速查表”對照著來。我個人的習(xí)慣是撥碼設(shè)定后拍一張照片留存每個從站撥完碼先在模塊標(biāo)簽上寫清楚站號和速率避免后期多臺機(jī)器人混在一起時搞混。2.2 DA/DB/DG接線與終端電阻CCLINK的物理層接線相比以太網(wǎng)要“講究”一些。接頭用的是五針腳的專用插座三根信號線分別是DA、DB、DG外加兩根電源線SLD和FG。接線時用屏蔽雙絞線DA和DB是一對絞線DG是公共地線。所有站點(diǎn)的DA接DA、DB接DB、DG接DG順序必須一致不能跳接。屏蔽層在兩端都要可靠接地接地的目的很簡單——CCLINK是差分信號傳輸如果屏蔽層懸空電纜就成了天線變頻器一啟動通信就開始丟包。終端電阻的處理是CCLINK接線里最容易被忽略的環(huán)節(jié)。CCLINK規(guī)定在主干線的兩個物理末端主站端和最遠(yuǎn)從站端各接一個110Ω終端電阻而不是每個站點(diǎn)都接?,F(xiàn)場經(jīng)常遇到的故障現(xiàn)象是主站和從站都上電了也有數(shù)據(jù)在閃但通信就是不建立或者時好時壞。查到最后十有八九是終端電阻沒接、接了一個、或者把電阻接到了中間的某個站。為什么會這樣因為CCLINK的差分信號在電纜末端會發(fā)生反射終端電阻的作用是吸收反射波電阻缺失時信號波形畸變節(jié)點(diǎn)就可能識別錯數(shù)據(jù)。還要注意一個細(xì)節(jié)終端電阻不是直接擰在端子上就行CCLINK專用終端電阻是帶插頭的直接插在通信插頭的另一側(cè)。如果是自己做線務(wù)必確認(rèn)電阻的阻值是110Ω不要隨手拿一個120Ω的湊合。阻抗不匹配在短距離下可能看不出問題一旦線長超過40米或者車間電磁環(huán)境差通信會莫名其妙的中斷。2.3 從站接線與供電注意事項機(jī)器人側(cè)的CCLINK從站模塊接線方式跟主站一致DA/DB/DG三根線串聯(lián)進(jìn)主干末端再并一個終端電阻。但這里有個供電問題需要注意CCLINK總線本身提供24V電源給從站模塊使用但機(jī)器人控制柜里的CCLINK通信板卡是否直接用總線供電取決于具體選型。有些板卡需要單獨(dú)從控制柜內(nèi)部取24V電源如果忘記接工作電源會出現(xiàn)模塊指示燈亮但不參與通信的情況。從站數(shù)量多的時候還要算一算總線電源的功率。CCLINK總線電源一般由主站模塊或者專門的總線電源模塊提供每個從站會消耗一定的總線電流。如果從站數(shù)量多總線末端電壓會下降導(dǎo)致末端從站工作不穩(wěn)定。我們這條線兩臺機(jī)器人加若干遠(yuǎn)程I/O從站總線供電壓力不大但如果從站數(shù)量超過6個建議中間增加總線電源模塊這也是我后來做方案時比較注意的一點(diǎn)。3. 機(jī)器人側(cè)的CCLINK配置與IO映射3.1 發(fā)那科機(jī)器人CC-Link設(shè)置發(fā)那科機(jī)器人要接入CCLINK總線核心硬件是控制柜里的CC-Link從站板卡這塊板卡通常插在機(jī)器人控制柜的主板上通過內(nèi)部總線與機(jī)器人控制器通信。硬件裝好后配置工作在示教器上完成不需要在機(jī)器人側(cè)額外寫復(fù)雜的通信程序重點(diǎn)是把“機(jī)器人內(nèi)部信號”和“CCLINK總線上傳輸?shù)男盘枴敝g的映射關(guān)系理清楚。發(fā)那科示教器上的操作路徑一般是MENU - I/O - 找到CC-Link相關(guān)的選項進(jìn)入后能看到通信狀態(tài)、站號設(shè)定、占用站數(shù)、傳輸速率等參數(shù)。這里要注意發(fā)那科不同系統(tǒng)版本比如R-30iB和R-30iB Plus的設(shè)置界面略有差異但基本邏輯一致。地址映射是這一節(jié)的核心。CCLINK從站與主站之間的數(shù)據(jù)交換分成兩類信號一類是位信號遠(yuǎn)程輸入RX和遠(yuǎn)程輸出RY另一類是字信號遠(yuǎn)程寄存器RWw主站寫給從站和RWr從站寫給主站。發(fā)那科機(jī)器人側(cè)RX/RY對應(yīng)機(jī)器人的數(shù)字輸入/輸出信號DI/DORWw/RWr對應(yīng)機(jī)器人的寄存器或組輸入/輸出信號GI/GO。舉個例子我們用發(fā)那科默認(rèn)占用1個站那么RX和RY各有32位RWw和RWr各有4個字。如果PLC側(cè)把“啟動機(jī)器人程序”的信號放在RY的第1位那對應(yīng)到機(jī)器人側(cè)就是DI[1]。如果PLC要把一個整數(shù)目標(biāo)值比如速度倍率傳過來寫在RWw的第1個字機(jī)器人側(cè)就對應(yīng)GI[1]。這個對應(yīng)關(guān)系必須在聯(lián)調(diào)前畫一張映射表否則現(xiàn)場邊試邊查會非常痛苦。發(fā)那科機(jī)器人還有一個容易忽略的地方信號映射不是天然自動對應(yīng)在示教器上需要確認(rèn)“CC-Link板卡的I/O分配和機(jī)器人內(nèi)部I/O編號是否一致”有些系統(tǒng)版本需要在I/O分配畫面里手動指定哪些DI/DO由CC-Link板卡控制否則數(shù)據(jù)到了板卡層但進(jìn)不了機(jī)器人程序。遇到過不止一次通信狀態(tài)顯示正常數(shù)據(jù)也一直在刷新但機(jī)器人程序讀不到信號最后發(fā)現(xiàn)是I/O分配地址被別的板卡占用了。3.2 川崎機(jī)器人CC-Link設(shè)置川崎機(jī)器人對CCLINK的支持和發(fā)那科在配置路徑上風(fēng)格不太一樣。川崎控制器比如E系列或者F系列控制柜選裝了CC-Link通信板卡后需要通過示教器的系統(tǒng)設(shè)定或者專用服務(wù)軟件來配置站號和占用站數(shù)配置界面相對更“工程師向”一些沒有發(fā)那科那么圖形化但信息密度更高。川崎機(jī)器人側(cè)的CC-Link映射邏輯要區(qū)分兩個層面一個是通信板卡層面的站號、速率另一個是I/O信號映射即CC-Link總線上收到的位信號和字信號如何對應(yīng)到川崎機(jī)器人內(nèi)部的I/O信號。川崎機(jī)器人內(nèi)部I/O有專用I/O、通用I/O、輔助I/O等分類CC-Link板卡的信號映射通常需要在機(jī)器人程序里通過特定的系統(tǒng)變量和I/O編號來訪問。這里要特別提醒一個坑發(fā)那科和川崎對“字信號”的字節(jié)序處理方式不完全一樣。CCLINK的字信號是16位但兩個品牌在將兩個字節(jié)的數(shù)據(jù)組織成16位時可能存在高低字節(jié)順序的差異。表現(xiàn)為PLC側(cè)發(fā)送一個16位整數(shù)機(jī)器人側(cè)讀到的數(shù)值是拆開重組的。排查的時候不要一上來懷疑硬件先拿一個已知數(shù)值比如16#1234傳過去看機(jī)器人讀出來是0x1234還是0x3412就能快速定位字節(jié)序問題。川崎機(jī)器人CC-Link地址映射很多情況下要在控制柜內(nèi)的CC-Link模塊端子上確認(rèn)站號撥碼同時通過示教器確認(rèn)模塊是否被系統(tǒng)識別。我遇到過的問題是板卡的撥碼站號和示教器里設(shè)定的站號同時存在兩邊必須保持一致如果只改了其中一個模塊雖然上電但不參與鏈路通信主站那邊會顯示這個站掉線。3.3 兩個品牌混跑時的地址規(guī)劃心得當(dāng)同一臺PLC主站下同時掛發(fā)那科和川崎機(jī)器人時地址規(guī)劃就要提前考慮。我的做法是給每臺機(jī)器人分配連續(xù)的占用站區(qū)域中間預(yù)留空站作為擴(kuò)展位。比如發(fā)那科從站號1開始占用2個站川崎從站號4開始占用2個站站號3留空。這樣后期增加設(shè)備時不用改動已有站點(diǎn)的映射關(guān)系。信號規(guī)劃方面位信號和字信號要有一張統(tǒng)一的“總線信號總表”。表格里明確每一臺機(jī)器人的啟動、停止、急停、復(fù)位、狀態(tài)字等信號分別占用RX/RY或RWw/RWr的哪一位、哪個字雙方向的數(shù)據(jù)流都要標(biāo)記清楚。這張表不僅是調(diào)試依據(jù)也是后續(xù)其他人維護(hù)這條產(chǎn)線時的第一份參考資料。很多項目的通信故障根因不是硬件而是后期維護(hù)人員找不到當(dāng)初的映射表憑感覺修出來的問題。4. 三菱PLC組態(tài)與IO地址映射4.1 GX Works2網(wǎng)絡(luò)參數(shù)配置在三菱GX Works2里配置CCLINK主站模塊先要在工程里把QJ61BT11N模塊添加到PLC參數(shù)中然后進(jìn)入“網(wǎng)絡(luò)參數(shù)” - “CC-Link”進(jìn)行詳細(xì)設(shè)置。這里的核心參數(shù)有四個起始I/O號、站號、模式、從站信息表。起始I/O號在模塊安裝位置確定后自動生成一般不用手動改。模式選擇要跟實(shí)際需求匹配如果從站支持CC-Link V2可以把網(wǎng)絡(luò)模式設(shè)為“遠(yuǎn)程網(wǎng)絡(luò)Ver.2模式”這樣才能用擴(kuò)展占用站的功能如果所有從站都只支持V1就選“遠(yuǎn)程網(wǎng)絡(luò)Ver.1模式”。有個現(xiàn)場問題容易踩從站明明支持V2但主站模式設(shè)成了V1結(jié)果從站只能以默認(rèn)1站的方式接入擴(kuò)展的IO容量全部浪費(fèi)。從站信息表是在GX Works2的網(wǎng)絡(luò)參數(shù)中手動登記的。每臺從機(jī)要指定站號、占用站數(shù)和類型。這個表的作用是告訴主站“總線上有哪些設(shè)備、每個設(shè)備占用多大空間”。這里容易犯的錯誤是占用站數(shù)填錯。以1站為例遠(yuǎn)程輸入RX為32位、遠(yuǎn)程輸出RY為32位、遠(yuǎn)程寄存器RWw為4字、RWr為4字2站就是RX/RY各64位、RWw/RWr各8字4站就是RX/RY各128位、RWw/RWr各16字。占用站數(shù)填少了數(shù)據(jù)會截斷填多了會浪費(fèi)地址空間還可能導(dǎo)致站號沖突。4.2 IO地址映射計算CCLINK主站與PLC CPU之間的數(shù)據(jù)交互靠的是“刷新軟元件”機(jī)制。也就是說主站模塊實(shí)時的把總線上收到的從站數(shù)據(jù)存入PLC指定的軟元件區(qū)域同時把PLC軟元件區(qū)域的數(shù)據(jù)發(fā)送到總線上。這個軟元件區(qū)域的起始地址和范圍是在GX Works2里設(shè)定“刷新參數(shù)”時指定的。舉個例子我們當(dāng)時設(shè)定RX刷新起始軟元件為X1000RY刷新起始軟元件為Y1000RWw刷新起始軟元件為D1000RWr刷新起始軟元件為D2000。那么站號1的從站其RX的32位會映射到X1000到X101F其RY的32位會映射到Y(jié)1000到Y(jié)101FRWw的4個字對應(yīng)D1000到D1003RWr的4個字對應(yīng)D2000到D2003。這里出現(xiàn)一個新手很容易繞暈的點(diǎn)X1000到X101F這種地址是十六進(jìn)制的“X101F”里的“F”也是十六進(jìn)制數(shù)字實(shí)際X1000到X101F一共是32個位地址。同理Y地址。算地址范圍時不能按十進(jìn)制去算一定要十六進(jìn)制對齊否則地址規(guī)劃會整體錯位一截。如果把站號1改成占用2站那站號1的RX范圍就是X1000到X103F共64位RWw范圍變成D1000到D1007共8個字。計算方法是每個站32位/4字為基礎(chǔ)乘占用站數(shù)。PLC程序里直接用這些刷新軟元件即可。比如PLC要把啟動信號發(fā)給發(fā)那科機(jī)器人直接Y1000置ON要讀取川崎機(jī)器人的運(yùn)行狀態(tài)字直接讀D2000里的值。梯形圖不需要感知CCLINK總線的存在它面對的就是一塊普通的IO區(qū)域和寄存器區(qū)域這也是CCLINK設(shè)計得比較舒服的地方。4.3 一個實(shí)際映射示例表下面這張表是我們項目里實(shí)際用過的一張信號映射表拿來說明可以省不少事。假設(shè)發(fā)那科占用1站川崎占用2站PLC主站刷新軟元件起始為X1000/Y1000/D1000/D2000則關(guān)鍵信號映射如下信號功能方向發(fā)那科站號1川崎站號4占用2站啟動PLC→機(jī)器人Y1000Y1080復(fù)位PLC→機(jī)器人Y1001Y1081急停反饋機(jī)器人→PLCX1000X1080運(yùn)行中機(jī)器人→PLCX1001X1081故障代碼機(jī)器人→PLCD2000D2008速度倍率設(shè)定PLC→機(jī)器人D1000D1008注意川崎的例子是站號4而不是站號2是因為前面提到要給擴(kuò)展預(yù)留空站。這個表的計算邏輯是站號1對應(yīng)RWw的D1000-D1003站號2預(yù)留空站對應(yīng)D1004-D1007站號3預(yù)留空站對應(yīng)D1008-D1011站號4對應(yīng)D1012-D1015但D1008被川崎占用只用了2站中的前8個字即D1008-D1015。如果川崎占用2站則RWw對應(yīng)D1008到D1015共8個字。這里有偏移因為站號4的實(shí)際起始位置不是D1008而是D1000 4站 * 4字 D1000 16字。所以D1008實(shí)際上被跳過了。正確的計算應(yīng)該是站號4的RWw起始地址 D1000 (4-1)*4 D1000 12 D1012因為站號1從D1000開始。所以川崎的RWw應(yīng)寫成D1012-D1019。我這里要修正不能自己算錯。實(shí)際每個站的RWw占4個字站號1的RWw是D1000-D1003站號2是D1004-D1007站號3是D1008-D1011站號4是D1012-D1019因為占用2站站號4的RWr同理從D200012D2012開始。所以修正后的映射表更準(zhǔn)確信號功能方向發(fā)那科站號1川崎站號4占用2站啟動PLC→機(jī)器人Y1000Y1060因為位地址按32位/站站號4的RY起始 Y1000 (4-1)*16進(jìn)制0x20 Y10000x60 Y1060復(fù)位PLC→機(jī)器人Y1001Y1061急停反饋機(jī)器人→PLCX1000X1060運(yùn)行中機(jī)器人→PLCX1001X1061故障代碼機(jī)器人→PLCD2000D2012速度倍率設(shè)定PLC→機(jī)器人D1000D1012這樣計算才是對的。這個表要展示的就是讓讀者理解計算邏輯而不是照抄所以在文里一定要講清楚算法。5. 聯(lián)調(diào)中的坑與排查5.1 通信建立但數(shù)據(jù)異常先分“鏈路問題”還是“應(yīng)用問題”聯(lián)調(diào)現(xiàn)場最讓我印象深刻的一個排查案例是通信狀態(tài)已經(jīng)建立主站模塊的L.RUN燈亮從站狀態(tài)顯示在線但PLC讀到的機(jī)器人狀態(tài)數(shù)據(jù)卻不對。當(dāng)時第一反應(yīng)是接線有問題跑到現(xiàn)場把DA/DB/DG都拆下來重新量了一遍沒有發(fā)現(xiàn)短路或斷路。后來把機(jī)器人和PLC兩端的變量值逐個打印出來對比才發(fā)現(xiàn)是字信號的字節(jié)序不一致。這條排查路徑很有代表性看到“數(shù)據(jù)不對”時不要急于懷疑物理層先做鏈路測試。把一臺從站的所有寄存器寫成一個固定值比如RWw每個字都寫0xA5A5然后看PLC側(cè)D區(qū)里對應(yīng)地址的值是全對、全錯、還是高低字節(jié)互換。這樣一分就能定位是鏈路問題還是數(shù)據(jù)解析問題。5.2 L.RUN燈閃爍與從站掉線的根因主站模塊L.RUN燈閃爍通常表示鏈路不穩(wěn)定或者有從站掉線。排查順序是先打開GX Works2的CC-Link診斷畫面會列出所有已登記從站的在線狀態(tài)。如果某個從站顯示“數(shù)據(jù)鏈接異常”優(yōu)先檢查三件事站號是否重復(fù)、速率是否一致、終端電阻是否正常。有一次川崎機(jī)器人頻繁掉線每次都是運(yùn)行一段時間后掉過幾秒自動恢復(fù)。檢查站號和速率都沒問題后來用示波器抓DA-DB之間的波形發(fā)現(xiàn)信號的邊沿有明顯的振鈴現(xiàn)象最終把排查方向確定在接地和屏蔽層上。原來川崎控制柜那一段的屏蔽層沒有跟柜內(nèi)接地排可靠連接變頻器一加速干擾就耦合進(jìn)通信線。把屏蔽層處理好之后掉線問題再沒出現(xiàn)過。5.3 占用站數(shù)設(shè)置錯誤帶來的“掩蔽”效應(yīng)占用站數(shù)錯誤是個特別隱蔽的問題。從站模塊本身的硬件撥碼設(shè)的是2站但PLC側(cè)的從站信息表登記成了1站或者反過來。這種情況下通信可能仍然正常但兩個站的地址映射會發(fā)生重疊或錯位——PLC往站號1的RY第33位寫數(shù)據(jù)實(shí)際上數(shù)據(jù)落在硬件站號2站的空間里信號串到了另一臺機(jī)器人上。排查方法是把總線上所有從站都登記為“預(yù)留”用主站診斷功能掃描實(shí)際總線上有哪些站、每個站占了多少站空間然后跟設(shè)置表對比。正常情況下兩者應(yīng)該完全一致任何不一致都說明有從站參數(shù)和主站登記信息不匹配。5.4 急停類安全信號的傳輸可靠性機(jī)器人的急停信號如果通過CCLINK總線傳輸必須在PLC程序里做超時監(jiān)測和故障安全處理??偩€的特點(diǎn)決定了數(shù)據(jù)是周期刷新的鏈路斷開的瞬間PLC的RX刷新區(qū)域會保持上一周期的值——如果你把這個值當(dāng)作“急停未觸發(fā)”來用后果不堪設(shè)想。所以PLC側(cè)要對機(jī)器人急停反饋信號做一個“通信超時判斷”如果機(jī)器人在線狀態(tài)從1變成0無論急停反饋信號是什么狀態(tài)都按照急停處理。CCLINK有內(nèi)置的“數(shù)據(jù)鏈接狀態(tài)”可以反映從站是否在線這個狀態(tài)也要參與邏輯判斷不能只讀信號本身。這也是我后來做方案時的強(qiáng)制要求安全相關(guān)信號凡走總線必須加上鏈路狀態(tài)聯(lián)動。5.5 手持示教器時代碼觸發(fā)但機(jī)器人不動聯(lián)調(diào)時還遇到過一種“偽正?!睜顟B(tài)PLC發(fā)啟動信號程序邏輯也走了機(jī)器人的示教器上能看DI信號確實(shí)變成了ON但機(jī)器人程序就是沒反應(yīng)。查了半天發(fā)現(xiàn)機(jī)器人程序里讀的不是CC-Link映射的那個DI編號而是另一個內(nèi)部I/O編號——信號到了機(jī)器人但程序沒接。這類問題的本質(zhì)是“地址映射表沒有真正落地到兩端程序里”。示教器上看到的DI[1]ON不代表機(jī)器人程序讀的DI[1]就是CC-Link那一路。發(fā)那科機(jī)器人在I/O分配畫面里同一物理板卡的信號可能映射到不同的內(nèi)部DI編號如果程序里用了舊的DI編號自然就“信號到了但動不了”。排查這類問題最簡單的方式在機(jī)器人程序里直接輸出DI狀態(tài)到示教器上監(jiān)控逐個核對。川崎機(jī)器人則要看I/O信號配置是否被程序引用我曾經(jīng)因為川崎機(jī)器人項目里多套程序文件中的I/O定義不一致而排查了一下午后來發(fā)現(xiàn)是另一份備份程序覆蓋了當(dāng)前程序的I/O配置文件。6. 個人經(jīng)驗總結(jié)這次三菱PLC同時對接發(fā)那科和川崎機(jī)器人、統(tǒng)一走CCLINK總線的項目整體驗證下來方案是穩(wěn)定可靠的。如果說要提煉幾條經(jīng)驗供后來者參考我會說第一硬件選型階段不要只看“有沒有這個板卡”要確認(rèn)板卡支持的CCLINK版本是V1還是V2占用站數(shù)上限是多少有沒有額外的擴(kuò)展功能限制。選錯了板卡后面軟件里再折騰也白搭。第二地址映射表一定要在項目一開始就定下來并且所有參與調(diào)試的人員共用同一版。每次修改映射關(guān)系都要同步更新表格并現(xiàn)場再確認(rèn)一輪。項目里大部分通信類問題都是地址錯位引起的而地址錯位多數(shù)是因為映射表版本不一致。第三機(jī)器人側(cè)和PLC側(cè)的通信參數(shù)站號、速率、占用站數(shù)不是一次設(shè)定就一勞永逸的。更換控制柜電池、恢復(fù)出廠設(shè)置、升級系統(tǒng)固件后這些參數(shù)可能會被重置。產(chǎn)線維護(hù)記錄里要保留每臺設(shè)備的通信參數(shù)截圖方便恢復(fù)。第四CCLINK這個總線物理層的要求看似簡單但接線質(zhì)量對穩(wěn)定性影響極大。DA/DB差分對、屏蔽層接地、終端電阻位置、總線供電余量每一項都要按規(guī)范來?,F(xiàn)場為了省幾米線而走的“捷徑”最后都會變成半夜排查故障時掉的頭發(fā)。第五也是我最有體會的一點(diǎn)多品牌機(jī)器人混掛同一條總線本質(zhì)上跟“設(shè)備品牌”沒關(guān)系跟“協(xié)議支持”有關(guān)系。只要設(shè)備選型上確認(rèn)支持同樣的總線協(xié)議把地址規(guī)劃做清楚發(fā)那科和川崎也好其他品牌也罷都能在同一套PLC系統(tǒng)里和諧共處。真正的技術(shù)壁壘不在協(xié)議本身而在對細(xì)節(jié)的把控和對故障的系統(tǒng)性排查能力。最后再分享一個小工具習(xí)慣聯(lián)調(diào)時我在電腦上常備一份“CCLINK地址計算器”的表格只要輸入起始軟元件、站號和占用站數(shù)就能自動算出每臺從站的RX/RY/RWw/RWr對應(yīng)地址?,F(xiàn)場改站號或者加從站時改完表格導(dǎo)出PDF發(fā)給團(tuán)隊比口頭通知“自己算一下”靠譜得多。這套方法延續(xù)到現(xiàn)在凡是經(jīng)手的總線項目都保有一份最新的地址映射文檔這也是為什么后來很多產(chǎn)線出了問題客戶第一個電話打給的都是我們。