WinccOA-面相对象工程开发2-Para与Gedi关联
Posted indus-eric
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WinccOA-面相对象工程开发2-Para与Gedi关联相关的知识,希望对你有一定的参考价值。
接上文
粘合剂
上篇文章 我们搭建了 泵站分区对象 的Para数据类型及Gedi组态,
现在我们要将数据与图形关联起来,关联的方法有两种
- 一种为组态(妥妥拽拽,点击配置)
- Crtl脚本(其实组态的底层也是Ctrl)
我们主要使用Ctrl脚本,这样便于对模板的管理
关联步骤
1)新建数据点
在数据类型DeliveryArea 下新建数据点 community01
2)对Gedi里的控件起名
如图示 红色字为控件属性名称
3)对panel的initialize事件进行编码
引用刚才数据点 编写Ctrl脚本
详细代码如下
main() { //阀门关联函数 dpConnect("setValvePos","System1:community01.Valve.switch"); //入口压力流量关联函数 dpConnect("setInPress","System1:community01.InPress.value"); dpConnect("setInTotal","System1:community01.InFlow.total"); dpConnect("setInNow","System1:community01.InFlow.now"); //出口 压力流量关联函数 dpConnect("setOutPress","System1:community01.OutPress.value"); dpConnect("setOutTotal","System1:community01.OutFlow.total"); dpConnect("setOutNow","System1:community01.OutFlow.now"); } //阀门数值变化调用函数 void setValvePos(string dp1, bool a) { if(a==FALSE){ setValue("switchLine","visible",TRUE); setValue("valve","color","STD_value_not_ok"); }else{ setValue("switchLine","visible",FALSE); setValue("valve","color","STD_man"); } } //入口压力数值变化调用函数 void setInPress(string dp1,float a) { setValue("inPress","text",a); } //入口累计流量数值变化调用函数 void setInTotal(string dp1,float a) { setValue("inTotal","text",a); } void setInNow(string dp1,float a)
{
setValue("inNow","text",a);
} void setOutPress(string dp1,float a)
{
setValue("outPress","text",a);
}
void setOutTotal(string dp1,float a)
{
setValue("outTotal","text",a);
} void setOutNow(string dp1,float a)
{
setValue("outNow","text",a);
}
注: 暂时忽略泵转速属性....
4) 对组态按钮事件编码
main(mapping event)
{
int rc, x;
rc=dpGet("System1:community01.Valve.switch", x);
dpSet("System1:community01.Valve.switch", !x);
}
5) 模拟数值变化&测试
未完 待续...
欢迎关注,及时获取更新
以上是关于WinccOA-面相对象工程开发2-Para与Gedi关联的主要内容,如果未能解决你的问题,请参考以下文章
游戏开发岗面经总结5(面相对象和面相过程的区别,多态,CG,设计模式,进程线程协程,动静态合批态,内存区域存放,指针和引用的区别,防止对象被拷贝,map和unordered_map)