안녕하세요?


이번 포스팅에서는 지난번 포스팅에서 다 포스팅을 하지 못했는 오후에 있었던 수업내용을 포스팅 하고자 합니다. 지금까지는 GX works2에서 래더를 짜서 PLC의 기능을 구현했다면, 이번에는 GT designer만 가지고서 기능을 구현하는 것에 대해서 공부를 하였습니다.



언제나 그렇듯이 이번에도 다른 작업과 섞이는 것을 막기 위해서 새로운 프로젝트를 생성하도록 합니다.



이번에도 파츠를 만들도록 합니다.



먼저 나오는 GD라는 것은 데이터의 영역이기는 한데, 가상으로 쓰이는 데이터 디바이스라는 의미가 됩니다.



그 다음 GB라는 것은 가상으로 쓰는 비트 디바이스로 일종의 디지털 스위치와 비슷한데, 실제로 존재하는 것은 아니라는 의미입니다.



먼저 D라고 해서 데이터 영역으로 해서 디바이스를 하나 만들어 주도록 합니다.



그리고 워드 파츠 이동이라는 것을 만들어서 방금 만들어 놓은 파츠가 움직이도록 설정을 하도록 합니다.



제대로 parts도 지정을 하도록 합니다.



지난번 포스팅에서 언급했다 시피, 여기서도 선을 그어서 준비를 하도록 합니다.



이제 버튼을 만들도록 합니다. 버튼에는 실제로 있는 메모리의 영역인 M0와 같은 접점을 쓰도록 합니다.



다른 버튼에는 M1이라는 접점을 만들어서 어떻게 가도록 합니다.



이제 위 스크린샷에 보이는 곳에서 빨간 동그라미가 쳐진 Script라는 곳에서 script를 더블클릭하도록 합니다.



스크립트라고 뜨는 창에서 Add를 위 스크린샷에 보이는 것과 같이 눌러서 추가를 하도록 합니다.



일단 이름과 나머지는 나두도록 하되, Trigger Device라고 하는 것을 누르도록 합니다.



Trigger Device라는 것은 어떤 디바이스의 값이 변경되면 이 스크립트가 작동할 것인가를 결정하는 것인데, 여기서는 M1이라고 지정을 함으로써, 버튼을 누르면 이 스크립트가 작동되도록 하는 것입니다.




이제 Edit Script라는 버튼을 눌러서 진짜로 스크립트를 만들도록 합니다.



먼저 언급해야 할 것은 CiMon에서 스크립트는 비주얼 베이직의 언어를 사용했는데, 여기 GT designer의 경우에는 C언어를 사용하는 점이라고 합니다.



그리고 여기서 중요한 것은 변수나 디바이스의 선언에서 특이한 형식을 위 스크린샷처럼 따른다는 것입니다. 이걸 일일히 외우기 어려우니, Input Navigation을 통해서 형식을 얼추 만추고, 다음에는 Ref...라는 버튼을 눌러서 상세한 숫자를 바꾸는 것으로 입력하면 됩니다.



그리고 if문과 같은 중요한 문구도 input navigator에서 제공해 주고 있는 것을 볼 수 있었습니다.



먼저 전진버튼입니다. 여기서는 위에서 만든 파츠가 앞으로 이동해야 하기 때문에, 위와 같이 타이핑을 합니다. 여기도 C언어이기 때문에 끝에 ; 를 붙여야 합니다.



그리고 마냥 계속헤서 앞으로 나가면 안되기 때문에, 한계치를 if문으로 지정하도록 합니다.



후진버튼도 스크립트를 따로 만들도록 합니다. 여기서는 0보다 큰 경우에만 계속 감소가 되도록 했습니다.



그런데 시뮬레이션을 돌려보니 제대로 움직이지 않았습니다. 분명히 GX works2의 시뮬레이션도 실행을 시켰고-비록 스크립트를 사용해서 GX works2의 래더가 한개도 없다고 해도, 시뮬레이터가 실행되고 있어야 GT designer의 시뮬레이터도 작동을 할 수 있는 것입니다.




알고 봤더니, D200이 아니라 GD200이라고 지정을 해야만 하는 것입니다.



이제서야 제대로 작동을 하는 것을 볼 수 있었습니다.



마지막으로 한가지 팁이라면, 위 스크린샷에 보이는 버튼을 누르면, C언어로 씌여진 스크립트에서 문법상으로 에러가 있는지를 체크해 줍니다.



위 스크립트는 월요일 수업의 마지막 과제를 하기 위해서 만든 것입니다. 원래는 4개의 스크립트에서 만들어야 하지만, 어떻게 복잡하기는 하지만, 1개의 스크립트에서 작성을 하는 데는 성공하였습니다.



마지막으로 GT designer만이 아니라 GX works2에서 나오는 디바이스 메모리얼 모니터를 봐서 체크를 할 수 있습니다. 다른 C언어 프로그램이과 다르게, 변수를 지정하기 위해서 M접점을 사용하였습니다. 실제로는 래더상에서 전혀 존재하지 않고, GT designer에서 아무 버튼이나 램프등에 걸쳐져 있지 않더라도 마치 프로그램에서 사용하는 변수처럼 활용할 수 있었습니다.


문제는 이런 가상의 M접점은 GT designer에서 전혀 나오지 않는데, 이런 M접점을 GX works2에서 나오는 디바이스 모니터에서 제대로 작동하고 있는지를 볼 수 있습니다.


 

마지막으로 GX works2에서 시뮬레이터를 실행 중일 때 어디서 저런 디바이스 버터 메모리얼 모니터를 열 수 있는지를 보여주면서 오늘의 포스팅을 마치고자 합니다. 처음 해보는 GT designer에서도 스크립트가 있다는 것도 신기했지만, 여기서 변수를 사용할 때는 M접점을 이용한다는 것은 중요한 내용으로 보입니다.

+ Recent posts

티스토리 툴바