AB-PLC5 통신 드라이버

 

AB PLC5 는 미국의 Rockwell Automation 사의 PLC이다.

 

참고) Serial AB-SLC 시리즈 통신 드라이버는 DLL-AB-SLC’로 하고 나머지 설정은 동일하다.

 

 

1. 읽기 설정

<그림 1>은 AB PLC5의 Serial 통신에 대한 통신파일 편집 예이다.

 

<그림 1> AB PLC5 통신 드라이버의 통신설정 예

 

AB-PLC5 PLC의 통신속도 및 PARITY, DATA, STOP, 등은 PLC 설정에 따라 달라지고 내부 메모리의 종류는 B3, N7, N8, N9, N10, N11.... 등의 종류가 있다.

<그림 1>은 AB 사에서 제작한 PLC5 시리즈를 사용하여 통신파일을 구성한 예이다.

여기서 DEVICE 형식은 AB-PLC의 설정에 따라 달라지고  통신 속도 설정은 AB-PLC의 ladder에서 변경할 수 있다.

AB-PLC의 설정법에 대한 자세한 사용방법은 AB-PLC 사용 설명서를 참고하여 설정한다.

 

AB-PLC5 READ 작성 형식

AB-PLC5의 통신 프로토콜의 READ 형식은 다음과 같은 인자 순으로 사용한다.

1) STATION - 여러 대의 PLC를 연결해서 통신할 때 사용한다. STATION의 설정은 PLC LADDER 에서 설정한다.

2) 읽는 종류 - 읽고자 하는 메모리 영역 종류 (B7, N7, N8, N9, N17 ..등)

3) 읽을 주소 - 읽고자 하는 메모리 영역의 시작 주소.

4) 통신 메모리 - 저장 위치 - 읽은 값이 저장될 ScanBuf의 위치를 말한다.

5) 읽는 크기 - 읽어올 워드 수를 말한다. (이 크기는 PLC Ladder에서 설정한 영역의 크기보다 크면 통신이 되지 않으므로 주의한다.)

 

읽기 예)

READ, 0, N7,   0,  0,  2,

READ, 0, B3,   0,  2,  2,

READ, 0, N11,  0,  4,  2,

READ, 0, N10,  0,  6,  2,

READ, 0, N9,   0,  8, 2,

READ, 0, N8,   0,  10,  2,

READ, 0, N17,  0,  12,  2,

 

 

2. 출력 설정

출력은 SCAN File과 상관없이 AB-PLC5 의 메모리 영역에 직접 쓴다.

 

AB-PLC5 디지털 출력 설정법

TAG 설정 시 필요한 설정 5 가지

1) PORT : PLC에 연결된 PORT 번호

2) STATION : PLC 의 STATION 번호.

3) ADDRESS : 메모리 위치. (예 : 001A 번지는 1번째 워드의 11번째 비트값을 ON/OFF)

4) EXTRA 1 : 메모리 종류. (B3, N7 등)

5) EXTRA 2 : 사용안함

 

설정 예)

PORT:0   STATION:1   ADDRESS:0003  EXTRA1:N7 라고 설정하면 PLC의 Station No:1의 N7 영역의 0번째 WORD 3번 비트를 제어(ON/OFF)하게 된다

 

 

AB-PLC5 아날로그 출력 설정법

아날로그 출력 TAG 설정 시 필요한 네 가지

1) PORT : PLC에 연결된 PORT 번호.

2) STATION : PLC 의 STATION 번호.

3) ADDRESS : 영역의 메모리 위치. (예 : 0010 번지는 10번째 워드값)

4) EXTRA 1 : N7, N10 등의 메모리 영역.

5) EXTRA 2 : 멀티 아날로그 쓰기 설정

1 = 멀티 쓰기 값 저장, ( Extar1 영역은 상관안함 )

2 = 현재 저장된 값으로 멀티 쓰기 값 쓰기, ( 현재 설정한 번지부터 저장된 개수 만큼 연속 쓰기 )

3 = 멀티 쓰기 값으로 저장된 모든 내용을 삭제, ( Extar1 영역은 상관안함 )

기타 값( 0 또는 3보다 클 때 ) = 일반( 하나의 ) 아날로그 값 쓰기

 

설정 예)

PORT:0   STATION:1   ADDRESS:0015   EXTRA1:N10 이라고 설정하면 PLC의 Station No:1 의 N10 영역의 15번째 WORD의 값을 변경할 수 있다.

 

 

멀티 워드 쓰기 설정을 위한 스크립트 작성 예)

$AO_0000.Extra2 = 3;                                            // 이전에 저장된 멀티 쓰기 값 삭제

@SetTagValue("AO_0000", 0);

 

$AO_0000.Extra2 = 1;                                            // 멀티 쓰기 값 저장으로 설정

for(i = 0; i < 25; i = i + 1) {

   @sprintf($AO_0000.Extra1, "%03d", i);               // Extra1 에 임의의 값을 넣어서 동일한 데이터를 무시하지 않도록 설정

   @SetTagValue("AO_0000", 1000);                      // 실제 출력 값 저장, 여기서는 1000 으로 임의 저장

}

@sprintf($AO_0000.Extra1, "N7");              // N7 메모리 지정, F8, N9 등으로 설정해도 됨

$AO_0000.Extra2 = 2;                                            // 멀티 값 쓰기 지정

@SetTagValue("AO_0000", 1);                               // 값 쓰기, 25개 값을 지정한 번지부터 출력