Показано с 1 по 7 из 7

Тема: сложение/вычитание при помощи энкодера

  1. #1

    По умолчанию сложение/вычитание при помощи энкодера

    День добрый.

    ПЛК 110

    Задача: Есть ручной энкодер на пульте управления.
    Нужно увеличивать и уменьшать значение переменной при помощи этого энкодера, но не на единицу, а на 200.
    То есть определяем направление вращения и на каждый импульс энкодера прибавляем к переменной 200.
    Пишу на ST.
    Уже череп сломал. Есть идеи?
    Заранее Благодарю.

  2. #2
    Пользователь
    Регистрация
    09.10.2014
    Адрес
    Киров
    Сообщений
    735

    По умолчанию

    b=a*200 , где а - число импульсов с энкодера - не подходит?

  3. #3

    По умолчанию

    Нет. Есть переменная у которой изначальное значение равно 6400, и на каждый импульс экодера ее надо увеличивать или уменьшать на 200.

    что то типа:
    а - направление;
    b = 6400
    c = 200

    если а = TRUE
    то на каждый импульс b:= b + c;
    иначе на каждый импульс b:= b - c;

    как к импульсу с энкодера привязать арифметическую операцию?
    Последний раз редактировалось B.S.V; 05.08.2018 в 21:03.

  4. #4
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    может выходную переменную сразу умножать на 200,
    а энкодер пусть вычитает- прибавляет 1 ?

  5. #5

    По умолчанию

    6400 * 200 = 1280000 !!!!
    А мне надо 6600, 6800, 7000, 7200 и т.д.
    Ну и в обратную сторону соответственно...

  6. #6
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от B.S.V Посмотреть сообщение
    Нет. Есть переменная у которой изначальное значение равно 6400, и на каждый импульс экодера ее надо увеличивать или уменьшать на 200.

    что то типа:
    а - направление;
    b = 6400
    c = 200

    если а = TRUE
    то на каждый импульс b:= b + c;
    иначе на каждый импульс b:= b - c;
    как к импульсу с энкодера привязать арифметическую операцию?
    Код:
    PROGRAM PLC_PRG
    VAR
    	R_TR: R_TRIG;
    	Impuls: BOOL;
    	a: BOOL;		(*Направление*)
    	b: UDINT:= 6400;
    END_VAR
    
    R_TR(CLK:=Impuls);
    IF R_TR.Q AND a THEN
    	b:= b + 200;
    ELSIF R_TR.Q AND NOT a THEN
    	b:= b - 200;
    END_IF
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #7

    По умолчанию

    ))) Красота
    Я понимал что надо использовать триггер... но не дозрел как... а тут так все просто ))
    Благодарствую.

Похожие темы

  1. Вычитание
    от jus в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 09.07.2016, 06:59
  2. Подключение энкодера - что не так?
    от clockwise в разделе Эксплуатация
    Ответов: 9
    Последнее сообщение: 17.07.2008, 20:43
  3. Подмодуль энкодера в ПЛК
    от clockwise в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 10.03.2008, 21:35

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •