Показано с 1 по 3 из 3

Тема: ПЛК210 + МВ210-202 + Энкодер

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #2

    По умолчанию

    Может так попробовать:

    dwOldLength - предыдущее значение
    dwLength - текущее значение от МВ210-202
    diTotalLength - накопленное энергонезависимое
    ton - таймер обновления

    Код:
    ton(IN := TRUE, PT := T#1s);
    IF ton.Q THEN
      IF dwLength - dwOldLength > 0 THEN               // Счет вперед
        IF dwLength - dwOldLength > 4000000000 THEN // Переполнение при счете назад
          diTotalLength := diTotalLength - (4294967295 - dwLength + dwOldLength);
        ELSE
          diTotalLength := diTotalLength + (dwLength - dwOldLength);      // Накапливаем
        END_IF
      ELSE IF dwOldLength - dwLength > 0 THEN       // Счет назад
        IF dwOldLength - dwLength > 4000000000 THEN  // Переполнение при счете вперед
          diTotalLength := diTotalLength + (4294967295 - dwOldLength + dwLength);
        ELSE
          diTotalLength := diTotalLength - (dwOldLength - dwLength);      // Накапливаем
        END_IF
      END_IF
      dwOldLength:=dwLength;  // Сохраним текущую позицию
      ton(IN:=FALSE);              // Перезапустим таймер
    END_IF
    Последний раз редактировалось EFrol; 18.06.2024 в 10:43.

Похожие темы

  1. ПЛК210 + МВ210-202 + Энкодер
    от Vadim_71 в разделе ПЛК2хх
    Ответов: 2
    Последнее сообщение: 16.06.2024, 18:04
  2. Ответов: 4
    Последнее сообщение: 02.02.2024, 10:24
  3. ПЛК210 + МВ210 + СП310-Р по Modbus TCP
    от Ворон226 в разделе ПЛК2хх
    Ответов: 2
    Последнее сообщение: 20.07.2023, 20:32
  4. МВ210 + энкодер
    от Brandon_heat_dre в разделе Мх210
    Ответов: 8
    Последнее сообщение: 23.12.2020, 11:32

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •