а можно наглядный пример блока привести :o именно. не могу догнать... или глюкозы мозгу не хватает :rolleyes:
Вид для печати
Вот так нехорошо делать:Есть SEL: out1 := SEL(plcoutbits.0, 0.0, 1.0).Код:IF plcoutbits.0 THEN
out1:=1.0;
ELSE
out1:=0.0;
END_IF
Цитата:
нужно включить выход out5 при PWlo от 1 до 9 а при нуле выключить с задержкой через TOF
Код:VAR
timer: TOF := (PT := T#1s);
END_VAR
timer(IN := PWlo > 0, Q => out5);
В любом варианте хоть с бубном, хоть без для "out1-out4 - 4 "шага" по 100 кВт... Суммарная мощность 500 кВт!"
нужно добавить такой фрагмент
ou1, out2, out3 и out4 должны быть объявлены как BOOL, ведь я полагался на "out1-out4 - 4 "шага" по 100 кВт... Суммарная мощность 500 кВт!", т.е. это дискретные выходы.Код:out1:=(TRUNC(pw1)/100)>=1;
out2:=(TRUNC(pw1)/100)>=2;
out3:=(TRUNC(pw1)/100)>=3;
out4:=(TRUNC(pw1)/100)>=4;
А Вы судя по ошибке "невозможно преобразовать BOOL в REAL" пытаетесь ou1, out2, out3 и out4 объявить как REAL.
не всегда сокращение кода удачное решение, на первой картинке две функции выполняющие одну и ту же задачу разными способами, на второй картинке показано время затраченное на выполнение обеих функций
ЗЫ. Не заметил, что исходные данные были
Т.е. ПЛК 73/63?
Тогда так нужно обойти ошибку
Вложение 17884
Почему не хорошо???
Извините, выдержка из РП:Вы хотите сказать будет работать только 100 кВт... Или я вас не понял?Цитата:
7.3.2 Outputs (модуль выходных устройств)
Модуль выходных устройств (Outputs) отображает значения выходов ПЛК. Мо-
дуль имеет шесть каналов типа Real. В каждый канал из пользовательской программы
записывается состояние выхода, в диапазоне от 0,0 до 1,0.
В зависимости от исполнения ПЛК может быть оснащен следующими выходны-
ми устройствами: э/м реле (Р) или транзисторными ключами (К), симисторными ключа-
ми (С), выходами для управления твердотельными реле (Т), ЦАП «параметр-
напряжение 0..10В» (У), ЦАП «параметр-ток 4…20мА» (И).
Обогреватель ;)
Уже что-то внятнее...
З.Ы. Да ПЛК-73. там 8 выходов (4 реле, 4 транзистора), транзисторные подключены к реле, и тоже стали релейными))
Так и надо было сразу сказать, а то поди догадайся, что за ПЛК у Вас, ведь есть же в программе и дискретные выходные сигналы
mrout1:=TRUE; #1 кВт
mrout2:=TRUE; #2 кВт
mrout3:=TRUE; #2 кВт
mrout4:=TRUE; #5 кВт
mrout5:=TRUE; #10 кВт
mrout6:=TRUE; #10 кВт
mrout7:=TRUE; #20 кВт
mrout8:=TRUE; #50 кВт
Пожалуйста, на верхний вход через ФБ "ИЛИ" подаёте контролируемые переменные, на нижний вход, константу "0", а выход TOF на Q5.
Вложение 17886
Потому что это индусский код. Пять строк вместо одной. Ветвление там, где можно обойтись селектором.Цитата:
Почему не хорошо???