Главная   Downloads   Разное  
FAQ     Поиск   Регистрация   Вход 
Текущее время: Чт мар 28, 2024 22:55

Часовой пояс: UTC + 3 часа (Russia: MSK)




Начать новую тему Ответить на тему  [ 16 сообщений ]  На страницу 1, 2  Вперёд
Автор Сообщение
 Заголовок сообщения: Таймер на ST?
СообщениеДобавлено: Вс сен 29, 2013 19:43 
Не в сети

Регистрация: Чт сен 26, 2013 13:01
Сообщения: 2
Добрый вечер. Помогите, пожалуйста, разобраться как функция TIMX работает на ST. Вызываю ее: TIMX(in1, timer1, 500). Таймер работает, но как узнать, что таймер сработал?

UPD: Или мы можем только вызывать его, а обрабатывать событие необходимо на LD?


В начало
 Профиль  
 
 Заголовок сообщения: Re: Таймер на ST?
СообщениеДобавлено: Пн сен 30, 2013 13:39 
Не в сети

Регистрация: Пт авг 09, 2013 08:20
Сообщения: 36
Честно говоря, сходу тоже не понял, как через ST обратиться к флагу таймера. Возможно, нужно завести флаг вашего таймера в ваш функциональный блок снаружи (т.е. например T0001 подать на вход типа BOOL), и работать внутри ФБ с этим входом.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Таймер на ST?
СообщениеДобавлено: Пн сен 30, 2013 15:00 
Не в сети

Регистрация: Чт сен 26, 2013 13:01
Сообщения: 2
Разобрался. Необходимо контроллировать состояние переменной "имя_таймера.CF".
Вот пример, который мне дали в омроне:
Код:
TIMX(Inp_1, del_tim, 500);
IF del_tim.CF = TRUE THEN pump:= 40;
ELSE pump := 0;
END_IF;


В начало
 Профиль  
 
 Заголовок сообщения: Re: Таймер на ST?
СообщениеДобавлено: Чт ноя 06, 2014 16:19 
Не в сети
Аватара пользователя

Регистрация: Чт ноя 06, 2014 15:41
Сообщения: 12
У меня этот пример не работает. Камень преткновения - как задать адрес таймера.
Если объявить в локальном или глобальном списке переменных del_tim как TIMER по адресу Т0300 (или без адреса) получаю ошибку: "Cимвол del_tim в программе SFC/ST имеет недопустимый тип данных (TIMER или COUNTER)". Кстати если только объявить в ST, но не использовать - ошибок нет.

Если объявлять не как TIMER, а например как BOOL (встретил на форуме пост о подобном раздвоении личности таймера) то получаю ошибку "Невозможно выполнить преобразование из BOOL {или любой другой тип данных} в TIMER".

Галочка BCD или нет нынче таймеры - влияния не оказывает.
ПЛК СJ1M CPU12. СX-Programmer 9.52.

Кто умеет пользоваться таймерами в ST, внутри FB и в задачах? Может выложите хоть простейший пример, который компилируется без ошибок.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Таймер на ST?
СообщениеДобавлено: Пт ноя 07, 2014 10:19 
Не в сети
Аватара пользователя

Регистрация: Пт сен 22, 2006 13:17
Сообщения: 175
Откуда: Novokuznetsk
Как-то баловался с таймерами.
См. прикрепленный архив, может пригодится.

Пример 1:
Таймер, реализованный функциональным блоком, в программе на ST.

Пример 2:
ФБ внутри ФБ.
Программер ругается на неизвестную ошибку при компиляции, если "TBit1" и "TBit2" сделать IN/OUT, поэтому ввел переменные "_T1" и "_T2".
Есть ограничения (из хелпа): "The maximum of eight function blocks can be nested including a FB instance call in a main ladder program."
Попытался вставить 9 екземпляров, компилятор не ругался.


У вас нет необходимых прав для просмотра вложений в этом сообщении.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Таймер на ST?
СообщениеДобавлено: Пт ноя 07, 2014 18:38 
Не в сети
Аватара пользователя

Регистрация: Чт ноя 06, 2014 15:41
Сообщения: 12
Спасибо. Хоть какой-нибудь способ обойти кривизну омроновского ST. Хотя и очень затратный. Добавить еще один экземпляр FB Timer и вызвать его из ST = ~100 шагов.
Добавить контакт и таймер в ладдере = 4 шага.

(Памяти у меня осталось еще ~1500 шагов на все доработки).

А работать с таймером из ST как в примере выше, через TIMX() хоть кому-нибудь удавалось?


В начало
 Профиль  
 
 Заголовок сообщения: Re: Таймер на ST?
СообщениеДобавлено: Пт ноя 07, 2014 19:36 
Не в сети
Аватара пользователя

Регистрация: Пт сен 22, 2006 13:17
Сообщения: 175
Откуда: Novokuznetsk
porada писал(а):
А работать с таймером из ST как в примере выше, через TIMX() хоть кому-нибудь удавалось?


Вроде это на CJ2


В начало
 Профиль  
 
 Заголовок сообщения: Re: Таймер на ST?
СообщениеДобавлено: Сб ноя 08, 2014 16:06 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
TIMX в ST на CJ1 работает только внутри ФБ.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Таймер на ST?
СообщениеДобавлено: Пн ноя 10, 2014 11:13 
Не в сети
Аватара пользователя

