本案例是三菱PLC通過CClinkIE轉ModbusTCP網關連接川崎機器人的配置案例
具體步驟如下。
機器人步驟:
1、TCP通信命令
川崎機器人提供以下TCP通信命令:
· TCP_LISTEN 創建套接字并等待連接請求
· TCP_ACCEPT 檢查是否接收到連接請求
· TCP_CONNECT 創建套接字并發送連接請求
· TCP_SEND 發送數據字符串
· TCP_RECV 接收數據字符串
· TCP_CLOSE 中斷套接字通信
· TCP_END_LISTEN 結束等待連接請求
如其字面意義,上述命令實現的功能與一般通用的TCP通信協議指令基本相同,具有TCP通信協議編程基礎的開發者很容易就能掌握,此外需要注意的是,在調用通信命令前,需判斷是否會出現異常,如端口被占用、套接字非法等,異常調用會導致系統報錯,并使機器人控制系統異常停止運行,從而影響機器人正常使用。
該ModbusTCP服務器可以同時連接多個客戶端,滿足與多個外圍設備的通信需求,程序中可以預定義客戶端最大連接數量。每個外圍設備的通信占用一個連接套接字,當外圍設備斷開與服務器的連接后,服務器端應能檢測到通信服務中止,并關閉連接套接字,為后續設備的再次連接預留連接資源。
2、標準ModbusTCP協議數據包的解析與處理
ModbusTCP服務器與客戶端建立連接后,循環等待接收客戶端發送的Modbus請求應用數據單元(ADU),請求(或響應)應用數據單元包括兩部分,前面七個字節長的報文頭稱為MBAP報文頭(Modbus協議報文頭),MBAP之后的部分為協議數據單元PDU,PDU又由功能碼和數據域組成。如下圖所示:
基于TCP/IP協議的ModbusTCP與串行鏈路上的Modbus在傳輸的數據幀格式上有區別:
1) 由于網際層IP和傳輸層TCP已經負責對雙方通信數據報進行了地址和端口解析處理,并將源主機發送的數據單元可靠交付到目的主機,ModbusTCP應用數據單元中已經不再包含地址域,不需要在應用層對外圍設備的地址進行解析,而該地址域在串行鏈路上必要的。
2) ModbusTCP應用數據單元中增加了七字節的MBAP報文頭,該報文頭包括2字節的事務處理標識符、2字節的協議標識符、2個字節的長度域,以及1個字節的單元標識符。需要在應用層中對MBAP報文件頭進行解析處理。
3) 由于采用面向連接的TCP協議,已經提供了可靠的傳輸服務,在ModbusTCP的應用數據單元中不再包含差錯校驗域,不需要進行串行鏈路中的數據幀的CRC計算和校驗。
對ModbusTCP應用數據單元的解析處理分兩步,首先是解析MBAP報文頭,解析正確后提取后續的協議數據單元PDU,再對PDU進行解析,根據PDU的解析結果訪問用戶應用數據,并生成Modbus響應,發送應答給外圍設備。
3、對外數據接口的規劃
川崎機器人的PC程序和機器人控制程序可以公用的信號和變量包括:通用I/O信號、系統開關和全局變量。
通用I/O信號分為直接與外部通信的外部I/O信號和僅可在內部使用的I/O信號,其中外部輸入信號相當于PLC的開關量輸入信號,外部輸出信號相當于PLC的開關量輸出信號,內部I/O信號相當于PLC的內部寄存器。通用I/O信號有數量限制,外部輸入信號、外部輸出信號和內部I/O信號數量均最多不能超過960點。
系統開關是用于指示機器人各種系統設置或狀態的信號,如開關名稱POWER指示馬達電源ON/OFF狀態,TEACH_LOCK顯示示教鎖定的ON/OFF狀態。系統開關的名稱及其黙認值根據不同的機器人規格而不同。
全局變量是用于PC程序或機器人控制程序中的位姿信息、數字信息、字符信息的變量,各自對應于位姿變量、實型變量、字符串變量。全局變量一旦被定義,其值保存在存儲器中,可在任何程序中使用。其中實數、整數、邏輯值和ASCII值都用實數值表達。
川崎機器人控制器的ModbusTCP服務器在提供對外數據交換服務時,需根據控制器自身的特性,提前規劃制定對外數據接口范圍,應遵循以下原則:
1、應盡量遵循行業通則,如Modbus的公共功能碼0x02,代表讀離散量輸入信號功能,對于離散量輸入信號,并且要求是只讀功能的信號,其地址范圍應限定于機器人控制器內的通用信號中的外部輸入信號,其地址編號起始為1001。而不應將地址編號如1~32的外部輸出信號或地址編號2001~2256內部信號劃入功能碼0x02的范圍內,因為外部輸出信號和內部信號原則上不僅可讀,還可寫,相當于線圈的定義,應劃入功能碼0x01(讀線圈)和0x05(寫單個線圈)范圍內。
2、對外開放的通用信號數量不能超出機器人設置的最大信號數量,并且機器人專用信號設置中已被指定用于專用信號的通用信號不可寫。讀寫超過最大信號數量,或寫專用信號通道,會導致機器人報錯并停止,應根據機器人設置對ModbusTCP服務器相關參數進行配置,以避免對機器人運行造成干擾。
I/O信號數量設置
專用信號顯示
3、在可用資源充足時,宜通過通用信號接口與外部設備交換系統開關狀態信息和內部變量信息。如機器人專用信號設置中,將外部信息交換所需的系統開關指定給外部輸出信號或內部信號,通過公共讀寫線圈功能碼讀寫系統開關信號。或將內部變量賦值給連續內部信號多位組合而成的寄存器(或讀寄存器),通過公共讀(或寫)寄存器功能碼完成與內部變量的數據交換。
啟動Modbus測試軟件Modbus Poll,設置連接參數并連接K-Roset仿真。連接參數設置中的IP地址設置與第2步設置相同,端口號設置為ModbusTCP服務器程序文件中設置的服務器端口號。
4、Modbus Poll與K-Roset連接成功后,在Modbus Poll通過Setup->Read/Write Definition中的各項功能,或通過菜單的Functions下的各子功能,逐項測試Modbus功能。
確認機器人配置無誤后,打開三菱PLC配置軟件,開始進行CCLink一側配置。
打開三菱PLC,設置CClinkIE一側的參數配置,首先設置PLC的IP地址
雙擊詳細設置進入CClinkIE配置
添加通用從站IP地址以及占用點數
設置好分配的軟元件
將組態下載進PLC,并打開網關配置軟件“Gateway Configuration Studio”
新建項目選擇CClinkIE-MTC
設置網關在CClinkIE一側的IP地址及占用點數(與PLC組態保持一致)
設置網關在ModbusTCP一側的IP地址
添加從站并填寫IP地址,跟ModbusPoll一樣填寫從站IP(命令異常碼使能可監控從站在線狀態)
右鍵添加所需要的功能碼,填寫參數地址以及數據長度
以03功能碼(讀保持寄存器)為例,填寫需要讀取的參數地址以及連續讀取數量。
參數確認無誤后下載配置給網關即可。將所有設備全部上電,當OK燈亮起,Txd和Rxd交替閃爍,即代表網關開始正常通訊。
-
機器人
+關注
關注
213文章
29677瀏覽量
212539 -
三菱PLC
+關注
關注
13文章
246瀏覽量
32131 -
ModbusTCP
+關注
關注
0文章
215瀏覽量
4891
發布評論請先 登錄
開疆智能CCLinkIE轉ModbusTCP網關連接施耐德TCP從站配置案例

評論