ILF / Mbed 2 deprecated mbed_ILF

Dependencies:   mbed SDFileSystem

Revision:
11:73676f3114f1
Parent:
6:cd0b4dc7eeb2
Child:
12:60fb2daa673f
--- a/ILF3.cpp	Mon Apr 25 07:48:36 2022 +0000
+++ b/ILF3.cpp	Wed Apr 27 06:19:26 2022 +0000
@@ -16,9 +16,6 @@
         the CAT24M01 is a 1024kb serial CMOS EEPROM
         addres: 101010**
 
-    2.電圧測定の平均化
-
-
 
 ******************************************************************************/
 /*
@@ -133,6 +130,7 @@
 
 //Display
 #define touch           5                   //GU-D タッチパネル感度 0~7で設定。低いほど敏感。
+
 const char sw_up_set[] = {20,21,22,23};     //CAL情報セット画面におけるUPスイッチの表示位置番号
 const char sw_down_set[] = {28,29,30,31};   //CAL情報セット画面におけるDOWNスイッチの表示位置番号
 const int zahyou_para1[] = {0,2};       //CAL情報セット画面における項目の表示位置座標
@@ -209,7 +207,6 @@
 x=14 : cal_name(ASCII)
 */
 
-
 /*******************************************************************************
 
     LPC1768 PIN MAPPING
@@ -293,17 +290,17 @@
 };
 
 DigitalOut  led_green[] = {
-    DigitalOut( P0_17 ),
-    DigitalOut( P1_31 ),
     DigitalOut( P2_11 ),
-    DigitalOut( P1_18 )
+    DigitalOut( P1_18 ),
+    DigitalOut( P0_17 ),  //io5
+    DigitalOut( P1_30 )   //io7
 };
 
 DigitalOut  led_red[] = {
-    DigitalOut( P0_18 ),
-    DigitalOut( P1_30 ),
     DigitalOut( P2_12 ),
-    DigitalOut( P1_19 )
+    DigitalOut( P1_19 ),
+    DigitalOut( P0_18 ),  //io6
+    DigitalOut( P1_31 )   //io8
 };
 
 /*** PLC ver3 ***/
@@ -357,14 +354,14 @@
 
 //RELAY ver3.0.0
 DigitalOut  rlen[]  = { 
-    DigitalOut( P1_4 ),     //RLCNT1
-    DigitalOut( P1_8 ),     //RLCNT2
-    DigitalOut( P1_9 ),     //RLCNT3    
+    DigitalOut( P1_4 ),      //RLCNT1
+    DigitalOut( P1_8 ),      //RLCNT2
+    DigitalOut( P1_9 ),      //RLCNT3    
     DigitalOut( P1_10 ),     //RLCNT4
     DigitalOut( P1_14 ),     //RLCNT5
     DigitalOut( P1_15 ),     //RLCNT6
     DigitalOut( P1_16 ),     //RLCNT7
-    DigitalOut( P1_17 ),     //RLCNT8
+    DigitalOut( P1_17 )      //RLCNT8
 };
 
 /*******************************************************************************
@@ -372,7 +369,8 @@
     SD Card
  
 *******************************************************************************/
