Touch Screen/GOT2000

6. GT-Designer3 Script를 활용한 I/O Monitor

흑_두루미 2020. 11. 26. 00:43
반응형

요즘... 회사에서 스마트 팩토리, 3D Print 관련 Project를 검토중이다보니 바쁘네요...

 

날씨도 많이 쌀쌀해 졌는데 따숩게들 입고다니세요~

 

각설 하고 이번 시간에는 Script를 활용하여 여러장의 I/O Monitor Screen을 1장으로 줄여봅시다!

 

 지난시간 Project File을 열어줍시다.

 

없으시다면 다운 받아서 열어 주시면 되겠습니다.

 

GT-Designer3_ IO Screen.GTX
0.24MB

1) 먼저 File을 열면 지난번 작성한 I/O Monitor 화면에 램프 2개 빼고 다지우겠습니다.

 

2) Word Comment 선택후 화면에 그려줍니다.

   Device는 GOT 내부 어드레스 GD200을 입력해 줍니다.

   Comment Group에서 Device를 선택해주고 D215을 입력 해줍니다.

   Comment 에서 Indirect Device를 설정해 줍니다.

Comment 에서 Indirect Device 설정시 코멘트가 안보일경우가 있습니다.

아래 사진처럼 Preivew를 설정해 주면 코멘트가 보이게 되나, 설정 안해주셔도 무방합니다.

 

 

3) I/O 표시 부분의 Lamp와 Word Comment를 설정 해줍니다.

   Word Device에 GD201 입력 , Comment는 위와 마찬가지로 D215을 입력해 줍니다.

   Lamp에는 D210.b0 을 입력 해줍니다.   

 

4) I/O 표시 Lamp, Word Device 드래그 하여 우클릭 → Consecutive Copy

5) Copy 수량 및 Device 증가량 선택

   

   양쪽에 두개 생성해야 하기에 X에는 2, I/O는 0~f번까지 총 16개 이므로 Y는 16을 입력해줍니다.

   Interval은 카피 간격을 조정하는 부분 입니다. 실제로 3~4번 해본 결과 X:13 ,Y:0 을입력해주면 노란칸 안에 딱!

   여기서 Copy Direction을 사진과 같은 방향으로 설정해주셔야 합니다. 어드레스 증가 방향에 결정됩니다.

    Traget Device를 All로 선택해주고 Device 증가를 원하지 않는 D215은 0으로 설정해주고 나머지는 1로 설정합니다.

 

OK를 누르면 아래 사진처럼 복사가 되며 각 Lamp, Word Device를 선택해 보면, Device가 증가되어 복사 된게 보입니다.

 

6) 이제 화면 작성은 끝났습니다. 여러장으로 만들기 위한 Script를 진행해 보겠습니다.

    

    Screen창에서 Script 사용을 원하는 화면에 우클릭 후 Screen Script를 눌러줍니다.

 

7) Script 창이 활성되면 Add를 눌러 아래와 같이 설정해 줍니다.

 

    Script No : 저는 개인적으로 화면 번호와 맞춥니다.

    Script Name : 화면의 이름을 적어 줍니다.

    Trigger Setting을 눌러 Script 동작 설정을 해줍니다.

    Trigger Type : 해당 Bit가 ON일경우에만 Script 동장

    Trigger Device : Script 실행 Device

 

8) 확인을 해주면 210번화면 아래에 Script가 추가 됩니다. Script를 열어 Edit Script를 활성화 하여 Script를 작성

    하도록 하겠습니다.

 

9) 먼저 Word Comment에 들어갈 Script 입니다.

    아래와 같이 작성해 주시면 됩니다. 설명은 아래에서 하도록 하겠습니다.

 10) 이어서 Lamp에 들어갈 Script 입니다.

      보시다 시피 X, Y입력은 선두 어드레스만 입력 해주시면 되겠습니다.

      ex) 1번 카드 선두 어드레스가 X1000부터 시작이라면 X1000을 입력해주시고 그뒤는 이제

           X,Y의 결정은 해당 카드가 입력카드냐? 출력카드냐? 입출력 혼합 카드냐에 따라 달라집니다.

           30 Station을 가지고 있다면 아래 방법으로 쭉 입력해 주시면 됩니다.

           저는 일단 15 Station 사용 가정하에 입력했습니다.

