L_MC1P - MC_Touchprobe: Using a digital input of EPM-S202 as TP (TouchProbeSource=3) only works with global variables (no correction intended)
Corrected from: Library: L_MC1P_MotionControlBasic (FAST Motion) (no correction intended)
Response of the new version:
Since the function restriction does not occur when using global variables (see "Short-term measures'), there is no correction planned.
What happens?
The 'MC_Touchprobe' does not identify a rising edge at a simple digital input as a TP event.
When does this behaviour occur?
The behaviour only occurs if no global variable is used under 'Module I/O Mapping' to transfer the TP input to the 'MC_Touchprobe' FB, but a locally declared variable of the EPM-S202 I/O module, as shown in the following example:
- Variable 'xDI1' declared in the I/O mapping of EPM-S202 at address %IX8.0
- Transfer to the MC_Touchprobe FB: TriggerRef.ExternalTPDigIn := ADR( xDI1 );
==> Touch probe is not detected.
Which products are affected? Library: L_MC1P_MotionControlBasic (FAST Motion)
Short-term measures:
Use a global variable to transfer the digital input to the 'MC_Touchprobe' FB:
1. Declare the global variable in a global variable list: GVL_HardwareSignals.g_xDI1
2. Enter the global variable 'GVL_HardwareSignals.g_xDI1' under EPM_S202 / 'Module I/O Mapping' (the indicated address is crossed out).
3. Transfer to MC_Touchprobe FB: TriggerRef.ExternalTPDigIn := ADR(GVL_HardwareSignals.g_xDI1);
==> OK, touch probe is detected.
Evaluation/recommendations:
Usually, global variables are used to transfer process data (recommended). For this reason, the described function restriction will not be relevant in practical applications.