안녕하세요?


지난번 포스팅에서 화요일에 있었던 LS산전 PLC를 CiMon Scada와 연계하기 위해서 485 통신포트를 이용해서 USB와 연결하는 것까지 포스팅을 하였습니다. 이제는 소프트웨어 작업이라고 해야 할까요? 남아 있는 작업에 대해서 포스팅을 마저 하고자 합니다.



언제나 그렇듯이 새로운 프로젝트를 만들어서 작업을 하도록 합니다.



통신을 위해서 당연 I/O 디바이스 설정에 들어가서 새 디바이스를 누르도록 합니다.



디아비스 이름은 임의로 지정을 해도 되지만, LS산전의 XBM-DR16S는 위 스크린샷에서 나와 있는 것처럼 XGK, XGB PLC Serial을 선택하도록 합니다.



다음으로는 위 스크린샷과 같은 화면이 뜨는 것을 볼 수 있습니다. 우선 위 스크린샷에서 나와 있는 통신포트를 눌러서 보도록 합니다.



일단 통신포트인데, 이건 제어판의 장치관리자에 가서, 어떤 COM포트를 사용하는 지를 살펴보고 언제든지 변경하면 됩니다. 나머지는 그대로 두도록 합니다.



스테이션 추가라는 메뉴를 누르면 나오는 화면입니다. 여기서는 ST1이라고 이름을 지정하도록 하고, 나머지는 위 스크린샷에 나와 있는 것처럼 지정을 하도록 합니다.



마지막으로 위 스크린샷과 같이 스테이션이 나오는 것을 볼 수 있었습니다.



그리고 여기서 ,CiMon에서 사용할 태그를 만드는데, 여기서는 I/O 다바이스에서는 위에서 지정한 디바이스 이름과 스테이션의 이름을 각각 디바이스이름.스테이션 이름 이라고 지정을 하는 것입니다. 그리고 여기서 I/O 어드레스에서는 지난번 다른 컴퓨터의 CiMonX를 원격으로 조종하는 경우에는 상대방 컴퓨터에 있는 컴퓨터의 태그를 입력했습니다. 그런데 이번에는 PLC 래더 프로그램에 있는 메모리 영역의 접점인 M1을 입력하도록 합니다.



다음은 XG5000에서 만들어낸 래더 프로그램의 모습입니다. 여기서는 실질적인 스위치인 P1, P0를 통해서 P20이라는 출력을 ON시키는 래더 프로그램입니다.



이번에는 M0라는 태그를 만들어서 래더 프로그램에 있는 m0접점을 ON/OFF시킬 수 있는 태그를 작성하는 장면입니다.




다음은 버튼역할을 할 사각형하나 만들어 놓고 나서, 건드리면 m0태그를 ON시키는 것을 지정합니다.



다음은 직접 P20을 건드릴 수 있는 실태그도 하나 작성하도록 합니다.



정확히는 P20을 반영해서 램프역할을 하는 원의 색상을 바꾸는데 이 P20이라는 실태그를 이용해서 색상을 바꾸고자 합니다. 즉 PLC에서 신호를 받아서 CIMonX의 화면에 변화를 주는 것입니다.



먼저 CiMonD상에서 디자인을 완료한 모습입니다. 여기서는 메모리상의 M1 접점등을 건드려서 제대로 작동하는 것을 확인할 수 있었습니다. 다만 미쯔비시 PLC와는 다르게, LS산전의 PLC는 하드웨어의 구조적인 한계로 인해서 P1과 같이 실제로 존재하는 입력 접점을 CiMon에서 건드릴 수는 없었습니다.



이번에는 M1이라는 메모리상의 태그를 CiMonX상에서 건드릴 경우 PLC가 작동하도록 만들도록 합니다.



그리고 PLC 래더의 프로그램은 다음과 같이 작성을 하도록 합니다. 여기서는 오프라인상에서 건드릴 수 있는 P접점은 없고, 오로지 메모리 상에서 연결이 되는 접점만이 있습니다. 여기서도 제대로 작동하는 것을 확인할 수 있었습니다.




그럼 여기서는 한가지 실험을 위해서 PLC에 전혀 래더를 프로그램 하지 않고서 CiMonX가 PLC를 제어할 수 있는지를 실험해 보고자 합니다.



스위치 역할을 하는 버튼은 누르면 p20접점을 1로 만들어라=ON시켜라는 명령식만을 주었습니다.



다른 버튼에는 반대로 누르면 P20이라는 것을 끄라는 버튼을 만들었습니다. 결과만을 만하자면, 여기서는 제대로 작동하는 것을 확인할 수 있었습니다. 즉, PLC안에는 아무런 프로그램이 깔리지 않더라도 외부에서 연결되어 있는 CiMon상에서 결과만 던져 주면, 알아서 작동한다는 것을 알 수 있었습니다.



래더를 짜는 것이 잘못되기는 했는데, 일단 시도는 인터록회로를 만들고자 했습니다.



CiMonD에서 인터록 회로의 제어용 판넬을 디자인 합니다.




추가적인 태그를 더 만들어 주도록 합니다. 여기서 하나 알 수 있었던 것이 실질적인 실 태그를 상당히 많이 필요하다는 것입니다.



제 경우에는 일단 CiMonX상에서 제어가 가능하도록 인터록 회로를 위 스크린샷과 같이 변화를 주었습니다. 그러나 정답은 따로 있었습니다.



