Страница 815 из 855 ПерваяПервая ... 315715765805813814815816817825 ... ПоследняяПоследняя
Показано с 8,141 по 8,150 из 8547

Тема: CODESYS V3.5. Вопросы и ответы

  1. #8141

    По умолчанию

    Добрый день, камрады. Два таких вопроса есть:
    1. В проекте несколько программ. Как правильно (есть какие-то стандарты, типа PEP8 в питоне?) их запускать - добавить их все в MainTask или прописать их запуск в дефолтной PLC_PRG вот так: PRG_1(); PRG_2(); ..... PRG_N();.
    2. В проекте используется SQLite. Поддерживаются ли при составлении запросов к БД плейсхолдеры для составления динамических запросов типа "SELECT * FROM users WHERE userid = ?" Вопросительный знак в этом запросе позволяет динамически подставлять значение. И если поддерживается, как это делать?

  2. #8142

    По умолчанию

    1. Никак. Разные способы вызова программ и сделаны для того, чтобы можно было выбрать какой удобнее в конкретной ситуации. Овен не рекомендует вносить изменения в задачи - вот и весь стандарт

  3. #8143

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Напишите на support@owen.ru - вам помогут.
    Спасибо Евгению Кислову. Вопросы сняты. Проблема решена.

  4. #8144

    По умолчанию

    Доброе утро. Я не понимаю, почему у меня код отрабатывает только первую итерацию первого цикла. В БД пишется только первое значение первого элемента aiValues. И записывается только один раз, а не каждые 15 секунд. Что у меня неправильно?Снимок экрана 2025-03-10 101210.png

  5. #8145
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,594

    По умолчанию

    Цитата Сообщение от TaPX Посмотреть сообщение
    Доброе утро. Я не понимаю, почему у меня код отрабатывает только первую итерацию первого цикла. В БД пишется только первое значение первого элемента aiValues. И записывается только один раз, а не каждые 15 секунд. Что у меня неправильно?Снимок экрана 2025-03-10 101210.png
    Добрый день.
    SysExecute выполняется по переднему фронту на входе xExecute. У вас на этом входе константа TRUE - так что вполне логично, что он выполняется только один раз.

  6. #8146

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Добрый день.
    SysExecute выполняется по переднему фронту на входе xExecute. У вас на этом входе константа TRUE - так что вполне логично, что он выполняется только один раз.
    1. я же их обнуляю в первом цикле в самом начале программы.
    2. у меня ж должно быть три записи - во втором цикле у меня же массив из SysExecute, и каждый из его элементов должен выполниться как минимум по разу, разве нет?

  7. #8147
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,594

    По умолчанию

    Цитата Сообщение от TaPX Посмотреть сообщение
    1. я же их обнуляю в первом цикле в самом начале программы.
    2. у меня ж должно быть три записи - во втором цикле у меня же массив из SysExecute, и каждый из его элементов должен выполниться как минимум по разу, разве нет?
    1. Это не так.
    "Обнуление" - это


    afbSe3[i](xExecute := FALSE);

    2. Вы пытаетесь одновременно произвести несколько вызовов sqlite3. Я не знаю, в каком виде там это поддерживается.
    Я бы рекомендовал ограничиться одним экземпляром SysExecute и вызывать его последовательно (запустили по xExecute - ждем xDone; после этого можно вызывать опять).

  8. #8148

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    1. Это не так.
    "Обнуление" - это


    afbSe3[i](xExecute := FALSE);

    2. Вы пытаетесь одновременно произвести несколько вызовов sqlite3. Я не знаю, в каком виде там это поддерживается.
    Я бы рекомендовал ограничиться одним экземпляром SysExecute и вызывать его последовательно (запустили по xExecute - ждем xDone; после этого можно вызывать опять).
    Снимок экрана 2025-03-10 114656.png
    вот так вешает ПЛК почти наглухо ) Почему? Условие выхода из цикла есть же, должно выполняться вроде по логике.

  9. #8149
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,594

    По умолчанию

    Цитата Сообщение от TaPX Посмотреть сообщение
    Снимок экрана 2025-03-10 114656.png
    вот так вешает ПЛК почти наглухо ) Почему? Условие выхода из цикла есть же, должно выполняться вроде по логике.
    Потому что выполнение операции в блоке занимает несколько циклов ПЛК, а WHILE охватывает один цикл.
    Я бы рекомендовал вам начать с простого кода (см. пример работы с СУБД и документацию на библиотеку CmpSysExec) и потом постепенно дорабатывать его.
    Если останутся вопросы - давайте их обсудим в телеграм.

    P.S. - в данном конкретном случае всё становится некорректным в момент помещения вызова блока в WHILE, но на будущее:
    размещение в соседних строках вызова с xExecute := FALSE и xExecute := TRUE не имеет смысла - вы будете постоянно перезапускать блок, не давая ему нормально работать.

  10. #8150

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Потому что выполнение операции в блоке занимает несколько циклов ПЛК, а WHILE охватывает один цикл.
    Я бы рекомендовал вам начать с простого кода (см. пример работы с СУБД и документацию на библиотеку CmpSysExec) и потом постепенно дорабатывать его.
    Если останутся вопросы - давайте их обсудим в телеграм.

    P.S. - в данном конкретном случае всё становится некорректным в момент помещения вызова блока в WHILE, но на будущее:
    размещение в соседних строках вызова с xExecute := FALSE и xExecute := TRUE не имеет смысла - вы будете постоянно перезапускать блок, не давая ему нормально работать.
    так я и начинал с простого - писал сначала одну запись в бд. Теперь вот пробую массив, безуспешно. А как тогда фолсить вызов xExecute правильно?

Страница 815 из 855 ПерваяПервая ... 315715765805813814815816817825 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 3997
    Последнее сообщение: 04.12.2025, 13:05
  2. Панели оператора ИП320. Вопросы и ответы
    от automat в разделе Панели оператора (HMI)
    Ответов: 849
    Последнее сообщение: 16.11.2025, 08:58
  3. ИПП120. Вопросы и ответы
    от Р.Александр в разделе Программируемые реле
    Ответов: 273
    Последнее сообщение: 08.09.2025, 13:21
  4. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  5. Панели оператора СП270. Вопросы и ответы
    от Давидюк в разделе Панели оператора (HMI)
    Ответов: 930
    Последнее сообщение: 15.05.2017, 17:12

Ваши права

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