-void sd_writetext(char* text);
+float   fdata[4][4];//ファイル出力用
+void    sd_writetext(char* text);
 
 /*******************************************************************************
 
@@ -441,6 +439,7 @@
 void    setup_cal_information(char cal_num);    //CAL情報登録画面
 void    manual_int_hyouji();
 void    auto_int_hyouji();
+void    seq_int_hyouji();
 void    disp_setup_cal(char cal_num ,int parameter);   //CAL情報登録画面表示
 //
 //******************************************************************************
@@ -578,6 +577,7 @@
     short   low_limit_ocp_v;    // 過充電防止検査の下限規格[V] ver3
     short   up_limit_ocp_v;     // 過充電防止検査の上限規格[V] ver3
     float   wait_voc;           // リセット立上りからVOC測定までの待機時間[s] 1bit 1s 換算 ver3
+    bool    en_ryuzu;           // リュウズ操作の有り無し 有:True 
 } ;
 
 //parameter
@@ -621,44 +621,98 @@
     }
     
 }
-/*******************************
+
+/*******************************************************************************
+
+    Sequence Mode initialize main screen 
+
+*******************************************************************************/
+void    seq_int_hyouji(bool bt){
+
+    gu_cls();//clear screen
+    gu_fontsize(2);
+    gu_print1("Sequenser Mode ");
+    
+     //*** debugging ***********************
+    i2c.write(addr_gu, calinfo.name, 4);
+    //**************************************
+
+    if ( bt ){ 
+        gu_Button_power_on();
+    }
+
+}
+/*******************************************************************************
 
     Sequence Mode main screen
 
-*******************************/
+*******************************************************************************/
 void seq()
 {
-    gu_cls();//clear screen
-    gu_fontsize(2);
-    gu_print1("Sequenser Mode");
+    char crdata[3];
+    char cmd_gu[32];
+
+    seq_int_hyouji(true);
 
     //seq_start.fall(&trigger);//スタート信号立下りで割込み
-
     //シーケンサのトリガ以外は受け付けない
     while(1) {
+            
         /*** ver3 ***/
         //if( seq_start == 0 ) {
         if ( seq_in[0] == 0 ){
 
+            seq_int_hyouji(false);
+
             trigger();
 
+            seq_int_hyouji(true);
+
         }
 
         wait(0.3);
 
+        crdata[0] = 0;
+        crdata[1] = 0;
+        crdata[2] = 0;
+
+        i2c.read ((addr_gu + 0x01), crdata, 3, true);
+
+        if ( crdata[0] == 0x11 && crdata[2] == 1 ) { //個別タッチスイッチ状態読み出しフォーマット。識別子11h。
+
+            //cswnum = crdata[1]; //スイッチ番号
+            //cswdata = crdata[2];//ON/OFF情報
+
+            //gu-D タッチスイッチ読み出し動作設定 p49
+            cmd_gu[0]= 0x1F;
+            cmd_gu[1]= 0x4B;
+            cmd_gu[2]= 0x18;
+            cmd_gu[3]= 0x00;//SW状態変化時自動送信モード2解除
+            i2c.write(addr_gu, cmd_gu, 4); //gu-D タッチスイッチ読み出し動作設定 p49
+
+            if ( crdata[1] == 7 ) {
+
+                gu_Button_power_off();//電源ボタンイメージ反転表示
+                wait(0.5);
+
+                led_off();//LED全消灯
+
+                return;//この関数を抜ける
+
+            }//end if
+        }//end if
     }//while(1)
 }
 
-
-/*******************************
+/*******************************************************************************
 
     Strart Sequence
 
-*******************************/
+*******************************************************************************/
 void trigger()
 {
-    char    meas_num;//測定個数
-    char    cal_num; //CAL選択ナンバー
+    char    meas_num;   //測定個数
+    char    cal_num;    //CAL選択ナンバー
     //char    cmd_gu[2];
 
     gu_cls();//clear screen
@@ -689,7 +743,6 @@
         gu_fontsize(1);
         gu_print1("Cal number error");
         wait(1);
-
     }
 
     /*** v3 debag ***/
@@ -722,7 +775,6 @@
     gu_print1("ready  ");
 
 }
