PRINT_MARK_CONTROL (FB)
The function block 'PRINT_MARK_CONTROL' is a basic block for realising a print mark control. It is not to be used directly but is a subroutine of the following function blocks:
The following functionality is covered by this function block:
- The difference between setpoint and actual position is calculated and output as a correction value
- The function block implements two kinds of collecting the setpoint position of the print mark:
- The setpoint position can be set to an absolute position within the print format.
- The first detected print mark sets the setpoint position
- Control of the print mark sensor depending on a window
- Monitoring of the print marks
- Simulation of missing print marks
- Output of the correction path as even distribution of the increments on a preset correction path
- Limitation of the correction velocity
- Output an offset for shifting the print mark setpoint position
The function block operates with positive counting direction of the input pulses and sets positive output pulses.
The function block is called in the asynchronous program level PLC_PRG.
Setpoints and current values are transferred in a synchronous action. The synchronous action must be called in the synchronous program level FPLC_PRG.
Schematic diagram: PRINT_MARK_CONTROL used as register controller
Specification of the print mark setpoint position
- Start of the print mark control with search for the setpoint postion:
After a positive edge of 'boStartPmDet', the first pulse is set as setpoint position of the print mark. All following print marks are related to this position. - Start of the print mark control with preset of the setpoint position:
On a positive edge of 'boStartPmDet', the value of 'diPmSetupPos' is added to the actual master position. This value specifies the setpoint position of the next print mark. All following print marks are related to this position.
Print mark simulation
If no print mark pulse is detected up to the end of the print mark window, one print mark will be simulated at the setpoint position. The output 'iActPmLost' will be increased by 1.
'iNoPmLost' specifies how many print marks may be simulated until 'boPmLost' = TRUE. The output 'iActPmLost' shows how many print marks are already simulated since the last print mark has been detected.
The output 'boPmLost' has no effect on the control process.
User interface
Name |
Type |
Description |
||||
---|---|---|---|---|---|---|
boEnable |
BOOL |
Enable signal: With a positive edge, the initialisation of the block starts. As long as 'boEnable' = TRUE, the block remains enabled and is processed by the PLC. In the state 'boEnable' = FALSE the block is no longer enabled and is thus no longer processed. |
||||
diFormat |
DINT |
Format length Nominal distance between two print marks [increments] |
||||
diWndLen |
DINT |
Window length Length in front and after the nominal print mark position. In this range, the print mark sensor is activated and will accept a print mark. |
||||
iNoPmLost |
INT |
Number of print marks to be missed in succession, before the output 'boPmLost' is set. |
||||
diCorrRange |
DINT |
Correction range The print mark control tries to output the correction in the specified range [% diFormatLength] |
||||
diPmSetupPos |
DINT |
The parameter specifies the nominal position of the print mark relatively to the actual master position on a positive edge of 'boStartPmDet'. |
||||
diCorrectionLimit |
DINT |
Maximum correction output per format [increments] 'diCorrectionLimit' = 0: no limitation 'diCorrectionLimit' > 0: maximal value |
||||
enPmcMode |
ENUM |
EN_PMC_MODE Mode of print mark control:
|
Name |
Type |
Description |
---|---|---|
boResetPmLost |
BOOL |
Resetting the output 'boPmLost' |
boStartPmDet |
BOOL |
Start of print mark control 'boStartPmDet' = TRUE: print mark control activated By means of the input 'boSetupPmPos', it is specified which kind of print mark position will be taken into account when starting the print mark control |
boCorrEnable |
BOOL |
Release of the correction output (Can be controlled with block 'PRINT_MARK_CORROUT_CONTROL' to allow correction of outputs in certain areas only) |
boSetupOffset |
BOOL |
Output start of the specified value of 'diOpOffset'. This value is used as an offset to shift the printing mark set position |
boSetupPmPos |
BOOL |
Mode how to determine the nominal position of the print mark on a positive edge of 'boStartPmDet' 'boPmSetupPos' = FALSE: The position of the next print mark is set as nominal position. All following print marks are adjusted to this position. 'boPmSetupPos' = TRUE: The parameter 'diPmSetupPos' specifies the print mark relatively to the actual master position. The following print marks are adjusted to this position |
boRefPulse |
BOOL |
Homing pulse (See document Software description AmkExMotionBase library, Part no. 207236) BasicSupport DI_TO_COUNT |
diCount |
DINT |
Counter value Pulses of the controlled unit for determining the print mark deviation |
diPmOffset |
DINT |
Print mark offset of the actual position (See document Software description AmkExMotionBase library, Part no. 207236) BasicSupport DI_TO_COUNT |
diOpOffset |
DINT |
Operator offset. Shifts the set position of the print mark. The shift takes place in the correction range and starts with a 0 → 1 edge at 'boSetupOffset'. It is independent of changes in the value of 'diCount'. The offset is calculated as |
diCorrCount |
DINT |
Impulses of the speed masters (path speed master) |
Name |
Type |
Description |
---|---|---|
boEnabAck |
BOOL |
Acknowledgement: Function block is initialised and enabled |
Name |
Type |
Description |
---|---|---|
boPmDetected |
BOOL |
Print mark detected, control activated |
boPmLost |
BOOL |
Print mark lost activated when the number of print marks set in 'iNoPmLost' is not detected successively. |
boPmWnd |
BOOL |
Mark window activates the print mark sensor |
diPmDeviation |
DINT |
Deviation between setpoint and actual position of the actual print mark |
diOpOffsetOut |
DINT |
Output value contains the actually output operator offset |
diCorrOut |
DINT |
Correction value |
iActPmLost |
INT |
Number of lost print marks |
PLC_PRG (asynchronous part of the program) | FPLC_PRG (synchronous part of the program) |
---|---|
PRINT_MARK_CONTROL | PRINT_MARK_CONTROL.actSync |