主题
高速处理(FNC 50-59)
高速处理指令用于需要精确时序或硬件级响应的控制场景。
本章有几条指令本机不支持
REF、MTR、DHSCS、DHSCR、DHSZ 这五条程序编得进去、设备也认得,但运行时没有任何动作(只跳过操作数,不报错也不生效)。写程序请避开它们;确实需要对应功能请先与厂家确认。
REF — I/O 刷新(FNC 50)
| 项目 | 说明 |
|---|---|
| 格式 | REF D n |
立即刷新 D 起始的 n 个位元件的 I/O 状态,无需等待扫描周期结束。
REF X0 K8 ; 立即刷新 X0-X7 的输入状态
REF Y0 K8 ; 立即刷新 Y0-Y7 的输出状态用途:高速定位控制等需要即时 I/O 响应的场景。
REFF — I/O 刷新+滤波调整(FNC 51)
| 项目 | 说明 |
|---|---|
| 格式 | REFF n |
刷新输入并设置输入滤波时间为 n×1ms。
LDP M8002
REFF K10 ; 所有 X 输入的滤波时间设成 10ms一条改全部 X 输入的滤波时间,单位 ms,最大 60。输入抖动大就调大,响应要快就调小。 只在启动时(M8002 上升沿)设一次即可,别每个周期都执行。 本机型的滤波时间也可以在上位机的输入滤波设置里改,两边以后写的那次为准。
MTR — 矩阵输入(FNC 52)
| 项目 | 说明 |
|---|---|
| 格式 | MTR S D1 D2 n |
用 n 个输出点扫描读取矩阵键盘输入。S 为起始输入,D1 为起始输出,D2 为存储起始地址。
MTR X0 Y0 M0 K4 ; 这串敲得进去,但本机型运行时没有任何动作本机型运行时无动作
矩阵键盘扫描(Y 输出行扫描、X 读列、结果送 M)在本机型上不产生动作。 要按键输入请直接用普通输入点,或用触摸屏/上位机。
DHSCS — 高速计数器比较置位(FNC 53)
| 项目 | 说明 |
|---|---|
| 格式 | DHSCS S1 S2 D |
当高速计数器 S2 的当前值等于 S1 时,立即置位 D(不受扫描周期影响)。
DHSCS K1000 C235 Y0 ; C235 = 1000 时立即置位 Y0DHSCR — 高速计数器比较复位(FNC 54)
| 项目 | 说明 |
|---|---|
| 格式 | DHSCR S1 S2 D |
当高速计数器 S2 的当前值等于 S1 时,立即复位 D。
DHSCR K2000 C235 Y0 ; C235 = 2000 时立即复位 Y0DHSZ — 高速计数器区间比较(FNC 55)
| 项目 | 说明 |
|---|---|
| 格式 | DHSZ S1 S2 S D |
高速计数器 S 的当前值与区间 [S1, S2] 比较,结果输出到 D、D+1、D+2。
DHSZ K100 K500 C235 Y0 ; C235 与 [100,500] 比较SPD — 脉冲密度测量(FNC 56)
| 项目 | 说明 |
|---|---|
| 格式 | SPD S1 S2 D |
在 S2 ms 时间内统计 S1 输入的脉冲数。结果占 3 个寄存器:D 存上一次统计到的脉冲数,D+1 存本次实时脉冲数,D+2 存本轮剩余时间(到时间后自动开始下一轮)。
- S1 必须是 X 输入点,填别的软元件报 6581;S2 的窗口取 1~32767 毫秒
X0~X5走硬件中断计数,只占上面那 3 个字;X6及以后走软件计数,还要多占 D+3、D+4 两个字 —— 排地址时按 5 个字留最保险
SPD X0 K1000 D0 ; 1秒内统计 X0 脉冲数 → D0用途:测量转速、流量等脉冲频率信号。
PLSY — 脉冲输出(FNC 57)
| 项目 | 说明 |
|---|---|
| 格式 | PLSY S1 S2 D |
| 16/32位 | PLSY / DPLSY |
从 D 指定的输出点输出频率 S1(Hz)、脉冲数 S2 的脉冲串。S2=K0 时连续输出。输出完成后 M8029=ON。
PLSY K1000 K5000 Y0 ; Y0 输出 1000Hz、5000 个脉冲注意:仅晶体管输出型号支持;输出点可填
Y0~Y7(本机这 8 个点都能做高速输出,不必局限在三菱手册常说的 Y0/Y1)。
PWM — 脉宽调制输出(FNC 58)
| 项目 | 说明 |
|---|---|
| 格式 | PWM S1 S2 D |
从 D 输出 PWM 信号。S1=ON 时间,S2=周期(均为 ms)。驱动条件 OFF 后输出停止。
PWM K50 K100 Y0 ; Y0 输出 PWM,周期100ms,占空比50%注意:仅晶体管输出型支持。
PLSR — 带加减速脉冲输出(FNC 59)
| 项目 | 说明 |
|---|---|
| 格式 | PLSR S1 S2 S3 D |
| 16/32位 | PLSR / DPLSR |
带加减速的脉冲输出。S1=最大频率,S2=总脉冲数,S3=加减速时间(ms),D=输出点。
PLSR K1000 K5000 K200 Y0 ; Y0 输出,最高1000Hz,5000脉冲,加减速200ms各指令详细说明
DHCMOV — 高速计数器当前值传送/清零。在本机型上不执行任何动作:固件里对应的处理函数只把三个参数读掉就返回,不做任何传送。要搬高速计数器当前值请改用 DMOV C235 D0,或先与厂家确认
| 项目 | 说明 |
|---|---|
| 格式 | DHCMOV S(目标软元件), C(高速计数器), 清零条件位 |
| 操作数 | S(目标软元件), C(高速计数器), 清零条件位 |
| 示例 | DHCMOV D0 C235 M0 |
| 步数 | 13 |
| FNC | FNC 197 |
DHCMOV D0 C235 M0各指令详细说明
DPLSY — 32 位指定频率脉冲输出(PLSY 的 32 位版)
| 项目 | 说明 |
|---|---|
| 格式 | DPLSY S1(频率), S2(脉冲数), D(输出Y) |
| 操作数 | S1(频率), S2(脉冲数), D(输出Y) |
| 示例 | DPLSY D0 D2 Y0 |
| 步数 | 13 |
| FNC | FNC 57 (D) |
DPLSY D0 D2 Y0