Форум программистов, компьютерный форум, киберфорум
Контроллеры PLC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/41: Рейтинг темы: голосов - 41, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 25.01.2021
Сообщений: 3

[CoDeSys] Перезапустить таймер TON

25.01.2021, 11:38. Показов 10288. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться с таймером (пытаюсь сделать таймер время работы).
Он повторятся бесконечно, если убрать Timer3 (); то оно выполняется нормально но один раз за пуск программы.
Codesys 2.3 язык ST.
Code
1
2
3
4
5
6
7
E := TRUE;
Timer3 ();
IF E = TRUE THEN Timer3 (IN := TRUE , PT := T#15s);
END_IF
IF Timer3.Q = TRUE THEN E := FALSE;
Timer3.IN := FALSE;
END_IF
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.01.2021, 11:38
Ответы с готовыми решениями:

[CoDeSys] На языке LD поставить параллельно обмотке таймер TON (включить таймер по условию)
Помогите поставить параллельно обмотке в CoDeSys таймер TON (как это сделать?)

Не останавливается таймер TP (ST, Codesys 2.3)
Здравствуйте. Помогите разобраться с таймером, знающие люди. Никак не осилю принцип работы. Добавил таймер в пустой проект -...

Перезапустить таймер
Доброе время суток. Подскажите пожалуйста, как перезапустить таймер? Есть label18 в котором идет отсчет до срабатывания процедуры ...

5
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
25.01.2021, 12:16
Nikil, таймер должен вызываться постоянно.
сброс таймера производится записью false в in

Как то так
Pascal
1
2
e := not timer.q;
timer(in := e, PT := T#15s);
0
0 / 0 / 0
Регистрация: 25.01.2021
Сообщений: 3
25.01.2021, 15:15  [ТС]
Когда прописываю
Code
1
2
    E := NOT Timer.Q
    Timer ( IN := E , PT := T#15s )
то оно выполняется только один раз за всю работу программы
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
25.01.2021, 15:42
Nikil, покажите полный код.
0
0 / 0 / 0
Регистрация: 25.01.2021
Сообщений: 3
26.01.2021, 09:53  [ТС]
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
PROGRAM PLC_PRG
VAR
 
    T: REAL; (*Температура*)
    TP1: REAL; (*Верхний порог температуры *)
    TP2: REAL; (*Нижний порог температуры *)
    Timer1: TON; (*Таймер вентилятора 1*)
    D: BOOL;  (* запуск вентилятора 1*)
    Timer4:TON ; (* Таймер закрытие клапана 1*)
    Timer3: TON; (* Таймер открытие клапана 1*)
    E: BOOL; (*Запуск открытия клапана1*)
    K: BOOL; (* Запуск закрытие клапана1*)
    Timer0: TON;
    Timer00: TON;
END_VAR
TP1 := 40;
TP2 := 20;
 
(* Имитация температурных переходов *)
Timer0 ();
IF T = 0  THEN  Timer0 (IN := TRUE , PT := T#30s);
END_IF
IF Timer0.Q = TRUE THEN T := 40 ;
Timer0.IN := FALSE;
END_IF
Timer00 ();
 IF T = 40  THEN  Timer00 (IN := TRUE , PT := T#60s);
END_IF
IF Timer00.Q = TRUE THEN T := 0 ;
Timer00.IN := FALSE;
END_IF
(**)
Timer1 ();
IF T >= TP1  THEN  Timer1 (IN := D , PT := T#5s);
END_IF
IF Timer1.Q = TRUE THEN D := TRUE ;
Timer1.IN := FALSE;
END_IF
IF T <= TP2 THEN D := FALSE;
END_IF
 IF T >= TP1  THEN  Timer2 (IN := E , PT := T#30s);
END_IF
IF Timer2.Q = TRUE THEN E := TRUE ;
Timer2.IN := FALSE;
END_IF
Timer3 ();
E := NOT Timer3.Q;
IF E = TRUE  THEN Timer3 (IN := E , PT := T#5s);
END_IF
IF Timer3.Q = E THEN E := FALSE;
Timer3.IN := FALSE;
END_IF
IF T <= TP2 THEN K := TRUE;
END_IF
Timer4 ();
K := K NOT Timer4.Q;
IF K = TRUE THEN Timer4 (IN := K , PT := T#3s);
END_IF
IF Timer4.Q = TRUE THEN K := FALSE;
Timer4.IN := FALSE;
END_IF
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
26.01.2021, 18:50
Nikil, как то так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
PROGRAM PLC_PRG
 
VAR
    T: REAL; (* current temp *)
    T_lim_up: REAL; (* temp up limit *)
    T_lim_lo: REAL; (* temp lo limit *)
    Timer1: TON; (* cooler 1 timer *)
    D: BOOL; (* cooler 1 start *)
    Timer2: TON; (* overheat timer *)
    Timer3: TON; (* valve 1 open timer *)
    Timer4: TON; (* valve 1 close timer *)
    E: BOOL; (* valve 1 open *)
    K: BOOL; (* valve 1 close *)
    Timer0: TON;
    Timer00: TON;
END_VAR
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
T_lim_up := 40;
T_lim_lo := 20;
 
(* simulate temp change *)
Timer0(IN := (T = 0), PT := T#30s);
IF Timer0.Q THEN
    T := 40 ;
END_IF
 
Timer00(IN := (T = 40), PT := T#60s);
IF Timer00.Q THEN
    T := 0 ;
END_IF
 
(*cooler*)
Timer1(IN := (T >= T_lim_up), PT := T#5s);
IF Timer1.Q THEN
    D := TRUE ;
END_IF
IF T <= T_lim_lo THEN
    D := FALSE;
END_IF
 
(* open valve *)
Timer2 (IN := (T >= T_lim_up) , PT := T#30s);
IF Timer2.Q = TRUE THEN
    E := TRUE ; (*open start*)
END_IF
 
Timer3 (IN := E , PT := T#5s);
IF Timer3.Q = E THEN
    E := FALSE; (* open done *)
END_IF
 
(* close valve *)
IF T <= T_lim_lo THEN
    K := TRUE; (* close start *)
END_IF
 
Timer4 (IN := K , PT := T#3s);
IF Timer4.Q THEN
    K := FALSE; (*close done*)
END_IF
Не проверял логику, но в CodeSys 2.3 оно компилируется.

P.S.: Как по мне это нагляднее выглядело бы в LD
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.01.2021, 18:50
Помогаю со студенческими работами здесь

Как перезапустить таймер?
Здравствуйте, есть простой 20-ти секундный таймер, который выглядит как убывающая полоса. Как сделать его перезапуск по нажатию кнопки? ...

Как перезапустить таймер
Здравствуйте!! А не мог бы кто-нибудь подсказать, что произойдет с таймером, если выполнить Timer.Start(), когда таймер уже запущен...

как написать таймер в codesys?
подскажите пожалуйста, как написать таймер в codesys?

Как перезапустить таймер T0 на 2313?
Подскажите пож, как произвольно перезапускать таймер T0 на tiny2313? просто PSR10_bit:= 1; не помогает.

CodeSys. Таймер "До нового года осталось"
Доброго времени суток. Подскажите пожалуйста как написать на codeSys Таймер отсчета времени до нового года: до нового года осталось 40дней...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru