PLC流水灯八个灯的编程方法有多种,以下是几种常用的编程方法及其示例程序:
方法一:使用启保停
分配I/O
需要一个定时器T,用于控制1S的时间间隔。
编程步骤
利用定时器的延时接通功能,每次定时器触发时,断开上一盏灯,同时接通下一盏灯。
具体程序示例:
```pascal
LD SM0.1 // 首次扫描时接通
MOVB 165, QB0 // 置8个彩灯的初始状态
ATCH INT 0, 21 // T32 的CT=PT 时产生中断
ENI// 允许全局中断
LD MO.0 // 输入中间继电器下降沿
TON T32, 1000 // T32 产生周期为1秒的脉冲
LD T32 // 输入定时器结果 = M0.0 // 输出到中间继电器
```
方法二:使用置为复位
分配I/O
需要一个定时器T和一个置位/复位指令。
编程步骤
利用定时器的延时接通功能,每次定时器触发时,通过置位和复位指令实现流水灯的交替输出。
具体程序示例:
```pascal
LD SM0.1 // 首次扫描时接通
MOVB 165, QB0 // 置8个彩灯的初始状态
ATCH INT 0, 21 // T32 的CT=PT 时产生中断
ENI// 允许全局中断
LD MO.0 // 输入中间继电器下降沿
TON T32, 1000 // T32 产生周期为1秒的脉冲
LD T32 // 输入定时器结果 = M0.0 // 输出到中间继电器
RES M0.0 // 复位中间继电器
SET M0.1 // 置位中间继电器
```
方法三:使用触点比较
分配I/O
需要一个定时器T和一个比较指令。
编程步骤
利用定时器的每个时间节点实现灯的通断,通过比较指令控制灯的状态。
具体程序示例:
```pascal
LD SM0.1 // 首次扫描时接通
MOVB 165, QB0 // 置8个彩灯的初始状态
ATCH INT 0, 21 // T32 的CT=PT 时产生中断
ENI// 允许全局中断
LD MO.0 // 输入中间继电器下降沿
TON T32, 1000 // T32 产生周期为1秒的脉冲
LD T32 // 输入定时器结果 = M0.0 // 输出到中间继电器
COM M0.0, M0.1 // 比较指令,当M0.0=M0.1时,输出为1
```
方法四:使用步进阶梯
分配I/O
需要一个定时器T和一个状态转移图。
编程步骤
利用定时器的延时接通功能,通过状态转移图实现流水灯的交替输出。
具体程序示例:
```pascal
LD SM0.1 // 首次扫描时接通
MOVB 165, QB0 // 置8个彩灯的初始状态
ATCH INT 0, 21 // T32 的CT=PT 时产生中断
ENI// 允许全局中断
LD MO.0 // 输入中间继电器下降沿
TON T32, 1000 // T32 产生周期为1秒的脉冲
LD T32 // 输入定时器结果 = M0.0 // 输出到中间继电器
```
方法五:使用中断定时
分配I/O
需要一个定时器T和一个中断服务程序。
编程步骤
利用中断定时器实现每秒移动一次流水灯。
具体程序示例: