차례
소개이반이중프로토콜은각한개의 master 와 slave 를받아들일수있다. 물리적인터페이스는 RS-485 타입이어야한다. 한개의 Multidrop 링크는송수신장치로써같은형태의 높은입력임피던스 를지닌 128 개의디바이스를감당할수있다. 컴퓨터는그 Slave 들이링크를통해접속할수있도록 Master 조종을하도록프로그램되어야한다. 모든다른 Slave 들은 Waiting 상태에있게된다. 각각의슬래이브는 1 ~ 255 사이에서독자적인주소를갖게된다. 주소 0 은 Broadcast( 흩뿌리는 ) 용도이다. 마스터가주소 0 을통해메시지를전송하면모든슬래이브가그것을받고, 회신은하지않는다. 전송포맷프로토콜은전송의 RTU( 원격터미널유닛 ) 모드를사용한다. RTU 는다음과같은바이트포맷을갖은이진 ( 바이너리 ) 방법이다. 1 개의시작비트, 8 개의데이터비트, 1 개의패리티비트, 1 개의스톱비트. 통신속도는 600, 1200, 2400, 4800, 9600 및 19200 바우드 (baud) 중에선택할수있다. 통신절차통신은마스터유닛에의해서만시작될수있다.; 슬래이브는마스터의요청에의해서만전송을할수있다. 마스터에서슬래이브로전송의일반적인포맷은다음과같다. 슬래이브는두문자의지연시간이 3.5 T.U.(Time Unit = 한개의문자를전송하는데필요한시간 ) 보다클경우조회프래임의시작점을탐지한다. 에러검사 (CRC-16 Cyclical Redundancy Check- 주기적용장검사 ) 전송디바이스에의해 CRC-16 이계산된다. 이값은메시지에부수된다. 수신디바이스는 CRC- 16 을다시계산하고, 수신한값과계산된값을비교한다. 두값은일치하여야한다. CRC-16 은 16-bit 레지스터 1 s 에첫번째파리로딩을함으로써시작한다. 그런다음레지스터의최근항목에연달아메시지바이트를주입함으로써시작한다. 데이터의 8 비트만 CRC-16 을생성하는데사용된다. Start/ Stop bit, Parity bit 중어느한개라도사용되고있으면, CRC-16 에적용하지말아야한다. CRC-16 을생성하는동안, 각바이트는레지스터항목과별개의 ORed 이다. 그다음, 가장중요한비트 (MSB) 에 0 을채우고결과가오른쪽으로밀린다. 만일 LSB 가 1 이면, 레지스터는프리셋, 고정값과별개의 ORed 이다. LSB 가 0 이면배타적 OR 이발생하지않는다. 이프로세스는 8 개의시프트가수행될때까지반복된다. 마지막시프트후에, 다음바이트는레지스터의최근값에배타적 ORed 가된다. 그리고프로세스는앞서설명한것처럼 8 개의시프트를반복한다. 모든메시지문자가적용된후의마지막레지스터항목은 CRC-16 값이다. CRC-16 을생성하기위한절차는 ; 1) FFFFh(all 1 s) 에 16 비트레지스터 (CRC-16 레지스터 ) 를로드한다. 2) 메시지의첫번째바이트를 CRC-16 레지스터의낮은바이트와배타적논리합 (Exclusive
OR) 을한다. 3) CRC-16 레지스터를 LSB 방향 ( 오른쪽으로 ) 1 비트이동시키고 MSB 에 0 을채운다. LSB 를추출하여검사한다. MSB[ 엠에스비 ] 는비트단위의연산에있어서그숫자값의크기에가장크게영향을미치는유효숫자를말한다. 즉, 그숫자를나타내는비트열중에서가장왼쪽의비트가 MSB 이다. 4) ( 만일 LSB 가 0 이면 ): 3) 항을반복한다.( 다른쉬프트 ) ( 만일 LSB 가 1 이면 ): CRC-16 레지스터를다항식값 A001h(1010 0000 0000 0001b) 와배타적논리합을한다. 5) 8 번 shift 가될때까지 3) & 4) 항을반복한다. 이것이완료되면모든바이트가처리된것이다. 6) 메시지의다음바이트에대해 2) ~ 5) 항의작업을반복한다. 보든바이트에대한처리가될때까지이작업을수행한다. 7) CRC-16 레지스터의마지막항복은 CRC-16 값이다. CRC-16(16 바이트 ) 가메시지에전송될때, 낮은바이트가먼저전송되고높은바이트가나중에전송된다. N.B : 본문에나오는숫자값은 : b 가붙어있는값은이진수이고, 아무글짜도붙어있지않은값은십진수이며, h 가붙어있는값은 6 진수값이다. 기능코드 1 과 2 : Bits 읽기이기능코드는마스터유니트가슬레이브유니트의상태를나타내는 ( 최대 24 개 ) 연속된비트그룹의값은요구할때사용된다. Data 필드는요구된비트를나타낸다. : 낮은주소를갖은비트는첫번째바이트의비트 0 에있고, 다음은비트 1 에있고다음차례로있게된다. 이벤츄얼 (Eventual) 은마지막바이트가 0 이되어끝나게하는비트에상관이없다. Example : 주소 100(64h) 에있는슬레이브에게 bit 201(C9h) 로부터시작하는 14(Eh) bits 의상태를요구한다.
Data 필드에있는 2 byte(a7h=10100111b, 04h=00000100b) 는 : 을의미한다. 기능코드 3 과 4 : 단어읽기이기능코드는마스터유니트가슬래이브유니트의변수값을담고있는단어 (16bit) 의연속된그룹을읽을때사용한다. 마스터는한번에 20 단어까지요청을할수있다. Data 필드는다음과같은형식으로요청된단어를포함하고있다.: 첫단어의높은바이트, 첫단어의낮은바이트, 두번째바이트의높은바이트 충족되지않는주소나실제디바이스구성에해당되지않은정보에대해서 Data 필드는 8000h 의값을갖게된다. Example: 29(1Dh) 주소에있는슬래이브에게단어 178(B2h) 에서시작하는 3(3h) 값을요청함.
Data 필드내의 6 byte(ffh, 9Ch, 80h, 00h, 05h, 5Ah) 는다음과같은뜻의 3 단어를의미한다. 기능코드 5 : 단일비트쓰기이명령을이용하여마스터유니트는슬레이브유니트의한개의비트의상태를변경할수있다. * 주소 0 을사용하기위해서는 12 페이지의 광대역주소 의 Note1 을참조할것. Data 필드 = 0h( 비트리셋 ) = FF00h( 비트셋 ) Example : 주소 35(23h) 의슬래이브에 219(DBh) bit 를셋한다.
기능코드 6 : 단일단어쓰기이명령을이용하여마스터유니트는슬레이브유니트의한개의단어 (16bit) 의값을변경할수있다. * 주소 0 을사용하기위해서는 12 페이지의 광대역주소 의 Note1 을참조할것. Data 필드의 8000h 값은무수정값으로치부한다. 즉, 이주소에있는디바이스의값은수정할수없다. Example 주소 5(5h) 에있는슬래이브의 2006(7D6h) 를 1250(4E2h) 로설정한다.
기능코드 15 : 다중비트쓰기이기능코드는마스터유닛이 ( 최대 24 개 ) 연속된비트그룹을셋 / 리셋하는데사용한다. * 주소 0 을사용하기위해서는 12 페이지의 광대역주소 의 Note1 을참조할것. 각비트의원하는상태가 DATA 필드에포장되어있다.(1=on, 0=off) 읽기전용비트에지워진상태는무시된다. 명령은첫번째비트부터처리를시작하여디바이스의실제상태에따라수행또는수행하지않을수있다. 에러가발견되면명령은취소되고슬래이브는에러를회신한다. Example 주소 2(2h) 에있는슬래이브에다음의 9 비트셋을전송한다. 기능코드 16 : 다중단어쓰기이기능코드는마스터유니트가연속된단어그룹을쓰는데사용한다. 마스터유니트는한번에최대 20 단어까지변경을할수있다.
* 주소 0 을사용하기위해서는 12 페이지의 광대역주소 의 Note1 을참조할것. 읽기전용단어에부과된 Data 는무시된다. 명령은첫번째단어부터처리를시작하며디바이스의실제상태에따라수행되거나수행되지않을수있다. 첫번째에러가발견되면명령은취소되고슬래이브는에러를회신한다. Data 필드에나타난 8000h 값은 Don t care 값 으로치부되며수정할수없음을의미한다. Example 주소 10(Ah) 에있는슬래이브의 139(8Bh), 140(8Ch), 141(8Dh) 를 300(12Ch), don t care(8000h) 및 700(2BCh) 값으로설정한다. Notes: 1. 광대역 주소쓰기코드 (5, 6, 15 및 16) 을사용하는경우슬래이브주소 0 의사용이가능하다.: 이경우연결된모든슬래이브는명령을접수하나회신은하지않는다. 2. 단어형식정보전송이 2 바이트 (16 비트의 1 word) 방법에의해수행되는매경우, 전송되는첫번째바이트는 MSB 이다. 음수를위해서는 Two complement 형식이사용된다. 3. 회신시간슬래이브는접수된바이트를계수하여명령을접수가끝나면 2ms ~ 250ms 간에회신을시작한다. 4. 소수점
값에 존재하는 소수점은 무시된다. Example: 204.6값은 2046(07FEh) 으로 전송된다. -12.50은 -1250(FB1Eh) 로전송된다. 5. 로컬 / 리모트 상태 전원을넣으면전원을끌때컨트롤모드에있었다면, 로칼모드에서시작한다. 그렇지 않으면 전원을 끌 당시의 상태를 유지한다. 슬래이브를마스터가조종하기위해서는 Local/ Remote 상태비트 (ModBus bit 218) 을설정하여야한다. 슬래이브가 remote 상태로있게하기위해서는, line 활성탐색이충분조건이다. Line 활성이 3초이상안되면, 모든슬래이브가자동으로로컬모드로돌아간다. Local 모드 : 마스터와슬래이브간통신이마스터측에서파라메터수정은할수없이 슬래이브에서데이터만송신할수있도록제한된다. 따라서 Local 키보드에서 파라메터를 표시하고 수정하게 된다. Remote 모드 : 기기의파라메터를마스터에서수정할수있다. 따라서, 로컬 키보드에서는표시만할수있고수정은할수없다. 6. 컨트롤 모드 컨트롤 모드 는 디바이스의 일반 기능 상태를 나타낸다.( 지시계 / 컨트롤러 ) 컨트롤 모드에서는 파라메터 ( 메뉴 그룹 ), 변수 및 상태가 된다. 파라메터는 단어로만 나타난다. 변수와 상태는 Bits와 단어로 나타낸다. 읽기 : 파라메터는 최근 논점에서 의미가 있을 경우에만 사용이 가능하다. 변수와상태는디바이스가조종모드에있고또그값이최근논점에서의미가있을때 사용이 가능하다. 쓰기 : 모든주소는디바이스가컨트롤모드, 리모트모드, 언락모드에있고현재논점에의미가있을때에만사용이가능하다. 7. 컨피규레이션 ( 구성 ) 모드구성파라메터는단어로만나타내다. 현재논점에서의미가있을경우에만읽기전용으로사용할수있다. 디바이스가구성 (configuration) 모드에있고, 현재논점에서의미가있을때쓰기전용으로사용할수있다. 구성메뉴의파라메터프로그래밍이종료되면 end of configuration menu 명령 (ModBus 단어 3000 / 3005) 을보낼수있다. 다른구성메뉴대비프로그램데이터의적합성을점검한다. 적합성에문제가있을경우 1xx 에러를회신하게되는데 xx 는에러의원인이되는메뉴의번호를표시한다. 직렬링크를이용하여컨피규레이션파라메터를수정하기위해서는슬래이브를 리모트 (ModBus bit 218) 로설정하여야한다. 그런다음슬래이브를구성모드로 설정한다.(ModBus 단어 347에구성모드를위한안전잠금복합값을보낸다.) 표시는 다음과 같다. SEr COnF 컨트롤모드로돌아가기위해서는 ModBus 단어 3051에 1을보낸다. 슬래이브는 리셋되어 컨트롤 모드 조건에서 재시작한다.
N.B.: 8. 보안코드모드 보안코드 파라메터는 단어로만 제공된다. 항상 읽음으로 적용된다. 디바이스가 보안코드 모드인 경우 항상 쓰기로 이용할 수 있다. 직렬링크를이용하여보안코드파라메터를수정할경우슬래이브를리모트 (ModBus bit 218) 로설정하여야한다. 그다음슬래이브를보안코드모드로설정한다.(ModBus 단어 348에 구성 모드를 위한 보안 잠금 복합 값을 보낸다.) 표시는 다음과 같다. Scrt COnF 컨트롤모드상태로돌아가기위해서는 ModBus 단어 3051에 1을보낸다. 이때 슬래이브가 리셋하고 컨트롤 모드에서 재 가동 한다. * 구성모드용보안잠금복합값이 0이면, 모든값이접수된다. 값이 1이면어떠한값도 받아들이지 않는다. 9. 잠금 / 풀림을위한소프트웨어열쇠 소프트웨어열쇠가파라메터의수정을방지할수있다. 구성모드및보안코드모드에접근을막을수있는열쇠가있다. 터컨트롤 모드 파라메터 수정을 방지할 수 있는 2차 열쇠가 있다. 컨트롤모드키가프로그램되면, 어떤메뉴가보호되고어떤메뉴를보호하지않을지 정할 수 있다. 직렬링크를통한키운영 슬래이브를리모트로설정 (ModBus bit 218) 슬래이브를보안코드모드로설정 (ModBus 348 에구성모드에필요한현재보안잠금복합값을보낸다.) ModBus 단어 4000 에구성모드를위한새보안잠금복합값을설정한다. ModBus 단어 4001dp 컨트롤모드를위한새로운보안잠금복합값을설정한다. 키를이용하여컨트롤모드메뉴를보호하기위해서는 ModBus 단어 4002/4011 에 1( 키보호 ) 를써넣어야한다. 보안잠금복합 = 0 보안잠금복합 = 1 보안잠금복합 = 2/250 보안코드가없슴 ( 모든파라메터를언제든지수정할수있슴 ) 보안잠금복합이조종모드용이라면, ModBus 단어 4002/4011 이 0 이된다. 보안코드가없슴 ( 모든파라메터를수정할수없슴 ) 보안잠금복합이컨트롤모드에설정되면, ModBus 단어 4002/4011 이 1 이된다. 파라메터보호를위한보안코드. 컨트롤모드파라메터보호를제거하기위해서는 ModBus 단어 349 에컨트롤모드를
위한보안잠금복합값을써야한다. 구성파라메터를수정하기위해서는, ModBus 단어 349 에구성모드를위한보안잠금복합값을써야한다. 보안코드파라메터를수정하기위해서는, ModBus 348 에구성모드를위한보안잠금복합값을써넣어야한다. 에러회신 에러점검 가틀렸거나, 기능코드가적합하지않거나, 버퍼의넘침이접수되면슬래이브가마스터에회신을하지않는다. 만일요구혹은명령프레임에다른에러가발견되거나, 슬래이브가요청된값에회신을할수없거나, 에러조건때문에요청된세트를접수할수없으면, 슬래이브는에러코드뒤에있는 기능코드 의 bit 7 에 1 을넣어회신한다. 에러회신 ( 슬래이브에서마스터로 ) 에러코드리스트 에러번호 설명 2 잘못된데이터주소 3 잘못된데이터값 9 요청된데이터의잘못된수 10 지시된비트나단어를수정할수없슴. 50 다른처리가수행중이어서절차를시작할수없슴 51 SMART 알고리즘의첫번째부분이수행중이어서요청된절차를시작할수없슴. 52 전원을키거나다른절차의종료후 5분이경과하지않아서요청된절차를시작할수없슴. 53 프로브온도가 538이하여서요청된절차를시작할수없슴. 54 프로브출력이 1000mV 이하여서요청된절차를시작할수없슴. 55 프로브출력이불안정 ( 드리프트가분당 10mV이상 ) 하여요청된절차를시작할수없슴. 101 구성그룹 1에에러발생 102 구성그룹 2에에러발생 103 구성그룹 3에에러발생 104 구성그룹 4에에러발생 105 구성그룹 5에에러발생 106 구성그룹 6에에러발생 151 컨트롤모드그룹1에에러발생 152 컨트롤모드그룹2에에러발생 153 컨트롤모드그룹3에에러발생 154 컨트롤모드그룹4에에러발생 155 컨트롤모드그룹5에에러발생 156 컨트롤모드그룹6에에러발생 157 컨트롤모드그룹7에에러발생 158 컨트롤모드그룹8에에러발생 159 컨트롤모드그룹9에에러발생 160 컨트롤모드숨겨진 (Hidden) 그룹에에러발생 200 주프로브입력교정에에러 (0 ~ 1.5V) 201 주프로브입력교정에에러 (1 ~ 1.3V) 202 TC 입력교정에에러 (0 ~ 60mV)
203 CJ 입력교정에에러 204 보조입력전류교정에에러 (0 ~ 20mA) 205 보조입력전압교정에에러 (0 ~ 5V) 206 보조입력전압교정에에러 (0 ~ 10V) 207 출력 6 교정에에러 (0 ~ 20mA) 208 출력 7 교정에에러 (0 ~ 20mA) 구성에러조건 (101 ~ 106) 에있어, 다음의경우디바이스는요청된값을에러메시지와교체한다. 구성모드메뉴주소요청 컨트롤모드메뉴주소요청 보안코드모드주소요청디바이스는다음설정받아들인다. 리모드모드설정 (ModBus bit 218) 구성모드설정 (ModBus word 347) 보안코드모드설정 (ModBus word 348) 모든구성주소의설정 모든보안코드모드주소의설정컨트롤모드에러조건 (151 ~ 160) 의경우, 디바이스는다음의경우요청된값을에러메시지와교체한다. 구성모드메뉴주소요청 컨트롤모드주소요청 보안코드모드주소요청디바이스는이경우다음의설정을받을수있다. 리모트설정 (ModBus bit 218) 구성모드설정 (ModBus word 347) 보안코드모드설정 (ModBus word 348) 모든구성주소설정 모든컨트롤모드메뉴주소설정 컨트롤모드디폴트파라메터로드 (ModBus bits 223 ~ 232) 모든보안코드모드주소의설정교정에러조건 (200 ~ 208) 의경우, 디바이스는다음의경우에에러메시지를요구된값으로교체한다. 구성모드메뉴주소요청 컨트롤모드주소요청 보안코드모드디바이스는다음의설정을받아들인다. 리모트설정 (ModBus bit 218) 구성모드설정 (ModBus word 347) 보안코드모드설정 (ModBus word 348) 모든구성주소설정 모든보안코드모드주소의설정 만일시동시구성, 컨트롤모드혹은교정에러가발생하면, 디바이스는어떠한행동 (Action) 이일어나지않으며, 30 초의타임아웃이끝나면디바이스가리셋된다. 컨트롤모드상태의디바이스를위한단어 (Word) 파라메터
컨트롤모드의디바이스단어 파라메터가아님
컨트롤모드의디바이스단어 파라메터가아님
컨트롤모드의디바이스단어 파라메터가아님
컨트롤모드의디바이스단어 파라메터가아님
컨트롤모드인디바이스의비트 (Bits)
컨트롤모드인디바이스의비트 (Bits) 컨트롤모드인디바이스의비트 (Bits)
컨트롤모드인디바이스의비트 (Bits) 컨트롤모드인디바이스의비트 (Bits)
컨트롤모드인디바이스의비트 (Bits)
구성 (Configuration) 모드디바이스를위한단어 (Word) 파라메터 구성 (Configuration) 모드디바이스를위한단어 (Word) 파라메터
구성 (Configuration) 모드디바이스를위한단어 (Word) 파라메터
구성 (Configuration) 모드디바이스를위한단어 (Word) 파라메터
구성 (Configuration) 모드디바이스를위한단어 (Word) 파라메터
구성 (Configuration) 모드디바이스를위한단어 (Word) 파라메터
구성 (Configuration) 모드디바이스를위한단어 (Word) 파라메터
구성 (Configuration) 모드디바이스를위한단어 (Word) 파라메터
구성 (Configuration) 모드디바이스를위한단어 (Word) 파라메터아님
보안코드모드디바이스를위한단어 (Word) 보안모드디바이스를위한단어 (Word)
차례 - MODBUS Family 와그룹에따라분류컨트롤모드의디바이스단어 (Word) 파라메터
컨트롤모드디바이스단어 (Word) 파라메터아님
구성 (Configuration) 모드디바이스단어 (Word) 파라메터
구성 (Configuration) 모드디바이스단어 (Word) 파라메터아님
보안모드디바이스단어 (Word)
차례 - MODBUS 비트 (bit) 컨트롤모드디바이스의비트
차례 MODBUS 단어오름차순
차례 오름차순 MODBUS 비트 (Bit)