Об/мин посредством индуктивного датчика

Автоматизация технологических процессов, системы управления, АСУ ТП, АСКУЭ, программирование ПЛК, человеко-машинный интерфейс, сетевое оборудование, протоколы

Об/мин посредством индуктивного датчика

Сообщение Ильшат » 14 окт 2013, 10:29

Привет всем ! Собственно вопрос, возможно ли используя индуктивный датчик и контроллер s7-300 в часности CPU 313/2dp +модуль дискретных входов DI замерить скорость вращения вала? Допустим, имеется 1 индуктивный датчик и вал с 5 зубьями. Скорость вращения вала не велика максимум 10 об/мин направление вращения не важно . Соответственно пропускной способности по частоте должно хватить для замера. Читал S7-300 Technological functions ,но там рассматривается случай только с модулями скоростного счета и применяется SFB48 , в котором задается номер канала измерения, собственно, это не применимо для моего случая т.к. датчик у меня всего один и модуль тоже обычный. Может кто сталкивался ? И может есть у кого пример?
Ильшат
Любитель
 
Сообщения: 63
Зарегистрирован: 17 июн 2013, 12:51

Re: Об/мин посредством индуктивного датчика

Сообщение ward » 14 окт 2013, 11:05

у тебя на борту три счетчика на 30 кГц, их можешь использовать
ward
Специалист
 
Сообщения: 409
Зарегистрирован: 12 ноя 2012, 08:44

Re: Об/мин посредством индуктивного датчика

Сообщение Ильшат » 14 окт 2013, 11:12

Сори ошибся cpu шкой , уменя 315/2p , он зараза без счетчиков "лысый".
Ильшат
Любитель
 
Сообщения: 63
Зарегистрирован: 17 июн 2013, 12:51

Re: Об/мин посредством индуктивного датчика

Сообщение Михайло » 14 окт 2013, 14:45

Ищите системную функцию:
SFB 48 "FREQUENCY" Управление измерением частоты
Михайло
Администратор
 
Сообщения: 3333
Зарегистрирован: 19 сен 2012, 19:16

Re: Об/мин посредством индуктивного датчика

Сообщение Автоматизатор » 15 окт 2013, 07:14

Скорость - это количество импульсов за единицу времени. Заводишь таймер и считаешь количество положительных фронтов входного сигнала.
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 880
Зарегистрирован: 09 окт 2012, 05:18

Re: Об/мин посредством индуктивного датчика

Сообщение Ильшат » 17 окт 2013, 08:23

Все это конечно понятно... но как это реализовать в степе , 2 дня пробовал чет не оч получается точнее ничего не получилось
Ильшат
Любитель
 
Сообщения: 63
Зарегистрирован: 17 июн 2013, 12:51

Re: Об/мин посредством индуктивного датчика

Сообщение Автоматизатор » 17 окт 2013, 08:53

Выкладывай код, посмотрим, где ошибки.
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 880
Зарегистрирован: 09 окт 2012, 05:18

Re: Об/мин посредством индуктивного датчика

Сообщение Ильшат » 18 окт 2013, 11:32

AN #always_1
S #every_1
------------------------------
A #every_1
L S5T#59s
SE T 1
A #reset_t1
R T 1
NOP 0
NOP 0
A T 1
= #always_1
------------------------------
A #Pulse_input
CU C 1
BLD 101
A #set_C
L C#0
S C 1
A #reset_Counter
R C 1
L C 1
T #Count_val
NOP 0
NOP 0
-----------------------------
A(
A #always_1
BLD 100
FP M 0.0
)
JNB _001
L #Count_val
T MW 1
SET
SAVE
CLR
_001: A BR
= #reset_Counter
= #every_1
Ильшат
Любитель
 
Сообщения: 63
Зарегистрирован: 17 июн 2013, 12:51

Re: Об/мин посредством индуктивного датчика

Сообщение Ильшат » 18 окт 2013, 11:33

код в принципе считает , но как сделать допустим чтоб показывало 0,1 об/мин 0,5 об/мин?
Ильшат
Любитель
 
Сообщения: 63
Зарегистрирован: 17 июн 2013, 12:51

