|
|
@@ -171,6 +171,7 @@ unsigned int Input_Operations_Number(int Function_code) |
|
|
|
} while (flage); |
|
|
|
return Operations_Number; |
|
|
|
} |
|
|
|
|
|
|
|
/********************************************************************************************* |
|
|
|
* 功能 : 检测写入数据 |
|
|
|
* 描述 : 检测写入数据格式是否正确 |
|
|
@@ -212,18 +213,14 @@ bool Check_Write_date(string Write_date, int Write_date_number) |
|
|
|
} |
|
|
|
|
|
|
|
/********************************************************************************************* |
|
|
|
* 功能 : 输入写入数据 |
|
|
|
* 描述 : 根据写入数量和功能码类型输入相应的数据 |
|
|
|
* 输入 : Function_code 选择的功能码类型 Operations_Number对应 功能码类型的操作数量 |
|
|
|
* 输出 : Write_date 写入的数据 |
|
|
|
* 功能 : 计算写入数据的字节数 |
|
|
|
* 描述 : 通过对应的功能码和操作数量计算对应的数据字节数 |
|
|
|
* 输入 : Function_code 选择的功能码类型 Operations_Number对应功能码类型的操作数量 |
|
|
|
* 输出 : Write_date_number 写入数据的字节数 |
|
|
|
*********************************************************************************************/ |
|
|
|
string Write_date(int Function_code, unsigned int Operations_Number) |
|
|
|
unsigned int Count_Write_date_number(int Function_code, unsigned int Operations_Number) |
|
|
|
{ |
|
|
|
int i = 1; |
|
|
|
string Write_date; |
|
|
|
unsigned int Write_date_number; |
|
|
|
if (Function_code == 0x01 || Function_code == 0x03) |
|
|
|
return Write_date;//读线圈不需要输入写入数据 |
|
|
|
unsigned int Write_date_number = 0; |
|
|
|
if (Function_code == 0x0F) //读线圈 |
|
|
|
{ |
|
|
|
Write_date_number = Operations_Number / 8; |
|
|
@@ -232,6 +229,23 @@ string Write_date(int Function_code, unsigned int Operations_Number) |
|
|
|
} |
|
|
|
if (Function_code == 0x10) |
|
|
|
Write_date_number = Operations_Number * 2; |
|
|
|
return Write_date_number; |
|
|
|
} |
|
|
|
|
|
|
|
/********************************************************************************************* |
|
|
|
* 功能 : 输入写入数据 |
|
|
|
* 描述 : 根据写入数量和功能码类型输入相应的数据 |
|
|
|
* 输入 : Function_code 选择的功能码类型 Operations_Number对应功能码类型的操作数量 |
|
|
|
* 输出 : Write_date 写入的数据 |
|
|
|
*********************************************************************************************/ |
|
|
|
string Write_date(int Function_code, unsigned int Operations_Number) |
|
|
|
{ |
|
|
|
int i = 1; |
|
|
|
string Write_date; |
|
|
|
unsigned int Write_date_number = Count_Write_date_number(Function_code, Operations_Number); |
|
|
|
if (Function_code == 0x01 || Function_code == 0x03) |
|
|
|
return Write_date;//读线圈/寄存器不需要输入写入数据 |
|
|
|
|
|
|
|
printf("请输入N组写入数据(2位16进制为一组,空格间隔)例如:00 00 01 00 20 05\n"); |
|
|
|
do |
|
|
|
{ |
|
|
|