一、使用模拟量控制电机速度
首先我们使用PLC模拟给定电机一个电压值来控制电机的速度 电机运行电压在0~10V之间,而PLC自带的模拟量输出参数如下表所示,它的可输出电流为0~20mA。根据欧姆定律,我们可以计算得到电压全速运行需要加10V电压时,电流满量程为20mA,R=U/I=500Ω,也就是说我们需要在电流输出端并联500Ω电阻,输出到电机的电压为全压,电机才全速运行。
由于电阻的价格问题,这里我们使用另外一种方法输出0~10V电压,使用信号版输出驱动电机运行。
信号板
图1 SB 1232信号板
信号版型号为 6ES7232-4HA30-0XB0SIMATIC 模拟输出AQ,SB 1232,1 个模拟输出, +/-10V DC(12 位分辨率)或 0~20mA(11 位分辨率),CPU内部对应值为0-27648,电压与此处的对应值就是模拟量与数字量的关系。电压是我们想输出的0~10V的连续量,而CPU中0对应工程量最小的值(即这里与0V对应),27648对应工程量最大值(即这里与10V对应)。
标准化指令和缩放指令
- 标准化指令 NORM_X
我们现在是通过给定一个电压来控制电机的速度。所以这里的VALUE上是设定电压,那MIN最小值是0,MAX最大值是10V,OUT端输出值为VALUE/(MAX-MIN)且0≤OUT≤1。这里相当于将设定值转换成了一个百分数,假设设定值VALUE=5,那么OUT=50%。
- 缩放指令 SCALE_X
我们最终的目标是输出设定的电压值,使电机以设定电压值运行。我们这里使用信号版的一个模拟量输出(AQ)输出电压,而0~10V的电压PLC内部的对应值为0-27648,所以这里缩放指令最大值为27648,最小值为0而VALUE是上一步标准化后的输出值,而缩放后的输出我们直接使用信号板的模拟量输出QW80输出给电机,从而完成了对电机的控制。
小结
控制电机转动,首先设定一个0~10V的电压值,而PLC内部对于0~10V的电压对应值为0-27648。我们先使用标准化指令将设定值转换成了一个百分数,再使用缩放指令将设定值转换成PLC内部对应的值,然后将其输出。
二、高数计数器的使用
前文中我们使用PLC输出一个模拟量电压控制电机运行速度,我们希望给定一个电压后可以实时显示出电机的转速r/min。这里使用高速计数器去测编码器的脉冲数通过一定的计算就可以显示出电机的转速。
硬件的组态
1.启用高速计数器
2.测量值修改为 频率
3.在硬件输入中修改高速计数器采集回脉冲的输入端,这里使用I0.2因此硬件接线采集回来的脉冲连接I0.2输入端。
4.这里的输出ID1000
5.数字输入口I0.2启用了高速脉冲计数器,我们需要在数字量通2中将其输入滤波器改小,这样高频的信号才不会被滤除,可以正常的采集回PLC内部。
程序介绍
万能转换将采集回来的脉冲ID1000转换成实数
乘以60得到每分钟的脉冲数
12是编码器的分辨率 电机转一圈产生12个脉冲 这里除以12得到了每分钟的转速。
小结:我们使用PLC高速计数器去测编码器的脉冲数,并通过一定的计算得到了电机的实时转速。
三、直流电机的PID控制
开环和闭环控制的区别就是闭环控制是根据转速的反馈信号来控制转速,闭环控制则没有反馈信号,直接控制设定的转速。
直流电机转速开环控制:直流电机在给定一个速度信号后就不受控制了,随着负载的变动,电机的速度也将有所变动,这个变动是由电机的特性决定的。
闭环控制:直流电机在给定一个速度后不断的将输出端的信息(转速)反馈到输入端,与输入端的给定信号作比较,当发现电机速度发生变化而使输出端反馈信号不满足原来输入信号的要求时,将会改变输入信号,使电机速度回到给定值为止(不可能完全回到给定值)。
可以看出,速度的开环控制比较简单,但速度变化大;而速度的闭环控制较复杂,而系统的速度变化要小得多。
闭环控制的基本原理是把控制系统输出量的一部分或全部,通过一定方法和装置反送回系统的输入端,然后将反馈信息与原输入信息进行比较,再将比较的结果施加于系统进行控制,避免系统偏离预定目标。
之前是给一个固定的电压去控制电机的转速,这里我们希望给一个转速电机可以稳定输出这个速度。这里我们将实现直流电机的闭环PID控制,由于1200中已经做好了PID相关的模块,我们只需要组态设定参数就可以完成对电机的PID控制。
S7-1200中PID的调试步骤
1.首先我们需要新建一个OB块,选择Cyclic interrupt循环中断
2.在右侧工艺-PID控制-Compact PID - PID Compact
3.将PID Compact插入OB30程序段
4.参数设置
Setpoint为设定转数 0~4000r/min
Input 处为换算后的转速 MD208 ( 图片错误❌)这里用到前文主函数中的一段程序,我们使用高速计数器将编码器脉冲采集回PLC,乘以60转为分钟,除以12(编码器上有12个孔,转一圈产生12个脉冲)转换为r/min
Output_PER QW80这里使用信号版输出0~10V
5.点击标记处进去组态
6.将控制类型改为速度
将Mode设置为:自动模式
7.将改为Input
8.过程值限制修改为0~4000r/min
9.PID参数可以将其改为PI
10.点击调试进去PID调试界面
粗调
细调
就此PID调试结束。
小结:这里我们将上文中通过高速计数器测得转换后得到的电机实时转速反馈到给定值输入端形成了闭环控制,可以实现电机速度稳定输出给定转速。
参考文献: