Download presentation
Presentation is loading. Please wait.
1
PLC의 이해와 활용
2
생산실적부분 POP DATABASE ERP DATABASE ERP DATABASE 생산실적 수집 개념도 기준정보 작업지시정보
생산실적수집(서버) POP 서버 Ethernet(TCP/IP) Networking 생산실시간 모니터링 실적수집 데이터 신호 ERP DATABASE 작업완료 처리 시점 생산실적정보 비가동정보 작업자 화면(현장) 실적수집
3
PLC에서 직접 Data를 받아내는 안 현장단말기 또는 컨트롤 서버로 연결 Ether-Net (TCP/ IP)
Neteye 1208X ETOS-200 Serial (RS-232C)
4
PLC 통신프로그램 개발
5
■ 업체 처리사항 ■ 개발자 처리사항 PLC에서 원하는 데이터의 존재유무를 파악 하여 자료 작성
PLC와 PC간의 데이터 통신 TEST PLC와 PC간의 통신 TEST 프로그램 개발 통신PC와 서버간의 TCP/IP TEST 프로그램 개발 업체 요청자료의 메모리번지와 자릿수를 받아 기준정보에 처리 PLC 통신 프로그램 개발 통신PC와 서버간의 TCP/IP 통신프로그램 개발 PLC 모니터링 개발
6
PLC 통신 프로그램 POP 서버 TCP/IP 통신프로그램 PLC 서버(UNO PC) PLC 모니터링 DB PLC DATA 저장
7
R+ R- T+ T- SDA(+) SDB(-) RDA(+) RDB(-)
PLC 설정 -. PLC와 RS232/485 컨버터 연결 -. PLC 통신카드스위치 설정 RS232/485 컨버터 PLC 01 02 03 04 05 06 07 08 09 10 11 12 X10 X1 MODE 5 R+ R- T+ T- SDA(+) SDB(-) RDA(+) RDB(-) RS232/485 컨버터
8
모니터링 화면에 Winsock통신 부분 추가
uno PC : PLC통신프로그램 POP서버와 Winsock통신을 위한 Winsock연결 호출 1- 1. POP서버와 tcp포트는 동일하게 설정 (6000) 2 .PLC와 COM통신으로 PLC 메모리값 Read 2-1. COM포트연결 "19200,n,8,1“ 설정으로 연결 2-2 COM포트가 연결되면 PLC명령어 전송 명령어헤드 + 메모리번지 + 데이터 자릿수 (00FFBR0 + M ) 2-3 포트에 데이터가 들어오면 OnComm 이벤트 발생 2-4 들어온 데이터가 정확한 값인지 확인 선두문자 1자리()를 Hex값으로 변경하여 "15h“이면 에러 (00FF06) 선두문자 1자리()를 Hex값으로 변경하여 “02h“이면 정상 (00FF1) 3. 메모리 값을 POP서버로 Winsock통신으로 전송 3-1. 정상적인 데이터의 6번째 자리부터 데이터 자릿수만큼 잘라 전송 4. Log파일로 저장 POP서버 : Winsock통신프로그램 1 . Winsock을 Listen상태로 연결 1-1. tcp포트는 PLC통신프로그램과 동일 (6000) Winsock포트에 데이터 들어오면 DataArrival이벤트 발생 2-1. 모니터링PC로 데이터 전송 ( 전송방법은 plc통신프로그램과 winsock통신프로그램 전송방법) 3. 전송한 값은 DataBase에 저장 4. Log파일로 저장 모니터링 화면에 Winsock통신 부분 추가 1 . Winsock을 Listen상태로 연결 1-1. tcp포트는 POP서버 Winsock통신프로그램과 동일 (6000) Winsock포트에 데이터 들어오면 DataArrival이벤트 발생 2-1. 들어온 데이터를 화면에 표시
9
uno PC : PLC통신프로그램 - 이벤트 폼(mainplc) Private Sub MsgSock_Connect()
: POP서버와 winsock통신 연결 설정 Private Sub PLC_COMConnect() : plc com통신 연결 Private Sub chkOpen_Click() : 연결체크박스 클릭 시 Private Sub Form_Load() : 폼 open 시 Private Sub Form_Unload(Cancel As Integer) : 폼 종료 시 Private Sub PLCCom_OnComm() : plc com 연결 설정 Public Sub ReadCheck() : plc에서 read한 데이터 값 체크 및 pop서버로 전송 Public Sub SetLog(ByVal argLOG As String) : log파일로 저장 Public Function SetFillString(ByVal nDATA As String, ByVal LR As String, ByVal FillStr As String, ByVal dLen As Integer) As String : plc명령어 자리수만큼 0값으로 채움 Private Function Dec2Text$(A As String) : 십진수값을 hea값으로 변경 Private Sub tbxTM_KeyDown(KeyCode As Integer, Shift As Integer) : plc에 명령어 전송 timer값 변경 할 때 Private Sub tmrRead_Timer() : plc값 read timer Private Sub tmrSend_Timer() : plc 명령어 전송 timer Private Sub Winsock1_Connect() : POP서버 winsock통신 연결되었을 때 모듈(modul1) Sub Main() : Application 처을 실행 시 Public Sub ReadINI() : ini파일 read
10
POP서버 : Winsock통신프로그램 - 이벤트
폼(tcpserver) Private Sub Form_Load() : 폼 open Private Sub ServiceSocket_Close(Index As Integer) : winsock close 될 때 Private Sub ServiceSocket_ConnectionRequest(Index As Integer, ByVal requestID As Long) : winsock 연결을 요청 받을 때 Private Sub ServiceSocket_DataArrival(Index As Integer, ByVal bytesTotal As Long) : winsock으로 데이터가 들오돌 때 Private Sub Timer1_Timer() : timer 호출 Public Sub SetLog(ByVal argLOG As String) : Log파일로 저장 모듈(module1) Sub Main() : Application 처을 실행 시
11
uno PC : PLC통신프로그램 ① ① ③ ② ④ ⑤ ⑥
① 데이터수집 PLC 대수 만큼 버턴 만들어 Form1(아래)를 각각 호출하여 실행 ① ① ③ ② ① PLC연결/종료 체크 박스 ② PLC Read/Recive 호출 Timer값 ③ 화면에 표시되는 Log값 삭제여부 ④ log값 표시 ⑤ 현재 Read하고 있는 plc메모리 ⑥ 폼의 상태 ④ ⑤ ⑥
12
POP서버 : Winsock통신프로그램 ① ② ③ ④ ① 로그 지우기 여부 ② log표시
③ 현재 Read하고 있는 plc메모리 ④ Read하고 있는 plc메모리 의 값 ② ③ ④
13
모니터링 화면 전체 시스템 구성도 Uno pc 프로그램 화면 DB Winsock(TCP/IP) 통신
② 받은 데이터를 모니터링 화면으로 전송 후 Data로 저장 Uno pc 설비3 설비2 설비1 Winsock(TCP/IP) 통신 통신 프로그램 ① PLC 데이터 수집 즉시 sock통신으로 서버로 전송 Winsock(TCP/IP) 통신 ③ 서버에서 받은 데이터를 화면에 표시 DataBase 검색 모니터링 화면 프로그램 화면
Similar presentations