九、SCL核心应用课项目实战_物流传送带控制程序设计


前言

本文是基于B站上的《SCL核心应用课项目实战》课程,所做的笔记,主要包括程序代码和自己的理解注释。课程链接:SCL核心应用课项目实战(21课全)
陆杰锋老师讲得非常好,有理论讲解也有实战演练,需要具备一定的梯形图编程基础。
有空我会持续更新。

九、物流传送带控制程序设计(顺序控制)

1.需求分析

如图所示为一套传送带控制系统,由5台传送带电机构成。
功能要求:
A.按起动按钮后系统自动运行,首先打开1级传送电机,延迟设定时间后,打开2级传送带电机,以此类推,最后打开5级传送带电机。按下关闭按钮后,先关闭5级传送带电机,延迟设定时间后,关闭4级传送带电机,以此类推;
B.不同传送带之间的启动和停止延迟时间均需独立设置;
C.启动和停止环节需要区分开;
D.在设备启动过程中,当启动到某条传送带时出现故障,已经启动的传送带要保持运行状态,后续的传送带不再启动;
E.在设备运行过程中,某一级传送带故障,则该传送带以上的设备全部停止,该传送带以下的设备保持正常,当故障排除后,按下启动按钮,该传送带立刻启动,该传送带以上的设备按顺序依次启动;
在这里插入图片描述

分析:
面向对象的程序设计,对象为单条传送带,通用块输入引脚应具有:
启动按钮Start、
停止按钮Stop、
运行反馈信号Run、
故障信号Fault、
启动延迟时间设置Start_T_Set、
停止延迟时间设置Stop_T_Set;
输出引脚应具有:
电机输出线圈KM、
启动完成信号Start_Complete(电机启动后,且经过了延迟时间,表示启动完成,可以启动下一台电机)、
停止完成信号Stop_Complete(电机停止后,且经过了延迟时间,表示停止完成,可以停止下一台电机)、
综合故障信号Fault_All;

2.程序编写

编程步骤:
1.建立新的变量表“传送带”;
在这里插入图片描述
2.建立FB块“传送带”;
3.在“传送带”块中建立如下变量:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.编写浮点数转时间程序;
关于这段程序的讲解见另一篇文章:八、SCL核心应用课项目实战_模拟量转换通用块设计

#Start_Time := DINT_TO_TIME(REAL_TO_DINT(#Start_T_Set * 1000.0));
#Stop_Time := DINT_TO_TIME(REAL_TO_DINT(#Stop_T_Set * 1000.0));

5.编写启动停止程序;

IF #Start AND NOT #Stop AND NOT #Fault_All THEN
    #KM := 1;
END_IF;

IF #Stop OR #Fault_All THEN
    #KM := 0;
END_IF;

6.编写启动停止延迟程序;

#Start_TON(IN := #Run,//电机运行信号触发启动延时定时器计时
           PT := #Start_Time);

#Stop_TON(IN := NOT #Run,//电机停止运行信号触发停止延时定时器计时
          PT := #Stop_Time);

7.编写启动停止完成程序;

#Start_Complete := #Start_TON.Q;

#Stop_Complete := #Stop_TON.Q;

8.再建立一个FB块“传送带控制”;
9.在“传送带控制”块中调用“传送带”。可选择“多重实例”,一共有5条传送带,所以调用5次;
在这里插入图片描述
在这里插入图片描述
10.在“传送带控制”块中编写程序;
为了将启动和停止环节区分开,需要有“启动流程”和“停止流程”。自锁电路的常闭触点先放着不写。
在这里插入图片描述
在输入输出引脚上连接相应的变量。
在这里插入图片描述
将传送带1的启动完成,作为传送带2的启动信号,同理传送带2的启动完成,作为传送带3的启动信号,以此类推。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后,将传送带5的启动完成,作为“启动流程”的结束信号。
在这里插入图片描述
停止流程时逆序的,所以先停传送带5。
在这里插入图片描述
传送带5的停止完成,作为传送带4的停止信号,以此类推。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后,将传送带1的停止完成,作为“停止流程”的结束信号。
在这里插入图片描述
11.在模拟仿真过程中,发现程序存在问题;
当启动信号触发后,单个传送带的启动信号Start、停止信号Stop均被置1。

分析:
查看“传送带”块内的程序可知,只要设备没有运行,停止延时计时器就开始计时,导致计时结束后,停止完成信号置1。
在这里插入图片描述
对程序进行优化:只有当处在启动流程下,且设备开始运行并经过设定时间之后,才触发启动完成信号;同理,只有当处在停止流程下,且设备已经停止并经过设定时间之后,才触发停止完成信号。

在“传送带”块内添加变量并改写程序:
在这里插入图片描述
优化后的程序如下:

#Start_Complete := #Start_TON.Q AND #Start_Flow;//一定要处在启动流程下,且电机启动状态下,启动完成信号才会触发

#Stop_Complete := #Stop_TON.Q AND #Stop_Flow;//一定要处在停止流程下,且电机停止状态下,停止完成信号才会触发                                  

为“传送带控制”块内的所有程序块引脚连接上“启动流程”和“停止流程”变量。
在这里插入图片描述
12.编写运行时故障处理程序;

分析:
传送带1故障,12345停;
传送带2故障,2345停;
传送带3故障,345停;
传送带4故障,45停;
传送带5故障,5停;
1的故障信号作为1的停止信号;
12的故障信号作为2的停止信号;
123的故障信号作为3的停止信号;
1234的故障信号作为4的停止信号;
12345的故障信号作为5的停止信号;

程序如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
13.编写启动时故障处理程序;

分析:
处在“启动流程”下,设备还未全部启动完成,若此时某条传送带故障,“启动流程”信号还是1,会导致当故障处理完毕,故障信号消失后,刚才有故障的传送带会立即启动,有一定的危险性。
所以,当有故障信号时,应结束“启动流程”。

在“传送带控制”块内编写如下程序:

"Fault_All" := #传送带_1.Fault_All OR #传送带_2.Fault_All OR #传送带_3.Fault_All OR #传送带_4.Fault_All OR #传送带_5.Fault_All;//故障综合                             

并修改“启动流程”程序:
在这里插入图片描述
同时,在“传送带”块内添加如下程序:

#Fault_All := #Fault;                             

14.进一步优化程序,为启动按钮和停止按钮增加自复位功能;
在“传送带控制”块内最后一行添加如下程序:
在这里插入图片描述
15.最后在主程序块Main中,调用“传送带控制”。
在这里插入图片描述

  • 36
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值