From 5b54553bd36c92090aee4c1a178e4062d3869470 Mon Sep 17 00:00:00 2001 From: victor <taehoon@falinux.com> Date: Wed, 17 May 2017 17:38:40 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B0=80=EC=8A=A4=20=EC=98=A4=EB=B8=90=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=ED=86=A0=EC=BD=9C=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/app-prime-modbus/rs485_serial.c | 284 +++++++++++---------- app/app-prime-modbus/include/all_share.h | 53 ++-- 2 files changed, 176 insertions(+), 161 deletions(-) diff --git a/app/app-prime-modbus/app/app-prime-modbus/rs485_serial.c b/app/app-prime-modbus/app/app-prime-modbus/rs485_serial.c index d178f3f..33a87f0 100644 --- a/app/app-prime-modbus/app/app-prime-modbus/rs485_serial.c +++ b/app/app-prime-modbus/app/app-prime-modbus/rs485_serial.c @@ -8,8 +8,8 @@ /** @file main_control.c @date 2017/01/12 - @author ��漮 jks@falinux.com FALinux.Co.,Ltd. - @brief �µ������� ���� ���α� + @author ��漮 jks@falinux.com FALinux.Co.,Ltd. + @brief �µ������� ���� ���α� @todo @bug @@ -17,8 +17,8 @@ @warning */ // -// ���۱� �������̸�����(��) -// �ܺΰ��� ���� +// ���۱� �������̸�����(��) +// �ܺΰ��� ���� // //---------------------------------------------------------------------------- @@ -31,7 +31,7 @@ #include <rs485_serial.h> #include <udp_gui.h> -#define MAX_RETRY 3 // ���� ���� �� �� ���� Ƚ�� +#define MAX_RETRY 3 // ���� ���� �� �� ���� Ƚ�� #define MAX_BUFF_SIZE 1024 enum step_t { @@ -63,25 +63,25 @@ static char buff[MAX_BUFF_SIZE]; static poll_obj_t *obj_uart; static enum step_t step_work = STEP_CONTROL; static enum switch_t sw_uart = SW_WAIT_ADDRESS; -static char tx_data[MAX_BUFF_SIZE]; // ���� ������ ���� -static int tx_szdata; // ���� ������ ���� +static char tx_data[MAX_BUFF_SIZE]; // ���� ������ ���� +static int tx_szdata; // ���� ������ ���� static U8 rx_data[MAX_BUFF_SIZE]; static int rx_index; static int rx_szdata; -static msec_t tm_recv; // ��� ���� Ȯ���� ���� �ð� ���� -static int cnt_retry; // ���� ���п� ���� �� ���� Ƚ�� -static int bit_onoff19 = 0; // bit sw 0x19 ���� �� -static int bit_onoff21 = 0; // bit sw 0x21 ���� �� -static int bit_onoff22 = 0; // bit sw 0x22 ���� �� -static U16 oven_error_bit = 0; // ���� ���� ��Ʈ �� -static U16 ary_error_cnt[16]; // ���� ī��Ʈ +static msec_t tm_recv; // ��� ���� Ȯ���� ���� �ð� ���� +static int cnt_retry; // ���� ���п� ���� �� ���� Ƚ�� +static int bit_onoff19 = 0; // bit sw 0x19 ���� �� +static int bit_onoff21 = 0; // bit sw 0x21 ���� �� +static int bit_onoff22 = 0; // bit sw 0x22 ���� �� +static U16 oven_error_bit = 0; // ���� ���� ��Ʈ �� +static U16 ary_error_cnt[16]; // ���� ī��Ʈ -static void run_step_work( int n_step); // ������ �۾��� ���� -static void run_next_step_work( void); // ���� �۾� ���� +static void run_step_work( int n_step); // ������ �۾��� ���� +static void run_next_step_work( void); // ���� �۾� ���� /** ---------------------------------------------------------------------------- -@brief WORD ����Ʈ�� ����/���� ����Ʈ ������ �ٲ۴�. -@remark ����� ��Ʋ���������, ��Ʋ������� ������� ���� +@brief WORD ����Ʈ�� ����/���� ����Ʈ ������ �ٲ۴�. +@remark ����� ��Ʋ���������, ��Ʋ������� ������� ���� @param - @return - -----------------------------------------------------------------------------*/ @@ -94,14 +94,14 @@ static void swap_byte( U16 *p16){ } /** ---------------------------------------------------------------------------- -@brief uart�� ���� ������ ���� -@remark ������ ������ uart ���� �ܰ踦 �ʱ�ȭ�Ѵ�. +@brief uart�� ���� ������ ���� +@remark ������ ������ uart ���� �ܰ踦 �ʱ�ȭ�Ѵ�. @param @return -----------------------------------------------------------------------------*/ static int write_to_uart( void){ - { // ����� �ڵ�, ���� ������ ����Ʈ ������ ��� + { // ����� �ڵ�, ���� ������ ����Ʈ ������ ��� int ndx; printf( "send:"); @@ -112,19 +112,19 @@ static int write_to_uart( void){ } int rst = uart_write( obj_uart, tx_data, tx_szdata); - sw_uart = SW_WAIT_ADDRESS; // ������ ���� �� uart ���� �ܰ� �ʱ�ȭ + sw_uart = SW_WAIT_ADDRESS; // ������ ���� �� uart ���� �ܰ� �ʱ�ȭ - tm_recv = get_cur_msec(); // ���� �ð� ���� + tm_recv = get_cur_msec(); // ���� �ð� ���� return rst; } /** ---------------------------------------------------------------------------- -@brief uart�� ������ ������ �ϼ� -@remark tx_data <- ������ ������ - tx_szdata <- ������ ������ ����Ʈ ���� -@param pdata : ������ ������ - sz_data : ������ ����Ʈ ���� +@brief uart�� ������ ������ �ϼ� +@remark tx_data <- ������ ������ + tx_szdata <- ������ ������ ����Ʈ ���� +@param pdata : ������ ������ + sz_data : ������ ����Ʈ ���� @return -----------------------------------------------------------------------------*/ static void make_tx_data( char *pdata, int sz_data){ @@ -141,11 +141,11 @@ static void make_tx_data( char *pdata, int sz_data){ } /** ---------------------------------------------------------------------------- -@brief �������κ��� ���� ������ ��û�Ѵ�. +@brief �������κ��� ���� ������ ��û�Ѵ�. @remark -@param addr_high : ���� address - addr_low : ���� address - size : �䱸�� ������ ����Ʈ ���� +@param addr_high : ���� address + addr_low : ���� address + size : �䱸�� ������ ����Ʈ ���� @return -----------------------------------------------------------------------------*/ static void modbus_func03( int addr_high, int addr_low, int size){ @@ -159,15 +159,15 @@ static void modbus_func03( int addr_high, int addr_low, int size){ buff[ndx++] = 0x00; buff[ndx++] = size; - make_tx_data( buff, ndx); // ���� ���� ������ ���� - write_to_uart(); // uart�� ���� + make_tx_data( buff, ndx); // ���� ���� ������ ���� + write_to_uart(); // uart�� ���� } /** ---------------------------------------------------------------------------- -@brief �������κ��� ���� ������ ��û�Ѵ�. +@brief �������κ��� ���� ������ ��û�Ѵ�. @remark -@param addr_high : ���� address - addr_low : ���� address - size : �䱸�� ������ ����Ʈ ���� +@param addr_high : ���� address + addr_low : ���� address + size : �䱸�� ������ ����Ʈ ���� @return -----------------------------------------------------------------------------*/ static void modbus_func04( int addr_high, int addr_low, int size){ @@ -181,17 +181,17 @@ static void modbus_func04( int addr_high, int addr_low, int size){ buff[ndx++] = 0x00; buff[ndx++] = size; - make_tx_data( buff, ndx); // ���� ���� ������ ���� - write_to_uart(); // uart�� ���� + make_tx_data( buff, ndx); // ���� ���� ������ ���� + write_to_uart(); // uart�� ���� } /** ---------------------------------------------------------------------------- -@brief �������� ���� ����(���� ��û) +@brief �������� ��� ����(���� ��û) @remark -@param addr_high : ���� address - addr_low : ���� address - data_high : ���� data - data_log : ���� data +@param addr_high : ���� address + addr_low : ���� address + data_high : ���� data + data_log : ���� data @return -----------------------------------------------------------------------------*/ static void modbus_func06( int addr_high, int addr_low, int data_high, int data_low){ @@ -205,14 +205,14 @@ static void modbus_func06( int addr_high, int addr_low, int data_high, int data_ buff[ndx++] = data_high; buff[ndx++] = data_low; - make_tx_data( buff, ndx); // ���� ���� ������ ���� - write_to_uart(); // uart�� ���� + make_tx_data( buff, ndx); // ���� ���� ������ ���� + write_to_uart(); // uart�� ���� } /** ---------------------------------------------------------------------------- -@brief GUI�� ���� ���� ���� +@brief GUI�� ���� ��� ���� @remark -@param pcmd : GUI�� ��û�� ���� +@param pcmd : GUI�� ��û�� ��� @return -----------------------------------------------------------------------------*/ static void set_value( command_t *pcmd){ @@ -234,19 +234,23 @@ static void set_value( command_t *pcmd){ case TG_FAN2_RPM : addr = 0x1e; break; case TG_FAN1_DIRECTOIN : addr = 0x1f; break; case TG_FAN2_DIRECTOIN : addr = 0x20; break; + case TG_BURNER1_1_RPM : addr = 0x28; break; + case TG_BURNER1_2_RPM : addr = 0x29; break; + case TG_BURNER23_1_RPM : addr = 0x2A; break; + case TG_BURNER23_2_RPM : addr = 0x2B; break; case TG_ERROR_CLEAR : addr = 0x31; break; } int value_high = ( pcmd->value >> 8) & 0xff; int value_low = ( pcmd->value ) & 0xff; - modbus_func06( 0, addr, value_high, value_low); // Modbus Func 6 �Լ� ȣ�� + modbus_func06( 0, addr, value_high, value_low); // Modbus Func 6 �Լ� ȣ�� } /** ---------------------------------------------------------------------------- -@brief GUI�� ����ġ on/off ���� ���� +@brief GUI�� ����ġ on/off ��� ���� @remark -@param pcmd : GUI�� ��û�� ���� +@param pcmd : GUI�� ��û�� ��� @return -----------------------------------------------------------------------------*/ static void onoff_switch( command_t *pcmd){ @@ -265,13 +269,13 @@ static void onoff_switch( command_t *pcmd){ int value_high = 0; int value_low = pcmd->value; - modbus_func06( 0, addr, value_high, value_low); // Modbus Func 6 �Լ� ȣ�� + modbus_func06( 0, addr, value_high, value_low); // Modbus Func 6 �Լ� ȣ�� } /** ---------------------------------------------------------------------------- -@brief GUI�� ��Ʈ ���� ����ġ on/off ���� ���� -@remark 0x0021, 0x0022 ��Ʈ ���� ����ġ ���� -@param pcmd : GUI�� ��û�� ���� +@brief GUI�� ��Ʈ ���� ����ġ on/off ��� ���� +@remark 0x0021, 0x0022 ��Ʈ ���� ����ġ ���� +@param pcmd : GUI�� ��û�� ��� @return -----------------------------------------------------------------------------*/ static void onoff_bit( command_t *pcmd){ @@ -346,11 +350,11 @@ static void onoff_bit( command_t *pcmd){ int value_high = ( *p_onoff >> 8) & 0xff; int value_low = ( *p_onoff ) & 0xff; - modbus_func06( 0, addr, value_high, value_low); // Modbus Func 6 �Լ� ȣ�� + modbus_func06( 0, addr, value_high, value_low); // Modbus Func 6 �Լ� ȣ�� } /** ---------------------------------------------------------------------------- -@brief ���� ���� ��Ʈ�� ī��Ʈ�� �ʱ�ȭ +@brief ���� ���� ��Ʈ�� ī��Ʈ�� �ʱ�ȭ @remark - @param - @return @@ -365,7 +369,7 @@ static void clear_error_cnt(){ } /** ---------------------------------------------------------------------------- -@brief GUI�κ��� ������ ��û�� �ִٸ� +@brief GUI�κ��� ������ ��û�� �ִٸ� @remark - @param - @return @@ -374,19 +378,19 @@ static void check_gui_cmd( void){ command_t cmd; - if ( 0 < gui_get_command( &cmd)){ // GUI�κ��� ��û�� �ִٸ� + if ( 0 < gui_get_command( &cmd)){ // GUI�κ��� ��û�� �ִٸ� switch( cmd.cmd){ - case CMD_VALUE : // ���� �� ���� + case CMD_VALUE : // ���� �� ���� set_value( &cmd); break; - case CMD_ONOFF : // ���� ����ġ ���� + case CMD_ONOFF : // ���� ����ġ ���� if ( TG_BITONOFF > cmd.target){ onoff_switch( &cmd); } else { onoff_bit( &cmd); } break; - case CMD_CLEAR_ERROR_CNT : // ���� ī��Ʈ �ʱ�ȭ + case CMD_CLEAR_ERROR_CNT : // ���� ī��Ʈ �ʱ�ȭ clear_error_cnt(); break; } @@ -397,7 +401,7 @@ static void check_gui_cmd( void){ } /** ---------------------------------------------------------------------------- -@brief �������κ��� ���� ���� ���� +@brief �������κ��� ���� ���� ���� @remark @param - @return @@ -407,14 +411,14 @@ static void on_rcv_control( void){ gui_oven_control_t oven; int ndx; - // ����� ��Ʋ��������� ���� - U16 *pword = (U16 *)&rx_data[3]; // �����ʹ� rx_data[3]���� ���� + // ����� ��Ʋ��������� ���� + U16 *pword = (U16 *)&rx_data[3]; // �����ʹ� rx_data[3]���� ���� for ( ndx = 0; ndx < rx_szdata / 2; ndx++){ swap_byte( pword++); } - // ���� ó�� + // ���� ó�� oven.header = HDR_OVEN_CONTROL; memcpy( ( char *)&oven.control, &rx_data[3], sizeof( oven_control_t)); @@ -435,14 +439,14 @@ static void on_rcv_control( void){ printf( "manual_onoff21 = 0x%04x\n", bit_onoff21); printf( "manual_onoff22 = 0x%04x\n", bit_onoff22); - // GUI�� ���� + // GUI�� ���� gui_send_data_to_gui( ( char *)&oven, sizeof( gui_oven_state_t)); - // ���� �ܰ� ���� + // ���� �ܰ� ���� run_next_step_work(); } /** ---------------------------------------------------------------------------- -@brief �������κ��� ���� ���� ���� +@brief �������κ��� ���� ���� ���� @remark @param - @return @@ -452,59 +456,59 @@ static void on_rcv_status( void){ gui_oven_state_t oven; int ndx; - // ����� ��Ʋ��������� ���� - U16 *pword = (U16 *)&rx_data[3]; // �����ʹ� rx_data[3]���� ���� + // ����� ��Ʋ��������� ���� + U16 *pword = (U16 *)&rx_data[3]; // �����ʹ� rx_data[3]���� ���� for ( ndx = 0; ndx < rx_szdata / 2; ndx++){ swap_byte( pword++); } - // ���� ó�� + // ���� ó�� oven.header = HDR_OVEN_STATE; - memcpy( ( char *)&oven.state, &rx_data[3], 0x32 * 2); // 0x32 : ���� ���� ���� 2����Ʈ ���� + memcpy( ( char *)&oven.state, &rx_data[3], 0x32 * 2); // 0x32 : ���� ���� ���� 2����Ʈ ���� - bit_onoff21 = oven.state.onoff_state1; // ���� ���� ���¸� �ݿ� - bit_onoff22 = oven.state.onoff_state2; // ���� ���� ���¸� �ݿ� + bit_onoff21 = oven.state.onoff_state1; // ���� ���� ���¸� �ݿ� + bit_onoff22 = oven.state.onoff_state2; // ���� ���� ���¸� �ݿ� if ( oven_error_bit != oven.state.system_error){ - // ����� ��Ʈ�� �ִ� �� Ȯ�� + // ����� ��Ʈ�� �ִ� �� Ȯ�� U16 bit_ndx = 0x0001; int bit_prev; int bit_curr; for ( ndx = 0; ndx < 16; ndx++){ - bit_prev = oven_error_bit & bit_ndx; // ���� ��Ʈ ���� - bit_curr = oven.state.system_error & bit_ndx; // ���� ��Ʈ ���� - if ( bit_prev != bit_curr){ // ��Ʈ ���� ���̰� �ִٸ� - if ( 0 != bit_prev){ // ��Ʈ ���� 0->1 ��ȭ�� �� ���� ī��Ʈ ���� + bit_prev = oven_error_bit & bit_ndx; // ���� ��Ʈ ���� + bit_curr = oven.state.system_error & bit_ndx; // ���� ��Ʈ ���� + if ( bit_prev != bit_curr){ // ��Ʈ ���� ���̰� �ִٸ� + if ( 0 != bit_prev){ // ��Ʈ ���� 0->1 ��ȭ�� �� ���� ī��Ʈ ���� ary_error_cnt[ndx]++; } } bit_ndx <<= 1; } - // GUI�� ���� ī��Ʈ ���� + // GUI�� ���� ī��Ʈ ���� for ( ndx = 0; ndx < 16; ndx++){ oven.state.error_cnt[ndx] = ary_error_cnt[ndx]; } - oven_error_bit = oven.state.system_error; // ���� ��Ʈ �� ���� + oven_error_bit = oven.state.system_error; // ���� ��Ʈ �� ���� } printf( "onoff_state1 = 0x%04x\n", oven.state.onoff_state1); printf( "onoff_state2 = 0x%04x\n", oven.state.onoff_state2); printf( "onoff_realy_load = 0x%04x\n", oven.state.onoff_relay_load); - // GUI�� ���� + // GUI�� ���� gui_send_data_to_gui( ( char *)&oven, sizeof( gui_oven_state_t)); - // ���� �ܰ� ���� + // ���� �ܰ� ���� run_next_step_work(); } /** ---------------------------------------------------------------------------- -@brief �������κ��� ���� ���� ����� ���� +@brief �������κ��� ��� ���� ����� ���� @remark @param - @return @@ -513,15 +517,15 @@ static void on_rcv_echo( void){ printf( "receive func code 0x%x\n", rx_data[1] & 0xff); - if ( gui_command_exists()){ // ó���ؾ��� ������ ���� �ִٸ� - check_gui_cmd(); // ���� ������ �����Ѵ�. - } else { // ó���ؾ��� ������ ���ٸ� - run_next_step_work(); // ���� �ܰ�� �Ѿ� ����. + if ( gui_command_exists()){ // ó���ؾ��� ����� ���� �ִٸ� + check_gui_cmd(); // ���� ����� �����Ѵ�. + } else { // ó���ؾ��� ����� ���ٸ� + run_next_step_work(); // ���� �ܰ�� �Ѿ� ����. } } /** ---------------------------------------------------------------------------- -@brief �������κ��� Modbus 80 ���� �ڵ� ���� �� ó�� +@brief �������κ��� Modbus 80 ���� �ڵ� ���� �� ó�� @remark @param - @return @@ -533,7 +537,7 @@ static void on_rcv_80_code( void){ switch( step_work){ case STEP_CHECK : printf( "failed to command to oven\n"); - gui_send_error_code( ERR_RECEIVE_80); // 0x80 �ڵ� ������ GUI�� �˸� + gui_send_error_code( ERR_RECEIVE_80); // 0x80 �ڵ� ������ GUI�� �˸� break; default : break; @@ -542,14 +546,14 @@ static void on_rcv_80_code( void){ } /** ---------------------------------------------------------------------------- -@brief uart�κ��� CRC���� Ȯ���� ������ �������� +@brief uart�κ��� CRC���� Ȯ���� ������ �������� @remark @param @return -----------------------------------------------------------------------------*/ static void on_receive_data( void){ - // function �ڵ庰�� �з� + // function �ڵ庰�� �з� switch ( rx_data[1]){ case 0x03 : on_rcv_control(); break; case 0x04 : on_rcv_status(); break; @@ -566,11 +570,11 @@ static void on_receive_data( void){ @brief CRC üũ @remark @param -@return true: CRC �� ���� +@return true: CRC �� ���� -----------------------------------------------------------------------------*/ static int is_crc_ok( void){ - // rx_index�� ���ο� ����Ʈ�� ���� ��ġ. ��, ������ ����Ʈ ���� + // rx_index�� ���ο� ����Ʈ�� ���� ��ġ. ��, ������ ����Ʈ ���� U16 crc = CRC16( ( unsigned char *)rx_data, rx_index-2); U32 data_crc_lo = rx_data[rx_index-2]; @@ -582,10 +586,10 @@ static int is_crc_ok( void){ } /** ---------------------------------------------------------------------------- -@brief uart ��Ʈ�κ��� ������ ������ ó�� +@brief uart ��Ʈ�κ��� ������ ������ ó�� @remark -@param obj : ��� ��ü -@return ���� ����Ʈ ���� +@param obj : ��� ��ü +@return ���� ����Ʈ ���� -----------------------------------------------------------------------------*/ static int on_serial_read( poll_obj_t *obj ) { @@ -593,7 +597,7 @@ static int on_serial_read( poll_obj_t *obj ) int ndx; int rdcnt; - tm_recv = get_cur_msec(); // ����Ʈ Ÿ�� ������ �ɸ��� �ʵ��� ���� �ð� ����. + tm_recv = get_cur_msec(); // ����Ʈ Ÿ�� ������ �ɸ��� �ʵ��� ���� �ð� ����. memset(buff, 0, sizeof(buff)); rdcnt = uart_read(obj, buff, sizeof(buff)); @@ -609,10 +613,10 @@ static int on_serial_read( poll_obj_t *obj ) case SW_WAIT_FUNCTION : rx_data[rx_index++] = ch_data; switch( ch_data){ - case 0x03 : // ������ 0x04�� COUNT ������ �ʿ� + case 0x03 : // ������ 0x04�� COUNT ������ �ʿ� sw_uart = SW_WAIT_COUNT; break; - case 0x04 : // ������ 0x04�� COUNT ������ �ʿ� + case 0x04 : // ������ 0x04�� COUNT ������ �ʿ� sw_uart = SW_WAIT_COUNT; break; default : @@ -620,28 +624,28 @@ static int on_serial_read( poll_obj_t *obj ) break; } break; - case SW_WAIT_COUNT : // ������ ���̸� ���� + case SW_WAIT_COUNT : // ������ ���̸� ���� sw_uart = SW_WAIT_DATA_COUNT; rx_data[rx_index++] = ch_data; - rx_szdata = ch_data; // CRC�� ������ ����Ʈ ���� + rx_szdata = ch_data; // CRC�� ������ ����Ʈ ���� break; case SW_WAIT_DATA_COUNT : - rx_data[rx_index++] = ch_data; // rx_szdata ���� ����Ʈ ��ŭ �о� ���� - if ( rx_szdata == rx_index-3){ // -3: ���� 1����Ʈ, FUN 1����Ʈ, ������ ���� 1����Ʈ ���� ���� + rx_data[rx_index++] = ch_data; // rx_szdata ���� ����Ʈ ��ŭ �о� ���� + if ( rx_szdata == rx_index-3){ // -3: ���� 1����Ʈ, FUN 1����Ʈ, ������ ���� 1����Ʈ ���� ���� sw_uart = SW_WAIT_CRC_LOW; } break; - case SW_WAIT_DATA : // ��� ���� 0x05���� �о� ���� ������ ������ 4����Ʈ + case SW_WAIT_DATA : // ��� ���� 0x05���� �о� ���� ������ ������ 4����Ʈ rx_data[rx_index++] = ch_data; - if ( 4 == rx_index-2){ // -2: ���� 1����Ʈ, FUN 1����Ʈ + if ( 4 == rx_index-2){ // -2: ���� 1����Ʈ, FUN 1����Ʈ sw_uart = SW_WAIT_CRC_LOW; } break; - case SW_WAIT_CRC_LOW : // crc low ����Ʈ ���� + case SW_WAIT_CRC_LOW : // crc low ����Ʈ ���� sw_uart = SW_WAIT_CRC_HIGH; rx_data[rx_index++] = ch_data; break; - case SW_WAIT_CRC_HIGH : // crc high ����Ʈ ���� + case SW_WAIT_CRC_HIGH : // crc high ����Ʈ ���� sw_uart = SW_WAIT_ADDRESS; rx_data[rx_index++] = ch_data; if ( is_crc_ok()){ @@ -655,9 +659,9 @@ static int on_serial_read( poll_obj_t *obj ) } /** ---------------------------------------------------------------------------- -@brief ������ �������� �� ���� ���� ó�� -@remark �µ��� �� �о��� ���� ���� ���� �µ� ������ -9999�� - RUNSTOP �� ��û�� ���� �����Ͱ� ���ٸ� RUNSTOP_NOT_EXISTS�� ���� +@brief ������ �������� �� ���� ���� ó�� +@remark �µ��� �� �о��� ���� ���� ���� �µ� ������ -9999�� + RUNSTOP �� ��û�� ���� �����Ͱ� ���ٸ� RUNSTOP_NOT_EXISTS�� ���� @param @return -----------------------------------------------------------------------------*/ @@ -666,44 +670,44 @@ static void on_no_data( void){ if ( MAX_RETRY < cnt_retry){ printf( ">>>>>>>> failed to send data\n"); - if ( STEP_CHECK == step_work){ // GUI ��û���� ������ ���� ���̾��� - gui_send_error_code( ERR_SEND_COMMAND); // ���� ���� ���и� GUI�� �˸� + if ( STEP_CHECK == step_work){ // GUI ��û���� ����� ���� ���̾��� + gui_send_error_code( ERR_SEND_COMMAND); // ��� ���� ���и� GUI�� �˸� } } else { - write_to_uart(); // ���� ���� ������ �ٽ� ���� + write_to_uart(); // ���� ���� ������ �ٽ� ���� cnt_retry++; return; } - run_step_work( STEP_CONTROL); // ����� ��� �����ߴٸ� ���� ���¸� ���ϴ� �۾����� �ٽ� ���� + run_step_work( STEP_CONTROL); // ����� ��� �����ߴٸ� ���� ���¸� ���ϴ� �۾����� �ٽ� ���� } /** ---------------------------------------------------------------------------- -@brief �μ��� ���� �۾� STEP�� �����Ѵ�. +@brief �μ��� ���� �۾� STEP�� �����Ѵ�. @remark -@param n_step : ������ STEP +@param n_step : ������ STEP @return - -----------------------------------------------------------------------------*/ static void run_step_work( int n_step){ - step_work = n_step; // �۾� �ܰ� ���� - cnt_retry = 0; // ���� �۾��� ���� �� ���� Ƚ�� �ʱ�ȭ - msleep( 50); // ���� ���� ��û ���� ���� ������ ������ �� �Ǵ� ��찡 ���� + step_work = n_step; // �۾� �ܰ� ���� + cnt_retry = 0; // ���� �۾��� ���� �� ���� Ƚ�� �ʱ�ȭ + msleep( 50); // ���� ��� ��û ���� ���� ������ ������ �� �Ǵ� ��찡 ���� switch( step_work){ - case STEP_CONTROL : modbus_func03( 0x00, 0x00, sizeof( oven_control_t) /2); break; // ������ ��û ���� /2: word ������ ����, 2���� ��û�ϸ� 4 ����Ʈ ���� - case STEP_STATE : modbus_func04( 0x00, 0x00, 0x32 ); break; // oven_stae_t�� error_cnt[] ������ �־ ���� �Է� - case STEP_CHECK : check_gui_cmd(); break; // GUI ��û Ȯ�� + case STEP_CONTROL : modbus_func03( 0x00, 0x00, sizeof( oven_control_t) /2); break; // ������ ��û ���� /2: word ������ ����, 2���� ��û�ϸ� 4 ����Ʈ ���� + case STEP_STATE : modbus_func04( 0x00, 0x00, 0x32 ); break; // oven_stae_t�� error_cnt[] ������ �־ ���� �Է� + case STEP_CHECK : check_gui_cmd(); break; // GUI ��û Ȯ�� default : - msleep( 100); // 100mm sec ��, ��� ���� ���� - run_next_step_work(); // ���� STEP ���� + msleep( 100); // 100mm sec ��, ��� ���� ���� + run_next_step_work(); // ���� STEP ���� break; } } /** ---------------------------------------------------------------------------- -@brief ���� �۾� STEP�� �����Ѵ�. -@remark STEP�� ����ϴ� step_work�� ���� +@brief ���� �۾� STEP�� �����Ѵ�. +@remark STEP�� ����ϴ� step_work�� ���� @param - @return - -----------------------------------------------------------------------------*/ @@ -715,14 +719,14 @@ static void run_next_step_work( void){ } /** ---------------------------------------------------------------------------- -@brief ������ ���� ���� Ȯ�� +@brief ������ ���� ���� Ȯ�� @remark -@param msec_t tm_curr : ���� �ð� +@param msec_t tm_curr : ���� �ð� @return -----------------------------------------------------------------------------*/ int rs485_timer( msec_t tm_curr){ - if ( 500 <= ( tm_curr - tm_recv) ){ // 1�� �̻� ���ŵǴ� �����Ͱ� ���ٸ� ��� �̻����� �Ǵ� + if ( 500 <= ( tm_curr - tm_recv) ){ // 1�� �̻� ���ŵǴ� �����Ͱ� ���ٸ� ��� �̻����� �Ǵ� on_no_data(); } return 0; @@ -730,20 +734,20 @@ int rs485_timer( msec_t tm_curr){ /** ---------------------------------------------------------------------------- -@brief rs485 ��� ���� ���� +@brief rs485 ��� ���� ���� @remark -@param uart_name : uart ��ġ �̸� +@param uart_name : uart ��ġ �̸� @return -----------------------------------------------------------------------------*/ int rs845_run_start( void){ - run_step_work( STEP_CONTROL); // ���� ���� ���¸� ���ϴ� �۾����� ���� + run_step_work( STEP_CONTROL); // ���� ���� ���¸� ���ϴ� �۾����� ���� return 0; } /** ---------------------------------------------------------------------------- -@brief ��� ������ ���� �ʱ�Ȱ�� �Ѵ�. +@brief ��� ������ ���� �ʱ�Ȱ�� �Ѵ�. @remark @param @return @@ -754,7 +758,7 @@ int rs485_initialize( void){ poll_obj_t *obj; int ndx; - inifile = ini_create( INI_SYSTEM); // IniFile ���� + inifile = ini_create( INI_SYSTEM); // IniFile ���� if ( NULL == inifile){ printf( "ini file error.\n"); return -1; @@ -775,12 +779,12 @@ int rs485_initialize( void){ ini_free( inifile); } - memset( &rx_data, 0, sizeof( rx_data)); // ���� ���� ���� �ʱ�ȭ + memset( &rx_data, 0, sizeof( rx_data)); // ���� ���� ���� �ʱ�ȭ obj_uart = obj; - // ���� ī��Ʈ�� ���� ��Ʈ �ʱ�ȭ - // ���� ���Ͽ��� �о� ���� + // ���� ī��Ʈ�� ���� ��Ʈ �ʱ�ȭ + // ���� ���Ͽ��� �о� ���� for ( ndx = 0; ndx < 16; ndx++){ ary_error_cnt[ndx] = 0; diff --git a/app/app-prime-modbus/include/all_share.h b/app/app-prime-modbus/include/all_share.h index 6577855..74273aa 100644 --- a/app/app-prime-modbus/include/all_share.h +++ b/app/app-prime-modbus/include/all_share.h @@ -1,10 +1,10 @@ //------------------------------------------------------------------------------ -// ȭ�ϸ� : all_share.h -// ������Ʈ : -// �� �� : ���� �� ����ü�� �����Ѵ�. +// ȭ�ϸ� : all_share.h +// ������Ʈ : +// �� �� : ���� �� ����ü�� �����Ѵ�. // -// ���۱� : FA�������ֽ�ȸ�� -// �� �� : +// ���۱� : FA�������ֽ�ȸ�� +// �� �� : //------------------------------------------------------------------------------ #ifndef _ALL__SHARE_HEADER_ #define _ALL__SHARE_HEADER_ @@ -25,9 +25,9 @@ typedef unsigned long long U64; typedef signed short I16; enum command_enum_t { - CMD_VALUE = 0, // ���� �� ���� - CMD_ONOFF, // ���� ����ġ ON/OFF - CMD_CLEAR_ERROR_CNT // ���� ī��Ʈ�� �ʱ�ȭ + CMD_VALUE = 0, // ���� �� ���� + CMD_ONOFF, // ���� ����ġ ON/OFF + CMD_CLEAR_ERROR_CNT // ���� ī��Ʈ�� �ʱ�ȭ }; enum target_value_t { @@ -46,6 +46,10 @@ enum target_value_t { TG_FAN2_RPM, TG_FAN1_DIRECTOIN, TG_FAN2_DIRECTOIN, + TG_BURNER1_1_RPM, + TG_BURNER1_2_RPM, + TG_BURNER23_1_RPM, + TG_BURNER23_2_RPM, TG_ERROR_CLEAR }; @@ -87,18 +91,18 @@ enum target_onoff_t { }; enum { - HDR_OVEN_CONTROL = 0, // 40000 ���� ��, ��Ʈ�� ���� - HDR_OVEN_STATE, // 30000 ���� ��, ���� ���� - HDR_ERROR_CODE // ���� �ڵ� + HDR_OVEN_CONTROL = 0, // 40000 ���� ��, ��Ʈ�� ���� + HDR_OVEN_STATE, // 30000 ���� ��, ���� ���� + HDR_ERROR_CODE // ���� �ڵ� }; enum { - ERR_SEND_COMMAND = 0, // ���� ���ۿ� ���� ������ ���� - ERR_RECEIVE_80 // 0x80 �ڵ带 �������� + ERR_SEND_COMMAND = 0, // ��� ���ۿ� ���� ������ ���� + ERR_RECEIVE_80 // 0x80 �ڵ带 �������� }; // -// �ý��� ��ü ���� ����ü ����ü +// �ý��� ��ü ���� ����ü ����ü // typedef struct @@ -149,10 +153,10 @@ typedef struct { U16 reserved25; // 25 U16 reserved26; // 26 U16 reserved27; // 27 - U16 reserved28; // 28 - U16 reserved29; // 29 - U16 reserved2a; // 2A - U16 reserved2b; // 2B + U16 burner1_1_rpm; // 28 + U16 burner1_2_rpm; // 29 + U16 burner23_1_rpm; // 2A + U16 burner23_2_rpm; // 2B U16 reserved2c; // 2C U16 reserved2d; // 2D U16 reserved2e; // 2E @@ -212,7 +216,14 @@ typedef struct { U16 communication_error; // 2F U16 sensor_error; // 30 U16 reserved31; // 31 - U16 error_cnt[16]; // ���� ī��Ʈ + U16 burner1_ignition_rpm; // 32 + U16 burner2_ignition_rpm; // 33 + U16 burner3_ignition_rpm; // 34 + U16 burner1_current_rpm; // 35 + U16 burner2_current_rpm; // 36 + U16 burner3_current_rpm; // 37 + U16 controller_error; // 38 + U16 error_cnt[16]; // ���� ī��Ʈ } STRUCT_PACK oven_state_t; typedef struct { @@ -232,13 +243,13 @@ typedef struct { //------------------------------------------------------------------------------ // -// ������, ���̷ε� +// ������, ���̷ε� // //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ // -// ���� ���� ���� +// ���� ���� ���� // //------------------------------------------------------------------------------ -- 2.1.4