안녕하세요?


이번 포스팅에서는 지난주 금요일에 있었던 지열을 이용해서 건물의 냉,난방을 하는 시스템을 제어하는 것을 상정하고 CiMon scada에서 인터페이스를 디자인 하고, 어떻게 해서 보고서를 만들어 낼 수 있는지에 대해서 실습을 하였고, 그 내용을 포스팅 하고자 합니다.



언제나 그렇듯이 새 프로젝트를 만들도록 하는데, 제목은 지열 공조 시스템 모니터링이라고 합니다.



그리고 워드 스위치라는 아날로그 태그를 하나 만들도록 합니다.



그리고 이 워드스위치라는 태그의 상태에 따라서, 상태가 변하는 램프를 하나 만들어 주도록 합니다.



그리고 아날로그 스위치를 만들어서 상태를 변화시킬 수 있도록 합니다.,



그 다음으로는 아날로그 태그값 쓰기라는 것이 이 스위치/램프 선택에 있는데, 이걸 선택하도록 합니다. 그리고 중요한 것으로 set value라는 항목을 1이라고 선택하도록 하고, 



스위치/램프에서 완성된 모습니다. 이런 스위치를 1개 더 만들도록 합니다.



이번에는 램프를 만들도록 합니다.



이제 램프를 위해서 워드 스위치라는 것을 다시한번 클릭 하도록 합니다.



이번에는 누르면 누를 수록 워드스위치라는 태드의 값을 1씩 빼는 스위치를 만들도록 합니다.




CiMonD에서 일련의 디자인을 하는 데 성공했습니다.



CiMonX에서 제대로 작동하는 것 까지 확인을 하였습니다.



이제는 코멘트 테이블이라는 것에 대해서 들어가 볼 차례입니다. 일단 스위치/램프에서 직접입력으로 되어 있던 레이블설정에서 코맨트 테이블로 바꾸는 것으로 해야만 합니다.



이를 위해서 새로운 램프도 작성 하도록 합니다. 위 그림에서 나와 있는 아이콘 중에서 코맨트 테이블이라는 것이 있는데, 여기서 이걸 고르도록 합니다.



코맨트 테이블에서 새로운 코멘트 테이블인 워드 스위치라는 것을 만들어 주도록 합니다. 그리고 추가를 선택합니다.



위와 같은 스크린샷에 나와 있는 것처럼 번호0번의 코멘트를 설정 하도록 합니다.



위 스크린샷과 같이 나오는 것처럼 일련의 코맨트를 작성해 놓도록 합니다.



이제 위 스크린샷에 나와 있는 것처럼, 코맨트 테이블은 상태0일때 0번 테이블로 고정시키도록 합니다.



그리고 워드 램프로 설정을 해 주어서 아날로그 태그인 워드 스위치의 값이 바뀌는 것에 맞추어서 값이 변하도록 만들어 줍니다.



아차 실수를 했습니다. 상태에 따라서 그룹은 번호로 고정하고, 그 그룹안에서 몇번의 코맨트가 출현할 것인지를 지정해야 합니다.




일련의 시행착오 끝에, 위 스크린샷과 같은 형태로 완성을 시켰습니다. 코맨트 번호는 워드 스위치의 값에 대응되는 번호의 코맨트를 가지고 올 것으로 하는 것으로 했습니다.



CiMonX상에서 제대로 작동하는 것을 확인할 수 있었습니다.



일련의 태그를 이제 만들었습니다.



온도 스위치를 눌러서 온도를 제어하는 스크립트입니다. 일단 한번만 딸깍하고 누르면 위와 같은 스크립트가 실행이 되는데, 여기서 계속 스위치를 꾸욱하고 누르고 있으면 tempadd라는 스크립트가 실행이 되도록 했습니다.



위 스크립트는 온도 조절 버튼을 계속 누르고 있을 경우에, 실행이 되는 스크립트가 위에 나와 있는 이 스크립트입니다. 앞서 소개한 temp() 스크립트에서 stopscript("tempadd")라는 것이 있는 이유는, 혹시 모를 온도 조절 스위치에서 손을 떼었는데도 계속해서 온도가 내려가거나 올라가는 상황을 방지하기 위해서 입니다.



그리고 일련의 관계된 태그-온도와 관련된 태그를 아날로그 태그로 만드는 작업에 들어가도록 합니다.



그리고 계속해서 애를 먹으면서 스크립트를 제대로 실행 시키려고 했지만, 실행이 되지 않았는데, 그 이유인즉, 온도조절을 위한 스위치와 같은 경우에는 '푸시 버튼'스위치라고 해서 누르는 동안만 ON이 되는 스위치가 되어야 합니다. 그런 스위치를 만들기 위해서 '순간값쓰기'라는 것을 이용해서 누르는 동안만 디지털 태그가 1이 되도록 하고, 손을 떼면 0으로 돌아가는 것으로 만들어야 합니다.




신기한 것은, 명령식에서 down에서 태그값을 1이 되라고 쓰고, up에서 태그값을 0이 되라고 입력해도, 같은 결과가 나오지 않는다고 합니다. 왜 이런지는 모르겠습니다만, 일단 지금의 제 수준으로는 자세한 것은 모르지만, 그래도 Push button과 같은 스위치를 만들고 싶으면 순간값쓰기를 해서, 디지털 태그의 값이 바뀔 때 스크립트가 실행이 되도록 하면 된다는 것입니다.



그리고 아날로그 태그의 값이 소수점까지 표시하기 위해서는 Float라는 데이터 형태를 선택 해야만 합니다.



CiMonX에서 실행을 했을 때, 제대로 온도가 조절되는 것을 확인할 수 있었습니다.



이제 보고서를 생성하기 위한 작업에 들어가도록 해야 겠습니다. 일단 여기서 온도에 관련된 아날로그 태그에 모두 보고서용 데이터 생성이라는 것을 만들도록 합니다.



도구에 있던 이벤트 보고서를 가지고 와서, 보고서 이름을 지정하도록 하고, 파일로 저장을 선택하도록 합니다.



그리고 미리 만들어 두었는 액셀파일의 시작할 셀 번호를 지정하고, 여기다가 TimeStr(42)라고 지정을 하면, B3셀부터 아래로 내려가면서, 보고서에 기록이 된 시간을 표시하게 됩니다.



일련의 태그값도 기록이 되도록 지정을 하도록 합니다.



그리고 보고서가 작성이 되도록 보고서라는 디지털 태그를 작성하고, 태그 동작을 지정하도록 합니다.



이 순간값은 보고서가 출력되도록 하기 위한 것입니다. 스위치는 일단 순간값 쓰기로 지정을 했습니다.



그리고 출력을 위한 조건에서는 보고서==1 이라고 해서, 이 태그값이 1이 되는 순간 보고서가 출력이 되도록 합니다.



그리고 이번 보고서 출력을 2번째로 시도해서 알게 되었는데, 양식파일의 확장자와 보고서가 저장될 파일의 확장자가 같아야만 액셀파일로 출력이 되는 것입니다. 이걸 제가 몰라서 제법 헤메기는 했습니다.



이제서야 보고서가 출력되는 것을 확인할 수 있었습니다. 이것으로 지난주 있었던 수업의 내용을 다 정리하는 데 성공하였으며, 다음 포스팅 부터는 이번주의 수업 내용을 하나씩 올리도록 하겠습니다.

+ Recent posts

티스토리 툴바