西门子S7-1200PLC通过模拟量控制变频器,标准化程序来了!
导读:控制变频器时,有很多种方式,比如通信、模拟量、开关量等方式。而在现场PLC控制变频器时,可能会有手自动切换、频率给定、频率反馈、无扰动切换等功能需求。那么我们就可以利用S7-1200PLC的FB块的功能,把上述功能进行封装。
1.需要实现的功能
(使用模拟量方式控制变频器的频率):
①切换到手动模式时:手动可以设定变频器频率
②切换到自动模式时:根据现场的逻辑设定变频器频率
③反馈频率
④偏差报警(设定与反馈):当设定的频率与反馈的频率有偏差时可以做相应的报警提示
⑤手自动无扰动切换:在手动模式切换到自动模式或者自动模式切换到手动模式,由于现场某些工艺不能让设备出现大幅度的震荡。比如自动模式下变频器正在50HZ运行,切换到手动之后也是基于50HZ频率运行,直到手动修改数据。
2.程序设计
HMI画面如下图所示:
(1)新建FB1程序块,并且定义接口变量,如下图所示。
(2)FB1程序编写
①程序段1:当HMI上“无扰切换”按钮为TRUE时,则是启动无扰切换模式。此时HMI上的“手自动切换”按钮,由自动转换为手动模式检测这个按钮状态下降沿,检测到下降沿后,将频率的输出值赋值给手动设定频率;由手动转换为自动模式检测这个按钮状态上升沿,检测到上升沿后,将频率的反馈值赋值给自动频率。
②程序段2:当HMI上的“手自动切换”按钮FALSE时,“手动设定频率”生效,变频器根据手动设定的频率运行;当HMI上的“手自动切换”按钮TRUE时,变频器根据自动设定的频率运行(可以根据现场的PID运算等参数给定)。使用LIMIT指令是为了限制给定的频率值在0-50HZ之间,假如“手动设定频率”或者“自动频率”的值小于0或者大于50,“#TempManualSet”和“#TempAutoSet”会自动限制在0-50之间。小于0则用0替代,大于50则用50替代。
③程序段3:使用标准化指令设定变频器频率和采集反馈的频率。
④程序段4:当频率的输出值减去反馈值的值大于所设定的偏差值,则延时一段时间报警。当偏差不在设定范围内,则可以复位。
(3)创建DB1数据块
(4)OB1中调用FB1块:在相应的管脚上填写实际参数。
(5)调试
①如图1所示:HMI上“无扰切换”切换模式没有启用;“手自动切换”为FALSE,代表的是手动模式;手动频率给定的是12.5HZ,频率输出曲线一直是在12.5HZ。当切换到自动模式,如图2所示,频率输出为22.76HZ,曲线可以看出频率输出产生了较大的扰动。
②如图3所示:HMI上“无扰切换”切换模式启用;“手自动切换”为FALSE,代表的是手动模式;手动频率给定的是15HZ,频率输出曲线一直是在15HZ。当切换到自动模式,如图4所示,频率反馈的值给到自动频率值,曲线可以看出频率输出没有产生扰动。
图1
图2
图3
图4