You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python连接三菱QJ71E71 PLC超时,请求排查连接代码问题

排查三菱QJ71E71 PLC连接超时问题的建议

代码层面的潜在问题与调整

  • 校验setaccessopt参数匹配度:
    你设置的network=1和pc=18必须与GX Works2开放设置中的**网络编号(Network No.)和站号(Station No.)**完全一致,参数不匹配会直接导致通信握手失败。
  • 优化连接逻辑与超时设置:
    当前代码的while循环无实际作用,且quit()会直接终止程序,建议调整为更清晰的结构,同时给connect方法添加超时参数避免无限等待:
    import pymcprotocol
    
    pymc3e = pymcprotocol.Type3E() # Q系列PLC适配
    # 先确认GX配置中的network和pc参数是否正确
    pymc3e.setaccessopt(commtype="binary", network=1, pc=18)
    
    try:
        # 添加5秒超时限制,避免长时间阻塞
        pymc3e.connect("192.100.13.34", 5002, timeout=5)
        print("连接成功")
        # 后续读写操作...
        pymc3e.close()
    except Exception as e:
        print(f"连接失败 -> {e}")
    
  • 确认通信协议类型一致性:
    QJ71E71支持二进制和ASCII两种TCP通信协议,你设置的commtype="binary"必须与GX Works2开放配置中的协议类型完全匹配,若GX中启用的是ASCII协议,需将此处改为"ascii"。

非代码层面的排查点

  • 核对GX Works2开放设置细节:
    • 确认TCP/IP开放功能已启用,且端口号为5002(与代码配置一致);
    • 检查IP地址过滤规则,确保运行代码的设备IP(192.100.13.5)在允许访问的列表内;
    • 确认PLC处于RUN模式,部分三菱PLC在STOP模式下会拒绝外部通信请求。
  • 网络端口与源端口验证:
    先用telnet 192.100.13.34 5002或nc -zv 192.100.13.34 5002测试端口可达性,排除防火墙或端口映射问题。另外,三菱PLC部分型号要求源端口在1024-5000范围内,若Wireshark捕获的33213不在此区间,可手动绑定合规源端口:
    import socket
    import pymcprotocol
    
    pymc3e = pymcprotocol.Type3E()
    pymc3e.setaccessopt(commtype="binary", network=1, pc=18)
    
    # 绑定1024-5000之间的源端口
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.bind(("192.100.13.5", 3000))
    pymc3e.sock = sock
    
    try:
        pymc3e.connect("192.100.13.34", 5002, timeout=5)
        print("连接成功")
        pymc3e.close()
    except Exception as e:
        print(f"连接失败 -> {e}")
    

内容的提问来源于stack exchange,提问作者SecY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 20:35:11