IPB

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в эту темуОткрыть новую тему
> Накопительный счетчик
acoustik
сообщение 20.01.2017 - 13:17
Сообщение #16


Гигант мысли
****

Группа: Пользователи
Сообщений: 408
Регистрация: 3.08.2014
Пользователь №: 10311



Цитата(vahidas @ 20.01.2017 - 19:07) *
Немного по другому сделал. На 1 км инкрементируем счетчик в HMI на 1000м
Быстрый сбрасываем.
в финишном все время складываем быстрый и инкрементируюмую область
Думаю что должно достаточно точно считать.

Хм. А каково разрешение энкодера? Счетчик С248 не переполняется на 1 км пробега?
Ну и получается, что между этими километрами люди не будут видеть фактического расстояния (длины)? Допустим реальная длина будет 1,9 км, а на панели будет гореть 1 - это будет вводить в заблуждение несколько, так как 1,9 это почти 2 км smile.gif


--------------------
There are only 10 types of people in the world — those who understand binary, and those who don't.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
vahidas
сообщение 20.01.2017 - 13:29
Сообщение #17


Читатель
*

Группа: Пользователи
Сообщений: 15
Регистрация: 8.02.2009
Пользователь №: 9045



Цитата(acoustik @ 20.01.2017 - 14:17) *
Цитата(vahidas @ 20.01.2017 - 19:07) *
Немного по другому сделал. На 1 км инкрементируем счетчик в HMI на 1000м
Быстрый сбрасываем.
в финишном все время складываем быстрый и инкрементируюмую область
Думаю что должно достаточно точно считать.

Хм. А каково разрешение энкодера? Счетчик С248 не переполняется на 1 км пробега?
Ну и получается, что между этими километрами люди не будут видеть фактического расстояния (длины)? Допустим реальная длина будет 1,9 км, а на панели будет гореть 1 - это будет вводить в заблуждение несколько, так как 1,9 это почти 2 км smile.gif

не успевает он же 32 битный
в конечном двойном слове показывается текущая длина с учетом прибавленного км
текущий счетчик у меня D400, Где складываются по 1000 м-D430.
конечный D440 =D400+D430
Показывает хорошо.
Разрешение 5000 имп/об
счетчик получ. При длине окр вала 800 мм-0,8 м.
6234415 что не большое число. Можно думаю для увеличения точности до 10000м увеличить.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
acoustik
сообщение 20.01.2017 - 13:30
Сообщение #18


Гигант мысли
****

Группа: Пользователи
Сообщений: 408
Регистрация: 3.08.2014
Пользователь №: 10311



Думаю, в вашем последнем варианте будет значительная потеря в точности, тем более если применять обычный компаратор (DCMP), да еще и сбрасывать в основном скане сам счетчик. Плюс к этому - множество лишних вычислений, да еще и с плавающей точкой! Во всяком случае показания будут скакать как блоха, даже при равномерном движении барабана.

Рекомендую следующее: все расчеты с плавающей запятой производить один раз, сразу после записи параметра (диаметра барабана) в ПЛК. Затем, в самой главной программе только складывать результат расчетов сам с собой, при повороте барабана на один круг и сбрасывать С248. В таком случае будет наименьшая потеря точности и аккумулированное значение длины будет максимально близким к реальности.


--------------------
There are only 10 types of people in the world — those who understand binary, and those who don't.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
acoustik
сообщение 20.01.2017 - 13:42
Сообщение #19


Гигант мысли
****

Группа: Пользователи
Сообщений: 408
Регистрация: 3.08.2014
Пользователь №: 10311



Цитата(vahidas @ 20.01.2017 - 19:29) *
не успевает он же 32 битный
в конечном двойном слове показывается текущая длина с учетом прибавленного км
текущий счетчик у меня D400, Где складываются по 1000 м-D430.
конечный D440 =D400+D430
Показывает хорошо.
Разрешение 5000 имп/об
счетчик получ. При длине окр вала 800 мм-0,8 м.
6234415 что не большое число. Можно думаю для увеличения точности до 10000м увеличить.

А длина окружности вала постоянна или может измениться?
А так, числа у вас красивые, при разрешении энк в 5к импульсов на оборот и длине вала 800 мм вы получаете ровно 625 импульсов на 0,1 метр! Таким образом, досчитываем до 6250, инкремент метров на панели на +1 и сброс счетчика. Все красиво, без всяких делений в программе.


--------------------
There are only 10 types of people in the world — those who understand binary, and those who don't.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
vahidas
сообщение 20.01.2017 - 15:21
Сообщение #20


Читатель
*

Группа: Пользователи
Сообщений: 15
Регистрация: 8.02.2009
Пользователь №: 9045



