发布于 2013-03-01 08:35:54
7楼
回6楼,s7-200 自带的PID程序,自整定功能固然是很好用。但是,根据我使用的经历得知,在使用自带PID包时,在扫描循环内必须始终执行PID_INIT 子程序,假如,要做一个温度PID控制,在执行中途停止执行PID_INIT ,再重新启动,那么PID调节器将无法使用。我试图想办法去避开这个问题,比如说让程序始终调用PID_INIT ,在输出执行上做关闭和启动的动作(比如说温度控制电磁阀输出接通或断开),结果出现严重的超调。接下我们举一实例说明:就拿温度控制来说,初始时,操作员启动了加热,PID会让加热部件工作,直到到达预定的温度维持一个平稳的值。这时候遇到了一些情况操作员就在界面上停止加热(实际上PID还在工作,这时它的积分器会一直累加,直到溢出或者到达上限),当操作人员因需要重新启动加热时,PID就会以最大值输出,由于它的积分器所累积到的值已经很大,加热会持续很长时间,导致加热严重超过预定值(即我们通常说的超调现象),在很多场合这是让人无法接受的。有网友的帖子上也提过类似的问题。http://www.ad.siemens.com.cn/club/bbs/post.aspx?b_id=3&a_id=330134