# Rungs Studio 0.7.0

Source: https://rungs.dev/blog/rungs-studio-0-7-0

> Rungs Studio 0.7.0 release notes — inline tag editing on rungs, expression-based array indexes, Logix-grade arithmetic, and printable Add-On Instructions.

0.7.0 is the biggest ladder release since the editor shipped, and most of the changes bring Rungs Studio a step closer to Studio 5000 Logix Designer®. You can edit tag defaults straight from the rung, use math inside array indexes, print a full AOI from the toolbar, and arithmetic now matches what a real Logix controller would do.

## Edit tag defaults from the ladder editor [#edit-tag-defaults-from-the-ladder-editor]

I've noticed some of you struggle with editing default values of `TIMER` and `COUNTER` presets — leaving the rung, switching to the tag editor, hunting for the right tag, changing the preset, and coming back. From 0.7.0 you can edit a tag's default value directly from the block instruction that uses it. No more tab-switching.

![Editing a TON preset directly from the rung](https://rungs.dev/img/blog/rungs-studio-0-7-0/edit-tag-defaults.gif)

See [Setting the Preset (Timers)](https://rungs.dev/docs/ladder-logic/instructions/timers#setting-the-preset) and [Setting the Preset (Counters)](https://rungs.dev/docs/ladder-logic/instructions/counters#setting-the-preset).

## Math inside array indexes [#math-inside-array-indexes]

You can now write a full expression inside square brackets:

```
BoolArray[(I + 1) * 2]
DintArray[I - 1]
```

Studio shows the live value of each indexed element as the program runs. If you forget the index entirely (`PhaseTimer.ACC` on an array tag), the editor flags it as an error. If a calculation goes outside the array at runtime, the program stops and points to the rung that did it.

Allowed inside the brackets: integer literals, `DINT` tags, `DINT` structure fields, integer arithmetic with `+ - * / MOD`, and `ABS()` over an integer. Floats, booleans, whole arrays, nested array access, and bit access are rejected.

See [Index expressions](https://rungs.dev/docs/tags/arrays#index-expressions) and [Restrictions](https://rungs.dev/docs/tags/arrays#restrictions) for the full rules.

## Arithmetic that matches Logix [#arithmetic-that-matches-logix]

Until 0.7.0, arithmetic in Rungs Studio used JavaScript rules under the hood. From 0.7.0 it mirrors Studio 5000 Logix Designer:

- **[Banker's rounding](https://rungs.dev/docs/structured-text/arithmetic-and-comparison-operators#banker-rounding-real-into-dint).** Half-values round to the nearest even number — `0.5` rounds to `0`, `1.5` rounds to `2`.
- **[Destination-driven division](https://rungs.dev/docs/structured-text/arithmetic-and-comparison-operators#division-integers-vs-decimals).** The result type follows the destination tag, not the operands. Two `DINT`s into a `REAL` give a `REAL`; two `DINT`s into a `DINT` truncate.
- **32-bit [`REAL`](https://rungs.dev/docs/tags/data-types#real) precision** end-to-end.

`MIN` and `MAX` were removed — they don't exist in Logix. If your tests depended on the old math, expect a few of them to need updating.

## Print a whole AOI [#print-a-whole-aoi]

This one came from a [community request](https://github.com/rungs-dev/community/discussions/6). Press `Ctrl/Cmd+P` (or use the new toolbar button) to print an AOI: tags with their defaults, ladder routines with default values shown and errors highlighted, structured text routines, and tests. No more screenshots.

## Smaller fixes you'll feel every day [#smaller-fixes-youll-feel-every-day]

- Tag autocomplete in ladder and structured text suggests better matches in more places
- The status panel clears its log on every test or simulation run, so you only see the latest output
- The ladder editor lets you select and edit larger regions with the keyboard
- Two new data types: `FBD_TIMER` and `FBD_COUNTER`, with `.EnableIn` set to `1` by default
- `DINT`, `BOOL`, `TIMER`, `FBD_TIMER`, and `FBD_COUNTER` are accepted as tag names — Logix allows it, so Rungs does too. See [Data Types](https://rungs.dev/docs/tags/data-types#summary).
- Negative scientific literals like `-1.5e1` work in ladder block fields. Forms like `.5e2` and `+1.5e0` are rejected, matching Logix. See [Writing REAL literals](https://rungs.dev/docs/tags/data-types#writing-real-literals).

## Feedback [#feedback]

0.7.0 will roll out over the next week. Once it lands for you, try it and let me know what's missing or broken. The best place to report issues is the [community issue tracker](https://github.com/rungs-dev/community/issues).