Open Modicon code and you'll see addresses like %I0.2.3 that identify an I/O location. In this example, a located I/O variable is assigned to a channel through its topological address: which rack, which module, which channel. Unlocated variables use storage assigned by the system. The %MW state RAM doubles as the Modbus map. Click the rack to decode it.
This example represents rack 0 of an M580 station. Select an input or output channel to decode its topological address into rack, module and channel, and inspect the symbol assigned to that channel. The address identifies its position in the rack. Moving the module requires reviewing the address and configuration; the variable name alone does not identify the new physical connection.
The format: %I (input) / %Q (output), then rack.module.channel. So %I0.2.3 = rack 0, the module in slot 2, channel 3. Give it a symbol like StartPB in the data editor so the logic can use the signal name. That variable remains located at its configured address, which must match the intended channel.
Compare the located and unlocated declarations in the example. Use the toggle to inspect whether the variable has an explicit address or storage assigned by the system.
Use located variables when the application needs an explicit address, such as the I/O channel or Modbus data shown here. Unlocated variables leave storage allocation to the system for internal application data. This avoids manually assigning those addresses, but the rest of the program and external interfaces still need consistent definitions.
For this controller's illustrated map, %MW state-RAM words are directly mapped to Modbus holding registers. %MW100 is register 400101. Locate a variable at a %MW address in that map to make the value available through the configured Modbus service. Check communication access and device settings; assigning an address alone does not establish a usable connection.
| Control Expert variable | State RAM | Modbus register | value |
|---|---|---|---|
| TankLevel : INT | %MW100 | 400101 | 742 |
| PumpSpeed : INT | %MW101 | 400102 | 1480 |
| Setpoint : INT | %MW102 | 400103 | 800 |
| RunCmd : EBOOL | %M20 | 000021 (coil) | 1 |
To expose an application value through the illustrated map, assign it to %MW and configure the permitted Modbus access. The client also needs the correct address convention and value interpretation. (More in Track 06 · Modbus.)
A drawing references %Q0.4.1. What does it point to?