Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: язык St

  1. #1

    По умолчанию язык St

    Всем доброго дня! Почитав форум и попробовав свои силы в CoDeSys понял, что хоть язык ST и позволяет реализовывать циклы repeat, while и т.д., но, как правило, их использование приводит к зависанию контроллера. Может кто-нибудь разъяснит мне каким образом реализуется каждый из циклов на примере какого-нибудь простого примера. Заранее благодарю. (Прошу сильно не материть - я не программист, я только учусь )

  2. #2

    По умолчанию

    а зачем конкретно вам нужны эти циклы? обрисуйте задачу.

  3. #3

    По умолчанию

    Задача примерно такая: необходимо включать и отключать насос в зависимости от уровня воды в резервуаре. Видимо я ещё не перестроил мозги и описываю задачу примерно так:
    while уровень<2 do
    насос:=true;
    end_while;
    if уровень>9 then
    насос:=false;
    end_if;
    понимаю, что где-то что-то не так, вот и хочу разобраться как лучше реализовывать циклы в CoDeSys...

  4. #4

    По умолчанию

    Цитата Сообщение от freeon Посмотреть сообщение
    Задача примерно такая: необходимо включать и отключать насос в зависимости от уровня воды в резервуаре. Видимо я ещё не перестроил мозги и описываю задачу примерно так:
    while уровень<2 do
    насос:=true;
    end_while;
    if уровень>9 then
    насос:=false;
    end_if;
    понимаю, что где-то что-то не так, вот и хочу разобраться как лучше реализовывать циклы в CoDeSys...
    подключите util.lib
    HYST_PUMP:HYSTERESYS;
    HYST_NASOS(in:=level,low:=2,high:=9,OUT=>pump);
    Часто задаваемые вопросы по кодесис
    1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
    2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie

  5. #5

    По умолчанию

    хм, спасибо за ответ. попробую.

  6. #6

    По умолчанию

    Или по шагам, без стандартного блока, как учебный пример.

    VAR
    Pump_ON: BOOL
    END_VAR

    if Pump_ON then
    if level > 9 then
    Pump_ON := false;
    OUT:= false;
    END_IF;
    ELSE
    if level < 2 then
    Pump_ON := true;
    OUT:= true;
    END_IF;
    END_IF;

    Главное, при переходе от классического программирования, запомните, запишите большими буквами, и т.п. - цикл "крутит" для Вас сам ПЛК!, не пытайтесь в него вмешаться!

  7. #7

    По умолчанию

    спасибо за внимание, кое что для себя прояснил.

  8. #8

    По умолчанию

    Почитав форум и попробовав свои силы в CoDeSys понял, что хоть язык ST и позволяет реализовывать циклы repeat, while и т.д., но, как правило, их использование приводит к зависанию контроллера.
    Это что правда?

  9. #9
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    нет,это все нормально работает и зависит только от организации циклов. если условия приведут к бесконечному циклу, то плк перезагрузится.

  10. #10

    По умолчанию

    Очевидно, что да. В CoDeSys несколько по иному реализуются циклы, поскольку основной цикл крутит сам ПЛК.

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

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