Skip to main content

Rungs Studio 0.7.0

· 4 min read
Szymon "Dagryl" Palczynski
Automation Software Engineer

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

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

See Setting the Preset (Timers) and Setting the Preset (Counters).

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 and Restrictions for the full rules.

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. Half-values round to the nearest even number — 0.5 rounds to 0, 1.5 rounds to 2.
  • Destination-driven division. The result type follows the destination tag, not the operands. Two DINTs into a REAL give a REAL; two DINTs into a DINT truncate.
  • 32-bit 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.

This one came from a community request. 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

  • 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.
  • 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.

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.