Skip to content

外部设备 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 十键输入 → D0

HKY — 十六键输入(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码)

ASC 的两种字符排法:M8161 决定每字装 2 个还是 1 个字符

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
FNCFNC 70 (D)
DTKY X0 D0 M0

DHKY — 十六进制键输入(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
FNCFNC 71 (D)
DHKY X0 Y0 D0 M0

VRRD — 读内置电位器的当前值 ​

项目说明
格式VRRD S(电位器序号), D(目标)
操作数序号, 目标
示例VRRD K1 D0
步数5
FNCFNC 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
FNCFNC 86

和 VRRD 读同一格,只是把 0~4095 的原值除以 409,折成 0~10 的整数刻度, 适合直接当"十档选择"用(配合 DEC/ENCO 选程序段、选配方号)。 序号的对应与限制同 VRRD(只有 K0/K1 两路)。

VRSC K0 D0            ; 电位器 1 → D0 = 0~10

LPPLC 工业物联网云平台 · 软硬件与云平台全栈自研