|
西门子S7-1200PLC与FANUC(发那科)机器人通过 Modbus TCP 通信,是另一种非常实用的连接方式,尤其适用于低成本、简单的信号交互场景(如没有购买 PROFINET 选项卡时)。在这种架构中,通常将 S7-1200 设为客户端(Client),FANUC 机器人为服务器(Server/从站)。这意味着 PLC 主动发起连接并读写机器人的寄存器。以下是详细的配置步骤: 第一部分:FANUC 机器人侧配置(服务器/从站) 机器人的配置主要是在示教器上开启 Modbus TCP 功能并设置 I/O。 开启 Modbus TCP 功能示教器按键:MENU(菜单)→ I/O → Modbus TCP。 如果找不到此项,说明机器人系统未安装 Modbus TCP 软件选项(R602)。 设置机器人角色与参数角色:设置为 服务器(Server) 或 从站(Slave)。机架号(Rack):通常设为 96(这是 FANUC Modbus TCP 的标准机架号)。插槽(Slot):通常设为 1。配置 I/O 数量设置 输入字数(Input Words)和 输出字数(Output Words)。例如各设为 4 个字(即 64 个位)。 注意:修改此处后通常需要重启控制柜才能生效。分配 I/O 信号(关键映射)按 MENU → I/O → 数字量(DI/DO)。 查找 机架号 96 的设备。 分配具体的点位范围(如 DI[1]DI[64],DO[1]DO[64])。
第二部分:S7-1200 PLC 侧配置(客户端/主站) PLC 侧需要使用系统库指令 MB_CLIENT 来建立连接。 建立连接参数(TCON_IP_V4)在 TIA Portal 中,进入“程序块” -> “系统块” -> “连接”。 新建一个连接,选择 TCON_IP_V4。 IP 地址:填入 FANUC 机器人的 IP 地址(如 192.168.1.10)。端口号:Modbus TCP 默认为 502。记下 连接 ID(如 1),后续指令会用到。 调用 MB_CLIENT 指令在 OB1 中调用指令 MB_CLIENT。 参数配置:REQ:建议使用上升沿触发(如 M0.0 配合 P 触发器),或者在 BUSY 为 0 时执行。CONNECT_ID:填入刚才建立的连接 ID(如 1)。IP_PORT:填 502。MB_MODE:0(读)、1(写)。MB_DATA_ADDR:寄存器起始地址。注意:FANUC 的 DI/DO 对应 Modbus 的 4x 寄存器(保持寄存器)或 1x/0x。通常 DO 对应 400001 开始,DI 对应 400065 开始(具体需查 FANUC 手册,取决于你分配的字数)。MB_DATA_LEN:读写的数据长度(字数,如 4)。MB_DATA_PTR:指向一个 DB 块的指针,用于存放读写的数据(如 P#DB1.DBX0.0 WORD 4)。数据处理读取的数据会存放在 MB_DATA_PTR 指定的 DB 块中,你可以将其移动到对应的 M 区或 Q 区使用。
第三部分:关键注意事项 1. 地址映射问题(最易错) FANUC 机器人内部的 DI/DO 点号与 Modbus 寄存器地址之间存在换算关系,且不同版本的系统可能略有不同。 建议:先配置少量点位,通过 Modbus 测试软件(如 ModScan)扫描,确认地址偏移量。2. 字节顺序(Endianness) 问题:S7-1200 和 FANUC 对字节的存储顺序可能不同(大小端模式)。现象:PLC 写入 160001,机器人读到的是 160100。解决:在 PLC 程序中对数据进行交换字节处理(使用 SWAP 指令),或者在机器人侧进行逻辑取反/重新定义位。3. 实时性限制 Modbus TCP 的通信速度通常不如 PROFINET 快,不建议用于传输急停信号或复杂的运动轨迹数据,非常适合用于启动、停止、模式切换、抓手状态反馈等离散量信号。
故障排查 连接失败:检查机器人防火墙设置(主机通讯设置),确保允许该 IP 的 PLC 连接;检查端口是否被占用。读写超时:检查网线连接;检查 REQ 触发方式,不要高频连续触发,需等待 DONE 或 ERROR 信号结束后再发下一条。 数据错误:检查 MB_MODE(读/写)和 MB_DATA_ADDR(地址)是否正确。 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |