개요
"화면 맵핑" 이다.
릴레이 하나하나를 상태와 기동/정지로 나누어 도면과 일치하게끔 맵핑하고 배치해야한다.
타고난 눈을 갖고있는 사람이 아니라면 매우 고통스러운 시간일 것 이다.
심지어 몇천개의 포인트들을 맵핑해놨는데 모든 포인트명을 변경해야하는 상황이 온다면... 대부분의 엔지니어는 좌절감을 느낄것이다.
<조명 오브젝트들> |
<조명 오브젝트 한개가 갖고있는 속성들> |
본론 및 목적
본문에서는 포인트명을 일괄로 변경해야할때. 특히나 까다로운 문자열들을 변경해야할 때 어떻게 해야하는지 알아본다.
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로 캡쳐해두었는데 본인의 실수로 다른 파일과 병합하며 지워졌다...
(사실.. 다시 만들기가 너무 귀찮아서..핑계대는중..)
"이러한 방법이 있다" 라는정도 알아두고 구체적인 상황에 부딛히면 그떄 해결하기로 한다.
댓글 없음:
댓글 쓰기