在自动模式下,小车在任意位置,按下回原点按钮,小车自动回到初始设置的原点位置 在自动模式下,小车在原点位置,按下启动按钮,绿灯亮,小车以45HZ前进,前进到右侧终点SQ2位置时,小车停止,5S后小车以50HZ后退,碰到左侧限位开关SQ1后,小车停止,2S后红灯亮,系统停止,一个循环结束。 循环次数在触摸屏中可以设定(默认为1次) 任意时刻按下急停按钮,系统立即停止,红灯闪烁,按下复位按钮,系统复位 。请用1200plc编写并举例说明
时间: 2023-08-02 21:05:02 浏览: 265
以下是一个简单的1200 PLC程序实现上述逻辑:
```
ORG 0
BEGIN
// 初始化
M0.0 := 1; // 初始位置标志位
M0.1 := 1; // 待启动标志位
M0.2 := 0; // 红灯标志位
M0.3 := 0; // 绿灯标志位
M0.4 := 0; // 急停标志位
M0.5 := 0; // 复位标志位
// 主循环
WHILE NOT M0.5 DO // 复位标志位为1时退出循环
// 回原点
IF M0.0 AND NOT M0.1 THEN // 在原点且待启动标志位为0
// 执行回原点操作,并将初始位置标志位置0
// ...
// 启动运行
IF NOT M0.0 AND M0.1 THEN // 不在原点且待启动标志位为1
M0.3 := 1; // 绿灯亮
// 开始前进,并记录起始时间
// ...
// 等待到达终点
WHILE NOT SQ2 DO // SQ2为右侧终点位置开关
// 检测急停按钮,如果按下则停止
IF M0.4 THEN // 急停按钮按下
// 执行急停操作,并跳出循环
// ...
EXIT;
END_IF
END_WHILE
// 停止前进,并记录停止时间
// ...
// 等待后退
TON (M1, 5000); // 5秒后执行后退操作
IF M1.Q THEN
// 开始后退,并记录起始时间
// ...
// 等待碰到限位开关
WHILE NOT SQ1 DO // SQ1为左侧限位开关
// 检测急停按钮,如果按下则停止
IF M0.4 THEN // 急停按钮按下
// 执行急停操作,并跳出循环
// ...
EXIT;
END_IF
END_WHILE
// 停止后退,并记录停止时间
// ...
// 红灯亮,系统停止
M0.2 := 1; // 红灯亮
M0.1 := 0; // 待启动标志位清零
END_IF
END_IF
// 处理急停和复位操作
IF M0.4 THEN // 急停按钮按下
// 执行急停操作
// ...
END_IF
IF M0.5 THEN // 复位按钮按下
// 执行复位操作
// ...
END_IF
END_WHILE
END
```
在实际应用中,需要根据具体硬件和操作要求进行修改和优化。
阅读全文