질문게시판 > PLC 통신 기초를 다질수 있는 책 추천 질문

TODAY878 TOTAL2,440,681
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | PLC 통신 기초를 다질수 있는 책 추천 질문

페이지 정보

작성자 master 작성일2018-12-31 13:03 조회8,819회 댓글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> 읽기 종류별 한번에 읽을 수 있는 최대 크기

 

등록된 메모리(태그)의 데이터 타입통신 드라이브에 맞는 읽기 종류비고
BOOLREAD (WORD) 
BOOL array2 Word 단위
예) test_bool[1] = 32 번째 데이터
(test_bool array 를 Bool 형식으로 64개 
이상 설정했다고 가정했을 때)
INT 
DINTDWORDREAD로 읽을 경우 2개의 WORD에 읽은 값 저장
REALFLOAT 
<표 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

 

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 0

조회수 8,819

등록된 댓글이 없습니다.

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은 질문게시판에서만 작성 가능합니다. 스태프 19-01-15 14884
공지 사이트 이용 안내댓글[28] master 17-10-29 32708
질문 atmega128 온도센서 질문입니다. 새글 으아어려워 03:35 24
답변 답변글 답변 : atmega128 온도센서 질문입니다. 새글 master 06:46 24
질문 (아두이노)qr리더기 gm65 관련 질문입니다. 새글 숨니 01:36 23
답변 답변글 답변 : (아두이노)qr리더기 gm65 관련 질문입니다. 새글 master 06:32 19
질문 flame sensor 질문입니다 새글 Tell 01:30 19
답변 답변글 답변 : flame sensor 질문입니다 새글 master 06:17 17
질문 서보모터 제어 질문댓글[3] 이미지새글첨부파일 NEOkANTsim 22-12-09 35
질문 dfplayer와 음성인식 모듈이 동시에 인식이 안되요댓글[3] 이미지새글첨부파일 tjqhd 22-12-09 23
질문 아두이노 스텝모터 값 제어(헤더파일 사용X) 새글첨부파일 산만 22-12-09 24
답변 답변글 답변 : 아두이노 스텝모터 값 제어(헤더파일 사용X) 새글 master 22-12-09 23
질문 초음파 카운트 새글 고구만 22-12-09 21
답변 답변글 답변 : 초음파 카운트 새글 master 22-12-09 21
질문 정전기로 인해 아두이노 핀이 죽어버립니다..댓글[1] 이미지새글 무야더싱 22-12-08 29
질문 매트랩 블루투스 무선 통신댓글[1] 이미지새글첨부파일 아두이노대학 22-12-08 21
질문 아두이노 else if Relay 관련 질문 새글 노토산스 22-12-08 22
답변 답변글 답변 : 아두이노 else if Relay 관련 질문댓글[1] 새글 master 22-12-08 23
질문 모터드라이버(L298N E6) 2개 동시사용.댓글[1] 이미지첨부파일 마고 22-12-08 34
질문 아두이노 l298n frequency sweep 관련 질문댓글[2] 이미지 sdwdjangwon 22-12-07 26
답변 답변글 답변 : 아두이노 l298n frequency sweep 관련 질문댓글[2] master 22-12-07 32
질문 stm32에서 코드 경과시간 측정하는 방법좀댓글[3] 라칸 22-12-07 25
질문 아두이노 코드 질문있습니다. 호2 22-12-07 35
답변 답변글 답변 : 아두이노 코드 질문있습니다. master 22-12-07 29
질문 아두이노와 초음파 센서로 모터 제어 코드 질문있습니다. blackbunn 22-12-07 36
답변 답변글 답변 : 아두이노와 초음파 센서로 모터 제어 코드 질문있습니다.댓글[1] master 22-12-07 40
질문 버튼 릴레이댓글[3] 아두이노배우기 22-12-07 29
질문 아두이노 초급자 과제 중인데 코드해석이 어렵습니다.. zhem 22-12-06 38
질문 시리얼 모니터 분리 안 되나요?댓글[4] 이미지 까만키위 22-12-06 39
질문 타이머 관련 질문입니다. 이미지첨부파일 adui 22-12-06 34
게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기