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

📄 mb_dkxx.c

📁 modbus的c语言版本应用于dos下
💻 C
📖 第 1 页 / 共 2 页
字号:
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx read coil 02: %02X",*value);
   #endif
   return MB_NO_ERROR;
}

//Get Bit 11 of timer counter var
int mb_dkxx_read_coil_13(unsigned char * value)
{
   *value = (unsigned char)((mb_dkxx_var>>11) & 0x01);
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx read coil 13: %02X",*value);
   #endif
   return MB_NO_ERROR;
}

//Get Bit 12 of timer counter var
int mb_dkxx_read_coil_14(unsigned char * value)
{
   *value = (unsigned char)((mb_dkxx_var>>12) & 0x01);
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx read coil 14: %02X",*value);
   #endif
   return MB_NO_ERROR;
}
//******************************************************************************
// Write coil functions
// Input Parameter value 0: OFF  else ON
// Return 0: Sucessful,
//        else errorcode see modbus.h 
//******************************************************************************
int mb_dkxx_write_coil_00(unsigned char value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write coil 00: %02X",value?1:0);
   #endif
   hal_write_pio (3,value?1:0);
   return MB_NO_ERROR;
}

int mb_dkxx_write_coil_01(unsigned char  value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write coil 01: %02X",value?1:0);
   #endif
   hal_write_pio (13,value?1:0);
   return MB_NO_ERROR;
}


//Set/Clear Bit 0 of dkxx timer variable
int mb_dkxx_write_coil_02(unsigned char  value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write coil 02: %02X",value?1:0);
   #endif
   if(value)
   {
     mb_dkxx_var |= 0x0001;
   }
   else
   {
     mb_dkxx_var &= (~0x0001);
   }
   return MB_NO_ERROR;
}

//Set/Clear Bit 1 of dkxx timer variable
int mb_dkxx_write_coil_03(unsigned char  value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write coil 03: %02X",value?1:0);
   #endif
   if(value)
   {
     mb_dkxx_var |= 0x0002;
   }
   else
   {
     mb_dkxx_var &= (~0x0002);
   }
   return MB_NO_ERROR;
}

//Set/Clear Bit 2 of dkxx timer variable
int mb_dkxx_write_coil_04(unsigned char  value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write coil 04: %02X",value?1:0);
   #endif
   if(value)
   {
     mb_dkxx_var |= 0x0004;
   }
   else
   {
     mb_dkxx_var &= (~0x0004);
   }
   return MB_NO_ERROR;
}

//Set/Clear Bit 3 of dkxx timer variable
int mb_dkxx_write_coil_05(unsigned char  value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write coil 05: %02X",value?1:0);
   #endif
   if(value)
   {
     mb_dkxx_var |= 0x0008;
   }
   else
   {
     mb_dkxx_var &= (~0x0008);
   }
   return MB_NO_ERROR;
}
//Set/Clear Bit 4 of dkxx timer variable
int mb_dkxx_write_coil_06(unsigned char  value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write coil 06: %02X",value?1:0);
   #endif
   if(value)
   {
     mb_dkxx_var |= 0x0010;
   }
   else
   {
     mb_dkxx_var &= (~0x0010);
   }
   return MB_NO_ERROR;
}

//Set/Clear Bit 5 of dkxx timer variable
int mb_dkxx_write_coil_07(unsigned char  value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write coil 07: %02X",value?1:0);
   #endif
   if(value)
   {
     mb_dkxx_var |= 0x0020;
   }
   else
   {
     mb_dkxx_var &= (~0x0020);
   }
   return MB_NO_ERROR;
}

//Set/Clear Bit 6 of dkxx timer variable
int mb_dkxx_write_coil_08(unsigned char  value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write coil 08: %02X",value?1:0);
   #endif
   if(value)
   {
     mb_dkxx_var |= 0x0040;
   }
   else
   {
     mb_dkxx_var &= (~0x0040);
   }
   return MB_NO_ERROR;
}
//Set/Clear Bit 7 of dkxx timer variable
int mb_dkxx_write_coil_09(unsigned char  value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write coil 09: %02X",value?1:0);
   #endif
   if(value)
   {
     mb_dkxx_var |= 0x0080;
   }
   else
   {
     mb_dkxx_var &= (~0x0080);
   }
   return MB_NO_ERROR;
}
//Set/Clear Bit 8 of dkxx timer variable
int mb_dkxx_write_coil_10(unsigned char  value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write coil 10: %02X",value?1:0);
   #endif
   if(value)
   {
     mb_dkxx_var |= 0x0100;
   }
   else
   {
     mb_dkxx_var &= (~0x0100);
   }
   return MB_NO_ERROR;
}

