⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 std_sub.cpp

📁 《WinCE.NET嵌入式工业用控制器及自动控制系统设计》的源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[4]= buff;
       bytes= (addr+AI_LL_BIT_PTR+ED_MAX)/8;
       bitno= (addr+AI_LL_BIT_PTR+ED_MAX)%8;
       rc= Coil_Bit_Read(&Coil_Def.AI_LL[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[5]= buff;

       addr_1= addr + ED_MAX;
       sprintf(buff, "%10g", Reg_Def.AI_HH[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[6]= buff;
       sprintf(buff, "%10g", Reg_Def.AI_H[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[7]= buff;
       sprintf(buff, "%10g", Reg_Def.AI_L[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[8]= buff;
       sprintf(buff, "%10g", Reg_Def.AI_LL[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[9]= buff;
       sprintf(buff, "%6.3f", Reg_Def.AI_DEAD[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[10]= buff;
       sprintf(buff, "%10g", Reg_Def.AI_INIT[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[11]= buff;
       break;
     case 7:  // Output Register Soft
       sprintf(buff, "%10g", Reg_Def.AO_SOFT[addr]);
       list->Items->Item[addr]->SubItems->Strings[1]= buff;

       bytes= (addr+AO_HH_BIT_PTR+ED_MAX)/8;
       bitno= (addr+AO_HH_BIT_PTR+ED_MAX)%8;
       rc= Coil_Bit_Read(&Coil_Def.AO_HH[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[2]= buff;
       bytes= (addr+AO_H_BIT_PTR+ED_MAX)/8;
       bitno= (addr+AO_H_BIT_PTR+ED_MAX)%8;
       rc= Coil_Bit_Read(&Coil_Def.AO_H[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[3]= buff;
       bytes= (addr+AO_L_BIT_PTR+ED_MAX)/8;
       bitno= (addr+AO_L_BIT_PTR+ED_MAX)%8;
       rc= Coil_Bit_Read(&Coil_Def.AO_L[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[4]= buff;
       bytes= (addr+AO_LL_BIT_PTR+ED_MAX)/8;
       bitno= (addr+AO_LL_BIT_PTR+ED_MAX)%8;
       rc= Coil_Bit_Read(&Coil_Def.AO_LL[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[5]= buff;

       addr_1= addr + ED_MAX;
       sprintf(buff, "%10g", Reg_Def.AO_HH[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[6]= buff;
       sprintf(buff, "%10g", Reg_Def.AO_H[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[7]= buff;
       sprintf(buff, "%10g", Reg_Def.AO_L[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[8]= buff;
       sprintf(buff, "%10g", Reg_Def.AO_LL[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[9]= buff;
       sprintf(buff, "%6.3f", Reg_Def.AO_DEAD[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[10]= buff;
       sprintf(buff, "%10g", Reg_Def.AO_INIT[addr_1]);
       list->Items->Item[addr]->SubItems->Strings[11]= buff;
       break;
     case 8:  // Timer Table
       sprintf(buff, "%6d", Reg_Def.TM_PSET[addr]);
       list->Items->Item[addr]->SubItems->Strings[1]= buff;
       sprintf(buff, "%6d", Reg_Def.TM_CURR[addr]);
       list->Items->Item[addr]->SubItems->Strings[3]= buff;
       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil_Def.TM_BIT[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[5]= buff;
       break;
     case 9:  // Counter Table
       sprintf(buff, "%6d", Reg_Def.CN_PSET[addr]);
       list->Items->Item[addr]->SubItems->Strings[1]= buff;
       sprintf(buff, "%6d", Reg_Def.CN_CURR[addr]);
       list->Items->Item[addr]->SubItems->Strings[3]= buff;
       bytes= addr/8;
       bitno= addr%8;
       rc= Coil_Bit_Read(&Coil_Def.CN_BIT[bytes], bitno);
       if(rc==0)
         sprintf(buff, "Off");
       else
         sprintf(buff, "On");
       list->Items->Item[addr]->SubItems->Strings[5]= buff;
       break;
   }
}
//---------------------------------------------------------------------------
void setup_poll_unit(int idx)
{
   int i, cnt, m, n, addr;

   memset((char *)POLL_UNIT, 0, sizeof(POLL_UNIT));
   POLL_TOTAL= 0;
   POLL_CURR= 0;
   switch(idx)
   {
     case 0:  // Input Coil
       POLL_UNIT[0].id=1;
       POLL_UNIT[0].start_addr=DI_BARE_PTR +1;
       POLL_UNIT[0].words=DD_MAX_BIT;
       POLL_UNIT[0].fun=2;
       POLL_UNIT[0].flag= 1;

       POLL_UNIT[1].id=1;
       POLL_UNIT[1].start_addr=DI_INIT_PTR +1;
       POLL_UNIT[1].words=DD_MAX_BIT*3;
       POLL_UNIT[1].fun=1;
       POLL_UNIT[1].flag= 1;
       POLL_TOTAL= 2;
       break;
     case 1:  // Output Coil
       POLL_UNIT[0].id=1;
       POLL_UNIT[0].start_addr=DO_BARE_PTR +1;
       POLL_UNIT[0].words=DD_MAX_BIT;
       POLL_UNIT[0].fun=1;
       POLL_UNIT[0].flag= 1;

       POLL_UNIT[1].id=1;
       POLL_UNIT[1].start_addr=DO_INIT_PTR +1;
       POLL_UNIT[1].words=DD_MAX_BIT*3;
       POLL_UNIT[1].fun=1;
       POLL_UNIT[1].flag= 1;
       POLL_TOTAL= 2;
       break;
     case 2:  // Input Register
       m= ED_MAX/60;
       n= ED_MAX%60;
       cnt=0;
       for(i=0; i<m; i++)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_BARE_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=60*2;
          POLL_UNIT[cnt].fun=4;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       if(n>0)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_BARE_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=n*2;
          POLL_UNIT[cnt].fun=4;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       for(i=0; i<m; i++)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_ENG_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=60*2;
          POLL_UNIT[cnt].fun=4;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       if(n>0)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_ENG_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=n*2;
          POLL_UNIT[cnt].fun=4;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       m= (ED_MAX)/60;  // just take Eng. only
       n= (ED_MAX)%60;
       for(i=0; i<m; i++)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_INIT_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=60*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       if(n>0)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_INIT_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=n*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }

       m= ED_MAX/60;
       n= ED_MAX%60;
       for(i=0; i<m; i++)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_RH_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=60*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       if(n>0)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_RH_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=n*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       for(i=0; i<m; i++)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_RL_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=60*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       if(n>0)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_RL_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=n*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       for(i=0; i<m; i++)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_BH_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=60*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       if(n>0)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_BH_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=n*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       for(i=0; i<m; i++)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_BL_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=60*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       if(n>0)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_BL_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=n*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       for(i=0; i<m; i++)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_FL_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=60*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       if(n>0)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_FL_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=n*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       for(i=0; i<m; i++)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_HH_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=60*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       if(n>0)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_HH_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=n*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       for(i=0; i<m; i++)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_H_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=60*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       if(n>0)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_H_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=n*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       for(i=0; i<m; i++)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_L_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=60*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       if(n>0)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_L_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=n*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       for(i=0; i<m; i++)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_LL_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=60*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       if(n>0)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_LL_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=n*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       for(i=0; i<m; i++)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_DEAD_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=60*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }
       if(n>0)
       {
          POLL_UNIT[cnt].id=1;
          POLL_UNIT[cnt].start_addr=AI_DEAD_PTR*2 +120*i+1;
          POLL_UNIT[cnt].words=n*2;
          POLL_UNIT[cnt].fun=3;
          POLL_UNIT[cnt].flag= 1;
          cnt++;
       }

       POLL_UNIT[cnt].id=1;
       POLL_UNIT[cnt].start_addr=AI_HH_BIT_PTR +1;
       POLL_UNIT[cnt].words=ED_MAX*5;
       POLL_UNIT[cnt].fun=1;
       POLL_UNIT[cnt].flag= 1;
       cnt++;
       POLL_UNIT[cnt].id=1;
       POLL_UNIT[cnt].start_addr=AI_H_BIT_PTR +1;
       POLL_UNIT[cnt].words=ED_MAX*5;
       POLL_UNIT[cnt].fun=1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -