Владею плк160, энкодер на 600p/r, если значение уходит ниже нуля, то счет начинается от 600 и идет на понижение, возможно ли сделать так , чтобы ниже нуля значение выставлялось от -1 и до -600?
Владею плк160, энкодер на 600p/r, если значение уходит ниже нуля, то счет начинается от 600 и идет на понижение, возможно ли сделать так , чтобы ниже нуля значение выставлялось от -1 и до -600?
А зачем вам отрицательные числа? Вы так пытаетесь позиционироваться или реверс отслеживать?
Ну и, переменная отвечающая за энкодер имеет тип word, а это 65 тыс. Вы там, что по модулю на 600 делите?
Последний раз редактировалось Dimensy; 09.11.2024 в 13:23.
Мне нужно ,чтобы вал по окончании работы вставал в изначальное положение, так как после отключения питания вал еще прокручивается, то каким то образом играть со временем(временем его возвращения в изначальную точку) не имеет смысла, в
конечном итоге через пару дней он все равно будет в совершенно другом месте, поэтому я решил использовать энкодер, -600 0 600, по мне так вполне себе логично.
Можно установить знаковый тип данных, например INT, тогда вместо диапазона 0 - 65535 будет отображаться диапазон "-32768" - 32767.
И, если у вас механизм вращается с выключенным питанием, то позиционирование с инкрементным эндодером непременно нарушится, мне кажется, это ненормально и если это поправить нельзя, впору думать об абсолютном энкодере, если хотите, чтобы позиционирование не сбивалось при вращении механизма с отключенным питанием. Или чтобы по концевику выставлялось исходное(начальное) положение!
Последний раз редактировалось Сергей0308; 18.11.2024 в 21:17.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Вал прокручивается, когда с двигателя снимается питание, плк и энкодер все еще будут в работе, поэтому до момента их отключения позиционирование будет работать. Другой вопрос ,как вы и сказали , после повторного включения позиционирование нуля сбивается, но на просторах форума я нашел информацию, что можно присвоить нулю значение RETAIN и использовать оператор MOVE.
Последний раз редактировалось Artem2928a; 20.11.2024 в 16:38.