본문 바로가기
PLC 자동제어 학습/CiMon Scada 수업

CiMon Scada를 이용한 스위치/램프의 실습

by 인터넷떠돌이 2017. 11. 8.
반응형

안녕하세요?


이번 포스팅에서는 이제서야 지난주의 수업내용을 다 포스팅을 하는 데 성공하는데, 아무튼 간에 일단 CiMon이라고 아마 듣는 분도 얼마 없으실 이 프로그램을 가지고서 한번 실습까지 해본 내용을 포스팅 하고자 합니다.



일단 새로운 프로젝트를 생성하도록 해 보겠습니다.



이번 수업에서 정말 핵심이라고 할 수 있는 스위치/램프 라는 것이 있는 그림 메뉴에 있는 것을 알 수 있습니다.



먼저 레이블 설정이라는 탭으로 가도록 합니다. 여기서는 스위치/램프에서 글귀를 띄울 수 있는데, 상태0이라고 하면 디지털 태그에서 0이라는 기본값이라고 해야 할까요? 아무튼 이런 상태가 될때 이 스위치에 띄우는 것입니다.



글자의 색상과 크기를 조정 하도록 합니다.



기존의 버튼이나 사각형 박스와는 다른 버튼 스위치라고 해야 할까요? 이런 것이 하나 만들어 졌습니다.



디자인이 마음에 안 들어서 교체를 했습니다.



새 페이지를 생성해서, 여기서 패널이라고 해야 할까요? 작업중인 모습을 보여주는 화면을 제작 합니다.



그리고 맨 처음으로 만든 페이지에서는 컨트롤 패널을 만들어 보도록 합니다.



다음으로는 디지털 태그를 여러개 생성하도록 합니다. 여기서 중요한 것은, 램프에 불이 들어오게 할 태그와, 스위치의 태그를 별개라는 것입니다.



이제 수동이나 자동이냐를 결정하는 스위치를 하나 만드는데, 일단 스위치 설정에 갑니다. 여기서 비트 스위치를 누릅니다.



위 그림과 같은 창이 뜹니다. 여기서 생소핸 momentary라는 것이 있는데, 딱 한번 0에서 1로 값을 주고서 다시 0으로 돌아가는 스위치가 되는 것입니다.



토글이라는 것을 설정하도록 하고, 자동/수동을 결정하는 태그를 여기다가 지정 하도록 합니다.



설정을 마치자 마자, 스위치/램프 설정에 위 스크린샷에 보는 것과 같은 동작이 나오는 것을 볼 수 있습니다.



다음으로는 램프 설정이라고 하는 것이 있는데, 램프기능이라는 것을 설정하도록 합니다. 여기서 설정한 상태의 숫자에 따라서, 뒤에 있는 레이블 설정에서도 적을 수 있는 글의 내용도 나오게 됩니다.




여기서는 방금 자동/수동을 만드는 태그가 지정은 되었지만, 그에 따라서 여기 스위치의 상태나 이런 것을 설정하는 것은 지정이 아직은 안 되었습니다. 그래서 여기서는 스위치/램프 자체에 관계가 된 것을 가지고서 지정을 하는 것입니다.



이제는 스위치를 누르고 나서, 달라진 상태에서 뜰 글자를 지정하는 장면입니다.



CiMonX에서 실행시켜 보았을 때, 버튼을 눌렀을 때 그래픽상으로 변화가 나오는 것을 볼 수 있었습니다. 스위치 설정을 하는 것과는 별개로, 그래픽상의 변화는 따로 설정해야 합니다.



다음으로 이번 수업시간에서 가장 중요한 것인데, 특정 조건에서는 일부 버튼은 작동되지 않아야 할 필요가 있습니다. 이를 스크립트 작업으로 하자면, 너무 복잡한데, 여기 스위치/램프 설정에서 터치 동작 조건 사용을 하면 됩니다. 특정 한 태그, 즉 자동이냐 수동이냐 상태를 결정하는 태그값이 얼마일 때라고 아예 지정을 하면, 이런 상황에서만 이 스위치를 건드릴 수 있게 됩니다. 즉, 위에 동작 조건에 맞아야만 이 스위치를 건드릴 수 있게 되는 것입니다.



다음으로는 자동일 때에만 건드릴 수 있는 스위치를 설정하도록 합니다.



