您现在所在的是:

DCS论坛

回帖:5个,阅读:5529 [上一页] [1] [下一页]
1083
domino
文章数:64
年度积分:50
历史总积分:1083
注册时间:2005/4/16
发站内信
发表于:2005/9/14 20:36:00
#0楼
1、浮点实例
//x=0.75
//y=5x3+log3.2x2-3.02.5+10.0
main()   //定义主函数名为main
{
float a[4],y;  //数组a共有4个单元,每个单元均定义为浮点型
//变量y定义为浮点型
a[0]=10.0;   //赋值数组a的第一个单元为10.0
a[1]=pow(3.0,2.5);  //计算3.02.5并赋值给数组a的第二个单元
a[2]=log(3.2);  //计算3.2的自然对数值并赋值给数组a的第三个单元
a[3]=5.0;     //赋值数组a的第四个单元为5.0
y=eval_poly(0.75,a,4);  //计算多项式并赋值给变量y
}
1083
domino
文章数:64
年度积分:50
历史总积分:1083
注册时间:2005/4/16
发站内信
发表于:2005/9/14 20:37:00
#1楼
2、函数和折线表实例
#F_X 1   //定义序号为1的一维折线表
{
0f,0.05f,0.1f,0.15f,0.2f,0.25f,0.3f,0.35f,0.4f,0.45f,0.5f,0.55f,0.6f,0.65f,0.7f,0.75f,0.8f
}
#F_XY 1
{
0f,0.05f,0.1f,0.15f,0.2f,0.25f,0.3f,0.35f,0.4f,0.45f,0.5f  //X轴向
0f,0.05f,0.1f,0.15f,0.2f,0.25f,0.3f,0.35f,0.4f,0.45f,0.5f  //Y轴向
}
main()
{
sfloat x1,x2;        //定义变量x1,x2为半浮点型
bool HAlart,LAlart;  //定义变量Halart,Lalart为布尔型
HAlart=hal(_TAG(“TI001”),0.9f,0.05f,0);  
//对位号TI001进行超高限报警,高限为90%
LAlart=lal(_TAG(“TI001”),0.1f,0.05f,0);  
//对位号TI001进行超低限报警,低限为10%  
x1=fxy(_TAG(“TI001”),1); //对位号TI001进行二维折线表插值计算
x1=vlm(x1,0.1,0.1,0);    //对变量x1进行速度限幅处理
x2=ded(x1,20,50,15);    //对变量x1进行纯滞后处理,纯滞后100秒
}
1083
domino
文章数:64
年度积分:50
历史总积分:1083
注册时间:2005/4/16
发站内信
发表于:2005/9/14 20:38:00
#2楼
3、DGAP模块实例
main()
{
sfloat dgap2err,dgap3err;  //定义变量为半浮点型
sfloat dgap2mv;
sfloat dgap3temp;    
dgap2err=_TAG(“dgap2sv”)-_TAG(“dgap2pv”);
//计算给定值与测量值的偏差并赋值给变量dgap2err  
_TAG(“dgap2out”)=dgap2(dgap2err,_TAG(“dgap2hys”),0);
//对偏差dgap2err进行二位式调节,输出阀位值给位号dgap2out
if(_TAG(“dgap2out”)>0.5f)
{
dgap2mv=1.0f;   //输出大于50%,阀位全开
}
else
{
dgap2mv=0;      //输出不大于50%,将阀全关
}
dgap2mv=ded(dgap2mv,5,10,0); //纯滞后处理,纯滞后5秒
_TAG(“dgap2pv”)=lag(dgap2mv,300,0);
//一阶滞后处理,时间常数为30秒  
dgap3err=_TAG(“dgap3sv”)-_TAG(“dgap3pv”);
//计算给定值与测量值的偏差,并赋值给dgap3err
_TAG(“dgap3out”)=dgap3(dgap3err,_TAG(“dgap3zone”),_TAG(“dgap3hys”),0);
//对偏差dgap3err进行三位式调节,输出阀位值给位号dgap3out
if(_TAG(“dgap3out”)>0.75f)
{
_TAG(“dgap3xxx”)=_TAG(“dgap3xxx”)+_TAG(“dgap3dx”)/2.0f
//输出大于75%
}
else if(_TAG(“dgap3out”)<0.25f)
{
_TAG(“dgap3xxx”)=_TAG(“dgap3xxx”)+_TAG(“dgap3dx”)/2.0f
//输出小于25%
}
if(_TAG(“dgap3xxx”)>1.0f)
{
_TAG(“dgap3xxx”)=1.0f; //进行高限限幅
}
if(_TAG(“dgap3xxx”)<0.0f)
{
_TAG(“dgap3xxx”)=0.0f; //进行低限限幅
}
dgap3temp=ded(_TAG(“dgap3xxx”),5,10,1);
//进行纯滞后处理,纯滞后5秒
_TAG(“dgap3pv”)=lag(dgap3temp,300,1);
//进行一阶滞后处理,时间常数为30秒
}
1083
domino
文章数:64
年度积分:50
历史总积分:1083
注册时间:2005/4/16
发站内信
发表于:2005/9/14 20:39:00
#3楼
打字好累啊~~~还有两例下次再贴了,希望对学习此DCS的人有帮助
904
xianfen
文章数:2
年度积分:50
历史总积分:904
注册时间:2004/12/29
发站内信
发表于:2013/7/16 23:06:53
#4楼
回复 #2楼 domino
谢谢,收下。
17528
ahljj
文章数:3386
年度积分:240
历史总积分:17528
注册时间:2002/3/23
发站内信
发表于:2013/11/28 10:44:41
#5楼
看看。。。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004