Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| comfilehmi:simplemodbus:index [2026/02/11 02:23] – admin | comfilehmi: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: |
| - | |[[.:Modbus_Code3:|Code 3 -Read Registers]] |여러 개의 워드 읽기| | + | |[[:fieldio:modport: |
| - | |[[.:Modbus_Code5:|Code 5 -Write One Coil]] |1 비트 쓰기| | + | |[[:fieldio:modport: |
| - | |[[.:Modbus_Code6:|Code 6 -Write One Register]] |1 워드 쓰기| | + | |[[:fieldio:modport: |
| - | |[[.:Modbus_Code15:|Code 15 -Write Multiple Coils]] |여러 개의 비트 쓰기| | + | |[[:fieldio:modport: |
| - | |[[.:Modbus_Code16:|Code 16 -Write Multiple Registers]] |여러 개의 워드 쓰기| | + | |[[:fieldio: |
| Line 83: | Line 82: | ||
| 이 기억공간을 HMI와 데이터교환을 위한 링크영역으로 생각하시면 됩니다. | 이 기억공간을 HMI와 데이터교환을 위한 링크영역으로 생각하시면 됩니다. | ||
| - | {{ : | + | {{ : |
| **주의사항** | **주의사항** | ||
| Line 98: | Line 97: | ||
| {{ : | {{ : | ||
| - | ^ 구분 ^ 바이트 ^ 비트 위치 ^ 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 입니다. | ||
| - | ^배열 위치 | 첫번째 워드 | + | {{ : |
| - | ^MODBUS \\ 어드레스 | 40001 | 40002 | 40003 | 40004 | ... | | + | |
| \\ | \\ | ||
| Line 141: | Line 112: | ||
| 따라서 여러분은 Simple MODBUS 의 구체적인 동작에 대해서 신경쓰지 않아도 됩니다. 앞서 선언한 Coil과 Register배열을 참조/ | 따라서 여러분은 Simple MODBUS 의 구체적인 동작에 대해서 신경쓰지 않아도 됩니다. 앞서 선언한 Coil과 Register배열을 참조/ | ||
| - | {{ : | + | {{ : |
| 프로그램 실행중 HMI에서 버튼 터치가 발생되면 특정 Coil이 1이 됩니다. (HMI작화 프로그램에서 버튼에 어드레스를 할당하도록 되어 있습니다.) MCU에서는 이 Coil을 참조해서 상응하는 동작을 하도록 프로그래밍하세요. | 프로그램 실행중 HMI에서 버튼 터치가 발생되면 특정 Coil이 1이 됩니다. (HMI작화 프로그램에서 버튼에 어드레스를 할당하도록 되어 있습니다.) MCU에서는 이 Coil을 참조해서 상응하는 동작을 하도록 프로그래밍하세요. | ||
| Line 157: | Line 128: | ||
| 타이머 인터럽트 루틴에서 Coil영역을 감시하는 방법도 있고, <타임 루프 프로그래밍 기법> | 타이머 인터럽트 루틴에서 Coil영역을 감시하는 방법도 있고, <타임 루프 프로그래밍 기법> | ||
| - | [[https:// | + | [[https:// |
| 어떤 것이 여러분의 어플리케이션에 더 적합한지 잘 고민하신뒤 결정하시기 바랍니다. | 어떤 것이 여러분의 어플리케이션에 더 적합한지 잘 고민하신뒤 결정하시기 바랍니다. | ||
| [[comfilehmi: | [[comfilehmi: | ||
