update:main V0.005.0、hmi V1.4
main 1、MODBUS_TCP增加3个port口,总计4个port口供主机读取数据; 2、修复历史报警记录靠前条数不是最新的报警信息BUG; 3、修复MODBUS_TCP写寄存器时解析数据的异常BUG; hmi 1、MODBUS_TCP设置界面增加3个port口,总计4个port口进行设置;
This commit is contained in:
@@ -48,7 +48,12 @@ static void proto_modbus_communication_data_send(u8 *p_data, u16 len)
|
||||
|
||||
static void proto_modbus_init(void)
|
||||
{
|
||||
W5500.W5500_Class[0].Rx_DataAnalysis = proto_modbus_communication_data_analysis;
|
||||
u16 i;
|
||||
for(i=0;i<BSP_W5500_PORT_NUM;i++)
|
||||
{
|
||||
W5500.W5500_Class[i].Rx_DataAnalysis = proto_modbus_communication_data_analysis;
|
||||
}
|
||||
|
||||
}
|
||||
static void proto_modbus_task(void)
|
||||
{
|
||||
@@ -134,8 +139,8 @@ static void proto_modbus_communication_data_analysis(u8 *pData, u16 len,void *ot
|
||||
|
||||
case 0x06:
|
||||
{
|
||||
modbus_analysis_data.write_data_addr[0] = pData[10];
|
||||
modbus_analysis_data.write_data_addr[1] = pData[11];
|
||||
modbus_analysis_data.write_data_addr = &pData[send_buff_index_offset + 4];
|
||||
|
||||
TempAddr = modbus_analysis_data.start_addr;
|
||||
TempData = (modbus_analysis_data.write_data_addr[0] << 8) | modbus_analysis_data.write_data_addr[1];
|
||||
error_code = proto_modbus_data_write(TempAddr, TempData);
|
||||
@@ -155,11 +160,8 @@ static void proto_modbus_communication_data_analysis(u8 *pData, u16 len,void *ot
|
||||
|
||||
case 0x10:
|
||||
{
|
||||
u8 byte_count = pData[12]; // <20>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8>Ƶ<EFBFBD> write_data_addr
|
||||
for (u8 i = 0; i < byte_count; i++) {
|
||||
modbus_analysis_data.write_data_addr[i] = pData[13 + i];
|
||||
}
|
||||
modbus_analysis_data.write_data_addr = &pData[send_buff_index_offset + 7];
|
||||
|
||||
TempAddr = modbus_analysis_data.start_addr;
|
||||
for (inx = 0; inx < modbus_analysis_data.reg_number; inx++)
|
||||
{
|
||||
@@ -173,12 +175,12 @@ static void proto_modbus_communication_data_analysis(u8 *pData, u16 len,void *ot
|
||||
}
|
||||
}
|
||||
send_struct.len = send_buff_index_offset + 6;
|
||||
send_struct.send_buffer[send_buff_index_offset + send_buff_index_offset + 0] = modbus_analysis_data.id;
|
||||
send_struct.send_buffer[send_buff_index_offset + send_buff_index_offset + 1] = modbus_analysis_data.func;
|
||||
send_struct.send_buffer[send_buff_index_offset + send_buff_index_offset + 2] = modbus_analysis_data.start_addr >> 8;
|
||||
send_struct.send_buffer[send_buff_index_offset + send_buff_index_offset + 3] = modbus_analysis_data.start_addr & 0xff;
|
||||
send_struct.send_buffer[send_buff_index_offset + send_buff_index_offset + 4] = modbus_analysis_data.reg_number >> 8;
|
||||
send_struct.send_buffer[send_buff_index_offset + send_buff_index_offset + 5] = modbus_analysis_data.reg_number & 0xff;
|
||||
send_struct.send_buffer[send_buff_index_offset + 0] = modbus_analysis_data.id;
|
||||
send_struct.send_buffer[send_buff_index_offset + 1] = modbus_analysis_data.func;
|
||||
send_struct.send_buffer[send_buff_index_offset + 2] = modbus_analysis_data.start_addr >> 8;
|
||||
send_struct.send_buffer[send_buff_index_offset + 3] = modbus_analysis_data.start_addr & 0xff;
|
||||
send_struct.send_buffer[send_buff_index_offset + 4] = modbus_analysis_data.reg_number >> 8;
|
||||
send_struct.send_buffer[send_buff_index_offset + 5] = modbus_analysis_data.reg_number & 0xff;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user