PDA

Просмотр полной версии : Счетчик циклов на ПЛК100



Алекс2013
18.04.2018, 09:25
Подскажите пожалуйста как организовать в программе ПЛК счетчик циклов?
Который бы не сбрасывался и данные можно было бы посмотреть при подключении ПК.

Зинько Владислав
18.04.2018, 11:24
Добрый день!


Подскажите пожалуйста как организовать в программе ПЛК счетчик циклов?.

Правильно ли я понял, Вы хотите подсчитывать кол-во пройденных циклов ПЛК?
Если да, то нужно инкриминировать значение счетчика на единицу каждый цикл.
36709


Который бы не сбрасывался и данные можно было бы посмотреть при подключении ПК.
Для того, что бы значение не сбрасывалось при перезагрузки ПЛК по питанию, переменная счетчика должна быть объявлена в энергонезависимой области контроллера.
36708

Однако, при переполнении счетчика, счет пойдет заново.
Это можно обойти, обрабатывая переполнение.

VAR RETAIN
dwCycleCounter : DWORD;
dwPrevCycleCounter : DWORD;
dwOverfillingCounter : DWORD;
END_VAR

(* Инкрементируем значение счетчика *)
dwCycleCounter := dwCycleCounter + 1;
(* Если значние счетчика в прошлом цикле было больше, чем сейчас,
значит было перпеполнение *)
IF dwPrevCycleCounter > dwCycleCounter THEN
(* Увеличиваем счетчик переполнений *)
dwOverfillingCounter := dwOverfillingCounter + 1;
(* Тогда общее кол-во циклов будет =
4294967295 * dwOverfillingCounter + dwCycleCounter *)
END_IF
(* Сохраняем текущее значение счетчика *)
dwPrevCycleCounter := dwCycleCounter;


4294967295 - максимальное значение переменной типа DWORD.

Осинский Алексей
18.04.2018, 14:08
Добрый день.


Накой сохранять предыдущее значение ? факт переполнения - 0
Зачем писать 42... ? 16#FFFF_FFFF - само себя комментирует


Вы можете реализовать так, как Вам удобно. Суть от этого не меняется.



И почему число нечетное ? 6 - на конце. 16#1_0000_0000 - для тех кто в танке.

Максимальное значение любого беззнакового типа будет нечетное (четным будет количество возможных значений 0...Максимально возможное).
Так максимальное значение типа DWORD (16#FFFF FFFF) в десятичном представлении равно 4294967295, а количество принимаемых значений - 4294967296.

YuriBel
18.04.2018, 17:03
[QUOTE=Осинский Алексей;276311 а количество принимаемых значений - 4294967296.[/QUOTE]

Совершенно верно, и именно поэтому в формуле при подсчете общего числа циклов должно быть 4294967296, а не 4294967295, на что , собственно, коллега Валенок и пытался обратить внимание.

Осинский Алексей
18.04.2018, 18:32
Совершенно верно, и именно поэтому в формуле при подсчете общего числа циклов должно быть 4294967296, а не 4294967295, на что , собственно, коллега Валенок и пытался обратить внимание.

Да, тут согласен.

Алекс2013
26.04.2018, 12:21
Большое всем спасибо!
И еще вопрос, что за марка аккумулятора в ПЛК и как его поменять?

Ильнур Гибадуллин
26.04.2018, 13:36
Большое всем спасибо!
И еще вопрос, что за марка аккумулятора в ПЛК и как его поменять?

В ПЛК100 используется литий-ионный аккумулятор LIR2466. Замена производится в сервисном центре. Список СЦ доступен по ссылке (http://www.owen.ru/78507995).