Накопительный счетчик |
Здравствуйте, гость ( Вход | Регистрация )
Накопительный счетчик |
20.01.2017 - 13:17
Сообщение
#16
|
|
Гигант мысли Группа: Пользователи Сообщений: 408 Регистрация: 3.08.2014 Пользователь №: 10311 |
Немного по другому сделал. На 1 км инкрементируем счетчик в HMI на 1000м Быстрый сбрасываем. в финишном все время складываем быстрый и инкрементируюмую область Думаю что должно достаточно точно считать. Хм. А каково разрешение энкодера? Счетчик С248 не переполняется на 1 км пробега? Ну и получается, что между этими километрами люди не будут видеть фактического расстояния (длины)? Допустим реальная длина будет 1,9 км, а на панели будет гореть 1 - это будет вводить в заблуждение несколько, так как 1,9 это почти 2 км -------------------- There are only 10 types of people in the world — those who understand binary, and those who don't.
|
|
|
20.01.2017 - 13:29
Сообщение
#17
|
|
Читатель Группа: Пользователи Сообщений: 15 Регистрация: 8.02.2009 Пользователь №: 9045 |
Немного по другому сделал. На 1 км инкрементируем счетчик в HMI на 1000м Быстрый сбрасываем. в финишном все время складываем быстрый и инкрементируюмую область Думаю что должно достаточно точно считать. Хм. А каково разрешение энкодера? Счетчик С248 не переполняется на 1 км пробега? Ну и получается, что между этими километрами люди не будут видеть фактического расстояния (длины)? Допустим реальная длина будет 1,9 км, а на панели будет гореть 1 - это будет вводить в заблуждение несколько, так как 1,9 это почти 2 км не успевает он же 32 битный в конечном двойном слове показывается текущая длина с учетом прибавленного км текущий счетчик у меня D400, Где складываются по 1000 м-D430. конечный D440 =D400+D430 Показывает хорошо. Разрешение 5000 имп/об счетчик получ. При длине окр вала 800 мм-0,8 м. 6234415 что не большое число. Можно думаю для увеличения точности до 10000м увеличить. |
|
|
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.
|
|
|
20.01.2017 - 13:42
Сообщение
#19
|
|
Гигант мысли Группа: Пользователи Сообщений: 408 Регистрация: 3.08.2014 Пользователь №: 10311 |
не успевает он же 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.
|
|
|
20.01.2017 - 15:21
Сообщение
#20
|
|
Читатель Группа: Пользователи Сообщений: 15 Регистрация: 8.02.2009 Пользователь №: 9045 |
не успевает он же 32 битный в конечном двойном слове показывается текущая длина с учетом прибавленного км текущий счетчик у меня D400, Где складываются по 1000 м-D430. конечный D440 =D400+D430 Показывает хорошо. Разрешение 5000 имп/об счетчик получ. При длине окр вала 800 мм-0,8 м. 6234415 что не большое число. Можно думаю для увеличения точности до 10000м увеличить. А длина окружности вала постоянна или может измениться? А так, числа у вас красивые, при разрешении энк в 5к импульсов на оборот и длине вала 800 мм вы получаете ровно 625 импульсов на 0,1 метр! Таким образом, досчитываем до 6250, инкремент метров на панели на +1 и сброс счетчика. Все красиво, без всяких делений в программе. Диаметр постоянный |
|
|
20.01.2017 - 15:34
Сообщение
#21
|
|
Гигант мысли Группа: Пользователи Сообщений: 408 Регистрация: 3.08.2014 Пользователь №: 10311 |
Диаметр постоянный Так если диаметр постоянный, разрешение энкодера постоянное - тогда зачем эти переменные на панели вообще нужны? Тем не менее, вот вся программа: 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.
|
|
|
20.01.2017 - 15:38
Сообщение
#22
|
|
Гигант мысли Группа: Пользователи Сообщений: 408 Регистрация: 3.08.2014 Пользователь №: 10311 |
А вот программа, если данные энкодера и длины вала постоянны:
2.JPG ( 43.48 килобайт ) Кол-во скачиваний: 19 (для 5000 имп энк и 800мм длины) Всего то... -------------------- There are only 10 types of people in the world — those who understand binary, and those who don't.
|
|
|
20.01.2017 - 16:16
Сообщение
#23
|
|
Читатель Группа: Пользователи Сообщений: 15 Регистрация: 8.02.2009 Пользователь №: 9045 |
Все у вас правильно. Но диаметр вала и параметр энкодера лучше задавать косвенно через панель.
Иначе нет возможности коррекции. Энкодер разломают будет с другим разрешением или вал сотрется (поверхность у него гумированная). Мне каждый раз с ноу том бегать?. Да и мастер две запятые хочет видеть 2м 56 см и т.д. Возможно я перебрал с действительными. Наверное лучше в первом скане закинуть результат вычислений в ячейку (разрешение). Ну а потом с ним работать. |
|
|
20.01.2017 - 17:10
Сообщение
#24
|
|
Гигант мысли Группа: Пользователи Сообщений: 408 Регистрация: 3.08.2014 Пользователь №: 10311 |
Все у вас правильно. Но диаметр вала и параметр энкодера лучше задавать косвенно через панель. Иначе нет возможности коррекции. Энкодер разломают будет с другим разрешением или вал сотрется (поверхность у него гумированная). Мне каждый раз с ноу том бегать?. Да и мастер две запятые хочет видеть 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.
|
|
|
Текстовая версия | Сейчас: 20.04.2024 - 02:29 |