BASIC4MCU | 질문게시판 | PLC 통신 기초를 다질수 있는 책 추천 질문
페이지 정보
작성자 master 작성일2018-12-31 13:03 조회10,594회 댓글0건본문
안녕하세요 PLC 통신을 배우고자 하는 사람입니다.
제가 사용하는 PLC는 AB PLC입니다.
여기서 다를 기기와 통신을 하려고 하는데 용어도 처음 듣는거고 계통도 모르고 기초가 없으니 막막하고 제자리 걸음이네요..
그래서 PLC 통신에 관련한 책을 사서 정독해보려 합니다.
네이버에 검색해보니 너무 광범위한것 같은데
PLC 통신의 기초를 다질 수 있는 책을 추천해주시면 감사하겠습니다!
//
AB Control ROGIX 5000 Series 는 미국의 Rockwell Automation 사의 PLC이다.
참고) AB LOGIX 5000 Series의 CPU에 부착된 LADDER 단자로 시리얼 통신을 할 수 있다.
사용 가능한 통신 드라이브는 AB-SLC Serial 이다.
( 단 LADDER 프로그램에서 B, N, D 등의 메모리 영역을 만들어야 한다. )
1. 읽기 설정
<그림 1>은 AB LOGIX 5000 Series Ethernet 통신 드라이브를 사용하여 통신파일을 편집한 예이다.
<그림 1>AB LOGIX 5000 Series Ethernet 통신 드라이브의 통신파일 편집 예
<그림 1>에서 DEVICE 는 통신형식 ( TCP/IP : 고정 ), PLC의 IP 번지 ( 192.168.0.12 ), 서비스 번호 ( 44818 : 내정 ) 순으로 입력하고 프로토콜 옵션부에는 지정한 시간초과 발생 시 재연결 수( 기본 5회 마다 ), ID 읽기 실패 시 재시도 수( 기본 50 회 ), 없는 메모리 읽기 시도 횟수 ( 기본 20회 마다 ), 확장 베이스 사용 여부 ( 0 = 미사용, 1 = 사용 ), 확장 베이스 사용 시 Control Net Port 번호1, Control Net Port 번호2, Control Net Port 번호3, Control Net Port 번호4 순으로 입력한다.
주의) AB LOGIX 5000 Series Ethernet 통신 드라이브는 PLC와 재 연결(CONNECTION)이 안 되는 경우가 발생할 수 있는데 이런 경우 다음의 설정을 사용하여 문제를 해결할 수 있습니다. ( 통신선로 등에 문제가 있을 경우 )
- 선로 이중화를 사용으로 설정.
- 기본 DEVICE에 설정한 IP와 서비스 포트 등을 입력.
참고) 확장베이스 ( 이중화 등 일 경우) 사용 시의 Control Net Port 번호는 RSLinx 프로그램의 DDE/OPC Topic 설정 부분의 ‘Advanced Communication’ -> ‘Local or Remote Addressing’ -> Remote 부분의 마자막 4자리 숫자와 일치한다.
예) Remote Configure 부분이 AB-ETH-1\0.(192.168.0.23).1.0.2.1.1.0 이면 Control Net Port 번호는 2.1.1.0 을 입력하면된다.
AB LOGIX 5000 Series Ethernet 통신 드라이브의 읽기 작성 형식
AB LOGIX 5000 Series Ethernet 통신 드라이브의 읽기 형식은 다음과 같은 인자 순으로 작성한다.
1) Slot 번호 – PLC에 CPU 가 설치된 Slot 번호. ( 0 ~ 255, 기본 : 0 )
2) 메모리(태그이름) 종류 – 읽을 PLC의 메모리 종류와 배열위치. 기본 Slot 의 메모리 ( local:2:O.Ch1Data ) 또는 사용자가 PLC에 입력한 태그(TAG)이름 ( B3, N7 등 )
배열이 아닐 때는 메모리 이름만 입력.
1차원 배열은 [10] 와 같이 [] 내에 읽을 시작 1차원 배열 위치를 입력.
2차원 배열은 [10][20] 와 같이 [][] 내에 읽을 시작 2차원 배열 위치를 입력.
3차원 배열은 [10][20][30] 와 같이 [][][] 내에 읽을 시작 3차원 배열 위치를 입력.
3) 읽을 주소 – 1 = Bool 메모리, 0 = Word,, Dword, Ffloat, Bool array(배열) 등.
4) 통신 메모리 저장 위치 - 읽은 값이 저장될 시작 메모리 번지.
5) 읽는 크기 : 읽어올 메모리의 크기.
READ 읽기 명령은 최대 245 개 WORD, DWORD, FLOAT 읽기 명령은 최대 122 개 DWORD, FLOAT.
기본 메모리는 보통 1개의 데이터 만 읽을 수 있음. ( 단 DWORD, FLOAT 메모리를 READ 등으로 읽을 때는 2개 까지 읽을 수 있다 )
읽기 예)
READ, 0, B3[0], 0, 0, 10,
READ, 0, n7[0], 0, 100, 200,
FLOAT, 0, f8[50], 0, 0, 120,
DWORD, 0, D9[100],0, 0, 50,
FLOAT, 0, local:2:O.Ch0Data, 0, 150, 1,
FLOAT, 0, local:2:O.Ch1Data, 0, 151, 1,
DWORD, 0, local:3:I.Data, 0, 52, 1,
읽기 종류
한번에 읽을 수 있는 최대 크기
비고
READ
245
490 바이트
DWORD
122
488 바이트
FLOAT
<표 1> 읽기 종류별 한번에 읽을 수 있는 최대 크기
등록된 메모리(태그)의 데이터 타입 통신 드라이브에 맞는 읽기 종류 비고 BOOL READ (WORD) BOOL array 2 Word 단위
예) test_bool[1] = 32 번째 데이터
(test_bool array 를 Bool 형식으로 64개
이상 설정했다고 가정했을 때)INT DINT DWORD READ로 읽을 경우 2개의 WORD에 읽은 값 저장 REAL FLOAT <표 2> 많이 사용되는 데이터 타입의 알맞은 읽기 종류
<표 1>은 읽기 종류별 한 번에 읽을 수 있는 최대 크기이고 <표 2>는 많이 사용되는 데이터 타입의 읽기 종류를 표시한 것이다.
주의) PLC에 설정한 메모리(태그) 중에서 INT는 READ(WORD) 로 읽으면 DINT 는 DWORD, REAL 은 되고 저장된다.
AB_LOGIX_5K Series Ethernet 통신 드라이브는 <그림 1>에서 프로토콜 옵션부의
아이콘을 클릭하면 <그림 2>의 대화상자가 나타나는데 여기서도 읽기 스케쥴을 작성할 수 있다.
<그림 2> AB_LOGIX_5K Series Ethernet 통신 드라이버의 옵션 대화상자의 예
<그림 2>의 지정한 시간초과 발생 시 재연결 수( 기본 5회 마다 ), ID 읽기 실패 시 재시도 수를 ( 기본 50 회 ) , 없는 메모리 읽기 시도 횟수 ( 기본 20회 마다 ), 확장 베이스 사용 여부 ( 0 = 미사용, 1 = 사용 ), 확장 베이스 사용 시 Control Net Port 번호1, Control Net Port 번호2, Control Net Port 번호3, Control Net Port 번호4 등을 설정할 수 있다.
<그림 2>의
,
,
버턴과 리스트 박스를 이용하여 읽기 형식을 작성한다.
<그림 3> AB_LOGIX_5K Series Ethernet 드라이버의 통신 읽기 설정 추가/편집 대화상자의 예
<그림 3>은 <그림 2>의 대화상자에서 읽기 스케쥴을 추가 또는 편집할 때 나타나는 대화상자이다.
2. 출력 설정
AB Control LOGIX PLC에 출력 가능영역은 읽기 전용영역을 제외한 메모리 영역이다.
디지털 쓰기
디지털 출력 TAG 설정 시 필요한 설정 다섯 가지
1) PORT : AB LOGIX 5000 Series Ethernet 통신 드라이브를 설정한 PORT 번호. ( 0 ~ 255 )
2) STATION : PLC에 CPU 가 설치된 Slot 번호. ( 0 ~ 255, 기본 : 0 )
3) ADDRESS : 쓰고자 하는 출력번지.
상위 자리 ( 1 ~ 7 자리) : 사용안함,
하위 1자리 : 비트위치 16진수. ( 0 ~ F )
4) EXTRA1 : 출력할 PLC에 등록된 메모리(태그) 종류.
BOOL, INT, DINT, REAL 등의 메모리 종류 등에 디지털 출력을 할 수 있다. ( DINT, REAL 등도 실제 번지를 입력 )
입력 예) F8[10], AI_BUF[0][15], AI_123[1][2][0] 등
5) EXTRA2 : 비트위치.
0 = 0 ~ 15(F) 번 비트 디지털 출력,
3 = Bool 메모리 영역 출력, ( Bool array 는 DWORD 와 동일한 출력번지(ADDRESS : 0 ~ F, Extra2 : 0 ~ 1 로 설정, array 번지 bool_test[0], ... 형식, 각 32비트 메모리가 존재) )
1 또는 기타 숫자 = 16 ~ 31 비트 디지털 출력. ( DWORD ( DINT ), FLOAT (REAL ) 등의 하나의 번지가 32비트 일 경우만 사용 )
설정 예1)
PORT : 0 Station : 0, ADDRESS : 0003, EXTRA1 : B3[5], EXTRA2 : 빈칸으로 설정하고 디지털 출력을 하면 Slot No:0 번 AB Control LOGIX PLC의 B3 영역( B3 메모리를 BOOL 1차원 배열로 설정했다고 가정 ) [5]번 WORD ( 6 번째 WORD ) 3번 비트(4번째 비트)를 제어(ON/OFF)할 수 있다.
설정 예2)
PORT : 0 Station : 0, ADDRESS : 000F, EXTRA1 : B3[25], EXTRA2 : 빈칸으로 설정하고 디지털 출력을 하면 Slot No:0 번 AB Control LOGIX PLC의 B3 영역( B3 메모리를 BOOL 1차원 배열로 설정했다고 가정 ) [25]번 WORD F번 비트(16번째 비트)를 제어(ON/OFF)할 수 있다.
설정 예3)
PORT : 0 Station : 0, ADDRESS : 000A, EXTRA1 : N7[135], EXTRA2 : 빈칸으로 설정하고 디지털 출력을 하면 Slot No:0 번 AB Control LOGIX PLC의 N7 영역( N7 메모리를 INT 1차원 배열로 설정했다고 가정 ) [135]번 WORD A번 비트(11번째 비트)를 제어(ON/OFF)할 수 있다.
설정 예4)
PORT : 0 Station : 0, ADDRESS : 0005, EXTRA1 : D9[101], EXTRA2 : 0 으로 설정하고 디지털 출력을 하면 Slot No:0 번 AB Control LOGIX PLC의 D9 영역( D9 메모리를 DINT 1차원 배열로 설정했다고 가정 ) [101]번 DWORD 5번 비트(6번째 비트)를 제어(ON/OFF)할 수 있다.
설정 예4)
PORT : 0 Station : 0, ADDRESS : 0005, EXTRA1 : D9[101], EXTRA2 : 1 로 설정하고 디지털 출력을 하면 Slot No:0 번 AB Control LOGIX PLC의 D9 영역( D9 메모리를 DINT 1차원 배열로 설정했다고 가정 ) [101]번 DWORD 21번 비트(22번째 비트)를 제어(ON/OFF)할 수 있다.
설정 예5)
PORT : 0 Station : 0, ADDRESS : 0005, EXTRA1 : AI_BUF[0][12], EXTRA2 : 1 로 설정하고 디지털 출력을 하면 Slot No:0 번 AB Control LOGIX PLC의 AI_BUF 영역( A_BUF 메모리를 DINT 2차원 배열로 설정했다고 가정 ) [0][12]번 DWORD 21번 비트(22번째 비트)를 제어(ON/OFF)할 수 있다.
아날로그 쓰기
아날로그 출력 TAG 설정 시 필요한 설정 다섯 가지
1) PORT : AB LOGIX 5000 Series Ethernet 통신 드라이브를 설정한 PORT 번호. ( 0 ~ 255 )
2) STATION : PLC에 CPU 가 설치된 Slot 번호. ( 0 ~ 255, 기본 : 0 )
3) ADDRESS : 사용안함,
4) EXTRA1 : 출력할 PLC에 등록된 메모리(태그) 종류.
BOOL, INT, DINT, REAL 등의 메모리 종류 등에 아날로그 출력을 할 수 있다. ( 단 EXTRA2에 메모리 종류를 맞추어 주어야 출력가능 )
입력 예) F8[10], AI_BUF[0][15], AI_123[1][2][0] 등
5) EXTRA2 : 출력 메모리 종류.
1 – DWORD ( DINT ) 메모리 영역 출력,
2 – FLOAT ( REAL ) 메모리 영역 출력.
3 = Bool 메모리 영역 출력,
0 = WORD ( INT, WORD 등 )의 메모리 영역 출력.
설정 예1)
PORT : 0 Station : 0, ADDRESS : 0000, EXTRA1 : N7[1], EXTRA2 : 0 으로 설정하고 아날로그 출력을 하면 Slot No:0 번 AB Control LOGIX PLC의 N7 영역( N7 메모리를 INT 1차원 배열로 설정했다고 가정 ) [1]번지 값을 설정한 값으로 변경할 수 있다.
설정 예2)
PORT : 0 Station : 0, ADDRESS : 0000, EXTRA1 : D9[15], EXTRA2 : 1 으로 설정하고 아날로그 출력을 하면 Slot No:0 번 AB Control LOGIX PLC의 D9 영역( D9 메모리를 DINT 1차원 배열로 설정했다고 가정 ) [15]번지 값을 설정한 값으로 변경할 수 있다.
설정 예3)
PORT : 0 Station : 0, ADDRESS : 0000, EXTRA1 : F8[203], EXTRA2 : 2 으로 설정하고 아날로그 출력을 하면 Slot No:0 번 AB Control LOGIX PLC의 F8 영역( F8 메모리를 REAL 1차원 배열로 설정했다고 가정 ) [203]번지 값을 설정한 값으로 변경할 수 있다.
설정 예4)
PORT : 0 Station : 0, ADDRESS : 0000, EXTRA1 : local:2:O.Ch2Data, EXTRA2 : 2 으로 설정하고 아날로그 출력을 하면 Slot No:0 번 AB Control LOGIX PLC의 local:2:O.Ch2Data 영역( local:2:O.Ch2Data 영역은 REAL 메모리 영역 ) 값을 설정한 값으로 변경할 수 있다.
설정 예5)
PORT : 0 Station : 0, ADDRESS : 0000, EXTRA1 : AI_BUF[10][15], EXTRA2 : 2 으로 설정하고 아날로그 출력을 하면 Slot No:0 번 AB Control LOGIX PLC의 AI_BUF 영역( AI_BUF 메모리를 DINT 2차원 배열로 설정했다고 가정 ) [10] [15]번지 값을 설정한 값으로 변경할 수 있다.
3. AB Control LOGIX 5000 Series PLC로 Ethernet 통신을 위해 필요한 설정
AB Control LOGIX 5000 Series PLC로 Ethernet 통신을 위해서는 다음과 같은 요소들을 설정해야 한다.
기본 전원연결
<그림 4>의 전원부에 AC 100 ~ 240V를 연결한다.
<그림 4> AB Control LOGIX 5000 Series PLC에 Ethernet 통신모듈을 설치한 예
PLC의 IP 번지 설정
AB Control ROGIX 5000 Series PLC의 IP번지 설정을 위해서는 Rockwell Automation에서 개발한 RSLogix5000 Ladder 프로그램이 있어야 한다.
RSLogix5000 Ladder 프로그램을 실행하여 I/O 설정을 완료하고 DownLoad, UpLoad 등의 작업을 하고 PLC와 OnLine(연결)을 하면 <그림 5>와 같은 화면이 나타난다.
<그림 5>의 ‘I/O Configuration | [5] 1756-ENET/B enet’ 를 선택하면 <그림 6>의 Ethernet 모듈설정 대화상자가 나타난다.
<그림 5> RSLogix5000 Ladder 프로그램 화면의 예
<그림 6> RSLogix5000 Ladder 프로그램 화면의 예
<그림 6>에서 ‘Port Configuration’ 탭을 선택하면 <그림 7>의 IP Address 등을 설정하는 대화상자가 나타난다.
<그림 7>에서 IP Address, Subnet Mask 등을 설정한 후
버튼을 누르면 <그림 8>의 변경확인 대화상자가 나타난다.
<그림 8>에서
버튼을 선택하면 입력한 IP로 IP Address 가 변경된다.
<그림 7> RSLogix5000 Ladder 프로그램 화면의 예
<그림 8> RSLogix5000 Ladder 프로그램 화면의 예
PLC는 통신 종류가 여러가지가 있을텐데요?
프로그램 작성해서 주고 받으려면 이더넷보다는 시리얼통신 중 RS232가 편할겁니다.시리얼통신 경우에는USB-to-232 또는 USB-to-UART 모듈 2개를 준비하고Hercules.exe 등의 시리얼모니터링 프로그램을 다운받아서 설치하면 됩니다.한 문자 주고 받는 것부터 공부하세요프로그램으로 엑세서 해야 한다면 해당 언어의 시리얼 예제를 공부하면 되겠죠[PDF]ControlLogix 시스템 사용자 매뉴얼, 1756-UM001P ... - Literature Library
댓글 0
조회수 10,594등록된 댓글이 없습니다.