위 스크린샷에 나와 있는 것처럼, 메모리상에서 처리할 수 있는 가상의 M접점을 만들어서 추가를 시켜 주는 것으로 마무리가 가능하다고 합니다. 이게 왜 중요하냐 하면, 여전히 현장에서는 작동에 관여하는 버튼이 중요한데, 이 버튼들의 기능은 그대로 살리면서, CiMonX가 작동을 시킬 수 있도록 만들기 위해서 이러한 작업이 필요합니다.



다음은 타이머를 다루기 위해서 TON 이라는 명령어를 쓰면 됩니다. 여기서 중요한 것은 D0001이라는 것이 있는데, 바로 PLC상에서 변수를 지정하는 것입니다. 당연 비주얼 베이직과는 다르게, PLC는 변수의 이름을 D로 시작하는 숫자로 지정해야 합니다.


디바이스 = P0000

메모리   = M0000

데이터   = D0000


이런 규칙이 있으며, 디바이스와 메모리는 비트단위로 움직이지만, 데이터의 경우에는 16비트=1워드의 단위로 저장이 된다고 합니다. 여기서 이 변수를 왜 지정했냐 하면, 타이머의 시간을 숫자-미쯔비시PLC프로그램인 GX works에서는 k를 붙여서 10진수라고 표시를 해야 했지만, 여기서는 그냥 숫자만 입력해도 됩니다. 하지만 이래서는 나중에 일일히 PLC에 연결해서 시간을 바꾸어야 하는 불편함이 있습니다.



먼저 메모리 영역의 M접점을 추가해서 CiMonX상에서 가상으로 신호를 보내주는 것만으로 제어가 가능하도록 래더를 설계하도록 합니다.



다음은 당연 출력과 메모리영역의 접점을 건드릴 수 있는 태그를 만들 수 있는 것처럼, PLC의 변수인 데이터 영역과 상호작용이라고 해야 할까요? 이걸 CiMon상에서 반영하고, CiMonX에서 값을 입력할 수 있도록 해주는 변수를 만들어 줄 수 있습니다. 당연 I/O 어드레스는 d1이라고 변수의 이름입니다.



중요한 것은 이건 아날로그 태그로 지정을 하도록 하고, 최대값을 일단은 지정하도록 합니다. 대체적인 설정은 위 스크린샷에 나와 있는 것처럼 설정을 했습니다.



그리고 태그값입력에서 이렇게 D1을 입력하도록 하서, 타이머의 값을 CiMonX상에서 지정을 할 수 있도록 해 줍니다. 이렇게 하면 PLC를 일일히 뜯어 수정하지 않아도 됩니다.




CiMonX상에서 제대로 나오는 것을 확인할 수 있었습니다. 일단 여기서 LS산전의 PLC인 XG5000에서는 1초 단위로 나오기 때문에 50이라고 입력하면 50초 후에 타이머가 켜진다는 것을 의미합니다.


그리고 생각해보면 당연하다면 당연하게도 타이머의 값을 나타낼 수 있는 태그도 작성할 수 있습니다. 위 스크린샷에 나와 있는 것은 타이머T1에 의해서 ON/OFF가 되는 A나B접점이 아니라, 순수하게 타이머 T1의 값을 표시하기 위한 태그입니다.



그리고 CiMonD상에서 태그값 보여주기에서 태그이름으로 지정해서, 타이머에 실제로 얼마나 시간이 흐르는 것인지 알아볼 수 있도록 해줍니다. 이런 작업을 하는 이유는, 몇 십초면 당장 스톱와치로 측정이나 할수 있지, 몇 시간이나 되면 일일히 확인하는 것도 큰일이기 때문입니다.



그리고 CiMonX에서 설정한 시간 대비 얼마나 타이머에 시간이 흐르는 지를 보여줄 수 있습니다. 여기서는 57이라고 된 곳이 타이머 T1의 시간이 차오르는 것을 보여주고 있는 것입니다.



그리고 가끔씩은 현장 사용자의 편의를 위해서 CiMon상에서 D로 시작하는 변수의 값을 변경해 주는 것이 가능하다고 합니다. 특이하게도 고급설정에서 Scale이라는 항목에 체크표시를 해 주고, 여기서 Scale에 10배 증가 시키고 싶으면 0.1이라고 입력을 해 주어야 한다고 합니다. 왜 이러는 지는 아직은 모르겠습니다만, 현재로서는 이렇게 자릿수 하나 변경시키는 것만으로 충분할 것으로 생각이 됩니다.



그래서 여기서 10이라는 값을 입력하도록 하고서, 다음의 결과를 지켜 보도록 했습니다.



실제로 적용을 해보니, 입력하기는 10이라고 했지만, 실제로 적용되기는 100으로 적용되는 것을 확인할 수 있었습니다.



이번에는 반대로 표시가 되는 아날로그 태그에서 이렇게 Scale에 0.1이라는 것을 만들어서 실제보다 자릿수가 줄어들도록 보이게 하는 것입니다.



여기서 제대로 나오는 것을 볼 수 있었습니다. 아무래도 scale이라는 것은 실제 값의 크기대비 보여지는 값이 어느정도 스케일로 보여질 것이냐고 하는 것을 지정할 수도 있어 보입니다. 이번 실습으로 이제까지 했던 CiMon이 어디에 사용되는 것이며, 이게 어떤 연관이 있는지를 알 수 있었습니다. 그리고 PLC에서 신호를 받아서 CiMonX의 화면에 표시하는 방법까지 실습할 수 있었습니다.

+ Recent posts

티스토리 툴바