MP+STUDIO Manual V175
MP+STUDIO Manual V175
MP STUDIO MANUAL
V1.7.5
MPS 제품군은 케이스 마감 없이 PCB 형태와 딘레일에 체결이 가능하도록 가이드 및 클립으로
구성되어 있는 제품으로서 자사에서 제공하는 MP STUDIO 소프트웨어로 LADDER LOGIC으로 프로그램
할 수 있는 저렴한 PLC입니다. 양산성이 필요한 제품에 추천드립니다.
MPA 제품군은 케이스 마감 있는 형태로 딘레일에 체결이 가능합니다. MPS 제품군보다는 다소 가격이
높지만 케이스가 마감이 있고 노이즈 제거 기능을 강화하였고 디지털 입/출력의 다양성과 고성능의
아날로그 입력(15비트)과 아날로그 출력(16비트)을 사용할 수 있습니다.
[ 제품명 구분 방법 ]
- 1 -
MP STUDIO MANUAL
▣ 알림
본 사용설명서는 MPS, MPA 제품군을 프로그램하고, 디버깅할 수 있는 MP STUDIO를 사용하는
방법을 간략히 설명한 매뉴얼입니다.
▣ 주의사항
본 사용설명서는 MP STUDIO의 기능변경으로 인하여, 내용이 변경될 수 있습니다.
⦁ 폐사의 제품을 사용하다 발생한 손해 및 손실에 대하여 폐사는 민,형사적 법적 책임이 없음을
명시합니다. 폐사의 제품을 사용하기 전에 충분한 안전검사 및 테스트를 마치고 인적/물적 사고가
발생할 수 있는 장비에는 2차 안전장치를 설치하여 사용해주시기 바랍니다.
- 2 -
MP STUDIO MANUAL
<INDEX>
1. 간단 사용법 ·························································································································································· 8
2. 메모리 ···································································································································································· 9
2.1. 데이터 메모리 ··········································································································································· 9
2.2. 사용자 정의 메모리 ··································································································································· 10
3. 비트 접점 ···························································································································································· 11
3.1. 접점 설명 ····················································································································································· 11
3.2. N.O접점 및 N.C접점 ································································································································· 12
3.3. 코일출력 ······················································································································································· 13
3.4. 반전접점 ······················································································································································· 14
3.5. 상승/하강 검출접점 ··································································································································· 15
3.6. 비교 접점 ··················································································································································· 16
3.7. 자기유지 회로 ············································································································································· 18
3.8. 특수 비트 메모리 ······································································································································· 19
3.9. 워드 메모리의 비트 접점 사용 ··············································································································· 20
4. MP STUDIO ···················································································································································· 21
4.1. 사용한 데이터 확인 ··································································································································· 22
4.2. 데이터 메모리 설정 ································································································································· 23
4.3. 통신포트 설정 ············································································································································· 24
4.4. ETHERNET 다운로드 및 모니터링 ·········································································································· 27
4.5. 심볼 설정 ····················································································································································· 28
4.6. 데이터 테이블 ············································································································································· 29
4.7. 프로그램 메모리 용량 ······························································································································· 31
4.8. 문자열 검색 ················································································································································· 32
4.9. 옵션 ······························································································································································· 33
4.10. 펌웨어 버젼확인 및 다운로드 ·············································································································· 35
4.11. 래더 접점 생성 ········································································································································ 35
4.12. 래더 펑션블럭 생성 ································································································································ 38
4.13. 래더 편집 기능 ········································································································································ 39
4.14. 모니터링 ···················································································································································· 43
4.15. 강제 I/O ····················································································································································· 44
4.15.1. FORCE ················································································································································· 44
4.15.2. LOAD ··················································································································································· 45
4.15.3. CLEAR ·················································································································································· 45
4.16. FORCE DATA (메모리에 값 쓰기) ········································································································ 46
4.17. EEPROM 초기화 ······································································································································· 47
4.18. EEPROM 사용법 (제품의 초기설정값 적용법) ·················································································· 47
5. 펑션 블럭 ···························································································································································· 48
- 3 -
MP STUDIO MANUAL
- 4 -
MP STUDIO MANUAL
- 5 -
MP STUDIO MANUAL
- 6 -
MP STUDIO MANUAL
- 7 -
MP STUDIO MANUAL
1. 간단 사용법
① 디바이스를 선택합니다.
⑤ 작성한 프로그램을 키보드 “Ctrl + T”를 입력하거나 단축 아이콘을 이용하여 다운로드 합니다.
- 8 -
MP STUDIO MANUAL
2. 메모리
2.1. 데이터 메모리
▢ 데이터 메모리 구조는 BIT, BYTE, WORD, DOUBLE WORD로 구성되어 있습니다.
③ M 메모리
- 9 -
MP STUDIO MANUAL
① #이름 : 비트 메모리 사용 예
② ##이름 : 워드 메모리 사용 예
- 10 -
MP STUDIO MANUAL
3. 비트 접점
3.1. 접점 설명
아이콘 이름 설 명 단축키
N.O 접점 평상시에는 끊어져있다가, 접점값이
F2
(Normal Open) "HIGH" 일때, 연결이 되는 접점
N.C 접점 평상시에는 연결되어있다가. 접점값이
F3
(Normal Close) “HIGH" 일때, 연결이 끊어지는 접점
- 11 -
MP STUDIO MANUAL
① N.O접점
▢ 디지털 입력포트 P00가 ON이되면, 디지털 출력포트 P20이 ON되고 디지털 입력포트
P00가 OFF되면, 디지털 출력포트 P20이 OFF되는 프로그램을 모니터링하면 아래와
같습니다.
< P00 입력이 OFF 되었을 때 > < P00 입력이 ON 되었을 때 >
< P01 입력이 OFF 되었을 때 > < P01 입력이 ON 되었을 때 >
② N.C접점
< P00 입력이 OFF 되었을 때 > < P00 입력이 ON 되었을 때 >
- 12 -
MP STUDIO MANUAL
3.3. 코일출력
① SET코일
▢ 코일이 ON되면, 접점비트를 ON시킵니다.
▢ 디지털 입력포트 P00가 ON이되면, 디지털 출력포트 P20이 ON되고 이후, 디지털
입력포트 P00가 OFF도, 디지털 출력포트 P20이 계속 ON되는 프로그램을
모니터링하면 아래와 같습니다.
< P00 입력이 ON 되었을 때 > < P00 입력이 OFF 되어도 출력유지 >
② RESET코일
▢ 코일이 ON되면, 접점비트를 OFF시킵니다.
▢ 디지털 입력포트 P00가 ON되면, 디지털 출력포트 P20을 ON시키고 이후, 디지털
입력포트 P01이 ON되면, 디지털 출력포트 P20을 OFF시키는 프로그램을
모니터링하면 아래와 같습니다.
< P00 입력이 ON 되었을 때 > < P01 입력이 ON 되었을 때 >
③ 코일
코일의 출력조건이 ON되면 출력비트를 ON시키고, 코일의 출력조건이 OFF되면
출력비트를 OFF시킵니다.
디지털 입력포트 P00가 ON이되면 디지털 출력포트 P20이 ON되고 , 디지털 입력포트
P00가 OFF되면 디지털 출력포트 P20이 OFF되는 프로그램을 모니터링하면 아래와
같습니다.
< P00 입력이 OFF 되었을 때 > < P00 입력이 ON 되었을 때 >
- 13 -
MP STUDIO MANUAL
3.4. 반전접점
< P00 입력이 OFF 되었을 때 > < P00 입력이 ON 되었을 때 >
< P00 입력이 ON 되었을 때 > < P01 입력이 ON 되었을 때 >
- 14 -
MP STUDIO MANUAL
① 상승 검출접점
② 하강 검출접점
- 15 -
MP STUDIO MANUAL
3.6. 비교 접점
- 16 -
MP STUDIO MANUAL
- 17 -
MP STUDIO MANUAL
3.7. 자기유지 회로
① 프로그램 작성
▢ "START BUTTON"을 누르면, 모터가 동작합니다. 이후, “STOP BUTTON"을 누르면, 모터는
정지합니다. "MOTOR"의 N.O접점은 "MOTOR"코일과 동시에 ON됩니다.
② 동작순서
- 18 -
MP STUDIO MANUAL
3.8. 특수 비트 메모리
[ 래더 프로그램 ] [ 작동 설명 ]
[ 래더 프로그램 ] [ 작동 설명 ]
- 19 -
MP STUDIO MANUAL
3.9. 워드 메모리의 비트 접점 사용
[ D 워드 메모리의 비트 제어 예 ]
- 20 -
MP STUDIO MANUAL
4. MP STUDIO
⑤ 프로그램을 다운로드하기 전에, 반드시 확인해 주세요. 컴퓨터와 MPS 제품군을 연결한
USB케이블의 다운로드 포트 및 MPS 제품군의 통신설정을 할 수 있는 기능입니다.
- 21 -
MP STUDIO MANUAL
- 22 -
MP STUDIO MANUAL
- 23 -
MP STUDIO MANUAL
4.3. 통신포트 설정
➀ 다운로드 포트
- 24 -
MP STUDIO MANUAL
➁ 통신 포트1
- 25 -
MP STUDIO MANUAL
➂ 통신 포트2
➂ 통신 포트3
※ Caution
⚪ 다운로드 포트를 제외한 통신포트 설정은 프로그램 다운로드를 실행하면 해당 정보가
제품에 설정되어 사용됩니다. 그러므로 통신포트를 설정만 한다고 적용되는 것이 아니라
통신포트 설정과 다운로드를 모두 실행해야 합니다.
- 26 -
MP STUDIO MANUAL
- 27 -
MP STUDIO MANUAL
4.5. 심볼 설정
- 28 -
MP STUDIO MANUAL
- 29 -
MP STUDIO MANUAL
- 30 -
MP STUDIO MANUAL
4.8. 문자열 검색
▢ 검색할 문자열을 “찾을 내용”의 박스에 입력하여 “다음 찾기”를 실행하면 문자를
검색하여 검색된 위치로 화면이 이동됩니다.
- 31 -
MP STUDIO MANUAL
4.9. 옵션
▢ 그리드 가로 크기
⦁ 래더 프로그램 그리드의 가로 크기를 설정할 수 있습니다.
▢ 그리드 세로 크기
⦁ 래더 프로그램 그리드의 세로 크기를 설정할 수 있습니다.
▢ 그리드 가로 개수
⦁ 래더 프로그램 그리드의 가로 개수를 설정할 수 있습니다.
▢ 헤더 글꼴
⦁ 래더 프로그램의 가로 행값이 표시되는 숫자의 글꼴을 설정할 수 있습니다.
- 32 -
MP STUDIO MANUAL
▢ 그리드 글꼴
⦁ 래더 프로그램에서 사용되는 글꼴을 설정할 수 있습니다.
▢ 그리드 배경 색상
⦁ 래더 프로그램의 배경 색상을 설정할 수 있습니다.
▢ 그리드 테두리 색상
⦁ 래더 프로그램의 그리드의 테두리 색상을 설정할 수 있습니다.
▢ 다이어그램 색상
⦁ 래더 프로그램의 접점과 펑션의 색상을 설정할 수 있습니다.
▢ 텍스트 색상
⦁ 래더 프로그램에서 사용되는 글꼴 및 모니터링을 실행하여 나타나는 변수값의
색상을 설정할 수 있습니다.
▢ 모니터링 색상
⦁ 래더 프로그램에서 모니터을 실행하여 표시되는 변수값의 색상을 설정할 수
있습니다.
▢ 커서 색상
⦁ 래더 프로그램에서 사용되는 커서의 색상을 설정할 수 있습니다.
▢ 선택한 그리드 색상
⦁ 래더 프로그램에서 커서 이외에 선택한 그리드의 색상을 설정할 수 있습니다.
▢ 헤더 텍스트 색상
⦁ 래더 프로그램의 가로 행값이 표시되는 숫자의 색상을 설정할 수 있습니다.
▢ 입력텍스트박스 설정
⦁ 래더 프로그램에서 Enter키를 누르면 나타나는 입력텍스트박스의 배경색상 및
글씨색상을 설정할 수 있습니다.
▢ 툴박스 색상
⦁ 펑션 블럭이 표시되는 툴박스의 배경색상 및 글씨색상을 설정할 수 있습니다.
- 33 -
MP STUDIO MANUAL
▢ 펌웨어 버젼확인
⦁ 제품에 전원을 투입하고 다운로드 케이블을 PC와 연결합니다.
⦁ MP STUDIO를 실행합니다.
⦁ 매뉴얼의 프로그램 다운로드 항목을 참고해서 다운로드 포트설정을 확인합니다.
⦁ 메뉴의 실행에서 “펌웨어 버전”을 실행합니다.
▢ 펌웨어 다운로드
⦁ 펌웨어는 MP STUDIO 버전에 맞게 프로그램 다운로드 실행 시 MP STUDIO 버전에
맞는 펌웨어를 확인하여 펌웨어 업데이트가 필요할 경우 펌웨어 다운로드 실행을
수행할지 묻는 팝업창이 생성됩니다. 하기의 펌웨어 다운로드는 필요할 경우에만
수동으로 수행하셔야 합니다.
⦁ 제품에 전원을 투입하고 다운로드 케이블을 PC와 연결합니다.
⦁ MP STUDIO를 실행합니다.
⦁ 매뉴얼의 프로그램 다운로드 항목을 참고해서 다운로드 포트설정을 확인합니다.
⦁ 메뉴의 실행에서 “펌웨어 다운로드”를 실행합니다.
⦁ 팝업된 탐색기에서 새로운 펌웨어 파일을 선택하여 다운로드를 실행합니다.
- 34 -
MP STUDIO MANUAL
4.11. 래더 접점 생성
- 35 -
MP STUDIO MANUAL
F6키를 눌러 세로 연결 접점을
만듭니다. 커서의 오른쪽 하단이 세로
연결 접점의 시작 부분입니다.
자기유지접점을 만들면,
시작버튼을 누르면 모터가 계속
동작하는 프로그램이 완성됩니다.
- 36 -
MP STUDIO MANUAL
4.12. 래더 펑션블럭 생성
- 37 -
MP STUDIO MANUAL
4.13. 래더 편집 기능
▢ 그리드 삭제
⦁ 삭제하고자 하는 그리드에 커서를 옮기고 Del키를 눌러 삽입한 접점을 삭제할 수
있습니다. 만약, 선택한 그리드에 세로연결접점이 있다면 처음 Del키를 누르면 가로 접점이
삭제되고 두 번째 Del키를 누르면 세로접점이 삭제됩니다.
▢ 선택한 그리드 삭제
⦁ 마우스를 클릭한 상태에서 마우스를 움직이면 한 개 이상의 그리드를 선택할 수
있습니다. 또는, Shift키를 누른 상태에서 방향키로 여러 개의 그리드를 선택할 수
있습니다. 여러 개의 그리드를 선택하고 Del키를 누르면 선택된 그리드의 점점이 모두
삭제됩니다.
- 38 -
MP STUDIO MANUAL
▢ 그리드 이동
⦁커서로 이동시키고 싶은 그리드를 커서로 선택하거나 여러 개의 그리드를 선택하고, Ctrl
+ 방향키를 누르면 선택한 그리드가 방향키의 방향으로 한칸 이동 됩니다. 이때, 움직여진
방향의 선택되지 않은 그리드는 삭제 됩니다.
[ 오른쪽으로 그리드 이동 ]
▢ 라인 삭제
⦁ 삭제하고자 하는 라인의 그리드를 커서로 선택하고, Ctrl + D키를 누르면 선택한 라인의
열이 삭제 됩니다.
▢ 라인 삽입
⦁ 라인을 삽입하고자 하는 라인의 그리드를 커서로 선택하고, Ctrl + L키를 누르면 선택한
라인에 새로운 라인이 삽입 됩니다.
- 39 -
MP STUDIO MANUAL
▢ 그리드 삽입
⦁ 커서 기준으로 오른쪽을 한 칸씩 이동시키는 기능입니다. 그리드를 삽입할 그리드를 선택하고,
Ctrl + Insert키를 누르면 선택한 그리드의 오른쪽 접점들이 한칸씩 오른쪽으로 이동하게 됩니다
▢ 그리드 삭제
⦁ 그리드 삽입의 반대되는 기능입니다. 그리드를 선택한 후 Ctrl + Delete키를 누르면 선택한
그리드가 삭제 되고 선택한 그리드 오른쪽 접점들이 한칸씩 왼쪽으로 이동하게 됩니다.
▢ 그리드 복사
⦁ 복사할 그리드를 선택하고 Ctrl + C키를 누르면 버퍼에 선택한 내용이 복사가 됩니다.
▢ 그리드 잘라내기
⦁ 잘라내기할 그리드를 선택하고 Ctrl + X키를 누르면 버퍼에 선택한 내용이 복사가 되고,
선택한 내용은 삭제됩니다.
▢ 그리드 붙여넣기
⦁ 그리드 복사 또는 그리드 잘라내기를 하여 버퍼에 저장한 내용을 붙여넣을 그리드를
선택한 후에 Ctrl + V키를 누르면 됩니다. 이때, 여러 개의 그리드가 선택되어 있을 경우
왼쪽 상단이 붙여넣기의 시작점이 됩니다.
▢ 그리드 부분 선택
⦁ 그리드를 부분적으로 선택하여 삭제/ 복사/ 붙여넣기/ 이동을 할 수 있습니다. Ctrl키를
누르고 부분적으로 선택할 그리드릴 마우스의 왼쪽키로 선택을 합니다. 모두 선택을
하였으면 누르고 있던 Ctrl키를 뗍니다.
- 40 -
MP STUDIO MANUAL
▢ 실행취소
⦁ 래더를 편집하다 전에 프로그램 했던 내용을 복구하고 싶을때 Ctrl + Z키를 누르면
이전에 프로그램한 내용을 하나씩 복구합니다. 2번 항목에서 실행취소를 하게 되면, 1번
항목으로 복구가 됩니다.
▢ 재실행
⦁ 실행취소를 실행하여 복구했던 프로그램을 실행취소 하기 이전의 프로그램으로
복구합니다. 위에서 실행취소 하여 복구된 1번 항목에서 재실행을 하게 되면, 2번 항목으로
다시 복구됩니다.
▢ 코멘트
⦁ 변수값을 입력해야 하는 접점을 제외한 그리드에 Enter키를 입력 후 코멘트 앞부분에
“//”를 붙여 코멘트를 작성할 수 있습니다. Ex) //두번째 모터
- 41 -
MP STUDIO MANUAL
4.14. 모니터링
- 42 -
MP STUDIO MANUAL
4.15. 강제 I/O
4.15.1. FORCE
▢ 반대로 OFF에 체크를 하고 FORCE 버튼을 누르면 P0는 무조건 OFF가 됩니다.
- 43 -
MP STUDIO MANUAL
4.15.2. LOAD
4.15.3. CLEAR
- 44 -
MP STUDIO MANUAL
⚬ 변경하고자 하는 특정 값을 입력합니다.
- 45 -
MP STUDIO MANUAL
▢ EEPROM의 초기값을 0으로 만들지 않고 데이터 메모리 하나를 기준으로 그 값이 유저가 선택한
특정값(Ex. 100)이 아니면 초기값을 D메모리에 저장시키고 100이면 저장하지 않도록 하여
프로그램 다운로드할 때 한번만 EEPROM에 초기값을 집어 넣도록 하는 방법을 사용할 수 있습니다.
▢ MP STUDIO -> 설정 -> 데이터메모리에서 정전유지 D영역의 사용을 체크하고 범위를 0~2로 설정합니다.
- 46 -
MP STUDIO MANUAL
5. 펑션 블럭
▢ 펑션블럭 실행 조건과 결과
<그림5-3 펑션블럭>
- 47 -
MP STUDIO MANUAL
- 48 -
MP STUDIO MANUAL
IN 값을 HEX에서 DEC로
H2D
변환하여 OUT에 저장
IN 값을 DEC에서 HEX로
변환 D2H
변환하여 OUT에 저장
펑션블럭
IN 값을 1의 보수를 취하여
Conversion INV
OUT에 저장
IN 값을 2의 보수를 취하여
NEG
OUT에 저장
- 49 -
MP STUDIO MANUAL
실행조건이 ON 될 때마다 CO
UNT를 1씩 증가시켜 SET VAL
CTU
UE값 이상이 되면 실행출력
및 보조접점이 ON 된다.
실행조건이 ON될 때마다 CO
UNT를 1씩 감소시켜 0이 되
CTD
면 실행출력 및 보조접점이 O
N 된다
COUNT값이 CU접점이 ON될
카운터 때 1 증가, CD접점이 ON될
펑션블럭 CTUD 때 1 감소되며 SET VALUE 값
Counter 이상되면 실행출력 및 보조접
점이 ON된다
고속카운터 입력 채널의 카운
HCNT
트 값을 OUT에 저장한다
고속카운터 입력 채널의 카운
HRST
트 값을 0으로 초기화 한다
엔코더 CHANNEL의 값을 OUT
ENCO
에 저장
엔코더 CHANNEL의 값을 IN
ENMOV
값으로 설정
실행조건이 ON되었을 때,
타이머가 동작하여 SET VALU
TON
E 시간 후에 실행출력 및 보조
접점을 ON시킨다
실행조건이 OFF되었을 때,
타이머가 동작하여 SET VALU
TOFF
E 시간 후에 실행출력 및 보조
접점을 OFF시킨다
타이머
실행조건이 ON되었을 때,
Timer
타이머가 동작하여 SET VALU
TPL E 시간후 또는 실행조건이 OF
F되었을 때 실행출력 및 보조
점점을 OFF시킨다.
실행조건이 ON되었을 때,
타이머가 동작하여 SET VALU
TMON
E 시간후에 실행출력 및 보조
점점을 OFF시킨다.
- 50 -
MP STUDIO MANUAL
- 51 -
MP STUDIO MANUAL
CHANNEL포트로 입력된 전기
ADC 적인 신호를 MIN~MAX의 범
위로 SCALE하여 OUT에 저장
4~20mA, 1~5V측정용 ADC펑
ADC2
션
MIN~MAX 범위에서 OUT을
0~65535 범위로 SCALE하여 C
DAC
HANNEL포트로 전기적인 신호
로 출력
CHANNEL포트에 연결된 NTC
(서미스터) 온도센서의 저항값
아날로그 NTEMP
을 읽어 OUT에 저장
Analog
(253의 값은 25.3을 의미한다)
PORT(PWM출력포트)에 WIDT
PWM H 폭중 DUTY폭만큰 HIGH가
되는 PULSE를 발생시킨다
PORT(PWM출력포트)에 FEQ
FPWM
주파수의 PULSE를 발생시킨다
PORT(PWM출력포트)에 FREQ
NPWM 주파수로 N개의 펄스를 발생
시킨다
PORT(PWM출력포트)의 PULSE
POFF
출력을 정지시킨다
- 52 -
MP STUDIO MANUAL
- 53 -
MP STUDIO MANUAL
- 54 -
MP STUDIO MANUAL
5.1. 비교 펑션블럭
⚬ 비교접점(비트접점)과 같은기능입니다.
펑션블럭 설 명
= IN1값과 IN2값이 같을 때, ENO가 ON됩니다.
<> IN1값과 IN2값이 다를 때, ENO가 ON됩니다.
> IN1값이 IN2값보다 클 때, ENO가 ON됩니다.
< IN1값이 IN2값보다 작을 때, ENO가 ON됩니다.
>= IN1값이 IN2값보다 크거나 같을 때, ENO가 ON됩니다.
<= IN1값이 IN2값보다 작거나 같을 때, ENO가 ON됩니다.
▢ Example
⚬ IN1:D0(워드 메모리)값이 IN2:100과 같을 경우, P32 출력코일이 ON 되는 예제입니다.
비교 결과가 다를 경우, P32 코일은 OFF됩니다.
⚬ 펑션블럭은 “ [ "키를 이용하여 생성할 수 있습니다.
<그림5-1-1 = 펑션블럭>
- 55 -
MP STUDIO MANUAL
5.2. 변환 펑션블럭
⚫ 변환 펑션블럭의 종류
펑션블럭 설 명
- 56 -
MP STUDIO MANUAL
< IN >
⚫ 워드 및 더블워드를 입력합니다.
▢ Example
⚫ IN:16#1234 16진수를 10진수 1234로 변환하여 OUT:D0에 저장하고, 코일:P23을
ON시킵니다.
- 57 -
MP STUDIO MANUAL
< IN >
⚫ 워드 및 더블워드를 입력합니다.
▢ Example
⚫ IN:1234 10진수를 16진수 16#1234로 변환하여 OUT:D1에 저장하고, 코일:P23을
ON시킵니다.
- 58 -
MP STUDIO MANUAL
< IN >
⚫ 워드 및 더블워드를 입력합니다.
▢ Example
⚫ IN:16#1234 16진수를 반전하여 16#EBCD로 변환하여 OUT:D0에 저장하고, 코일:P23을
ON시킵니다.
- 59 -
MP STUDIO MANUAL
< IN >
⚫ 워드 및 더블워드를 입력합니다.
▢ Example
⚫ IN:1234의 부호를 반전시켜 D0에 저장합니다.
- 60 -
MP STUDIO MANUAL
5.3. 수학 펑션블럭
⚬ 수학 펑션블럭의 종류
펑션블럭 설 명
ADD IN1값과 IN2값을 덧셈하여 OUT으로 출력합니다.
SUB IN1값과 IN2값을 뺄셈하여 OUT으로 출력합니다.
MUL IN1값과 IN2값을 곱셈하여 OUT으로 출력합니다.
DIV IN1값과 IN2값을 나눗셈하여 OUT으로 출력합니다.
INC IN 값을 1 증가시킵니다.
DEC IN 값을 1 감소시킵니다.
IN_MIN~IN_MAX 범위에서 IN값을 OUT_MIN~OUT_MAX 범위로 변경
SCALE
하여 OUT으로 출력합니다.
- 61 -
MP STUDIO MANUAL
5.3.1. ADD
▢ Example
⚫ 입력접점:P0가 ON되면, IN1:D0와 IN2:100을 덧셈하여 OUT:D1에 저장하고 P32 코일이
ON됩니다.
▢ Caution
⚫ IN1과 IN2의 메모리 타입은 OUT 메모리 타입보다 작으면 안됩니다.
OUT 메모리 타입이 워드일 경우, IN1과 IN2의 메모리 타입은 워드와 더블워드를 사용할 수
있습니다. OUT 메모리 타입보다 작은 바이트를 사용할 경우 음수 계산에서 오차가
발생합니다.
- 62 -
MP STUDIO MANUAL
5.3.2. SUB
▢ Example
⚫ 입력접점:P0가 ON되면, IN1:100과 IN2:30을 뺄셈하여 OUT:D0에 저장하고 P32 코일이
ON됩니다.
▢ Caution
⚫ IN1과 IN2의 메모리 타입은 OUT 메모리 타입보다 작으면 안됩니다.
OUT 메모리 타입이 워드일 경우, IN1과 IN2의 메모리 타입은 워드와 더블워드를 사용할 수
있습니다. OUT 메모리 타입보다 작은 바이트를 사용할 경우 음수 계산에서 오차가
발생합니다.
- 63 -
MP STUDIO MANUAL
5.3.3. MUL
▢ Example
⚫ 입력접점:P0가 ON되면, IN1:10과 IN2:20을 곱셈하여 OUT:D0에 출력되고 P32 코일이
ON됩니다.
▢ Caution
⚫ IN1과 IN2의 메모리 타입은 OUT 메모리 타입보다 작으면 안됩니다.
OUT 메모리 타입이 워드일 경우, IN1과 IN2의 메모리 타입은 워드와 더블워드를 사용할 수
있습니다. OUT 메모리 타입보다 작은 바이트를 사용할 경우 음수 계산에서 오차가
발생합니다.
- 64 -
MP STUDIO MANUAL
5.3.4. DIV
▢ Example
⚫ 입력접점:P0가 ON되면, IN1:203와 IN2:2를 나눗셈하여 몫을 OUT에 저장하고 나머지를
REM에 저장합니다. 그리고, P32코일이 ON됩니다.
▢ Caution
⚫ IN1과 IN2의 메모리 타입은 OUT 메모리 타입보다 작으면 안됩니다.
OUT 메모리 타입이 워드일 경우, IN1과 IN2의 메모리 타입은 워드와 더블워드를 사용할 수
있습니다. OUT 메모리 타입보다 작은 바이트를 사용할 경우 음수 계산에서 오차가
발생합니다.
- 65 -
MP STUDIO MANUAL
5.3.5. INC
⚫ IN 값을 1 증가시킵니다.
___________________________________________________________________________________
▢ Example
⚫ 입력접점:P0가 ON되면, IN:D0를 1증가시킵니다.그리고, P32 코일이 ON 됩니다.
- 66 -
MP STUDIO MANUAL
5.3.6. DEC_I
⚫ IN 값을 1 감소시킵니다.
___________________________________________________________________________________
▢ Example
⚫ Positive Edge접점이 없으면 DEC_I 펑션블럭은 1초에 약 1000번 실행이 되어 D0는 -1이
아닌 -1000이 됩니다. 때문에, P0가 ON이 될 때 단 한번 DEC_I 펑션블럭이 실행되도록
Positive Edge접점을 DEC_I 펑션블럭 앞에 추가하였습니다.
- 67 -
MP STUDIO MANUAL
5.3.7. SCALE
▢ Example
- 68 -
MP STUDIO MANUAL
⚬ 카운터 펑션블럭의 종류
펑션블럭 설 명
- 69 -
MP STUDIO MANUAL
5.4.1. CTU
▢ Example
⚫ 입력스위치:P0가 ON되면, COUNT:C0가 1씩 가산됩니다. 입력스위치:P0가 10회 ON 되는
시점에서 COUNT:C0의 카운트값이 10이 됩니다. 이때, COUNT:C0값이 SET VALUE값 의
이상이 되어, 조건이 성립됩니다. 조건이 성립되고 있을 때, 보조비트 메모리:C0가 ON되어,
출럭코일2:P33이 ON됩니다. 또한, 조건입 성립되고 있을 때, CTU 펑션블럭의 실행조건이
ON일때, 실행출력이 ON되어 출력코일1:P32가 ON됩니다.
- 70 -
MP STUDIO MANUAL
- 71 -
MP STUDIO MANUAL
5.4.2. CTD
▢ Example
⚫ 입력접점:P0가 ON되면, COUNT:C0가 1씩 감산됩니다. P0가 10회 ON이 되는 시점에서
COUNT:C0의 카운트값이 0이 됩니다. COUNT:C0가 0이 되면, 보조 비트접점인 C0가
ON이 되어 출력코이2:P33이 ON됩니다. 또한, 조건이 성립하고 있을 때, 입력스위치:P0가
ON되어 실행조건이 ON이 될 때, 실행출력이 ON되어 출력코일1:P32가 ON됩니다.
- 72 -
MP STUDIO MANUAL
- 73 -
MP STUDIO MANUAL
5.4.3. CTUD
- 74 -
MP STUDIO MANUAL
▢ Example
- 75 -
MP STUDIO MANUAL
5.4.4. HCNT
▢ Example
⚫ 입력스위치:P00가 ON이 되면, 고속카운터 CHANNEL:0번 채널에서 카운트된 값을
읽어와서 OUT:D0에 저장합니다. 실행조건이 그대로 실행출력되어 출력코일1:P20은
ON됩니다.
- 76 -
MP STUDIO MANUAL
5.4.5. HRST
▢ Example
⚫ 입력스위치:P00가 ON이 되면, 고속카운터 CHANNEL:0번 채널에 저장되어 있는
카운트값을 0으로 초기화 합니다.
- 77 -
MP STUDIO MANUAL
5.4.6. ENCO
▢ Example
⚫ 항상 엔코더 CHANNEL:0번 채널에 저장되어 있는 엔코더값을 D0 워드메모리에
저장합니다.
- 78 -
MP STUDIO MANUAL
5.4.7. ENMOV
▢ Example
⚫ 항상 엔코더 CHANNEL:0번 채널에 저장되어 있는 엔코더값을 D0 워드메모리에
저장합니다.
- 79 -
MP STUDIO MANUAL
⚫ 타이머 펑션블럭의 종류
펑션블럭 설 명
⚫ TIMER 기본 단위
TIMER의 기본 단위는 10ms로서, 10ms마다 1씩 증가합니다.
⚫ TIMER 시간범위
워드 메모리 : 10ms ~ 10분
더블워드 메모리 : 10ms ~ 5965 시간
- 80 -
MP STUDIO MANUAL
⚫ SET VALUE 시간만큼 동작지연을 합니다. SET VALUE 시간에 도달하면, 타이머 보조비트
메모리 및 출력상태가 ON됩니다.
___________________________________________________________________________________
▢ Example
⚫ 시작버튼:P00가 5초동안 ON되면, 모터:P20, 히터:P21이 ON됩니다.
- 81 -
MP STUDIO MANUAL
▢ Example
⚫시작버튼:P00이 ON되면, 모터:P20 및 히터:P21이 ON됩니다. 이후, 시작버튼:P00가
OFF되면, SET VALUE:1M (1분) 후에 모터:P20 및 히터:P21가 OFF됩니다.
<그림5-4-5 TOFF 타이머 입력상태 ON 모니터링> <그림5-4-6 TOFF 입력상태 OFF 모니터링>
- 82 -
MP STUDIO MANUAL
▢ Example
⚫시작버튼:P00이 ON되면, 모터:P20 및 히터:P21이 ON됩니다. 이후, SET VALUE:10S에
도달하면 시작버튼:P00가 ON이 되고 있어도 모터:P20 및 히터:P21가 OFF됩니다.
<그림5-4-7 TPL 타이머 진행중 모니터링> <그림5-4-8 TPL 타이머 진행완료 모니터링>
- 83 -
MP STUDIO MANUAL
▢ Example
⚫시작버튼:P00이 ON되면, 모터:P20 및 히터:P21이 ON됩니다. 이후, SET VALUE:10S에
도달하면 시작버튼:P00가 ON이 되고 있어도 모터:P20 및 히터:P21가 OFF됩니다.
<그림5-4-7 TPL 타이머 진행중 모니터링> <그림5-4-8 TPL 타이머 진행완료 모니터링>
- 84 -
MP STUDIO MANUAL
⚫ 로직 컨트롤 펑션블럭 종류
펑션블럭 설 명
- 85 -
MP STUDIO MANUAL
5.6.1. JMP
▢ Example
⚫ 자동버튼:P00가 OFF일 경우, 자동동작조건:P01과 관계없이 수동모터ON:M0에 의해
모터:P20이 ON/OFF됩니다.
⚫ 자동버튼:P00가 ON일 경우, 자동동작조건:P01에 의해 모터:P20이 ON/OFF됩니다.
3번째줄은 JMP펑션블럭에 의해 점프되기 때문에 동작하지 않습니다.
- 86 -
MP STUDIO MANUAL
5.6.2. JMPN
▢ Example
- 87 -
MP STUDIO MANUAL
- 88 -
MP STUDIO MANUAL
5.7.1. MAX
▢ Example
⚫ IN:D0 워드메모리를 포함한 4개의 메모리인 D0, D1, D2, D3에서 최대값인 30이
OUT:D10에 저장됩니다.
- 89 -
MP STUDIO MANUAL
5.7.2. MIN
▢ Example
⚫ IN:D0 워드메모리를 포함한 4개의 메모리인 D0, D1, D2, D3에서 최소값인 -1이
OUT:D10에 저장됩니다.
- 90 -
MP STUDIO MANUAL
5.7.3. SUM
▢ Example
⚫ IN:D0 워드메모리를 포함한 4개의 메모리인 D0, D1, D2, D3의 합인 16이 OUT:D10에
저장됩니다.
- 91 -
MP STUDIO MANUAL
5.7.4. AVE
▢ Example
⚫ IN:D0 워드메모리를 포함한 4개의 메모리인 D0, D1, D2, D3의 평균값인 50이
OUT:D10에 저장됩니다.
- 92 -
MP STUDIO MANUAL
5.7.5. MUX
▢ Example
- 93 -
MP STUDIO MANUAL
⚫ 워드로직 펑션블럭 종류
펑션블럭 설 명
- 94 -
MP STUDIO MANUAL
5.8.1. MCS
⚫ 입력상태가 ON일 때, 마스터 컨트롤 영역안의 프로그램을 실행합니다.
⚫ 입력상태가 OFF일 때, 마스터 컨트롤 영역안의 프로그램을 실행하지 않습니다. 단, 마스터
컨트롤 영역안의 코일은 OFF됩니다.
___________________________________________________________________________________
< NUM>
⚫ 마스터 컨트롤 번호를 상수로 0 ~ 7까지 사용할 수 있습니다.
⚫ NUM의 상수값은 0부터 1씩 증가해야 합니다.
___________________________________________________________________________________
▢ Example
⚫ MCS0:P00가 OFF일 경우, 모터1:P20, 모터2:P21, 모터3:,P22는 무조건 모두 OFF됩니다.
⚫ MCS0:P00가 ON일 경우, 모터1:P20은 ON됩니다. 이때, MCS1:P01이 OFF일 경우,
모터2:P21, 모터3:P22는 무조건 모두 OFF됩니다.
⚫ MCS0:P00 및 MCS1:P01이 ON일 경우, 모터1:P20과 모터2:P21은 ON됩니다. 이때,
MCS2:P02이 OFF일 경우, 모터3:P22는 OFF됩니다.
⚫ MCS0:P00, MCS1:P01, MCS2:P02 모두 ON일 경우, 모든 코일은 ON됩니다.
- 95 -
MP STUDIO MANUAL
5.8.2. MCSCLR
⚫ NUM번의 마스터 컨트롤을 종료합니다.
___________________________________________________________________________________
< NUM>
⚫ MCS 펑션블럭의 NUM과 동일해야 하며, 해당 NUM번의 마스터 컨트롤을 종료합니다.
⚫ 마스터 컨트롤 번호를 상수로 0 ~ 7까지 사용할 수 있습니다.
⚫ MCS 0 ~7을 사용했을 때, MCSCLR 7은 7번의 마스터 컨트롤만 종료시킵니다.
⚫ MCS 0 ~7을 사용했을 때, MCSCLR 0은 0~7번의 마스터 컨트롤만 종료시킵니다. 즉,
낮은 수치의 NUM은 높은 수치의 NUM까지 모두 종료시킵니다.
___________________________________________________________________________________
- 96 -
MP STUDIO MANUAL
⚫ 워드로직 펑션블럭 종류
펑션블럭 설 명
- 97 -
MP STUDIO MANUAL
5.9.1. WAND
▢ Example
- 98 -
MP STUDIO MANUAL
5.9.2. WOR
▢ Example
- 99 -
MP STUDIO MANUAL
5.9.3. WXOR
▢ Example
- 100 -
MP STUDIO MANUAL
⚫ 아날로그 펑션블럭 종류
펑션블럭 설 명
아날로그 입력포트에 입력된 아날로그 전기신호(DC 0~5V, DC 0~10V,
ADC
0~20mA)를 디지털신호로 변경합니다.
아날로그 입력포트에 입력된 아날로그 전기신호(DC 1~5V, 4~20mA)를
ADC2
디지털신호로 변경합니다.
아날로그 출력포트로 DAC 펑션블럭의 OUT값을 전기신호(DC 0~5V, DC
DAC
0~10V, 0~20mA)로 출력합니다.
온도센서 입력포트에 연결된 NTC 써미스터 β-3950 (10kΩ/20℃) 온도센서
NTEMP
의 온도값을 읽어옵니다.
- 101 -
MP STUDIO MANUAL
▢ Example
- 102 -
MP STUDIO MANUAL
▢ Example
- 103 -
MP STUDIO MANUAL
⚫ 아날로그 출력포트 CHANNEL에 MIN VALUE ~ MAX VALUE의 범위에서 OUT값 만큼의
전기적신호를 출력합니다.
___________________________________________________________________________________
▢ Example
- 104 -
MP STUDIO MANUAL
▢ Example
⚫ 온도센서 입력채널 0번에 연결된 NTC 써미스터 온도센서값을 D0에 저장합니다. 253은
25.3℃를 의미합니다.
- 105 -
MP STUDIO MANUAL
▢ Example
▢ Caution
- 106 -
MP STUDIO MANUAL
▢ Example
▢ Caution
- 107 -
MP STUDIO MANUAL
▢ Example
- 108 -
MP STUDIO MANUAL
▢ Caution
⚫ 상승엣지접점을 사용해서 동작조건이 되었을 때, 한번만 실행되도록 해야 합니다. 그렇지
않을 경우, NPWM펑션블럭은 계속실행되어 N 개수를 초과한 펄스가 출력되게 됩니다.
⚫ PWM0~2 는 하나의 펄스발생 채널을 사용하고 있습니다.
⚫ PWM3~5 는 하나의 펄스발생 채널을 사용하고 있습니다.
⚫ NPWM을 쓰고 있을 경우, 동채널에 다른 PWM, FPWM, NPWM을 사용할 수 없습니다.
단, NPWM의 펄스출력이 모두 완료되었을 경우 다른포트를 사용할 수 있습니다.
Ex) NPWM 펑션블럭에 PWM1포트를 사용할 경우, 0번과 2번은 사용금지 포트가 됩니다.
- 109 -
MP STUDIO MANUAL
▢ Example
- 110 -
MP STUDIO MANUAL
⚫ 아날로그 펑션블럭 종류
펑션블럭 설 명
- 111 -
MP STUDIO MANUAL
5.11.1. MOV
< IN >
⚫ 복사할 상수 및 메모리를 입력합니다.
▢ Example
- 112 -
MP STUDIO MANUAL
5.11.2. GMOV
< IN >
⚫ 복사할 메모리를 입력합니다.
▢ Example
⚫ D0, D1, D2 워드 메모리에 각각 1, 123, 30000을 입력하고 GMOV 펑션블럭으로
D0부터 D10으로 3개의 워드를 복사했을 때 D10, D11, D12 워드 메모리는 각각 D0~D2와
동일하게 1, 123, 30000이 됩니다.
- 113 -
MP STUDIO MANUAL
5.11.3. FMOV
< IN >
⚫ 복사할 상수값 또는 메모리를 입력합니다.
▢ Example
⚫ D0 워드 메모리에 각각 1000을 입력하고 FMOV 펑션블럭으로 D0을 D10으로부터 3개의
워드에 복사했을 때 D10, D11, D12 워드 메모리는 모두 1000이 됩니다.
- 114 -
MP STUDIO MANUAL
⚫ 워드로직 펑션블럭 종류
펑션블럭 설 명
- 115 -
MP STUDIO MANUAL
5.12.1. SHL
< IN >
⚫ 이동시킬 상수 또는 메모리를 입력합니다.
< OUT >
⚫ 이동시킨 값이 저장될 메모리를 입력합니다.
▢ Example
⚫ 입력버튼:P00가 ON일 경우, IN:2#00000001를 1비트 왼쪽으로 이동시킨
2#00000010을 OUT:BD0에 저장합니다. 이때, 펄스출력중:P20도 ON됩니다.
- 116 -
MP STUDIO MANUAL
5.12.2. SHR
< IN >
⚫ 이동시킬 상수 또는 메모리를 입력합니다.
▢ Example
⚫ 입력버튼:P00가 ON일 경우, IN:2#00000100를 2비트 오른쪽으로 이동시킨
2#00000001을 OUT:BD0에 저장합니다. 이때, 펄스출력중:P20도 ON됩니다.
- 117 -
MP STUDIO MANUAL
- 118 -
MP STUDIO MANUAL
- 119 -
MP STUDIO MANUAL
5.13.3. 시리얼 통신 모드
시리얼통신 펑션블럭의 종류
PUT : 시리얼통신의 송신버퍼에 데이터를 집어넣어 데이터를 전송합니다.
GET : 시리얼통신의 수신버퍼에서 데이터를 가져 옵니다.
PUT_LEN : 시리얼통신의 송신버퍼에 쓰여지 데이터의 길이를 가져 옵니다.
GET_LEN : 시리얼통신의 수신버퍼에 쓰여진 데이터의 길이를 가져 옵니다.
- 120 -
MP STUDIO MANUAL
▢ Example
⚫ 송신시작:P00가 ON되면, 시리얼통신 1채널에 16진수 30을 2번 전송합니다.
전송패킷 : 0x30, 0x30
- 121 -
MP STUDIO MANUAL
▢ Example
⚫ 시리얼통신 1채널에 GETLEN 펑션블럭으로 수신한 패킷의 수를 D10에 저장합니다. 이후,
수신패킷:D10이 1개 이상 있으면, 1바이트를 D영역 바이트 메모리:BD0에 저장합니다.
- 122 -
MP STUDIO MANUAL
▢ Example
⚫ 송신버튼:P00가 ON일 때, PUTLEN 펑션블럭을 이용하여 송신버퍼에 있는 송신패킷을
바이트 단위로 읽어와 OUT:D0에 저장합니다. 이후, 송신버퍼의 패킷수인 D0가 0일 때, 즉,
송신버퍼가 비어있을때에만 PUT 펑션블럭을 이용하여 16진수 30을 시리얼통신 1채널로
2바이트 전송합니다.
- 123 -
MP STUDIO MANUAL
▢ Example
⚫ GETLEN 펑션블럭을 실행하여 시리얼통신 1채널의 수신버퍼에 남아있는 수신패킷의 수를
OUT:D0에 저장합니다. 이후, 수신패킷수:D0가 3패킷 이상이면 GET 펑션블럭을 실행하여
시리얼통신 1채널의 수신버퍼의 패킷을 D영역 바이트 메모리인 BD10부터.. BD11, BD12에
저장합니다. 만약, 수신버퍼에 남은 패킷이 4개일 경우, BD13까지 사용됩니다.
- 124 -
MP STUDIO MANUAL
6. HMI 연결 / 외부기기 연결
통신패킷의 구성은 슬레이브 어드레스, 펑션코드, 시작 어드레스, 길이, 데이터, CRC (에러검출)로 구성됩니다.
상세한 설명은 각각의 펑션코드 설명을 참조해주세요.
- 125 -
MP STUDIO MANUAL
6.1.3. 펑션코드
펑션코드 기 능 설 명
펑션코드 01 Read Coil Status 메모리를 Bit 단위로 읽음
펑션코드 02 Read Input Status 메모리를 Bit 단위로 읽음
펑션코드 03 Read Holding Registers 메모리를 Word 단위로 읽음
펑션코드 04 Read Input Registers 메모리를 Word 단위로 읽음
펑션코드 05 Force Single Coil 하나의 Bit의 메모리를 On/Off 시킴
펑션코드 06 Preset Single Registers 하나의 Word의 메모리를 변경시킴
펑션코드 15 Force Multiple Coils 여러 Bit의 메모리를 On/Off 시킴
펑션코드 16 Preset Multiple Registers 여러 Word의 메모리를 변경시킴
※ 펑션코드 1번과 2번 그리고 3번과 4번은 동일한 펑션코드입니다.
6.1.4. CRC
CRC는 Modbus 송/수신 패킷의 마지막 두 개의 바이트로서, 송/수신한 패킷이 제대로 전달 되었는지를 알기
위한 검증코드입니다. 계산 방식이 복잡하므로 아래 링크를 참조하시기 바랍니다.
www.lammertbies.nl/comm/info/crc-calculation.html
Start Address는 MPS 제품군의 메모리의 주소값을 의미합니다. 각각의 접점명은 아래의 표의 범위에서 시작
어드레스를 설정하여 사용할 수 있습니다.
접점명 Address ( 주 소 ) 설 명
P 0 ~ 997 입/출력 메모리
M 1,000 ~ 1,999 내부 M 메모리
D 2,000 ~ 2,999 내부 D 메모리
C 3,000 ~ 3,999 내부 C 메모리 (카운터)
T 4,000 ~ 4,999 내부 T 메모리 (타이머)
① Bit
※ P32 : P메모리 시작 어드레스(0) + 32 = 32 (HEX:20)
※ M88 : M메모리 시작 어드레스(1,000) + 88 = 1,088 (HEX:440)
② Word
※ D10 : D메모리 시작 어드레스(2,000) + 10 = 2,010 (HEX:7DA)
※ C5 : C메모리 시작 어드레스(3,000) + 5 = 3,005 (HEX:BBD)
※ T60 : T메모리 시작 어드레스 (4,000) + 60 = 4,060 (HEX:FDC
)
- 126 -
MP STUDIO MANUAL
① Bit Read
※ P10 : 00001(HEX) + (P메모리 시작 어드레스(0) + 10)(DEC) = 00001(HEX) + A(HEX) =
0000B(HEX)
※ M23 : 00001 + (M메모리 시작 어드레스(1,000) + 23)(DEC) = 00001(HEX) + 3FF(HEX) =
400(HEX)
② Bit Write
※ P32 : 10001(HEX) + (P메모리 시작 어드레스(0) + 32)(DEC) = 10001(HEX) + 20(HEX) =
10021(HEX)
※ M77 : 10001(HEX) + (M메모리 시작 어드레스(1,000) + 77)(DEC) = 10001(HEX) + 435(HEX) =
10436(HEX)
③ Word Read
※ D11 : 30001(HEX) + (D메모리 시작 어드레스(2,000) + 11)(DEC) = 30001(HEX) + 7DB(HEX) =
307DC(HEX)
※ C36 : 30001(HEX) + (C메모리 시작 어드레스(3,000) + 36)(DEC) = 30001(HEX) + BDC(HEX) =
30BDD(HEX)
④ Bit Write
※ D15 : 40001(HEX) + (D메모리 시작 어드레스(2,000) + 15)(DEC) = 40001(HEX) + 7DF(HEX) =
407E0(HEX)
※ C92 : 40001(HEX) + (C메모리 시작 어드레스(3,000) + 92)(DEC) = 40001(HEX) + C14(HEX) =
40C15(HEX)
- 127 -
MP STUDIO MANUAL
Coil을 사용할 경우
M2I에서 기입한 어드레스에서 1을 뺀 값을 Start Address로 사용합니다.
- 128 -
MP STUDIO MANUAL
6.1.8. MODBUS의 패킷
- Master에서 송신
패 킷 명 구 분 패 킷 (16진수)
슬레이브 어드레스 02
펑션코드 01
시작 어드레스 HIGH BYTE 03
시작 어드레스 LOW BYTE F7
길이 HIGH BYTE 00
길이 LOW BYTE 0F
CRC LOW BYTE CD
CRC HIGH BYTE 8B
* 길이는 16#07F8(10#2040)을 초과할 수 없습니다.
- Slave로 부터 수신
패킷명 구분 패킷 (16진수)
슬레이브 어드레스 02
펑션코드 01
바이트 카운트 02
데이터 M15 ~ M22 01
데이터 M23 ~ M28 02
CRC LOW BYTE 7D
CRC HIGH BYTE AD
Master에서 15개의 Bit를 요청하였기 때문에, Slave의 바이트 카운트는 2 Byte가 되며, 데이터 패킷의
응답이 M15와 M24가 High이고나머지는 Low의 응답입니다.
아래에 수신된 데이터의 패킷을 Binary와 Hex로 표시하였습니다. 참조해주세요.
- 129 -
MP STUDIO MANUAL
- Master에서 송신
패킷명 구분 패킷 (16진수)
슬레이브 어드레스 02
펑션코드 03
어드레스 HIGH BYTE 07
어드레스 LOW BYTE F0
길이 HIGH BYTE 00
길이 LOW BYTE 02
CRC LOW BYTE C5
CRC HIGH BYTE 7F
*길이는 16#007F(10#127)을 초과할 수 없습니다.
- Slave로 부터 수신
패킷명 구분 패킷 (16진수)
슬레이브 어드레스 02
펑션코드 03
바이트 카운트 04
데이터1 (DW32) HIGH BYTE 12
데이터1 (DW32) LOW BYTE 34
데이터2 (DW34) HIGH BYTE 56
데이터2 (DW34 LOW BYTE 78
CRC LOW BYTE B2
CRC HIGH BYTE 07
Master에서 2개의 Word를 요청하였기 때문에, Slave의 바이트 카운트는 4 Byte가 되며, 데이터는
D32부터 D34까지 순차적으로 16진수로 1234,5678의 값으로 응답되었습니다.
아래는 데이터 패킷을 Binary와 Hex로 표시한 것입니다.
WORD D32
HEX 1(MSB) 2 3 4(LSB)
BIN 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0
WORD D33
HEX 5(MSB) 6 7 8(LSB)
BIN 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0
- 130 -
MP STUDIO MANUAL
- Master에서 송신
패킷명 구분 패킷 (16진수)
슬레이브 어드레스 02
펑션코드 05
어드레스 HIGH BYTE 00
어드레스 LOW BYTE 20
데이터 HIGH BYTE FF
데이터 LOW BYTE 00
CRC LOW BYTE 8D
CRC HIGH BYTE C3
- Slave로 부터 수신
패킷명 구분 패킷 (16진수)
슬레이브 어드레스 02
펑션코드 05
어드레스 HIGH BYTE 00
어드레스 LOW BYTE 20
데이터 HIGH BYTE FF
데이터 LOW BYTE 00
CRC LOW BYTE 8D
CRC HIGH BYTE C3
- 131 -
MP STUDIO MANUAL
- Master에서 송신
패킷명 구분 패킷 (16진수)
슬레이브 어드레스 02
펑션코드 06
어드레스 HIGH BYTE 07
어드레스 LOW BYTE E0
데이터 HIGH BYTE 85
데이터 LOW BYTE 20
CRC LOW BYTE EA
CRC HIGH BYTE 33
- Slave로 부터 수신
패킷명 구분 패킷 (16진수)
슬레이브 어드레스 02
펑션코드 06
어드레스 HIGH BYTE 07
어드레스 LOW BYTE E0
데이터 HIGH BYTE 85
데이터 LOW BYTE 20
CRC LOW BYTE EA
CRC HIGH BYTE 33
- 132 -
MP STUDIO MANUAL
- Master에서 송신
패킷명 구분 패킷 (16진수)
슬레이브 어드레스 02
펑션코드 0F
어드레스 HIGH BYTE 04
어드레스 LOW BYTE 03
길이 HIGH BYTE 00
길이 LOW BYTE 10
바이트 카운트 02
데이터1 FIRST DATA 35
데이터2 SECOND DATA 8B
CRC LOW BYTE E4
CRC HIGH BYTE 14
Bit M40 M39 M38 M37 M36 M35 M34 M33 M32 M31 M30 M29 M28 M27
Bin 1 1 0 1 0 1 1 0 0 0 1 0 1 1
Hex 3 5 8 B
Second Data First Data
- Slave로 부터 수신
패킷명 구분 패킷 (16진수)
슬레이브 어드레스 02
펑션코드 0F
어드레스 HIGH BYTE 04
어드레스 LOW BYTE 03
길이 HIGH BYTE 00
길이 LOW BYTE 10
CRC LOW BYTE A5
CRC HIGH BYTE 04
- 133 -
MP STUDIO MANUAL
- Master에서 송신
패킷명 구 분 패킷 (16진수)
슬레이브 어드레스 02
펑션코드 10
어드레스 HIGH BYTE 07
어드레스 LOW BYTE E6
길이 HIGH BYTE 00
길이 LOW BYTE 03
바이트 카운트 06
데이터1 HIGH BYTE 12
데이터1 LOW BYTE 34
데이터2 HIGH BYTE 56
데이터2 LOW BYTE 78
데이터3 HIGH BYTE 12
데이터3 LOW BYTE 45
CRC LOW BYTE F3
CRC HIGH BYTE 0A
- Slave로 부터 수신
패킷명 구 분 패킷 (16진수)
슬레이브 어드레스 02
펑션코드 10
어드레스 HIGH BYTE 07
어드레스 LOW BYTE E6
길이 HIGH BYTE 00
길이 LOW BYTE 03
CRC LOW BYTE 60
CRC HIGH BYTE B8
- 134 -
MP STUDIO MANUAL
6.2.1. MP STUDIO 설정
MP STUDIO의 통신포트 설정에서 ComfileHMI와 연결하고자 하는 통신포트의 MODE를 Cubloc Modbus
RTU로 설정해야 합니다.
- 135 -
MP STUDIO MANUAL
프로젝트를 생성한 이후라면 ComfileHMI에서 왼쪽에 위치해 있는 프로젝트 트리의 프로젝트 속성을 실행하여
아래와 같이 통신 방식을 변경하시기 바랍니다.
MP STUDIO에서 설정한 Baudrate, Data Bit, Stop Bit, Parity를 위에서 표기했던 화면속성 창에서 하단의
HMI에게 통신 설정 전달을 체크하면 나타나는 속성박스에 적용합니다.
통신설정을 마치면 화면을 추가하여 HMI의 화면구성 및 동작을 프로그램할 수 있습니다. ComfileHMI
사용설명서를 참조해 주시기 바랍니다.
- 136 -
MP STUDIO MANUAL
6.2.3. Example
Ⅰ. 제어버튼
제어버튼을 더블클릭하면 나타나는 제어버튼의 속성창의 기본설정에서 아래와 같이 목적지 종류를 비트주소를
선택하고 목적지 비트 주소 우측의 ..버튼을 클릭합니다. 하단의 기록할 내용에서 버튼을 눌렀을 때 MPS의
비트를 어떻게 변경할지 정할 수 있습니다. (On, Off, On->Off, Reverse)
- 137 -
MP STUDIO MANUAL
- 138 -
MP STUDIO MANUAL
Ⅱ. 램프
- 139 -
MP STUDIO MANUAL
MPS 제품의 비트주소가 ON이 되면 램프가 점등되게 하고자하는 비트를 기입합니다. 아래에서는
디지털입력 P0가 ON이 되면 램프가 켜집니다.
Ⅲ. 숫자 표시기
- 140 -
MP STUDIO MANUAL
- 141 -
MP STUDIO MANUAL
Ⅳ. 숫자 입력기
- 142 -
MP STUDIO MANUAL
입력하고 하는 MPS 제품의 메모리 정보를 입력합니다. 아래는 원격 데이터 형식을 WORD(부호
없는 16비트 정수)로 하고 메모리값을 D10일때를 표현하였습니다.
- 143 -
MP STUDIO MANUAL
따라서, CNET 프로토콜을 이용하여 LS산전의 HMI 또는 CNET을 지원하는 다양한 HMI와 연결이
가능합니다.
6.3.1. XBC
6.3.2. LINK
LINK는 LS산전의 PLC와 HMI를 연결하기 위하여 개발된 통신입니다. LS산전의 인지도가 높기
때문에 여러 HMI 브랜드 제품에서도 CNET LINK 타입을 지원하여 LS산전의 PLC 타제품의 HMI를
쉽게 연결하여 사용할 수 있습니다.
- 144 -
MP STUDIO MANUAL
M2I 기업의 HMI를 저희 MPS제품과 CNET으로 연결하기 위하여 M2I에서 제공하는 TOP Design을
사용하는 예를 설명하도록 하겠습니다.
Ⅱ. Interface를 Computer Link로 선택하고 Station Num을 MPS 제품의 슬레이브 넘버(1~255)를
선택합니다. MPS의 슬레이브 넘버는 MP STUDIO 통신포트 설정에서 확인 및 설정이 가능합니다.
- 145 -
MP STUDIO MANUAL
Ⅲ. MP STUDIO 통신포트 설정
Ⅳ. 비트 메모리 제어
- 146 -
MP STUDIO MANUAL
- 147 -
MP STUDIO MANUAL
HMI를 동작시키면 최초에 램프는 OFF되어 있고, 램프를 클릭하면 램프가 점등되면서 MPS 제품의
P32(릴레이출력)가 ON됩니다. (MPS-8A4R 기준으로 P32는 릴레이 출력입니다.)
- 148 -
MP STUDIO MANUAL
MPS-8A4R 제품은 아래와 같이 RS232를 PC와 연결하였으며 램프가 점등될 때 P32 출력 LED도
같이 점등됩니다.
- 149 -
MP STUDIO MANUAL
Ⅴ. 워드 메모리 제어
MPS제품의 D100 워드 메모리에는 50을 입력하고 D200 워드 메모리에는 -25를 입력해
보겠습니다.
- 150 -
MP STUDIO MANUAL
Input탭의 Use Input 체크박스를 체크하고 Virture Keyboard의 Pop-up을 선택하여 숫자를
클릭하면 키패드가 생성되도록 설정합니다.
- 151 -
MP STUDIO MANUAL
M2I의 HMI를 CNET 프로토콜을 이용하여 저희 MPS 제품과 연결하는 예를 설명하였으며 CNET
프로토콜 타기업의 HMI도 연결이 가능합니다. 기업마다의 HMI 소프트웨어가 다르므로 연결하고자
하는 HMI의 제조사가 제공하는 매뉴얼을 참조바랍니다.
- 152 -
MP STUDIO MANUAL
- 153 -
MP STUDIO MANUAL
- 154 -
MP STUDIO MANUAL
- 155 -
MP STUDIO MANUAL
- 156 -
MP STUDIO MANUAL
- 157 -
MP STUDIO MANUAL
- 158 -
MP STUDIO MANUAL
Ⅶ. EasyBuilder Pro 수치 생성
EasyBuilder Pro 작화 화면의 상단 메뉴의 오브젝트 -> 수치를 선택하고 읽기주소
파라미터를 변경합니다. 본 매뉴얼에서는 D56에 1234를 D67에 2345를 D123에 3456을
MP STUDIO로 프로그램을 작성&다운로드 하고 EasyBuilder Pro에 수치 오브젝트 3개를
만들었습니다.
- 159 -
MP STUDIO MANUAL
- 160 -
MP STUDIO MANUAL
Ⅷ. 아날로그 입력값 표시
MP STUDIO에서 ADC 펑션블럭을 이용하여 프로그램하고 다운로드 합니다. 본
매뉴얼에서는 CHANNEL: 0, MAX: 30000, MIN: 0, OUT: D80을 하였습니다.
EasyBuilder Pro에서는 작화 화면의 상단 메뉴의 오브젝트 -> 수치를 선택하고 읽기주소
파라미터를 DW 80으로 입력후 오브젝트를 생성합니다. (PLC: MPA-16A16RX,
아날로그입력 0번채널은 0~5V 범위로 설정)
- 수치 오브젝트 속성에서 수치형식->표시형식 칸에 있는 소수점이상 값이 기본으로 4로
설정되어 있으므로 5자리까지 가능하도록 5로 변경해야 합니다.)
- 161 -
MP STUDIO MANUAL
- 162 -
MP STUDIO MANUAL
Ⅸ. 온도 표시
MP STUDIO에서 NTEMP 펑션블럭을 이용하여 프로그램하고 다운로드 합니다. 본
매뉴얼에서는 CHANNEL: 1, OUT: D81으로 프로그램 하였습니다. EasyBuilder Pro에서는
작화 화면의 상단 메뉴의 오브젝트 -> 수치를 선택하고 읽기주소 파라미터를 DW 81으로
입력하고 수치형식 탭에서 소수점이상:3, 소수점이하1로 설정하여 오브젝트를 생성합니다.
(PLC: MPA-16A16RX, 아날로그입력 1번채널은 NTC 온도센서 입력으로 설정)
- 163 -
MP STUDIO MANUAL
- 164 -
MP STUDIO MANUAL
7. I2C
I2C는 필립스(Philips)사에서 제안한 근거리용 표준 직렬통신 방식입니다. 2가닥의 통신선으로 하나의 마스터
장비가 여러개의 슬레이브와 반이중으로 통신을 할 수 있는 특징이 있습니다. 2가닥의 통신선은 아래와 같습니다.
⦁ SDA : Data Line
⦁ SCL : Clock Line
I2C는 마스터가 송신하는 SCL(CLock)을 기준으로 슬레이브는 동기식으로 동작합니다. 마스터가 SCL을 HIGH를
출력하고 SDA를 LOW로 출력하면, 슬레이브는 0으로 인식하고 SDA를 HIGH로 출력하면, 슬레이브는 1로
인식합니다.
- 165 -
MP STUDIO MANUAL
7.1. ISTA
START 컨디션을 만듭니다.
- 166 -
MP STUDIO MANUAL
7.2. IWR
마스터인 MPS 제품에서 슬레이브 제품으로 1개의 바이트를 송신합니다.
unsigned
DATA 슬레이브 제품으로 송신할 바이트를 입력합니다.
byte
- 167 -
MP STUDIO MANUAL
7.3. IRD
마스터인 MPS 제품에서 슬레이브 제품으로 1개의 바이트를 수신합니다.
unsigned
OUT 슬레이브 제품으로 수신한 데이터를 저장할 메모리를 입력합니다.
byte
- 168 -
MP STUDIO MANUAL
7.4. ISTP
STOP 컨디션을 만듭니다.
- 169 -
MP STUDIO MANUAL
7.5. ISR
마스터인 MPS 제품에서 STOP 컨디션을 만듭니다.
unsigned
OUT I2C 상태값을 저장할 메모리를 입력합니다.
byte
- 170 -
MP STUDIO MANUAL
- 171 -
MP STUDIO MANUAL
① ISTA 펑션블럭 실행
STEP Data
START S 마스터에서 START 컨디션을 만듭니다.
SLAVE ISTA 펑션블럭의 ADDRESS에 104를 입력합니다.
1101000
ADDRESS DS3231 I.C는 슬레이브 주소가 104(1101000)로 정해져 있습니다.
<R/W> 0 ISTA 펑션블럭의 READ에 @OFF를 입력하여, 마스터를 송신모드를 만듭니다.
A 1 DS3231 I.C에서 ACK신호가 옵니다. ISTA 펑션블럭에서 알아서 처리합니다.
② IWR 펑션블럭 실행
STEP Data
WORD IWR 펑션블럭의 DATA에 0을 입력합니다. DS3231에서 읽어올 번지수를
0x00
ADDRESS 입력하는 것으로서 0x00은 초, 0x01은 분, 0x02는 시간입니다.
A 1 DS3231 I.C에서 ACK신호가 옵니다. ISTA 펑션블럭에서 알아서 처리합니다.
③ ISTA 펑션블럭 실행
STEP Data
SR - 마스터에서 REPEAT START 컨디션을 만듭니다.
SLAVE ISTA 펑션블럭의 ADDRESS에 104를 입력합니다.
1101000
ADDRESS DS3231 I.C는 슬레이브 주소가 104(1101000)로 정해져 있습니다.
<R/W> 1 ISTA 펑션블럭의 READ에 @ON을 입력하여, 마스터를 수신모드를 만듭니다.
A 1 DS3231 I.C에서 ACK신호가 옵니다. ISTA 펑션블럭에서 알아서 처리합니다.
④ IRD 펑션블럭 실행
STEP Data
DS3231 I.C로부터 초값이 수신되며, 수신된 초값을 IRD 펑션블럭의 OUT
DATA 초
파라메타에 기입된 메모리에 저장됩니다. 예제에서는 D0에 초가 저장됩니다.
마스터에서 데이터를 수신 받았으므로, 슬레이브에게 ACK를 송신해야 합니다.
ACK 1 ACK를 송신하면 슬레이브인 DS3231는 0x00(초) 레지스터리 번지에서 +1을
더한 0x01(분) 레지스터리 값을 마스터에게 송신합니다.
⑤ IRD 펑션블럭 실행
STEP Data
DS3231 I.C로부터 분값이 수신되며, 수신된 분값을 IRD 펑션블럭의 OUT
DATA 초
파라메타에 기입된 메모리에 저장됩니다. 예제에서는 D1에 분이 저장됩니다.
마스터에서 데이터를 수신 받았으므로, 슬레이브에게 ACK를 송신해야 합니다.
ACK 1 ACK를 송신하면 슬레이브인 DS3231는 0x01(분) 레지스터리 번지에서 +1을
더한 0x02(시간) 레지스터리 값을 마스터에게 송신합니다.
- 172 -
MP STUDIO MANUAL
⑥ IRD 펑션블럭 실행
STEP Data
DS3231 I.C로부터 시간값이 수신되며, 수신된 시간값을 IRD 펑션블럭의 OUT
DATA 초
파라메타에 기입된 메모리에 저장됩니다. 예제에서는 D2에 시간이 저장됩니다.
마스터에서 데이터를 수신 받았으므로, 슬레이브에게 ACK를 송신해야 합니다.
ACK를 송신하면 슬레이브인 DS3231는 0x02(시간) 레지스터리 번지에서 +1을
더한 0x03(요일) 레지스터리 값을 마스터에게 송신합니다. 예제에서는 다음
데이터를 수신하지 않고자 ACK를 0... 즉, @OFF를 입력하여 데이터 수신을
ACK 1 마칩니다. ※ 주의.. ACK를 1... 즉, @ON을 입력하고 다음 스텝인
ISTP를 실행하면, 슬레이브와 마스터의 SDA가 충돌이 일어나서
마스터인 MPS는 슬레이브 모드로 자동진입이 됩니다. 때문에 이후,
I2C를 사용하지 못합니다. (프로그램을 수정하고 전원을 재투입하면
정상동작합니다.)
⑦ ISTP 펑션블럭 실행
STEP Data
ISTP 마스터에서 STOP 컨디션을 만듭니다.
DS3231는 데이터의 형식이 16진수인 HEX값으로 동작됩니다. HEX를 10진수인 Decimal값으로 변경할려면,
H2D 펑션블럭을 Decimal을 Hex값으로 변경할려면 D2H 펑션블럭을 이용해주시기 바랍니다.
- 173 -
MP STUDIO MANUAL
8. Library
이러한 문제를 DS3231를 사용하는 방법으로 해결할 수 있습니다. 이렇게 정밀한 시계 기능이 있는
것을 RTC(Real Time Clock)이라고 말하며, 여러 RTC중에서 DS3231는 매우 정밀한 RTC입니다.
상온에서 분당 2개의 펄스의 오차율로서, 1년으로 계산하면 약32.4초의 오차가 발생할 수 있습니다.
DS3231는 I.C의 이름입니다. MPS는 DS3231를 기본으로 장착하지 않고, 모듈로서 연결할 수 있도
록 지원하고 있습니다.
- 174 -
MP STUDIO MANUAL
- 175 -
MP STUDIO MANUAL
- 176 -
MP STUDIO MANUAL
본 라이브러리를 통하여 저렴하고 많이 사용하고 있는 PCF8574 모듈을 캐릭터 LCD에 연결하여 I2C
통신으로 캐릭터 LCD를 제어할 수 있습니다.
8.2.1. CLCD 주소
PCF8574 모듈의 기본주소는 0x27입니다. 2개 이상의 캐릭터 LCD를 사용할 경우, 같은 주소인 제품
2개를 사용할 수 없습니다. 한개의 캐릭터 LCD가 0x27이면, 다른 한개는 0x27 이외의 주소를 가져
야 합니다. 이렇게 주소를 변경하기 위해서는 PCF8574 모듈의 PCB 보드에 있는 A0, A1, A2의 패드
를 숏트시키는 것으로 변경할 수 있습니다.
- 177 -
MP STUDIO MANUAL
- 178 -
MP STUDIO MANUAL
⦁ 20 x 4 : X는 19, Y는 3이 최대값입니다.
⦁ 16 x 2 : X는 15, Y는 1이 최대값입니다.
- 179 -
MP STUDIO MANUAL
MPS제품에 전원이 투입되면, 최초 1회만 CINI와 CCLS 펑션블럭을 실행하여, CLCD를 초기화 하고
화면을 클리어 시킵니다. 이후, 1초(@100)마다 CLOC와 CSTR의 펑션블럭을 실행하여, X좌표:4 와 Y
좌표:0에 "HELLOW" 문자열을 표현합니다.
- 180 -
MP STUDIO MANUAL
MPS제품에 전원이 투입되면, 최초 1회만 CINI와 CCLS 펑션블럭을 실행하여, CLCD를 초기화 하고
화면을 클리어 시킵니다. 이후, 1초(@100)마다 CLOC와 CINT의 펑션블럭을 실행하여, X좌표:4 와 Y
좌표:0에 1234를 5자리로 앞자리 0을 포함하여 표시합니다.
- 181 -
MP STUDIO MANUAL
또한, 아래에 문자열을 표현하는 예2를 보시기 바랍니다. (ZERO : @off, SIGN : @on)
MPS제품에 전원이 투입되면, 최초 1회만 CINI와 CCLS 펑션블럭을 실행하여, CLCD를 초기화 하고
화면을 클리어 시킵니다. 이후, 1초(@100)마다 CLOC와 CINT의 펑션블럭을 실행하여, X좌표:4 와 Y
좌표:0에 1234를 5자리로 앞자리 0을 제외하고 양,음의 부호와 함께 표시합니다.
- 182 -
MP STUDIO MANUAL
MPS제품에 전원이 투입되면, 최초 1회만 CINI와 CCLS 펑션블럭을 실행하여, CLCD를 초기화 하고
화면을 클리어 시킵니다. 이후, 1초(@100)마다 CLOC와 CHEX의 펑션블럭을 실행하여, X좌표:2 와 Y
좌표:1에 16진수 1234를 5자리로 앞자리 0을 제외하여 표시합니다.
- 183 -
MP STUDIO MANUAL
MPS제품에 전원이 투입되면, 최초 1회만 CINI와 CCLS 펑션블럭을 실행하여, CLCD를 초기화 하고
화면을 클리어 시킵니다. 이후, 1초후에 한번만 CLOC와 CSTR 펑션블럭을 실행하여 X좌표:2와 Y좌
표:1에 “PRESS"를 표시합니다. 이후, 1초후에 한번만 CLOC와 CSTR 펑션블럭을 실행하여 X좌표:2와
Y좌표:1에 "TEMP"를 표시합니다.
- 184 -
MP STUDIO MANUAL
커서는 CLCD의 전원이 투입되었을 때 OFF되어 있습니다. 커서를 ON시키고자 할 경우, CCON 펑션
블럭을 사용하여 커서를 표시할 수 있고, CCOF 펑션블럭을 사용하여 커서를 OFF시킬 수 있습니다.
커서는 CLCD의 전원이 투입되었을 때 X:0, Y:0 좌표에 표시됩니다. 이후, 문자열을 표시하면 표시한
문자열의 뒷 쪽에 커서가 표시됩니다. CLOC 펑션블럭을 사용하여 커서의 좌표를 이동시킬 수 있습니
다.
<그림8-2-8-2 커서의 초기위치 > <그림8-2-8-3 HELLOW 문자열 표시후 커서위치 >
<그림8-2-8-4 CLOC X좌표:2, Y좌표:1의 커서위치 > <그림8-2-8-5 CCLS 이후 커서위치 >
CCLS 펑션블럭을 사용하여 CLCD의 화면을 클리어 시키면 커서의 위치는 X좌표:0, Y좌표:0으로 초
기화 되므로 주의해야 합니다.
- 185 -
MP STUDIO MANUAL
커서는 CLCD의 전원이 투입되었을 때 OFF되어 있습니다. 커서를 ON시키고자 할 경우, CCON 펑션
블럭을 사용하여 커서를 표시할 수 있고, CCOF 펑션블럭을 사용하여 커서를 OFF시킬 수 있습니다.
- 186 -
MP STUDIO MANUAL
CLCD 초기화 평션블럭인 CINI 펑션블럭을 실행하면 CLCD의 백라이트는 ON이 됩니다. 이후, CLOF
펑션블럭으로 백라이트를 OFF 시킬 수 있습니다.
MPS제품에 전원이 투입되면, 최초 1회만 CINI와 CCLS 펑션블럭을 실행하여, CLCD를 초기화 하고
화면을 클리어 시킵니다. 이때, CLCD의 백라이트는 ON되어져 있습니다. 이후, 백라이트OFF:P1 디지
털입력이 ON되면 X:0, Y:1 좌표에 “BackLight Off!" 문자열이 표시되면서 백라이트는 OFF가 됩니다.
이후, 백라이트ON:P0 디지털입력이 ON되면 X:0,Y:1 좌표에 ”BackLight On!" 문자열이 표시되면서
백라이트는 ON이 됩니다.
- 187 -
MP STUDIO MANUAL
CLCD 초기화 평션블럭인 CINI 펑션블럭을 실행하면 CLCD의 백라이트는 ON이 됩니다. 이후, CLOF
펑션블럭으로 백라이트를 OFF 시킬 수 있습니다.
- 188 -
MP STUDIO MANUAL
CPUT 펑션블럭은 5x8 도트로 구성된 하나의 문자를 CLCD의 사용자 메모리에 기록시킵니다.
CLCD에서 하나의 문자는 아래와 같이 5x8개의 도트로 구성되어 있습니다.
하나의 캐릭터LCD는 최대 8개의 사용자 문자를 사용할 수 있으므로 ID는 0~7을 입력할 수 있습니
다. 또한, 하나의 문자는 8개의 행을 바이트 형태로 표현을 해야 합니다. 때문에, DEFINE에는 8개의
바이트를 “ , ”로 구분하여 입력해야 합니다.
- 189 -
MP STUDIO MANUAL
CPUT 펑션블럭이 실행된 후, 캐릭터 LCD의 커서가 X:0, Y:0 좌표로 초기화 됩니다. CPUT 펑션
블럭을 실행 후에는 CLOC 펑션블럭을 사용하여 커서 좌표를 변경해 주시기 바랍니다.
CPUT 펑션블럭을 실행하여 캐릭터 LCD에 기록시킨 사용자 정의 문자는 캐릭터 LCD의 전원이 차
단되면 데이터가 상실됩니다.
- 190 -
MP STUDIO MANUAL
캐릭터LCD는 8개의 사용자 문자를 기록하고 표시할 수 있습니다. CPUT에서도 사용자가 정의한 5열
x8행으로 구성된 문자를 0 ~ 7 의 ID로 기록시키고, CGET으로 기록시킨 문자를 0 ~ 7의 ID로 불러
와서 LCD에 표시할 수 있습니다.
- 191 -
MP STUDIO MANUAL
<그림8-3-1 FND 0.56" 시계기능 > <그림8-3-2 FND 0.36" 소수점기능 >
- 192 -
MP STUDIO MANUAL
MPS제품과 FND제품은 CLK와 DIO 2가닥의 통신선을 연결해야 하며, MPS제품에서 사용할 수 있는
통신포트 번호는 아래와 같습니다.
Products PORT
MPS-8A4R AI0 ~ AI7 0~5V 아날로그 입력포트에서만 사용이 가능합니다.
MPS-16A8R AI0 ~ AI3 0~5V 아날로그 입력포트에서만 사용이 가능합니다.
MPS-8A8R PWM0 ~ PWM5 PWM 출력포트에서만 사용이 가능합니다.
MPS-16A8R8T PWM0,1,3,4 PWM 출력포트에서만 사용이 가능합니다.
UART 통신프로트를 통하여 1개의 FND 사용이 가능합니다.
MPA
UART 통신포트 단, 주문시 옵션에서 FND 사용 선택 또는 유선으로 연락을 주셔야
모든제품
사용이 가능하도록 저항 1개를 제거하여 보내드립니다.
MPS-8A4R-R2, MPS-8A4T-R2, MPS-16A8R-R2, MPS-16A8T-R2 제품에서는 사용이 불가능합니다.
MPA 제품군은 CLK와 DIO에 입력한 숫자와 상관없이 UART 통신포트로 연결이 됩니다. 때문에, CLK와 DIO 파라미터에
아무 숫자나 입력하시고 사용해 주시기 바랍니다.
- 193 -
MP STUDIO MANUAL
< IN >
입력한 숫자 및 메모리의 값으로 -999 ~ 9999까지 표현이 가능합니다.
- 194 -
MP STUDIO MANUAL
- 195 -
MP STUDIO MANUAL
FND의 7개의 세그먼트의 LED를 개별적으로 제어하여 원하는 모양을 표현할 수 있습니다.
8개의 비트를 사용하여 각각의 LED를 1:1로 제어해야 할 수 있으며 각각의 비트가 제어하는 LED의
위치를 아래 그림에서 확인할 수 있습니다.
2진수
FND 16진수
P G F E D C B A
A 0 1 1 1 0 1 1 1 0x77
b 0 1 1 1 1 1 0 0 0x7C
C 0 0 1 1 1 0 0 1 0x39
d 0 1 0 1 1 1 1 0 0x5E
E 0 1 1 1 1 0 0 1 0x79
F 0 1 1 1 0 0 0 1 0x71
- 196 -
MP STUDIO MANUAL
- 197 -
MP STUDIO MANUAL
시계기능이 있는 FND의 경우 2번째에 시계의 도트 LED 2개가 위치에 있습니다. 때문에, FINT 펑션
블럭에서는 DOT에 2를 입력하면 항상 도트 LED가 아래와 같이 ON이 됩니다. 하지만, “시”와 “분을”
별도로 표기할 경우, “시”를 표시할 때 초침 LED를 On/Off해야하며 이때 “시”의 입장에서는 일의 자
리의 LED가 켜져야 하므로 4를 입력해야 합니다.
초침 LED를 1초 간격으로 점멸하기 위해서 DOT 파리미터를 워드 메모리를 입력해 주시기 바랍니다.
DS3231 RTC를 사용하여 시간을 읽어오고 읽어온 시간을 FND에 표시하는 예는 아래와 같습니다.
<1 Line> FND를 CLK를 A0포트로 DIO를 A1포트로 정의하고 초기화 합니다. (MPS-8A4R 기준)
<2 Line> DS3231 모듈에서 시간 파라미터를 읽어서 각각의 사용자 정의 메모리에 기록합니다.
<3 Line> 1초동안 사용자 정의 메모리 ##dot에 4를 기록하고 다시 1초동안 ##dot에 0을 기록하여
시계의 도트 LED를 1초마다 깜빡이게 합니다.
여기서 도트 LED는 POSITION:2에 위치하지만 4 Line에서 ##year를 입력하는 기준에서는
4번째의 FND에 위치하므로 4를 입력해야 합니다.
<4 Line> 1초마다 DS3231에서 읽어온 시간에서 ##year를 FND의 1~2번째에 표시하고 ##minute
를 3~4번째에 표시합니다.
- 198 -