Performing a Byte Swap within a Register using TelePACE Studio
When communicating between devices from different manufacturers, there could be different conventions for how data is stored in each device. This might result in a situation where one device stores a floating point value with a byte order AB CD but if the second device stores the value with a byte order BA CD, it will result in seemingly garbage data.
For example, start with a device that has a floating point 12345.6 stored in a byte order AB CD. If another device is used to handling floating points as BA DC, then the same 4 bytes (32-bits) would now give a floating point value of -4.07227e-23
In a situation like this, a word swap would be needed so that the data is placed in the correct order to be understood in the SCADAPack.
This sample program takes a floating point value from Registers 42000-42001 in the form AB CD, swaps the Byte order to BA CD and stores the result in registers 42002-42003
Registers 41000-41006 are temporarily used as the contents of 42000 are rotated one bit at a time, before ending in 42002
Similarly, registers 41010-41016 are temporarily used as the contents of 42001 are rotated one bit at a time, before ending in 42003
As seen in the screenshot, registers 42000-42001 have now had their byte order swapped in 42002-42003, going from a value of 449A 51EC to 9A44 EC51
게시 대상: 슈나이더 일렉트릭 Korea


도움이 필요하신가요?
제품 선택기
애플리케이션에 적합한 제품과 액세서리를 빠르고 쉽게 찾을 수 있습니다.
견적 받기
영업 관련하여 온라인으로 문의하시면 전문가가 연락드립니다.
구매처
해당 지역의 가장 가까운 슈나이더 일렉트릭 대리점을 쉽게 찾을 수 있습니다.
지원 센터
한 곳에서 모든 요구 사항에 대한 지원 리소스를 찾아보십시오.