PDA

Просмотр полной версии : Электронная линейка (Помощь)



iurlic2007
07.09.2016, 16:59
Здравствуйте. Связка СПК-107 и МВ110-16ДН. На первый и второй вход МВ110-16ДН подан сигнал от свободных контактах кнопок, которые включают пускатели. Реализовано включения двигателя вперед - назад. На крыльчатке двигателе закреплен болт. рядом с крыльчаткой закреплен индуктивный датчик. На третий вход МВ110-16ДН подан сигнал от индуктивного датчика. Реализовано программа подсчета импульсов. Все импульсы читаются контроллером с этим проблем не возникло. Хочу с помощью контроллера реализовать электронную линейку. Двигатель крутит винт ШВП. Соответственно винт двигает некое устройство. Идея такая если я нажал кнопку допусти вперед сигнал поступает от кнопки на 1-й вход МВ110-16ДН а на 3-й вход приходят импульсы от индуктивного датчика. все считать мы количество импульсов, далее сами переведем в физическое значение (мм). Если я хочу крутить двигатель а обратном направление то поступает сигнал от второй кнопки на 2-й вход МВ110-16ДН, и на 3-й вход МВ110-16ДН сигнал от индуктивного датчика. Проблема в том что посчитанные импульсы увеличиваются а мне как бы надо мину совать те импульсы которые запомнили при включение двигателя вперед. Помогите как реализовать такой принцип.

RA.
07.09.2016, 20:54
Если я хочу крутить двигатель а обратном направление то поступает сигнал от второй кнопки на 2-й вход МВ110-16ДН, и на 3-й вход МВ110-16ДН сигнал от индуктивного датчика. Проблема в том что посчитанные импульсы увеличиваются а мне как бы надо мину совать те импульсы ...

а на МВ110- счетчик как сбрасывается?

ну на первый взгляд по тригеру смены направления транслировать текущее состояние счетчика в вспомогательную переменную и потом минусовать текущий счетчик из этой переменной.

iurlic2007
12.09.2016, 14:20
Пробовал по разному но что то не получается

RA.
12.09.2016, 14:31
есть на руках МВ110? там как вход в режиме счетчика задается? и что потом можно получить на ПЛК? значение счетчика? или только состояние DI 0/1?

melky
12.09.2016, 16:22
Использовать счетчик с инкрементом и декрементом

iurlic2007
12.09.2016, 16:51
получаем значения количество импульсов поданных на вход МВ110-16ДН. Тип Word.

iurlic2007
12.09.2016, 16:53
CTU? или СTD?

melky
12.09.2016, 17:33
CTUD, есть в Standard.lib, считает в оба направления. Раз уж вы программно считаете, просто переключайте направление счета.

iurlic2007
12.09.2016, 18:30
да но на входе я должен подать переменную типа word

smk1635
12.09.2016, 20:34
да но на входе я должен подать переменную типа word

Пример для размышлений. А дальше сами.

iurlic2007
12.09.2016, 20:48
http://www.owen.ru/uploads/re_mv110-16d_dn__2164.pdf стр.16

ИЗ ИНСТРУКЦИИ
Каждый дискретный вход имеет собственный 16-ти битный счетчик импульсов, пришедших
на вход. Максимальная частота импульсов счета должна составлять не более 1 кГц при
длительности импульса не менее 0,5 мс. Импульсы большей частоты или меньшей
длительности пропускаются. Счет осуществляется по переднему фронту (по замыканию
контакта). При пропадании питания модуля результаты счета сохраняются в
энергонезависимой п

smk1635
12.09.2016, 21:06
Ну так используйте. В чем проблема?

CTD в помощь. На вход PV - полученное значение из счетчика в модуле. Его обнуление привязать к выходу Q.

Сергей0308
12.09.2016, 21:20
Может дождётесь СПК1хх.Д, тогда обойдётесь без модуля ДВ и задержки по сети не будет, короче одни плюсы! А так пожалуйста пользуйтесь:

26356

smk1635
12.09.2016, 21:34
Может дождётесь СПК1хх.Д



Это Вы хорошо пошутили, с учетом когда был первый анонс и обещание Овена начать продажи в начала 2015. :)

Осинский Алексей
14.09.2016, 07:26
Это Вы хорошо пошутили, с учетом когда был первый анонс и обещание Овена начать продажи в начала 2015. :)

На сколько мне известно в скором времени мы объявим старт продаж СПК1хх.Д

iurlic2007
21.09.2016, 13:11
Из изображения видно что переменная Impuls_Levii равно 113 импульсов типа Word и как подать то сейчас на счетчик CTDU.

iurlic2007
27.09.2016, 19:56
Никто не готов помочь?

Евгений Кислов
27.09.2016, 21:06
Никто не готов помочь?

Вопрос сформулирован некорректно. Счетчик считает кол-во переходов логической (BOOL) переменной из FALSE в TRUE (инкремент) и/или из TRUE в FALSE (декремент). На вход счетчика, соответственно, подается эта BOOL переменная. Число туда подать нельзя.

Вам лучше детально описать фрагмент задачи, который вы хотите решить с помощью счетчика.

iurlic2007
28.09.2016, 09:50
Перевести количество импульсов в миллиметры. У меня 410 импульсов 1 мм хода установки. Вывести на экран ход установки в реальном времени с возможностью указания хода установки от нуля в минус. От нуля если установка идет вперед значения положительные а если назад то значения отрицательные

Евгений Кислов
28.09.2016, 10:52
Перевести количество импульсов в миллиметры. У меня 410 импульсов 1 мм хода установки. Вывести на экран ход установки в реальном времени с возможностью указания хода установки от нуля в минус. От нуля если установка идет вперед значения положительные а если назад то значения отрицательные

Вот простейший пример без привязки к мм (рассматривается ситуация, когда один импульс = 1 мм).
Паузу, сброс и т.д. прикрутить, думаю, не составит проблемы.

wCounter - значение счетчика, считанное с модуля.
wVisu - значение, отображаемое линейкой в визуализации.
xMode - направление счета (TRUE - прямое, FALSE - обратное).

26709

iurlic2007
30.09.2016, 18:23
[QUOTE=Евгений Кислов;221860]Вот простейший пример без привязки к мм (рассматривается ситуация, когда один импульс = 1 мм).
Паузу, сброс и т.д. прикрутить, думаю, не составит проблемы.

wCounter - значение счетчика, считанное с модуля.
wVisu - значение, отображаемое линейкой в визуализации.
xMode - направление счета (TRUE - прямое, FALSE - обратное).


Что не правильно сделал цифры в визуализации хаотично гуляют

Евгений Кислов
30.09.2016, 19:00
Сравните расстановку знаков на скриншоте и в вашей программе.

Для начала просто проэмулируйте изменение wCounter в программе (для наглядности можно поставить цикл 1 секунду).

Еще раз уточню, это просто пример, который вам нужно будет адаптировать под конкретную задачу - например, обрабатывать переход счетчика через 0 и т.д.