WinCC OA-面向對象工程開發2-Para與Gedi關聯


接上文

WinccOA-面相對象工程開發1-面相對象模型搭建

粘合劑

上篇文章 我們搭建了 泵站分區對象 的Para數據類型及Gedi組態,

現在我們要將數據與圖形關聯起來,關聯的方法有兩種

  • 一種為組態(妥妥拽拽,點擊配置)
  • Crtl腳本(其實組態的底層也是Ctrl)

我們主要使用Ctrl腳本,這樣便於對模板的管理

關聯步驟

1)新建數據點

newdata

在數據類型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) 模擬數值變化&測試

2020-05-13-11-02-32

未完 待續...


歡迎關注,及時獲取更新


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM