1. ROBOGUIDE 虚拟控制器搭建与基础通信验证

ROBOGUIDE 虚拟控制器搭建与基础通信验证 学习卡片

任务拆解:虚拟控制器不是“仿真动画”,而是一台可寻址的控制器

ROBOGUIDE 新建工作站时,虚拟控制器(Virtual Controller, VC)会随机器人系统一起生成。要让外部仿真环境(如 PLC 仿真、上位机脚本、Socket 客户端)与它通信,必须先把三件事对齐:网络可达、端口开放、I/O 映射正确。本案例用 ping 验证网络层,用 I/O 读写验证应用层,形成一条最小可复现的通信链路。

ROBOGUIDE 的虚拟控制器默认运行在 Windows 主机上,其 IP 通常与主机网卡同网段。若使用“虚拟以太网”或“Host-Only”模式,需确认主机防火墙未拦截 ICMP 与 TCP 端口。

工作站与通信对象

新建工作站时选择机器人型号(示例用 R-2000iC/165F)、系统版本(示例用 V9.30)和语言。生成后,虚拟控制器会获得一个可配置的 IP。外部仿真环境通过该 IP 与端口访问 VC 的 I/O 服务。

ROBOGUIDE 虚拟控制器通信链路验证结构 Windows 主机 物理网卡 / 虚拟网卡 IP: 192.168.1.100 掩码: 255.255.255.0 防火墙: ICMP 放行 TCP 端口: 6000 / 6001 ROBOGUIDE 虚拟控制器 VC IP: 192.168.1.200 系统版本: V9.30 I/O 服务: 已启用 R-2000iC/165F DO[1] / DI[1] 映射 外部仿真环境 Socket 客户端 或 PLC 仿真 目标: 192.168.1.200 端口: 6000 读写 DO[1] / DI[1] 验证路径与判据 ① 网络层验证 ping 192.168.1.200 期望: 4 包 0 丢失 失败: 检查网段/防火墙 ② 端口层验证 telnet 192.168.1.200 6000 期望: 连接建立 失败: 检查 I/O 服务启用 ③ 应用层验证 写 DO[1]=ON 读 DI[1] 状态回显 失败: 检查 I/O 映射

关键配置与操作

在 ROBOGUIDE 中新建工作站后,进入虚拟控制器的网络配置界面,将 VC 的 IP 设为与主机同网段(示例:主机 192.168.1.100,VC 192.168.1.200)。随后在 I/O 配置中启用 Ethernet/IP 或 Socket Messaging 服务,并确认端口号(示例用 6000)。

外部仿真环境侧,用一条最小 Socket 客户端脚本连接 VC,先发送读请求确认链路,再发送写请求改变 DO[1] 状态,最后回读 DI[1] 验证映射是否闭环。

# 示例:Python Socket 客户端验证虚拟控制器 I/O 通信
import socket

VC_IP = "192.168.1.200"
VC_PORT = 6000

def read_io(sock, signal):
    cmd = f"READ {signal}\n".encode()
    sock.sendall(cmd)
    return sock.recv(1024).decode().strip()

def write_io(sock, signal, value):
    cmd = f"WRITE {signal} {value}\n".encode()
    sock.sendall(cmd)
    return sock.recv(1024).decode().strip()

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.settimeout(3.0)
    s.connect((VC_IP, VC_PORT))
    print("连接成功")

    # 读初始状态
    print("DO[1] 初始:", read_io(s, "DO[1]"))

    # 写 DO[1] = ON
    print("写 DO[1]:", write_io(s, "DO[1]", "ON"))

    # 回读 DI[1] 验证映射
    print("DI[1] 回读:", read_io(s, "DI[1]"))
上述命令格式为教学示例,实际 ROBOGUIDE 虚拟控制器的 Socket 协议取决于所启用的通信选项(如 Ethernet/IP、Socket Messaging 或 PC Interface)。若使用 Ethernet/IP,应改用 CIP 报文或专用库,而非纯文本命令。

结果判读与常见失败点

验证层通过判据常见失败原因
ping4 包发送、4 包接收、0 丢失IP 不同网段、防火墙拦截 ICMP、虚拟网卡未启用
端口连接TCP 三次握手成功,无超时I/O 服务未启动、端口被占用、VC 未运行
I/O 读写写 DO[1]=ON 后回读 DI[1]=ONI/O 映射未配置、信号名不匹配、Rack/Slot 错误

若 ping 通但端口连不上,优先检查虚拟控制器的 I/O 服务是否在“已启动”状态;若端口通但 I/O 读写无响应,检查信号映射表中 DO[1] 与 DI[1] 是否指向同一物理/逻辑通道。三步全部通过后,虚拟控制器与外部仿真环境的通信链路即视为可用。