-
PLC 통신 사양 (PROTOCOL)-2IT/IOT 2024. 11. 4. 05:09728x90반응형
7. Read Command
1, DRS Command
DRS Command는 연속되는 D Register값을 Read할 수 있는 Command로, Frame상에서는 Read하고자 하는 개수와 시작 D Register의 번호를 설정한다.
예]. PV(Pointing Value) 와 SV(Setting Value) 값 Read (소수점 = 1)
PV : D0001 (NPV) SV : D0002 (NSV)
# 주소는 PX-SERIES DATA RESISTER MAPPING(표 5)을 참조
송신 = “STX01DRS,02,0001CRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01DRS,”
세그먼트 2 : CONST Type “02,0001”
테일 : [CR][LF]
수신 = “STX01DRS,OK,04D2,0929CRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01DRS, OK,”
세그먼트 2 : ARRAY Type 2 Byte “M000”
세그먼트 3 : CONST Type “,”
세그먼트 4 : ARRAY Type 2 Byte “M001”
테일 : [CR][LF]
# 여기서 읽을 D Register의 개수가 2개 이므로 0001, 0002번호에 저장되어 있는 값을 읽어 옴.
2, DRR Command
DRR Command는 D Register를 Read 하기 위한 Command로, Frame상에는 Read 개수와 읽고자 하는 각각의 D Register의 번호를 설정한다.
예]. Range High & Low Read (RANGE 소수점 = 0, SCALE 소수점 = 1)
Range High : D0612 (RH)
Range Low : D0613 (RL)
#사용 기기에 따라 Range & Scale값은 달라질 수 있음.
송신 = “STX01DRR,02,0612,0613CRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01DRR,02,”
세그먼트 2 : CONST Type “0612,0613”
테일 : [CR][LF]
수신 = “STX01DRR,OK,055A,FF38CRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01DRR, OK,”
세그먼트 2 : ARRAY Type 2 Byte “M000”
세그먼트 3 : CONST Type “,”
세그먼트 4 : ARRAY Type 2 Byte “M001”
테일 : [CR][LF]
3, IRS Command
IRS Command는 연속된 I Register 값을 Read 할 수 있는 Command로, Frame 상에서는 Read 하고자 하는 개수와 시작 I Register의 번호를 설정한다.
예]. Alarm 상태 Read
Alarm 1 : I0097 (ALM 1)
Alarm 2 : I0098 (ALM 2)
Alarm 3 : I0099 (ALM 3)
송신 = “STX01IRS,03,0097CRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01IRS,”
세그먼트 2 : CONST Type “03,0097”
테일 : [CR][LF]
수신 = “STX01IRS,OK,1,0,1CRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01IRS, OK,”
세그먼트 2 : ARRAY Type 1 Byte “M000”
세그먼트 3 : CONST Type “,”
세그먼트 4 : ARRAY Type 1 Byte “M001”
세그먼트 5 : CONST Type “,”
세그먼트 6 : ARRAY Type 1 Byte “M002”
테일 : [CR][LF]
# 여기서 읽을 I Register의 개수가 3개이므로 0097부터 연속해서 0098, 0099를 읽는다.
4, IRR Command
IRR Command는 임의의 I Register를 Read하기 위한 Command로, Frame 상에는 Read 개수와 읽고자 하는 각각의 I Register의 번호를 설정한다.
예]. Auto/Man & Program Run 상태 Read
Auto/Man : I0065 (Auto : 0 / Man : 1)
Program Run : I0074 (PROG (0 : Reset 상태, 1 : Run 상태))
송신 = “STX01IRR,02,0065,0074CRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01IRR,02,”
세그먼트 2 : CONST Type “0065,0074”
테일 : [CR][LF]
수신 = “STX01IRR,OK,0,1CRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01IRR, OK,”
세그먼트 2 : ARRAY Type 1 Byte “M000”
세그먼트 3 : CONST Type “,”
세그먼트 4 : ARRAY Type 1 Byte “M001”
테일 : [CR][LF]
7. Write Command
1, DWS Command
DWS Command는 연속된Register 값을 Write 할 수 있는 Command로, Frame상에는 Write 하고자 하는 개수와 시작 D Register의 번호, Write Data를 설정한다.
예]. SV번호 & SV1, 2, 3 Write (SV 번호 소수점 = 0, 1, 2, 3 소수점 = 1)
SV번호 : D0300 (SVNO) = 1 à 0001
# Setting Value Number을 1, 2, 3 중에서 1번으로 선택
SV1 : D0301 = 100.0 à 1000 à 03E8
SV2 : D0302 = 200.0 à 2000 à 07D0
SV3 : D0303 = 300.0 à 3000 à 0BB8
송신 = “STX01DWS,04,0300,0001,03E8,07D0,0BB8CRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01DWS,04,”
세그먼트 2 : CONST Type “0300,0001,”
세그먼트 3 : CONST Type “03E8,07D0”
세그먼트 4 : CONST Type “,0BB8”
테일 : [CR][LF]
수신 = “STX01DWS,OKCRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01DWS, OK”
테일 : [CR][LF]
2, DWR Command
DWR Command는 임의의 D Register를 Write 하기 위한 Command로, Frame상에는 Write 개수와 각각의 D Register의 번호, Write Data를 설정 한다.
예]. 운전 모드 전환, 운전 상태 전환, Fuzzy 기능 On 운전 모드 : D0100 = 1 (OPMD : LOCAL = 0, PROGRAM = 1,
REMOTE = 2) 운전 상태 : D0101 = 1 (PROG : RESET = 0; PROGRAM RUN = 1) Fuzzy 기능 : D0103 = 1 (FUZY : Off = 0, On = 1)
송신 = “STX01DWR,03,0100,0001,0101,0001,0103,0001CRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01DWR,03,”
세그먼트 2 : CONST Type “0100,0001,”
세그먼트 3 : CONST Type “0101,0001,”
세그먼트 4 : CONST Type “0103,0001”
테일 : [CR][LF]
수신 = “STX01DWR,OKCRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01DWR, OK”
테일 : [CR][LF]
3, IWS Command
IWS Command는 연속된 I Register 값을 Write 할 수 있는 Command로, Frame 상에는 Write 하고자 하는 개수와 시작 I Register의 번호, Write Data를 설정한다.
# 단, I Register의 Write는 Common Area(I256 ~ I328)만 가능하다.
예]. I Register Address 0300에서 4개 Bit을 On
송신 = “STX01IWS,04,0300,1,1,1,1CRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01IWS,”
세그먼트 2 : CONST Type “04,0300,”
세그먼트 3 : CONST Type “1,1,1,1”
테일 : [CR][LF]
수신 = “STX01IWS,OKCRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01IWS, OK”
테일 : [CR][LF]
# I Register 값 확인
송신 = “STX01IRS,04,0300CRLF”
수신 = “STX01IRS,OK,1,1,1,1CRLF”
4, IWR Command
IWR Command는 임의의 I Register를 Write하기 위한 Command로, Frame 상에는 Write하고자 하는 개수와 각각의 I Register의 번호를 설정한다.
# 단, I Register의 Write는 Common Area만 가능하다.
예]. I Register I300, I302, I304, I308 4개의 Bit을 On
송신 = “STX01IWR,04,0300,1,0302,1,0304,1,0308,1CRLF
헤더 : [STX]
세그먼트 1 : CONST Type “01IWR,04,”
세그먼트 2 : CONST Type “0300,1,”
세그먼트 3 : CONST Type “0302,1,”
세그먼트 4 : CONST Type “0304,1,”
세그먼트 5 : CONST Type “0308,1”
테일 : [CR][LF]
수신 = “STX01IWR,OKCRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01IWR, OK”
테일 : [CR][LF]
# I Register 값 확인
송신 = “STX01IRR,04,0300,0302,0304,0308CRLF”
수신 = “STX01IRR,OK,1,1,1,1CRLF”
8. Monitoring Command
1, DMS Command
DMS Command는 Monitoring 하고자 하는 D Register를 등록시키는 Command로, Frame에는 Monitoring 하고자 하는 개수와 각각의 D Register의 번호를 설정한다.이 Command는 Monitoring 등록을 위한 것이며, DMC Command를 사용하여 등록된 D Register의 값을 Read한다.
예]. PV & SV 등록
PV : D0001 (NPV)
SV : D0002 (NSV)
# 주소는 PX-SERIES DATA RESISTER MAPPING(표 5)을 참조
송신 = “STX01DMS,02,0001,0002CRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01DMS,02,”
세그먼트 2 : CONST Type “0001,0002”
테일 : [CR][LF]
수신 = “STX01DMS,OKCRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01DMS, OK”
테일 : [CR][LF]
2, DMC Command
DMC Command는 DMS Command로, Monitoring 하고자 하는 D Register를 등록시키는 Command에 의해 등록된 D Register의 내용을 Read하기 위한 Command이다.
예]. 등록된 Monitoring 내용을 Call (PV & SV 소수점 = 1)
송신 = “STX01DMCCRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01DMC”
테일 : [CR][LF]
수신 = “STX01DMC,OK,03E8,0384CRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01DMC, OK,”
세그먼트 2 : ARRAY Type 2 Byte “M000”
세그먼트 3 : CONST Type “,”
세그먼트 4 : ARRAY Type 2 Byte “M001”
테일 : [CR][LF]
PV = 03E8 à 1000 à 100.0
SV = 0384 à 900 à 90.0
송신 = “STX01DMCCRLF”
수신 = “STX01DMC,OK,03E9,0385CRLF”
PV = 03E9 à 1001 à 100.1
SV = 0385 à 901 à 90.1
# DMS Command에 의해 등록된 D Register D0001, D0002가 송신을 통해 얻은 처음 수신 값은 PV = 100.0, SV = 90.0이었는데, 다시 송신을 통해 얻은 수신 값은 PV = 100.1, SV = 90.1이다 위의 예제와 같이 일련의 송신을 통하여 DMS Command에 의해 등록된 D Register 값을 계속 Monitoring 할 수 있다.
3, IMS Command
IMS Command는 Monitoring 하고자 하는 I Register를 등록시키는 Command로, Frame 상에 Monitoring 하고자 하는 개수와 각각의 I Register의 번호를 설정한다. 이 Command는 Monitor 등록을 위한 것이며, IMC Command를 사용하여 등록된 I Register의 값을 Read한다.
예]. Alarm 1, 2, 3 등록
Alarm 1 : I0097 (ALM 1)
Alarm 2 : I0098 (ALM 2)
Alarm 3 : I0099 (ALM 3)
송신 = “STX01IMS,03,0097,0098,0099CRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01IMS,”
세그먼트 2 : CONST Type “03,0097,”
세그먼트 2 : CONST Type “0098,0099”
테일 : [CR][LF]
수신 = “STX01IMS,OKCRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01IMS, OK”
테일 : [CR][LF]
4, IMC Command
IMC Command는 IMS Command로 등록된 I Register의 내용을 Read하기 위한 Command
예]. 등록된 Monitoring 내용 Call (Alarm 1, 2, 3)
송신 = “STX01IMCCRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01IMC”
테일 : [CR][LF]
수신 = “STX01IMC,OK,1,1,1CRLF”
헤더 : [STX]
세그먼트 1 : CONST Type “01IMC, OK,”
세그먼트 2 : ARRAY Type 1 Byte “M000”
세그먼트 3 : CONST Type “,”
세그먼트 4 : ARRAY Type 1 Byte “M001”
세그먼트 5 : CONST Type “,”
세그먼트 6 : ARRAY Type 1 Byte “M002”
테일 : [CR][LF]
Alarm 1 = 1 (On)
Alarm 2 = 1 (On)
Alarm 3 = 1 (On)
송신 = “STX01IMCCRLF”
수신 = “STX01IMC,OK,0,1,0CRLF”
Alarm 1 = 0 (Off)
Alarm 2 = 1 (On)
Alarm 3 = 0 (Off)
# Monitoring Command에 의하여 등록된 내용은 전원 Off시 소멸되므로 차후 전원 On시에 재 등록 하여야 한다.
9. Register의 구성
Register는 D (D Register)와 I (I RELAY MAP)로 구성되며, D Register는 16진수 4자리 수 0000 ~ FFFF로 구성되어 각종 파라메터의 현재 값을 표현한다. I RELAY MAP은 온도조절계기의 상태정보를 갖고 있으며 “0”와 “1”의 Bit 정보 (Off / On) 표현한다.
# D Register의 구성
728x90'IT > IOT' 카테고리의 다른 글
가볍게 배우는 IOT-통신 장비 매뉴얼 (0) 2024.11.05 가볍게 배우는 IOT-통신규약(PROTOCOL) (0) 2024.11.05 PLC 통신 사양 (PROTOCOL)-1 (2) 2024.11.04 Modbus Protocol (1) 2024.11.03 LS일렉트릭 XBM-DN32H2 - 5 (8) 2024.10.28