Братцы.... СПАСИБО БОЛЬШОЕ!!!! Есть теперь с чем поработать!!! :)
Вид для печати
Братцы.... СПАСИБО БОЛЬШОЕ!!!! Есть теперь с чем поработать!!! :)
Нужна помощь!
Есть переменная типа REAL, которая изменяется со временем по определенному закону, по происшествии заданного интервала времени сбрасывается в 0 и вновь меняется.
Требуется каждую минуту записывать значение этой переменной так, чтобы после сброса на ноль сохранилась последняя запись.
Как это реализовать?
Это должна быть одна переменная или массив из переменных после каждого сброса на ноль?
если одна переменная то можно так:
t1(in:=TRUE, pt:=T#60s);
IF t1.Q AND a1<>0 THEN
b1:=a1;
t1(in:=FALSE);
ELSIF a1=0 AND fl THEN
c1:=b1;
fl:=FALSE;
END_IF
где a1 - заданная переменная типа real, b1 - переменная типа real, в которую записывается значения каждую минуту, t1 - таймер TON, с1 - переменная типа real, в которую записывается последнее значение перед сбросом на ноль переменной a1, fl - флаг, по которому происходит запись в переменную c1, используется если необходимо сохранить только первое значение перед сбросом на ноль, при объявлении fl:bool:=true;, если необходимо сохранить последнее значение, то не используйте этот флаг, удалите соответствующие строки.
если нужно записать массив значений, то как-то так:
t1(in:=TRUE, pt:=T#60s);
IF t1.Q AND a1<>0 THEN
b1:=a1;
t1(in:=FALSE);
ELSIF a1=0 THEN
ar[i]:=b1;
i:=i+1;
ELSIF i=11 THEN
i:=0;
END_IF
где a1 - заданная переменная типа real, b1 - переменная типа real, в которую записывается значения каждую минуту, t1 - таймер TON, ar - массив из переменных типа real, в которые записывается последнее значение перед сбросом на ноль переменной a1, i - указатель на элемент массива при записи.
при написании программы блоки переименовываются только в ручную хотя должен быть ассистент ввода подскажите как его установить?
Вы о чём? Вызываемый по F2 ассистент ввода во втором кодесисе позволяет только вводить уже объявленное, а не переименовывать. Возможностей переименования символов я в этой версии не припомню (в третьей вроде есть).Цитата:
при написании программы блоки переименовываются только в ручную хотя должен быть ассистент ввода подскажите как его установить?
спасибо вот то что надо задача была установленный блок переименовать
Добрый день. Изучаю в свободное время плк110-60 и кодесис естественно.
Купили модули аналогового ввода/вывода му110-8и и мв110-8а.
Согласно РЭ и видео из интернетов подключил и настроил, но работает у меня только AI, на AO не моргает индикатор rs485? обмена нет.
Идея простая, на 1 вход подцеплен пт100, его показания читаются и в программе видны, дальше хочу вывести с 1 выхода на ИТП1 сигнал.
Программу приложил. Прошу помощи, что нет так.
ps в конфигурации плк? где я добавил модбас мастер попеременно моргают оба нужных мне адреса (last adress) 15 и 16. last error 81
acs.ufk - Почему у вас на выходе REAL ?, у 8И по РЭ INT16 от 0 до 1000, единица измерения в % 0,1%, следователь 1000*0,1 = 100%
И не обязательно вбивать регистры в виде 0000, достаточно 0.
Всем привет!
После выполнения арифметических действий результат имеет дробное значение с пятью знаками после запятой. Каким образом убрать дробные значения??? Программирование ведётся на CFC. Спасибо!