Program description. Shaft of the motor rotates right(max. frequency Quadrature 1:9900Hz, Quadrature 2:18800Hz)
Stops for 10s. Next it rotates left (max. frequency Quadrature 1:-9900Hz, Quadrature 2:-18800Hz).
60 revolutions in both directions. Frequncy 18800Hz corresponds to 70rpm. Maximum tangential velocity is 15m/s.

Until now, parameter Pulse mode channel was Quadrature 1 for DP820. For this setting, when motor is stopped, encoder counts up or down during some cirumstances.
It happens when motor is stopped and phase A is in high state. There are also vibrations of encoder (mounting, fan).
Vibrations lead to instantaneous changes of phase A state, which cause generating of impulses. When phase B is in low state, impulses are counted up, when phase B is in high state, impulses are counted down.
We thought that solution for this will be setting Pulse mode channel: Quadrature2. PLC do not count impulses during stop. We have 2 times higher frequency. We divide impulses and frequency by 2 in program.
There is problem during start. When motor is rotating right, encoder shows frequency below -100Hz(there should be frequency above 0Hz). Program recognize it as motor is rotating left and stop machine after 500ms, and turn on alarm.
Directions are distinguished correctly when frequency is above 100Hz or below -100Hz. 100Hz is equal to 0.1m/s of tengential velocity.
Shaft is rotating right for sure, it was checked with recorder. During start there are high vibrations. It is impossible to elemninate them.
Actual setting in program:

Questions:
Is it OK to set parameter Internal time channel 1 to 45ms (like ModuleBus)?
How to optimize DP820 card with respect to Task settings and reading ModuleBus?
What settings do you recommend to make DP820 card less sensitive to vibrations?
ModuleBus is refrshed every 45ms. What happens when during this time task is performed, is it interrupted?