主题
外部设备 IO(FNC 72-79)
外部设备 I/O 指令用于连接键盘、数码管等外设。
键盘/数字开关/打印机这几条本机不支持
TKY、HKY、DSW、ARWS、PR 程序编得进去、设备也认得,但运行时没有任何动作(只跳过操作数,不报错也不生效)。本机不提供这些外设的配合,请避开它们(键值、拨码这类输入改用普通 X 点自己读);下面保留写法说明仅供对照三菱资料。
TKY — 十键输入(FNC 70)
| 项目 | 说明 |
|---|---|
| 格式 | TKY S D1 D2 |
| 16/32位 | TKY / DTKY |
用 10 个按键输入 0~9 的数值。S 为起始输入(S~S+9 对应 0~9),D1 为键值存储,D2 为按键状态起始位。
TKY X0 D0 M0 ; X0~X11 十键输入 → D0HKY — 十六键输入(FNC 71)
| 项目 | 说明 |
|---|---|
| 格式 | HKY S1 S2 D1 D2 |
| 16/32位 | HKY / DHKY |
4×4 矩阵键盘扫描输入。S1 为起始输入(4点),S2 为起始输出(4点),D1 为键值存储,D2 为按键状态。
HKY X0 Y0 D0 M0 ; 这串敲得进去,但本机型运行时没有任何动作本机型运行时无动作
十六键输入需要 Y 扫描输出 + X 输入组成的键盘矩阵,本机型不提供这一功能。 按键请用普通输入点,或走触摸屏。
DSW — 数字开关输入(FNC 72)
| 项目 | 说明 |
|---|---|
| 格式 | DSW S n1 D n2(共 4 个操作数) |
读取 BCD 拨码开关。这条本机运行时无动作(见页首警告),写法保留只为对照三菱资料; 操作数少写会编译报错(DSW 需要 4 个操作数, 实际给了 3 个),各槽位含义以 2.0 指令速查总表 的 DSW 一行为准。
DSW X0 Y0 D0 K1 ; 4 个操作数,缺一不可SEGD — 七段译码(FNC 73)
| 项目 | 说明 |
|---|---|
| 格式 | SEGD S D |
将 S 的低 4 位(0~F)译码为七段显示码,存入 D。
SEGD D0 D10 ; D0 低4位 → D10 七段码三菱官网的 MELSEC-F 指令表里,FNC 73 这一号的写法就是 SEGD(不是 SEG),本机与三菱一致,可以直接照三菱手册书写。
SEGL — 七段锁存输出(FNC 74)
| 项目 | 说明 |
|---|---|
| 格式 | SEGL S D n |
将 S 的值以七段码形式输出到 D 起始的输出点。n 控制位数和逻辑(正/负)。
SEGL D0 K2Y0 K4多位七段数码管显示:D0 起是被显示的数,K2Y0 是段码输出口,最后一个参数选显示位数与锁存方式。 和 SEGD(一位译码)配合用最省事:SEGD 译一位、SEGL 负责多位轮流锁存。
步数带 ※
本条步数取自指令表标注,未经运行时逐条确认。
ARWS — 箭头开关(FNC 75)
| 项目 | 说明 |
|---|---|
| 格式 | ARWS S D1 D2 n |
用方向键调整数值并显示。S 为方向键输入起始,D1 为数值存储,D2 为七段输出起始。
ARWS X0 K2Y0 M0 K0 ; 这串敲得进去,但本机型运行时没有任何动作本机型运行时无动作
方向开关(箭头开关)输入与显示控制在本机型上不产生动作。
ASC — ASCII 码转换(FNC 76)
| 项目 | 说明 |
|---|---|
| 格式 | ASC S D |
将字符串 S 转换为 ASCII 码存入 D 起始的寄存器。每个 D 存 2 个字符。
ASC "ABCD" D0 ; "ABCD" → D0~D1(ASCII码)PR — ASCII 码打印(FNC 77)
| 项目 | 说明 |
|---|---|
| 格式 | PR S D |
从 S 起始读取 ASCII 码,从 D 起始的输出点串行输出。用于连接串口打印机或显示器。
PR D0 K4 ; 这串敲得进去,但本机型运行时没有任何动作本机型运行时无动作
ASCII 打印需要打印机接口,本机型没有。要把数据打出来请走串口 RS/ADPRW, 或上传到上位机再打印。
FROM — 读取扩展模块 BFM(FNC 78)
| 项目 | 说明 |
|---|---|
| 格式 | FROM m1 m2 D n |
| 16/32位 | FROM / DFROM |
从扩展模块 m1 的 BFM#m2 起始读取 n 个字到 D。
TO — 写入扩展模块 BFM(FNC 79)
| 项目 | 说明 |
|---|---|
| 格式 | TO m1 m2 S n |
| 16/32位 | TO / DTO |
将 S 起始的 n 个字写入扩展模块 m1 的 BFM#m2。
FROM K0 K0 D0 K4 ; 读取模块0的BFM#0~#3 → D0~D3
TO K0 K4 D10 K2 ; D10~D11 → 模块0的BFM#4~#5各指令详细说明
DTKY — 32 位十进制键输入
本机型运行时无动作
程序编得进去、下载不报错,但运行时没有任何动作。三菱资料里这条的用法请当没有, 需要键输入请自己用输入点扫描。
| 项目 | 说明 |
|---|---|
| 格式 | DTKY S(输入), D1(结果), D2(状态) |
| 操作数 | S(输入), D1(结果), D2(状态) |
| 示例 | DTKY X0 D0 M0 |
| 步数 | 13 |
| FNC | FNC 70 (D) |
DTKY X0 D0 M0DHKY — 十六进制键输入(32 位形态)
本机型运行时无动作
同 HKY / TKY / DTKY:编得进去、不报错,运行时没有任何动作。
| 项目 | 说明 |
|---|---|
| 格式 | DHKY S(键输入起始 X,占 4 点), D1(输出起始 Y,占 4 点), D2(结果), D3(按键信息起始,占 8 点) |
| 操作数 | S(键输入起始 X,占 4 点), D1(输出起始 Y,占 4 点), D2(结果), D3(按键信息起始,占 8 点) |
| 示例 | DHKY X0 Y0 D0 M0 |
| 步数 | 17 |
| FNC | FNC 71 (D) |
DHKY X0 Y0 D0 M0VRRD — 读内置电位器的当前值
| 项目 | 说明 |
|---|---|
| 格式 | VRRD S(电位器序号), D(目标) |
| 操作数 | 序号, 目标 |
| 示例 | VRRD K1 D0 |
| 步数 | 5 |
| FNC | FNC 85 |
把内置电位器那一圈的当前值读进 D。序号与寄存器的对应是固定的:K0 → D8032(电位器 1)、 K1 → D8033(电位器 2),本机只有这两路。
序号别照三菱资料填 0~7
固件做的事就是取 D8032 + 序号 这一格的当前值,不检查序号。填 K2~K7 读到的是 D8034~D8039 —— 那是固件版本号、硬件版本号、序列号、恒定扫描周期,不是电位器, 拿到一串看着合理的数是错的。要用就只写 K0 或 K1。
不是每个型号都有电位器
特殊寄存器一览里 D8032/D8033 标着「部份型号没电位器」。 手上这台有没有,先看一眼设备型号或问厂家;没有电位器的型号上这两条读回来的一直是 0。
VRSC — 读内置电位器的刻度值(0~10)
| 项目 | 说明 |
|---|---|
| 格式 | VRSC S(电位器序号), D(目标) |
| 操作数 | 序号, 目标 |
| 示例 | VRSC K1 D0 |
| 步数 | 5 |
| FNC | FNC 86 |
和 VRRD 读同一格,只是把 0~4095 的原值除以 409,折成 0~10 的整数刻度, 适合直接当"十档选择"用(配合 DEC/ENCO 选程序段、选配方号)。 序号的对应与限制同 VRRD(只有 K0/K1 两路)。
VRSC K0 D0 ; 电位器 1 → D0 = 0~10