-
 /*******************************************************************************
 
     EEPROMへCAL情報(struct)を保存
@@ -746,7 +798,7 @@
     adrs_init = ((adrs_calinfo[0] << 8 ) & 0xFF00 ) + (adrs_calinfo[1] & 0xFF);
 
     //EEPROM書込み page指定
-    
+
     adrs = adrs_init + 0x100 * ( num - 1 );
     cdata[0] = ( (adrs & 0xFF00) >> 8 ) & 0xFF;   //address 15~8 bit
     cdata[1] = 0x00;                            //address 7~0 bit
@@ -837,7 +889,7 @@
     for ( i = 0; i <= 8; i++ ) {
         sdata[i] = cdata[i*2] | ( cdata[ i*2 + 1 ] << 8 );
     }
-    
+
     cal -> number = num;
     cal -> vss_iop = sdata[0];          //0x00
     cal -> vss_ocp = sdata[1];          //0x02
@@ -988,35 +1040,11 @@
     ADC(MCP3424)
     指定addressから2byte読込み
 
-        ver3.0.0 20ms間隔の5回平均
-
 *******************************************************************************/
 short read_adc(char addr)//指定addressから2byte読込み
 {
     char cdata[2];//1byte
     short sdata;//2byte
-    //short kekka;
-    //short goukei;
-    //int bosu = 5;
-
-    i2c.read( addr + 0x01, cdata, 2);
-
-    /*
-    for( int i = 0; i < bosu; i++){
-        i2c.read( addr + 0x01, cdata, 2);
-
-        //connect 2byte
-        kekka = cdata[0] & 0xFF;
-        kekka = ( sdata << 8 ) | cdata[1];
-
-        goukei += kekka;
-        
-        wait(0.1);
-
-    }
-     
-    sdata = goukei / bosu;
-    */
 
     i2c.read( addr + 0x01, cdata, 2);
 
@@ -2637,32 +2665,38 @@
     }//while
 }
 
-/*********************************
+/*******************************************************************************
 
     Auto Mode (sub)
     自動測定モード 初期画面
 
-*********************************/
+        ver3.0.0 Add CAL NAME
+
+*******************************************************************************/
 void auto_int_hyouji()
 {
     //short st;
-    char cmd_gu[32] ;   //gu-DへのI2Cコマンド用配列 1byte
+    //char cmd_gu[32] ;   //gu-DへのI2Cコマンド用配列 1byte
 
     gu_cls();
     gu_fontsize(1);
-    gu_print1("AUTO MODE CAL No.");
+    gu_print1("AUTO MODE CAL ");
+    /*
     cmd_gu[0] = reg_num + 0x30;
     i2c.write(addr_gu, cmd_gu, 1);
+    */
+    i2c.write(addr_gu, calinfo.name, 4); //debugging
+    
     gu_Button_power_on();//show button
 
 }
-/*******************************************************
+/*******************************************************************************
 
     Auto Mode (Main)
     自動測定モード 画面
     ver1.04 パネルタッチ -> スタートスイッチで測定開始へ変更
 
-*******************************************************/
+*******************************************************************************/
 void auto_run()
 {
     char cmd_gu[32] ;   //gu-DへのI2Cコマンド用配列 1byte
@@ -2754,214 +2788,11 @@
     }//While
 }
 
