Change Px Page Automatically when BooleanWritable value changed. - Engineer of NiagaraFramework

Tridium, NiagaraFramework, SCADA, HMI, PLC, Automation, SmartFAM etc.. About controls.
나이아가라 프레임워크 QnA : neverlikekami@gmail.com

2017년 9월 3일 일요일

Change Px Page Automatically when BooleanWritable value changed.

제목과 같게도 블리언밸류의 값이 바뀌었을 때 px File로 링크된 값을 바꾸는 방법에 대해 포스팅 한다. 

본래 내가 원한것은 블리언 밸류가 바뀌었을때 자동으로 보고있는 페이지가 변환되는 것 이었다. 

하지만 JAMES는 보고있는 페이지가 변하진 않지만.. 다음부터 해당 페이지에 접속하면 내가 설정한 페이지가 보이게끔... 사실 그다지 불필요한 방법을 알려주었다. 


대략적인 방법을 먼저 정리하고 세세한 방법을 다시 정리해 보기로 하자. 


전체적인 흐름정리 

1. 폴더를 생성하고 new View를 이용하여 새로운 뷰를 만들어준다. 
 (= Create Folder under config. and make newPx View using function "new View" on Folder.)

2. 프로그램 오브젝트에서는 해당 뷰의 주소를 받는다. 
 (= Define reference address "new View" maked before )

3. 내가 설정하고자하는 px페이지들을 선언해 둔다. 
 

4. 블리언값이 바뀌었을때 1번에서 기억해놓은 view는 3번에서 선언한 px로 연결을 바꾼다. 



디테일한 방법 정리

1. config 아래에 program 이라는 폴더를 생성함.
2. program 폴더에 new View를 이용하여 px페이지뷰를 생성함. "aa" 라고 생성함.


3. program 폴더에 Program Object를 생성함. 

4. program Object에 아래와같은 소스를 작성하고 필요한 객체들을 추가한다. 

  
  BOrd pxA = BOrd.make("file:^px/b.px");
  BOrd pxB = BOrd.make("file:^px/aa.px");
  
public void onExecute() throws Exception
{
  BPxView view = (BPxView)getComponent().getParent().get("aa");
  
  if(getDigitalInput().getValue()==true){
      view.setPxFile(pxA);
      System.out.println("pxa");
    }else{
      view.setPxFile(pxB);
      System.out.println("pxb");
    }
}




5. DigitalInput 이라는 BooleanStatus 슬롯을 추가한다.
Boolean Writable 포인트를 하나 만들어서 program Object의 digital Input 에 연결한다. 




6. 실행하면 program폴더의 aa 가 가르키는 px파일이 booleanWritable의 값에 따라서
바뀌는것을 볼 수 있다. 


7. 물론 이 기술은 쓸일이 없다. ㅠ_ㅠ....... 느낌만 익혀라.. 도움은 된다. 





댓글 없음:

댓글 쓰기

Post list