Смотреть публикацию здесь http://www.prolog-plc.ru/art10
Смотреть публикацию здесь http://www.prolog-plc.ru/art10
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Тип Функциональный блок
Входы
IN : BOOL (Входной сигнал)
RST : BOOL (Сброс)
Выходы
SECONDS : UDINT (Время работы в секундах)
CYCLES : UDINT (Количество циклов включений входа IN
ontime.gif
Переменные на входах SECONDS и CYCLES должны быть определены как UDINT и могут быть объявлены как VAR, VAR RETAIN или VAR RETAIN PERSISTENT.ONTIME представляет собой счетчик времени наработки. Он суммирует общее время, в течение которого сигнал IN с момента последнего сброса находился в состоянии TRUE. Кроме того, вычисляется общее количество циклов включения / выключения. Выходные значения имеют тип UDINT. При помощи входа RST выходные значения можно обнулить в любое время. Значения выходов сохраняются не во внутренних переменных блока, а размещаются извне и передаются через указатели. Решительное преимущество этого способа состоит в том, что по желанию пользователя переменные могут быть объявлены как RETAIN и/или PERSISTENT. Возможно также сохранить прежнее значение времени наработки, а затем восстановить его позднее.
Следующая таблица объясняет действие ключевых слов RETAIN и PERSISTENT:Код:VAR RETAIN PERSISTENT Betriebszeit_in_Sekunden : UDINT; Zyklen : UDINT; END_VAR
Переменные RETAIN и PERSISTENT сохраняют свои значения при загрузке программы, горячем обновлении и перезапуске. При холодном перезапуске или сбросе в оригинальное состояние, однако, эти переменные все равно теряют свои значения. Пользователь, тем не менее, может сохранить эти значения в файловой системе или в сети, чтобы восстановить их.
Онлайн команда VAR VAR RETAIN VAR PERSISTENT VAR RETAIN PERSISTENT Сброс (Reset) - Значение сохраняется - Значение сохраняется Холодный сброс (Reset Cold) - - - - Сброс заводской (Reset Origin) - - - - Загрузка (Download) - - Значение сохраняется Значение сохраняется Горячее обновление (Online Change) Значение сохраняется Значение сохраняется Значение сохраняется Значение сохраняется
ontime_sample.gif
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
petera почему все Вам забывают сказать спасибо, Вы молодец что столько времени уделяете начинающим, да и не только многие не знают англицкий язык и я в том числе, перевести я конечно могу даже с технического но это потребует некоторое количества времени гораздо проще открыть темку а там уже всё расписано, а еще проще было описание на OSCAT-овкую библиотеку на русском написать, я думаю что если каждый возьмет по ФБ,как раз и получиться
Вот ссылка может кому пригодится
http://www.wago.su/oscat
petera спасибо огромное, что уделили внимание и время, нам, простым смертным...
Что-то они тут намудрили. Во-первых, чаще всего требуется не само значение этого таймера, а разность между текущим его значением и значением, сохранённым во время какого-то события - для измерения интервалов времени (если, конечно, они заведомо меньше этих 49 дней). При этом, когда считаем разность, никакие переполнения не страшны, разность всегда будет верной, даже если новое значение перешагнуло через границу диапазона, потому что в этом случае при вычитании также происходит переполнение, и эффекты этих двух переполнений взаимно гасятся, давая в итоге верное значение. Проверено. Во-вторых, переполнение таймера легко отследить и учесть в какой-либо дополнительной переменной, сколько раз оно уже произошло. Что-то они ищут проблемы там где их нет.Другой особенностью T_PLC_MS является режим отладки, который позволяет тестировать переполнение внутреннего таймера ПЛК и проверять надежность работы разработанной программы в этом случае. Внутренний таймер каждого ПЛК переполняется через определенное время, независимо от производителя и типа его реализации. Это означает, что он достигает FF..FFFF (наибольшего значения, которое может храниться в переменной соответствующего типа), и затем начинает счет снова с 000..0000. Согласно стандарту, для таймеров ПЛК период переполнения составляет 2^32 -1 миллисекунд, что соответствует примерно 49,71 дням. Поскольку этот таймер реализован аппаратно, то его начальное значение нельзя установить, и после запуска ПЛК отсчет таймера всегда начинается с 0 и продолжается до достижения максимального значения. По достижении максимального значения возникает переполнение таймера, которое может вызвать фатальные последствия для приложения, однако проверить это крайне сложно.
Последний раз редактировалось Boris_K; 10.11.2014 в 15:06.
Просто им страшно прибавить к FF..F единицу. Вот и баяцца.Видимо так и есть.
точно подмечено!!!! ОГРОМНОЕ СПАСИБО ЗА ТЕРПЕНИЕ И ПОМОЩЬ!!!!!