The 16-bit variables %MWi are described as WORD, but they always work as INT => signed 16-bit value range (-32768, +32767).
=> this means the value 45000 in a %MW is seen as -20536, and it is not possible to enter any value >32767 from the animation table.
- For local variables, if we know they are positive values with some maximum >32767 (it’s definition of UINT) then it is necessary to use a 32-bit format %MD instead a %MW into the whole program.
- For variables (IN/OUT) exchanged with other devices, sometimes there is no choice, the 16-bit format of the variable is defined/fixed with the third party device.
Example: The object %MWa is written into the M221 over a Modbus communication, and you need to use this value inside the M221 application, within arithmetic operations.
In that case, it is necessary to use in addition to the initial %MWa, another variable %MDb and an operation to transform the %MWa into %MDb by keeping the initial positive UINT value.
For that purpose, you have to use the following operation:
%MDb := CONCATW (%MWa, 0) // it’s forcing the upper word being 0
Result is :
If %MWa=2000; then %MDb=2000
If %MWa=45000 (-20536 seen n the animation table); then %MDb=45000
Gepubliceerd voor: Schneider Electric Netherlands


Hulp nodig?
Selecteer zelf het juiste product
Vind snel en eenvoudig de juiste producten en toebehoren voor uw toepassingen.
Offerte aanvragen
Dien uw aanvraag online in en een expert zal contact met u opnemen.
Verkooppunten
Vind eenvoudig de dichtstbijzijnde distributeur van Schneider Electric op uw locatie.
Help Center
Vind de antwoorden die u nodig heeft via bladeren door veelgestelde vragen over onderwerpen.