Руководство по Программированию, находится на сайте http://www.owen.ru/uploads/re_plc73_1634.pdf
Загляните в Additional [FIX] и вы найдете там светодиоды.
Вид для печати
Руководство по Программированию, находится на сайте http://www.owen.ru/uploads/re_plc73_1634.pdf
Загляните в Additional [FIX] и вы найдете там светодиоды.
И ещё, кстати, один момент - в Руководстве по эксплуатации (далее РЭ) сказано, что для непосредственного управления ВЭ по сети RS-485, в случае когда ШИМ на ВЭ не предполагается (как раз мой вариант), нужно выставить параметр tphd в НОЛЬ. А в конфигураторе можно выставить только значение 00:01. Конфигуратор вообще не считает возможным установить 0 в этом параметре (см. скриншот). Кто прав - РЭ или конфигуратор?
Вложение 12846
melky, Спасибо - помогло.
Там же разобрался как обрабатывать кнопки на панели.
Скачал библиотеку для работы с LCD - тоже разобрался.
Но есть еще вопросы. В контроллерах MITSUBISHI есть аппаратные переменные M0...M8000 типа boolean. В ОВЕН есть такие, или каждую переменную нужно объявлять? И как ее объявлять чтоб она сохраняла значение после пропадания питания?
См. несколько сообщений выше мой ответ юзеру Boris_K.Цитата:
И как ее объявлять чтоб она сохраняла значение после пропадания питания?
Здравствуйте. Хотела бы спросить у вас, знающих людей. Есть учебная задача: при нажатии кнопки пуск загорается лампа 1, горит 1 сек, гаснет, загорается лампа 2, горит 1 сек гаснет, и так 3 лампы. Затем цикл повторяется в обратную сторону. Я реализовала на CFC: из 3ех таймеров TOF и 3ех генераторов импульса F_TRIG. Пуск организовала R_TRIG далее сигнал поступает на таймер TOF (выход Q у него лампа 1), затем сигнал идет на F_TRIG, с него опять на таймер TOF (выход Q у него лампа 2).. И так для трех ламп.
Это не очень умно и хотелось бы узнать как можно сделать цикл например на ST, а в CFC обойтись 1им таймером. Возможно ли это? Спасибо.
можно с этого начатьКод:VAR_INPUT
start: BOOL;
END_VAR
VAR_OUTPUT
lamp1 : BOOL;
lamp2 : BOOL;
lamp3 : BOOL;
END_VAR
VAR
oldStart: BOOL;
buffer: WORD;
tik: TON;
END_VAR
IF start AND NOT oldStart THEN
buffer.0:=TRUE;
ELSIF NOT start THEN
buffer:=0;
END_IF;
oldStart:=start;
IF tik.Q THEN
buffer:=SHL(buffer,1);
IF buffer>4 THEN buffer:=1; END_IF;
END_IF;
tik(IN:=NOT tik.Q AND start,PT:=T#1s);
lamp1:=buffer.0;
lamp2:=buffer.1;
lamp3:=buffer.2;
Конечно, хватит и одного таймера, потому что в любой момент времени у вас может гореть только 1 лампа. Просто при переходе к следующей лампе "перезаряжаете" таймер. На ST сделать - проще простого, это нормальный язык программирования, сродни Паскалю и С++, лучше делать на нём чем диаграммами, он мощнее и во многом удобнее. Всё что вам нужно для этой задачи - условный оператор. Таймер кстати можно сделать вручную, просто обращаясь к системному времени в ПЛК - это счётчик миллисекунд с момента включения ПЛК (функция TIME). Такой способ потенциально более гибкий.
Кому как, мне проще на CFC
Вложение 12849
Мне так нагляднее. :)
А могли бы Вы свою логику продемонстрировать в кусочке программы? Не очень понимаю "перезарядку" таймера и организацию цикла.
Я представляю горящие лампы массивом в цикле for. Сначала с 1ой лампы по 3ью затем с 3ьей лампы по 1.
Но нужен, видимо, функциональный блок или функция, состоящая из таймера, сдвигового регистра, за счет которой шло бы переключение во времени.
Как это сделать - не понимаю
Посмотрите пример уважаемого Capzapа. Там все это есть. Переменная buffer содержит 16 бит (это вместо массива). Используются первые 3 бита (buffer.0, buffer.1, buffer.2). Цикл организовывать не надо, контроллер и так в цикле работет. Также используется функция SHL(), которя сдвигает биты переменной влево.
Под "Перезарядкой" таймера имелось в виду отключить и снова включить вход таймера IN, после того, как он отработает. В примере Capzapа это реализовано так: инвертированный выход с таймера подается ему же на вход, получается такой простенький генератор импульсов.