| @@ -171,6 +171,7 @@ unsigned int Input_Operations_Number(int Function_code) | |||||
| } while (flage); | } while (flage); | ||||
| return Operations_Number; | 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) //读线圈 | if (Function_code == 0x0F) //读线圈 | ||||
| { | { | ||||
| Write_date_number = Operations_Number / 8; | Write_date_number = Operations_Number / 8; | ||||
| @@ -232,6 +229,23 @@ string Write_date(int Function_code, unsigned int Operations_Number) | |||||
| } | } | ||||
| if (Function_code == 0x10) | if (Function_code == 0x10) | ||||
| Write_date_number = Operations_Number * 2; | 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"); | printf("请输入N组写入数据(2位16进制为一组,空格间隔)例如:00 00 01 00 20 05\n"); | ||||
| do | do | ||||
| { | { | ||||