Digital Input (Dynamic)


Operator Menu Location: Generic Hardware Operators -> Dynamic Config Hardware

Operator Bitmap:

 

Functional Description:
This operator accepts structure compositions as an input, and outputs a structure to configure its operation. It must be linked to a hardware resource to complete its functionality.
Pin x 1 accepts an input structure which configures the input value's characteristics. Refer to the Configuration Inputs section of the table below for the structure components and the accepted values.
Pin x 2 accepts a boolean input which indicates when to accept the input, on a signal's rising or falling edge.
Pin x accepts an input structure containing the digital signal's characteristics. Refer to the Data Inputs section of the table below for the structure components and the accepted values.
Pin y outputs a structure containing status information. Refer to the Data Outputs section of the table below for the structure components and the expected values.
Dynamic Configuration for Digital Inputs

Configuration Inputs

 

 

 

 

ID

Type

Name

Relevant Modes

Comments / Notes

1

int8

Input Mode

All

  • 0x00 = Input Disabled / Off
  • 0x10 = Standard On/Off
  • 0x20 = Pulse Counter
  • 0x30 = Frequency Counter
  • 0x40 = Event Timer
  • 0x50 = Quadrature Decoder
  • 0x60 = Active HIGH Pulse Width
  • 0x70 = Active LOW Pulse Width

2

bool

Initial State

Standard On/Off

 

3

float

Hysteresis

Standard On/Off

Value in "seconds"

4

bool

Event Timer Start Edge

Event Timer only

  • 0 = falling edge
  • 1 = rising edge

5

float

Event Timer Stop Edge

Event Timer only

  • 0 = falling edge
  • 1 = rising edge

6

float

Scaling Factor

Quad Decode, Pulse Count

 

7

int8

Decimal Point Position

Quad Decode, Pulse Count

 

8

float

Initial Velocity

Quad Decode, Pulse Count

 

9

float

Initial Acceleration

Quad Decode, Pulse Count

 

10

float

Initial Jerk

Quad Decode, Pulse Count

 

11

bool

Odometer Mode

Quad Decode

 

12

bool

Invert Direction

Quad Decode

 

13

float

Reserved1

All

This member is reserved for future expansion. To ensure
compatibility with future Fairmount Automation software,
this member should be set to zero (0.0).


Data Inputs

 

 

 

 

ID

Type

Name

Relevant Modes

Comments / Notes

1

bool

Reset / Load input

Quad Decode, Pulse Count, Event Timer, Pulse Width

 

2

float

Load Input 1

Quad Decode, Pulse Count

 

3

float

Load Input 2

Quad Decode, Pulse Count

 

4

float

Load Input 3

Quad Decode, Pulse Count

 

5

float

Load Input 4

Quad Decode, Pulse Count

 

6

float

Load Input 5

Quad Decode, Pulse Count

 

7

bool

Direction

Pulse Count

Not sure if this is useful ???

8

float

Reserved1

All

This member is reserved for future expansion. To ensure
compatibility with future Fairmount Automation software,
this member should be set to zero (0.0).


Data Outputs

 

 

 

 

ID

Type

Name

Relevant Modes

Comments / Notes

1

int8

Status Code

All

Basic status information for the hardware. See "Status Codes" table on "Defines" worksheet.

2

int8

Mode

All

The input mode is echoed back to the data output block. This is intended mainly for networked operation, allowing the receiver to verify that the input is in the expected mode before interpreting data. Also useful when transitioning from one mode to another.

3

bool

Digital State

Standard On/Off

 

4

float

Event/Pulse Width

Event Timer, Pulse Width

Value always in ms

5

bool

New Event/Pulse Indication

Event Timer, Pulse Width

This pulse may be "lost" over network?

6

float

Frequency

Frequency

 

7

float

Duty Cycle

Frequency

 

8

float

Low Precision Position

Quad Decode, Pulse Count

 

9

float

Velocity

Quad Decode, Pulse Count

 

10

float

Acceleration

Quad Decode, Pulse Count

 

11

float

Jerk

Quad Decode, Pulse Count

 

12

float

High Precision Pos 1

Quad Decode, Pulse Count

 

13

float

High Precision Pos 2

Quad Decode, Pulse Count

 

14

float

High Precision Pos 3

Quad Decode, Pulse Count

 

15

float

High Precision Pos 4

Quad Decode, Pulse Count

 

16

float

High Precision Pos 5

Quad Decode, Pulse Count

 

17

bool

Direction

Quad Decode

 

18

float

Reserved1

All

This member is reserved for future expansion. Until its meaning is defined by Fairmount
Automation, applications should assume that its value is undefined.


User-Defined Properties:
Object Name. A string label that identifies the operator

Enable On. Defines at what segment of a signal the input should be read or indicates it is always active.

Comments: The following table defines the status codes in the Data Output structure:
.

Status Codes for Dynamic Configuration Generic Hardware Operators

 

 

Value

Name

Description

0

DYN_HW_STATUS_OK

Operator is behaving normally. No errors. Readings are safe to use.

1

DYN_HW_STATUS_CIRCUIT_WARNING

A fault has been detected in the circuit. For inputs, this may indicate an out-of-range reading. For outputs, this may indicate an overload condition. Readings returned (if any) may be "failsafe" values.

2

DYN_HW_STATUS_INITIALIZING

The hardware is initializing, and has not yet acquired valid readings. This can happen after the configuration has changed.

3

DYN_HW_STATUS_DISABLED

The hardware is set to an inactive mode, or has not yet been configured. Readings not valid.

4

DYN_HW_STATUS_USUPPORTED_CONFIG

The requested hardware configuration is unknown or is not supported by this hardware. Readings not valid.

5

DYN_HW_STATUS_RESOURCE_IN_USE

Some or all of the resources needed for the requested HW configuration are in use by other operators. Note: Certain HW modes require resources from multiple inputs or outputs. For example, PCM-1 Quad Decode and Event Timer modes require resources from both Digital Input 1 and 2. To use one of these two modes on the PCM-1, the other input must be in the "Disabled / Off" mode. Future Fairmount products may have similar "shared resource" limitations.

6

DYN_HW_STATUS_HW_FAULT

A major fault has been detected with the hardware resource. Readings not valid.


See Also: