Подскажите пожалуйста как организовать в программе ПЛК счетчик циклов?
Который бы не сбрасывался и данные можно было бы посмотреть при подключении ПК.
Вид для печати
Подскажите пожалуйста как организовать в программе ПЛК счетчик циклов?
Который бы не сбрасывался и данные можно было бы посмотреть при подключении ПК.
Добрый день!
Правильно ли я понял, Вы хотите подсчитывать кол-во пройденных циклов ПЛК?
Если да, то нужно инкриминировать значение счетчика на единицу каждый цикл.
Вложение 36709
Для того, что бы значение не сбрасывалось при перезагрузки ПЛК по питанию, переменная счетчика должна быть объявлена в энергонезависимой области контроллера.
Вложение 36708
Однако, при переполнении счетчика, счет пойдет заново.
Это можно обойти, обрабатывая переполнение.
4294967295 - максимальное значение переменной типа DWORD.Код: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;
Добрый день.
Вы можете реализовать так, как Вам удобно. Суть от этого не меняется.
Максимальное значение любого беззнакового типа будет нечетное (четным будет количество возможных значений 0...Максимально возможное).
Так максимальное значение типа DWORD (16#FFFF FFFF) в десятичном представлении равно 4294967295, а количество принимаемых значений - 4294967296.
[QUOTE=Осинский Алексей;276311 а количество принимаемых значений - 4294967296.[/QUOTE]
Совершенно верно, и именно поэтому в формуле при подсчете общего числа циклов должно быть 4294967296, а не 4294967295, на что , собственно, коллега Валенок и пытался обратить внимание.
Большое всем спасибо!
И еще вопрос, что за марка аккумулятора в ПЛК и как его поменять?
В ПЛК100 используется литий-ионный аккумулятор LIR2466. Замена производится в сервисном центре. Список СЦ доступен по ссылке.