Цитата Сообщение от Иван Иванович С Посмотреть сообщение
пришлось сделать костыль с разностью значений между циклами.
Добрый день.

Это как раз не костыль.
Это правильная работа со счетчиком.

Вы просто пишете такой код:
ВашСчетчик := ВашСчетчик + (ПоказанияСчетчикаВЭтомЦикле - ПоказанияСчетчикаВПрошломЦикле);

При необходимости увеличения диапазона счетчика (до 4 294 967 295) можно сделать его типом DWORD и тогда код будет таким:
ВашСчетчик := ВашСчетчик + WORD_TO_DWORD(ПоказанияСчетчикаВЭтомЦикле - ПоказанияСчетчикаВПрошломЦикле);

Цитата Сообщение от Иван Иванович С Посмотреть сообщение
И при переполнении счетчика требуется еще контролировать чтобы кракозябра не получилась.
Кракозябрам взяться не от куда. Допустим счетчик переполнился и мы имеет такие значения для расчета дельты:

ПоказанияСчетчикаВПрошломЦикле (Тип WORD) — 65500
ПоказанияСчетчикаВЭтомЦикле (Тип WORD) — 100

Посчитаем дельту, учитывая что оба значения типа WORD:
100 - 65500 = 100 + (0 - 65500 - 35) + 35 = 100 + (0 - 65535) + 35 = 100 + 1 + 35 = 136
т.е. 36 импульсов вызвали переполнение счетчика, и еще 100 сверху.

Пруф:
2021-09-23_10-40-30.png

В этом смысле контролировать ничего не нужно. Разве что следить ,чтобы не было аномально больших скачков, вызванных какой-нибудь помехой, например.