|
DMD0526 CTREGRD - CTRIO Read Register |
|||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||
|
The CTRIO Read Register (CTREGRD) instruction is used to read the value from the selected internal register of the CTRIO and store that value in a location in the Do-more controller.
The red triangle in the upper left corner indicates the CTRIO Read Register (CTREGRD) is a Fully Asynchronous instruction.
Note: The CTREGRD instruction can be used with both the CTRIO and CTRIO2 modules. |
| ||||||||||||||||||||||||||||||||||||||||||
Inputs:This input is edge-triggered, meaning that each time this input logic transitions from OFF to ON, the CTRIO Read Register (CTREGRD) will:
|
|||||||||||||||||||||||||||||||||||||||||||
Parameters:Note: Use the F9 key (Element Browser) at any time to see a complete list of the memory locations that are valid in the current field of the instruction.
Part of the configuration for any device is assigning a name to the device. It is that name which will show up in the Module Device selection drop-down menu. For more information on configuring CTRIO devices go to the Module Configuration Section under System Configuration.
Note: no devices available - indicates that there are no CTRIO modules that have been pre-configured to perform this instruction.
Module Structure - This field displays the name of the Module Structure that will be used by this instruction. This structure was created when the CTRIO module was configured during the Module Configuration phase.
Source Register - selects which of the following internal registers to read:
Destination - designates the memory location to store the value read from the CTRIO module. This can be any 32-bit writable numeric location.
On Success - designates which of the following actions to take if the CTRIO Read Register operation is successful.
On Error - designates which of the following two actions to take if the CTRIO Read Register operation is unsuccessful. For example if the specified CTRIO Discrete output is not configured correctly.
Note: any time the On Error condition occurs, the CTRIO generates an Error Code that can be read in the <Module Name>.ErrorCode (Module Name is the name assigned to the CTRIO in the Module Configuration). The List of Error Code values (in decimal) follows:
|
|||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||
Status Display:The Status display of the CTRIO Read Register (CTREGRD) instruction shows:
|
| ||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||
See Also:
|
|||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||
Example 1 of 2: |
Description of a Typical CTRIO Read Register (CTREGRD) Stage Diagram:
Note: This would not be necessary with a CTRIO2 module since the output position is available as a structure member (.OutputPosition). But this particular structure member is not supported in the CTRIO, so the only way to read the output position is via a CTREGRD instruction.
The Position stage puts the CTRIO pulse output into the Dynamic Position mode. Once this is complete (Ready = ON) then the Move stage is enabled (not transitioned to) so that both stages are running in parallel. The reason for this is because the Position stage must be left enabled to keep the CTRIO pulse output in the Dynamic Position mode through all the moves.
Once the CTRIO pulse output has reached its new position (AtPosition = ON), then it transitions to the InPos stage.
In the InPos stage another position can be loaded and then the NextMove can be set ON to transition back to the Move stage to move the motor to another position, or the Done button can be set ON to finish things up. If Done is set ON, then both the Position and InPos (In Position) stages converge and transition to the ReadPos (Read Position) stage.
Once the position is read by the ReadPos stage, transition is made to the Stop stage.
|
Description of a Typical CTRIO Read Register (CTREGRD) Stage Ladder:
Note: Reading the output position with the CTREGRD is not necessary if using a CTRIO2 module since the output position is available as a structure member (.OutputPostion).
This example presupposes the use of a CTRIO (instead of a CTRIO2) module and the existence of the following System Configuration for the CTRIO (PLC --> System Configuration --> Module Configuration(s) --> CTRIO_001 -->):
Position is the main CTDYNPOS instruction stage. This stage remains enabled for all moves. Instead of transitioning to the next stage (Move), the next stage is merely enabled. When Begin bit comes ON it will enable the CTDYNPOS instruction. Then the following things occur:
The Begin bit will remain ON for all moves. It will be cleared OFF at the completion of the last move. The CTDYNPOS's SUS (Suspend) input is controlled by the Suspend bit. This bit must remain OFF for any given move to complete. Turning this bit ON will cause the CTRIO's output to immediately stop. Turning it back OFF will cause the CTRIO's output to abruptly start again and complete a move.
The On Success parameter jumps to the ReadPos stage. This will occur when Begin is cleared OFF and everything was successful.
The On Error parameter jumps to the ErrorStage stage. In this stage should exist logic (not shown here) that would properly handle the error (e.g. to process the $CTRIO_000.ErrorCode value).
Once the CTDYNPOS is enabled, the $CTRIO_001_Out0.OutputEnabled bit will be set ON by the Pulse Output Device. When this occurs the next stage (Move) is enabled.
Move stage accomplishes the first move and any subsequent moves. Initially it is assumed a new position has been written to the HMI_Position variable. To move, the $CTRIO_001_Out0.GotoPosition bit is set ON. The Pulse Output Device will clear this bit when the move begins. Once the bit is cleared, then the $CTRIO_001_Out0.AtPosition bit is monitored for completion of the move. Once that bit is set ON by the Pulse Output Device, this move is complete and the Move stage transitions to the InPos stage.
The InPos stage turns ON Positioned to indicate the position has been reached. This stage waits for either the NextMove bit or the Done bit to be toggled ON. It is assumed these bits are momentary contacts. If another position is desired, then HMI_Position is provided a new value and the NextMove bit is toggled. When NextMove bit comes ON the InPos stage transitions back to the Move stage. If this is the last move, then the Done bit is toggled. When Done comes ON then Begin bit is cleared OFF and InPos stage disables itself (SGRST). When the InPos stage is transitioned out of, it will turn the Positioned bit OFF to indicate another move is in progress or all moves are complete.
The Begin bit resets the CTDYNPOS instruction in the Position stage above. This causes the following to happen:
The ReadPos stage uses the CTREGRD instruction to read the 4 - Out0 Position value from the CTRIO's internal register and stores that value in Read_Position variable. When successful it transitions to the Stop stage.
The Stop stage merely exits this Program code block. |
|
|
Example 2 of 2: |
![]() |
|
|