LS산전 요청 프로토콜

 

모서리가 둥근 직사각형: ENQ  00  WSS  01  04  %PW4  000F  EOT

다음은 국번이 ‘00’ PLC‘P004’번지에 워드단위(W) 4개의 출력이 모두 켜지게(000F) 쓰기(WSS) 프로토콜입니다.

 

이 프로토콜을 예로 들어 설명하겠습니다.

프로토콜

설명

ENQ

요청 프로토콜의 시작 ASCII 코드 5

00

국번 (PLC번호)

WSS

쓰기 명령문

01

블록수. <[변수 길이][변수 이름]>으로 구성된 블록이 이 요청 포맷에 몇 개가 있는 지를 지정하는 것으로 최대 16 개의 블록까지 설정할 수 있습니다. 이 프로토콜의 경우에는 <04%PW4>가 한 블록입니다.

04

변수길이. 이 프로토콜의 경우에는 <%PW4>, 4글자이므로 04입니다.

%PW4

변수이름. %[번지][단위][번지수] %는 변수이름 앞에 항상 붙여주기로 한 약속입니다. 이 프로토콜의 경우, P는 번지, W는 워드 단위, 4는 번지수 입니다. , % [P] [워드단위] [004] 라는 뜻입니다.

04%PW4 = 05%PW04 = 06%PW004 = … = 10%PW0000004 모두 같은 번지이름으로 취급되지만, 변수길이가 다릅니다.

000F

데이터. 데이터 포맷은 000A 이런 식이 되어야 합니다. 이 프로토콜의 경우, 000F, P40, 41, 42, 43 네 개의 출력을 모두 켜지게 하는 프로토콜입니다.

EOT

요청 프로토콜의 마감 ASCII 코드 4

 

, LS산전 PLC의 요청 프로토콜은

ENQ

국번

명령어

구조화된 데이터

EOT

 

이렇게 이루어져 있습니다. 위에 예로든 프로토콜의 경우엔 다음과 같이 대응됩니다.

ENQ

00

WSS

0104%PW4000F

EOT

 

 

 

데이터

데이터는 16진수 형태의 숫자입니다. 16진수 한 글자는 2진수 네 글자로 나타낼 수 있습니다. 이때 2진수에서 ‘0’출력 OFF’, ‘1’출력 ON’을 나타내게 됩니다. 따라서 16진수 한 글자는 4개의 출력단자를 제어할 수 있습니다.

16진수의 2진수 표현

10진수

16진수

2진수

0

0

0 0 0 0

1

1

0 0 0 1

2

2

0 0 1 0

3

3

0 0 1 1

4

4

0 1 0 0

5

5

0 1 0 1

6

6

0 1 1 0

7

7

0 1 1 1

8

8

1 0 0 0

9

9

1 0 0 1

10

A

1 0 1 0

11

B

1 0 1 1

12

C

1 1 0 0

13

D

1 1 0 1

14

E

1 1 1 0

15

F

1 1 1 1

<출처 네이버 지식백과 16진수>

 

 

)

출력

2진수

10진수

16진수

1101

B

0010

4

1100

3

1111

F

 

 

 

 

 

 

 

 

 

 

쓰기

 

프로토콜

ENQ

국번

WSS

[블록수] [변수길이] [변수이름] [데이터]

EOT

명령문은 WSS이며 쓰고 싶은 데이터가 구조화된 데이터 마지막에 붙게 됩니다.

 

이미 만들어 놓은 기초회로VI에 쓰기 프로토콜[ENQ00WSS0104%PW4000FEOT]을 넣어 실행해보겠습니다. 시작과 끝을 알리는 아스키코드 5(ENQ), 4(EOT)은 이미 기초회로를 만들 때 넣어 주었기 때문에 문자열에 써 넣을 필요가 없습니다.

위 사진처럼 버퍼 읽기에 응답이 오고 PLC의 출력 LED OUT 40, 41, 42, 43에 모두 출력이 나가는 것을 확인할 수 있습니다.

 

 

 

 

 

프런트 패널을 좀더 알아보기 쉽게 만들어봅시다. 데이터의 마지막 한 글자를 토글 스위치로 제어할 수 있게 만들어보겠습니다.

 

컨트롤 팔레트 > 일반 > 배열, 행렬, 클러스터 > 배열

컨트롤 팔레트 > 일반 > 불리언 > 수직 토글 스위치

수직 토글 스위치배열 안으로 드래그해서 넣어 줍니다.

배열을 오른쪽으로 늘려 스위치를 4개로 만들어 줍니다.

 

 

 

블록다이어그램에 생긴 불리언 배열 컨트롤을 볼 수 있습니다.

 

 

 

 

 

 

 

 

사각형 설명선: 00WSS0104%PW4000

함수 팔레트 > 프로그래밍 > 숫자형 > 변환 > 불리언 배열을 숫자로

함수 팔레트 > 프로그래밍 > 문자열 > 문자열/숫자 변환 > 숫자를 16진수 문자열로

함수 팔레트 > 프로그래밍 > 문자열 > 문자열 연결

문자열 연결의 위 터미널에서 마우스 오른쪽 클릭 > 생성 > 상수

 

생성된 문자열 상수에 쓰기 프로토콜의 마지막 데이터 한 글자를 뺀 나머지를 써줍니다. 불리언배열은 문자열과 데이터 형이 다르기 때문에 형 변환을 해줘야 합니다. 불리언 배열에서 문자열로 바로 바꿔주는 함수가 없기 때문에 불리언 배열을 숫자 형으로, 다시 숫자 형을 문자열로 바꿔줘야 합니다.

사각형 설명선: 숫자를 16진수 문자열로사각형 설명선: 불리언 배열을 숫자로

 

 

 

 

VI를 실행한 뒤 와이어를 클릭해보면 와이어를 지나가는 데이터의 값을 볼 수 있습니다.

 

 

데이터가 어떻게 변하는지 한눈에 볼 수 있습니다.