-/*
-    char cmd_gu[32] ;   //gu-DへのI2Cコマンド用配列 1byte
-    char crdata[6];
-    char cswnum; //SW_No. sw1->0x00 ~~ sw32->0x1F
-    //int     i;
-    //float   fdata[4][4];//ファイル出力用
-    //short   sdata[4];
-    //short   s;
-
-    read_regnum();//CAL登録No.読込
-    read_caliber(&calinfo,reg_num);//指定したCAL登録No.の情報を読込後、calinfoへ代入
-
-    auto_int_hyouji();
-
-    //dac_init(); //DAC 初期化
-
-    //gu-D タッチスイッチ読み出し動作設定 p49
-    cmd_gu[0]= 0x1F;
-    cmd_gu[1]= 0x4B;
-    cmd_gu[2]= 0x18;
-    cmd_gu[3]= 0x02;//SW状態変化時自動送信モード2
-    i2c.write(addr_gu, cmd_gu, 4); //gu-D タッチスイッチ読み出し動作設定 p49
-
-    wait(0.1);
-
-    Jyushin = i2c.read ((addr_gu + 0x01), crdata, 3, true);
-
-    while(1) {
-
-        wait(0.1);
-
-        crdata[0] = 0;
-        crdata[1] = 0;
-        crdata[2] = 0;
-
-        i2c.read ((addr_gu + 0x01), crdata, 3, true);
-
-        if ( crdata[0] == 0x11 && crdata[2] == 1 ) { //個別タッチスイッチ状態読み出しフォーマット。識別子11h。
-            cswnum = crdata[1]; //スイッチ番号
-            //cswdata = crdata[2];//ON/OFF情報
-
-            //gu-D タッチスイッチ読み出し動作設定 p49
-            cmd_gu[0]= 0x1F;
-            cmd_gu[1]= 0x4B;
-            cmd_gu[2]= 0x18;
-            cmd_gu[3]= 0x00;//SW状態変化時自動送信モード2解除
-            i2c.write(addr_gu, cmd_gu, 4); //gu-D タッチスイッチ読み出し動作設定 p49
-
-            //SWの番号(位置)
-            if ( cswnum == 7 ) {
-
-                gu_Button_power_off();//電源ボタンイメージ反転表示
-                wait(0.5);
-
-                led_off();//LED全消灯
-
-                return;//この関数を抜ける
-
-            }
-
-            //gu-D タッチスイッチ読み出し動作設定 p49
-            cmd_gu[0]= 0x1F;
-            cmd_gu[1]= 0x4B;
-            cmd_gu[2]= 0x18;
-            cmd_gu[3]= 0x02;//SW状態変化時自動送信モード2解除
-            i2c.write(addr_gu, cmd_gu, 4); //gu-D タッチスイッチ読み出し動作設定 p49
-
-            wait(0.1);
-
-            i2c.read ((addr_gu + 0x01), crdata, 3, true);
-
-        } else if ( sw_start == 0 ) { //if
-
-            auto_int_hyouji();
-
-            gu_cursor(0,2);
-            gu_print1("Please Wait..");
-            gu_fontsize(2);
-
-            read_regnum();//CAL登録No.読込
-
-            read_caliber(&calinfo,reg_num);//指定したCAL登録No.の情報を読込後、calinfoへ代入
-
-            auto_meas( number_of_channels );//2個測定
-
-            hantei( number_of_channels );//判定LED
-
-            wait(0.5);
-
-            gu_fontsize(1);
-            gu_cursor(0,2);
-            gu_print1("READY           ");
-
-        }
-        wait(0.1);
-    }//While
-}
-*/
-
-/*
-void auto_run()
-{
-    char cmd_gu[32] ;   //gu-DへのI2Cコマンド用配列 1byte
-    char crdata[6];
-    char cswnum; //SW_No. sw1->0x00 ~~ sw32->0x1F
-    //int     i;
-    //float   fdata[4][4];//ファイル出力用
-    //short   sdata[4];
-    //short   s;
-
-    read_regnum();//CAL登録No.読込
-    read_caliber(&calinfo,reg_num);//指定したCAL登録No.の情報を読込後、calinfoへ代入
-
-    auto_int_hyouji();
-
-    //dac_init(); //DAC 初期化
-
-    //gu-D タッチスイッチ読み出し動作設定 p49
-    cmd_gu[0]= 0x1F;
-    cmd_gu[1]= 0x4B;
-    cmd_gu[2]= 0x18;
-    cmd_gu[3]= 0x02;//SW状態変化時自動送信モード2
-    i2c.write(addr_gu, cmd_gu, 4); //gu-D タッチスイッチ読み出し動作設定 p49
-
-    wait(0.1);
-
-    Jyushin = i2c.read ((addr_gu + 0x01), crdata, 3, true);
-
-    while(1) {
-
-        wait(0.1);
-
-        crdata[0] = 0;
-        crdata[1] = 0;
-        crdata[2] = 0;
-
-        i2c.read ((addr_gu + 0x01), crdata, 3, true);
-
-        if ( crdata[0] == 0x11 && crdata[2] == 1 ) { //個別タッチスイッチ状態読み出しフォーマット。識別子11h。
-            cswnum = crdata[1]; //スイッチ番号
-            //cswdata = crdata[2];//ON/OFF情報
-
-            //gu-D タッチスイッチ読み出し動作設定 p49
-            cmd_gu[0]= 0x1F;
-            cmd_gu[1]= 0x4B;
-            cmd_gu[2]= 0x18;
-            cmd_gu[3]= 0x00;//SW状態変化時自動送信モード2解除
-            i2c.write(addr_gu, cmd_gu, 4); //gu-D タッチスイッチ読み出し動作設定 p49
-
-            //SWの番号(位置)
-            if ( cswnum == 7 ) {
-
-                gu_Button_power_off();//電源ボタンイメージ反転表示
-                wait(0.5);
-
-                led_off();//LED全消灯
-
-                return;//この関数を抜ける
-
-            } else {
-
-                auto_int_hyouji();
-
-                gu_cursor(0,2);
-                gu_print1("Please Wait..");
-                gu_fontsize(2);
-
-                read_regnum();//CAL登録No.読込
-
-                read_caliber(&calinfo,reg_num);//指定したCAL登録No.の情報を読込後、calinfoへ代入
-
-                auto_meas( number_of_channels );//2個測定
-
-                hantei( number_of_channels );//判定LED
-
-                wait(0.5);
-
-                gu_fontsize(1);
-                gu_cursor(0,2);
-                gu_print1("READY           ");
-
-            } //else if
-
-            //gu-D タッチスイッチ読み出し動作設定 p49
-            cmd_gu[0]= 0x1F;
-            cmd_gu[1]= 0x4B;
-            cmd_gu[2]= 0x18;
-            cmd_gu[3]= 0x02;//SW状態変化時自動送信モード2解除
-            i2c.write(addr_gu, cmd_gu, 4); //gu-D タッチスイッチ読み出し動作設定 p49
-
-            wait(0.1);
-
-            i2c.read ((addr_gu + 0x01), crdata, 3, true);
-
-        }//if
-
-        wait(0.1);
-
-    }//While
-
-}
-*/
-
-/*********************************
+/*******************************************************************************
 
     Auto Mode (Sub)
 
-*********************************/
+*******************************************************************************/
 void meas_sub()
 {
     auto_int_hyouji();
@@ -2996,10 +2827,10 @@
 void auto_meas(char noc)
 {
     int     x[4] = {0,0,128,128};   //GU_D x座標 4個測定時の表示スタート位置
-    int     y[4] = {5,11,5,11};     //GU_D y座標 4個測定時の表示スタート位置
+    int     y[4] = {4,10,4,10};     //GU_D y座標 4個測定時の表示スタート位置
     int     iy  ;                   //GU_D y座標 2個測定時の表示スタート位置
     int     i;
-    float   fdata[4][4];//ファイル出力用
+    //float   fdata[4][4];//ファイル出力用
     short   sdata[4];
 
     iy = 4;//GU_D 2個測定時の測定値の表示開始位置 y座標
@@ -3107,35 +2938,75 @@
     }
 
     wait(0.01);
-
-    //過充電防止時電流測定
-    for ( i = 0; i <= ( noc - 1 ); i++) {
-        dac_out( calinfo.vss_ocp,i); //Vss設定 DAC_A~D //ver1.1.2
-    }
-
-    wait( calinfo.wait_ocp );
-
-    meas_current_automode( noc );
-
-    for( i = 0; i <= ( noc - 1) ; i++) {
-        ocp[i] = I[i];
+    
+    //過充電防止 HD端子電圧測定 ver3.0.0
+    if ( calinfo.low_limit_ocp != 0 && calinfo.up_limit_ocp != 0){
+
+        //過充電防止 IDD電流測定
+        for ( i = 0; i <= ( noc - 1 ); i++) {
+            dac_out( calinfo.vss_ocp,i); //Vss設定 DAC_A~D //ver1.1.2
+        }
+    
+        wait( calinfo.wait_ocp );
+    
+        meas_current_automode( noc );
+    
+        for( i = 0; i <= ( noc - 1) ; i++) {
+            ocp[i] = I[i];
+        }
+    
+        //display GU_D
+        if ( number_of_channels <= 2 ) { //2個測定の時の表示
+            gu_cursor(0, iy + 10 );//IOP測定値表示位置指定
+            gu_print1("OCP[v]");
+            gu_putdeci(&ocp[0]);
+            gu_cursor(128, iy + 10 );
+            gu_print1("OCP[v]");
+            gu_putdeci(&ocp[1]);
+        } else {
+            //CH.1~4 表示
+            for ( i=0; i <= ( number_of_channels - 1 ); i++) {
+                gu_cursor( x[i], y[i] + 5 ); //x座標指定
+                gu_print1("OCP[v]");
+                gu_putdeci(&ocp[i]);
+            }
+        }
+
     }
 
-    //display GU_D
-    if ( number_of_channels <= 2 ) { //2個測定の時の表示
-        gu_cursor(0, iy + 6 );//IOP測定値表示位置指定
-        gu_print1("OCP   ");
-        gu_putdeci(&ocp[0]);
-        gu_cursor(128, iy + 6 );
-        gu_print1("OCP   ");
-        gu_putdeci(&ocp[1]);
-    } else {
-        //CH.1~4 表示
-        for ( i=0; i <= ( number_of_channels - 1 ); i++) {
-            gu_cursor( x[i], y[i] + 3 ); //x座標指定
+    //過充電防止 IDD測定 ver3.0.0    
+    if ( calinfo.low_limit_ocp_v != 0 && calinfo.up_limit_ocp_v != 0){    
+
+        for ( i = 0; i <= ( noc - 1 ); i++) {
+            dac_out( calinfo.vss_ocp,i); //Vss設定 DAC_A~D //ver1.1.2
+        }
+    
+        wait( calinfo.wait_ocp );    
+    
+        for ( i = 0; i <= ( noc -1 ); i++ ) {
+            voc[i] = meas_voltage(i);
+            sdata[i] = vocp[i] * -1;
+        }
+
+        //display GU_D
+        if ( number_of_channels <= 2 ) { //2個測定の時の表示
+            gu_cursor(0, iy + 6 );//IOP測定値表示位置指定
             gu_print1("OCP   ");
-            gu_putdeci(&ocp[i]);
-        }
+            gu_putdec(&vocp[0]);
+            gu_print1("V");
+            gu_cursor(128, iy + 6 );
+            gu_print1("OCP   ");
+            gu_putdec(&vocp[1]);
+            gu_print1("V");
+        } else {
+            //CH.1~4 表示
+            for ( i=0; i <= ( number_of_channels - 1 ); i++) {
+                gu_cursor( x[i], y[i] + 3 ); //x座標指定
+                gu_print1("OCP   ");
+                gu_putdec(&vocp[i]);
+                gu_print1("V");
+            }
+        }        
     }
 
     //VOC測定
@@ -3143,8 +3014,20 @@
         dac_out( calinfo.vss_voc,i); //Vss設定 DAC_A~D
     }
 
+    //*** ver3.0.0 *** Please wait..
+    gu_fontsize(1);
+    gu_cursor(0,2);
+    gu_print1("RYUZU Operation           ");
+    //****************
+    
     wait( wait_voc_1 );
 
+    //*** ver3.0.0 *** Please wait..
+    gu_fontsize(1);
+    gu_cursor(0,2);
+    gu_print1("Please wait..             ");
+    //****************
+
     //Reset DUT
     for ( i = 0; i <= ( noc -1 ); i++) {
         io_reset[i] = 1; //R = VDD
@@ -3161,7 +3044,7 @@
 
     //display GU_D
     if ( number_of_channels <= 2 ) { //2個測定の時の表示
-        gu_cursor(0, iy + 8 );//IOP測定値表示位置指定
+        gu_cursor(0, iy + 8 );//測定値表示位置指定
         gu_print1("Voc   ");
         gu_putdeck(&sdata[0]);
         gu_print1("V");
@@ -3612,16 +3495,25 @@
 
 }
 
-/********************************
+/*******************************************************************************
 
     判定 LED点灯
-
-********************************/
+    
+        err_f debugging
+        
+        0:PASS
+        1:FAIL iop
+        2:FAIL voc
+        3:FAIL ocp i
+        4:FAIL ocp v
+        5:FAIL r
+
+*******************************************************************************/
 void hantei(char noc)
 {
     int i;
 
-    //エラーフラグ
+    //initialize err flag
     for ( i=0; i<= 3 ; i++) {
         err_f[i] = 0;
     }
@@ -3639,38 +3531,59 @@
 
     for ( i = 0; i <= ( noc - 1 ); i++) {
 
+        //*** VOC **************************************************************
         /*ver1.1.3 規格設置値=0の場合は判定しない*/
         if( voc[i] < calinfo.low_limit_voc && calinfo.low_limit_voc != 0) {
-            err_f[i] = 1;
+            err_f[i] = 2;
         }
 
         if( iop[i] < calinfo.low_limit_iop ) {
-            err_f[i] = 1;
+            err_f[i] = 2;
         }
 
-        if( ocp[i] > calinfo.low_limit_ocp ) {
-            err_f[i] = 1;
+        //*** 過充電防止 IDD ***************************************************
+
+        if( ocp[i] > calinfo.low_limit_ocp && calinfo.low_limit_ocp != 0) {
+            err_f[i] = 3;
         }
 
-        //ver1.2.2
+        /*** ver1.2.2 **********************************************************
+            上限値を設定している場合は判定を行う
+        ***********************************************************************/
         if( ocp[i] < calinfo.up_limit_ocp && calinfo.up_limit_ocp != 0) {
-            err_f[i] = 1;
+            err_f[i] = 3;
         }
 
+        //*** 過充電防止 HD電圧 *************************************************
+        
+        if( vocp[i] < calinfo.low_limit_ocp_v && calinfo.low_limit_ocp_v != 0 && calinfo.up_limit_ocp_v != 0 ) {
+            err_f[i] = 4;
+        }
+        
+        if( vocp[i] > calinfo.low_limit_ocp_v && calinfo.low_limit_ocp_v != 0 && calinfo.up_limit_ocp_v != 0 ) {
+            err_f[i] = 4;
+        }
+                
+        //*** アンテナ抵抗値 *****************************************************
+
         if( R[i] < calinfo.low_limit_resistor && calinfo.low_limit_resistor != 0 ) {
-            err_f[i] = 1;
+            err_f[i] = 5;
         }
 
         if( R[i] > calinfo.up_limit_resistor && calinfo.up_limit_resistor != 0 ) {
-            err_f[i] = 1;
+            err_f[i] = 5;
         }
 
-        if( err_f[i] == 1) {
-            led_red[i] = 1;
+        //*** LED点灯 ***********************************************************
+
+        if( err_f[i] == 0) {
+            led_green[i] = 1;
         } else {
-            led_green[i] = 1;
+            led_red[i] = 1;
         }
 
+        //*** PLC **************************************************************
+
         if ( SEQ_EN == 1 && err_f[i] == 0 ) {
             /*** ver3
             seq_hantei[i] = 1;
@@ -3742,9 +3655,13 @@
 {
     char    com;
     short   sdata;
+    //short   kekka;
+    //short   goukei;
+    //int     bosu = 2;
 
     switch(ch) {
         case 0:
+        
             /*** ver3 *****************/
             rlen[4] = 1; //RLEN5="H"
             wait(ton_rr);
@@ -3754,6 +3671,7 @@
             i2c.write( addr_ADC1, &com, 1);
             wait(0.1);
             sdata = read_adc(addr_ADC1);
+            
             break;
             
         case 1:
@@ -3967,14 +3885,14 @@
     i2c.write(addr_gu, cmd, 4);
 
 }
-/*********************************
+/*******************************************************************************
 
     LED 照度
     設定読込~反映
     //メモリから設定値を読み出して、LEDのPWMのDutyを設定する
     //LED1設定値&LED2設定値の計2Byte読込
 
-*********************************/
+*******************************************************************************/
 void read_syoudo(char* c)
 {
     //char cmd;       //gu-DへのI2Cコマンド用配列 1byte0
@@ -4008,11 +3926,11 @@
         leds[i].write (duty_pwm);//Set Duty
     }
 }
-/*********************************
+/*******************************************************************************
 
     LED 照度調整 (Main)
 
-*********************************/
+*******************************************************************************/
 void adjust_illumination()
 {
     char cmd_gu[32] ;   //gu-DへのI2Cコマンド用配列 1byte0