本期擂台为征集擂台:
S7-温度PID控制程序,多段曲线控制。(实际擂台中PLC类型任选)
求解
设想学习的目的以达到提高自身的水平,温度PID控制程序,多段曲线控制。求解
我现在用的就是用温控表做的.我设想用PLC来达到这样的目的。
我碰到主要的问题是:温度输入模以量通道,多个设定值的处理,如何去解决
如:第一路温度输入通道,第一次目标执行处理的设定温度是250《或是N>>度。第一次执行设定升温时间为3《或是N>>小时。需要有PID控制,控制输出的0-10V;或是4―20MA;
达到目的后恒温N小时。
当执行完第一次的设定程序后,如何的编写和执行第二次的程序呢?
第二次目标执行处理的设定温度是400《或是N>>度。第二次执行设定升温时间为1《或是N>>小时。需要有PID控制,控制输出的0-10V;或是4―20MA;
达到目的后恒温N小时。这个设定值的处理,如何去解决?
N值自己界定!
PLC类型任意选择,回答的最好最完全的,原创最多,阐述最详细,程序越准确者获一等奖!
工控PLC擂台每周一期,本期待91期结束一周后结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:100积分。
MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。
MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。
第一组电加热最大加热功率×0号PID通道输出比例×3小时=加热对象比热(转成大卡)×(250-初始温度)÷860
第二组电加热最大加热功率×1号PID通道输出比例×1小时=加热对象比热(大卡)×(400-250)÷860
如果嫌计算不准,那就实际测吧,测出温升和时间的变化率就行。。。
不管计算还是实测,得出各自的输出比例后,设置PID1和PID2的手动输出比例,以及工作时间3小时和1小时。。。
然后启动0号通道,强制写入预先计算好的输出比例,对应的电加热3小时后,PID0转入自动工作,目的是维持250度N小时。
N小时后,
将0号通道输出强制写入0,调出1号通道的手动比例模式,转入1号通道接力,1个小时候,手动输出比例关闭,PID1开始工作,目标是维持工质稳定在400度,N小时。。。
当然,要是图省钱的话,也可以不要第二组加热,也就是自动再切回手动的事情。
需要注意的是,PID输出Mn值逆归一后,不要直接导入AQW,先写入一个中间地址,然后设置一个山寨数字,需要手动的时候就把山寨数写进AQW去,需要自动的时候就把中间地址的值再刷进去。。。(我管这叫野兽派编程法)
这个思路行不?欢迎拍砖。。。
很多烘箱自带微处理的都有这种多段加热功能具体曲线如下:
就变化率而言,现在我们有两个要求 第一段250℃/3小时 第二段400℃/1小时 ,保持温度部分时间暂时先抛开。
我一直用的是siemens产品,其PID控制采样周期可设定,比如说30s(便于计算),第一段要求是 250/360 个采样段,得出温度上升率为0.7度/每30s 是可以基本满足的,加热有滞后所以上升的直线段其实也有不是完全的直线,应该是个近似曲线。
根据这个0.7/每30s,开始初步定下P值,这里需要花至少20几个周期才能整定出一个P值(我猜测的,估计实际还要花更多周期),这里编程思路大概就是根据外部设定,确定一个变化率值,然后把实际变化率也在程序中算出并和理想变化率做比较,然后再去对P值做增加或减少。 这里可以用一个PID块来解决,实际情况估计0.7不够,因为前期整定时间可能会较长,可以略微放大。这一个PID块的输出可以拿来做后面温控用的PID中P值的计算系数。
P2= OUT(PID1) *K(系数常量比值,用于修正)。以我实际经验看,变化率稳定是比较难的,所有前期会过热一些,中期才会平稳,如果工艺不允许,就只能提前修正,这个就要用到“死区”功能。具体使用开模拟器试试就知道。
之后的第二段、第三段类似。 保持功能同理,先测试下PID不工作时的下降率,然后根据温度保持允许范围,设置一定时间开启下PID块即可。 比如250度,保持需要在+-1度,那也就是说1度的工作时间开启一起PID块,然后再一个工作时间关闭。此时PID的整定值由最后到达250度时的值决定,断开前面对这个的影响即可。