发布时间: 2026-03-12
机器人与欧姆龙PLC的Fins TCP通讯
1. 简介
CS机器人与plc通讯的方式有很多种,比如Modbus,EtherNet/IP,Profinet,socket通讯,但是有些型号的PLC不支持以上这几种通讯方式怎么办呢?CS系列的机器人就还有一种通讯方式可供客户使用,那就是Fins/Tcp通讯。本篇文章就是讲解如何与欧姆龙PLC进行Fins/tcp通讯。
版本信息为:
• 机器人系统版本v2.13.4以上
• Fins插件版本v2.13.0
2. 操作流程
2.1安装插件
安装Fins通讯插件
2.2Fins通讯插件使用
使用Fins通讯插件时是通过RPC的方式读写PLC寄存器的脚本
1)与PLC建立通讯连接
第一步:进入机器人配置界面。
第二步:进入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。
2)如何读写PLC的寄存器
第一步:通过rpc=rpc_factory("xmlrpc","http://6.0.0.10:9601")函数建立一个 RPC对象。如图红框1所示。
第二步:
(1)可以通过DM100=rpc.memoryAreaReadInt16("dm100")函数读取 PLC里16位整数寄存器“dm100"里的值并将值存在全局变量DM100中。如图红框2所示。
(2)可以通过rpc.memoryAreaWriteInt16("dm100",1)函数将”1“写入到PLC里16位整数寄存器“dm100"里去。如图红框3所示。
(3)可以通过rpc.memoryAreaReadBit("w4.02")["value"]?=True函数读取 PLC里位寄存器“w4.02"里的值并判断值是否等于”True"。如图红框5所示。
(4)可以通过rpc.memoryAreaWriteBit("w4.02",True)函数将”True“写入到PLC位寄存器“w4.02"里去。如图红框4所示。
(5)详细脚本请参考下图
3. 常见问题解答
1.因为使用的FINS协议库不支持,且暂时没有需求场景,当传输方向为ROBOT_TO_PLC 是,类型:DOUBLE、FLOAT、BIT_FORCE、WORD_FORCE 不可用。
2.FINS协议实时性本身一般,加上又使用了RPC、扩展IO等方式,所以同步 数据时延迟会很大,使用脚本时函数的执行时间也会较长。
4. 示例