返回主站|会员中心|保存桌面

三菱电机服务商    

PLC、变频器、伺服驱动、触摸屏,机器人

联系方式
  • 联系人:吴经理
  • 电话:18576370666
  • 邮件:18576370666@163.com
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > 三菱PLC字符串传送!
新闻中心
三菱PLC字符串传送!
发布时间:2025-12-10        浏览次数:1        返回列表

三菱 PLC(以 FX3U/FX5U/FX5UC 为主,FX2N 等老型号需扩展模块)的字符串传送是工业中解析扫码枪、通讯数据、显示文本的核心需求,核心依赖专用字符串指令(如MOVS/STRCAT/STRCPY)和字节传送指令MOVB),以下按「字符串存储格式」「核心指令」「实战案例」「故障排查」全维度讲解,覆盖主流应用场景。

一、核心前提:三菱 PLC 字符串存储规则

三菱 PLC 中,字符串以「长度字节 + 字符 ASCII 码」的格式存储在D 寄存器连续地址中,例:

  • 字符串 “ABC” → 存储格式:

    D 寄存器内容说明
    D100K3字符串长度(字节数)
    D101H41“A” 的 ASCII 码(41H)
    D102H42“B” 的 ASCII 码(42H)
    D103H43“C” 的 ASCII 码(43H)
  • 注:FX3U/FX5U 支持「字符串型软元件(S)」(如 S0、S1),可直接存储字符串(无需手动存长度),更便捷。

二、字符串传送核心指令(按场景分类)

1. 基础指令:MOVS(字符串传送)

适用于「完整字符串整体传送」,是最常用的字符串指令,支持 D 寄存器和 S 软元件两种格式。

指令格式

plaintext

MOVS S D
  • S:源字符串起始地址(如 D100/S0);

  • D:目标字符串起始地址(如 D200/S1)。

示例 1:D 寄存器字符串传送(通用)

需求:将 D100 开始的 “ABC” 传送到 D200 开始的地址:

ladder

// 第一步:初始化源字符串“ABC”到D100-D103
LD     M8000
MOV    K3 D100        // 字符串长度=3
MOV    H41 D101       // “A”→D101
MOV    H42 D102       // “B”→D102
MOV    H43 D103       // “C”→D103

// 第二步:字符串传送(D100→D200)
LD     X0             // X0触发传送
MOVS   D100 D200      // 执行后:D200=3,D201=41H,D202=42H,D203=43H
示例 2:S 软元件字符串传送(FX3U/FX5U 便捷版)

需求:将 S0 中的 “HELLO” 传送到 S1:

ladder

LD     M8000
SETS   "HELLO" S0     // 直接给S0赋值字符串“HELLO”(自动存长度)
LD     X0
MOVS   S0 S1          // S0→S1,无需手动处理长度

2. 进阶指令:STRCPY(字符串复制)/STRCAT(字符串拼接)

  • STRCPY S D:与MOVS功能一致,部分型号(如 FX5U)优先推荐;

  • STRCAT S1 S2 D:将 S1 和 S2 字符串拼接后存入 D(如 S1=“AB”,S2=“CD”→D=“ABCD”)。

示例:字符串拼接 + 传送

需求:将 “ABC” 和 “123” 拼接为 “ABC123”,再传送到 D300:

ladder

// 初始化源字符串
LD     M8000
SETS   "ABC" S0
SETS   "123" S1

// 拼接字符串:S0+S1→S2
LD     X0
STRCAT S0 S1 S2       // S2=“ABC123”

// 传送拼接后的字符串到D300
MOVS   S2 D300        // D300=6,D301=41H,D302=42H…D306=33H

3. 兼容指令:MOVB(字节传送,适配老型号)

FX2N/FX1N 无专用字符串指令,需通过MOVB(字节传送)逐字节传送字符串:

示例:FX2N 传送 “ABC”(D100→D200)

ladder

LD     M8000
// 源字符串初始化(D100=3,D101=41H,D102=42H,D103=43H)
MOV    K3 D100
MOV    H41 D101
MOV    H42 D102
MOV    H43 D103

// 逐字节传送(长度+3个字符,共4字节)
LD     X0
MOVB   D100 K0 D200 K0  // D100低8位(长度3)→D200低8位
MOVB   D101 K0 D201 K0  // D101(A)→D201
MOVB   D102 K0 D202 K0  // D102(B)→D202
MOVB   D103 K0 D203 K0  // D103(C)→D203

4. 通讯场景:字符串与上位机 / 触摸屏传送

PLC 与触摸屏 / 上位机(如 MCGS、组态王)传送字符串,核心是「地址对齐 + ASCII 码匹配」:

示例:PLC→触摸屏显示 “生产批号:20251210”
  1. PLC 端:

    ladder

  2. LD     M8000
    SETS   "生产批号:20251210" S0  // S0存储目标字符串
    MOVS   S0 D500                  // 传送到D500开始的地址(供触摸屏读取)
  3. 触摸屏端:

    • 新建「文本显示控件」,绑定 PLC 的 D500(字符串起始地址);

    • 设置 “字符串长度” 为 12(“生产批号:20251210” 共 12 个字符);

    • 确保触摸屏与 PLC 的通讯参数(波特率、地址)匹配。

三、实战案例:串口接收扫码枪字符串并传送

需求:FX3U 通过 RS232/485 接收扫码枪的条码字符串(如 “SN123456”),传送到 D1000 并转发到触摸屏。

步骤 1:串口配置(WPLSoft/GX Works2)

  • 串口协议:自由口(RS232),波特率 9600,8N1;

  • 接收模式:ASCII 码接收,超时时间 100ms。

步骤 2:程序编写

ladder

// 步骤1:接收扫码枪字符串到S0
LD     M8000
RCV    D0 K0 K100 S0  // 串口接收100字节内的字符串→S0(RCV为串口接收指令)

// 步骤2:字符串传送(S0→D1000,供触摸屏读取)
LD     M8161          // 接收完成标志
MOVS   S0 D1000       // 传送条码字符串到D1000

// 步骤3:字符串长度校验(避免空数据)
STR_LEN S0 D200       // 读取S0字符串长度→D200
LD     D200 K0        // 长度=0时报警
OUT    Y0             // Y0=ON,扫码失败报警

四、常见故障排查(字符串传送异常)

故障现象排查方向
传送后字符串乱码1. ASCII 码转换错误(如用十六进制直接存字符);2. 长度字节未正确设置;3. 通讯波特率不匹配
传送后字符串缺失 / 截断1. 目标地址空间不足(如传送 8 字符但只分配 4 个 D 寄存器);2. MOVS指令未覆盖全部字符
老型号 PLC 无MOVS指令1. FX2N/FX1N 需用MOVB逐字节传送;2. 扩展 FX-232ADP 模块后使用ASCI/HEX指令转换
触摸屏读取字符串为空1. PLC 与触摸屏的字符串起始地址不一致;2. 长度字节未传送(触摸屏未识别长度);3. 通讯中断

五、优化技巧

  1. 地址规划:字符串传送时预留足够的连续 D 寄存器(如最长字符串 20 字符→分配 21 个 D 寄存器:1 个长度 + 20 个字符);

  2. 长度校验:用STR_LEN指令读取字符串长度,避免传送空字符串或超长字符串;

  3. 容错处理:传送前判断源字符串长度(STR_LEN S0 D0),长度为 0 时触发报警,避免无效传送;

  4. FX5U 进阶:使用「结构化数据类型」定义字符串变量,直接通过变量名传送(无需关注底层 D 寄存器)。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服