Тут не только x>=x0 нужно проверить, а вычислить значение Y.
Так должно заработать:
(X:=-100500, Y:=Y1),
(X:=X1, Y:=Y1),
(X:=X0, Y:=Y0),
(X:=X2, Y:=Y2),
(X:=100500, Y:=Y2)
Вид для печати
Проще сделать совсем другую функцию
Вложение 26412 Вложение 26413Код:FUNCTION EDWARD : REAL
VAR_INPUT
X0: REAL;
Y0: REAL;
X1: REAL;
Y1: REAL;
X2: REAL;
Y2: REAL;
x: REAL;
END_VAR
VAR
a: REAL;
b: REAL;
c: REAL;
d: REAL;
END_VAR
IF x < X1 THEN EDWARD:= Y1;
ELSIF x > X2 THEN EDWARD:= Y2;
ELSE
a:= X1;
b:=X0;
c:=Y1;
d:=Y0;
IF x >= X0 THEN
a:= X0;
b:=X2;
c:=Y0;
d:=Y2;
END_IF
EDWARD:=d - (b - x) * (d - c) / (b - a);
END_IF
ЗЫ.
Если использовать функцию с таблицей, то достаточно задать только три точки
(X:=X1, Y:=Y1),
(X:=X0, Y:=Y0),
(X:=X2, Y:=Y2),
Потому, что в самой функции уже есть в самом начале:
Код:(*Обрезание графика для крайних точек*)
IF IN<=pt^[0].X THEN
MyGraf_p:=pt^[0].Y;
ELSIF IN>=pt^[N-1].X THEN
MyGraf_p:=pt^[N-1].Y;
Функцию для Эдуарда можно даже упростить,
учитывая, что это ФУНКЦИЯ, а не ФБ выбросил промежуточные переменные
Код:FUNCTION EDWARD : REAL
VAR_INPUT
X0: REAL;
Y0: REAL;
X1: REAL;
Y1: REAL;
X2: REAL;
Y2: REAL;
x: REAL;
END_VAR
VAR
END_VAR
IF x < X1 THEN EDWARD:= Y1;
ELSIF x > X2 THEN EDWARD:= Y2;
ELSE
IF x >= X0 THEN
X1:= X0;
X0:= X2;
Y1:= Y0;
Y0:= Y2;
END_IF
EDWARD:=Y0 - (X0 - x) * (Y0 - Y1) / (X0 - X1);
END_IF
Спасибо, очень интересно. Будем изучать.:)
Какой по умолчанию интервал у PLC_PRG? ПЛК110
Здравствуйте.
Помогите, пожалуйста.
Codesys 3.5.7.4.
Необходимо ввести уставку в окне проекта.
Создаю элемент.>Конфигурация ввода>OnMouseClick>Конфигурация>Записать переменную>>
Открывается окошко "Записать переменную".
Только нет полей для задания переменной, поле "тип ввода" - урезанное, есть поля "мин", "макс", "заголовок диалога".
Не могу понять где косяк.
В примерах с сайта Овена в созданных элементах - все работает, при попытке создания нового элемента - такая же петрушка.
Помогите разобраться или посоветуйте, как по другому вводить Real с панели.
Спасибо
Вот эти две настройки проверьте:
Вложение 26540
Вложение 26541
Вложение 26547
Вложение 26548
А у меня вот так.
Голову сломал.
Или я дурак или лыжи не едут