Scheduled Output Module
The 1756-OB16IS, 1732E-OB8M8SR, and 1756-OB16IEFS Scheduled Output modules are designed to work in conjunction with the MAOC motion instruction to provide position based output control (also known as PLS). The MAOC instruction by itself allows position based output control by using the position of any motion axis in
ControlLogix
, and CompactLogix
for the 1732E-OB8M8SR module, as the position reference and any output or boolean as the output. The MAOC updates the outputs based on motion axis position at the motion group coarse update rate (typically 2ms to 10ms). The output turn-on and turn-off times are determined by axis position and velocity.To schedule the on/off times of the scheduled outputs of the module in resolutions down to that rated for the module, outputs are scheduled as follows by the available modules.
For the 1756-OB16IS, of 8 of its 16 outputs (outputs 0 to 7) in 100 μs increments. Outputs are scheduled by entering data into one or more of the 16 schedules provided by the output connection data store.
For the 1732E-OB8M8SR, of 8 of its 8 outputs (outputs 0 to 7) in 100 μs increments. Outputs are scheduled by entering data into one or more of the 16 schedules provided by the output connection data store.
For the 1756-OB16IEFS, of 16 of its 16 outputs (outputs 0 to 15) in 10 μs increments. Outputs are scheduled by entering data into one or more of the 32 schedules provided by the output connection data store.
IMPORTANT:
When using the 1756-OB16IS module with the MAOC instruction, make sure you use the default Communication Format for the module, that is, Schedule Output Data Per Point. If you change the Communication Format when the module is used with an MAOC instruction, an error may result.
Operation
Outputs are scheduled on a per point basis and each individual output point is controlled by its own timestamp.
Individual schedules are created in the controller, stored in the output image table for the module, and sent over the backplane or EtherNet/IP to the Scheduled Output module. The schedule specifies a sequence count, the output point to be associated with the schedule, the time at which an output value should be applied to the physical output point, and the value to be applied at the scheduled time. The I/O module receives and stores the schedule. The timestamp of each schedule is monitored by the module. When a schedule has expired, that is, the current time matches the scheduled timestamp, the output value is then applied to the corresponding output bit. Timer hardware in the ASIC is used to optimize the scheduling algorithm. This hardware also reduces the latency and jitter performance. Status of each schedule is reported in the output echo connection and reflected in the input image for the module.
The scheduled output functionality relies on CST (Coordinated System Time) timestamp in the 1756-OB16IS module. At least one controller in the chassis must be a CST time master.
The 1756-OB16IEFS and 1732E-OB8M8SR modules rely on UTC time with a CIP Sync Grandmaster clock synchronizing all the outputs.
For the 1756-OB16IS module, unused outputs may be used as normal outputs and are applied immediately rather than waiting for the CST timestamp to expire. A mask is sent to the module to indicate which outputs are to function as normal outputs.
Each scheduled output module can be individually scheduled. Refer to the following table for the scheduled support that is available for each module type.
Module | Total Outputs | Scheduled Outputs | Total Schedules | Minimum Scheduled Interval | Timebase |
1756-OB16IS | 16 [0 to 15] | 8 [0 to 7] | 16 | 100μs | CST |
1732E-OB8M8SR | 8 [0 to 7] | 8 [0 to 7] | 16 | 100μs | UTC |
1756-OB16IEFS | 16 [0 to 15] | 16 [0 to 15] | 32 | 5μs | UTC |
The scheduled outputs must be between output points. Outputs that are not scheduled are used as normal output points. A mask is used to indicate which points are scheduled and which points are unscheduled. All of the scheduling configuration is done through the MAOC instruction.
If a new schedule as indicated by a change in the sequence count is received by the I/O module before the current schedule has expired, the current schedule is overwritten. This mechanism can be used to cancel currently active schedule. Status bits returned in the output echo connection may be used to determine the current state of each schedule and to trigger corresponding event tasks.
If a new schedule is sent by the controller to a 1756-OB16IS and the CST timestamp has already past, the output is asserted until the lower 24 bits of the CST time has completely wrapped around. The module does not check for an expired CST timestamp.
WARNING:
If the time between two schedules is less than the minimum schedule interval, then jitter occurs. This means that even though two outputs are scheduled at different time, they both activate at the same time.
Remote Operation
Scheduled outputs using the 1756-OB16IS module do not work with a remote chassis.
Usage with MAOC Instruction
When used with motion and the MAOC instruction, values in the output image are controlled by the Motion Planner firmware in the controller. The Motion Planner triggers the data to be sent to the module. Although, the normal program or task scan also triggers data to be sent to the module. Data integrity is maintained by the firmware always setting the sequence count for a given schedule last.
The Output Cam instruction processes cam events for scheduled outputs one coarse update period sooner than unscheduled outputs. When a programmed on or off event is detected, a schedule is sent to the output module to turn the output on or off at the appropriate time within the next coarse update period. The Output Cam instruction divides the coarse update period into sixteen time slots.
For example, a coarse update period of 2 ms will yield sixteen 125 μs time slots. Cam on/off events will be assigned to time slots based on their position within the coarse update period. If both latch and unlatch events for a cam element are assigned to the same time slot, they will cancel each other out. This implies that the minimum pulse width of a cam element is greater than one time slot.
The minimum pulse width of a cam element should be greater than the 100 μs OB16IS minimum pulse width, or the 1/16 coarse update minimum pulse width, whichever is larger.
The MAOC instruction detects latch and unlatch events one coarse update ahead and schedules the event to occur within the next coarse update. This is accomplished by applying a one coarse update internal delay to each scheduled output latch and unlatch position. When the latch or unlatch event is detected, the delta time from the start of the coarse update to the event is calculated, and the output is scheduled to occur at the CST or UTC corresponding to the next coarse update period. To facilitate this, Output Cam functionality has access to the CST or UTC captured when the current coarse update period occurred.
The MAOC instruction is able to process both scheduled and unscheduled output bits for the 1756-OB16IS.
Scheduled outputs that are not configured for use in an MAOC’s Output Cam Table are not allocated in the resultant Schedule Mask. You can manipulate those outputs as general discrete outputs from separate logic. What this implies is that for the 1756-OB16IS module, you cannot directly affect output bits 0…7 or 0...15, but you do have the ability to modify output bits 8…15.
TIP:
For the 1756-OB16IS module, outputs 0 to 7 can be forced by forcing the Data Bit to 0 or 1 and its corresponding bit in the ScheduleMask to 0. For outputs 8 to 15, only the Data Bit needs to be forced. For the 1732E-OB8M8SR and 1756-OB16IEFS modules, force outputs 0 to 7 and outputs 0 to 15 in the same manner that you use for the 1756-OB16IS module.
Due to the limit of 16 schedules supported by the 1756-OB16IS and 1732E-OB8M8SR modules and 32 for the 1756-OB16IEFS module, some constraints are applied to the number of events that can be processed every coarse update period.
Only 8 schedules are available each coarse update for the 1756-OB16IS and 1732E-OB8M8SR modules. This allows for two consecutive coarse updates in which each update contains 8 output events. As a group of 8 schedules are currently being processed by the scheduled output modules, a second group of 8 schedules can concurrently be set up for the next coarse update.
Similarly, only 16 schedules are available each coarse update for the 1756-OB16IEFS module. This allows for two consecutive coarse updates in which each update contains 16 output events. As a group of 16 schedules are currently being processed by the scheduled output modules, a second group of 16 schedules can concurrently be set up for the next coarse update.
This diagram illustrates the relationship between the coarse update period, a cam latch event and the time slots for the 1756-OB16IS.
Each Time Slot stores the information described in this table.
Topic | Description |
Latch Event Mask | When a latch event is detected, the time slot in which it belongs is calculated and the bit in the Latch Event Mask corresponding to the output bit of the latch is set. |
Unlatch Event Mask | When an unlatch event is detected, the time slot in which it belongs is calculated and the bit in the Unlatch Event Mask corresponding to the output bit of the unlatch is set. |
Interval | The time in micro-seconds from the start of the coarse update in which the Latch or Unlatch event occurs. |
Pulse On Mask | For pulsed outputs, the time slot in which a pulse on event is calculated and the bit in the Pulse On Mask corresponding to the output bit of the pulse event is set. |
Pulse Off Mask | For pulsed outputs, the time slot in which a pulse off event is calculated and the bit in the Pulse Off Mask corresponding to the output bit of the pulse event is set. |
Output On Mask | For normal outputs, the bit corresponding to the output bit of the Latch or Pulse On event is set indicating that the output is to be turned on for these events. For inverted outputs, the bit corresponding to the output bit of the Unlatch or Pulse Off event is set indicating that the output is to be turned on for these events. |
Output Off Mask | For normal outputs, the bit corresponding to the output bit of the Unlatch or Pulse Off event is set indicating that the output is to be turned off for these events. For inverted outputs, the bit corresponding to the output bit of the Latch or Pulse On event is set indicating that the output is to be turned off for these events. |
This is a simplified overview of how Time Slot data is utilized.
Time slots are also used to process overlapping cam elements. A semaphore is maintained to indicate the currently active state of each output bit. In addition, if a programmed cam element Latch and Unlatch event occurs in the same time slot, they cancel each other out.
The minimum width of a cam element corresponds to the width of a time slot, or 1/16 the coarse update period.
I/O Subsystem
You can specify the Output parameter of an MAOC instruction as either a memory tag or an Output Module’s data tag. A pointer to the tag is passed into the MAOC instruction. Also passed into the MAOC instruction is an internal parameter of type IO_MAP. If the Output parameter references controller memory, the IO_MAP parameter is NULL. If the Output parameter references an output module, the IO_MAP parameter points to the map structure for the module. The MAOC instruction can then determine if the Output parameter is associated with a scheduled output module by checking the module type stored in the driver table.
Output Data Structure
Field | Size | Description |
Value | 4 bytes | Data values for un-scheduled output bits. 0 = Off 1 = On |
Mask | 4 bytes | Selects which output bits are to be scheduled. Only the first eight bits (0 to 7) or 16 bits (0 to 15) can be scheduled. 0 = Not scheduled 1 = Scheduled |
ScheduleTimestamp | 8 bytes | 1756-OB16IEFS and 1732E-OB8M8SR only. Course update timestamp in UTC time. |
Array of 16 Schedule Structures
Field | Size | Description |
Schedule ID | 1 byte | Valid ID’s are 1 to 16 for the 1756-OB16IS and 1732E-OB8M8SR modules, 1...32 for the 1756-OB16IEFS module. Any other value indicates that the schedule is not to be considered. |
Sequence Number | 1 byte | The scheduled output modules will maintain a copy of the schedule. A change in sequence number will tell the modules to process the data in this schedule. |
Point ID | 1 byte | Indicates the output bit associated with this schedule. Entered as a value 00 to 07 for the 1756-OB16IS and 1732E-OB8M8SR modules and 00 to 15 for the 1756-OB16IEFS module. |
Point Value | 1 byte | Next state of output bit specified in Point ID. 0 = Off 1 = On |
Timestamp | 4 bytes | 1756-OB16IS - The lower 32 bits of CST. 1756-OB16IEFS, 1732E-OB8M8SR - Offset from coarse update timestamp (Scheduled time = ScheduleTimestamp + Time Stamp). Indicates when to change the state of the specified output bit. |
Schedule Processing
The Value and Mask fields are processed and all unscheduled data bits are moved to the module output data store. This data is written to the output terminals after all schedules have been processed. Each schedule is processed. The schedule is not considered if the:
- Schedule ID is not in the range of 1 to 16 or 1 to 32.
- Point ID is not in the range of 0 to 7 or 0 to 15.
- Sequence Number has not changed.
If the schedule is to be considered, it is marked active. All active schedules are examined every several microseconds. The schedule Timestamp is compared to the current time. If the current time is greater than or equal to the scheduled Timestamp, the Point Value in the schedule is moved to the module output data store for the specified output bit.
Provide Feedback