我回答一个网友的叙述,转述如下:
其实,你犯了1个概念性的错误——没理解PID功能块的控制方式。你明白以后就知道自己错在哪里了,下面我们先看看这个功能块。
PID功能块的控制方式:
当自动条件不满足时执行手动输出,输出手动设定值;
当自动条件满足时执行自动输出,输出PID运算结果;
PID运算方式:把反馈值(这里为AIW0)和设定值(这里为AC0)拿来比较,进行计算:
比例:如果反馈值比设定值大——就减小输出(这里指负作用控制);
积分和微分:如果......不写了,太多了@_@
你的程序错误错在AC0了——应当这样计算(下面举一个复杂一点的例子,你以后可能会用到——单极和 20% 的偏移量):
假设变送器的量程范围是0-50摄氏度对应4-20mA信号,而模拟量输入模块的量程范围是0-20mA对应0-32000(注意:没有4-20mA对应于0-32000这种说法),那么0-50摄氏度就对应于6400-32000。
你可以把这个变送器输入的信号(例如AIW0)直接作为PID的反馈(也就是过程变量),但是在PID向导中设定输入单极性,偏移20%,输入下限6400,输入上限32000。
那么给定值怎么算呢?请看下面:
既然知道0-50摄氏度对应于6400-32000,那么如果给定35摄氏度,PID功能块的SP应该为多少呢?当然,不能直接为35摄氏度(你就犯了这个错误),应该做以下计算:
公式推导:已知0-50摄氏度对应于6400-32000,那么就得到一条直线(你可以用XY坐标画出来,初中学的哟@_@)。假设Y为温度值(0-50摄氏度),X量程(0-32000),就可以得到如下公式:50/(32000-6400)=Y/(X-6400)。
计算:SP设定值=[Y*(32000-6400)/50]+6400
这个Y就是人机上的温度设定值。
当然,你的信号是0-50度对应0-32000,更简单,你按照该方法做就行了。
我在手册上和网上好像没有找到比我说的更详细的了,呵呵
1、根据你检测压力的范围,选择适合的压力传感器或变送器,如能直接输出4-20MA的电流信号最好,如搞不到,其输出信号为0-20mV,可到电子市场购买一块“0-20 mV转换为4-20ma的集成块”按该块提供的线路图做块电路板。
2、选用模拟量输入模块(有4-20ma输入信号最好,如没有可用0-10V输入量模块,再用一个500欧电阻,将4-20ma转换为2-10V接模块对应电压输入端)变模拟信号为数字量(如AIW0)从模块的参数可找出10V(或20ma)对应的数字量AIW0m(如:32000),可求出2V(或4ma)对应的数字量AIW0n=AIW0m / 5(如:6400)
3、设压力传感器或变送器输出为4ma时对应压力值为PA0(如:0KG),输出为20ma时对应压力值为PA1(如:10KG),则数字量转换压力值的公式为:P = PA0 + PA1 * (AIW0-AIW0n)/ (AIW0m-AIW0n)
如: P = 0 + 10 * (AIW0 - 6400)/ (32000 - 6400)=10 * (AIW0 - 6400)/ 25600
[7227]
[9114]
[17593]
[11674]
[9488]
[10069]
[10474]
[11871]
[18732]
[13157]

客服
小程序
公众号