How to map lighting control at TextEditor in Niagara Framework at once. - Engineer of NiagaraFramework

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

2019년 4월 25일 목요일

How to map lighting control at TextEditor in Niagara Framework at once.

개요
NiagaraWorkbench 를 이용하여 조명제어 프로그램을 제작시 가장 번거로운 작업은
"화면 맵핑" 이다.

릴레이 하나하나를 상태와 기동/정지로 나누어 도면과 일치하게끔 맵핑하고 배치해야한다.
타고난 눈을 갖고있는 사람이 아니라면 매우 고통스러운 시간일 것 이다.

심지어 몇천개의 포인트들을 맵핑해놨는데 모든 포인트명을 변경해야하는 상황이 온다면... 대부분의 엔지니어는 좌절감을 느낄것이다.


    <조명 오브젝트들>

    <조명 오브젝트 한개가 갖고있는 속성들>


    본론 및 목적 


    일일이 하나의 조명을 선택하여 네다섯가지의 프로퍼티스를 수정하는 작업은 상상만해도 끔찍하다. (해본사람은 더 잘알겠지만... 안해봐도 알았으면 한다..)

    본문에서는 포인트명을 일괄로 변경해야할때. 특히나 까다로운 문자열들을 변경해야할 때 어떻게 해야하는지 알아본다.

    NiagaraWorkbench는 UI부분을 PX라는 파일을 이용하여 파싱하고 표현해준다.
    위에서 보고있는 화면들은 PX 파일을 PX Editor(WYSIWYG EDITOR)로 수정하는 화면이다.
    PX파일은 Presentation XML파일로 notepad로 열어보면 XML형식의 파일임을 확인할 수 있다.

    <Presentation XML  : PX file>

    목적 : 문자열 변경 

    Drivers/ModbusTcpNetwork/Light1/1_01_ -> Drivers/ModbusTcpNetwork/Light1/DO/R01_01
    Drivers/ModbusTcpNetwork/Light1/1_02_ -> Drivers/ModbusTcpNetwork/Light1/DO/R01_01
                                                             .
                                                             .
                                                             .
    Drivers/ModbusTcpNetwork/Light3/1_02_ -> Drivers/ModbusTcpNetwork/Light1/DO/R01_01
                                                             .
    Drivers/ModbusTcpNetwork/Light5/63_04_ -> Drivers/ModbusTcpNetwork/Light5/DO/R63_04



    1. 숫자로 시작하는 포인트명 앞에 R을 붙인다.
    2. R1~R9번 포인트는 R01~R09로 바꾸어준다.
    3. 포인트의 맨 마지막 언더바(_)를 지운다
    4. Light숫자 폴더뒤에 DO 폴더를 추가한다.

    위의 1234번을 적절히 수행하기위해서는 "정규표현식" 을 알아야하며
    정규표현식을 지원하는 에디터를 사용해야한다.


    정규표현식이란 (What is Regular Expression)

    특정한 규칙을 가진 문자열의 집합을 표현할 수 있는 방법.
    대부분의 언어에서 지원하고 있으며 문자열의 특정한 "패턴"을 표현하는 방법.
    구체적인 방법은 위키를 참조하자.

    간단히 설명하자면 R1_01_ 에서 R66_04_ 를 모두 찾으려면 아래와같이 표현할 수 있다.

    찾고자 하는 구문    /     정규표현식
    R1_01_~ R9_04_    =>    R[1-9]_[0-9][0-9]_
    R01_01_~R63_04_  =>    R[0-9][0-9]_[0-9][0-9]_


    안타깝게 NiagaraFramework에서 찾아고치기에서는 정규표현식을 지원하지 않는다.
    그래서 본문에서 사용할 툴은  Acroedit이다.


    Acroedit를 사용

    윈도우용 프리웨어 텍스트 편집기.
    EditPlus, UltraEdit, Notepad+ 등 많은 에디터들과 유사하지만 개인적으로 프리웨어임에도 상용 프로그램들과 견주어 꿀리지않는 강력함을 자랑한다. -개발자분께 항상 감사한다

    아크로 에디트의 Macro기능과 스크립트(델파이) 기능을 이용하여 원하는 이름으로 바꿀 수 있는 메크로를 제작하고 실행하면 몇일이 걸려야하는 노가다를 몇시간만에 해결할 수 있다.

    이는 에러율을 줄일뿐 아니라 생산성에도 큰 도움이 된다.
    노가다로 수정하면 또다시 같은일이 발생해도 계속 노가다를 해야하지만
    조금 수고스럽더라도 매크로 기능을 익혀두면 평생 손발이 편할 수 있다.

    <정규표현식과 아크로에디터를 이용하여 소스를 변경 후 확인중>

    매크로 돌리는 화면을 움직이는 GIF로 캡쳐해두었는데 본인의 실수로 다른 파일과 병합하며 지워졌다...
    (사실.. 다시 만들기가 너무 귀찮아서..핑계대는중..)
    "이러한 방법이 있다" 라는정도 알아두고 구체적인 상황에 부딛히면 그떄 해결하기로 한다.




    댓글 없음:

    댓글 쓰기

    Post list