Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Mitsubishi Electric. Контроллеры, преобразователи частоты, HMI _ Программирование _ FX2N-128 работа с выходами

Автор: Antiscer 25.01.2019 - 20:49

Здравствуйте.
Волею судеб пришлось начать разбираться с данным типом контроллеров. Возник вопрос, а какой подход можно применить для перебора выходов включая необходимые.
Задача простая - на входы Х0-Х7 приходит двоичное восьмибитное число и мне нужно включить выход с тем номером, на которое подается на вход.
Метод прописать все варианты мне известен.
Почитав документацию, я встретил индексные регистры, но был удивлен, что их нельзя применять в FX2N на выходах (в документации об этом ни слова).
Какие еще есть приемы работы с выходами по абсолютному числу?

Автор: VAL_64 25.01.2019 - 22:38

Цитата(Antiscer @ 25.01.2019 - 21:49) *
Здравствуйте.
Волею судеб пришлось начать разбираться с данным типом контроллеров. Возник вопрос, а какой подход можно применить для перебора выходов включая необходимые.
Задача простая - на входы Х0-Х7 приходит двоичное восьмибитное число и мне нужно включить выход с тем номером, на которое подается на вход.
Метод прописать все варианты мне известен.
Почитав документацию, я встретил индексные регистры, но был удивлен, что их нельзя применять в FX2N на выходах (в документации об этом ни слова).
Какие еще есть приемы работы с выходами по абсолютному числу?

http://www.melsec.ru/forum/index.php?s=&showtopic=5263&view=findpost&p=10787
Биты объединяются в слова только группами по 4, то есть К2Х0 в данном случае необходимо.
Ненужные биты можно замаскировать.
Например: WAND K2X0 H1F K2M0, если хотите иметь результат в слове битов K2M0, либо WAND K2X0 H1F D0, если в регистре D0.
Константа-маска содержит нули в позициях битов, которые нужно игнорировать.

Входы, которые нужно игнорировать, маскируются лишь при копировании группы в слово-получатель.
Ничто не мешает использовать их для других целей.

Что касается выходов, там процедура немного сложнее.
Для передачи пяти младших битов из D0 на Y0..Y4, не затрагиваяY5..Y7, необходимо выполнить две операции:
WAND K2Y0 HE0 D1
WOR D0 D1 K2Y0
Первая инструкция запоминает во вспомогательном регистре D1 состояние битов Y5..Y7.
Константа-маска содержит единицы только в этих позициях.
Вторая инструкция дописывает биты, которыми нужно управлять, и отправляет все слово на выходы.

Автор: Sergei Troizky 26.01.2019 - 02:37

Цитата(Antiscer @ 25.01.2019 - 20:49) *
Задача простая - на входы Х0-Х7 приходит двоичное восьмибитное число и мне нужно включить выход с тем номером, на которое подается на вход.

А что должно произойти с включенным таким образом выходом, когда число на входах изменится?
И делается ли все это в дополнение к какой-то другой логике управления выходами?
Если да, то каковы приоритеты?

Автор: inntele 26.01.2019 - 06:39

То, что требуется, делается одной инструкцией DECO.

Автор: Antiscer 26.01.2019 - 09:48

Цитата(inntele @ 26.01.2019 - 06:39) *
То, что требуется, делается одной инструкцией DECO.

В точку!!!
Огромное спасибо - это то, что я искал последние два дня.

Автор: Antiscer 26.01.2019 - 09:56

Цитата(Sergei Troizky @ 26.01.2019 - 02:37) *
Цитата(Antiscer @ 25.01.2019 - 20:49) *
Задача простая - на входы Х0-Х7 приходит двоичное восьмибитное число и мне нужно включить выход с тем номером, на которое подается на вход.

А что должно произойти с включенным таким образом выходом, когда число на входах изменится?
И делается ли все это в дополнение к какой-то другой логике управления выходами?
Если да, то каковы приоритеты?


Да, вы правы, я упростил задачу до вопроса, который меня терзал.
Сама задача достаточно проста:
магазин торгующий люстрами, имеются пронумерованные люстры подключенные к автоматике. Покупатель при наборе номера на консоли включает на 3 минуты выбранную люстру.
Консоль, как вы понимаете, кодирует набранный номер в двоичный формат.

Автор: Antiscer 26.01.2019 - 10:06

Цитата(VAL_64 @ 25.01.2019 - 22:38) *
http://www.melsec.ru/forum/index.php?s=&showtopic=5263&view=findpost&p=10787
Биты объединяются в слова только группами по 4, то есть К2Х0 в данном случае необходимо.
Ненужные биты можно замаскировать.
Например: WAND K2X0 H1F K2M0, если хотите иметь результат в слове битов K2M0, либо WAND K2X0 H1F D0, если в регистре D0.
Константа-маска содержит нули в позициях битов, которые нужно игнорировать.....


да, я пробежался по всем темам этой ветки форума, видел эту тему, но это не то что было в вопросу, хотя в программе я буду использовать эти инструкции и подходы.
дело в том, что существующая программа написана в лоб, т.е. в ней описаны все возможные варианты, таких контроллеров 18 и все отличаются программами - мне нужно унифицировать, так как они все выполняют одно и то же.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)