【求助】关于基恩士PLC用MC协议通讯问题 点击:34 | 回复:1



꧁꧁ ૢ ෆ⃛神ᵕ殇ෆ⃛ ૢ꧂꧂

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 0回
  • 年度积分:3
  • 历史总积分:23
  • 注册:2018年8月20日
发表于:2025-06-23 12:47:28
楼主

基恩士KV8000用MC协议通讯,D寄存器读取一切正常,用三菱MC的D区直接读取,但基恩士的R3600,R3601,R3602为三色灯,MC协议读取不到,基恩士编程软件转换显示方式,R3600显示为Y360,用MC协议读取Y360也不对,请问MC协议如何读取基恩士R3600、3601、3602



楼主最近还看过

Allen010

  • 精华:0帖
  • 求助:0帖
  • 帖子:30帖 | 578回
  • 年度积分:93
  • 历史总积分:18773
  • 注册:2010年8月04日
发表于:2025-07-01 16:11:38
1楼

可以参考:


基恩士KV8000的R区寄存器(如R3600~R3602)在MC协议通信中需特殊处理,因其地址映射方式与三菱PLC不同。

一、基恩士R区地址的映射规则

基恩士的R区(继电器区)在MC协议中需通过 ‌MR前缀+通道转换‌ 实现访问:

1‌、地址转换逻辑

  • R寄存器地址按 ‌通道+位号‌ 拆分:例如 R3600 对应通道号3600,位号0。

  • 实际MC映射地址‌ = 通道号 × 16 + 位号
    因此 R3600 → 3600 × 16 + 0 = 57600(十进制) → ‌MR57600
    R3601 → 3600 × 16 + 1 = 57601 → ‌MR57601
    R3602 → 3600 × 16 + 2 = 57602 → ‌MR57602‌ ‌

2、为何直接读Y360无效?
基恩士编程软件显示的Y360是内部逻辑映射(如R→Y转换),但MC协议需按原始R区的物理地址转换,而非Y区地址‌。

二、MC协议读取指令配置

1、通信帧选择
推荐使用 ‌QnA兼容3E帧(二进制格式)‌,因其支持MR地址范围且效率更高‌

  1. 指令示例(读取R3600~R3602)

    • 目标地址‌:MR57600(起始地址)

    • 读取长度‌:3个位(或1个字,因R区按位访问)

    • 三菱MC指令格式‌(二进制):

      textCopy Code01 FF 0A 00  // 头部固定
      E1 00        // 命令:位读取(0xE1)
      58 00        // 地址:MR57600(十六进制0xE100 = 十进制57600)
      00 03        // 读取点数:3个位
      ``` ‌:ml-citation{ref="3,5" data="citationList"}

三、调试注意事项

1、地址偏移问题
基恩士部分型号(如X520)存在R区与M区的交叉映射,若读取异常,可尝试 ‌切换MR/M前缀‌(如 M57600 替代 MR57600)

2‌、协议兼容性

  • 确认PLC参数中 ‌启用MC协议‌(KV8000需在单元编辑器中开启TCP端口,默认5570/5571)‌。

  • 检查IP设置:基恩士(如192.168.3.1)与上位机需同网段‌。

3、数据解析

响应报文中的位状态按 ‌字节顺序排列‌,需解析每个字节的比特位(如第1字节的bit0对应MR57600)

四、替代方案

若仍无法读取,可通过基恩士‌内部程序转换‌:

  1. 将R3600~R3602状态复制到D区(如D1000~D1002)。

  2. 直接通过MC协议读取D1000~D1002(D区映射规则与三菱一致)‌



回复本条

    

热门招聘
相关主题

官方公众号

智造工程师