PLC里不要写ad/da程序的,这些都是ai/ao模块自动完成的.
你要做的是把ad后的值做工程单位化,把100%的输出变换到适合ao输出.
ai模块执行ad转换后的数值(RAW),和ao对应100%的数值,各种PLC表示都不一样.
比如一种PLC的ai把4~20mA信号线性转换(ad)成0~32000,ao把0~32000的数值线性转换成(da)4~20mA的电流.
那么你也许要做0~32000到工程值(EU)的转换编程.这个按照线性公式或者使用现成的线性例程(子),转换就可以了. EU=(AD-RL)*(EUH-EUL)/(RH-RL)+EUL,EUH就是量程高限,EUL是低限,RH,RL对应AD转换的高低限.对于0~32000的例子就是RH=32000,RL=0.
而ao线性转换,一般就是32000.0(例子)*AO/100.0=320.0*AO.这里之所以加.0,是因为多数运算是浮点的,可以保留精度.当然,在浮点运算后,你还是需要转换成整数或字输出的.
此外,还有像ab的plc,直接就可以定义成你需要的工程量,根本看不到ad,也不需要以上的转换编程,这是软件比较高级的.
10-08-16 22:15