Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 11 из 11

Тема: Профиль уставок в CoDESYS

  1. #11

    По умолчанию

    2 грубых ошибки.
    Программа всегда выполняется в рабочем цикле ПЛК. Значения входов/выходов обновляются между циклами, аналогично имеют право работать и стандартные МЭК таймеры. Т.е. таймер в циклах while или for ждать нельзя. Это надо делать просто в рабочем цикле.

    В примере внутри цикла в 1 единственный таймер засовываются все уставки сразу. Реально таймер будет работать после окончания всего этого while.
    Такая конструкция имела бы право на жизнь, если бы нужно было сделать тучу таймеров работающих параллельно. Но тогда проще сразу делать массив таймеров, а не уставок.

    В данном случае, я бы написал простенькую программку на SFC. В первом шаге держим время - ставим атрибут шага (см. мануал) минимальное время = соотв-й элемент таблицы. Во втором шаге делаем i+1 и идем на первый шаг. Все переходы тупо в TRUE. И все.

    Либо:

    Tim1(in:=1, PT:=Timers [i]);
    yst_temp:= ystavki [i];

    IF Tim1.q THEN
    Tim1 (in:=0);
    IF i >= 2 THEN i:=0; ELSE i:=i+1; END_IF
    END_IF
    Последний раз редактировалось Игорь Петров; 05.08.2009 в 17:17.

Страница 2 из 2 ПерваяПервая 12

Ваши права

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