Страница 1 из 2
Об/мин посредством индуктивного датчика
Добавлено: 14 окт 2013, 10:29
Ильшат
Привет всем ! Собственно вопрос, возможно ли используя индуктивный датчик и контроллер s7-300 в часности CPU 313/2dp +модуль дискретных входов DI замерить скорость вращения вала? Допустим, имеется 1 индуктивный датчик и вал с 5 зубьями. Скорость вращения вала не велика максимум 10 об/мин направление вращения не важно . Соответственно пропускной способности по частоте должно хватить для замера. Читал S7-300 Technological functions ,но там рассматривается случай только с модулями скоростного счета и применяется SFB48 , в котором задается номер канала измерения, собственно, это не применимо для моего случая т.к. датчик у меня всего один и модуль тоже обычный. Может кто сталкивался ? И может есть у кого пример?
Re: Об/мин посредством индуктивного датчика
Добавлено: 14 окт 2013, 11:05
ward
у тебя на борту три счетчика на 30 кГц, их можешь использовать
Re: Об/мин посредством индуктивного датчика
Добавлено: 14 окт 2013, 11:12
Ильшат
Сори ошибся cpu шкой , уменя 315/2p , он зараза без счетчиков "лысый".
Re: Об/мин посредством индуктивного датчика
Добавлено: 14 окт 2013, 14:45
Михайло
Ищите системную функцию:
SFB 48 "FREQUENCY" Управление измерением частоты
Re: Об/мин посредством индуктивного датчика
Добавлено: 15 окт 2013, 07:14
Автоматизатор
Скорость - это количество импульсов за единицу времени. Заводишь таймер и считаешь количество положительных фронтов входного сигнала.
Re: Об/мин посредством индуктивного датчика
Добавлено: 17 окт 2013, 08:23
Ильшат
Все это конечно понятно... но как это реализовать в степе , 2 дня пробовал чет не оч получается точнее ничего не получилось
Re: Об/мин посредством индуктивного датчика
Добавлено: 17 окт 2013, 08:53
Автоматизатор
Выкладывай код, посмотрим, где ошибки.
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
Re: Об/мин посредством индуктивного датчика
Добавлено: 18 окт 2013, 11:33
Ильшат
код в принципе считает , но как сделать допустим чтоб показывало 0,1 об/мин 0,5 об/мин?
Re: Об/мин посредством индуктивного датчика
Добавлено: 18 окт 2013, 13:28
Автоматизатор
0,1 об/мин * 5 флажков = 0,5 имп./мин
Чтобы получить такую точность надо:
- увеличить разрешение (сделать 50 флажков), или
- увеличить время, за которое считается импульсы (скажем считать импульсы за 10 мин)
Re: Об/мин посредством индуктивного датчика
Добавлено: 18 окт 2013, 13:32
Автоматизатор
По коду:
- трудно разбирать код без таблицы символов и комментариев
Re: Об/мин посредством индуктивного датчика
Добавлено: 18 окт 2013, 13:40
ward
я бы использовал клок мемори и простые операции с INT-ом или реалом.
Судя по коду - он изначально был в ЛАДе, а потом переделан на СТЛ, поэтому такая шняга получилась
Re: Об/мин посредством индуктивного датчика
Добавлено: 18 окт 2013, 14:41
Михайло
Картинка LAD была бы понятнее...
Re: Об/мин посредством индуктивного датчика
Добавлено: 18 окт 2013, 15:02
Ильшат
Не могу выложить файлы сюда , прийду домой через файл обменник ссылку выложу, да ,код был написан в ладе за неимением возможности выложить сюда исходник скинул стл.
Re: Об/мин посредством индуктивного датчика
Добавлено: 18 окт 2013, 20:46
Ильшат
Re: Об/мин посредством индуктивного датчика
Добавлено: 19 окт 2013, 06:56
Михайло
Какая проблема при выкладывании файла? Мы в соседней теме zip и rar спокойно выкладываем. Не у всех установлен Step7, лучше бы картинками выложил, если не громоздкий код...
Re: Об/мин посредством индуктивного датчика
Добавлено: 19 окт 2013, 07:39
Ильшат
Сайт оч медленно работал , сегодня вот получилось.
Re: Об/мин посредством индуктивного датчика
Добавлено: 19 окт 2013, 08:03
ward
Под обороты в минуту думаю сам переделаешь:
Re: Об/мин посредством индуктивного датчика
Добавлено: 19 окт 2013, 09:45
Автоматизатор
Ильшат писал(а):вот ссылка на проект
Открыл проект. Смотрю код. Переменная #always_1 объявлена как временная, соответственно Network 1 - это что то непонятное. Переменные типа TEMP надо инициализировать при использовании, в них может быть что угодно, не обязательно 0. Если надо хранить вычисленные значения в следующем цикле, то надо использовать память типа STAT (FB) или M или DB.
Много избыточных переменных используется. См. код
ward, где таймер сам себя сбрасывает.
Re: Об/мин посредством индуктивного датчика
Добавлено: 19 окт 2013, 10:14
ward
Темп лучше не использовать и это правда, лучше в ДБ все хранить