📄 com_sub.cpp
字号:
bitno= addr%8;
dd= 0;
switch(type)
{
case DI_BARE_TYPE:
cptr= &Coil.DI_BARE[bytes];
break;
case DI_SOFT_TYPE:
cptr= &Coil.DI_SOFT[bytes];
break;
case DI_PLON_TYPE:
cptr= &Coil.DI_PLON[bytes];
break;
case DI_PLOFF_TYPE:
cptr= &Coil.DI_PLOFF[bytes];
break;
case DO_BARE_TYPE:
cptr= &Coil.DO_BARE[bytes];
break;
case DO_SOFT_TYPE:
cptr= &Coil.DO_SOFT[bytes];
break;
case DO_PLON_TYPE:
cptr= &Coil.DO_PLON[bytes];
break;
case DO_PLOFF_TYPE:
cptr= &Coil.DO_PLOFF[bytes];
break;
case AI_HH_BIT_TYPE:
case AI_ENG_HH_BIT_TYPE:
cptr= &Coil.AI_HH[bytes];
break;
case AI_H_BIT_TYPE:
case AI_ENG_H_BIT_TYPE:
cptr= &Coil.AI_H[bytes];
break;
case AI_L_BIT_TYPE:
case AI_ENG_L_BIT_TYPE:
cptr= &Coil.AI_L[bytes];
break;
case AI_LL_BIT_TYPE:
case AI_ENG_LL_BIT_TYPE:
cptr= &Coil.AI_LL[bytes];
break;
case AI_SOFT_HH_BIT_TYPE:
bytes= (addr+ED_MAX)/8;
bitno= (addr+ED_MAX)%8;
cptr= &Coil.AI_HH[bytes];
break;
case AI_SOFT_H_BIT_TYPE:
bytes= (addr+ED_MAX)/8;
bitno= (addr+ED_MAX)%8;
cptr= &Coil.AI_H[bytes];
break;
case AI_SOFT_L_BIT_TYPE:
bytes= (addr+ED_MAX)/8;
bitno= (addr+ED_MAX)%8;
cptr= &Coil.AI_L[bytes];
break;
case AI_SOFT_LL_BIT_TYPE:
bytes= (addr+ED_MAX)/8;
bitno= (addr+ED_MAX)%8;
cptr= &Coil.AI_LL[bytes];
break;
case AO_HH_BIT_TYPE:
case AO_ENG_HH_BIT_TYPE:
cptr= &Coil.AO_HH[bytes];
break;
case AO_H_BIT_TYPE:
case AO_ENG_H_BIT_TYPE:
cptr= &Coil.AO_H[bytes];
break;
case AO_L_BIT_TYPE:
case AO_ENG_L_BIT_TYPE:
cptr= &Coil.AO_L[bytes];
break;
case AO_LL_BIT_TYPE:
case AO_ENG_LL_BIT_TYPE:
cptr= &Coil.AO_LL[bytes];
break;
case AO_SOFT_HH_BIT_TYPE:
bytes= (addr+ED_MAX)/8;
bitno= (addr+ED_MAX)%8;
cptr= &Coil.AO_HH[bytes];
break;
case AO_SOFT_H_BIT_TYPE:
bytes= (addr+ED_MAX)/8;
bitno= (addr+ED_MAX)%8;
cptr= &Coil.AO_H[bytes];
break;
case AO_SOFT_L_BIT_TYPE:
bytes= (addr+ED_MAX)/8;
bitno= (addr+ED_MAX)%8;
cptr= &Coil.AO_L[bytes];
break;
case AO_SOFT_LL_BIT_TYPE:
bytes= (addr+ED_MAX)/8;
bitno= (addr+ED_MAX)%8;
cptr= &Coil.AO_LL[bytes];
break;
case TM_BIT_TYPE:
cptr= &Coil.TM_BIT[bytes];
break;
case CN_BIT_TYPE:
cptr= &Coil.CN_BIT[bytes];
break;
default:
return(-1);
}
dd= Coil_Bit_Read(cptr, bitno);
return(dd);
}
/*...........................................................................*/
/* get Register data */
/*...........................................................................*/
float get_Register(int type, int addr)
{
switch(type)
{
case AI_BARE_TYPE:
return(Reg.AI_BARE[addr]);
break;
case AI_ENG_TYPE:
return(Reg.AI_ENG[addr]);
break;
case AI_SOFT_TYPE:
return(Reg.AI_SOFT[addr]);
break;
case AI_RH_TYPE:
return(Reg.AI_RH[addr]);
break;
case AI_RL_TYPE:
return(Reg.AI_RL[addr]);
break;
case AI_BH_TYPE:
return(Reg.AI_BH[addr]);
break;
case AI_BL_TYPE:
return(Reg.AI_BL[addr]);
break;
case AI_FL_TYPE:
return(Reg.AI_FL[addr]);
break;
case AI_HH_TYPE:
case AI_ENG_HH_TYPE:
return(Reg.AI_HH[addr]);
break;
case AI_H_TYPE:
case AI_ENG_H_TYPE:
return(Reg.AI_H[addr]);
break;
case AI_L_TYPE:
case AI_ENG_L_TYPE:
return(Reg.AI_L[addr]);
break;
case AI_LL_TYPE:
case AI_ENG_LL_TYPE:
return(Reg.AI_LL[addr]);
break;
case AI_DEAD_TYPE:
return(Reg.AI_DEAD[addr]);
break;
case AI_SOFT_HH_TYPE:
return(Reg.AI_HH[addr+ED_MAX]);
break;
case AI_SOFT_H_TYPE:
return(Reg.AI_H[addr+ED_MAX]);
break;
case AI_SOFT_L_TYPE:
return(Reg.AI_L[addr+ED_MAX]);
break;
case AI_SOFT_LL_TYPE:
return(Reg.AI_LL[addr+ED_MAX]);
break;
case AI_SOFT_DEAD_TYPE:
return(Reg.AI_DEAD[addr+ED_MAX]);
break;
case AO_BARE_TYPE:
return(Reg.AO_BARE[addr]);
break;
case AO_ENG_TYPE:
return(Reg.AO_ENG[addr]);
break;
case AO_SOFT_TYPE:
return(Reg.AO_SOFT[addr]);
break;
case AO_RH_TYPE:
return(Reg.AO_RH[addr]);
break;
case AO_RL_TYPE:
return(Reg.AO_RL[addr]);
break;
case AO_BH_TYPE:
return(Reg.AO_BH[addr]);
break;
case AO_BL_TYPE:
return(Reg.AO_BL[addr]);
break;
case AO_FL_TYPE:
return(Reg.AO_FL[addr]);
break;
case AO_HH_TYPE:
case AO_ENG_HH_TYPE:
return(Reg.AO_HH[addr]);
break;
case AO_H_TYPE:
case AO_ENG_H_TYPE:
return(Reg.AO_H[addr]);
break;
case AO_L_TYPE:
case AO_ENG_L_TYPE:
return(Reg.AO_L[addr]);
break;
case AO_LL_TYPE:
case AO_ENG_LL_TYPE:
return(Reg.AO_LL[addr]);
break;
case AO_SOFT_HH_TYPE:
return(Reg.AO_HH[addr+ED_MAX]);
break;
case AO_SOFT_H_TYPE:
return(Reg.AO_H[addr+ED_MAX]);
break;
case AO_SOFT_L_TYPE:
return(Reg.AO_L[addr+ED_MAX]);
break;
case AO_SOFT_LL_TYPE:
return(Reg.AO_LL[addr+ED_MAX]);
break;
case AO_SOFT_DEAD_TYPE:
return(Reg.AO_DEAD[addr+ED_MAX]);
break;
case TM_PSET_TYPE:
return(Reg.TM_PSET[addr]);
break;
case TM_CURR_TYPE:
return(Reg.TM_CURR[addr]);
break;
case CN_PSET_TYPE:
return(Reg.CN_PSET[addr]);
break;
case CN_CURR_TYPE:
return(Reg.CN_CURR[addr]);
break;
default:
return(0);
}
}
/*...........................................................................*/
/* get Plus On Coil state */
/*...........................................................................*/
int get_Plus_on(int type, int addr)
{
int addr_1, type_1, dd;
switch(type)
{
case DI_BARE_TYPE:
addr_1= addr + DI_BARE_PTR;
type_1= DI_PLON_TYPE;
break;
case DI_SOFT_TYPE:
addr_1= addr + DI_SOFT_PTR;
type_1= DI_PLON_TYPE;
break;
case DO_BARE_TYPE:
addr_1= addr + DO_BARE_PTR;
type_1= DO_PLON_TYPE;
break;
case DO_SOFT_TYPE:
addr_1= addr + DO_SOFT_PTR;
type_1= DO_PLON_TYPE;
break;
case AI_HH_BIT_TYPE:
case AI_ENG_HH_BIT_TYPE:
addr_1= addr + AI_HH_BIT_PTR;
type_1= DO_PLON_TYPE;
break;
case AI_H_BIT_TYPE:
case AI_ENG_H_BIT_TYPE:
addr_1= addr + AI_H_BIT_PTR;
type_1= DO_PLON_TYPE;
break;
case AI_L_BIT_TYPE:
case AI_ENG_L_BIT_TYPE:
addr_1= addr + AI_L_BIT_PTR;
type_1= DO_PLON_TYPE;
break;
case AI_LL_BIT_TYPE:
case AI_ENG_LL_BIT_TYPE:
addr_1= addr + AI_LL_BIT_PTR;
type_1= DO_PLON_TYPE;
break;
case AO_HH_BIT_TYPE:
case AO_ENG_HH_BIT_TYPE:
addr_1= addr + AO_HH_BIT_PTR;
type_1= DO_PLON_TYPE;
break;
case AO_H_BIT_TYPE:
case AO_ENG_H_BIT_TYPE:
addr_1= addr + AO_H_BIT_PTR;
type_1= DO_PLON_TYPE;
break;
case AO_L_BIT_TYPE:
case AO_ENG_L_BIT_TYPE:
addr_1= addr + AO_L_BIT_PTR;
type_1= DO_PLON_TYPE;
break;
case AO_LL_BIT_TYPE:
case AO_ENG_LL_BIT_TYPE:
addr_1= addr + AO_LL_BIT_PTR;
type_1= DO_PLON_TYPE;
break;
case AI_SOFT_HH_BIT_TYPE:
addr_1= addr + AI_HH_BIT_PTR + ED_MAX;
type_1= DO_PLON_TYPE;
break;
case AI_SOFT_H_BIT_TYPE:
addr_1= addr + AI_H_BIT_PTR + ED_MAX;
type_1= DO_PLON_TYPE;
break;
case AI_SOFT_L_BIT_TYPE:
addr_1= addr + AI_L_BIT_PTR + ED_MAX;
type_1= DO_PLON_TYPE;
break;
case AI_SOFT_LL_BIT_TYPE:
addr_1= addr + AI_LL_BIT_PTR + ED_MAX;
type_1= DO_PLON_TYPE;
break;
case AO_SOFT_HH_BIT_TYPE:
addr_1= addr + AO_HH_BIT_PTR + ED_MAX;
type_1= DO_PLON_TYPE;
break;
case AO_SOFT_H_BIT_TYPE:
addr_1= addr + AO_H_BIT_PTR + ED_MAX;
type_1= DO_PLON_TYPE;
break;
case AO_SOFT_L_BIT_TYPE:
addr_1= addr + AO_L_BIT_PTR + ED_MAX;
type_1= DO_PLON_TYPE;
break;
case AO_SOFT_LL_BIT_TYPE:
addr_1= addr + AO_LL_BIT_PTR + ED_MAX;
type_1= DO_PLON_TYPE;
break;
case TM_BIT_TYPE:
addr_1= addr + TM_BIT_PTR;
type_1= DO_PLON_TYPE;
break;
case CN_BIT_TYPE:
addr_1= addr + CN_BIT_PTR;
type_1= DO_PLON_TYPE;
break;
default:
return(-1);
}
dd= get_Coil(type_1, addr_1);
return(dd);
}
/*...........................................................................*/
/* get Plus Off Coil state */
/*...........................................................................*/
int get_Plus_off(int type, int addr)
{
int addr_1, type_1, dd;
switch(type)
{
case DI_BARE_TYPE:
addr_1= addr + DI_BARE_PTR;
type_1= DI_PLOFF_TYPE;
break;
case DI_SOFT_TYPE:
addr_1= addr + DI_SOFT_PTR;
type_1= DI_PLOFF_TYPE;
break;
case DO_BARE_TYPE:
addr_1= addr + DO_BARE_PTR;
type_1= DO_PLOFF_TYPE;
break;
case DO_SOFT_TYPE:
addr_1= addr + DO_SOFT_PTR;
type_1= DO_PLOFF_TYPE;
break;
case AI_HH_BIT_TYPE:
case AI_ENG_HH_BIT_TYPE:
addr_1= addr + AI_HH_BIT_PTR;
type_1= DO_PLOFF_TYPE;
break;
case AI_H_BIT_TYPE:
case AI_ENG_H_BIT_TYPE:
addr_1= addr + AI_H_BIT_PTR;
type_1= DO_PLOFF_TYPE;
break;
case AI_L_BIT_TYPE:
case AI_ENG_L_BIT_TYPE:
addr_1= addr + AI_L_BIT_PTR;
type_1= DO_PLOFF_TYPE;
break;
case AI_LL_BIT_TYPE:
case AI_ENG_LL_BIT_TYPE:
addr_1= addr + AI_LL_BIT_PTR;
type_1= DO_PLOFF_TYPE;
break;
case AO_HH_BIT_TYPE:
case AO_ENG_HH_BIT_TYPE:
addr_1= addr + AO_HH_BIT_PTR;
type_1= DO_PLOFF_TYPE;
break;
case AO_H_BIT_TYPE:
case AO_ENG_H_BIT_TYPE:
addr_1= addr + AO_H_BIT_PTR;
type_1= DO_PLOFF_TYPE;
break;
case AO_L_BIT_TYPE:
case AO_ENG_L_BIT_TYPE:
addr_1= addr + AO_L_BIT_PTR;
type_1= DO_PLOFF_TYPE;
break;
case AO_LL_BIT_TYPE:
case AO_ENG_LL_BIT_TYPE:
addr_1= addr + AO_LL_BIT_PTR;
type_1= DO_PLOFF_TYPE;
break;
case AI_SOFT_HH_BIT_TYPE:
addr_1= addr + AI_HH_BIT_PTR + ED_MAX;
type_1= DO_PLOFF_TYPE;
break;
case AI_SOFT_H_BIT_TYPE:
addr_1= addr + AI_H_BIT_PTR + ED_MAX;
type_1= DO_PLOFF_TYPE;
break;
case AI_SOFT_L_BIT_TYPE:
addr_1= addr + AI_L_BIT_PTR + ED_MAX;
type_1= DO_PLOFF_TYPE;
break;
case AI_SOFT_LL_BIT_TYPE:
addr_1= addr + AI_LL_BIT_PTR + ED_MAX;
type_1= DO_PLOFF_TYPE;
break;
case AO_SOFT_HH_BIT_TYPE:
addr_1= addr + AO_HH_BIT_PTR + ED_MAX;
type_1= DO_PLOFF_TYPE;
break;
case AO_SOFT_H_BIT_TYPE:
addr_1= addr + AO_H_BIT_PTR + ED_MAX;
type_1= DO_PLOFF_TYPE;
break;
case AO_SOFT_L_BIT_TYPE:
addr_1= addr + AO_L_BIT_PTR + ED_MAX;
type_1= DO_PLOFF_TYPE;
break;
case AO_SOFT_LL_BIT_TYPE:
addr_1= addr + AO_LL_BIT_PTR + ED_MAX;
type_1= DO_PLOFF_TYPE;
break;
case TM_BIT_TYPE:
addr_1= addr + TM_BIT_PTR;
type_1= DO_PLOFF_TYPE;
break;
case CN_BIT_TYPE:
addr_1= addr + CN_BIT_PTR;
type_1= DO_PLOFF_TYPE;
break;
default:
return(-1);
}
dd= get_Coil(type_1, addr_1);
return(dd);
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -