---
name: "classicladder"
section: "9"
platform: "linux"
package: "linuxcnc-uspace"
version: "1:2.9.4-2+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/classicladder"
---

# classicladder(9)

realtime software plc based on ladder logic

## NAME

ClassicLadder - realtime software plc based on ladder logic

## SYNOPSIS

**loadrt classicladder\_rt  \[numRungs=***N***\] \[numBits=***N***\] \[numWords=***N***\] \[numTimers=***N***\] \[numMonostables=***N***\] \[numCounters=***N***\] \[numPhysInputs=***N***\] \[numPhysOutputs=***N***\] \[numArithmExpr=***N***\] \[numSections=***N***\] \[numSymbols=***N***\] \[numS32in=***N***\] \[numS32out=***N***\] \[numFloatIn=***N***\] \[numFloatOut=***N***\]**

**loadusr classicladder \<file name\> \[--nogui\]**

## DESCRIPTION

**This component consist of a realtime part and a non-realtime part.  The** **non-realtime part loads the programmable ladder description, while the** **realtime part provides the pins.  The file name of the configuration** **can be changed using an argument to the non-realtime part.  By default** **the non-realtime part provides a graphical visualisation of the loaded** **ladder, which can be disabled using the '--nogui' option to the** **non-realtime part.**

**These pins and parameters are created by the realtime classicladder\_rt** module. Each period (minimum 1000000 ns), ClassicLadder reads the inputs, evaluates the ladder logic defined in the GUI, and then writes the outputs.

## PINS

- **classicladder.0.in-***NN* IN bit

  These bit signal pins map to **%I***NN* variables in ClassicLadder.

- **classicladder.0.out-***NN* OUT bit

  These bit signal pins map to **%Q***NN* variables in ClassicLadder. Output from ClassicLadder.

- **classicladder.0.s32in-***NN* IN s32

  Integer input from ClassicLadder. These s32 signal pins map to **%IW***NN* variables in ClassicLadder.

- **classicladder.0.s32out-***NN* OUT s32

  Integer output from ClassicLadder. These s32 signal pins map to **%QW***NN* variables in ClassicLadder.

- **classicladder.0.floatin-***NN* IN float

  Integer input from ClassicLadder. These float signal pins map to **%IF***NN* variables in ClassicLadder. These are truncated to S32 values internally. eg 7.5 will be 7.

- **classicladder.0.floatout-***NN* OUT float

  Float output from ClassicLadder. These float signal pins map to **%QF***NN* variables in ClassicLadder.

- **classicladder.0.hide\_gui IN bit**

  **This bit pin hides the ClassicLadder window, while still having the non-realtime code** **run. This is usually desirable when modbus is used, as modbus requires the non-realtime** **code to run.**

## PARAMETERS

- **classicladder.0.refresh.time** RO s32

  Tells you how long the last refresh took.

- **classicladder.0.refresh.tmax** RW s32

  Tells you how long the longest refresh took.

- **classicladder.0.ladder-state** RO s32

  Tells you if the program is running or not

## FUNCTIONS

- **classicladder.0.refresh** FP

  The rung update rate. Add this to the servo thread. You can added it to a faster thread but it. Will update no faster than once every 1 millisecond (1000000 ns).

## BUGS

See http://wiki.linuxcnc.org/cgi-bin/wiki.pl?ClassicLadder\_Ver\_7.124 for the latest.

## SEE ALSO

*ClassicLadder* chapters in the LinuxCNC documentation for a full description of the **ClassicLadder** syntax and examples.

http://wiki.linuxcnc.org/cgi-bin/wiki.pl?ClassicLadder\_Ver\_7.124
