- 收藏
- 加入书签
西门子PLC 314C-2PN/DP脉冲调制实现电流模拟量输出
济源市天龙焦化有限公司 河南济源 459000
摘要:西门子S7-300 PLC 314C-2PN/DP CPU自带4路脉冲宽度调制输出通道,本论文研究使用脉冲宽度调制通道实现电流模拟量输出功能,并进行试验,方便需要少量电流模拟量输出通道的场合,节省单独购买模拟量模块成本。
关键词:西门子S7-300;314C-2PN/DP;脉冲宽度调制;电流模拟量输出
引言:
314C-2PN/DP CPU自带24DI、16DO、4AI、2AO。在反渗透系统改造时,原有的两路AO已经用于控制变频器实现水泵PID调节,现另需两路AO用于加药泵PID控制PH值,单独购买模拟量模块不经济。本文论点是分析脉冲输出加上电阻限流,通过4-20mA转4-20mA安全栅实现电流模拟量输出的可行性,并进行实际验证比对。
一、PID控制的实现
在step7软件中新建项目,硬件组态添加CPU 314C-2PN/DP,在OB35中调用FB41 CONT_C功能块,按照输入输出要求填写对应变量即可实现PID控制。在LMN_LLM引脚输入0.0,在LMN_HLM引脚输入800.0,在输出引脚LMN处可得到类型为浮点的PID运算结果,运算结果取值范围为0.0-800.0。为了方便后边进行4-20mA电流标定,需要增加PID的手动/自动切换,具体实现请参考西门子官方教程。
二、脉冲宽度调制输出的实现
1.脉冲频率选择:为了实现4-20mA电流输出,需要使脉冲宽度在20%到100%范围内可调。查询cpu_31x_技术规范手册,CPU314C-2PN/DP最高输出频率2.5KHZ,最小脉冲宽度为200us,那么脉冲宽度100%对应时间1000us即1ms,输出脉冲频率最高为1KHZ,再高将不能保证脉冲宽度准确性。
2.硬件组态:硬件组态中双击CPU的count选项,在弹出的窗口中,通道选择0,工作模式选择脉宽调制;切换到地址选项卡,记录输入地址值是816(可以自己修改,后边编程需要用到);切换到脉宽调制选项卡,输出格式选择per mil即脉冲宽度,时基选择0.1ms,接通延迟为0,周期输入数值10即1ms(最小值为4),最小的脉冲宽度输入2(受到硬件限制);其它选项使用默认值。具体定义请参考西门子CPU 31XC技术功能手册。
2.软件编写:在编程窗口左侧,依次展开库、Standard Library、System Function Blocks,找到SFB49并双击,通过调用SFB49 PULSE功能块实现脉宽调制输出功能,按照功能块输入输出要求填写对应变量并指定背景数据块。
(1).参数填写:在LADDR处填写子模块的IO地址,注意此处填写16进制数据,硬件组态中的输入地址816换算为16进制是330,此处输入W#16#330;CHANNEL处填写需要输出脉冲的通道编号,需要与硬件组态对应,填写0;OUTP_VAL为缺省输出值,取值范围0-1000;软件使能SW_EN需要为1才能输出脉冲;
(2).脉冲宽度调整的实现:脉冲宽度计算公式为(OUTP_VAL/1000)*周期,在运行过程中,修改OUTP_VAL的值即可实现不同宽度的脉冲输出;
三、PID输出控制脉冲宽度的实现
OUTP_VAL输入要求为0-1000的INT型整数,对应输出的脉冲宽度0%至100%,为了实现4-20mA的输出结果,需要把输出脉宽范围限制在20%到100%。PID输出结果是取值范围0.0-800.0的REAL类型浮点数,需要对PID输出结果使用ROUND指令进行取整得到双整数类型DINT,使用MOVE指令把DINT类型数据传递给INT型整数,再把INT型整数加上200传递给OUTP_VAL。这样就实现了PID输出结果与输出脉冲宽度的对应关系。
四、电路连接
1.限流电阻值计算:查询cpu_31x_技术规范手册,CPU供电电压为DC24V,标准DO的输出电压为电源电压减去0.8V,输出电流为0.5A;查询南京优倍NPEXA-CM31安全栅手册,输入阻抗约为75欧姆;经过计算要达到20mA输出电流则要在PLC的DO上串联阻值1085欧姆功率1W的电阻,取标准电阻1K欧姆,为了使输出电流值准确,在后边实际电路试验前需要进行4-20mA电流标定。
2.电路连接:按照cpu_31x_技术规范手册,脉宽调制通道0输出在X2连接器端子22上,先连接1K欧姆电阻,然后至安全栅输入端子2,再把安全栅输入端子1连接至CPU电源M;安全栅输出端子5和6连接至加药泵4-20mA模拟量输入端子。
五、实际使用效果
1.4mA和20mA的标定:把PID切换至手动状态,设定手动输出值等于LMN_LLM,用万用表测量安全栅输出电流,如果比4mA大则需要把PID的LMN_LLM参数值改小(可以为负值),反之则改大;用相同的方法标定20mA时的LMN_HLM值,如果LMN_HLM值等于1000仍不能使输出电流达到20mA,可以把限流电阻更换为9.1K欧姆,或把CPU电源压电压调整至25V,之后需要重新进行4mA和20mA的标定。标定完成之后,把PID切换到自动状态。
2.示波器观察:PLC输出为方波,周期值与编程设定值相同;安全栅输出为三角波,周期值与方波相同。PLC输出脉冲频率分别为500HZ和1KHZ,安全栅输出都是三角波。
3.连接加药泵运行:虽然安全栅输出为三角波,但经过实际运行试验,可以控制加药泵使PH值稳定在目标值9.2。为了做效果对比,另外使用一套带4-20mA模拟量输出模块的S7-300 PLC、使用相同PID参数控制同一台加药泵,并使用WinCC记录了趋势曲线。
结束语:
综上所述,使用314C-2PN/DP CPU自带的脉宽调制输出、加上限流电阻并通过安全栅,实现4-20mA控制加药泵是完全可行的,与使用4-20mA模拟量输出模块直接控制效果相比,稳定性稍差,但在工艺允许范围内,可以满足生产要求。需要使用4个以内的模拟量输出通道时可以使用此方法,节省购买模拟量输出模块成本。
参考文献:
[1]阳胜峰.快速学会S7-300/400 PLC[M].北京:中国电力出版社.2014
[2]西门子(中国). S7-300 CPU 31xC:工艺功能[EB/OL].2011-03
作者简介:翟军,男,生于1979年1月,河南济源,汉,本科学历,电工高级技师,车间主任,现就职于河南省济源市天龙焦化有限公司,全面主持公司电气建设、维护、改造工作。
(作者单位:济源市天龙焦化有限公司)