按分类列出 264 条指令:助记符、一句话说明、操作数布局,以及这条指令最容易踩的坑。 每条坑都标了出处(信捷官方手册常见问题章 / 讲义 / 实测)。看完想系统学,去 指令讲堂。
264 条指令 | 60 条避坑 | 11 个分类 | 数据与仿真器引擎同一份指令表,不是手抄
| 指令 | 一句话说明 | 操作数 | 避坑 | 对应课次 |
|---|---|---|---|---|
LD | 取(常开触点开始) | 位 | ⚠ 1 个坑一个线圈被写了两次会「后侧优先」:★ 同一个线圈在程序里出现多处 = 二重线圈输出,后侧的线圈优先动作。表现为「条件明明成立却不按我写的那样输出」。[官] PD01 硬件篇 附录4 Q1 / PD05 Q7 | L01 L02 L03 L04 L05 L06 L07 L08+35 |
LDI | 取反(常闭触点开始) | 位 | — | L01 L11 L17 |
LDP | 上升沿取 | 位 | ⚠ 1 个坑比 PLS 晚一拍:★ | L14 L15 L16 L17 L20 L26 L36 L40+3 |
LDF | 下降沿取 | 位 | — | L18 L34 L36 |
AND | 串联常开 | 位 | — | L08 L10 |
ANI | 串联常闭 | 位 | — | L01 L02 L03 L04 L05 L34 |
ANDP | 串联上升沿 | 位 | — | — |
ANDF | 串联下降沿 | 位 | — | — |
OR | 并联常开 | 位 | — | L01 L02 L03 L04 L05 L10 |
ORI | 并联常闭 | 位 | — | — |
ORP | 并联上升沿 | 位 | — | — |
ORF | 并联下降沿 | 位 | — | — |
LD= | 触点比较等于 A=B | 数 · 数 | — | L06 L09 L13 L37 |
LD> | 触点比较大于 A>B | 数 · 数 | — | L06 L09 L10 L11 L12 L13 L17 |
LD< | 触点比较小于 A<B | 数 · 数 | — | L06 L09 L13 |
AND= | 串联比较等于 | 数 · 数 | — | L08 |
AND> | 串联比较大于 | 数 · 数 | — | L10 |
AND< | 串联比较小于 | 数 · 数 | — | — |
OR= | 并联比较等于 | 数 · 数 | — | — |
OR> | 并联比较大于 | 数 · 数 | — | L10 |
OR< | 并联比较小于 | 数 · 数 | — | L10 |
ANB | 电路块串联 | — | — | — |
ORB | 电路块并联 | — | — | — |
MPS | 入栈(存储运算结果) | — | — | — |
MRD | 读栈 | — | — | — |
MPP | 出栈 | — | — | — |
INV | 运算结果取反 | — | ⚠ 1 个坑按位取反,不是有符号取反: | — |
MCS | 主控开始(MCS~MCR间输出受控) | — | — | — |
MCR | 主控结束 | — | — | — |
OUT | 线圈输出 | 位 | ⚠ 1 个坑同一条线圈不能混用输出方式:同一个线圈(或输出端 Y)只能用一种输出方式。 | L01 L02 L03 L04 L05 L06 L07 L08+17 |
TMR | 定时器(OUT语法糖):设定值可 K 或 D、时基 K1/K10/K100 | 位 · 数 · 常数 | ⚠ 1 个坑时基别算错:设定值 × 时基 = 实际延时。 | L03 L04 L07 L08 |
CNT | 计数器(OUT语法糖):设定值可 K 或 D;目标为 HSC 时第三操作数=100段设定值首地址 | 位 · 数 · 数 | — | L04 L05 L07 L08 L24 L25 |
CNT_AB | AB相高速计数(CNT_AB HSC0 S2 [S3]):S2比较值;第三操作数=100段设定值首地址 | 位 · 数 · 数 | — | L24 L25 |
CTR | 信捷计数器(CTR C0 K3000):设定值可 K 或 D | 位 · 数 | — | — |
TMR_A | 信捷断电保持定时器(HT/HD设备):设定值可 K 或 D | 位 · 数 · 常数 | — | — |
MC | 信捷主控(MC N0 M10):嵌套级N0+主控继电器M10 | 数 · 位 | — | — |
DCNT | XD增计数器(DCNT C0 K5):设定值可 K 或 D | 位 · 数 | ⚠ 1 个坑硬件版本与软件版本要匹配:★★ 官方口径:硬件版本 2.5 + 软件版本 3.0 时认不出高速计数。需换回 2.5 软件,或把硬件升级到 3.0。[官] XC 系列常见问题 Q3 / PD05 Q17 | — |
DCNT_D | XD掉电保持减计数器(DCNT_D HC0 K5):设定值可 K 或 D | 位 · 数 | — | — |
DCTR | 信捷32位高速计数(DCTR HC0):无设定值,硬件脉冲上升沿加1;到目标用 CMP HC0 K目标 M0 检测(M2=大于) | 位 | — | — |
SET | 置位 | 位 | ⚠ 1 个坑SET 之后必须 RST: | L05 L06 L18 L20 L34 L36 L37 L42 |
ST | 步进转移:打开目标步 Sx,当前步保持运行(实现流程嵌套) | 位 | ⚠ 1 个坑SET Sxxx 会关掉原流程的脉冲指令:★ 在流程里执行 | — |
RST | 复位 | 位 | ⚠ 1 个坑别拿 RST 当「复位线圈」用: | L04 L05 L06 L11 L24 L25 L33 L36+2 |
ALT | 信捷交替输出(ALT M1):驱动条件为 ON 时翻转目标位(配 LDP/PLS 才是「按一次翻一次」) | 位 | ⚠ 2 个坑条件是常开触点就会每拍翻转:★★ 官方原话:「 配常开触点时输出点会一直闪:这正是官方 Q6 描述的现象:输出点一直在闪。看到输出高频闪,第一反应就查 | L36 |
PLS | 上升沿输出(单周期) | 位 | ⚠ 1 个坑一个扫描周期:条件满足时, | — |
PLF | 下降沿输出(单周期) | 位 | — | — |
MEP | 信捷上升沿脉冲(等效PLS,无操作数) | — | — | — |
MEF | 信捷下降沿脉冲(等效PLF,无操作数) | — | — | — |
ANDMEP | 运算结果上升沿脉冲(等价 MEP,无操作数) | — | — | — |
ANDMEF | 运算结果下降沿脉冲(等价 MEF,无操作数) | — | — | — |
ANDINV | 运算结果取反(等价 INV,无操作数) | — | — | — |
NOP | 空操作 | — | — | — |
END | 程序结束(返回0步) | — | — | L01 L02 L03 L04 L05 L06 L07 L08+36 |
FEND | 主程序结束(其后为子程序区)。★ 中断指针 I**** 必须写在 FEND 之后(手册 10-4) | — | — | L17 L25 L36 L37 |
LBL | 标号 LBL P0(CJ/CALL 跳转目标) | 指针 | — | L17 |
CJ | 条件跳转 CJ P0(母线条件为ON时跳到标号) | 指针 | ⚠ 1 个坑跳过的那段如果用了脉冲指令要小心: | L17 |
CALL | 子程序调用 CALL P0 | 指针 | ⚠ 3 个坑必须与指针 P 配对:★ 子程序里不要写脉冲/计数/定时:★ 子程序中不要写脉冲、计数、定时等一个扫描周期内无法完成的指令。子程序整体是在主程序一个扫描周期内被调用的。[讲] L17 / 培训资料 嵌套层数有限:子程序内允许 9 次 | L17 |
SRET | 子程序返回(从 CALL 处继续) | — | ⚠ 1 个坑返回后状态保持规则:★ 调用子程序时,主程序所属的 | L17 |
STL | 步进梯形图步首:读取 S 状态位(等价于 LD Sx,标记进入某步) | 位 | ⚠ 1 个坑必须与 STLE 配对,且不能嵌套: | L05 L06 L41 |
STLE | 步进结束:闭合当前 STL 步块,退出步门控(信捷用 STLE 替代三菱 RET) | — | — | L05 L06 |
RET | 步进返回:结束 STL 块(仅兼容旧写法,信捷官方用 STLE) | — | — | — |
IRET | 中断返回:结束中断服务程序、返回主程序(走 callStack,并恢复中断前的梯级状态) | — | — | L25 L36 L37 |
FOR | 循环开始 FOR K5 / FOR D0(手册 4-3-4 是单操作数=循环次数;FOR D10 K5 两操作数为旧兼容) | 目标 · 数 | — | L17 |
NEXT | 循环结束(回到对应 FOR) | — | — | L17 |
MOV | 传送 D0=K5 | 数 · 目标 | ⚠ 1 个坑源和目标不能重叠成双字:32 位或浮点传送时,源与目标不能共用同一个字。 | L06 L07 L08 L13 L16 L17 L18 L21+6 |
DMOV | 双字传送 DMOV S D(32位) | 数 · 目标 | — | L06 L18 L19 L24 L25 L28 L33 L34+4 |
CML | 取反传送 | 数 · 目标 | — | L15 |
BMOV | 块传送(点数n) | 数 · 目标 · 常数 | ⚠ 1 个坑批量传送会整段覆盖: | L08 L16 |
BCD | BIN→BCD 转换:BCD S D(源 S 的二进制转为 BCD 码存入 D) | 数 · 目标 | — | L21 |
BIN | BCD→BIN 转换:BIN S D(源 S 的 BCD 码转二进制存入 D) | 数 · 目标 | ⚠ 1 个坑时钟寄存器读出来不是十进制:★ | L21 |
CMP | 比较: M0</==/> 标志 | 数 · 数 · 目标 | — | L06 L10 L11 L12 |
ZCP | 区间比较 | 数 · 数 · 数 · 目标 | — | L11 L12 L22 |
ADD | 加法 D=D+K | 数 · 数 · 目标 | ⚠ 1 个坑运算寄存器尽量用偶数:加减乘除的结果最好落在偶数号寄存器,尤其除法 —— 32 位结果会占两个连续的号,奇数号会跟下一个数撞上。[讲] 培训资料口径 | L13 L15 L26 |
SUB | 减法 | 数 · 数 · 目标 | — | L13 |
MUL | 乘法 | 数 · 数 · 目标 | ⚠ 1 个坑16 位乘法结果是 32 位: | L13 |
DIV | 除法 | 数 · 数 · 目标 | ⚠ 1 个坑★ 余数会占掉下一个寄存器: | L13 L22 |
INC | 加1 | 目标 | — | L14 L17 L25 L37 L40 L41 L42 L43 |
DEC | 减1 | 目标 | — | L14 |
DADD | 32位加法 (D+1,D)=S1+S2 | 数 · 数 · 目标 | — | — |
DSUB | 32位减法 (D+1,D)=S1-S2 | 数 · 数 · 目标 | — | — |
DMUL | 32位乘法 64位结果→(D+3..D) | 数 · 数 · 目标 | ⚠ 1 个坑★★ 32×32=64 位,结果占 4 个字: | — |
DDIV | 32位除法 商→(D+1,D) 余数→(D+3,D+2) | 数 · 数 · 目标 | — | — |
DINC | 32位加1 (D+1,D)+1 | 目标 | — | L14 |
DDEC | 32位减1 (D+1,D)-1 | 目标 | — | — |
DCMP | 32位比较 M0> M1= M2< | 数 · 数 · 目标 | — | L11 |
DWAND | 32位与 (D+1,D)=S1&S2 | 数 · 数 · 目标 | — | — |
DWOR | 32位或 (D+1,D)=S1|S2 | 数 · 数 · 目标 | — | — |
DWXOR | 32位异或 (D+1,D)=S1^S2 | 数 · 数 · 目标 | — | — |
WAND | 字与 | 数 · 数 · 目标 | — | L15 |
WOR | 字或 | 数 · 数 · 目标 | — | L15 |
WXOR | 字异或 | 数 · 数 · 目标 | — | L15 |
NEG | 取补 | 目标 | — | L15 |
ROR | 循环右移n位 | 目标 · 常数 | — | L20 |
ROL | 循环左移n位 | 目标 · 常数 | — | L20 |
SHL | 算术左移n位(补0) | 目标 · 常数 | — | L20 |
SHR | 算术右移n位(补0) | 目标 · 常数 | — | L20 |
SFTR | 位右移 | 数 · 目标 · 常数 · 常数 | — | L20 |
SFTL | 位左移 | 数 · 目标 · 常数 · 常数 | — | L20 |
ZRST | 区间复位(支持D/C等区间) | 位 | — | L16 |
DECO | 解码 | 数 · 目标 · 常数 | — | L21 |
ENCO | 编码 | 数 · 目标 · 常数 | — | L21 |
MEAN | 求平均值 | 数 · 目标 · 常数 | — | L14 |
SWAP | 高低字节交换:SWAP D0(D0 高8位与低8位互换) | 目标 | — | L16 |
DRVI | 相对定位:DRVI S0脉冲数 S1频率 S2加减速ms D0脉冲口 D1方向口 | 数 · 数 · 数 · 位 · 位 | ⚠ 1 个坑相对定位会累加位置: | L18 L19 L34 L40 L41 L42 |
DRVA | 绝对定位:DRVA S0目标位置 S1频率 S2加减速ms D0脉冲口 D1方向口 | 数 · 数 · 数 · 位 · 位 | ⚠ 1 个坑用绝对定位前必须先回零:★ 设备一上电轴停在哪谁也不知道,必须先 | L18 L19 L34 |
PLSR | 多段脉冲:PLSR S0数据起始地址 S1用户参数块 S2系统参数块K0~K4 D脉冲口 | 数 · 数 · 数 · 位 | ⚠ 1 个坑段表每段固定 10 个字: | L32 L33 |
PLSF | 变频脉冲:PLSF S0频率(负=反向) S1系统参数块K0~K4 D脉冲口 | 数 · 数 · 位 | — | L33 L34 L37 |
ZRN | 机械归零:ZRN S系统参数块K0~K4 D脉冲口(VH/VC 取参数面板回零速度) | 数 · 位 | ⚠ 1 个坑★ 回零分三段速度:找原点开关(慢)→ 离开原点(快)→ 找原点(中),三个速度填在 | L19 |
STOP | 脉冲停止:STOP S脉冲口 D方式(K0缓停/K1急停)。★同名重载:STOP ETn = 停止精确定时(手册 10-3 p388 例原文 STOP ET0),按 D1 设备区分 | 位 · 数 | ⚠ 1 个坑缓停保留余量,急停清零:★ 缓停(K0)保留剩余脉冲,之后能用 | L34 L36 L37 |
GOON | 脉冲继续:GOON S脉冲口 | 位 | — | L34 |
A_PWR | 轴使能[电平触发]:A_PWR S0输出状态字 S1输出状态位(PwrStat) S2轴号 | 字 · 位 · 数 | ⚠ 2 个坑★★ 电平型,忘了合就报 1001: 适用机型只有 XDH/XLH/XG2:★ 总线轴只在 XDH / XLH / XG2 上支持(且须 | L44 |
A_RST | 轴错误清除[沿触发]:A_RST S0输出状态字 S1输出状态位(Done/Busy/Error) S2轴号 | 字 · 位 · 数 | ⚠ 1 个坑状态位不会自动复位:★ 手册 PLCopen 口径: | — |
A_STOP | 停止运动:A_STOP S0输入参数起始(减速/Jerk/StopMode) S1输出状态字 S2输出状态位 S3轴号 | 字 · 字 · 位 · 数 | ⚠ 2 个坑★★ 减速停止是停在半路,不是到目标: 错误停止中要先 A_RST:轴处于「错误停止」状态时执行 | L44 |
A_MOVEA | 绝对位置运动:A_MOVEA S0输入参数起始(位置/速度/加减速/Jerk/缓存模式) S1输出状态字 S2输出状态位 S3轴号 | 字 · 字 · 位 · 数 | ⚠ 3 个坑★★ 参数区是 FP64,一个数占 4 格:参数区从 ★ 别把别的指令参数区塞进 D10~D32: 零位移不产生完成沿:目标位置与当前位置相同(差 < 1e-6)时不启动运动、不产生虚假完成沿。别靠「发一次让它动一下」来测试。[实] 引擎实现口径 | L44 |
A_MOVER | 相对位置运动:A_MOVER S0输入参数起始(位移/速度/加减速/Jerk/缓存模式) S1输出状态字 S2输出状态位 S3轴号 | 字 · 字 · 位 · 数 | ⚠ 1 个坑第一个数是位移不是坐标:参数结构与 | L44 |
A_VELMOVE | 速度控制运动:A_VELMOVE S0输入参数起始(速度/加减速/Jerk/方向) S1输出状态字 S2输出状态位 S3轴号 | 字 · 字 · 位 · 数 | — | — |
A_ZRN | 回原点:A_ZRN S0输出状态字 S1输出状态位(Done/Busy/Active/Abort/Error) S2轴号 | 字 · 位 · 数 | ⚠ 2 个坑★ 运动中/同步中不能回零:官方口径:轴正在运动或同步中不可回零,发了会报错(引擎报 速度不用你给: | L44 |
A_GEARIN | 齿轮绑定:A_GEARIN S0输入参数起始(主轴号/数据源/同步比分子分母/加减速) S1输出状态字 S2输出状态位(InGear) S3从轴号 | 字 · 字 · 位 · 数 | ⚠ 1 个坑S3 是从轴号,主轴号在 S0 里:★ 齿轮绑定: | — |
A_GEAROUT | 齿轮解绑:A_GEAROUT S0输入参数起始(减速/Jerk) S1输出状态字 S2输出状态位 S3从轴号 | 字 · 字 · 位 · 数 | — | — |
CAMTBLSEL | 凸轮表加载:CAMTBLSEL S0输入参数起始(表号/循环/主从绝对) S1输出(CamtblID/ErrCode) S2输出状态位 | 字 · 字 · 位 | — | — |
CAMIN | 凸轮启动:CAMIN S0输入参数起始(主/从轴号/表实例/启动模式/倍率偏移) S1输出(Index/ErrCode) S2输出状态位(InSync) | 字 · 字 · 位 | — | — |
CAMOUT | 凸轮解除:CAMOUT S0输入参数起始(从轴号) S1输出(ErrCode) S2输出状态位 | 字 · 字 · 位 | — | — |
X_FLYSAW | 追剪[沿触发]:X_FLYSAW S0输入参数起始(28字) S1输出(ErrCode/段号/返回距离) S2输出状态位(InSync在同步区) | 字 · 字 · 位 | — | — |
PLSY | [非信捷·三菱FX兼容]脉冲输出:频率,脉冲数,输出Y | 常数 · 常数 · 位 | ⚠ 1 个坑不接受 K 作为脉冲个数: | — |
DPLSR | [非信捷·三菱FX兼容]双速脉冲:S1最高频 S2脉冲数 D输出Y | 数 · 数 · 位 | — | — |
SPD | 脉冲密度/测速:SPD X0 K100 D0(统计窗口内脉冲数→频率Hz) | 位 · 常数 · 目标 | — | — |
TRD | 读实时时钟:TRD D0(D0~D6=年/月/日/时/分/秒/星期) | 目标 | ⚠ 3 个坑★ 读出来不是十进制:官方原话:「如果您使用的 PLC 带有时钟功能,请检查寄存器 ★ 时钟会不准:每月约 ±5 分钟:官方原文:「XD/XL 系列 PLC 的时钟存在一定的误差,误差大约为每月 ±5 分钟。」做长时间计时的场合要考虑这个。[官] PD05 第13章 Q27 有些机型不带时钟:XC3 系列 14 点 PLC 及一体机 XP1 系列不带时钟。买之前确认型号。[官] XC 系列常见问题 Q6 | L23 |
TWR | 写实时时钟:TWR D0(教学版仅记录,不改系统时间) | 目标 | — | L23 |
PID | PID调节:PID 设定值 当前值 输出 参数块(参数块起址D: Kp/Ki/Kd) | 数 · 数 · 目标 · 目标 | — | — |
DACMP | 日期比较:DACMP Y M D 当前日期基址 结果位基址(M0>M1=M2<,锁机常用) | 目标 · 目标 · 目标 · 目标 · 目标 | — | L23 |
MODRD | Modbus读:MODRD 从站 首址 点数 目标D(读保持寄存器到D) | 常数 · 常数 · 常数 · 目标 | ⚠ 1 个坑站号 0 是广播,不能用:Modbus 站号 | — |
MODWR | Modbus写:MODWR 从站 首址 源值(K/D)(写保持寄存器) | 常数 · 常数 · 数 | — | — |
RS | 自由串口:RS 发送D 发送字数 接收D 接收字数(无协议回显) | 目标 · 常数 · 目标 · 常数 | — | — |
DI | 禁止中断(手册 10-4):DI~EI 区间内所有外部中断与定时中断都不响应(计数/计时本身照走,只是中断不进来、也不补发)。★ 独立指令,不受触点门控 | — | — | L37 |
EI | 允许中断(手册 10-4):解除 DI。★ PLC 平时就呈允许中断状态 —— 不需要禁止区间时,只写 EI 甚至不写都可以 | — | — | L37 |
LDD | 直接取(常开触点) | 位 | ⚠ 1 个坑我们 44 门课还没讲这条: | — |
LDDI | 直接取反(常闭触点) | 位 | — | — |
ANDD | 直接串联常开 | 位 | — | — |
ANDDI | 直接串联常闭 | 位 | — | — |
ORD | 直接并联常开 | 位 | — | — |
ORDI | 直接并联常闭 | 位 | — | — |
OUTD | 直接输出线圈 | 位 | — | — |
LSL | 逻辑左移 LSL D0 K4 | 目标 · 常数 | — | — |
LSR | 逻辑右移 LSR D0 K4 | 目标 · 常数 | — | L20 |
SQRT | 平方根 SQRT S D | 数 · 目标 | — | — |
TMR_A_FB | 带电保持反馈定时器 | 位 · 常数 · 常数 | — | — |
TMR_FB | 反馈定时器 | 位 · 常数 · 常数 | — | — |
ASCI | ASCII 转换 ASCI S D n | 数 · 目标 · 常数 | — | L21 |
BDWTD | BCD字→D转换 | 数 · 目标 | — | — |
BECON | BCD编码 BECON S D n | 数 · 目标 · 常数 | — | — |
DFLT | 32位整数→单精度浮点 DFLT S D | 数 · 目标 | ⚠ 1 个坑双精度占 4 个字: | — |
DFLTD | 32位整数→双精度浮点 DFLTD S D | 数 · 目标 | — | — |
DINT | 单精度浮点→32位整数 DINT S D(四舍五入) | 数 · 目标 | — | — |
DINTD | 双精度浮点→32位整数 DINTD S D(四舍五入) | 数 · 目标 | — | — |
DWTD | 双字→D转换 DWTD S D | 数 · 目标 | — | — |
ENCOL | 编码(长度) ENCOL S D n | 数 · 目标 · 常数 | — | — |
FLT | 16位整数→单精度浮点 FLT S D | 数 · 目标 | ⚠ 1 个坑整数转浮点,寄存器要留够 2 个字: | L21 L22 |
FLTD | 64位整数→单精度浮点 FLTD S D | 数 · 目标 | — | — |
INT | 单精度浮点→16位整数 INT S D(四舍五入) | 数 · 目标 | ⚠ 1 个坑和小数用 E 系列才对:单精度浮点用 | L21 L22 |
GBIN | 格雷码→二进制 GBIN S D | 数 · 目标 | — | — |
GRY | 二进制→格雷码 GRY S D | 数 · 目标 | — | — |
HEX | ASCII 转十六进制 HEX S D n | 数 · 目标 · 常数 | — | L21 |
HTOS | H→S 转换 HTOS S D | 数 · 目标 | — | L23 |
QFLTD | Q浮点→双字整数 QFLTD S D | 数 · 目标 | — | — |
QINTD | Q整数转换 QINTD S D | 数 · 目标 | — | — |
STOH | S→H 转换 STOH S D | 数 · 目标 | — | L23 |
WTD | 字→D转换 WTD S D | 数 · 目标 | — | — |
XCH | 数据交换 XCH D0 D1 | 目标 · 目标 | — | L16 L17 |
TADD | 时钟加法 TADD S1 S2 D | 数 · 数 · 目标 | — | L23 |
TCMP | 时间比较:TCMP 基准时 基准分 基准秒 时钟基址 结果位基址(M0基准>时钟/M1=/M2<,与DACMP同形) | 目标 · 目标 · 目标 · 目标 · 目标 | — | L23 |
TSUB | 时钟减法 TSUB S1 S2 D | 数 · 数 · 目标 | — | L23 |
WAIT | BLOCK等待 WAIT SEM0(等信号量)/ WAIT K1 K50(单位1ms×50) | 位 · 数 | ⚠ 1 个坑WAIT 会卡住块内后续所有行: | L42 |
ACOS | 反余弦 ACOS S D | 数 · 目标 | — | — |
ASIN | 反正弦 ASIN S D | 数 · 目标 | — | — |
ATAN | 反正切 ATAN S D | 数 · 目标 | — | — |
COS | 余弦 COS S D | 数 · 目标 | — | — |
SIN | 正弦 SIN S D | 数 · 目标 | — | L22 |
TAN | 正切 TAN S D | 数 · 目标 | — | — |
EADD | 浮点加 EADD S1 S2 D | 数 · 数 · 目标 | — | L22 |
ESUB | 浮点减 ESUB S1 S2 D | 数 · 数 · 目标 | — | L22 |
EMUL | 浮点乘 EMUL S1 S2 D | 数 · 数 · 目标 | — | L22 |
EDIV | 浮点除 EDIV S1 S2 D | 数 · 数 · 目标 | ⚠ 1 个坑浮点除法注意除数为 0:浮点运算前先确认除数不为 0; | L22 |
EMOV | 32位浮点传送 EMOV S D(2字,REAL) | 数 · 目标 | — | L22 |
EDMOV | 64位浮点传送 EDMOV S D(4字,LREAL) | 数 · 目标 | — | — |
ECMP | 浮点比较 ECMP S1 S2 D | 数 · 数 · 目标 | — | L22 |
ECON | 浮点编码 ECON S D n | 数 · 目标 · 常数 | — | — |
ESQR | 浮点平方根 ESQR S D | 数 · 目标 | — | L22 |
EDADD | 64位浮点加 EDADD S1 S2 D(LREAL 4字) | 数 · 数 · 目标 | — | — |
EDSUB | 64位浮点减 EDSUB S1 S2 D(LREAL 4字) | 数 · 数 · 目标 | — | — |
EDMUL | 64位浮点乘 EDMUL S1 S2 D(LREAL 4字) | 数 · 数 · 目标 | — | — |
EDDIV | 64位浮点除 EDDIV S1 S2 D(LREAL 4字) | 数 · 数 · 目标 | — | — |
EDCMP | 64位浮点比较 EDCMP S1 S2 D | 数 · 数 · 目标 | — | — |
EXP | 指数 EXP S D | 数 · 目标 | — | — |
LN | 自然对数 LN S D | 数 · 目标 | — | — |
LOG | 常用对数 LOG S D | 数 · 目标 | — | — |
EZCP | 浮点区间比较 EZCP S1 S2 S3 D | 数 · 数 · 数 · 目标 | — | L22 |
WSFL | 字左移 WSFL S D n1 n2(S 每次移入 D 低 n2 字) | 数 · 目标 · 常数 · 常数 | — | L20 |
WSFR | 字右移 WSFR S D n1 n2(S 每次移入 D 高 n2 字) | 数 · 目标 · 常数 · 常数 | — | L20 |
DSHL | 32位算术左移 DSHL D0 Kn(补0) | 目标 · 常数 | — | — |
DSHR | 32位算术右移 DSHR D0 Kn(补0) | 目标 · 常数 | — | — |
DLSL | 32位逻辑左移 DLSL D0 Kn | 目标 · 常数 | — | — |
DLSR | 32位逻辑右移 DLSR D0 Kn | 目标 · 常数 | — | — |
DROL | 32位循环左移 DROL D0 Kn | 目标 · 常数 | — | — |
DROR | 32位循环右移 DROR D0 Kn | 目标 · 常数 | — | — |
DCML | 32位取反传送 (D+1,D)=~(S+1,S) | 数 · 目标 | — | — |
DNEG | 32位取补 DNEG D0 | 目标 | — | — |
DXCH | 32位数据交换 DXCH D0 D2 | 目标 · 目标 | — | — |
DZCP | 32位区间比较 DZCP S1 S2 S3 D | 数 · 数 · 数 · 目标 | — | L12 |
DMEAN | 32位求平均值 DMEAN S D n | 数 · 目标 · 常数 | — | — |
DFMOV | 32位多点传送 DFMOV S D n | 数 · 目标 · 常数 | — | — |
DGRY | 32位二进制→格雷码 DGRY S D | 数 · 目标 | — | — |
DGBIN | 32位格雷码→二进制 DGBIN S D | 数 · 目标 | — | — |
COLR | 线圈读 COLR 局号 远端线圈首址 个数 本地线圈M 串口(Modbus 01H,最多2000) | 数 · 数 · 数 · 位 · 常数 | — | L26 L28 |
INPR | 输入线圈读 INPR 局号 远端线圈首址 个数 本地线圈M 串口(02H,最多2000) | 数 · 数 · 数 · 位 · 常数 | ⚠ 1 个坑参数不一致是首选排查项:沟通不通时,先把两边的波特率/校验/数据位/停止位/站号逐项对齐,再怀疑线。[官] PD05 第13章 Q10 | L28 |
COLW | 单个线圈写 COLW 局号 远端线圈首址 本地线圈M 串口(05H) | 数 · 数 · 位 · 常数 | — | L28 |
MCLW | 多个线圈写 MCLW 局号 远端线圈首址 个数 本地线圈M 串口(0FH,最多1976) | 数 · 数 · 数 · 位 · 常数 | — | L26 L28 |
REGR | 寄存器读 REGR 局号 远端寄存器首址 个数 本地寄存器D 串口(03H,最多125) | 数 · 数 · 数 · 目标 · 常数 | ⚠ 1 个坑★ 排查三步:参数 → 线 → 口:官方给的通讯失败归因:① 通讯参数不一致(XC 出厂 19200/偶校验/8/1/站号 1;FC 出厂 9600/奇校验/8/1/站号 1);② 通讯线接触不良或接错;③ 串口损坏。[官] XC 系列常见问题 Q7 / PD05 Q10 | L26 L28 L29 L31 |
INRR | 输入寄存器读 INRR 局号 远端寄存器首址 个数 本地寄存器D 串口(04H,最多125) | 数 · 数 · 数 · 目标 · 常数 | — | L28 |
REGW | 单个寄存器写 REGW 局号 远端寄存器首址 本地寄存器D 串口(06H) | 数 · 数 · 目标 · 常数 | ⚠ 1 个坑写进去读出来不一致 ⇒ 先怀疑地址换算:★ 同一个「写地址零」,读回来对不上是最常见的 Modbus 故障:四区(线圈/输入线圈/保持寄存器/输入寄存器)在手册里各有两套编号(如 | L26 L28 |
SEND | 发送数据 SEND 本地发送首址 字节数 串口(自由格式,上升沿发一次) | 目标 · 数 · 常数 | — | L29 L30 |
RCV | 接收数据 RCV 本地接收首址 字节数 串口(自由格式,收完 SM143+10n 置 ON) | 目标 · 数 · 常数 | — | L29 L30 |
RCVST | 释放串口 RCVST 串口编号(上升沿一次,把 SM143+10n 清 0) | 常数 | — | L29 |
CFGCR | 串口参数读 CFGCR 本地寄存器D 参数个数 串口(HD0网络种类…HD7发送前延时) | 目标 · 数 · 常数 | — | L27 |
CFGCW | 串口参数写 CFGCW 本地寄存器D 参数个数 串口 | 目标 · 数 · 常数 | — | L27 |
S_OPEN | 创建TCP连接/UDP端口监听 S_OPEN 套接字ID 通讯类型K0UDP/K1TCP/K2组播 工作模式K0服务器/K1客户端 参数块首址 标志首址(边沿一次;参数块占10字、标志占10位) | 数 · 数 · 数 · 目标 · 位 | — | L31 |
S_CLOSE | 通讯终止 S_CLOSE 套接字ID(边沿一次;关闭后该套接字的 M_TCP/S_SEND/S_RCV 都不能再执行) | 数 | — | L31 |
S_SEND | 以太网自由格式发送 S_SEND 套接字ID 本地发送首址 字节数(边沿一次;8位缓冲只发低字节、16位缓冲高低字节都发且低字节在前) | 数 · 目标 · 数 | — | L31 |
S_RCV | 以太网自由格式接收 S_RCV 套接字ID 本地接收首址 字节数(收完 M(n+5) 已接收标志置ON) | 数 · 目标 · 数 | — | L31 |
M_TCP | MODBUS TCP 通讯 M_TCP 远端站号K0~K247 功能码K1~K6/K15/K16 目标首地址 数量 本地首址 套接字ID(PLC作客户端时有效,目标端口必须502) | 数 · 数 · 数 · 数 · 位 · 数 | — | L31 |
IPSET | IP地址设置 IPSET 本地寄存器首址 个数K4/K12 串口号K9(K4只写IP;K12再写子网掩码+默认网关) | 目标 · 数 · 数 | — | L31 |
BPC_TEMP_PID | 温度PID BPC_TEMP_PID 设定 当前 输出 参数 | 数 · 数 · 目标 · 目标 | — | — |
FWRT | FlashROM写入 FWRT 源 目标(FD/SFD) [个数] | 数 · 字 · 数 | — | L08 |
DFWRT | FlashROM写入(双字) DFWRT 源 目标(FD/SFD) [组数] | 数 · 字 · 数 | — | — |
QFWRT | FlashROM写入(四字) QFWRT 源 目标(FD/SFD,地址须偶) [组数] | 数 · 字 · 数 | — | — |
MRGW | 多个寄存器写 MRGW 局号 远端首址 个数 本地首址 串口(Modbus 10H) | 数 · 数 · 常数 · 数 · 常数 | — | L26 L28 |
MSET | 批次置位 MSET M10 M120(起止同类型位元件) | 位 · 位 | — | L16 |
STR | 精确定时 STR ET0 K100(D1=精确定时器 ET,只取偶数 ET0~ET24;D2=定时值 ms,32 位 BIN,可 K 或寄存器) | 位 · 数 | — | L36 |
LIN | 直线插补 LIN S0轴1目标 S1轴2目标 D0轴1脉冲口 D1轴2脉冲口(须在SBLOCK块内) | 数 · 数 · 位 · 位 | — | L43 |
CW | 顺圆插补 CW S0轴1终点 S1轴2终点 S2轴1圆心 S3轴2圆心 D0轴1脉冲口 D1轴2脉冲口 | 数 · 数 · 数 · 数 · 位 · 位 | — | L43 |
CCW | 逆圆插补 CCW S0轴1终点 S1轴2终点 S2轴1圆心 S3轴2圆心 D0轴1脉冲口 D1轴2脉冲口 | 数 · 数 · 数 · 数 · 位 · 位 | — | L43 |
DRV | [未实现]相对驱动 DRV 脉冲数 频率 脉冲Y 方向Y | 数 · 数 · 位 · 位 | — | — |
FOLLOW | [未实现]跟随 FOLLOW 目标 脉冲Y | 数 · 位 | — | — |
FOLLOW_AB | [未实现]AB相跟随 FOLLOW_AB 目标 脉冲Y | 数 · 位 | — | — |
FROM | 模块读 FROM 模块号 缓冲首址 字数 本地寄存器首址(例 FROM K10000 K0 K2 D0) | 数 · 数 · 数 · 数 | — | — |
TO | 模块写 TO 模块号 缓冲首址 字数 本地寄存器首址(例 TO K10000 K0 K2 D0) | 数 · 数 · 数 · 数 | — | — |
MSC | 多工位控制 MSC 触发点 高速计数号 工位/工件/滤波首址 基准/偏差首址 索引/比较首址 输出首址 | 位 · 数 · 目标 · 目标 · 目标 · 位 | — | L39 |
POST | 信号量置位 POST SEM0(边沿触发,可保持;SEM0~SEM31) | 位 | — | L42 |
SKIP | BLOCK忽略条件 SKIP M3(ON 则跳过紧随其后的那一条;只允许 X/M) | 位 | — | L41 |
PWM | 脉宽调制 PWM 占空比(1~65535) 频率(0.1Hz) 输出端口 | 数 · 数 · 位 | — | L35 |
READSD | 读 SD 卡 READSD 索引列行首址 字数 存放首址 | 目标 · 数 · 目标 | — | L38 |
WRITESD | 写 SD 卡 WRITESD 索引列行首址 字数 数据首址 | 目标 · 数 · 目标 | — | L38 |
GROUP | 顺序块组开始 GROUP n | 数 | — | — |
GROUPE | 顺序块组结束 GROUPE n | 数 | — | — |
SBGOON | 继续执行已暂停的BLOCK SBGOON 块号 方式(K0 续发剩余脉冲/K1 舍弃未发完) | 数 · 数 | — | L42 |
SBLOCK | 顺序功能块开始 SBLOCK 块号(1~100) | 数 | ⚠ 3 个坑★ 上升沿 vs 常闭导通,行为完全不同:官方原话:上升沿触发 = 条件触发时,块从上到下顺序执行;常闭导通 = 条件触发后,块会继续往下执行。选错了会出现「只走一步」或「一口气跑完」。[官] PD05 第13章 Q20(书页 546) 块里的脉冲指令要留够时间:块内是排队执行的,脉冲类指令没发完,后面的行不会执行。所以用 块里用 LD(常开)会循环执行:★★ 想让块只走一遍,触发条件必须用上升沿;用 | L40 L41 L42 L43 |
SBLOCKE | 顺序功能块结束 SBLOCKE 块号(1~100) | 数 | — | L40 L41 L42 L43 |
SBSTOP | 暂停BLOCK的执行 SBSTOP 块号 方式(K0 缓停/K1 立即停/K2 毁灭缓停/K3 毁灭立即停) | 数 · 数 | ⚠ 1 个坑暂停后要用 SBGOON 继续: | L42 |
CNT_D | 32位高速计数 CNT_D C0 K5 | 位 · 常数 | — | — |
CNT_D_FB | 32位高速计数(反馈) CNT_D_FB C0 K5 K | 位 · 常数 · 常数 | — | — |
CNT_FB | 高速计数(反馈) CNT_FB C0 K5 K | 位 · 常数 · 常数 | — | — |
DCNT_D_FB | 32位掉电保持高速计数(反馈) DCNT_D_FB HC0 K5 K | 位 · 常数 · 常数 | — | — |
DCNT_FB | 掉电保持高速计数(反馈) DCNT_FB HC0 K5 K | 位 · 常数 · 常数 | — | — |
FRQM | 频率测量 FRQM 采样个数 结果寄存器 输入端口 精度档 | 数 · 目标 · 位 · 数 | — | L35 |
FMOV | 多点重复传送 FMOV S D n(同一值复制 n 点) | 数 · 目标 · 常数 | — | L16 |
PMOV | 数据块传送 PMOV S D n(同 BMOV,速度更快) | 数 · 目标 · 常数 | — | — |