Регистрация: Чт ноя 06, 2014 15:41
Сообщения: 12
Пусть бы и только внутри FB, но увы независимо FB или нет, получаю ошибку
"Cимвол del_tim в программе SFC/ST имеет недопустимый тип данных (TIMER или COUNTER)"

Кстати при переделке программы под СJ2M ошибки пропадают, хоть FB хоть нет (жаль мне не на чем попробовать корректно ли работают эти TIMX внутри ST)

Но тогда возникает вопрос:
Где в документации четко написано, что таймеры в ST работают только в CJ2?
И почему CX-Programmer ругается не на саму инструкцию TIMX которая похоже недопустима для ST под CJ1, а на то что я якобы неправильно подсовываю ей аргумент или завожу локальную переменную?


В начало
 Профиль  
 
 Заголовок сообщения: Re: Таймер на ST?
СообщениеДобавлено: Пн ноя 10, 2014 11:40 
Не в сети
Аватара пользователя

Регистрация: Пт сен 22, 2006 13:17
Сообщения: 175
Откуда: Novokuznetsk
porada писал(а):
Но тогда возникает вопрос:
Где в документации четко написано, что таймеры в ST работают только в CJ2?


Help -> Structured Text -> Structured Text Functions -> Timer/Counter Functions
перед таблицей текст "The following functions can be used with CJ2-series CPU Units."


В начало
 Профиль  
 
 Заголовок сообщения: Re: Таймер на ST?
СообщениеДобавлено: Пн ноя 10, 2014 12:24 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
Олег писал(а):
TIMX в ST на CJ1 работает только внутри ФБ.

Пробовал, получалось (может чё путаю), а сейчас повторить не могу, матерится на тип данных.
Цитата:
Добавить еще один экземпляр FB Timer и вызвать его из ST = ~100 шагов.
Добавить контакт и таймер в ладдере = 4 шага.
(Памяти у меня осталось еще ~1500 шагов на все доработки).


Создайте задачу на ладере, напихайте туда нужные таймеры,
условие включения и результат - биты с глобальными именами.
Используйте эти биты в ST.
Места точно займёт меньше чем на каждый таймер экземпляр ФБ создавать.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Таймер на ST?
СообщениеДобавлено: Вт ноя 11, 2014 16:43 
Не в сети
Аватара пользователя

Регистрация: Чт ноя 06, 2014 15:41
Сообщения: 12
Делать таймеры в другом месте на ладдере я уже и сам догадался, только криво это все ужасно, и к тому же для FB ST не годится - все экземпляры будут юзать один и тот же таймер.

По поводу CJ2-only таймеров - побочный вопрос: чем объясняется что и у CJ1 и у СJ2 есть инструкция TIMX, но внутри ST она работает только у CJ2?
Это что - у омронов внутри интерпретатор? или СХ-программер все же компилирует до уровня асссемблера (мнемоник) и их загружает? или TIMX(550) для ладдера и TIMX для ST (а так же и все остальные: AND XOR MUL COS ... ) - это совсем разные инструкции? И внутри ST используется некая TIMX(2550) ? Отчасти эта гипотеза подтверждается тем что стандартный COS(461) обрабатывает только 32-битный float, а внутри ST COS() может и с 64-битным float работать.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Таймер на ST?
СообщениеДобавлено: Вт ноя 11, 2014 17:38 
Не в сети
Аватара пользователя

Регистрация: Сб сен 30, 2006 14:07
Сообщения: 763
Откуда: Москва
Делаю так.
(* Генератор импульсов 0.1 секунда*)
if P_0_1s > A then
ГИ_0_1с:= true;
else ГИ_0_1с:= false;
end_if;
A:=P_0_1s;
Получаю фронт каждые 0.1 сек.
А потом использую счетчики
(*Включение КМ2*)
if КМ1 and ГИ_0_1с and not КМ2 then
СТ_05сек:=СТ_05сек+1;
end_if;
if СТ_05сек > 5 then
КМ2:=true;
СТ_05сек:=0;
end_if;


В начало
 Профиль  
 
 Заголовок сообщения: Re: Таймер на ST?
СообщениеДобавлено: Ср ноя 12, 2014 09:26 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
CJ1 вроде как давно забросили, завис на версии 4.0 уже хрен знает сколько лет.
СJ2 намного интереснее, а сравнивать цену нужно с учётом дополнительной памяти для FB. Фактически в СJ2M-CPU11 влазит больше чем в СJ1M-CPU13
Зачем покупать устаревший контроллер для новых проектов?


В начало
 Профиль  
 
 Заголовок сообщения: Re: Таймер на ST?
СообщениеДобавлено: Пт окт 07, 2022 06:53 
Не в сети

Регистрация: Сб дек 17, 2011 12:56
Сообщения: 45
Всем доброго времени суток!
Вопрос:
Есть функциональный блок на ST в котором используются таймеры. Нужно использовать текущее значение таймера за пределами этого блока.


В начало
 Профиль  
 
Показать сообщения за:  Сортировка  
Начать новую тему Ответить на тему  [ 16 сообщений ]  На страницу 1, 2  Вперёд

Часовой пояс: UTC + 3 часа (Russia: MSK)


Кто сейчас на конференции

Сейчас этот форум просматривают: в настоящее время на конференции нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Переход:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская документация по phpBB 3