핸드폰 - 구글 파이어베이스 -PLC 순서로 명령을 보내 동작 시키는 동영상 입니다.


Posted by 오아시스베이베
,

이번시간에는 스마트폰으로 PLC를 제어 할 수 있는 앱을 만듭니다.

-엡 인벤터를 이용한 PLC 제어


1. 화면 구성

PLC1의 제어할 접점을 2개 만듭니다.


2. 코드 구성

-앱 시작시 포인트를 불러오면서 초기화 하는 부분

-클릭시 서버에 동작 업로드 하는 코드

-처음 시작시 서버에서 값 가져오면서 접점 값을 초기화 하는 코드

-실시간으로 쿼리 한 것을 목록별로 저장 하는 부분

-실시간 쿼리는 접점 값을 위 포인트에 묶여 있는 부분이 한 뭉태기로 가져오기 따문에 위 코드처럼 따로 파싱 하는 부분을 만들어 주어야 한다

-파이어베이스 원격제어 동영상


Posted by 오아시스베이베
,

이번시간에는 PLC와 firebase를 연결 시켜주기 위한 서버에 대한 코드 설명을 합니다.


-서버에서 값을 가져와 변수 최기화 하는 코드

-PLC의 메모리에 쓰는 코드

- 서버에서 실시간으로 값을 가져와선 write 함수를 실행 하는 부분

-0.5초마다 PLC 값을 읽어서 firebase에 업로드 하는 코드



-firebase를 이용한 PLC제어 동영상

Posted by 오아시스베이베
,

이번시간에는 서버(데이터베이스)의 데이터를 가지고 와 PLC가 동작하게 하는 컴퓨터의 설정을 합니다.


제어를 할 PLC인 Master-k 120s는 tcp통신을 할 수 없습니다. 또한 제어 및 모니터링을 하기 위해선 모드버스 프로토콜을 다른 통신 프로토콜을 바꾸는 기능을 하는 게이트웨이가 필요 합니다. 


이 두가지 동작을 하기위하여 컴퓨터는 라즈베리파이3B를 개발환경은 node.js 8.x LTS, npm은 node.js설치시 딸려오는 버전을 사용 합니다.


하드웨어 세팅은 아래와 같이 설정 합니다.


node.js 프로그램을 실행 하려면 아래와 같은 문구가 나옵니다.

이때는 npm ini를 통해 초기화 헤주면 됩니다.

그다음 npm serialport && npm install debug && npm install modbus-serial을 입력합니다.


제어 프로그램을 아래와 같이 작성 합니다.


"/dev/ttyUSB0"는 마운트된 USB형 485이다.


inverter 함수를 통한 logging

형식은

[입력,?,?,출력,?,?,?,?,?,?] 레지스터는 hex형식임으로 (4번 function) 위의 사진처럼 로그를 받아온다

Posted by 오아시스베이베
,

이번 시간에는 PLC를 원격으로 제어 및 모니터링 하기 위해 LS산전의 master k 120s

PLC의 파라메터를 수정 하고 레더도를 작성 합니다.


PLC의 제어를 위한 통신은 modbus 프로토콜을 사용 합니다


1.통신을 위해 아래의 사진과 같이 파라메터를 수정 해 줍니다.

- RS485 단자를 통하여 제어를 하기 위해 통신Ch1 체널을 다음과 같이 수정 합니다.


2.이제 파라메터 수정이 끝났으니 접점을 통하여 직접 제어를 하기 위한 레더도를 

작성 합니다.

3.모스버스 동작 확인은 modbuspoll을 통해서 통신이 되는지 확인 합니다.

Slave ID는 PLC의 국번 

Function은 03Read Holding Registers(4X)

Address는 0~10에 Scan Rate는 1000ms로 합니다.

   

4번 번지의 값을 보면 PLC의 p40 접점이 on 때 1 p40,p41접점이 on 일 때 3의 값이 

반환 되는 것을 볼 수 있다.


접점의 값은 HEX값으로 반환 되는 것을 볼 수 있다


Posted by 오아시스베이베
,

PLC를 원격으로 제어 하기 위해 클라우드 데이터배이스인 firebase를 사용 합니다.


PLC는 현재 상태와 제어 데이터를 데이터베이스에 업로드 또는 다운로드 하고 

클라이언트는 제어 명령, 상태 명령을 데이터베이스에 업로드 또는 다운로드 하며

PLC를 제어 합니다.


구성도는 아래와 같습니다



제어를 위한 테이블은 아래와 같이 구성 합니다.


클라이언트와 PLC는 control 과 monitoring의 하위 노드를 통해 제어 합니다.



Posted by 오아시스베이베
,

학교 과제로 프로젝트를 진행 합니다.


프로젝트 이름은 앱 인벤터를 이용한 어드벤스드 캡스톤 입니다.


기존 자동화 제어를 하기 위해선 중앙서버가 필요 합니다. 


이를 클라우드 서버로 대체 하여 관리 및 운용을 효율적으로 하기 위해 개발 하고 


더 나아가 스마트폰 앱을 통하여 PLC를 제어 할 수 있도록 하는 것이 목표 입니다.


사용기기: 라즈베리파이3 B 


usb 485 컨버터


master k 120s


'project > capstone' 카테고리의 다른 글

클라우드이용 PLC 제어 - PLC 세팅  (0) 2018.05.31
클라우드이용 PLC 제어 - firebase  (0) 2018.05.26
지팡이 외형 설계  (0) 2016.03.29
심박센서 실험  (0) 2016.03.29
스마트 지팡이 만들기  (0) 2016.03.29
Posted by 오아시스베이베
,

놀이기구 제어 UI입니다. 놀이기구를 제어하고 놀이기구 상태를 변경시킬 수 있습니

다. HTML로 구현하여 테블릿을 통하여 쉽게 제어가 가능합니다.


놀이기구 상태와 대기 시간 조정 동영상 입니다.


놀이기구 제어 동작 동영상 입니다.



Posted by 오아시스베이베
,

중앙 서버에서 대기 인원과 대기 시간에 관련된 데이터를 받아와서 대기 시간을 나타


내고, 상황에 따라서 관리자가 대기 시간을 변경 할 수 있도록 제어 할 수 있는 UI를 


구현 하었습니다.



제어 동영상 



Posted by 오아시스베이베
,

놀이기구를 제어하거나 상태를 변경 할 수 있는 UI를 만들었습니다.


현제 놀이기구의 운행 상태를 변경 할 수 있으며, 놀이기구를 동작 시키는 PLC를 제어


할 수 있습니다.



제어 UI입니다.



HTML으로 구성 하였으며 서버와 실시간 통신을 하여 제어 합니다.


놀이기구 상태를 제어 하는 동영상 입니다.


동작 정지 버튼을 눌러 PLC를 제어 하는 모습 입니다.


디바이스관련 코딩은 얼추 마무리가 되었습니다. 




엇그저께 팀원들과 회의를 하였는데, 결과 현제 데이터베이스를 서비스 하는 서버가 


하는 일이 별로 없어,  클라이언트가 하는 동작을 몰아서 운영 하게 하자는 말이 나왔


습니다.




이제 구현 하는 방향은 테그한 고객들의 데이터와,여러 놀이기구 상화을 중앙에서 제


어 하게끔 구현 하는 것 입니다

Posted by 오아시스베이베
,