IPB

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

 
Ответить в эту темуОткрыть новую тему
> FX2N-128 работа с выходами, что-то похожее на индексы
Antiscer
сообщение 25.01.2019 - 20:49
Сообщение #1


Читатель
*

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



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


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

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



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

Ссылка
Биты объединяются в слова только группами по 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
Сообщение #3


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

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



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

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

Сообщение отредактировал Sergei Troizky - 26.01.2019 - 02:40


--------------------
Делать надо сразу хорошо. Плохо само получится.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
inntele
сообщение 26.01.2019 - 06:39
Сообщение #4


Гуру
******

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



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


--------------------
Мозг любого человека работает круглосуточно. Но мозг инженера отличается тем, что способен при этом проанализировать задачу, синтезировать несколько техничных ее решений, а затем выбрать из этих решений наилучшее.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Antiscer
сообщение 26.01.2019 - 09:48
Сообщение #5


Читатель
*

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



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

В точку!!!
Огромное спасибо - это то, что я искал последние два дня.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Antiscer
сообщение 26.01.2019 - 09:56
Сообщение #6


Читатель
*

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



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

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


Да, вы правы, я упростил задачу до вопроса, который меня терзал.
Сама задача достаточно проста:
магазин торгующий люстрами, имеются пронумерованные люстры подключенные к автоматике. Покупатель при наборе номера на консоли включает на 3 минуты выбранную люстру.
Консоль, как вы понимаете, кодирует набранный номер в двоичный формат.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Antiscer
сообщение 26.01.2019 - 10:06
Сообщение #7


Читатель
*

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



Цитата(VAL_64 @ 25.01.2019 - 22:38) *
Ссылка
Биты объединяются в слова только группами по 4, то есть К2Х0 в данном случае необходимо.
Ненужные биты можно замаскировать.
Например: WAND K2X0 H1F K2M0, если хотите иметь результат в слове битов K2M0, либо WAND K2X0 H1F D0, если в регистре D0.
Константа-маска содержит нули в позициях битов, которые нужно игнорировать.....


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

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

 



- Текстовая версия Сейчас: 29.03.2024 - 13:29