======FA-DUINO에서 Simple modbus 라이브러리 사용법====== ComfileHMI와 FA-DUINO 연결은 RS232C 또는 RS485로 연결합니다. 프로토콜은 Simple MODBUS RTU를 이용하여 통신 할 수 있습니다. Simple MODBUS는 MODBUS RTU의 기능들 중 핵심기능들 만을 축약해 놓은 프로토콜입니다. Simple MODBUS 라이브러를 사용하면 보다 쉽게 빠르게 프로토콜을 구현 할 수 있습니다. * 32TA, 12RA, 24RA 모델은 모두 2560칩을 사용하므로 같은 SimpleMODBUS 라이브러를 쓸 수 있습니다. ===== 주의 사항 ===== * Serial1 용으로 되어 있습니다. 따라서 Serial1을 다른 용도로 사용할 수 없습니다. * Serial2 또는 Serial3을 SimpleModbus로 사용하려면 위 라이브러리를 직접 수정하셔야 하지만 권장드리지 않습니다. * 115200보레이트는 동작하지 않습니다. 57600을 권장합니다. ===== 저작권 관련 주의 사항 ===== * 본 라이브러리는 고객여러분의 편의를 위하여 무료로 제공해드리고 있습니다. 여러분의 제품에 포함하여 배포하실 수 있습니다. * 다만 상업적 사용은 금합니다. (이 라이브러리 자체를 사이트에 링크하는 경우) * 본 라이브러리 자체에 대한 기술지원은 하고 있지 않은점 양해바랍니다. ===== 1. Simple modbus 라이브러리 추가 ===== {{ :faduino:faduino_simplemodbus:simplemodbusrtu_mega2560.zip |}} Simple modbus 라이브러리 파일을 arduino라이브러리 폴더 __\Documents\Arduino\libraries__로 옮겨주셔야합니다~! {{ :faduino:faduino_simplemodbus:9decb4b8ebaca6ecb49aedb48d_94.png?nolink |}} \\ ===== 2. Simple modbus 라이브러리 사용방법 ===== #include // 헤더파일을 include uint16_t au16data[16]; // 레지스터 메모리 영역(word) uint8_t au8data[10]; // 코일 메모리 영역(bit) char n; // void setup() { // FA-DUINO port 모드설정 char i; for(i=38; i<52; i++){ pinMode(i, OUTPUT); } // 38 ~ 51번의 포트를 출력 for(i=22; i<38; i++){ pinMode(i, INPUT); } // 22 ~ 37번의 포트를 입력 usart1init(57600); // 모드버스 프로토콜 활성화 및 ch1 보래이트 설정 startSimpleModbus(1,au16data, au8data); // 읽고 쓸 메모리 배열 설정 } void loop() { // port 상태값을 메모리에 읽고 씀. for(n=0; n<14; n++){ digitalWrite(38+n, bitRead(au8data[0], n) ) ;} for(n=0; n<16; n++){ bitWrite( au8data[1],n, digitalRead(n+22) ) ;} au16data[0] = analogRead(A0); au16data[1] = analogRead(A1); } ===== 3. ComfileHMI와 FA-DUINO 결선 ===== 아래와 같이 FA-DUINO RS232 CH1에 결선합니다. Simple modbus 라이브러리는 RS232 CH1을 지원합니다. \\ {{ :faduino:faduino_simplemodbus:hmib2eca0.png?nolink |}} 프로젝트 파일입니다. [[http://comfile.co.kr/download/etc/mega2560_HMI.zip|2560_COMFILEHMI_ProjectFile]] {{ :faduino:faduino_simplemodbus:hmiscreen.png?nolink |}} [[faduino:index#예제_프로그램|상위 페이지로 이동]]