![]() ![]() Hope this helps you understand why there is a problem. The programmers have to specifically swap the bytes before saving to the register location, and conversely swap the bytes when reading the response packet. Since the "standard" today is Intel CPUs, this resulted in the byte swap problem. The problem was that for software programmers that never worked with the actual PLC's, they simply read the modbus specification and saved the float value to the register offset location. When Modicon moved to Intel based CPUs, (I think that the first was an 80186 CPU in the Modicon 884) they did not move to the Intel convention for byte ordering. Some of us "old-timers" referred to the byte ordering as Motorola versus Intel. This was the byte ordering for the bit-sliced processors used in older generation PLCs. I don't remember specifically which way it is done in a Modicon PLC, but I think that the byte ordering was basically the non-Intel way, which is high byte low byte. However, you can use the point that the way it is done in a Modicon PLC is "more standard" than any other way. As you mentioned, there is nothing specific in the protocol document. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |