PDA

Просмотр полной версии : При эмуляции всплывает окно о нулевой уставке таймера, размещённого в макросе



FPavel
22.01.2023, 11:18
Доброго дня, уважаемые специалисты.

При работе в OL 2.2.318.0 возникла следующая ситуация:
- создал макрос, внутри которого присутствует один таймер TON, значение задержки записывается со входа макроса через масштабирование (умножение на 1000) и "Write to FB"
- на основном холсте ко входу подключил константу 10

При попытке эмуляции проекта получил всплывающее предупреждающее сообщение о том, что в этом макросе в таймер записано недопустимо малое значение.

Перепроверил макрос - и сам по себе он нормально эмулируется с выдержками, и умножение на 1000 выполняется, и запись в TON производится.
А вот при эмуляции с холста - такое сообщение.

Избавился от сообщение при помощи установки в свойствах TON значения 1 секунда.

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

Теперь у меня два вопроса:

1. Почему появилось сообщение?

2. Будет ли перезапись внутри макроса при изменении константы времени на основном холсте или останется значение, которое записано в свойствах таймера?

melky
22.01.2023, 11:28
Номер TON внутри макроса какой? и есть ли такие же номера TON на холсте? Возможно это причина ошибки (предположение), типа программа неправильно определяет блок FBD

1exan
22.01.2023, 11:41
Доброго дня, уважаемые специалисты.

При работе в OL 2.2.318.0 возникла следующая ситуация:
- создал макрос, внутри которого присутствует один таймер TON, значение задержки записывается со входа макроса через масштабирование (умножение на 1000) и "Write to FB"
- на основном холсте ко входу подключил константу 10

При попытке эмуляции проекта получил всплывающее предупреждающее сообщение о том, что в этом макросе в таймер записано недопустимо малое значение.

Перепроверил макрос - и сам по себе он нормально эмулируется с выдержками, и умножение на 1000 выполняется, и запись в TON производится.
А вот при эмуляции с холста - такое сообщение.

Избавился от сообщение при помощи установки в свойствах TON значения 1 секунда.

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

Теперь у меня два вопроса:

1. Почему появилось сообщение?

2. Будет ли перезапись внутри макроса при изменении константы времени на основном холсте или останется значение, которое записано в свойствах таймера?

Скорее всего, программа анализирует только предустановленное время таймера. Если используется "Write to FB", то будет применяться его значение.

melky
22.01.2023, 11:44
Возможно, просто не помню этот момент в старых версиях. Были комбинации, когда программно вроде писали 0 во время для отключения таймера, и ошибок это не вызывало.

FPavel
22.01.2023, 14:00
На основном холсте только 10-15 самодельных макросов, в том числе и по 2-4 экземпляра, мелкая логика (И, ИЛИ, НЕ).
В макросах присутствуют таймеры - по 1-2 шт. В каждом макросе они нумеруются от 1, поэтому в разных макросах номера могут совпадать.

Сожалею, но проект приложить не могу.
Сделал минимальный тестовый пример из тех макросов - предупреждение воспроизвелось.

bayk
22.01.2023, 14:56
Скорее всего, программа анализирует только предустановленное время таймера. Если используется "Write to FB", то будет применяться его значение.
Абсолютно верно! Надо прописать в таймере 1 секунду, а уже значение подавать через врайт ту фб. Предупреждения тогда не будет

bayk
22.01.2023, 14:59
Возможно, просто не помню этот момент в старых версиях. Были комбинации, когда программно вроде писали 0 во время для отключения таймера, и ошибок это не вызывало.
Это всегда так было. Года два последних так точно

FPavel
22.01.2023, 20:25
Спасибо.
Запомню, что требуется инициализация свойств таймера на этапе компиляции.

1exan
23.01.2023, 06:46
Спасибо.
Запомню, что требуется инициализация свойств таймера на этапе компиляции.

Да для работы даже и не требуется. Это только чтобы предупреждения при эмуляции не было.

mmmx
23.01.2023, 11:56
Рвет шаблон, что через свойства фб время указывается в секундах, а через запись в фб - в миллисекундах

petera
23.01.2023, 12:08
Рвет шаблон, что через свойства фб время указывается в секундах, а через запись в фб - в миллисекундах

Не надо ля-ля! Через свойства время указывается в днях, часах, минутах или секундах. Если в днях, тот шаблон не рвется?
65354

А если в свойствах надо в миллисекундах, то тоже запросто

65355

melky
23.01.2023, 12:13
petera я думаю что человек по другому поводу сетует, что через Запись в FB нельзя сразу писать в секундах, часах, днях, а только в миллисекундах.

petera
23.01.2023, 12:17
petera я думаю что человек по другому поводу сетует, что через Запись в FB нельзя сразу писать в секундах, часах, днях, а только в миллисекундах.

Потому, что запись в ФБ предназначен не только для таймеров. Он универсальный. Зачем, например в уставку счетчика записывать миллисекунды, нужно просто обезличенное число.
А так для каждого типа ФБ нужен свой блок записи.

ЗЫ.
65357

melky
23.01.2023, 13:04
petera или иметь свойства для блока "Запись в FB" всего-то. Либо чтобы эти свойства воспринимались автоматически, в зависимости что настроено в таймере, что еще проще.
Пишем 1-цу в таймер, если у него выставлен час, то это и должно быть 1 час, а не 1 миллисекунда.