//Set/Clear Bit 9 of dkxx timer variable
int mb_dkxx_write_coil_11(unsigned char  value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write coil 11: %02X",value?1:0);
   #endif
   if(value)
   {
     mb_dkxx_var |= 0x0200;
   }
   else
   {
     mb_dkxx_var &= (~0x0200);
   }
   return MB_NO_ERROR;
}

//Set/Clear Bit 10 of dkxx timer variable
int mb_dkxx_write_coil_12(unsigned char  value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write coil 12: %02X",value?1:0);
   #endif
   if(value)
   {
     mb_dkxx_var |= 0x0400;
   }
   else
   {
     mb_dkxx_var &= (~0x0400);
   }
   return MB_NO_ERROR;
}
//Set/Clear Bit 11 of dkxx timer variable
int mb_dkxx_write_coil_13(unsigned char  value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write coil 13: %02X",value?1:0);
   #endif
   if(value)
   {
     mb_dkxx_var |= 0x0800;
   }
   else
   {
     mb_dkxx_var &= (~0x0800);
   }
   return MB_NO_ERROR;
}
//Set/Clear Bit 12 of dkxx timer variable
int mb_dkxx_write_coil_14(unsigned char  value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write coil 14: %02X",value?1:0);
   #endif
   if(value)
   {
     mb_dkxx_var |= 0x1000;
   }
   else
   {
     mb_dkxx_var &= (~0x1000);
   }
   return MB_NO_ERROR;
}
//******************************************************************************
// Read holding register functions
// Return 0: Sucessful, value contains register value
//        else errorcode see modbus.h 
//******************************************************************************
int mb_dkxx_read_register_00(unsigned int * value)
{
   *value = (unsigned int)inportb(IO_ADDR);
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx Read reg 01: %04X",*value);
   #endif

   return MB_NO_ERROR;
}

int mb_dkxx_read_register_01(unsigned int * value)
{
   *value = mb_dkxx_var;
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx Read reg 01: %04X",*value);
   #endif
   return MB_NO_ERROR;
}

int mb_dkxx_read_register_02(unsigned int * value)
{
   *value = mb_dkxx_timercnt;
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx Read reg 02: %04X",*value);
   #endif
   return MB_NO_ERROR;
}

int mb_dkxx_read_register_03(unsigned int * value)
{
   *value = mb_dkxx_timercnt_2;
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx Read reg 03: %04X",*value);
   #endif
   return MB_NO_ERROR;
}
//******************************************************************************
// Write register functions
// Return 0: Sucessful, value contains register value
//        else errorcode see modbus.h 
//******************************************************************************
int mb_dkxx_write_register_00(unsigned int  value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write reg 00: %04X",value);
   #endif

   if(value>0xFF)
   {
     return MB_ILL_DATA_VAL;
   }
   outportb(IO_ADDR,(unsigned char)value);
   return MB_NO_ERROR;
}

int mb_dkxx_write_register_01(unsigned int value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write reg 01: %04X",value);
   #endif
   mb_dkxx_var=value;
   return MB_NO_ERROR;
}

int mb_dkxx_write_register_02(unsigned int value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write reg 02: %04X",value);
   #endif
   mb_dkxx_timercnt=value;
   return MB_NO_ERROR;
}

int mb_dkxx_write_register_03(unsigned int value)
{
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx write reg 03: %04X",value);
   #endif
   mb_dkxx_timercnt_2=value;
   return MB_NO_ERROR;
}
//******************************************************************************
// Read input register functions
// Return 0: Sucessful, value contains register value
//        else errorcode see modbus.h 
//******************************************************************************
int mb_dkxx_read_inp_register_00(unsigned int * value)
{
   *value = (unsigned int)inportb(IO_ADDR);
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx Read input reg 00: %04X",*value);
   #endif

   return MB_NO_ERROR;
}

int mb_dkxx_read_inp_register_01(unsigned int * value)
{
   *value = mb_dkxx_var;
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx Read input reg 01: %04X",*value);
   #endif
   return MB_NO_ERROR;
}

int mb_dkxx_read_inp_register_02(unsigned int * value)
{
   *value = mb_dkxx_timercnt;
   #ifdef MB_DKxx_DEBUG
   printf("\r\nDKxx Read input reg 02: %04X",*value);
   #endif
   return MB_NO_ERROR;
}
//******************************************************************************
//end of file

⌨️ 快捷键说明

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