그리고 버튼을 만들기 위해서, 여기서는 태그값이 변경시에 태그 동작을 지정하도록 합니다.



그리고 스크립트를 실행할 수 있도록 합니다.



일련의 태그에 이러한 태그동작을 지정해 놓도록 합니다.



버튼의 on/off에 따라서 램프의 태그값을 settagval이라는 함수를 가지고서 설정을 하도록 합니다.



다음에는 제일 윗 쪽에 if로 자동인지 수동인지 관여하는 태그값에 대해서 지정하도록 하고, 여기서는 수동이 아니라 자동으로 설정될 경우 따로 지정된 스크립트를 스크립트 안에서 실행을 시키도록 합니다.



하지만 이대로만 해서는 안되어서, 이런 경우에는 if 문 안에다가 다시 if문을 두어서 수동일 경우 일일히 버튼의 태그값에 따른 램프의 태그값을 settagval로 바꾸는 것입니다. 그리고 나서 else라고 해서 그 밑에다가 if문을 두어서, 이번에는 자동으로 운전하는 스크립트가 정지도 될 수 있도록 stopscript 함수도 사용하도록 합니다.



다음으로는 while이라는 반복문을 이용해서, 자동으로 움직이는 운전에 대해서 스크립트 내용을 작성하도록 합니다.



다음에는 비트 스위치라는 것을 입력한 스위치에 명령 스위치라는 것을 입력 하도록 합니다.




다음으로는 명령식에다 각각의 태그값을 일일히 지정을 합니다. 이걸 하는 이유는 stopscript라고 자동으로 움직이는 스크립트를 정지해도, 태그의 값이 원래대로 돌아오는 것은 아니기 때문입니다.



다음으로는 수동이라고 하면, 혹시나 작동되고 있을 지도 모르는 while반복문을 정지하라는 것도 지정해야 합니다.



다음으로는 자동/수동에 관계가 된 태그에도 태그동작을 지정하도록 합니다.



그리고 스크립트가 실행이 되도록 만들어 줍니다.



스위치/램프 에서도 명령식을 지정, stopscrip가 되어서 자동에서 수동으로 전환이 될 때, 모든 태그의 값이 초기화가 되도록 합니다.



이렇게 일차적으로 패널을 만드는 데 성공했습니다.



다음으로는 문자열 태그를 지정하도록 합니다.



그리고 태그값이라는 것을 지정하도록 합니다. 여기서는 이 문자열 태그를 보여주는 것입니다.



AU1이라는 태그를 지정하도록 하고, 출력될 단어 조작할 수 있는 스크립트를 실행 할 수 있도록 합니다.



스크립트를 작성해 보았습니다.



그리고 초기값을 지정해야만 맨 처음에 ????로 뜨는 것을 방지할 수 있습니다.



그리고 여기서 한가지 중요한 사실인데, main이라고 스크립트의 이름을 지정해 놓으면, CiMonX를 실행시킬 때 딱 한번 실행이 된다고 합니다. 다른 버튼이나 이런데에 스크립트의 실행을 지정하지 않아도, main이라고 스크립트의 이름을 지정해 놓기만 해도 된다고 합니다.






위 스크린샷 2개처럼 상태의 항목수를 늘려놓으면, 레이블을 입력할 수 있는 상태수가 많아지고, 지정할 수 있는 태그도 많아지게 됩니다. 지금처럼 디지털 태그에서는 상관이 없을 지도 모르지만, 아날로그 태그를 가지고서 한다면, 그 때가서 상관이 있으리라 생각이 됩니다.



마지막으로 위 스크린샷에 보시면 | 를 태그이름에 지정한 것을 보실 수 있습니다. 여기서는 이게 or라는 의미를 가지게 됩니다. 즉 B1 | B2 | B3  라고 지정을 하면, 저 3개의 태그 중에 하나라도 ON이 되면 작동을 하라는 의미가 됩니다. 따로 스크립트를 짜지 않아도, 그림설정에서 이런 것이 가능 하다라고 합니다.


그리고 비주얼 베이직에 대해서 상당히 중요한 것인데, 비주얼 베이직은 대소문자 구분을 하지 않는다고 합니다. 그래서 이 대소문자 차이를 이용해서 변수나 이런 것을 차이를 둘 수는 없다고 합니다.



반응형