Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 25

Тема: Библиотеки сторонних разработчиков

  1. #11
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию OSCATBasic T_PLC_MS

    Функция T_PLC_MS тип DWORD

    Выход DWORD (Таймер ПЛК в миллисекундах)
    T_PLC_MS возвращает текущее внутреннее время ПЛК в миллисекундах. Оно не имеет ничего общего с возможно имеющимися часами (блоком реального времени), а является значением внутреннего таймера ПЛК, которое используется в качестве опорного времени.
    При нормальной работе блок считывает с помощью функции TIME() значение внутреннего таймера ПЛК и затем возвращает его. Внутренний таймер ПЛК имеет разрешение в 1 миллисекунду согласно стандарту IEC.

    Другой особенностью T_PLC_MS является режим отладки, который позволяет тестировать переполнение внутреннего таймера ПЛК и проверять надежность работы разработанной программы в этом случае. Внутренний таймер каждого ПЛК переполняется через определенное время, независимо от производителя и типа его реализации. Это означает, что он достигает FF..FFFF (наибольшего значения, которое может храниться в переменной соответствующего типа), и затем начинает счет снова с 000..0000. Согласно стандарту, для таймеров ПЛК период переполнения составляет 2^32 -1 миллисекунд, что соответствует примерно 49,71 дням. Поскольку этот таймер реализован аппаратно, то его начальное значение нельзя установить, и после запуска ПЛК отсчет таймера всегда начинается с 0 и продолжается до достижения максимального значения. По достижении максимального значения возникает переполнение таймера, которое может вызвать фатальные последствия для приложения, однако проверить это крайне сложно.

    T_PLC_MS предлагает несколько способов для проверки переполнения и зависящего от времени программного обеспечения. С помощью константы DEBUG может быть включен режим отладки, и затем при помощи констант N и OFFSET таймер может быть запущен с определенного значения, что позволяет протестировать переполнение, не дожидаясь 49 дней. При этом OFFSET задает число, которое добавляется к значению внутреннего таймера. С помощью постоянной N определяется, на сколько разрядов значение внутреннего таймера сдвигается влево, тем самым заполняя младшие N разрядов единицами. Таким образом, при помощи N скорость работы внутреннего таймера может быть увеличена в 2,4,8,16 и т.д. раз.

    Таким образом, T_PLC_MS предоставляет все возможности для тестирования зависимого от времени программного обеспечения, как для проблемы переполнения, так и для очень продолжительных зависимых от времени функций.

    Постоянные DEBUG, N и OFFSET специально реализованы не в виде входов функции, чтобы избежать случайного ошибочного использования.
    См. также: T_PLC_US.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  2. #12
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию Oscat - работа со строками CDS V2.3

    Смотреть публикацию здесь http://www.prolog-plc.ru/art10
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #13
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию OSCATBasic ONTIME

    Тип Функциональный блок

    Входы
    IN : BOOL (Входной сигнал)
    RST : BOOL (Сброс)

    Выходы
    SECONDS : UDINT (Время работы в секундах)
    CYCLES : UDINT (Количество циклов включений входа IN
    ontime.gif
    ONTIME представляет собой счетчик времени наработки. Он суммирует общее время, в течение которого сигнал IN с момента последнего сброса находился в состоянии TRUE. Кроме того, вычисляется общее количество циклов включения / выключения. Выходные значения имеют тип UDINT. При помощи входа RST выходные значения можно обнулить в любое время. Значения выходов сохраняются не во внутренних переменных блока, а размещаются извне и передаются через указатели. Решительное преимущество этого способа состоит в том, что по желанию пользователя переменные могут быть объявлены как RETAIN и/или PERSISTENT. Возможно также сохранить прежнее значение времени наработки, а затем восстановить его позднее.
    Переменные на входах SECONDS и CYCLES должны быть определены как UDINT и могут быть объявлены как VAR, VAR RETAIN или VAR 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) Значение сохраняется Значение сохраняется Значение сохраняется Значение сохраняется
    Переменные RETAIN и PERSISTENT сохраняют свои значения при загрузке программы, горячем обновлении и перезапуске. При холодном перезапуске или сбросе в оригинальное состояние, однако, эти переменные все равно теряют свои значения. Пользователь, тем не менее, может сохранить эти значения в файловой системе или в сети, чтобы восстановить их.
    ontime_sample.gif
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  4. #14
    Пользователь
    Регистрация
    10.04.2010
    Адрес
    Алтайский край,г.Рубцовск
    Сообщений
    955

    По умолчанию

    petera почему все Вам забывают сказать спасибо, Вы молодец что столько времени уделяете начинающим, да и не только многие не знают англицкий язык и я в том числе, перевести я конечно могу даже с технического но это потребует некоторое количества времени гораздо проще открыть темку а там уже всё расписано, а еще проще было описание на OSCAT-овкую библиотеку на русском написать, я думаю что если каждый возьмет по ФБ,как раз и получиться

  5. #15
    Пользователь
    Регистрация
    01.04.2010
    Адрес
    Лыткарино
    Сообщений
    174

    По умолчанию

    Вот ссылка может кому пригодится
    http://www.wago.su/oscat

  6. #16
    Пользователь Аватар для Сема
    Регистрация
    17.12.2011
    Адрес
    Армавир
    Сообщений
    567

    По умолчанию

    petera спасибо огромное, что уделили внимание и время, нам, простым смертным...

  7. #17

    По умолчанию

    Другой особенностью T_PLC_MS является режим отладки, который позволяет тестировать переполнение внутреннего таймера ПЛК и проверять надежность работы разработанной программы в этом случае. Внутренний таймер каждого ПЛК переполняется через определенное время, независимо от производителя и типа его реализации. Это означает, что он достигает FF..FFFF (наибольшего значения, которое может храниться в переменной соответствующего типа), и затем начинает счет снова с 000..0000. Согласно стандарту, для таймеров ПЛК период переполнения составляет 2^32 -1 миллисекунд, что соответствует примерно 49,71 дням. Поскольку этот таймер реализован аппаратно, то его начальное значение нельзя установить, и после запуска ПЛК отсчет таймера всегда начинается с 0 и продолжается до достижения максимального значения. По достижении максимального значения возникает переполнение таймера, которое может вызвать фатальные последствия для приложения, однако проверить это крайне сложно.
    Что-то они тут намудрили. Во-первых, чаще всего требуется не само значение этого таймера, а разность между текущим его значением и значением, сохранённым во время какого-то события - для измерения интервалов времени (если, конечно, они заведомо меньше этих 49 дней). При этом, когда считаем разность, никакие переполнения не страшны, разность всегда будет верной, даже если новое значение перешагнуло через границу диапазона, потому что в этом случае при вычитании также происходит переполнение, и эффекты этих двух переполнений взаимно гасятся, давая в итоге верное значение. Проверено. Во-вторых, переполнение таймера легко отследить и учесть в какой-либо дополнительной переменной, сколько раз оно уже произошло. Что-то они ищут проблемы там где их нет.
    Последний раз редактировалось Boris_K; 10.11.2014 в 15:06.

  8. #18
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,318

    По умолчанию

    Цитата Сообщение от Boris_K Посмотреть сообщение
    Что-то они тут намудрили...Что-то они ищут проблемы там где их нет.
    Просто им страшно прибавить к FF..F единицу. Вот и баяцца.

  9. #19

    По умолчанию

    Просто им страшно прибавить к FF..F единицу. Вот и баяцца.
    Видимо так и есть.

  10. #20

    По умолчанию

    точно подмечено!!!! ОГРОМНОЕ СПАСИБО ЗА ТЕРПЕНИЕ И ПОМОЩЬ!!!!!

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Подключение к ЕКОН-134 сторонних приборов
    от pilot2 в разделе Подбор Оборудования
    Ответов: 4
    Последнее сообщение: 13.01.2013, 12:23
  2. Ответов: 2
    Последнее сообщение: 30.06.2011, 10:45
  3. Ответов: 2
    Последнее сообщение: 16.01.2009, 00:32
  4. Opc-сервер сторонних разработчиков?
    от NSemenov в разделе Сервисное ПО
    Ответов: 3
    Последнее сообщение: 21.12.2007, 17:46
  5. Ответов: 5
    Последнее сообщение: 13.06.2007, 09:22

Ваши права

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