This topic describes many different ways to use the RMC discrete I/O.
Tag Names
General-purpose discrete I/O can be given tag names. To assign tag names to discrete I/O, use the Discrete I/O Configuration editor.
Setting Outputs
There are several ways to turn discrete outputs on or off:
Using Commands
The commands below operate on a single output. To operate on multiple outs simultaneously, use one of the methods above.
From RMCTools
Use the Discrete I/O Monitor to toggle outputs on or off. See Toggling Outputs below.
Use the Discrete I/O Monitor to force the output on or off. See Forcing Inputs or Outputs below.
Note:
An output or input that is forced will always remain in the forced state
until the force is removed. Toggling an output will change the state of
the output if is not forced.
From a User Program
Use the Expression (113) command in a User Program to turn on outputs or get the state of inputs.
A sample expressions is:
MyOutput := True
The MyOutput tag must previously have been assigned to an output for this expressions to be valid.
From PLC or HMI
Write to the address of the output. See the RMC150 DI/O Register Map, RMC75 DI/O Register Map, or RMC200 DI/O Register Map for address details.
Using Inputs and Outputs in User Programs
You can use inputs and outputs in User Programs for calculations and controlling the flow of the program. Inputs and outputs are boolean Data Types and must match the data types in the expression or must be converted to match the other data types.
All variables, inputs and output tags in the sample expressions below must have been defined for the expression to be valid.
In the Expression (113) command:
Turning on an output:
To turn an output on or off, assign a value to the output.
Sample Expression:
MotorOnOutput := ( NOT LowPressureInput ) AND ( NOT ErrorInput )
Assigning a value to a variable:
You can assign a value to a variable based on the value of an input.
Sample Expression:
SystemOK.0 := LowPressureInput OR (_Axis[0].ActPos > 24.2)
Note:
SystemOK.0 is the first bit in the DWORD type variable SystemOK.
In the Conditional Jump link type:
The Conditional Jump type jumps to a step based on whether the expression evaluates to true or false. To use Discrete I/O, you must enter an expression. To do this, choose the Cnd Jmp link type, double-click the Link Condition box, choose Other, and click Next.
Sample expressions:
SawLimitInput
PressOnInput OR (_Axis[0].ActPos < 24.2)
Forcing Inputs and Outputs and Simulate Inputs
Inputs and Outputs can be forced on or off from RMCTools. The inputs and outputs will always remain in the forced state until the force is removed. To force an input or output, you must first Go Online with the controller, and open the Discrete I/O Monitor.
Forcing an Output
In the Discrete I/O Monitor, right-click the output you want to force, and click Force On or Force Off. The output will be highlighted with a yellow background to indicate is forced.
Forcing an output will force the physical output on or off. Until the force is removed, the RMC will ignore all other attempts to turn that output on or off. If an output is forced on, its corresponding LED on the expansion module will turn green, and the output will physically be on (conducting). If an output is forced off, its corresponding LED on the expansion module will turn off, and the output will physically be off (not conducting). Forcing an output only affects the physical output, and does not affect the corresponding software bit.
Forcing an Input (Simulate an Input)
In the Discrete I/O Monitor, right-click the input you want to force, and click Force On or Force Off. The input will be highlighted with a yellow background to indicate is forced.
Forcing an input will force the input on or off. Until the force is removed, the RMC will ignore the physical state of the input. The LED on the expansion module will not be affected by the force. The LED will still reflect the physical state of the input.
Removing a Force
In the Discrete I/O Monitor, right-click the input or output you want to remove the force from, and click RemoveForce. Or, in the Discrete I/O Monitor, right-click anywhere and click Remove All Forces.
Using Inputs to Start a User Program
To start a User Program based on an input:
Open the Program Triggers Editor.
Double-click the Condition cell in the bottom row to create a Program Trigger.
In the New Condition Wizard, choose Other and click Next.
In the Tags box, find the input you want under the Discrete I/O node and double-click it.
If you want a User Program to start when the input goes low, type NOT in front of the input name in the Expression box. Otherwise, the User Program will start when the input goes high.
Click Finish.
In the Tasks columns, choose the User Programs you want to start for each task, or choose which tasks you want to stop.
To apply the changes to the RMC, right-click the Programming node in the Project pane, and click Download Programs.
Reading the Input or Output State
To read the state of an RMC input or output, read the bit in the register or read the entire register. See the Register Map for details.
Control Whether the RMC is in RUN, PROGRAM, or Disabled mode.
See the Configuring Discrete I/O for details on assigning an input to control whether the RMC is in RUN, PROGRAM, or Disabled mode.
Hardware Specifications
For hardware details on the discrete I/O, such as response times and voltage and current limits, see the specifications for the respective modules:
See Also
Discrete I/O Overview | Configuring Discrete I/O
Copyright © 2025 Delta Computer Systems, Inc. dba Delta Motion