Цитата(acoustik @ 20.01.2017 - 14:42) *
Цитата(vahidas @ 20.01.2017 - 19:29) *
не успевает он же 32 битный
в конечном двойном слове показывается текущая длина с учетом прибавленного км
текущий счетчик у меня D400, Где складываются по 1000 м-D430.
конечный D440 =D400+D430
Показывает хорошо.
Разрешение 5000 имп/об
счетчик получ. При длине окр вала 800 мм-0,8 м.
6234415 что не большое число. Можно думаю для увеличения точности до 10000м увеличить.

А длина окружности вала постоянна или может измениться?
А так, числа у вас красивые, при разрешении энк в 5к импульсов на оборот и длине вала 800 мм вы получаете ровно 625 импульсов на 0,1 метр! Таким образом, досчитываем до 6250, инкремент метров на панели на +1 и сброс счетчика. Все красиво, без всяких делений в программе.

Диаметр постоянный
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
acoustik
сообщение 20.01.2017 - 15:34
Сообщение #21


Гигант мысли
****

Группа: Пользователи
Сообщений: 408
Регистрация: 3.08.2014
Пользователь №: 10311



Цитата(vahidas @ 20.01.2017 - 21:21) *
Диаметр постоянный

Так если диаметр постоянный, разрешение энкодера постоянное - тогда зачем эти переменные на панели вообще нужны?

Тем не менее, вот вся программа:
Прикрепленный файл  1.JPG ( 54.89 килобайт ) Кол-во скачиваний: 16


D100 - ячейка, где будет хранится накопленное число метров
М0 - кнопка расчета параметров
D0 - переменная, куда вводится длина окружности барабана
D1000 - ячейка с расчетным значением кол-ва импульсов энкодера на 1м линейного перемещения (специально с памятью, чтобы не расчитывать каждый раз при включении)
М20 - кнопка сброса насчитанного метража в D100.


--------------------
There are only 10 types of people in the world — those who understand binary, and those who don't.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
acoustik
сообщение 20.01.2017 - 15:38
Сообщение #22


Гигант мысли
****

Группа: Пользователи
Сообщений: 408
Регистрация: 3.08.2014
Пользователь №: 10311



А вот программа, если данные энкодера и длины вала постоянны:
Прикрепленный файл  2.JPG ( 43.48 килобайт ) Кол-во скачиваний: 19

(для 5000 имп энк и 800мм длины)

Всего то... wink.gif


--------------------
There are only 10 types of people in the world — those who understand binary, and those who don't.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
vahidas
сообщение 20.01.2017 - 16:16
Сообщение #23


Читатель
*

Группа: Пользователи
Сообщений: 15
Регистрация: 8.02.2009
Пользователь №: 9045



Все у вас правильно. Но диаметр вала и параметр энкодера лучше задавать косвенно через панель.
Иначе нет возможности коррекции.
Энкодер разломают будет с другим разрешением или вал сотрется (поверхность у него гумированная).
Мне каждый раз с ноу том бегать?. Да и мастер две запятые хочет видеть 2м 56 см и т.д. Возможно я перебрал с действительными. Наверное лучше в первом скане закинуть результат вычислений
в ячейку (разрешение). Ну а потом с ним работать.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
acoustik
сообщение 20.01.2017 - 17:10
Сообщение #24


Гигант мысли
****

Группа: Пользователи
Сообщений: 408
Регистрация: 3.08.2014
Пользователь №: 10311



Цитата(vahidas @ 20.01.2017 - 22:16) *
Все у вас правильно. Но диаметр вала и параметр энкодера лучше задавать косвенно через панель.
Иначе нет возможности коррекции.
Энкодер разломают будет с другим разрешением или вал сотрется (поверхность у него гумированная).
Мне каждый раз с ноу том бегать?. Да и мастер две запятые хочет видеть 2м 56 см и т.д. Возможно я перебрал с действительными. Наверное лучше в первом скане закинуть результат вычислений
в ячейку (разрешение). Ну а потом с ним работать.

Все верно. Однако учтите, что для достижения определенной точности (в данном примере 2м 56см) - пара: разрешение энкодера и длина круга снимающего линейное перемещение - должны быть точно тарированы. К примеру - 1 импульс энк на 1мм линейного перемещения. Во всех иных случаях вы получите погрешность, а иногда и не малую.
При указанных данных (5000/800мм) - самый меньший точный отрезок (дискрет) измерения - это 100мм (ровно 625 импульсов). Все что меньше - дробное, а значит уже будет не достоверно. То есть в данном случае наиболее практичнее измерять длину с точностью до 0,1м.
Ну, или расчитывать все в реальном времени в числах типа FLOAT и так же во флоате выводить на панель. Но так же, очевидно, минимальная цена приращения будет 0,16мм, что опять же вам не даст "красивой" картинки плавно меняющихся сантиметров.


--------------------
There are only 10 types of people in the world — those who understand binary, and those who don't.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

2 страниц V  < 1 2
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 19.04.2024 - 14:08