Re: Об/мин посредством индуктивного датчика

Сообщение Автоматизатор » 18 окт 2013, 13:28

0,1 об/мин * 5 флажков = 0,5 имп./мин

Чтобы получить такую точность надо:
- увеличить разрешение (сделать 50 флажков), или
- увеличить время, за которое считается импульсы (скажем считать импульсы за 10 мин)
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 880
Зарегистрирован: 09 окт 2012, 05:18

Re: Об/мин посредством индуктивного датчика

Сообщение Автоматизатор » 18 окт 2013, 13:32

По коду:
- трудно разбирать код без таблицы символов и комментариев
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 880
Зарегистрирован: 09 окт 2012, 05:18

Re: Об/мин посредством индуктивного датчика

Сообщение ward » 18 окт 2013, 13:40

я бы использовал клок мемори и простые операции с INT-ом или реалом.

Судя по коду - он изначально был в ЛАДе, а потом переделан на СТЛ, поэтому такая шняга получилась
ward
Специалист
 
Сообщения: 409
Зарегистрирован: 12 ноя 2012, 08:44

Re: Об/мин посредством индуктивного датчика

Сообщение Михайло » 18 окт 2013, 14:41

Картинка LAD была бы понятнее...
Михайло
Администратор
 
Сообщения: 3333
Зарегистрирован: 19 сен 2012, 19:16

Re: Об/мин посредством индуктивного датчика

Сообщение Ильшат » 18 окт 2013, 15:02

Не могу выложить файлы сюда , прийду домой через файл обменник ссылку выложу, да ,код был написан в ладе за неимением возможности выложить сюда исходник скинул стл.
Ильшат
Любитель
 
Сообщения: 63
Зарегистрирован: 17 июн 2013, 12:51

Re: Об/мин посредством индуктивного датчика

Сообщение Ильшат » 18 окт 2013, 20:46

http://files.mail.ru/B47E8D9D6BD04A9A8E22C03919C8D017 вот ссылка на проект
Ильшат
Любитель
 
Сообщения: 63
Зарегистрирован: 17 июн 2013, 12:51

Re: Об/мин посредством индуктивного датчика

Сообщение Михайло » 19 окт 2013, 06:56

Какая проблема при выкладывании файла? Мы в соседней теме zip и rar спокойно выкладываем. Не у всех установлен Step7, лучше бы картинками выложил, если не громоздкий код...
Михайло
Администратор
 
Сообщения: 3333
Зарегистрирован: 19 сен 2012, 19:16

Re: Об/мин посредством индуктивного датчика

Сообщение Ильшат » 19 окт 2013, 07:39

Сайт оч медленно работал , сегодня вот получилось.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ильшат
Любитель
 
Сообщения: 63
Зарегистрирован: 17 июн 2013, 12:51

Re: Об/мин посредством индуктивного датчика

Сообщение ward » 19 окт 2013, 08:03

Под обороты в минуту думаю сам переделаешь:

Изображение
ward
Специалист
 
Сообщения: 409
Зарегистрирован: 12 ноя 2012, 08:44

Re: Об/мин посредством индуктивного датчика

Сообщение Автоматизатор » 19 окт 2013, 09:45

Ильшат писал(а):вот ссылка на проект

Открыл проект. Смотрю код. Переменная #always_1 объявлена как временная, соответственно Network 1 - это что то непонятное. Переменные типа TEMP надо инициализировать при использовании, в них может быть что угодно, не обязательно 0. Если надо хранить вычисленные значения в следующем цикле, то надо использовать память типа STAT (FB) или M или DB.

Много избыточных переменных используется. См. код ward, где таймер сам себя сбрасывает.
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 880
Зарегистрирован: 09 окт 2012, 05:18

Re: Об/мин посредством индуктивного датчика

Сообщение ward » 19 окт 2013, 10:14

Темп лучше не использовать и это правда, лучше в ДБ все хранить
ward
Специалист
 
Сообщения: 409
Зарегистрирован: 12 ноя 2012, 08:44

След.

Вернуться в АВТОМАТИЗАЦИЯ

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

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