信捷PLC的指令集非常丰富,通常遵循IEC 61131-3国际标准,并在此基础上进行了扩展,使其更贴合中国用户的习惯,下面我将按照功能分类,为您详细介绍信捷PLC中最常用和核心的命令,并提供示例说明。

基础逻辑指令
这是PLC编程的基石,用于实现基本的“与”、“或”、“非”逻辑。
| 指令助记符 | 名称 | 功能 | 示例 |
|---|---|---|---|
| LD | 取 | 常开触点与左侧母线连接 | LD X0 (读取X0的状态) |
| LDI | 取反 | 常闭触点与左侧母线连接 | LDI X1 (读取X1的常闭状态) |
| OUT | 输出 | 驱动线圈,将逻辑运算结果赋值给一个位元件 | OUT Y0 (如果逻辑为真,则Y0输出ON) |
| AND | 与 | 常开触点串联 | LD X0, AND X1 (X0和X1都为ON时,条件成立) |
| ANI | 与非 | 常闭触点串联 | LD X0, ANI X1 (X0为ON且X1为OFF时,条件成立) |
| OR | 或 | 常开触点并联 | LD X0, OR X1 (X0或X1任一为ON时,条件成立) |
| ORI | 或非 | 常闭触点并联 | LD X0, ORI X1 (X0为ON或X1为OFF时,条件成立) |
| ANB | 块与 | 两个或多个逻辑块串联 | (LD X0 ORI X1), (LD X2 ANDI X3), ANB |
| ORB | 块或 | 两个或多个逻辑块并联 | (LD X0 AND X1), (LDI X2 OR X3), ORB |
| MPS | 进栈 | 将当前逻辑运算结果压入堆栈 | 用于复杂梯形图的分支 |
| MRD | 读栈 | 读取栈顶数据,但不弹出 | |
| MPP | 出栈 | 将栈顶数据弹出,下一数据成为栈顶 | |
| MC | 主控 | 开始一个主控电路块,相当于一个“总开关” | MC N0 M100 (N0是嵌套级别,M100是主控触点) |
| MCR | 主控复位 | 结束一个主控电路块 | MCR N0 |
| SET | 置位 | 使线圈保持ON状态 | SET Y0 (一旦Y0被置位,将保持ON,直到被RST) |
| RST | 复位 | 使线圈保持OFF状态 | RST Y0 (一旦Y0被复位,将保持OFF,直到被SET) |
| PLS | 上升沿脉冲 | 在输入信号的上升沿产生一个扫描周期的脉冲 | PLS M0 (X0从OFF到ON的瞬间,M0 ON一个周期) |
| PLF | 下降沿脉冲 | 在输入信号的下降沿产生一个扫描周期的脉冲 | PLF M1 (X0从ON到OFF的瞬间,M1 ON一个周期) |
示例:一个简单的启停电路
X0 (启动按钮) X1 (停止按钮)
| |
|----||-----------|----( )
| LD OUT Y0 (输出线圈)
|----|/|----------|
LDI
逻辑解释:
- 当按下启动按钮
X0(常开触点闭合),Y0得电并自锁(通过Y0自身的常开触点),输出指示灯或接触器吸合。 - 当按下停止按钮
X1(常闭触点断开),Y0的通路断开,失电停止。
定时器/计数器指令
用于实现时间控制和数量计数。

