PDA

Просмотр полной версии : СПК 110 (последней модели) + котроллер на RS485 (ТАЙМЕР ЗАПУСКА)



Corsair
24.09.2019, 11:00
Доброго дня!
у меня к СПК 110 подключен контроллер (с исполняемыми механизмами), каким образом мне задать включение механизма
с работой по таймеру, те при определенных условиях включается и работает к примеру 3 минуты.
ни где не могу найти нормальный пример кода что бы понять сам принцип работы с таймерами.

melky
24.09.2019, 11:24
котроллер на RS485 (ТАЙМЕР ЗАПУСКА) - вот это смущает, очень вразумительная информация.....

Corsair
24.09.2019, 11:56
может у кого просто есть готовый блок уже реализованный? что бы толком понять...
к спк моему подключен контроллер уровня, в нем есть 3 реле, мне нужно что бы при срабатывание критической отметки в баке срабатывала переменная
которая привязана к одному из реле

melky
24.09.2019, 12:04
У вас реле (блок из 3-х реле) подключен по RS485 ?
Что за реле, ссылки на документацию и так далее.

Вам надо, когда сработает в СПК таймер по RS485 отправить команду на включение Н-ного реле, когда таймер сбросится отправить команду на его отключение.

А вот как это делать можно будет понять только зная что у вас за реле...

В качестве примеров поищите управление выходами модуля вывода типа МX110

Corsair
24.09.2019, 12:34
У вас реле (блок из 3-х реле) подключен по RS485 ?
Что за реле, ссылки на документацию и так далее.

Вам надо, когда сработает в СПК таймер по RS485 отправить команду на включение Н-ного реле, когда таймер сбросится отправить команду на его отключение.

А вот как это делать можно будет понять только зная что у вас за реле...

В качестве примеров поищите управление выходами модуля вывода типа МX110

вообще у меня контроллера уровня ОРДИНАТОР-ЩА, к СПК110 я его цепляю через 485. У этого контроллера уровня есть 3 реле для запуска механизмов (насосов), кторые можно включать и выключать через команды с СПК (это я делаю, все работает), но на одну из реле мне нужно включение такое -
уровень достигает максимума в бочке, и реле включает насос на 3-4 минуты

melky
24.09.2019, 13:02
Ну так я и говорю же, вам надо по таймеру отправлять команду. Одну на включение при запуске таймера, а вторую на отключение при его отключения.

Например R-Trig после таймера ТР, переменную включит и по изменению она улетит на реле, а F-Trig переменную выключит

Corsair
24.09.2019, 13:09
может есть пример самого кода, такого блока? что бы наглядно было.... просто с таймерами ни разу не работал и вообще не понимаю... не могу найти толковый пример что бы разобрать его и самому проверить все дальше

Corsair
24.09.2019, 13:22
IF level_4 = TRUE THEN
T2(IN:= FALSE, PT:= T#50S, Q=> , ET=> );
T2(IN:= TRUE, PT:= T#50S, Q=> , ET=> );
Reley_1:=TRUE;
END_IF
T2();
IF T2.Q OR Reley_1 THEN
IF level_4 = FALSE THEN
T2(IN:= FALSE, PT:= T#50S, Q=> , ET=> );
Reley_1:= FALSE;
END_IF
END_IF

melky
24.09.2019, 13:29
в ST вообще не силен. Если на CFC то это выглядит просто таймер TP и на его Q параллельно висят R-Trig и F-Trig импульсами которых вы взводите и сбрасываете

И так понимаю делать нельзя
IF level_4 = TRUE THEN
T2(IN:= FALSE, PT:= T#50S, Q=> , ET=> );
T2(IN:= TRUE, PT:= T#50S, Q=> , ET=> );

Вы на каждом цикле будете сбрасывать таймер и снова взводить, он у вас никогда не выключится, если это ТР

Corsair
24.09.2019, 13:33
используя этот код у меня работа реле срабатывает, но таймер не работает

Corsair
24.09.2019, 13:33
мне вот это в ST нужно реализовать

Corsair
24.09.2019, 13:52
мне как раз на CFC еще больше не понятно чем на ST

melky
24.09.2019, 13:52
Читайте в справке работу таймера, TP имеет встроенный детектор фронта и начинает отсчет заново после каждого фронта сигнала на IN входе.

с ST я не подскажу, редко его использую и по большей части в чужих примерах копаюсь. Более опытные подскажут быстрее
Ну если вам на ST лучше понятнее, то почему вы таймер на каждом цикле дергаете с начала ? :)

Corsair
24.09.2019, 14:42
IF level_4 AND NOT T2.Q THEN
T2.IN:= TRUE;
T2.PT:=T#3m;
ELSIF NOT level_4 THEN
T2.IN:= FALSE;
T2.PT:=T#0s;
END_IF;
T2(IN:= T2.IN, PT:= T2.PT, Q=>Reley_1);


Спасибо! пробую сейчас но реле_1 при включение уровня_4 не срабатывает, не включаеться

melky
24.09.2019, 15:04
А какого года ваш Ординар ?

Таблица 5.9 Карта распределения памяти прибора Ординар
Addr Type Name Order Size rw
Coils - std modbus functions 1 & 5 (bit addressing mode)
0 array of BIT relay[3] 3 rw

вам нужны функции 1 и 5 Modbus для управления реле, если прибор после 2010 года выпуска.

Corsair
24.09.2019, 15:07
А какого года ваш Ординар ?

в этом году его выпустили, а производство его очееееень давно идет

melky
24.09.2019, 15:15
Значит читайте выше, просто в документации указано, что до 2010 года были только пользовательские функции Modbus, никаких стандартных не было.
После 2010 года добавили стандартные функции. Наладьте сперва связь с прибором, чтобы кнопкой с экрана включать и выключать реле, потом уже таймер будете прикручивать.

Corsair
24.09.2019, 15:17
Значит читайте выше, просто в документации указано, что до 2010 года были только пользовательские функции Modbus, никаких стандартных не было.
После 2010 года добавили стандартные функции. Наладьте сперва связь с прибором, чтобы кнопкой с экрана включать и выключать реле, потом уже таймер будете прикручивать.

так это у меня сделано уже, вся логика прибора у меня уже на экране. Те я включаю реле, выключаю, при срабатывание критического уровня у меня через СПК дается сигнал на включение реле

Corsair
24.09.2019, 15:23
IF level_4 AND NOT T2.Q THEN
T2.IN:= TRUE;
T2.PT:=T#3m;
ELSIF NOT level_4 THEN
T2.IN:= FALSE;
T2.PT:=T#0s;
END_IF;
T2(IN:= T2.IN, PT:= T2.PT, Q=>Reley_1);


тут с этим вроде разобрался, но получаеться что реле срабатывает после 3х минут срабатывания датчика...
вопрос в следующем:
у меня получается так что датчик сработал -> включился насос (реле 1) - > датчик отключился (так как уровень упал), а насос еще после выключения работает какое то время, что бы уровень примерно был между 3 и 4 отметкой