====== Simple Modbus library란? ====== Simple Modbus란 범용적으로 많이 사용하고 있는 ModbusRTU 프로토콜을 간단하게 만든 프로토콜 입니다. {{ :hmimcuapp:2-0.png |}} Simple Modbus는 표준 ModbusRTU의 평션코드중 1, 2, 3, 4, 5, 6, 15, 16을 사용할 수 있고, 메모리 저장공간은 16비트(Register), 1비트(Coil)를 사용 합니다. 표준 ModbusRTU은 16비트(Holding Register, Input Register), 1비트(Coil Status 와 Input Status)로 각각 나누어저 있지만 Simple Modbus는 16비트(Register), 1비트(Coil)로 되어 있습니다. ===== Simple Modbus library 사용하기 ===== 개발자는 Mbed 사이트에 로그인 한 후 Simple Modbus 라이브러리를 Import하여 쉽고 빠르게 프로그램 할 수 있습니다. Simple Modbus프로그램의 Targetboard는 STM사의 NUCLEO-F103RB로 되어 있습니다. * 1. Mbed사이트 접속 및 로그인 하기. //(참조)[[hmimcuapp:mbed_ide_개발환경_구현|MBED IDE 개발환경 구현]]// * 2. Simple Modbus 예제프로그램 Import하기. * 아래 링크 클릭하여 Import into Compiler를 클릭 하여 Import 합니다. * https://developer.mbed.org/teams/Comfiletechnology/code/2-ComfileHMI_Modbus/ {{ :hmimcuapp:2-1import.png |}} * 3. Target board 설정. {{ :hmimcuapp:2-2import_보드선텍.png |}} * 4. 프로젝트 컴파일. * 프로젝트 Import완료 되면 좌측에 프로젝트 폴더가 생성 됩니다. 해당 프로젝트를 선택한 후 상단의 Comfile버튼을 누르면 컴파일이 진행 됩니다. 컴파일오류가 없다면 bin 파일을 다운로드 받을 수 있습니다. 다운로드 된 bin파일을 NUDE_F103RB 디스크에 넣어 주시면 NUCLEO-F103RB 보드에 다운로드 됩니다. USB케이블로 PC와 NUCLEO-F103RB를 연결하면 NUDE_F103RB디스크가 자동으로 생성됩니다. {{ :hmimcuapp:2-3업로드.png |}} ===== StartModbus Function ===== StartModbus함수는 Simple Modbus 슬레이브의 시작을 알리는 함수 입니다. StartModbus 함수 선언 시 자동으로 ComfileHMI와 모드버트 통신을 진행 합니다. NUCLEO 보드의 통신포트 중 하나만 Simple Modbus 슬레이브 기능을 활성화 시킬 수 있습니다. //**void StartModbus(PinName Tx, PinName Rx, long Baud, u8 Address, u16 * BufferRegister, u8 * BufferCoil)**// * Tx : USART Tx 통신 포트 * Rx : USART Rx 통신 포트 * Baud : 보레이트 통신 속도 * Address : 모드버스의 슬레이브 어드레스 * BufferRegister : 레지스터(Word) 메모리 * BufferCoil : 코일(Bit) 메모리 아래의 예제 코드와 같이 레지스터와 코일 메모리를 베열로 선언하여 사용 하시면 됩니다. static u8 MDcoil[100]; static u16 MDregister[100]; StartModbus(PC_10, PC_11, 115200, 1, MDregister, MDcoil); [[hmimcuapp:index|이전 페이지로 가기]]