| 指令助记符 | 名称 | 功能 | 示例 |
|---|---|---|---|
| T | 定时器 | 通电延时型定时器 | T0 K50 (定时器T0,设定值为50个单位时间) |
| T | 定时器 | 保持型定时器 | T1 K100 (断电后,当前值保持) |
| C | 计数器 | 加法计数器 | C0 K10 (计数器C0,设定值为10) |
| C | 加减计数器 | 可加可减的计数器 | C1 K5 (可设置加减方向) |
| RST | 复位 | 复位定时器/计数器,将其当前值清零 | RST C0 |
定时器说明:
- 单位时间:定时器的K值代表的时间单位由PLC型号和设置决定,常见的有100ms, 10ms, 1ms。
- 示例:
T0 K50如果单位是100ms,那么定时时间为50 * 0.1s = 5s,当T0的输入条件持续满足5秒后,T0的常开触点闭合。
功能指令 (高级指令)
功能指令通常以 FUN 或 FNC 开头,用于完成复杂的算术运算、数据传送、程序流程控制等。
程序流程控制
| 指令助记符 | 名称 | 功能 |
|---|---|---|
| END | 结束 | 程序结束指令,PLC执行到END后停止扫描。 |
| NOP | 空操作 | 不执行任何操作,可用于编程或预留。 |
| CJ | 条件跳转 | 当条件满足时,跳转到指定的标号处执行。 |
| LBL | 标号 | 用于标记跳转的目标位置。 |
| CALL | 子程序调用 | 调用指定的子程序。 |
| SRET | 子程序返回 | 从子程序返回到主程序。 |
| FOR...NEXT | 循环 | 循环执行一段程序。 |
数据传送与比较
| 指令助记符 | 名称 | 功能 |
|---|---|---|
| MOV | 传送 | 将源数据传送到目标地址。 |
MOV D0 D10 (将数据寄存器D0的内容传送到D10) |
||
| DMOV | 块传送 | 传送16位或32位数据块。 |
| CMP | 比较 | 比较两个数据,并根据结果设置标志位。 |
| ZCP | 区间比较 | 比较一个数据是否在两个数据之间。 |
| BCD | BCD转换 | 将二进制数转换为BCD码。 |
| BIN | BIN转换 | 将BCD码转换为二进制数。 |
算术与逻辑运算
| 指令助记符 | 名称 | 功能 |
|---|---|---|
| ADD | 加法 | [S1] + [S2] -> [D] |
| SUB | 减法 | [S1] - [S2] -> [D] |
| MUL | 乘法 | [S1] * [S2] -> [D] |
| DIV | 除法 | [S1] / [S2] -> [D] |
| INC | 加1 | [D] = [D] + 1 |
| DEC | 减1 | [D] = [D] - 1 |
| AND | 字与 | [S1] AND [S2] -> [D] (按位与) |
| OR | 字或 | [S1] OR [S2] -> [D] (按位或) |
| XOR | 字异或 | [S1] XOR [S2] -> [D] (按位异或) |
| NEG | 求补 | [D] = [D] 的二进制补码 |
移位与循环指令
| 指令助记符 | 名称 | 功能 |
|---|---|---|
| SFTL | 左移位 | 将指定位元件或字元件的数据向左移位。 |
| SFTR | 右移位 | 将指定位元件或字元件的数据向右移位。 |
| ROL | 循环左移 | 数据向左循环移位。 |
| ROR | 循环右移 | 数据向右循环移位。 |
高速处理指令
| 指令助记符 | 名称 | 功能 |
|---|---|---|
| SPD | 速度检测 | 测量输入脉冲的频率。 |
| PLSY | 脉冲输出 | 产生指定频率和数量的脉冲,用于控制步进电机或伺服电机。 |
| PWM | 脉宽调制 | 产生占空比可变的脉冲,用于控制速度或温度。 |
| ZRN | 原点回归 | 控制伺服电机回到机械原点。 |
特殊功能继电器 (Special Relays - M)
这些是PLC内部已定义好功能的继电器,用户可以直接使用。
| 地址范围 | 名称 | 功能说明 |
|---|---|---|
| M8000 | 运行监视 | PLC运行时始终为ON |
| M8002 | 初始化脉冲 | PLC由STOP→RUN时,ON一个扫描周期 |
| M8011 | 10ms时钟 | 以10ms为周期ON/OFF交替 |
| M8012 | 100ms时钟 | 以100ms为周期ON/OFF交替 |
| M8013 | 1s时钟 | 以1s为周期ON/OFF交替 |
| M8034 | 禁止所有输出 | 当M8034为ON时,所有Y输出被禁止,但程序照常运行 |
| M8039 | 恒定扫描 | 当M8039为ON时,PLC以D8039中设定的恒定扫描时间运行 |
编程环境与技巧
- 编程软件:使用信捷官方的 XDPPro 或更新版本的软件进行编程。
- 编程语言:主要使用 梯形图,这是最直观、最常用的语言,也支持 指令表 和 SFC(顺序功能图)。
- 寻址方式:
- X:输入继电器,连接到PLC的物理输入端子。
- Y:输出继电器,连接到PLC的物理输出端子。
- M:内部辅助继电器,相当于PLC的中间变量,没有物理连接。
- D:数据寄存器,用于存储16位或32位的数据。
- T/C:定时器/计数器。
- S:状态寄存器,用于SFC编程。
- 注释:为程序添加注释(如或)是良好编程习惯,能极大提高程序的可读性和可维护性。
信捷PLC的指令系统非常强大,从简单的逻辑控制到复杂的运动控制和数据处理都能胜任,对于初学者,建议从基础逻辑指令和定时器/计数器开始,逐步学习功能指令,最重要的实践方式是结合实际项目,在编程软件中反复编写、调试和优化程序。

如果您有具体的应用场景或需要了解某个特定指令的详细用法,可以随时提出,我会为您提供更针对性的解答。
