본문 바로가기
IT/IOT

PLC 통신 사양 (PROTOCOL)-2

by eplus 2024. 11. 4.

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 CommandD RegisterRead 하기 위한 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 RegisterRead하기 위한 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 RegisterWrite 하기 위한 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 RegisterWriteCommon Area(I256 ~ I328)만 가능하다.

]. I Register Address 0300에서 4BitOn

   송신 =              “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 RegisterWrite하기 위한 Command, Frame 상에는 Write하고자 하는 개수와 각각의 I Register의 번호를 설정한다.

  # , I RegisterWriteCommon Area만 가능하다.

]. I Register I300, I302, I304, I308 4개의 BitOn

송신 = “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 CommandMonitoring  하고자 하는 D Register를 등록시키는 Command로, Frame에는 Monitoring 하고자 하는 개수와 각각의 D Register의 번호를 설정한다.CommandMonitoring 등록을 위한 것이며, 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 CommandDMS 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 CommandMonitoring 하고자 하는 I Register를 등록시키는  Command로, Frame 상에 Monitoring 하고자 하는 개수와 각각의 I Register의 번호를 설정한다. CommandMonitor 등록을 위한 것이며,  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 CommandIMS 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은 온도조절계기의 상태정보를 갖고 있으며 01Bit 정보 (Off / On) 표현한다.

 # D Register의 구성

728x90
반응형

'IT > IOT' 카테고리의 다른 글

가볍게 배우는 IOT-통신 장비 매뉴얼  (1) 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  (9) 2024.10.28