-
Профиль уставок в CoDESYS
Наша задача такая чтобы уставки (например температуры) менялись во времени самостоятельно. То есть например первый час было одно значение, потом оно поменялось на другое, потом через 2 часа на 3 значение. И это чтобы делал контроллер самостоятельно.
-
ну и меняй в контроллере по таймеру значение переменной...
-
Знаете нам хотелось бы сделать это в визуализации в виде таблички, где напротив значения уставки стояло время с которое оно должно длиться. И чтобы это все можно было менять во время работы контроллера.
-
Возможно ли подставлять в заданиях таймера в строке t#20s вместо 20 - имя переменной или маcсива, например t#mas[i]s
-
Прблем нет. Присвойте значениям температур в визуализации значения в контроллере. (См. справку в среде программирования конфигурирование элементов в визуализации)
Можно прямо с экрана как вводить или присваивать выбранные из таблиц значения переменнх, так и просматривать текущие значения.
-
На самом деле проблема состоит не в том чтобы в визуализации менять или отображать значение переменной (это то мы сделали без проблем). А именно создать таблицу с уставками которые будут менять через интервал времени. И проблема в том чтобы можно было в визуализации меня значение длительности таймера. Потому что не понятно как подставлять в t#20s вместо 20 (ну может быть любое другое число) подставить переменную (которую можно будет задавать прямо из визуализации).
-
Преобразовывайте к примеру 20 из визуализации из int в time внутри программы и присваиваейте полученное значение, через косвенную адресацию полученное значение таймеру.
Например А-уставка таймера
В-значение в визуализации, пусть =20
А:=TIME_TO_INT(B)
получите время А=T#20ms
если нужны секунды, то умножте на 1000.
-
Спасибо большое за данный совет, так действительно мы и будем делать.
-
Вот еще один вопрос созрел, а как можно будет заполнять массив из визуализации.
Хотелось бы просто профиль уставок сделать с использованием массива, где каждому значению уставок соотвестововало время таймера.
А можно ли вообще поставить таймер в цикл, где с каждым новым кругом будет новое значение уставки времени взятое из массива.
Последний раз редактировалось DimaSik; 27.07.2009 в 09:00.
-
Хотелось чтобы было как то вот так вот:::
ystavki [0]:=35;
ystavki [1]:=40;
ystavki [2]:=45;
Timers [0]:= t#45s
Timers [1]:= t#50s
Timers [2]:= t#55s
i:=0
While
I<=2
DO
Tim1(in:=1, PT:=Timers [i];
q:=tim.q;
IF
q=0
THEN
yst_temp:= ystavki [i];
tim1 (in:=0, PT:=Timers [i]);
ELSE
i:=i+1;
END_IF
END_WHILE
Можете сказать в чем ошибка, или так вообще делать нельзя???
Просто хотелось бы это сделать через циклы и массивы.
Последний раз редактировалось DimaSik; 27.07.2009 в 14:05.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума