IPC5000 컨트롤러 통신사용자매뉴얼 Version 1.2
1. 개요...1 1.1 개요...1 1.2 모드버스 /TCP 인터페이스...1 1.3 모드버스 RTU RS422/485 통신포트...4 2. IEEE 32-BIT FLOATING POINT 레지스터정보...9 2.1 IEEE Floating Point 데이터포맷...9 3. 모드버스 TCP 와모드버스 RTU FUNCTION CODES...14 3.1 Function Code 01 디지털출력상태읽기...16 3.2 Function Code 02 디지털입력상태읽기...18 3.3 Function Code 03/04 입력레지스터읽기...19 3.4 Function Code 05 - Force Single Digital Output...21 3.5 Function Codes 06 단일레지스터조정...22 3.6 Function Code 08 - Loopback 메시지...23 3.7 Function Codes 16(10h) 멀티레지스터조정...24 3.8 Function Code 17(11h) 디바이스 ID 보고...25 4. 모드버스 RTU 예외코드...28 4.1 개요...28 5. 동작타입변수와처리를위한레지스터맵...30 5.1 레지스터맵개요...30 5.2 루프 ( 채널 ) 치 (Loop Value) 레지스터맵...32 5.3 Function codes 3, 6, 16 을이용하여요청 (Query) 하는예제...34 5.4 아날로그입력값레지스터맵 Function Code 03,04...35
5.5 시간레지스터맵...36 5.6 Set Point Program 레지스터맵...37 5.7 Set Point 프로그래머값레지스터맵...40 5.8 IPC5000 을위한 Set Point 프로그래머레지스터맵...41 5.9 Set Point 프로그래머세그먼트레지스터맵...44 5.10 세그먼트레지스터맵...46 5.11 세그먼트레지스터를결정하기위한예제...46 5.12 세그먼트 Set Point 이벤트레지스터맵...47 5.13 세그먼트이벤트레지스터를결정하기위한예제...49 5.14 프로그램링크레지스터맵...50 5.15 PID 그룹레지스터맵...52 5.16 컨트롤러그룹레지스터맵...54 5.17 프로그램그룹레지스터맵...55 5.18 셋업그룹레지스터맵...57 5.19 동작및상태그룹레지스터맵...60 5.20 공통데이터그룹레지스터맵...61 5.21 정치 PV 이벤트그룹레지스터맵...62 6. 모드버스 RTU 를위한 CRC-16 계산...64 7. RS-232C 통신...65 7.1 개요...65 7.2 통신구성...65 7.3 통신 Function Code...66
7.4 Function Code 20(14h) 환경설정참조데이터읽기...67 7.4.1 모드버스읽기구성예제...70 7.5 Function Code 21(15h) 환경설정참조데이터쓰기...75 7.5.1 모드버스쓰기구성예제...77 7.6 읽기, 쓰기파라메타레지스터어드레스...80 7.6.1 SP/PV 블록레지스터주소...80 7.6.2 SP 블록레지스터맵...81 7.6.3 PID 상수그룹레지스터맵...88 7.6.4 PID ZONE 레지스터맵...89 7.6.5 입력보정레지스터맵...90 7.6.6 정치 PV 이벤트레지스터맵...92 7.6.7 조작버튼동작레지스터맵...95 7.6.8 프로그램데이터레지스터맵...96 7.6.9 링크레지스터맵...103 7.6.10 아날로그입력그룹레지스터맵 (5000H ~ 5013H)...105 7.6.11 아날로그출력그룹레지스터맵 (5020H ~ 503BH)...106 7.6.12 아날로그 PWM 그룹레지스터맵 (5040H ~ 504BH)...107 7.6.13 디지털출력그룹레지스터맵 (5050H ~ 5057H)...107 7.6.14 모드이벤트그룹레지스터맵 (4300H ~ 434FH)...108 7.6.15 알람이벤트그룹레지스터맵...109 7.7 RS-232C 통신결선...111
1. 개요 1.1 개요 IPC5000은 3가지종류에모드버스통신을지원합니다. 네트워크포트 : Ethernet 연결의모드버스 TCP(Option) RS-232C 포트 : 모드버스 RTU Configuration 연결 (Basic) RS485 포트 : 모드버스 RTU(Option) 1.2 모드버스 /TCP 인터페이스 개요 IPC5000 컨트롤러는 Ethernet TCP/IP의직접적인연결을통하여 SCADA와 HMI와같은 Third part 소프트웨어와통신을위한모드버스 Ethernet 또는모드버스 TCP/IP라고불리는모드버스 TCP를지원합니다. 컨트롤러의 Ethernet 10Base-T 호스트포트가이용되며, Ethernet TCP는다중동시연결이데이터를서로주고받을수있도록하여줍니다. IPC5000은이포트를통하여모드버스 TCP 프로토콜메시지를이용하여 5개의호스트와동시에연결할수있습니다. 모드버스 TCP 프로토콜모드버스 TCP 프로토콜은 Schneider의 Modicon 디비전그룹에의해개발되었으며, 모드버스 RTU 명령구조를사용하는 Ethernet TCP/IP 네크워크상에데이터상호통신을위한기준을마련하였습니다모드버스 TCP 프로토콜은 TCP/IP 프레임안에 Modicon의모드버스 RTU 프로토콜을간단히포함하여아래에보여진그림과같이모드버스프레임과헤더정보가같이합쳐진형태입니다. TRANSACTION IDENTIFIER MODBUS/TCP HEADER PROTOCOL IDENTIFIER LENGTH FIELD MODBUS FRAME TCP FRAME MODBUS RTU FRAME ADDRESS FUNCTION CODE DATA CRC-16 그림 1-2.1 TCP/IP 프레임내부의모드버스 RTU 프로토콜 개방된모드버스 TCP 규격은네트워크 Layers와물리적데이터링크가고려되어있으며, 모드버스프레임안에메시지구조는표준모드버스 RTU Function 코드를사용합니다. 모드버스프레임안에주소 ( 국번 ) 부분은국번구조형태가요구되거나고려되지않기때문에이용되지않으며, 1
00으로고정하여사용합니다. 콘트롤러 IP 주소가콘트롤러에독립적으로존재하기때문에 IP 주소가국번을대신합니다. 에러체크는 TCP/IP 네크워크프로토콜에서지원되며모드버스프레임부분에는지원되지않습니다. 헤더부분에 Transaction Identifier와 Protocol Identifier는대체로모두 0( 전체 4바이트 ) 입니다. 반면 Length field는모드버스프레임안에바이트의수를정의합니다. 컨트롤러는프레임의나머지바이트의올바른수를전송합니다. 그러나받은메시지를위해이 field를체크하지는않습니다. 표준 IEEE 32-bit floating point와 16 비트정수포맷이사용됩니다. 파라메타어드레싱테이블 6-1에정의는시작과끝어드레스리스트의개요를나타내는레지스터맵입니다. Sub Section 에언급되어져있는 Setpoint 프로그래머, Loops 등특수한 Function class에관한파라메타어드레싱을위한상세한내용은 Setpoint 프로그램머, Loops등과같은특수한 Function 계층에관한더상세한파라메타어드레싱은 Sub Section을참조하십시요. Function 코드 1,2,3,4,5,6,8,16(10h) 와 17(11h) 는테이블 4-1 모드버스 TCP와모드버스 RTU Function 코드정의부분에서설명됩니다. 여러가지 Function 코드에의해서지원되는파라메타에데이터를읽고쓰기위한 Access 예제가 Section 4.1에서부터 4.8까지부분에서설명됩니다. 참조 The Open Modbus/TCP Specification can be obtained at the Modicon website: http://www.modicon.com/openmbus/standards/openmbus.htm IPC5000 Ethernet 통신설정다음의네트워크파라메타설정을위해서는그림 1-2.2 를참조하십시요. IP 주소, Subnet Mask(Optional), Default Gateway IP 주소 (Optional) 1. PC, HMI 패널또는호스트디바이스가동일하거나또는다른 subnet 상에콘트롤러에 Access가허락되는 DHCP served 또는고정된 IP 주소와함께네트워크인터페이스카드 (NIC) 를가지고있는지먼저확인하십시요. 필요에따라콘트롤러에 IP 주소를할당하기위해서는네트워크관리자또는 IT 담당자에게문의하십시요. 2. 모든 IPC5000 콘트롤러는 192.168.0.2의디폴트 IP 주소로출하되기때문에네트워크에연결하기전에각콘트롤러의 IP 주소를설정할필요가있습니다. 콘트롤러에유일한 IP 주소가주어지기전에동일네트워크상에여러개의콘트롤라를설치하는것은문제를발생시킬수있습니다. 그림 1-2.2의 Editor에 IP 주소, Subnet Mask( 만약디폴트인 255.255.255.0과다르다면 ), 디폴트 Gateway IP 주소 ( 만약필요하거나그렇지않으면 0.0.0.0으로설정 ) 를설정하거나혹은적절한입력을위해서는 IT 네트워크관리자에게문의하십시요. Note: 새로운네트워크파라메타를설정한후에는다시컨트롤러전원을껏다가켜십시요. 각컨트롤러의고정된 IP 주소는네트워크상에설치전에독립적으로설정될것입니다. 필요하다면 IP 주소, subnet Masks, 또는디폴트 gateway IP 주소를할당하기위하여 IT 시스템관리자에게문의하십시요. ( 네트워크주소 filtering과 Routing는만약컨트롤러네트워크 Access가플랜트환경화에서로컬로국한되지않을경우필요하게될것입니다.) 2
RS-232C 통신속도 Slave 국번 (0 to 99) Modbus 통신속도 IP 주소설정편집 Gateway 설정편집 Subnet Mask설정편집 EXIT < RS-232C > BAUD RATE < MODBUS > ADDRESS 01 < ETHERNET > IP ADDRESS GATEWAY SUBMASK FP TYPE 0 NETWORK 9600 19200 FP TYPE 0 BAUD RATE 9600 19200 192. 168. 0. 2 192. 168. 0. 2 255. 255. 255. 0 0: FPB 1: FPLB 2: FPBB 3: FPL SYS SET NET SET TROUBLE 03-01 MON 08.58.45 0: FPB 1: FPLB 2: FPBB 3: FPL INITIAL Floating Point type 0 : FP B : Floating Point Big Endian Format 1 : FP LB : Floating Point Little Endian with byteswapped 2 : FP BB : Floating Point Big Endian with byteswapped 3 : FP L : Floating Point Little Endian Format 그림 1-2.2 통신설정 Ethernet 10Base-T Network 연결 초당 10MByte로동작하는 Ethernet 10Base-T 네트워크가지원됩니다. 일반적인네트워크연결은아래그림과같이구성됩니다. IPC5000 IP Address : 네트워크상에유일주소 IPC5000 IP Address : 네트워크상에유일주소 네트워크라인상에모드버스 TCP Network Adapter 10 Base-T Ethernet Computer Or Host IPC5000 의 Ethernet 연결커넥터 그림 1-2.3 Ethernet 10Base-T Network 연결 3
1.3 모드버스 RTU RS422/485 통신포트 모드버스 RTU 방법이방법은 IPC5000 Slave 포트 ( 모드버스 ) 를하니웰과다른마스터장치에연결하기위한일반화된데이터상호교환포맷을제공하기위해고안되었습니다. 모드버스 RTU는 IPC5000이모드버스 RTU 485 규약을사용하는다른장치와공유된데이터링크상에연결될수있도록하여줍니다. 이러한 IPC5000들은 MODICON 타입의장비들을에뮬레이트하지는않습니다. 모드버스 RTU 규격은물리층과데이터링크층에규정되어집니다. 모드버스 RTU Function code의메시지구조와 IEEE 32 비트 Floating point와정수포맷기준이이용됩니다. 데이터레지스터맵핑은 IPC5000에서유일합니다. 테이블 6-1에정의는 IPC5000을위한레지스터맵핑이며일치하는파라메타값입니다. 4
Wring 이 Option 모델은모드버스 RTU 지원프로토콜을공급하는 RS422/485 통신기능을가지고있습니다. LON/MODBUS 포트는 IPC5000 컨트롤러가 31개의다른 Slave IPC5000 컨트롤러와모드버스 RTU 링크와함께네트워크로연결될수있도록지원합니다. 그럼 1-3.1과 1-3.2는 Shield 된트위스트 Pair와 4 선 Shield 케이블둘중하나를사용할때의결선도를보여줍니다. (Note) LON의의미는 LonWorks 통신을의미하며 IPC5000은현재 LonWorks 통신을지원하지않습니다. SDA RDA RDB SG 2-Wire Shielded LON / MODBUS Master RX+/TX+ RX-/TX- SG 120 Ohm Resistor * 120 Ohm Resistor on Last Leg To other communication IPC5000s (Maximum 15) 그림 1-3.1 RS422/485 통신 Option 결선도 (2-Wire shield) 5
SDA SDB RDA RDB SG 4-Wire Shielded LON / MODBUS Master TX+ TX- RX+ RX- SG 120 Ohm Resistor 120 Ohm Resistor * 120 Ohm Resistor on Last Leg To other communication IPC5000s (Maximum 15) 그림 1-3.2 RS422/485 통신 Option 결선도 (4-Wire shield) 6
Setup Slave 어드레스 22 페이지의그림 1-2.2와같이 Slave 어드레스 ( 국번 ) 은 IPC5000의 NETWORK 설정화면상에서 0에서 99까지설정할수있습니다. 통신속도 22 페이지의그림 1-2.2와같이통신속도는 9600과 19200 선택하여사용할수있습니다. 모드버스 RTU 메시지포맷 Coding System Number of data bits per character Parity 표 1-3.1 모드버스 RTU 메시지포맷 8 bit binary 10 Bits start bits 1 data bits 8 parity bits 0 stop bits 1 Not used Bit transfer rate 9600, 19200 Selectable(22 페이지그림 1-2.2 참조 ) Duplex Error checking Half duplex Transceiver CRC(cyclic redundancy check) Polynomial (CRC-16 10100000000001) Bit transfer order LSB first End of message Idle line for 3.5 or more characters(>1.82 msec for 19200) 모드버스 RTU 링크 Layer 링크 Layer는다음과같은특징과동작을행합니다. Slave 주소인지, 시작과끝프레임 Dectection, CRC-16 생성및체크. 송수신메시지타임아웃, 버퍼오버플로우 Detection, 프레밍에러 Detection, Idle 라인 detection. Slave에의해받아진메시지안에서물리적 Layer에의해잡혀진에러들은무시됩니다. 그리고자동적으로물리적 Layer는다음 idle 라인 Detection 상에새로운송신을초기화함으로써통신을재개합니다. 7
일반적인모드버스 RTU 메시지포맷송신 (Query) 메시지포맷 [Slave Address, Function Code, Function code dependent data, CRC 16] 응답 (Response) 메시지포맷 [Slave Address, Function Code, Function code dependent data, CRC 16] * 만약어떤에러가유효한메시지안에서감지되었다면그응답 function code는그 function code와 80(hex) 를더한것으로수정되고다음데이터는 Section 1.5에설명된모드버스 RTU 예외 code로대체되어응답합니다. 메시지사이에있는 RS-485 링크는 high 임피던스상태에있으며, 이시간동안에수신하는장치는메시지의시작부분이 false가되도록만드는노이즈에영향받기가더쉽습니다. 비록발생된노이즈메시지가어드레스, 프레밍그리고 CRC 체크에의해거절된다하더라도, 노이즈가그메시지 stream에포함될때정상메시지의손실을일으킬수있습니다. Slave에서전송장치는그것의전송선 diver를동작시키고강제로전송전에 3문자타임슬롯을위한링크로 idle 라인상태로만듭니다. 이러한것은어떤노이즈가발생된메시지를제거하고메시지프레임의동기화를향상시킵니다. 모드버스 RTU 데이터 Layer 데이터 layer는다음과같은것들을포함합니다. Diagnostic loopback, Function code 인지 / 거절, Busy/repoll, 데이터에러코드발생 데이터 Layer에의해감지된에러는거절되고 Slave는모드버스타입상태예외에러와함께폴링장치에응답합니다. 모드버스상태예외코드는 Section 1.5( 모드버스 RTU 예외코드 ) 에서설명됩니다. 8
2. IEEE 32-bit Floating Point 레지스터정보 모드버스어플리케이션은몇몇 Function code 를위한 IEEE 32-bit floating Point 정보를제공합니다. 2.1 IEEE Floating Point 데이터포맷 Floating point 수를계산하는공식 : mantissa x 2 (exponent -127) (23 bit signed binary with 8 bit biased binary exponent) byte 4 byte 3 byte 2 byte 1 3 2 2 1 1 1 4 3 6 5 8 7 0 xxxxxxxx x.xxxxxxx xxxxxxxx xxxxxxx mantissa (23 bits) implied binary point for mantissa exponent (8 bit unsigned value) sign of the mantissa 0 = positive, 1 = negative 그림 2-1 IEEE Floating Point 데이터포맷 Mantissa and Sign Mantissa는비트 31의 Sign 과비트 23의바이너리분수로정의됩니다. 이바이너리분수는 Mantissa 값을만들어내기위한 1의 Implied 값과결합되며, 그 Mantissa 값은 1.0 과같거나또는더크고 2.0 보다는작은값입니다. Mantissa는 Sign 비트가 0이면양수이고, Sign 비트가 1이면음수입니다. 예제 : DECIMAL HEXADECIMAL BINARY 100 42C80000 01000010 11001000 00000000 00000000 Sign 비트 (31) 이 0인것은양수 Mantissa를가리키며, Sign 비트와 Exponent 비트들을제거할때 Mantissa는 다음과같이됩니다. HEXADECIMAL BINARY 480000 xxxxxxxx x1001000 00000000 00000000 Binary point의왼쪽에 Implied 값 1을더하면 BINARY 1.1001000 00000000 00000000 위치변환을이용하면, 이바이너리수는아래와같다. 1.0 + (1X2-1 )+(0X2-2 )+(0X2-3 )+(1X2-4 ) = 1.0 + 0.5 + 0.0 + 0.0 + 0.0625 = 1.5625 9
Exponent Exponent는부호없는 8비트바이너리값에의해정의됩니다. 그 Exponent의값은 8비트 exponent 값으로부터 127(decimal) 의부호있는뺄셈을수행함으로구해질수있습니다. DECIMAL HEXADECIMAL BINARY 100 42C80000 01000010 11001000 00000000 00000000 부호와 Mantissa 비트를제거하면그 Exponent 결과는아래와같습니다. DECIMAL HEXADECIMAL BINARY 133 85 x1000010 1xxxxxxx xxxxxxxx xxxxxxxx or: 1X2 7 + 0X2 6 + 0X2 5 + 0X2 4 + 0X2 3 + 1X2 2 + 0X2 1 + 1X2 0 = 그결과값을결정하기위해 Exponent 로부터 127(decimal) 의바이어스를빼면 : 133 127 = 6. Mantissa and Exponent Combination 두개의이전예제로부터 Mantissa와 Exponent를결합하면 : float number = mantissa x 2 exponent float number = 1.5625 x 2 6 = 1.5625 x 64 = 100.0 아래는 IEEE 포맷에샘플 Float 값의리스트입니다. DECIMAL HEXADECIMAL 100.0 42C0000-100.0 C2C80000 0.5 3F000000-1.75 BFE00000 0.0625 3D800000 1.0 3F800000 0.0 00000000 2.0 40000000 55.32 425047AE 10
Reserved Operands 기준에의해서 floating-point 오퍼랜드의정해진예외폼들은숫자시스템으로부터배제됩니다. 다음과같은것 들입니다. 예외 EXPONENT MANTISSA +/- Infinity All 1 s All 0 s Not-a-Number(NAN) All 1 s Other than 0 s Denormalized Number All 0 s Other than 0 s Zero All 0 s All 0 s 모드버스더블레지스터포맷 각각의 IEEE 32-비트 floating point 수는정보를위한시작레지스터로정의된그레지스터로시작하는두개의연속적레지스터 (4바이트) 를필요로합니다. 두레지스터안에바이트의순서는모드버스호스트간에다를수있습니다.( Floating Point 타입을선택하기위해서는페이지 22의그림 1-2.2를참조하십시요 ) Selection EXPONENT 바이트순서 (See Figure 2-1.1) Notes FP B Floating Point Big Endian Format 4, 3, 2, 1 IPC5000 default FP BB Floating Point Big Endian with byteswapped 3, 4, 1, 2 FP L Floating Point Little Endian Format 1, 2, 3, 4 FP LB Floating Point Little Endian with byteswapped 2, 1, 4, 3 Modicon and Wonderware standard IEEE 포맷을보기위해서는다음페이지를참조하십시요. 11
IEEE Floating Point 포맷 FP B - Floating Point Big Endian Format: Bit 31 E0 M22 M21M20 M19 M18 M17 M16 Bit 0 M7 M6 M5 M4 M3 M2 M1 M0 S E7 E6 E5 E4 E3 E2 E1 M15 M14 M13 M12 M11 M10 M9 M8 High Low High Low REGISTER N (High) REGISTER N + 1 (Low) S=Sign E=Exponent M=Mantissa FP BB - Floating Point Big Endian with Byte Swapped Format: Bit 31 Bit 24 Bit 15 Bit 8 S E7 E6 E5 E4 E3 E2 E1 M15 M14 M13 M12 M11 M10 M9 M8 Bit 23 Bit 16 Bit 7 Bit 0 E0 M22 M21M20 M19 M18 M17 M16 M7 M6 M5 M4 M3 M2 M1 M0 High Low High Low REGISTER N (High) REGISTER N + 1 (Low) S=Sign E=Exponent M=Mantissa 다음페이지계속 12
FP L - Floating Point Little Endian Format: Bit 15 Bit 8 Bit 31 Bit 24 M15 M14 M13 M12 M11 M10 M9 M8 S E7 E6 E5 E4 E3 E2 E1 Bit 7 Bit 0 Bit 23 Bit 16 M7 M6 M5 M4 M3 M2 M1 M0 E0 M22 M21M20 M19 M18 M17 M16 High Low High Low REGISTER N (High) S=Sign E=Exponent M=Mantissa REGISTER N + 1 (Low) FP LB - Floating Point Little Endian with Byte Swapped Format: Bit 7 Bit 0 Bit 23 Bit 16 M7 M6 M5 M4 M3 M2 M1 M0 E0 M22 M21M20 M19 M18 M17 M16 Bit 15 Bit 8 Bit 31 Bit 24 M15 M14 M13 M12 M11 M10 M9 M8 S E7 E6 E5 E4 E3 E2 E1 High Low High Low REGISTER N (High) S=Sign E=Exponent M=Mantissa 그림 2-1.1 IEEE Floating Point 포맷 REGISTER N + 1 (Low) 표 2-1.1 FP B 포맷의 IEEE Floating Point Number 예제 Value IEEE FP B Register N Register N + 1 (decimal) MSB LSB high low high low 100.0 42C80000h 42h C8h 00h 00h 55.32 425D47AEh 42h 5Dh 47h AEh 2.0 40000000h 40h 00h 00h 00h 1.0 3F800000h 3Fh 80h 00h 00h -1.0 BF800000h BFh 80h 00h 00h 13
3. 모드버스 TCP 와모드버스 RTU Function Codes IPC5000 모드버스프로토콜은관련정보를처리하기위한 Access를공급하는표준모드버스 Function code의일부분을이용합니다. 이러한표준 function code는인스투르먼트의데이터처리를위한 IEEE 32비트 Floating point 수와 16 비트정수레지스터표현을위한기본적지원을공급합니다. 표 3-1과 3-2는 Request 때마다허락되어지는 Function code 정의와최대 Object Address 수를나타내고있습니다. 데이터의 Repolling 은이러한인스투르먼트에의해지원되지않습니다. Table 3-1 Modbus RTU Function Codes Definitions Function Code Name Usage 01 코일상태읽기 디지털출력상태를읽는다. 02 입력상태읽기 디지털입력상태를읽는다. 03 04 홀딩레지스터읽기 / 입력레지스터읽기 05 Force Single Coil 16 비트레지스터포맷 (High/Low) 에데이터를읽는다. 정수또는 Floating point 프로세스데이터를읽기위해사용된다. 레지스터들은연속적이고 Instrument 로부터호스트에전달된다. 디지털출력을강제로 ON/OFF 하기위한데이터쓰기를한다. FF 00 는 DO 를강제로 ON 00 00 는 DO 를강제로 OFF FF FF 는 DO 의강제쓰기를알림모든다른값들은인지되지않으며 DO 에영향을주지않는다. IPC5000 은이 Function code 는지원하지않는다. 06 Preset Single Register 오직 16 비트정수포맷에데이터쓰기를한다. 08 Loopback Test 통신포트의 Diagnostic 시험을위해이용된다. 16(10h) Preset Multiple Registers 16 비트포맷에데이터쓰기를한다. 정수와 Floating point 오버라이드데이터에이용되며, 레지스터들은연속적이고호스트로부터 Instrument 에전달된다. 17(11h) Report Device ID Instrument ID 와연결정보, ROM 버전등을읽는다. 20(14h) 21(15h) Read General Reference Write General Reference Instrument의 Configuration을호스트디바이스에 upload하거나또는읽는데사용된다. Instrument의 Configuration을호스트디바이스로부터 Instrument에다운로드하거나쓰기를하기위해사용된다. 14
표 3-2 각 Instrument 타입을위한 Object 어드레스의최대수 Object Name Object 어드레스수 Analog Inputs 02 Analog Output 04 Discrete Input 12 Discrete Output/Coil 12 Loop 2 Segments per Set Point Programmer Setpoint programmer for IPC5000 Segment Event Groups 2 Link Groups 2 PID Constant Group 2 Controller Group 2 Program Group 2 Setup Group 2 Operation Group 2 Fix PV Event Groups 2 No Loop Group 1 2 2 15
3.1 Function Code 01 디지털출력상태읽기 설명 Function code 01(0X reference) 는바이너리데이터포맷에 Slave 디바이스의디지털출력 ON/OFF 상태를읽기위해사용됩니다. Function code 01을이용하여전송된모든바이너리데이터는바이트속에 Mapping 되어있으며, Instrument 또는 Function code 01메시지를경유하는유용한디지털출력의규정숫자는 Instrument 모델규격에따라다를수있습니다. 요청 (Query) 요청메시지는디지털출력시작과읽기위한코일의수를규정합니다. 디지털출력 address들은 zero에서시작합니다. DO1에서 DO16은반복적으로 0에서 15를의미합니다. Function code 01을위한요청 (Query) 메시지포맷 Slave address (00 for TCP) Function Code 시작어드레스 High 시작어드레스 Low DO 개수 High DO 개수 Low CRC (RTU) CRC (RTU) Example : 국번 02 의 Slave 로부터디지털출력 1 에서 7 까지의 ON/OFF 상태읽기 RTU example : 02 01 00 00 00 07 CRC CRC TCP example : 00 01 00 00 00 07 응답 (Response) 응답메시지에 DO 상태는데이터필드의비트당한개의 DO로구성됩니다. DO 상태는 1=ON;0=OFF 로서표현되며, 첫번째데이터바이트의 LSB는 Query에서요청한 DO를포함하고다른 DO들은그바이트의끝에서높은순서그리고그다음바이트는낮은순서에서높은순서로정렬되어집니다. 만약리턴되는 DO 수가 8 의배수가아니라면, 그마지막데이터바이트에나머지비트들은 0으로채워집니다. ( 그바이트의끝에서높은순서로 ). 그바이트카운트필드는리턴된데이터바이트의수를규정합니다. Function code 01을위한응답메시지포맷 Slave address (00 for TCP) Function Code 바이트수 데이터 데이터 CRC (RTU) CRC (RTU) Example : DO 번호 2 와 7 은 ON 이고나머지모두는 OFF 임. RTU example : 02 01 01 42 CRC CRC TCP example : 00 01 01 42 이러한응답에서 DO 1부터 7까지의상태는그바이트값 42 hex(01000010 binary) 로나타납니다. DO8은이바이트의 MSB 이고 DO1은 LSB 입니다. 왼쪽에서오른쪽으로 DO7에서 1의상태는 ON-OFF-OFF-OFF-OFF-ON- OFF 입니다. DO#8은요청되지않은것이며그래서비트 #7 또는 MSB가 0으로채워졌습니다. 16
표 3-3 IPC5000 디지털출력맵핑 코일번호 Instrument Function 1 Open Collector #1 2 Open Collector #2 3 Open Collector #3 4 Open Collector #4 5 Open Collector #5 6 Open Collector #6 7 Open Collector #7 8 Open Collector #8 9 Open Collector #9 10 Open Collector #10 11 Open Collector #11 12 Open Collector #12 17
3.2 Function Code 02 디지털입력상태읽기 설명 Function code 02(1X reference) 는바이너리데이터포맷에 Slave 디바이스의디지털입력 (DI) 의 ON/OFF 상태를읽기위해사용됩니다. Function code 02를이용하여전송된모든바이너리데이터는바이트안에 Mapping 됩니다. 하나의 Function code 02 메시지를경유하거나또는한 Instrument 안에서유용한입력의규정수는 Instrument 모델규격에따라다를수있습니다. 요청 (Query) Query 메시지는입력의시작부분과읽기위한입력의수를규정합니다. 입력어드레스는 zero에서시작합니다. 입력 1부터 16 까지의어드레스는반복적으로 0 에서 15로의미합니다. Function code 02 를위한 Query 메시지포맷 Slave address (00 for TCP) Function Code 시작어드레스 High 시작어드레스 Low DI 개수 High DI 개수 Low CRC (RTU) CRC (RTU) Example: 국번 02 에 Slave 로부터입력 1 부터 7 까지의 ON/OFF 상태읽기 RTU example : 02 02 00 00 00 07 CRC CRC TCP example : 00 02 00 00 00 07 응답 (Response) 응답메시지에입력상태는데이터필드의비트당한개의입력으로표현됩니다. DI 상태는 1=ON;0=OFF 로서표현되며, 첫번째데이터바이트의 LSB는 query에서어드레스된입력을포함하고다른 DI들은그바이트의끝에서높은순서그리고그다음바이트는낮은순서에서높은순서로정렬되어집니다. 만약리턴되는입력수가 8 의배수가아니라면, 그마지막데이터바이트에나머지비트들은 0으로채워집니다 ( 그바이트의끝에서높은순서로 ). 그바이트카운트필드는리턴된데이터바이트의수를규정합니다. Function code 02 를위한응답메시지포맷 Slave address (00 for TCP) Function Code 바이트수 데이터 데이터 CRC (RTU) CRC (RTU) Example: DI 번호 2와 7은 ON이고나머지모두는 OFF 임. RTU example : 02 02 01 42 CRC CRC TCP example : 00 02 01 42 이러한응답에서 DI 1부터 7까지의상태는그바이트값 42 hex(01000010 binary) 로나타납니다. DI8은이바이트의 MSB 이고 DI1은 LSB 입니다. 왼쪽에서오른쪽으로 DI7에서 1의상태는 ON-OFF-OFF-OFF-OFF-ON-OFF 입니다. DI #8은요청되지않은것이며그래서비트 #7 또는 MSB가 0으로채워졌습니다. 18
3.3 Function Code 03/04 입력레지스터읽기 설명 Function code 03(4X reference) 또는 Function code 04(3X reference) 는 Section 6( 프로세스와동작타입변수를위한레지스터 ) 에언급된 Slave에입력레지스터바이너리내용을읽기위해사용됩니다. Function code 3과 4는입력타입들에제한을받지않으며, Alarm 상태나또는제어파라메타등을전송할수있습니다. 만약어떤 Request 가 Section 6 맵에존재하지않는어드레스에대한것이라면 IPC5000은그 request를받아들여 zero를리턴할것입니다. 이러한동작은링크상에밴드폭을크게개선시킬것이고비연속적데이터요소들에대한몇몇다른 Request들을만들수있도록해줄것입니다.( 즉 AI #2가유효하지않을때의 AI #1에서 AI #3를포함하는디바이스를고려한것이다 ) 그연속적방법은 AI#1 부터 AI#3까지읽을수있도록해주고 AI#2를위한데이터할당은 zero로할것이다. 요청 (Query) 그요청 (query) 메시지는어드레스시작과읽기위한레지스터수를규정한다. 레지스터어드레스는 0에서부터시작됩니다 ( 즉레지스터 1-16은 0-15) Function code 03/04 를위한요청 (Query) 메시지 Slave address (00 for TCP) Function Code 시작어드레스 High 시작어드레스 Low 어드레스개수 High 어드레스개수 Low CRC (RTU) CRC (RTU) Example: 국번 02의 Slave로부터 Floating point 값으로어드레스 1800-1803에아날로그입력 #1과 #2을읽는다. RTU example : 02 04 18 00 00 04 CRC CRC TCP example : 00 04 18 00 00 04 19
응답 (Response) 응답메시지에레지스터데이터는하나의레지스터가 2 바이트로구성되어회신됩니다.. 각레지스터를위해서그첫번째바이트는높은순서의비트를포함하고다음두번째는낮은순서의비트를포함합니다. Floating point 값들은두개의연속적레지스터를요구합니다. 단일 floating point 값에대한요구는두레지스터를위한것이어야합니다. 응답의처음 16 비트는 float 값의 IEEE MSB를포함하며, 응답의두번째 16 비트는 float 값의 IEEE LSB를포함합니다. 만약 Master가 Floating point 값의어드레스를오직한개의레지스터로요구한다면 Slave는비정상적데이터어드레스를나타내는예외코드로응답할것입니다. 모드버스 RTU 프로토콜은 function code 03과 04를위한단일바이트수를가지고있습니다. 따라서모드버스 RTU 프로토콜은한번요청하는데있어서오직 64개의 Floating point와 127개의정수값까지만처리할수있습니다. Function code 03/04를위한응답메시지포맷 Slave address (00 for TCP) Function Code 바이트수 데이터 데이터 CRC (RTU) CRC (RTU) Example: Floating point 값인아날로그입력 #1과 #2는 AI#1 = 100.0이고 AI#2 = 55.32 이다. RTU example : 02 04 08 42 C8 00 00 47 AE 42 5D CRC CRC TCP example : 00 04 08 42 C8 00 00 47 AE 42 5D 20
3.4 Function Code 05 - Force Single Digital Output 설명 단일디지털출력 (0X reference) 을강제로 ON 또는 OFF 시키는것으로 Function code 01에서이용되는동일한디지털출력 (DO) 입니다. ( 주의 ) IPC5000 은이 Function Code 를지원하지않습니다. 요청 (Query) 요청메시지는강제로동작시킬 DO를규정합니다. 레지스터어드레스들은 Zero 부터시작합니다. 즉, DO1 어드레스는 0. 요청된 ON/OFF 상태는 Query 데이터필드에서상수에의해규정되어집니다. FF 00 hex 값은그 DO가 ON이되도록하는것이고 00 00 hex 값은그 DO가 OFF가되도록하는것이며, FF FF hex 값은강제로쓰기를한다는것을통지하는것입니다. Function code 05 를위한 Query 메시지포맷 Slave address (00 for TCP) Function Code DO 어드레스 High DO 어드레스 Low Force 데이터 High Force 데이터 Low CRC (RTU) CRC (RTU) Example : 국번 02의 Slave 안에 DO6을강제로 ON한다. RTU example : 02 05 00 06 FF 00 CRC CRC TCP example : 00 05 00 06 FF 00 응답 (Response) 그 DO 의강제쓰기가완료된후정상응답은 Query 의 echo 가옵니다. Function code 05 를위한응답메시지포맷 Slave address (00 for TCP) Function Code DO 어드레스 High DO 어드레스 Low Force 데이터 High Force 데이터 Low CRC (RTU) CRC (RTU) Example : 국번 02의 Slave에 DO6를강제로 ON 시킨다. RTU example : 02 05 00 06 FF 00 CRC CRC TCP example : 00 05 00 06 FF 00 21
3.5 Function Codes 06 단일레지스터조정 설명 단일레지스터 (4X reference) 안에정수값쓰기를합니다. IPC5000은 Boradcast 기능을지원하지않습니다. 비트팩데이터타입 (16 비트레지스터 ) 과정수, W Access 타입으로 Section 6에규정된레지스터들은 Fuction code 06을이용하여쓰기를할수있습니다. 요청 (Query) 요청메시지는조정될레지스터레퍼런스를규정합니다. 레지스터어드레스는 Zero부터시작합니다. 즉레지스터 1 어드레스는 0. Function code 06을위한요청메시지포맷 Slave address (00 for TCP) Function Code 어드레스 High 어드레스 Low 조정데이터조정데이터 High Low CRC (RTU) CRC (RTU) Example : 국번 02의 Slave Loop #1의모드를 Auto( 어드레스 00Fah) 로설정 RTU example : 02 06 00 FA 00 01 CRC CRC TCP example : 00 06 00 FA 00 01 응답 (Response) 정상동작에대한응답은레지스터내용들이설정된후그요청 (Query) 의 echo가리턴됩니다. Function code 06을위한응답메시지포맷 Slave address (00 for TCP) Function Code 어드레스 High 어드레스 Low 조정데이터조정데이터 High Low CRC (RTU) CRC (RTU) Example : 국번 02의 Slave Loop #1의모드를 Auto( 어드레스 00Fah) 로설정 RTU example : 02 06 00 FA 00 01 CRC CRC TCP example : 00 06 00 FA 00 01 22
3.6 Function Code 08 - Loopback 메시지 설명 받은 Query 메시지를되돌려줍니다.(Echoes) 요청 (Query) 메시지길이는 ( 데이터버퍼길이의반 - 8 바이트 ) 까지될수있습니다. Function code 08 을위한요청메시지포맷 Slave address (00 for TCP) Function Code 데이터버퍼길이의약반으로제한되는길이의데이터 CRC (RTU) CRC (RTU) Example : RTU example : 02 08 01 02 03 04 CRC CRC TCP example : 00 08 01 02 03 04 응답 (Response) Function code 08 을위한응답메시지포맷 Slave address (00 for TCP) Function Code 받은데이터바이트 CRC (RTU) CRC (RTU) Example: RTU example : 02 08 01 02 03 04 CRC CRC TCP example : 00 08 01 02 03 04 23
3.7 Function Codes 16(10h) 멀티레지스터조정 설명 홀딩레지스터 (4X reference) 의순서에따라서값을쓰기합니다. IPC5000은 Boradcast 기능을지원하지않습니다. Access 타입 W 로 Section 5에규정되어할당된레지스터들은 Function code 16(10h) 을통하여쓰기를할수있습니다. 요청 (Query) 요청메시지는조정될레지스터레퍼런스를규정합니다. 레지스터어드레스는 Zero 부터시작합니다. 즉, 레지스터 1은어드레스 0 임. Function code 16(10h) 을위한요청메시지포맷 Slave Address (00 for TCP) Function Code 시작어드레스 High 시작어드레스 Low 어드레스개수 High 어드레스개수 Low 바이트수 데이터 CRC (RTU) CRC (RTU) Example : 국번 02의 Slave로부터정치제어를위한 Loop 1의 Set Point(BC08h) 값을 100.0으로설정. RTU example : 02 10 BC 08 00 02 04 42 C8 00 00 CRC CRC TCP example : 00 10 BC 08 00 02 04 42 C8 00 00 응답 (Response) 정상응답일경우국번, Function code, 시작어드레스, 어드레스개수를리턴합니다. Floating point 값은두개의연속어드레스를필요로합니다. 한개의 Floating point 값을쓸때는어드레스개수가 2개가되어야합니다. Floating point 수의바이트순서는바이트 swap configuration 설정값에따라서결정됩니다. ( 페이지 8의그림 1-2.2 참조 ). 이번예제에서의바이트 swap 순서는 FP B이며, Subsection 2.1에설명되어있습니다. 응답의첫번째 16 비트는 float 값의 IEEE MSB를포함하고응답의두번째 16 비트는 float 값의 IEEE LSB를포함합니다. 바이트순서는 Subsection 2.1을설명되어있습니다. 만약 Master가 Floating point 값의어드레스에서오직어드레스수를하나로하여요청한다면 Slave는비정상데이터어드레스인예외코드 (Section 4 참조 ) 로응답할것입니다. Function code 16(10h) 를위한응답메시지포맷 Slave address (00 for TCP) Function Code 시작어드레스 High 시작어드레스 Low 어드레스개수 High 어드레스개수 Low CRC (RTU) CRC (RTU) Example : 국번 02의 Slave로부터정치제어를위한 Loop 1의 Set Point(BC08h) 값을 100.0으로설정응답. RTU example : 02 10 BC 08 00 02 CRC CRC TCP example : 00 10 BC 08 00 02 24
3.8 Function Code 17(11h) 디바이스 ID 보고 설명 Function code 17(11h) 는 Slave ID, 디바이스설명, Firmware 버전과같은정보를포함하는디바이스정보를보고하는데사용됩니다. 요청 (Query) 요청메시지는오직 Function code 만을규정합니다. Function code 17(11h) 를위한요청메시지포맷 Slave address (00 for TCP) Function Code CRC (RTU) CRC (RTU) Example : 국번 02의 Slave로부터디바이스 ID를읽는다. RTU example : 02 11 CRC CRC TCP example : 00 11 응답 (Response) 응답은 IPC5000을표현하는레코드포맷입니다. Function code 17(11h) 를위한응답메시지포맷 Slave address (00 for TCP) Function Code 바이트수 Slave ID RUN 동작상태지적 디바이스규격데이터 CRC (RTU) CRC (RTU) Slave ID IPC5000을위한 Slave ID 번호는 50(Hex) 입니다. (1 바이트 )( 국번을제외한패킷에 3번째바이트 ) RUN 동작상태지적 : (1 바이트 )(4 번째바이트 ) 00 = OFF; FF = ON 디바이스규격데이터 : 디바이스표현 Model ID 디바이스계층 ID 디바이스맵핑 디바이스표현 : (5번째바이트 20 번째바이트 ) 16문자 ASCII 메시지포맷 : I P C 5 0 0 0 9 개문자까지 Floating point 표현으로버전표시 나머지바이트를위해서는 Zero 가덧붙여집니다. 25
예제 : 버전 1.0으로 IPC5000의디바이스표현을하면다음과같습니다. I P C 5 0 0 0 1. 0 0 0 0 0 0 Model ID : 00(1 바이트 )(21번째바이트 ) 디바이스계층 ID : 디바이스분류 (1 바이트 )(22 번째바이트 ) 계층 ID 계층 00 포괄적계층 (Fixed Address Mapable) 01-FF Future 포괄적계층 (00) 디바이스맵핑 : I/O와맵핑특징을표현합니다. 레코드의수 레코드 #1 레코드 #2 레코드 레코드 #n 레코드의수 : 양수값 00-FFh의 1 바이트 (23번째바이트 ) 레코드표현 : 바이트 설 명 00 데이터요소타입 ( 아래데이터요소값표를참조하십시요.) 01 데이터요소레코드의시작 High 어드레스 02 데이터요소레코드의시작 Low 어드레스 03 데이터요소의수 (High) 04 데이터요소의수 (Low) 26
데이터요소값표 : 바이트 설 명 00 아날로그입력들 01 아날로그출력들 02 디지털입력들 03 디지털출력들 04 제어루프들 05 Set Point 프로그래머들 24 IPC5000을위한 Set Point 프로그래머 25 세그먼트이벤트그룹 27 링크그룹 28 PID 상수그룹 29 컨트롤러 ( 정치제어 ) 그룹 30 프로그램그룹 31 셋업그룹 32 동작그룹 33 정치 PV 이벤트그룹 34 루프에속하지않는그룹 27
4. 모드버스 RTU 예외코드 4.1 개요 Master 디바이스는요청 (query) 를 Slave 디바이스에보낼때는정상응답을기대합니다. 4개의가능한사항들중하나가 Master의요청으로부터발생할수있습니다 : Slave 디바이스가통신에러가없는요청 (query) 를받고정상적으로요청 (query) 를핸들링할수있다면그것은정상응답을리턴합니다. Slave가통신에러때문에요청 (query) 를받지않는다면그것은응답을리턴하지않습니다. Master 프로그램은요청 (query) 을위한타임아웃조건을사항에따라서처리할것입니다. Slave가요청 (query) 을받고통신에러 (Parity, LRC 또는 CRC) 가감지되었다면응답을리턴하지않습니다. Master 프로그램은요청 (query) 을위한타임아웃조건을사항에따라서처리할것입니다. Slave가통신에러가없는요청 (query) 을받았으나그것을핸들링할수없다면 ( 즉, 존재하지않는코일또는레지스터에요청 ) Slave는에러 ( 잘못된데이터어드레스 ) 의특징을 Master에게알려주는예외응답으로리턴할것입니다. 예외응답메시지는정상응답과다른두가지필드를가지고있습니다. Function Code 필드 : 정상응답에서 Slave는응답의 function code 필드에원래요청 (query) 의 Function code를보내줍니다. 모든 Function code들은 0이최상위비트 (MSB) 를가지고있습니다. 즉그값들은 80hex 값이하입니다. 반면예외코드응답에서 Slave는최상위비트를 1로설정합니다. 이것은정상응답값보다정확히 80hex가더높은값을응답하도록만들기위한것입니다. Function code의 MSB를 1로설정함으로써 Master의어플리케이션프로그램은예외응답을인식할수있습니다. 그리고예외코드를위한데이터필드를검사할수있습니다. 데이터필드 : 정상응답에서 Slave는데이터필드안에데이터또는통계자료를리턴할것입니다. 예외응답에서 Slave는데이터필드안에예외코드를리턴합니다. 이것은예외가생긴 Slave 조건을정의합니다. 요청 (Query) Example : 컨트롤러로부터어드레스 1820h에서시작하는두레지스터를읽는 Slave 내부에러 00 03 18 20 00 02 응답 (Response) Example : Function code 바이트에 MSB가데이터필드안에 Slave 디바이스실패 (04) 코드와함께 1로설정되어리턴됩니다. 00 83 04 28
예외코드 01 허용되지않는 Function 02 허용되지않는데이터어드레스 표 4-1 모드버스 RTU 데이터 Layer 상태예외코드 정의설명 받은메시지가요청받은디바이스로부터허락되지않는동작을요청한경우입니다. 지원되지않는 Function code를요청한경우입니다. 메시지의 Function 관련된데이터부분에언급된어드레스가요청받은디바이스에서유효하지않은경우입니다. 03 허용되지않는데이터값 04 Slave 디바이스실패 06 Slave 디바이스 Busy 요청받은디바이스위치에언급된값이범위를벗어난경우입니다. 요청받은디바이스 Bad 디바이스상태로인해유효한메시지를처리하지못한경우에해당됩니다. 요청받은디바이스가 Busy 상태로인해메시지를거절한경우입니다. 후에다시 Retry 하십시요. 07 NAK, Negative Acknowledge 요청받은디바이스가현재메시지를처리할수없습니다. 디바이스종속에러데이터를얻기위해 PROGRAM POLL 을실행하십시요. 09 버퍼오버플로우 레지스터의요청된수를위해리턴되는데이터가허용되는버퍼공간보다더큰경우입니다. 이것은 Function code 20 에서만발생될수있는것입니다. 29
5. 동작타입변수와처리를위한레지스터맵 이번장은 Function code 03,04,06 과 10h에의해 Access 되는모든파라메터를설명합니다. 5.1 장은각기능의글로벌개요와그것의어드레스와레지스터를제공합니다. 5.2 에서 5.20 장까지는자세한각기능과그것의각파라메타에관한자세한내용을포함합니다. IPC5000은글로벌모든파라메타를포함하지는않습니다. 5.1 레지스터맵개요 표 5-1은 Function Code 03, 04, 06, 10h를위한글로벌레지스터맵을나타냅니다. 각어드레스에관한자세한내용을 5.2 에서 5.20 장을참조하십시오. Hex 어드레스번호의 Decimal 레지스터번호로변환어드레스번호를레지스터번호로변환하기위해서는어드레스를 Hexidecimal에서 decimal로변환하시고 1을더하십시오. 레지스터는 zero에서시작하여어드레스됩니다. 즉레지스터 1-16은 0-15로어드레스됩니다. 레지스터번호를어드레스번호로변환하기위해서는레지스터로부터 1을빼고 Hex로변환하십시오. 표 5-1 글로벌레지스터맵 시작어드레스종료어드레스 (hex) (hex) 설명 비고 0000 < 0040 분산파라메타 IPC5000에서는유용하지않음 0040 00FF 루프 ( 채널 ) #1 (floating point & bit packed) 0140 01FF 루프 ( 채널 ) #2(floating point & bit packed) 1800 187F 아날로그입력값 (#1-#2) 1DF0 1DF6 시간 1E00 1E0F Set Point Programmer #1 1E10 1E1F Set Point Programmer #2 1F00 1F3F Set Point Programmer #1 Additional Values 1F40 1F7F Set Point Programmer #2 Additional Values 8000 844B Set Point programmer #1 segment (1 100) IPC5000만유용함 844C 8897 Set Point programmer #2 segment (1 100) IPC5000만유용함 8898 88B0 Set Point Programmer #1 IPC5000만유용함 88B1 88C9 Set Point Programmer #2 IPC5000만유용함 88CA A999 세그먼트 Set Point 이벤트 #1(1-100) IPC5000만유용함 A99A CA69 세그먼트 Set Point 이벤트 #1(1-100) IPC5000만유용함 30
시작어드레스종료어드레스 (hex) (hex) 설명 CB00 CB3B 링크그룹 #1 (1 10) CB3C CB77 링크그룹 #2 (1 10) CB78 CC46 PID 그룹 #1 (1 8) CC48 CD16 PID 그룹 #2 (1 8) CD17 CD2A 컨트롤러 ( 정치 ) 그룹 #1 CD2A CD3E 컨트롤러 ( 정치 ) 그룹 #2 CD3F CD4C 프로그램그룹 #1 CD4D CD5A 프로그램그룹 #2 CD5B CD72 셋업그룹 #1 CD73 CD8A 셋업그룹 #2 CD8B CD9B 동작그룹 #1 CD9C CDAC 동작그룹 #2 CDAD CDF4 정치 PV 이벤트그룹 CDF5 CDFE 공통데이터그룹 비고 31
5.2 루프 ( 채널 ) 치 (Loop Value) 레지스터맵 이표는루프 ( 채널 ) #1의어드레스를포함하고있습니다. 루프 ( 채널 ) #2의어드레스를위해서는페이지 35에표 5-1을참조하십시오. 표 5-2 루프 ( 채널 ) 치 (Loop Value) 레지스터맵어드레스어드레스레지스터파라메타명 Access 비고 (hex) (decimal) 0040 0065 현재값 (PV) R Floating Point in Engineering Units 0042 0067 리모트설정값 (SP2) R 32 Floating Point in Engineering Units IPC5000 에서는유용하지않음 0044 0069 가변설정값 (Working Set Point) R Floating Point in Engineering Units 0046 0071 출력 (Output) Floating Point in Engineering Units 매뉴얼운전의경우에만쓰기가능 0048 0073 현재값 (PV) R Floating Point in Engineering Units 004A 0075 입력 (Input #1) R 004C 0077 게인 (Gain #1) 또는비례대 (Prop Band #1) 004E 0079 제어방향 (Direction) R 0050 0081 리셋 (Reset #1) R 0052 0083 레이트 (Rate #1) R R Floating Point in Engineering Units IPC5000에서는유용하지않음 Floating Point in Engineering Units Note 1 Floating Point 0.0 = Reverse; 1.0 = Direct Floating Point in Engineering Units Minutes/Repeat Note 1, 적분상수 Floating Point in Minutes Note 1, 미분상수 0054 0085 제어사이클타입 (Cycle Time #1) R Floating Point in Seconds 0056 0087 PV 하한범위 (PV Low Range) R Floating Point in Engineering Units 0058 0089 PV 상한범위 (PV High Range) R Floating Point in Engineering Units 005A 0091 알람 #1 설정값 #1(Alarm #1 SP #1) R 005C 0093 알람 #1 설정값 #1(Alarm #1 SP #2) R 0060 0097 게인 (Gain #2) 또는비례대 (Prop Band #2) 0062 0099 Deadband R 0064 0101 리셋 (Reset #2) R 0066 0103 레이트 (Rate #2) R R Floating Point in Engineering Units IPC5000에서는유용하지않음 Floating Point in Engineering Units IPC5000에서는유용하지않음 Floating Point in Engineering Units Note 1 Floating Point Note 1 Floating Point in Engineering Units Minutes/Repeat Note 1, 적분상수 Floating Point in Minutes Note 1, 미분상수 0068 0105 제어사이클타입 (Cycle Time #2) R Floating Point in Seconds Note 1 : 해당되는파라메타에데이터를쓰기위해서는, 먼저루프1 의 CB78(hex) 또는루프 2의 CC48(hex) 를이용하여현재 PID 제어를위해적용되고있는그룹또는 PID zone 을안후에 PID 상수영역에데이터를써야합니다. 상기레지스터에는직접데이터를쓸수없습니다. 게인 #1, 리셋 #1, 레이트 #1은 Heat/Cool 제어또는정상 PID 제어에서가열을위한 PID 상수들이고, 게인 #2, 리셋 #2, 레이트 #2는오직 Heat/Cool 제어만사용되는냉각을위한 PID 상수들입니다.
어드레스 (hex) 레지스터 (decimal) 파라메타명 Access 비고 006A 0107 LSP #1 006C 0109 LSP #2 006E 0111 알람 #2 설정값 #1(Alarm #1 SP #1) R 0070 0113 알람 #2 설정값 #1(Alarm #1 SP #2) R 0074 0117 SP 하한제한 (SP Low Limit) 0076 0119 SP 상한제한 (SP High Limit) Floating Point in Engineering Units 정치제어의 Target 설정값 Floating Point in Engineering Units IPC5000에서는유용하지않음 Floating Point in Engineering Units IPC5000에서는유용하지않음 Floating Point in Engineering Units IPC5000에서는유용하지않음 Floating Point in Engineering Units SP 설정제한 Floating Point in Engineering Units SP 설정제한 0078 0121 가변설정값 (Working Set Point) R Floating Point in Engineering Units 007A 0123 출력하한제한 (Output Low Limit) 007C 0125 출력상한제한 (Output High Limit) 007E 0127 제어출력값 (Output Working Value) Floating Point in Engineering Units Note 1 Floating Point in Engineering Units Note 1 Floating Point in Engineering Units 매뉴얼운전의경우에만쓰기가능 0088 0137 바이어스 (Bias) Floating Point in Engineering Units 008A 0139 편차값 (Deviation) R 008E 0143 매뉴얼리셋 (Manual Reset) R 00F7 0248 퍼지제어유무 (Enable/Disable Fuzzy) 00F8 0249 TUNE 동작 (Demand Tune Request) 00FA 0251 Auto/Manual 상태 00FD 0254 Tune Set 상태 Floating Point in Engineering Units (SP PV) Floating Point in Engineering Units Note 1 Bit Packed Bit 0 : 0 : Disable; 1: Enable Bit 1-15 : Unused Bit Packed( 한번의 Enable 명령은 Tuning 이완료될때까지오토튜닝동작을함 ) Bit 0 : 0 : Disable; 1: Enable Bit 1-15 : Unused STOP 또는매뉴얼동작에서는유용하지않음. Bit Packed Bit 0 : 0 : Manual; 1: Auto Bit 1-15 : Unused 튜닝동작중에는유용하지않음 Bit Packed(Heat/Cool 튜닝상수를선택함 ) Bit 0 : 0 : Heat Tune Set 1 : Cool Tune Set Bit 1-15 : Unused Heat/Cool 제어인경우에만유용함 Note 1 : : 해당되는파라메타에데이터를쓰기위해서는, 먼저루프1 의 CB78(hex) 또는루프 2의 CC48(hex) 를이용하여현재 PID 제어를위해적용되고있는그룹또는 PID zone 을안후에 PID 상수영역에데이터를써야합니다. 상기레지스터에는직접데이터를쓸수없습니다. 33
5.3 Function codes 3, 6, 16 을이용하여요청 (Query) 하는예제 예제 1 : 요청 (Query) : Function code 3(hex codes) 를이용하여 IPC5000으로부터루프1의 PV, 리모트설정값, 가변설정값, 제어출력값을읽는예제. 이것은연속레지스터를 Access 함으로되어질수있음. 00 03 00 40 00 08 CRC CRC 응답 : 여기서 PV = 1000.0, 리모트설정값 = 0.0( 고정 ), 가변설정값 = 1000.0, 제어출력값 = 50.0 00 03 10 44 7A 00 00 00 00 00 00 44 7A 00 00 42 48 00 00 CRC CRC 예제 2 : 요청 (Query) : function code 16(10hex) 를이용하여 IPC5000에루프1의 LSP(address 006A) 에 100.0을쓰는예제 Function code 16은멀티레지스터를조정하는데이용되고레지스터는 Zero에서어드레스가시작합니다. 레지스터 1은어드레스 0 임. 00 10 00 6A 00 02 04 42 C8 00 00 CRC CRC Response : LSP #1 의조정으로부터어드레스 006A 에 100.0 을씀. 00 10 00 6A 00 02 CRC CRC 예제 3 : 요청 (Query) : 컨트롤러에루프 1을 Auto( 레지스터 00FA hex) 로설정하는예제이것은 bit-packed 단일레지스터데이터타입이고레지스터는 Zero 에서어드레스가시작합니다. 레지스터 1은어드레스 0임. 00 06 00 FA 00 01 CRC CRC 응답 : 컨트롤러의제어모드가 AUTO 변경됨. 00 06 00 FA 00 01 CRC CRC 34
5.4 아날로그입력값레지스터맵 Function Code 03,04 어드레스 (hex) 표 5-4 아날로그입력값레지스터맵어드레스- Function Code 03,04 레지스터채널번호 Access 비고 (decimal) 1800 6145 아날로그입력 #1(Analog Input #1) R 1802 6147 아날로그입력 #2(Analog Input #2) R Floating Point in Engineering Units 예제 Function code 03 을이용하여 IPC5000 으로부터아날로그입력 1 과 2 를읽는예제 00 03 18 00 00 04 CRC CRC AI 1 = 100.0 과 AI 2 = 55.32 를 IPC5000 이응답함. 00 03 08 42 C8 00 00 42 5D 47 AE CRC CRC 35
5.5 시간레지스터맵 어드레스 (hex) 레지스터 (decimal) 표 5-5 시간레지스터맵어드레스 채널번호 Access 비고 1BE0 7137 시간 0 ~ 23 1BE1 7138 분 0 ~ 59 1BE2 7139 초 0 ~ 59 1BE3 7140 월 1 ~ 12 1BE4 7141 일 1 ~ 31 1BE5 7142 년 1BE6 7143 요일 읽기 : 1999 ~ 2099 쓰기 : 00 ~ 99는 2000 ~ 2099 임. 0 : 일 1 : 월 2 : 화 3 : 수 4 : 목 5 : 금 6 : 토 ( 주 ) 시간과날짜를쓰기할경우에는 Function Code 6 을이용하십시오. Function Code 16 은유용하지않습니다. 36
5.6 Set Point Program 레지스터맵 요약 Set Point programmers는프로그램상태와상호동작, 다른프로그래머파라메타와프로그램세그먼트맵핑, 편집과스타일에관련된카테고리에따라서나열되어집니다. 어떤장은또한 Third Party Software를위한 SP 프로그래머와인터페이스수단을구성하는것을돕기위해공급됩니다. 지원 Function Code : 읽기 Function Code 3,4 쓰기 Function Code 6,16(10 Hex) 다운로드, 조작과 SP 프로그래머의상태를읽기위한고려와방법 : 한 SP 프로그래머인터페이스는다음표에서리스트되는파라메타를이용하는 Third Party Software에서개발될수있고 SP 프로파일 (Profile) 을포함하는방법이만들어질수있습니다. 많은세그먼트를보여주는 SP 프로그래머인터페이스를제작하는데있어서그래픽디스플레이는여러분이처리를위해이용할 Ramp/Soak 세그먼트의최대수를참조하는표를포함할수도있을것입니다. 각세그먼트를위해참조되는파라메타는표 5-10( 레지스터맵 ) 에리스트됩니다. 프로그래머번호 다음에파라메타들은 SP 프로그래머 1을참조합니다. 표 5-6은모든 SP 프로그래머를위한시작과끝어드레스를나열한것입니다. 표 5-6 SP programmer 어드레스 시작 시작 종료 종료 프로그래머번호 어드레스 어드레스 어드레스 어드레스 비고 (Hex) (Decimal) (Hex) (Decimal) SP Programmer 1 1E00 7681 1E0F 7696 SP Programmer 2 1E10 7697 1E1F 7712 SP Programmer 1 8898 34969 88B0 34992 SP Programmer 2 88B1 34993 88C9 35017 IPC5000에서만오직사용됨. IPC5000에서만오직사용됨. 37
프로그램을제어하기 프로그램을제어하기위해서다음파라메타들이 access 될수있습니다. 프로그래머현재의세그먼트번호 (Current Segment Number) 현재의남은시간 (Current Time Remaining) 어드레스 (Hex) 어드레스 (Decimal) 1E02 7683 표 5-7 참조 1E08 7689 표 5-7 참조 비고 동작상태 (Status) 1E0B 7692 표 5-7 참조 Start(write only) 1E0C 7693 표 5-7 참조 Hold(write only) 1E0D 7694 표 5-7 참조 Advance(write only) 1E0E 7695 표 5-7 참조 Reset(write only) 1E0F 7696 표 5-7 참조 세그먼트편집 (Segment Edit) 88AF 34991 표 5-7 참조 프로파일 (Profile) 을위한파라메타 프로파일 (Profile) 을위한파라메타를위해다음을정의할필요가있습니다. 프로그래머 루프1 시작설정값 (Start Setpoint Loop 1) 루프2 시작설정값 (Start Setpoint Loop 2) 시작모드 (Start Mode) 우선순위 (Priority) 저장프로그램번호 (Saving Program number) 어드레스 (Hex) 어드레스 (Decimal) 8898 34968 표 5-8 참조 889A 34970 표 5-8 참조 889C 34972 표 5-8 참조 889D 34793 표 5-8 참조 88B0 34992 표 5-8 참조 비고 38
Setpoint 프로그램을다운로드하기위한과정 이단계들은프로그래머 1을위한것입니다. 프로그래머 2를위해서는시작어드레스를위한오프셋을더함에따라서레지스터어드레스가조정됩니다. 표 5-6.1 은 Function Codes 3, 4, 6, 16 을이용하여다운로드하기위한것입니다. 순서 1 2 3 4 5 표 5-6.1 모드버스 Function Codes 3, 4, 6, 16을이용하여 Setpoint 프로그램을다운로드하는순서동작 7696(1E0F) 에 1을써서프로그래머를 RESET(STOP) 하십시오. 이것은 Function Code 6 또는 16을이용하여될수있습니다. 34992(88B0) 에저장할프로그램번호를설정하십시오. 다운로드하기위한프로그램번호는 0 부터 31까지입니다 (Sync 모드의경우 ). 이것은 Function Code 6 또는 16을이용하여행할수있습니다. Set Point 프로그래머그룹에데이터쓰기를하십시오. 레지스터는 34968(8898) ~ 34990(88AE) 입니다. 단 34974(889E) 는오직읽기파라메타이기때문에예외입니다. 레지스터 8898과 889A는 Float 이고 Function Code 16을이용하여쓰기해야합니다. 레지스터 889C부터88B0(5번째반복수 ) 까지는부호있는 16 비트정수이고 Function Code 6 또는 16으로쓰기가될수있습니다. Set Point 프로그래머세그먼트그룹에각세그먼트를위한데이터를쓰기하십시오. 레지스터는읽기전용레지스터를제외한세그먼트 0을위해서는 8000 ~ 800A 입니다. 또한세그먼트 1을위해서는 800B ~ 8015 입니다. 처음 3개의레지스터는 Float 이기때문에 Function code 16을이용하여쓰기해야합니다. 나머지레지스터는부호있는 16 비트정수이고 Function Code 6 또는 16로쓰기가될수있습니다. Set Point 프로그래머세그먼트이벤트그룹에각세그먼트를위한데이터를쓰기하십시오. 세그먼트 0을위해서는 88CA ~ 891D 입니다. 또한세그먼트 1을위해서는 891E ~ 8971 입니다. 처음 2개의레지스터는 Float 이기때문에 Function Code 16을이용하여쓰기해야합니다. 나머지레지스터는부호있는 16 비트정수이고 Function Code 6 또는 16으로쓰기가될수있습니다. Setpoint 프로그램을업로드하기위한과정 순서 1 2 3 4 표 5-6.2 모드버스 Function Codes 3,4,6,16 을이용하여 Setpoint 프로그램을업로드하는순서동작 34992(88B0) 에불러올프로그램번호를설정하십시오. 불러오기위한프로그램번호는 0 부터 31까지설정될수있습니다 (Sync 모드의경우 ). 이것은 Function Code 6 또는 16을이용하여될수있습니다. Function Code 3또는 4를이용하여원하는레지스터 34968(8898) ~ 34990(88AE) 의데이터를읽으십시오. 등록된세그먼트수는 34974(889E) 을통하여알수있습니다. Function Code 3 또는 4를이용하여원하는각세그먼트를위한데이터를읽으십시오. 세그먼트 0을위한레지스터는 8000 ~ 800A 이고세그먼트 1을위한레지스터는 800B ~ 8015 등입니다. 읽는데이터들은등록된세그먼트수만큼차례로읽으시면됩니다. Function Code 3 또는 4를이용하여원하는각세그먼트이벤트를위한데이터를읽으십시오. 세그먼트 0을위한레지스터는 88CA ~ 891D이고세그먼트 1을위한레지스터는 891E ~ 8971등입니다. 읽는데이터들은등록된세그먼트수만큼차례로읽으시면됩니다. 39
5.7 Set Point 프로그래머값레지스터맵 어드레스 (hex) 레지스터 (decimal) 표 5-7 Setpoint 프로그래머 #1 값레지스터맵어드레스 채널번호 Access 비고 1E00 7681 Set Point Output R 1E02 7683 1E08 7689 현재의세그먼트번호 (Current Segment Number) 세그먼트남은시간 (Segment Time Remaining) 1E0B 7692 동작상태 (Status) R 1E0C 7693 Start(Run) W 1E0D 7694 Hold W 1E0E 7695 Advance W 1E0F 7696 Reset(Stop) W Note 3 : 현재의세그먼트는한명령당다음세그먼트로이동합니다. 40 R R Floating Point in Engineering Units. IPC5000에서는유용하지않음 Floating Point; # 0 to # 99 현재동작중인세그먼트 Floating Point in Seconds or Time units Bit Packed Bit 0 : 1 = Ready Bit 1 : 1 = Run Bit 2 : 1 = Hold Bit 3 : 1 = End 만약 Bit 4 = 1 이고 Bit 5 = 1이면 Time Unit은분 / 초만약 Bit 5 = 1 이고 Bit 6 = 1이면 Time Unit은시 / 분 Bit 7 : Ramp Units 0 : Time 1 : Rate Bit 8 and 9 : Unused Bit 10 : 0 : 현재세그먼트 Soak 1 : 현재세그먼트 Ramp Bit 11 to 15 : Unused 양수 16 비트정수 1 : Run 실행 0 : 데이터무시 Note 1, Note 2 양수 16 비트정수 1 : Hold 실행 0 : Hold 중단 -> RUN 복귀 Note 1, Note 2 양수 16 비트정수 1 : Advance 실행 0 : 데이터무시 Note 1,3 양수 16 비트정수 1 : Stop 실행 0 : 데이터무시 Note 1, Note 2 Note 1 : 이레지스터들은프로그래머모드뿐만아니라컨트롤러모드 ( 정치제어 ) 에서도유용합니다. Note 2 : 명령현재상태 Run Hold Stop Run 설정에러 Hold Stop Hold Run 설정에러 Stop Stop Run 설정에러설정에러
5.8 IPC5000 을위한 Set Point 프로그래머레지스터맵 이파라메타들은컨트롤러의동기 (Sync) 또는비동기 (Async) 모드에따라서유용하거나또는유용하지않습니다. 어드레스 (hex) 레지스터 (decimal) 8898 34968 889A 34970 889C 34972 889D 34973 889E 34974 889F 34795 88A0 34976 88A1 34977 88A2 34978 88A3 34979 88A4 34980 88A5 34981 88A6 34982 88A7 34983 88A8 34984 88A9 34985 88AA 34986 88AB 34987 Continued Next page 표 5-8 Set Point 프로그래머레지스터맵어드레스 채널번호 Access 비고 루프1 시작설정값 (Start Setpoint Loop 1(SSP1)) 루프 2 시작설정값 (Start Setpoint Loop 2(SSP2)) 시작모드 (Start Mode) 우선순위 (Priority) 등록된세그먼트수 (Segment Count) 전체반복수 (All Repeat Count) 반복종료세그먼트 1 (Repeat End Segment 1) 반복시작세그먼트 1 (Repeat Start Segment 1) 반복수 1 (Number of Repeats 1) 반복종료세그먼트 2 (Repeat End Segment 2) 반복시작세그먼트 2 (Repeat Start Segment 2) 반복수 2 (Number of Repeats 2) 반복종료세그먼트 3 (Repeat End Segment 3) 반복시작세그먼트 3 (Repeat Start Segment 3) 반복수 3 (Number of Repeats 3) 반복종료세그먼트 4 (Repeat End Segment 4) 반복시작세그먼트 4 (Repeat Start Segment 4) 반복수 4 (Number of Repeats 4) R Floating Point 설정범위 : SP 상 / 하한제한 SSP2 는비동기모드에서유용하지않음 부호있는 16 비트정수 0: SSP; 1: SPV; 2:TIME 부호있는 16 비트정수 0: PV1; 1: PV2 It is not available at Async. mode. 부호있는 16 비트정수한프로그램에등록된세그먼트수한프로그램은 100개의세그먼트를가질수있음. 부호있는 16 비트정수설정범위 : 1 ~ 999 한개의프로그램을반복하는횟수 부호있는 16 비트정수설정범위 : 등록된세그먼트수이내종료세그먼트는시작세그먼트보다커야함. 부호있는 16 비트정수설정범위 : 1 ~ 999 부호있는 16 비트정수설정범위 : 등록된세그먼트수이내종료세그먼트는시작세그먼트보다커야함. 부호있는 16 비트정수설정범위 : 1 ~ 999 부호있는 16 비트정수설정범위 : 등록된세그먼트수이내종료세그먼트는시작세그먼트보다커야함. 부호있는 16 비트정수설정범위 : 1 ~ 999 부호있는 16 비트정수설정범위 : 등록된세그먼트수이내종료세그먼트는시작세그먼트보다커야함. 부호있는 16 비트정수설정범위 : 1 ~ 999 41
Address (hex) Register (decimal) 88AC 34988 88AD 34989 88AE 34990 88AF 33991 88B0 34992 Channel Number Access Notes 반복종료세그먼트 5 (Repeat End Segment 5) 반복시작세그먼트 5 (Repeat Start Segment 5) 반복수 5 (Number of Repeats 5) 세그먼트편집 (Segment edit) 프로그램저장번호 (Program Save Request) W 부호있는 16 비트정수설정범위 : 등록된세그먼트수이내종료세그먼트는시작세그먼트보다커야함. 부호있는 16 비트정수설정범위 : 1 ~ 999 부호있는 16 비트정수한프로그램안에한세그먼트를지우고삽입하기위한편집명령어. Bit 0 7 : 삽입또는지울세그먼트번호 Bit 8 : 0 : 삽입 ; 1 : 삭제비트 0 ~ 7의세그먼트번호는등록된세그먼트카운트이내로쓰여져야함. 삽입명령으로이벤트를제외하고이전세그먼트와동일한값들이저장됨. 이벤트는 Default(0) 값이저장됨. 부호있는 16 비트정수저장또는읽을프로그램번호 Async 모드의경우채널 1 은 0 ~ 15, 채널 2는 16 ~ 31 이며, Sync 모드의경우채널구분없이 0 ~ 31 입니다. 예제 이것은 3번프로그램의 1번세그먼트에데이터를삽입하는예제입니다. 프로그램 3에등록된세그먼트수는 1보다더커야합니다. 편집될프로그램번호를 3으로설정합니다. 00 06 88 B0 00 03 CRC CRC Response : 00 06 88 B0 00 03 CRC CRC 1 번세그먼트에 Zero 데이터를삽입합니다. 00 06 88 AF 00 01 CRC CRC Response : 3 번프로그램의데이터는그림 5-8 의오른쪽그림처럼보여집니다. 00 06 88 AF 00 01 CRC CRC 42
PROGRAM 3 SEGMENTS 2 SEG SP PID TIME JC EVENT SET GS 00 50.0 6 00:20 1 M M M P T P 0 A T T 0 0 0 01 50.0 3 01:00 1 M M M P P P 2 A P T 0 0 0 PROGRAM 3 SEGMENTS 3 SEG SP PID TIME JC EVENT SET GS 00 50.0 6 00:20 1 M M M P T P 0 A T T 0 0 0 01 50.0 6 00:00 1 M M M 0 0 0 0 A 0 0 0 0 0 02 50.0 3 01:00 1 M M M P P P 2 A P T 0 0 0 그림 5-8 한프로그램에 Default 세그먼트삽입 43
5.9 Set Point 프로그래머세그먼트레지스터맵 한개의프로파일은 100개의세그먼트까지포함합니다. 각세그먼트는 23개의레지스터로구성되어있습니다. 이표 ( 표 5.9) 는 SP 프로그래머 #1과 #2의세그먼트맵과 Set Point 프로그래머 #1 세그먼트이벤트맵을포함합니다. 글로벌레지스터맵 ( 표 5-1) 을어드레스의시작과끝을위해참조하십시오. 표 5-9 Set Point 프로그래머세그먼트맵어드레스 시작어드레스 시작어드레스 종료어드레스 종료어드레스 설명 (Hex) (Decimal) (Hex) (Decimal) 8000 32768 800A 32778 Set Point 프로그래머 #1 세그먼트 1 800B 32779 8015 32789 Set Point 프로그래머 #1 세그먼트 2 8016 32790 8020 32800 Set Point 프로그래머 #1 세그먼트 3 8021 32801 802B 32811 Set Point 프로그래머 #1 세그먼트 4 802C 32812 8036 32822 Set Point 프로그래머 #1 세그먼트 5 8037 32823 8041 32833 Set Point 프로그래머 #1 세그먼트 6 : : : : : 8441 33857 844B 33867 Set Point 프로그래머 #1 세그먼트 100 844C 33868 8456 33878 Set Point 프로그래머 #2 세그먼트 1 8457 33879 8461 33889 Set Point 프로그래머 #2 세그먼트 2 8462 33890 846C 33900 Set Point 프로그래머 #2 세그먼트 3 846D 33901 8477 33911 Set Point 프로그래머 #2 세그먼트 4 8478 33912 8482 33922 Set Point 프로그래머 #2 세그먼트 5 8483 33923 848D 33933 Set Point 프로그래머 #2 세그먼트 6 : : : : : 888D 34757 8897 34967 Set Point 프로그래머 #2 세그먼트 100 44
표 5-9.1 Set Point 프로그래머세그먼트이벤트맵어드레스 시작어드레스 시작어드레스 종료어드레스 종료어드레스 설명 (Hex) (Decimal) (Hex) (Decimal) 88CA 35018 891D 35101 Set Point 프로그래머 #1 세그먼트이벤트 1 891E 35102 8971 35185 Set Point 프로그래머 #1 세그먼트이벤트 2 8972 35186 89C5 35269 Set Point 프로그래머 #1 세그먼트이벤트 3 89C6 35270 8A19 35353 Set Point 프로그래머 #1 세그먼트이벤트 4 8A1A 35354 8A6D 35437 Set Point 프로그래머 #1 세그먼트이벤트 5 8A6E 35438 8AC1 35521 Set Point 프로그래머 #1 세그먼트이벤트 6 : : : : : A946 43334 A999 43417 Set Point 프로그래머 #1 세그먼트이벤트 100 A99A 43418 A9ED 43501 Set Point 프로그래머 #2 세그먼트이벤트 1 A9EE 43502 AA41 43585 Set Point 프로그래머 #2 세그먼트이벤트 2 AA42 43586 AA95 43669 Set Point 프로그래머 #2 세그먼트이벤트 3 AA96 43670 AAE9 43753 Set Point 프로그래머 #2 세그먼트이벤트 4 AAEA 43754 AB3D 43837 Set Point 프로그래머 #2 세그먼트이벤트 5 AB3E 43838 AB91 43921 Set Point 프로그래머 #2 세그먼트이벤트 6 : : : : : CA16 51734 CA69 51817 Set Point 프로그래머 #2 세그먼트이벤트 100 45
5.10 세그먼트레지스터맵 아래표는 Setpoint 프로그래머세그먼트부분인레지스터들을나타냅니다. 한세그먼트안에한파라메타를위 한실제레지스터어드레스를결정하기위해서는그세그먼트의시작어드레스에오프셋을더하십시오. 이러한레지스터들에쓰기를하는것은 Stop 모드에서허락되거나또는 RUN 동작중인프로그램번호가설정 하는프로그램번호와동일하지않으면가능합니다. 표 5-10 세그먼트레지스터맵어드레스 세그먼트내 레지스터오프셋 (hex) 파라메타명 Access 비고 0(0) 타겟설정값 1 Floating Point (Setpoint Value 1) 설정범위 : SP 상 / 하한범위 2(2) 4(4) 6(6) 7(7) 8(8) 9(9) 10(A) 타겟설정값 2 (Setpoint Value 2) 세그먼트시간 (Segment time) PID 그룹번호 1 (PID Group number 1) PID 그룹번호 2 (PID Group number 2) 프로그램종료모드 (Program End) 세그먼트 G. Soak (Segment G.Soak) 시간또는레이트 (Time or Rate) R Floating Point 동기모드에서이것은루프 2의타겟설정값이고비동기모드에서는유용하지않음. 설정범위 : SP 상 / 하한범위 Floating Point 설정범위 : 00.00 ~ 99.59 부호있는 16비트정수설정범위 : 1 to 8; 이것은세그먼트 PID 인경우에만유용함. 부호있는 16 비트정수설정범위 : 1 to 8; 이것은세그먼트 PID 인경우에만유용함. 부호있는 16 비트정수 0 : Continuous Shifting ; 1 : HOLD Shifting; 2 : Fix Control Shifting 부호있는 16 비트정수 0 : NONE; 1 : FRONT; 2 : REAR; 3 : ALL 부호있는 16 비트정수 0 : Time; 1: Rate 5.11 세그먼트레지스터를결정하기위한예제 루프 ( 채널 ) 2를위한 2번 Setpoint 프로그래머의 8번세그먼트에세그먼트시간을변경하기위한레지스터어드레스는다음과같이결정됩니다. 스텝 1 : 2번 Setpoint 프로그래머프로파일을위한시작어드레스를결정하기위해서는표 5-1을이용하십시오. 그어드레스는 844C hex 입니다. 스텝 2 : 한프로파일에 8번세그먼트를위한오프셋어드레스를계산하십시오. 이것은다음과같이계산됩니다. 8번세그먼트오프셋어드레스 = ( 세그먼트번호 1) * 11 = (8-1) * 11 = 77 or 4D Hex 스텝 3 : 세그먼트시간을위한레지스터오프셋결정하기위해서는위의표를이용하십시오. 그값은 4 입니다. 스텝 4 : 레지스터어드레스를결정하기위해서는스텝 1, 2, 3의결과를더하므로어드레스를계산하십시오. 레지스터어드레스 = 2번 Setpoint 프로그램프로파일베이스어드레스 + 8번세그먼트오프셋어드레스 + 세그먼트시간오프셋 = 844C + 4D + 4 = 849D 46
5.12 세그먼트 Set Point 이벤트레지스터맵 세그먼트데이터의이벤트데이터영역들을의미하는것으로그림 5.12에나타나있습니다. 이벤트는한프로그램에등록된세그먼트수만큼존재하며, 한세그먼트에등록된이벤트수는최대 12개까지입니다. 이러한레지스터들에쓰기를하는것은 Stop 모드에서허락되거나또는 RUN 동작중인프로그램번호가설정하는프로그램번호와동일하지않으면가능합니다. 또한유효한이벤트타입번호에따라서쓰기가올바로행해질수있습니다. 즉, 표 5-12의이벤트타입번호는이미모드나알람이벤트가할당된경우에는유효하지않습니다. 세그먼트내레지스터오프셋 (hex) 0 2 4 5 6 표 5-12 세그먼트 Set Point 이벤트레지스터맵어드레스 파라메타명 Access 비고 동작대상값또는상한값 (Max Value) 동작간격또는하한값 (Min Value) 이벤트타입번호 (Event type number) 시간지연 (Time Delay ) 선택여부 (Select) R Floating Point 동작대상값 (OP point), 상한값 : -19999.0 ~ 20000.0 MV 일때는동작대상값 (OP point) 는 5.0 ~ 105.0 임 Floating Point 동작간격 : 0 ~ 100.0 하한값 : -19999.0 to 20000.0 부호있는 16 비트정수 0: OFF 1: ON( 타임이벤트 ) 2: ON Delay와 Cut Back 설정존재 ( 타임이벤트 ) 11: 채널1 용 PV-ABS-LOW(PV 이벤트 ) 12: 채널2 용 PV-ABS-LOW(PV 이벤트 ) 13: 채널1 용 PV-ABS-HIGH(PV 이벤트 ) 14: 채널2 용 PV-ABS-HIGH(PV 이벤트 ) 15: 채널1 용 PV-DEV-LOW(PV 이벤트 ) 16: 채널2 용 PV- DEV-LOW(PV 이벤트 ) 17: 채널1 용 PV-DEV-HIGH(PV 이벤트 ) 18: 채널2 용 PV-DEV-HIGH(PV 이벤트 ) 21: 채널1 용 SP-ABS-LOW(PV 이벤트 ) 22: 채널2 용 SP-ABS-LOW(PV 이벤트 ) 23: 채널1 용 SP-ABS-HIGH(PV 이벤트 ) 24: 채널2 용 SP-ABS-HIGH(PV 이벤트 ) 25: 채널1 용 SP-DEV-OFF(PV 이벤트 ) 26: 채널2 용 SP-DEV-OFF(PV 이벤트 ) 27: 채널1 용 SP-DEV-ON(PV 이벤트 ) 28: 채널2 용 SP-DEV-ON(PV 이벤트 ) 31: 채널1 용 DV-DEV-OFF(PV 이벤트 ) 32: 채널2 용 DV-DEV-OFF(PV 이벤트 ) 33: 채널1 용 DV-DEV-ON(PV 이벤트 ) 34: 채널2 용 DV-DEV-ON(PV 이벤트 ) 35: 채널1 용 MV-ABS-LOW(PV 이벤트 ) 36: 채널2 용 MV-ABS-LOW(PV 이벤트 ) 37: 채널1 용 MV-ABS-HIGH(PV 이벤트 ) 38: 채널2 용 MV-ABS-HIGH(PV 이벤트 ) 부호있는 16 비트정수설정범위 : 0 ~ 99 부호있는 16 비트정수 47
오프셋 4 오프셋 0 오프셋 2 오프셋 5 EXIT SEG 00 01 02 SP 프로그램편집 PID EVENT TYPE 15 Description CH1 PV-DEV-LOW RANGE : 0.0 to 310.0 TIME OP Point 15.0 DIFF 0.0 Delay Time 15 JC GS 1 EVENT SET 1 M M A P 1 0 P 0 A A P P M M A 0 0 0 1 1 A A T 0 M M A 0 P P 0 0 A A 삽입삭제편집반복 01-23 FRI 12. 59. 50 ESC 0 1 2 3 4 5 6 7 8 9. ENT 오프셋 4 EVENT TYPE 2 Description TIME EVENT 오프셋 0~6 오프셋 35~41 1 1 M M A P 1 0 P 0 A A 오프셋 0 오프셋 2 ON Delay Cut Back 1 H 20 H 0 H 15 H 오프셋 42~48 오프셋 77~83 오프셋 4 EVENT TYPE 1 EVENT TYPE 0 이벤트 ON 이벤트 OFF 그림 5-12 세그먼트이벤트설정화면 48
5.13 세그먼트이벤트레지스터를결정하기위한예제 루프 ( 채널 ) 1를위한 2번 Set Point 프로그래머의 8번세그먼트에디지털출력 3에이벤트타입번호를변경하기위한레지스터어드레스는다음과같이결정됩니다.( 여기서디지털출력 3번의오프셋범위는 14~20 임 ) 스텝 1 : 2번 Setpoint 프로그래머프로파일을위한시작어드레스를결정하기위해서는표 5-1을이용하십시오. 그어드레스는 88CA hex 입니다. 스텝 2 : 한프로파일에 8번세그먼트를위한오프셋어드레스를계산하십시오. 이것은다음과같이계산됩니다. 8번세그먼트오프셋어드레스 = ( 세그먼트번호 1) * 84 = (8-1) * 84 = 588 or 24C Hex 스텝 3 : 이벤트타입번호를위한레지스터오프셋결정하기위해서는위의그림 5-12와표를이용하십시오. 그값은 18(12Hex) 입니다. 스텝 4 : 레지스터어드레스를결정하기위해서는스텝 1, 2, 3의결과를더하므로어드레스를계산하십시오. 레지스터어드레스 = 2번 Setpoint 프로그램프로파일베이스어드레스 + 8번세그먼트오프셋어드레스 + 이벤트타입번호오프셋 = 88CA + 24C + 12 = 8B28 49
5.14 프로그램링크레지스터맵 한프로파일은 10개의링크를포함합니다. 각링크는 6개의레지스터로구성됩니다. 이표는루프 ( 채널 ) 1과 2의링크그룹의시작과종료어드레스를포함합니다. 표 5-14.1 각링크그룹레지스터맵어드레스 시작어드레스 시작어드레스 종료어드레스 종료어드레스 설명 (Hex) (Decimal) (Hex) (Decimal) CB00 51968 CB05 51973 루프 ( 채널 )1의링크그룹 #1 CB06 51974 CB0B 51979 루프 ( 채널 )1의링크그룹 #2 CB0C 51980 CB11 51985 루프 ( 채널 )1의링크그룹 #3 CB12 51986 CB17 51991 루프 ( 채널 )1의링크그룹 #4 : : : : : CB36 52022 CB3B 52027 루프 ( 채널 )1의링크그룹 #10 CB3C 52028 CB41 52033 루프 ( 채널 )2의링크그룹 #1 CB42 52034 CB47 52039 루프 ( 채널 )2의링크그룹 #2 CB48 52040 CB4D 52045 루프 ( 채널 )2의링크그룹 #3 CB4E 52046 CB53 52051 루프 ( 채널 )2의링크그룹 #4 : : : : : CB72 52082 CB77 52087 루프 ( 채널 )2의링크그룹 #10 아래표는링크그룹레지스터의일부인레지스터를나타냅니다. 한링크내에한파라메타를위한실제레지스터어드레스를결정하기위해서는레지스터오프셋을링크의시작어드레스에더하십시오. 링크설정화면상에각레지스터위치를멥핑하는그림 5-14를참조하십시오. 표 5-14.2 링크레지스터맵어드레스 링크내레지스터 파라메타명 Access 비고 오프셋 0 링크프로그램번호 1 부호있는 16 비트정수, Note 1, Note 2 1 링크프로그램번호 2 부호있는 16 비트정수, Note 1, Note 2 2 링크프로그램번호 3 부호있는 16 비트정수, Note 1, Note 2 3 링크프로그램번호 4 부호있는 16 비트정수, Note 1, Note 2 4 링크프로그램번호 5 부호있는 16 비트정수, Note 1, Note 2 5 링크프로그램번호 6 부호있는 16 비트정수, Note 1, Note 2 Note 1 : 설정범위 : 비동기모드일때채널 1 을위해서는 0 에서 15 이고채널 2 를위해서는 16 에서 31 동기모드일때채널 1/2를위해서는 0 에서 31 Note 2 : 등록된프로그램번호를삭제하기위해서는레지스터어드레스에 255(FF hex) 를쓰기필요 50
오프셋 0 오프셋 1 오프셋 2 MENU 링크설정화면 03-24.WED 12.01.23 링크번호 0 START PROG 01 PROG 05 PROG 12 PROG PROG PROG END CH1 CH2 PATT SET LINK SET WAIT SET 오프셋 4 오프셋 5 오프셋 6 그림 5-14 링크설정화면 < 루프 ( 채널 )1의링크그룹에등록된프로그램번호의레지스터어드레스를찾는방법 > 레지스터어드레스 = 루프1 의링크그룹 #1의시작어드레스 + ( 링크그룹번호 - 1) * 6 + 해당파라메타의오프셋값 ( 표 5-14.2) 예제 : 링크그룹 #4의 3번째링크프로그램번호의레지스터어드레스를찾기레지스터어드레스 = CB00 hex + (4-1) * 6 + 02 = CB14 hex < 주의 > 프로그램번호는순서적으로등록되어야합니다. 1) 프로그램번호를등록하는데있어서잘못된것 : 3 번째부분이등록되지않았음 01 01 07 2) 프로그램번호를등록하는데있어서잘못된것 : 첫번째부분이등록되지않았음. 01 02 07 3) 올바로된것 : 프로그램번호가순서적으로등록되었음. 09 01 02 07 51
5.15 PID 그룹레지스터맵 한프로파일은 8개까지의 PID 그룹을포함합니다. 각 PID 그룹은 26 레지스터로구성됩니다. 이표는루프 ( 채널 )1과루프 ( 채널 )2의 PID 그룹맵어드레스를포함합니다. 표 5-15.1 각 PID 그룹레지스터맵어드레스 시작어드레스 시작어드레스 종료어드레스 종료어드레스 설명 (Hex) (Decimal) (Hex) (Decimal) CB78 52088 CB90 52112 루프 ( 채널 ) 1의 PID 그룹 #1 CB92 52114 CBAA 52138 루프 ( 채널 ) 1의 PID 그룹 #2 CBAC 52140 CBC4 52164 루프 ( 채널 ) 1의 PID 그룹 #3 CBC6 52166 CBDE 52190 루프 ( 채널 ) 1의 PID 그룹 #4 : : : : : CC2E 52270 CC46 52294 루프 ( 채널 ) 1의 PID 그룹 #8 CC48 52296 CC60 52320 루프 ( 채널 ) 2의 PID 그룹 #1 CC62 52322 CC7A 52346 루프 ( 채널 ) 2의 PID 그룹 #2 CC7C 52348 CC94 52372 루프 ( 채널 ) 2의 PID 그룹 #3 CC96 52374 CCAE 52398 루프 ( 채널 ) 2의 PID 그룹 #4 : : : : : CCFE 52478 CD16 52502 루프 ( 채널 ) 2의 PID 그룹 #8 EXIT PID 상수설정 03-24.WED 12.59.05 오프셋 0 오프셋 4 오프셋 8 오프셋 12 오프셋 16 오프셋 22 No 01 Ph(%) 1.0 Pc(%) 1.0 Ih(sec) 1.0 Ic(sec) 1.0 DH(sec) 0.0 Dc(sec) 0.0 DIFFh MR MV Limit 50 0 DIFFc DB(%) LOWER UPPER 0.0 % 100.0 % 50 0.0 오프셋 2 오프셋 6 오프셋 10 오프셋 14 오프셋 18 오프셋 20 Tuning point 50.0 오프셋 24 PID SET PID VAL PID ZONE CONTROL 그림 5-15 PID 상수설정화면 52
아래표는한 PID 그룹레지스터의부분인레지스터들입니다. PID 그룹내에파라메타를위한실제레지스터어드레스를결정하기위해서는 PID 그룹의시작어드레스에레지스터오프셋을더하십시오. PID 설정화면에각레지스터위치를맵핑하기위해서는그림 5-15를참조하십시오. PID 그룹내레지스터오프셋 0 2 4 6 8 10 12 14 16 표 5-15.2 PID 그룹레지스터맵어드레스 파라메타명 Access 비고 게인또는비례대 (Gain or PB (HEAT)) 게인또는비례대 (Gain or PB (COOL)) 리셋 Reset (HEAT) 리셋 Reset (COOL) 레이트 Rate (HEAT) 레이트 Rate (COOL) 히스테리시스또는편차 Differential (HEAT) 히스테리시스또는편차 Differential (COOL) 매뉴얼리셋 Manual Reset 18 Dead band 20 22 24 제어출력상한제한 Output high limit 제어출력하한제한 Output low limit 오토튜닝설정값 Auto tuning setpoint Floating Point 설정범위 : 0.0 to 9999.0 Floating Point 설정범위 : 0.0 to 9999.0 Floating Point 설정범위 : 0.02 to 50.0 Floating Point 설정범위 : 0.02 to 50.0 Floating Point 설정범위 : 0.0 to 10.0 Floating Point 설정범위 : 0.0 to 10.0 Floating Point 설정범위 : 0.0 to 100.0 Floating Point 설정범위 : 0.0 to 100.0 Floating Point 설정범위 : -100.0 to 100.0 Floating Point 설정범위 : -5.0 to 25.0 Floating Point 설정범위 : -5.0 to 105.0 와상한제한 > 하한제한 Floating Point 설정범위 : SP 상 / 하한설정범위 < 루프 ( 채널 ) 1의 PID 그룹에등록된각파라메타의레지스터어드레스를찾는방법 > 레지스터어드레스 = 루프 1의 PID 그룹 #1의시작어드레스 + (PID 그룹번호 1) * 26 + 해당파라메타의오프셋값 ( 표 5-15.2) 예제 : PID 그룹 #6의히스테리시스 (HEAT) 의레지스터어드레스찾기레지스터어드레스 = CB78 hex + (6-1) * 26 + 0C hex = CC06 hex 53
5.16 컨트롤러그룹레지스터맵 이컨트롤러그룹은정치제어를위해필요한것으로구성되어있고루프 ( 채널 )1(CD17 ~ CD2A) 와루프 ( 채널 ) 2(CD2B ~ CD3E) 를위한두그룹이있습니다. 어드레스 (hex) 레지스터 (decimal) CD17 52503 CD19 52505 CD1B 52507 CD1D 52509 표 5-16 컨트롤러그룹레지스터맵어드레스 채널번호 Access 비고 타겟설정값 (Final SP Ramp Value) 정치타이머 (Fix High/Low Timer) SP 기울기값 (SP Ramp Value) 정치기울기시간 (Fix ramp time high/low) CD27 52519 정치 G Soak CD2A 52522 정치제어상태 Floating Point 설정범위 : SP 상 / 하한제한 Floating Point 설정범위 : 00.00 ~ 99.59 Floating Point 설정범위 : 0.0 ~ 9.9 Floating Point 설정범위 : 00.00 ~ 99.59 부호있는 16비트정수 0: NONE; 1:FRONT; 2:REAR; 3:ALL Bit Packed Bit 0: SP 기울기 0: OFF; 1:ON Bit 1: 정치타이머 0:OFF; 1:ON 정치제어설정화면에각레지스터위치를맵핑하기위해서는그림 5-16 을참조하십시오. 타겟설정값 (CD17 hex) 정치제어상태 (CD2A hex) 정치 G Soak(CD27 hex) 이벤트데이터이벤트데이터설정부분에대해서는 Section 5.21 정치 PV 이벤트그룹레지스터맵을참조하십시오. MENU CH1 CH2 목표값 100.0 C Range : -200.0 to 500.0 기울기 OFF ON 타이머 G.SOAK 이벤트화면 MAIN 정치제어설정 OFF 01 01 ON 0.0 C/min 01 H 02 03 04 05 06 21 22 30 25 0 0 07 08 09 10 11 12 39 27 30 0 0 24 59 M 그림 5-16 정치제어설정화면 01-23 TUE 12.59.31 0.0 C/min SP 기울기값 (CD1B hex) 01 H 59 M 정치기울기시간 (CD1D hex) 정치타이머 (CD19 hex) 54