PLC(Programmable Logic Controller)是一种专门为在工业环境下应用而设计的数字运算操作电子系统。它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。
中央处理器(CPU):是PLC的核心部件,负责执行程序指令、进行逻辑运算和数据处理等工作。它的性能直接影响着PLC的处理速度和控制精度。
存储器:包括系统程序存储器和用户程序存储器。系统程序存储器用于存储PLC的操作系统和基本功能程序,用户程序存储器用于存储用户编写的控制程序。
输入输出(I/O)模块:连接PLC与外部设备的接口。输入模块用于接收来自传感器、开关等外部设备的信号,将其转换为PLC能够处理的数字信号;输出模块则将PLC处理后的数字信号转换为控制信号,驱动执行器(如电机、阀门等)工作。
电源模块:为PLC提供稳定的电源供应。它通常具有过压、过流保护等功能,以确保PLC在恶劣的工业环境下可靠运行。
通信模块:实现PLC与其他设备之间的数据通信。可以通过串口、以太网等通信方式与上位机、其他PLC或现场设备进行通信,实现远程监控和控制。
输入采样阶段:PLC以扫描方式依次读入所有输入状态和数据,并将其存入输入映像寄存器中。在这个阶段,输入信号的变化不会影响输入映像寄存器的内容,只有在下一个扫描周期的输入采样阶段,新的输入信号才会被读入。
程序执行阶段:PLC按照预先编写的用户程序,从第一条指令开始逐句执行,对输入映像寄存器和输出映像寄存器中的数据进行逻辑运算和处理,并将结果存入输出映像寄存器中。
输出刷新阶段:在所有指令执行完毕后,PLC将输出映像寄存器中的内容传送到输出锁存器中,再由输出锁存器通过输出模块驱动外部执行器工作。在这个阶段,输出信号的变化立即反映到外部设备上。
高可靠性:采用了先进的电子技术和抗干扰措施,能够在恶劣的工业环境下稳定运行,具有较高的可靠性和稳定性。例如,PLC具有硬件冗余、故障自诊断等功能,能够及时发现和处理故障,确保系统的连续运行。
编程简单:使用直观、易懂的编程语言,如梯形图、指令表等,编程人员不需要具备很高的专业知识和技能,就可以快速掌握编程方法。同时,PLC编程软件提供了丰富的功能模块和调试工具,方便用户进行程序开发和调试。
灵活性强:可以根据不同的控制需求进行灵活的编程和配置,能够适应各种复杂的工业控制场合。例如,通过增加输入输出模块、通信模块等,可以方便地扩展PLC的功能和控制范围。
功能强大:除了基本的逻辑控制功能外,还具有定时、计数、算术运算、数据处理、通信等多种功能,可以满足不同工业控制领域的需求。例如,在污水处理、化工生产、电力系统等领域,PLC可以实现对各种设备的精确控制和监测。
易于维护:具有模块化的结构设计,各个模块之间相对独立,便于故障排查和维护。同时,PLC编程软件提供了在线调试和故障诊断功能,能够帮助维护人员快速定位和解决问题。
| 指令 | 功能说明 | 应用场景 |
|---|---|---|
| LD(Load) | 将数值或位数值装入寄存器,读取输入信号 | 程序起始读取输入信号 |
| LDI(Load Inverse) | 常闭接点指令,与LD指令相反 | 读取常闭输入信号 |
| AND(And) | 逻辑与运算,判断两个输入是否同时为真(串联电路) | 多条件同时满足控制 |
| OR(Or) | 逻辑或运算,判断两个输入是否至少一个为真(并联电路) | 多条件任一满足控制 |
| NOT(非) | 逻辑取反,将输入信号反转 | 信号状态反转控制 |
| ANI(And Immediate) | 与立即数逻辑与,或常闭接点串联(与非运算) | 常闭条件串联控制 |
| ORI(Or Immediate) | 与立即数逻辑或,或常闭接点并联(或非运算) | 常闭条件并联控制 |
| XOR(Xor) | 逻辑异或,判断两个输入是否不同 | 异状态检测控制 |
SET功能:使目标元件置位(保持ON状态),如SET Y0锁定输出Y0。
RST功能:使目标元件复位(保持OFF状态),如RST Y0关闭Y0输出,还可复位定时器/计数器。
语法:SET D / RST D
| 参数 | 说明 |
|---|---|
| D | 目标元件(如输出Y0、辅助继电器M0、计数器C0) |
扩展:ZRST指令可批量复位指定区间的元件(如ZRST Y0 Y7批量复位Y0-Y7)。
示例:
功能:在顺序功能图(SFC)中实现状态跳转,用于多步骤流程控制;或批量传输数据块到目标区域。
语法:TRAN S, D, N
| 参数 | 说明 |
|---|---|
| S | 源起始地址 |
| D | 目标起始地址 |
| N | 传输点数 |
特点:简化复杂流程的逻辑设计,常用于多工序自动化系统。
应用场景:批量复制数据(如将D0~D9复制到D100~D109)。
示例:
功能:将数据从一个寄存器或变量传送到另一个寄存器。
语法:MOV S, D
| 参数 | 说明 |
|---|---|
| S | 源数据(如K100、D0) |
| D | 目标地址(如D10) |
扩展:支持32位数据传输(DMOV指令),占用两个连续寄存器。
应用场景:初始化参数、数据备份、数据转移。
示例:
| 指令 | 功能说明 | 应用场景 |
|---|---|---|
| ANB(And Block) | 两个或以上并联电路块的串联连接 | 多并联电路块串联控制 |
| ORB(Or Block) | 两个或以上串联电路块的并联连接 | 多串联电路块并联控制 |
| 指令 | 功能说明 |
|---|---|
| PLS(Pulse Rise) | 输入信号上升沿产生一个扫描周期脉冲输出 |
| PLF(Pulse Fall) | 输入信号下降沿产生一个扫描周期脉冲输出 |
| LDP(Load Pulse Rise) | 与左母线连接的常开触点上升沿检测 |
| LDF(Load Pulse Fall) | 与左母线连接的常闭触点下降沿检测 |
| ANDP(And Pulse Rise) | 上升沿检测串联连接 |
| ANDF(And Pulse Fall) | 下降沿检测串联连接 |
功能:基于预设时间进行延时控制,单位通常为毫秒或秒。
类型:
100ms定时器(T0~T199):精度0.1秒,设定值范围1~32767(对应0.1~3276.7秒)
10ms定时器(T200~T245):精度0.01秒,设定值范围1~32767(对应0.01~327.67秒)
示例:
功能:对输入信号的脉冲数进行计数,达到设定值时产生输出信号。
类型:
16位增计数器(C0~C99):设定值范围1~32767
32位增/减计数器(C100~C255):设定值范围-2147483648~2147483647
示例:
| 指令 | 功能说明 | 应用场景 |
|---|---|---|
| JMP(Jump) | 条件或无条件跳转到指定程序段 | 程序分支和循环控制 |
| CALL(Call) | 调用子程序,实现代码复用 | 模块化程序设计 |
| RET(Return) | 从子程序返回主程序 | 子程序执行完毕返回 |
| NOP(No Operation) | 无动作,占一个程序步 | 程序调试占位 |
| END(End) | 结束程序执行 | 程序末尾标记 |
| 指令 | 功能说明 | 示例 |
|---|---|---|
| ADD(加法) | 两个数相加运算 | ADD D0 D1 D2(D0+D1结果存入D2) |
| SUB(减法) | 两个数相减运算 | SUB D0 D1 D2(D0-D1结果存入D2) |
| MUL(乘法) | 两个数相乘运算 | MUL D0 D1 D2(D0×D1结果存入D2) |
| DIV(除法) | 两个数相除运算 | DIV D0 D1 D2(D0÷D1结果存入D2) |
| CMP(比较) | 比较两个数值大小关系 | CMP D0 K100(判断D0是否等于100) |
功能:输出可调节加速/减速的脉冲信号,用于控制步进或伺服电机的平滑启停。
语法:PLSR S1, S2, S3, D
| 参数 | 说明 |
|---|---|
| S1 | 目标脉冲数(高速计数器值) |
| S2 | 最高速度(Hz) |
| S3 | 启动速度(Hz) |
| D | 脉冲输出端口(Y0/Y1) |
应用场景:适用于需要精确控制电机速度和位置的场景,如机械臂定位。
示例:
功能:控制设备返回机械原点位置,通常用于伺服或步进系统的初始化定位。
语法:ZRN S1, S2, D
| 参数 | 说明 |
|---|---|
| S1 | 回归速度(Hz) |
| S2 | 近点DOG速度(Hz) |
| D | 脉冲输出端口(Y0/Y1) |
应用场景:设备开机初始化,确定基准位置。
示例:
功能:输出指定频率和数量的脉冲,直接驱动电机运动。
语法:PLSY S1, S2, D
| 参数 | 说明 |
|---|---|
| S1 | 脉冲频率(Hz) |
| S2 | 脉冲数量(0=连续输出) |
| D | 脉冲输出端口(Y0/Y1) |
应用场景:简单定位控制,如传送带长度控制、匀速运行控制。
示例:
功能:电机自动往返(Y0控制正转,Y1控制反转),通过限位开关实现方向切换。
功能:每5秒采集一次传感器数据,存入指定寄存器(D100)。
脉冲输出限制:
Y0/Y1端口通常用于高速脉冲输出,不能与普通输出混用。
同时使用多个脉冲指令时,需注意频率和时序冲突。
数据类型匹配:
32位指令(如DMOV)需占用两个连续寄存器(低16位+高16位)。
避免16位和32位数据混用,如用MOV传送32位值可能导致高位丢失。
定时器/计数器复位:
计数器需用RST指令复位,否则达到设定值后不会自动清零。
定时器断电后状态会复位(TON型),需根据需求选择合适类型。
特殊继电器使用:
M8000:运行监视(PLC运行时ON)
M8002:初始脉冲(PLC启动时ON一个扫描周期)
M8029:指令执行完成标志
参数匹配:
脉冲频率需匹配电机性能,避免超出设备额定参数。
定时器单位需与PLC时钟同步,确保定时精度。
注:实际应用中需结合硬件配置和具体需求调整参数,更多细节可参考三菱官方技术手册或示例代码。