CS機器人與歐姆龍Fins TCP通訊
1. 簡介
CS機器人與plc通訊的方式有很多種,比如Modbus,EtherNet/IP,Profinet,socket通訊,但是有些型號的PLC不支持以上這幾種通訊方式怎么辦呢?CS系列的機器人就還有一種通訊方式可供客戶使用,那就是Fins/Tcp通訊。本篇文章就是講解如何與歐姆龍PLC進行Fins/tcp通訊。
版本信息為:
? 機器人系統版本v2.10.0
? Fins插件版本v2.3.0
? RTSI Service插件版本 v1.0.0
2. 操作流程
2.1安裝Fins和RTSI Service通訊插件
2.1.1安裝Fins通訊插件
第一步:將fins插件放在u盤里。

圖-1
第三步:進入圖-2界面后,按照圖-2界面所示步驟操作即可進入圖-3界面。

圖-2
第四步:按照圖-3操作步驟所示進行操作,即可進入圖-4界面;(注意第一步要選擇U盤,因為我這個是在虛擬機上進行操作的,所以選擇的是本機,在實際示教器上要選擇U盤)

圖-3
第五步:按照圖-4操作,點擊“重啟”即可。

圖-4
第六步:重啟之后就可以看到圖-5界面所示,該插件已經激活,圖-6界面所示,該插件已經安裝到機器人上了。如果發現機器人示教器上沒有該插件,再次重啟機器人即可。

圖-5

圖-6
2.1.2安裝RTSI Service插件
第一步:按照安裝Fins/tcp通訊插件步驟的第一步到第五步進行操作。
第二步:操作完后就可以在機器人配置→插件里找到這個插件了,如圖-7所示。

圖-7
2.2使用Fins和RTSI Service通訊插件
2.2.1只使用Fins通訊插件(只使用Fins通訊插件時是通過RPC的方式讀寫PLC寄存器的腳本)
2.2.1.1與PLC建立通訊連接(如圖-8所示步驟操作)
第一步:進入機器人配置界面。
第二步:進入Fins插件。
第三步:設置IP地址(此處IP地址為PLC的IP地址),點擊“連接”按鈕。
第四步:查看連接狀態,連接狀態有:”空閑、連接中、已連接1、已連接2、連接失敗” 這五種。
空閑:未連接到PLC。
連接中:正在連接PLC。
已連接1:成功連接到PLC, 且成功識別PLC信息 。
已連接2:連接到PLC,但未識別PLC信息。
連接失敗:上一次連接失敗了。
注意:處于已連接2狀態時需要通過選擇PLC模式并點擊設置來確定PLC信 息,否則可能無法通訊。這就需要進行第五步的操作。
第五步:設置PLC模式。(目前能自動識別的PLC有“CV、CS、CJ、CP”)。
第六步:勾選自動連接。自動連接的作用是,在關機重啟后自動連接所設置的IP的PLC。

圖-8
2.2.1.2如何讀寫PLC的寄存器
第一步:通過rpc=rpc_factory("xmlrpc","http://6.0.0.10:9601")函數建立一個 RPC對象。如圖-9紅框1所示。
第二步:
(1)可以通過DM100=rpc.memoryAreaReadInt16("dm100")函數讀取 PLC里16位整數寄存器“dm100"里的值并將值存在全局變量DM100中。如圖-9紅框2所示。
(2)可以通過rpc.memoryAreaWriteInt16("dm100",1)函數將”1“寫入到PLC里16位整數寄存器“dm100"里去。如圖-9紅框3所示。
(3)可以通過rpc.memoryAreaReadBit("w4.02")["value"]?=True函數讀取 PLC里位寄存器“w4.02"里的值并判斷值是否等于”True"。如圖-9紅框5所示。
(4)可以通過rpc.memoryAreaWriteBit("w4.02",True)函數將”True“寫入到PLC位寄存器“w4.02"里去。如圖-9紅框4所示。
(5)詳細腳本請參考圖-10

圖-9

圖-10
2.2.2同時使用Fins和RTSI Service通訊插件(通過RTSI插件將PLC寄存器的數據映射到機器人通用寄存器中,RTSI插件占用了 RTSI 輸入訂閱的 input_bit_registers0_to_31,input_bit_registers32_to_63,input_int_register(0-24),input_double_registerX(0-24)。因此需要注意是否有其他功能或外部 客戶端在占用。)
2.2.2.1運行RTSI插件,如圖-11紅框標注所示。

圖-11
2.2.2.2按照2.2.1.1的操作步驟與PLC建立通訊即可。
2.2.2.3建立通訊信號,此功能是通過RTSI同步PLC和機器人的寄存器,點擊添加,會出現新的待設置條目。如圖-12所示。
PLC寄存器地址:輸入需要同步的PLC寄存器地址,例如“W0”、“W1”
PLC寄存器類型:需要同步的PLC寄存器類型。
傳輸方向:PLC_TO_ROBOT:讀取PLC數據然后寫入機器人寄存中。
ROBOT_TO_PLC:讀取機器人寄存器然后寫入PLC中。
RTSI Register:要同步的機器人寄存器。該寄存器就是機器人I0里自帶的寄存器,比如 整數寄存器,布爾寄存器,浮點寄存器。如圖-12所示。
RTSI Register Force:當PLC寄存器類型為BIT_FORCE或WORD_FORCE時生效。
映射狀態是指:讀寫PLC的錯誤碼,為0時代表沒有問題。

圖-12

圖-13
2.2.2.4如何使用建立的寄存器
使用了RTSI插件就不要使用腳本函數去讀取或者寫入PLC寄存器的值了,就可以直接使用機器人與PLC同步了的寄存器,如圖-14紅框所示。
圖-14
3. 常見問題解答
1.因為使用的FINS協議庫不支持,且暫時沒有需求場景,當傳輸方向為ROBOT_TO_PLC 是,類型:DOUBLE、FLOAT、BIT_FORCE、WORD_FORCE 不可用。
2.FINS協議實時性本身一般,加上又使用了RPC、擴展IO等方式,所以同步 數據時延遲會很大,使用腳本時函數的執行時間也會較長。
3.PLC的一些寄存器可能有讀寫權限。
4. 示例
1.以下文件為使用了RTSI插件的程序
CS_BACKUP_2024-05-11_11-42-57.zip
2. .以下文件為沒有使用了RTSI插件的程序
CS_BACKUP_2024-07-16_15-15-52.zip