11) 이제 Script를 사용하기 위해서 간단한 Program을 작성해야합니다. 

12) 이제 Script가 어떻게 돌아가는지 설명해 드리겠습니다.

 

Got에서 210번 화면에 진입하게 되면 기존에 설정해놓은 Base Screen D50에 210이라는 Data가 입력되어

D200에는 1이라는 Data가 입력되어 첫번째 Page부터 나타냅니다, M20 Script Trigger Bit가 On 되어 Script가 시작되며,

D210에 K2= Comment No, 즉 I/O Comment가 설정됩니다.

 

Script를 보시면

 

1번 Line에 [w:GD200]=[w:D200]+900; 을 입력해놨습니다.

해당 문구를 풀어서 설명하면 GD200에 D200의 값을 넣어라라는 의미입니다.

위의 Program에서 I/O Monitor 화면 초기 진입시 D200에 1이라는 Data를 써주기때문에

[w:D200]+900 이므로, GD200은 901이됩니다.

 

이제 GD200에 901이란 Data가 들어갔을때 어떤 의미인지 알아 보겠습니다.

 

Word Comment에서  Device에는 GD200 / Comment에 D210을 설정해 놨습니다.

 

즉, GD200에 901이라는 data가 입력되면 I/O Comment 901번 Comment를 표시해라 라는 뜻입니다

.

이번엔

3~34번 Line에 대해 얘기해 보겠습니다. 다들 똑똑하시니

 

[w:GD201]=[w:D200]*32-31;
[w:GD202]=[w:D200]*32-30;
[w:GD203]=[w:D200]*32-29;

 

세개만 풀어보겠습니다.

 

위와 같이 Comment를 입력하는 기능이긴 합니다. 근데 뒤에 *32-31, *32-30, *32-29..... 가 있는데

큰 의미는 없습니다. 간단한 사칙 연산입니다.

 

D200에 1이라는 값이 들어가면 1Page = 1Station 을 뜻하며 아래와 같은 수식이 됩니다.

 

[w:GD201]=1*32-31;   = [w:GD201]= 1
[w:GD202]=1*32-30;   = [w:GD202]= 2
[w:GD203]=1*32-29;   = [w:GD201]= 3

 

즉 GD201이 =1 이면 1번 Comment

    GD202이 =2 이면 2번 Comment

    GD203이 =3 이면 3번 Comment

 

근데 혹시 이런분 계실 수도 있을거같아 얘기합니다.

그냥 GD201에 1이 들어가게 하려면 아래와 같이 하면 되지 않냐 라고 하실수도 있는데

 

[w:GD201]=[w:D200]+0; 
[w:GD202]=[w:D200]+1; 
[w:GD203]=[w:D200]+2;

 

저는 1장의 화면으로 원하는 수량의 I/O 화면을 만들기 위해서 저런 수식을 썼답니다.

 

예를들어 D에 2라는 Data가 들어가 있으면 2번 Station의 Comment를 표시해 줘야하는데 위처럼 쓰면

엉뚱한 Comment가 출력 될겁니다.

 

[w:GD201]=2*32-31; = [w:GD201]=33;
[w:GD202]=2*32-30; = [w:GD201]=34;
[w:GD203]=2*32-29; = [w:GD201]=35;

 

 

마지막 Lamp 출력 부분 설명 드리겠습니다.

 

if([w:d200]==1){             // 만약에 D200이 1이라면
   [w:D210]=[w:X0000];    //  D210에 X0000을 넣어라 여기서 [w:X0000] 이라 표현 했기에 Word data(0~F)까지 입력

                                      그러면 D210.b0 에는 X0000 , D210.b1에는 X0001이 들어가게 됩니다.
   [w:D211]=[w:Y0010];}   // 여기도 위와 마찬가지로[w:Y0010] 이라 표현했기에

                                     D211.b0 에는 Y0010, D211.b1에는 Y0011.....이 들어가게 됩니다.

 

 

12. 시뮬레이션을 통해 동작 확인을 해보겠습니다.

 

 

 

반응형