Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
comfilehmi:simplemodbus:index [2026/02/11 02:23] admincomfilehmi:simplemodbus:index [2026/04/27 17:24] (current) – [Simple MODBUS 펑션코드별 동작] admin
Line 10: Line 10:
  
 Simple MODBUS는 단 6개의 펑션만 지원합니다. Simple MODBUS는 단 6개의 펑션만 지원합니다.
- 
 ^펑션코드 (10 진) 동작 ^설명^ ^펑션코드 (10 진) 동작 ^설명^
-|[[.:Modbus_Code1:|Code 1 -Read Coil]] |하나의 비트 읽기| +|[[:fieldio:modport:about_modbus:modbus_code1:index|Code 1 -Read Coil]] |하나의 비트 읽기| 
-|[[.:Modbus_Code3:|Code 3 -Read Registers]] |여러 개의 워드 읽기| +|[[:fieldio:modport:about_modbus:modbus_code3:index|Code 3 -Read Registers]] |여러 개의 워드 읽기| 
-|[[.:Modbus_Code5:|Code 5 -Write One Coil]] |1 비트 쓰기| +|[[:fieldio:modport:about_modbus:modbus_code5:index|Code 5 -Write One Coil]] |1 비트 쓰기| 
-|[[.:Modbus_Code6:|Code 6 -Write One Register]] |1 워드 쓰기| +|[[:fieldio:modport:about_modbus:modbus_code6:index|Code 6 -Write One Register]] |1 워드 쓰기| 
-|[[.:Modbus_Code15:|Code 15 -Write Multiple Coils]] |여러 개의 비트 쓰기| +|[[:fieldio:modport:about_modbus:modbus_code15:index|Code 15 -Write Multiple Coils]] |여러 개의 비트 쓰기| 
-|[[.:Modbus_Code16:|Code 16 -Write Multiple Registers]] |여러 개의 워드 쓰기|+|[[:fieldio:modport:about_modbus:modbus_code16:index|Code 16 -Write Multiple Registers]] |여러 개의 워드 쓰기|
  
  
Line 83: Line 82:
 이 기억공간을 HMI와 데이터교환을 위한 링크영역으로 생각하시면 됩니다. 이 기억공간을 HMI와 데이터교환을 위한 링크영역으로 생각하시면 됩니다.
  
-{{ :comfilehmi:simplemodbus_source:linkarea.png?nolink |}}+{{ :comfilehmi:simplemodbus:linkarea.png?nolink |}}
  
 **주의사항** **주의사항**
Line 98: Line 97:
 {{ :comfilehmi:simplemodbus:modbus_coil_address.png?nolink |}} {{ :comfilehmi:simplemodbus:modbus_coil_address.png?nolink |}}
  
-^ 구분 ^ 바이트 ^ 비트 위치 ^ MODBUS 어드레스 ^ 
-| 첫번째 바이트 | Byte 1 | 7 | 00008 | 
-|  |  | 6 | 00007 | 
-|  |  | 5 | 00006 | 
-|  |  | 4 | 00005 | 
-|  |  | 3 | 00004 | 
-|  |  | 2 | 00003 | 
-|  |  | 1 | 00002 | 
-|  |  | 0 | 00001 | 
-| 두번째 바이트 | Byte 2 | 7 | 00016 | 
-|  |  | 6 | 00015 | 
-|  |  | 5 | 00014 | 
-|  |  | 4 | 00013 | 
-|  |  | 3 | 00012 | 
-|  |  | 2 | 00011 | 
-|  |  | 1 | 00010 | 
-|  |  | 0 | 00009 | 
- 
-^  |  첫번째 바이트  |||||||| 
-^비트위치 |  7  |  6  |  5  |  4  |  3  |  2  |  1  |  0  | 
-^MODBUS \\ 어드레스 | 00008 | 00007 | 00006 | 00005 | 00004 | 00003 | 00002 | 00001 | 
- 
-^  |  두번째 바이트  |||||||| 
-^비트위치 |  7  |  6  |  5  |  4  |  3  |  2  |  1  |  0  | 
-^MODBUS \\ 어드레스 | 00016 | 00015 | 00014 | 00013 | 00012 | 00011 | 00010 | 00009 | 
- 
-\\ 
  
 ==== 레지스터 (1워드 영역) 배열 사용법 ==== ==== 레지스터 (1워드 영역) 배열 사용법 ====
Line 130: Line 102:
 레지스터 배열은 첫번째 워드가 어드레스 40001 입니다. 레지스터 배열은 첫번째 워드가 어드레스 40001 입니다.
  
-^배열 위치 |  첫번째 워드  |  두번째 워드  |  세번째 워드  |  네번째 워드  |  ...  | +{{ :comfilehmi:simplemodbus:modbus_word_address.png?nolink |}}
-^MODBUS \\ 어드레스 |  40001  |  40002  |  40003  |  40004  |  .. |+
  
 \\ \\
Line 141: Line 112:
 따라서 여러분은 Simple MODBUS 의 구체적인 동작에 대해서 신경쓰지 않아도 됩니다. 앞서 선언한 Coil과 Register배열을 참조/관리하는 것만으로도 Simple MODBUS 를 이용할 수 있습니다. 따라서 여러분은 Simple MODBUS 의 구체적인 동작에 대해서 신경쓰지 않아도 됩니다. 앞서 선언한 Coil과 Register배열을 참조/관리하는 것만으로도 Simple MODBUS 를 이용할 수 있습니다.
  
-{{ :comfilehmi:simplemodbus_source:simplemodbusmcu.png?nolink |}}+{{ :comfilehmi:simplemodbus:simplemodbusmcu.png?nolink |}}
  
 프로그램 실행중 HMI에서 버튼 터치가 발생되면 특정 Coil이 1이 됩니다. (HMI작화 프로그램에서 버튼에 어드레스를 할당하도록 되어 있습니다.) MCU에서는 이 Coil을 참조해서 상응하는 동작을 하도록 프로그래밍하세요. 프로그램 실행중 HMI에서 버튼 터치가 발생되면 특정 Coil이 1이 됩니다. (HMI작화 프로그램에서 버튼에 어드레스를 할당하도록 되어 있습니다.) MCU에서는 이 Coil을 참조해서 상응하는 동작을 하도록 프로그래밍하세요.
Line 157: Line 128:
 타이머 인터럽트 루틴에서 Coil영역을 감시하는 방법도 있고, <타임 루프 프로그래밍 기법>이라는 코딩방법도 있습니다. 타이머 인터럽트 루틴에서 Coil영역을 감시하는 방법도 있고, <타임 루프 프로그래밍 기법>이라는 코딩방법도 있습니다.
  
-[[https://blog.naver.com/cubloc/220068092623|타임루프 프로그래밍 기법]]+[[https://blog.naver.com/cubloc/220068092623|타임루프 프로그래밍 기법 (BLOG)]]
  
 어떤 것이 여러분의 어플리케이션에 더 적합한지 잘 고민하신뒤 결정하시기 바랍니다. 어떤 것이 여러분의 어플리케이션에 더 적합한지 잘 고민하신뒤 결정하시기 바랍니다.
  
 [[comfilehmi:hmi_connection_mcu:index|이전 페이지로 가기]] [[comfilehmi:hmi_connection_mcu:index|이전 페이지로 가기]]