Просмотр полной версии : Счетчик циклов на ПЛК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.
[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).
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot