Hello,
I am running into an issue communicating with a Current Monitoring Controller (XB2CMAC6XXXA_DLCT27CL20-20-amp)
I query the module every 15 seconds with the following command:
0xAA 0x0E 0xBC 0x32 0x0A 0x54 0x92 0x6A 0x01 0x01 0x06 0x00 0x00 0x04 0x55 0x13 0x74
Everything works great, except that every 2 to 4 hours after continuos polling (could not find a pattern here), the module responds with the follwing response:
0xAA 0x13 0x00 0x31 0xBF 0x00 0x04 0xF2 0x00 0x03 0x2E 0x00 0x28 0x21 0x00 0x05 0xC9 0x00 0x00 0x00 0x2E 0xAA
Basically, the module is replacing byte 22 (Fusion API Checksum (8-Bit Sum of Bytes 3-21)) with a Fusion API Frame Header.
If I send a new command after I receive this response, the response to that new command is sent by the module to the host computer withoute the “Fusion API Frame Header”. Exampple:
0x13 0x00 0x31 0xCC 0x00 0x05 0x01 0x00 0x03 0x2D 0x00 0x27 0x27 0x00 0x05 0xBF 0x00 0x00 0x00 0x45 0x4
What I have tried once I recieve the initial wrong response with the Fusion API Frame Header at the end of the message:
- I’ve tried to close and re-open the connection before sending a new command.
- I’ve tried waiting up to 10 hours before sending a new command.
- I’ve tried sending the “meassuring” command (decimal 1 in byte 9) or the “device information” command (decimal 2 in byte 9)
But, in all tests, once I recieve the initial wrong response with the Fusion API Frame Header at the end of the message, if I send a new command, the response to that second comand is received without the 0xAA Api Frame Header.
Also in all cases, once that response to the second message is received without the 0xAA header, the module responds as expected for the following 2-4 hours.
So, just to clarify the message flow:
[OPEN COM PORT]
“device information”
→ 0xAA 0x0E 0xBC 0x32 0x0A 0x54 0x92 0x6A 0x02 0x00 0x00 0x00 0x00 0xFE 0x55 0x07 0x5C
← 0xAA 0x07 0x04 0x14 0x06 0x01 0x00 0x00 0x1F 0xEF
“meassuring command”
→ 0xAA 0x0E 0xBC 0x32 0x0A 0x54 0x92 0x6A 0x01 0x01 0x06 0x00 0x00 0x04 0x55 0x13 0x74
← 0xAA 0x13 0x00 0x1A 0x4E 0x00 0x04 0xF9 0x00 0x05 0x56 0x00 0x06 0x1B 0x00 0x0B 0xF5 0x00 0x00 0x00 0xE1 0x7F
[after 2 to 4 hours of looping]
→ 0xAA 0x0E 0xBC 0x32 0x0A 0x54 0x92 0x6A 0x01 0x01 0x06 0x00 0x00 0x04 0x55 0x13 0x74
[received message with header at the end instead of Fusion API Checksum]
← 0xAA 0x13 0x00 0x31 0xBF 0x00 0x04 0xF2 0x00 0x03 0x2E 0x00 0x28 0x21 0x00 0x05 0xC9 0x00 0x00 0x00 0x2E 0xAA
→ 0xAA 0x0E 0xBC 0x32 0x0A 0x54 0x92 0x6A 0x01 0x01 0x06 0x00 0x00 0x04 0x55 0x13 0x74
[received non-header message]
← 0x13 0x00 0x31 0xCC 0x00 0x05 0x01 0x00 0x03 0x2D 0x00 0x27 0x27 0x00 0x05 0xBF 0x00 0x00 0x00 0x45 0x4
[loop again for 2 to 4 hours]
→ 0xAA 0x0E 0xBC 0x32 0x0A 0x54 0x92 0x6A 0x01 0x01 0x06 0x00 0x00 0x04 0x55 0x13 0x74
← 0xAA 0x13 0x00 0x1A 0x4E 0x00 0x04 0xF9 0x00 0x05 0x56 0x00 0x06 0x1B 0x00 0x0B 0xF5 0x00 0x00 0x00 0xE1 0x7F