电机控制在实际项目中经常使用,一般的电机控制程序块都是具有启动、保持、停止的功能。今天这篇文章给大家介绍一个使用SCL语言编写的电机控制函数块,不但具有起保停功能,还具有反馈监视功能,可监视断路器及接触器的反馈信号,适用于接触器直接启动电机或具有反馈信号的变频器控制电机。如果电机启动后没有给出正确的反馈信号,将自动停止并报警。
本例程假设电气主回路图纸如下所示:
其中:Q3是断路器,KM1是接触器。Q3有一组常开辅助触点,KM1有一组常闭辅助触点用于信号反馈,如下图所示:
下面我们来介绍函数块的编写。
在博途环境下,创建函数块FB5001_MotorControl,其输入参数和输出参数如下面的表格所示:
名称 | 数据类型 | 说明 |
---|---|---|
fuse | Bool | 断路器反馈信号,1=OK |
start | Bool | 启动信号 |
stop | Bool | 停止信号 |
feedbackSignal | Bool | 接触器反馈信号 |
feedbackTime | Time | 反馈监控的时间 |
说明:反馈信号必须在参数【FeedbackTime】设定的时间内与Q的信号相反。反馈监控的默认时间为2秒。
名称 | 数据类型 | 说明 |
---|---|---|
Q | Bool | 启动电机输出 |
error | Bool | 是否有故障(0=无,1=有) |
Diagnose | Byte | 诊断字节 |
说明:Diagnose诊断字节用来表示故障的具体类型,其中:
0=OK,没有错误(故障);
1=断路器跳闸;
2=接触器反馈信号错误;
所有参数变量的声明(包括静态变量和临时变量)如下图所示:
代码如下:
在主程序中调用FB5001_MotorControl并赋予相应的参数即可。
好了,关于具有反馈监视功能的电机控制函数块就先介绍到这里,该函数块也可用于具有位置反馈的电磁阀(将fuse常置1即可)。如果你有任何问题欢迎留言讨论。
我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》有更多详细的SCL编程案例,如果你感兴趣的话,请扫描下面的二维码查看详细介绍:
发表评论