FX2N-128 работа с выходами, что-то похожее на индексы |
Здравствуйте, гость ( Вход | Регистрация )
FX2N-128 работа с выходами, что-то похожее на индексы |
25.01.2019 - 20:49
Сообщение
#1
|
|
Читатель Группа: Пользователи Сообщений: 16 Регистрация: 25.01.2019 Пользователь №: 11114 |
Здравствуйте.
Волею судеб пришлось начать разбираться с данным типом контроллеров. Возник вопрос, а какой подход можно применить для перебора выходов включая необходимые. Задача простая - на входы Х0-Х7 приходит двоичное восьмибитное число и мне нужно включить выход с тем номером, на которое подается на вход. Метод прописать все варианты мне известен. Почитав документацию, я встретил индексные регистры, но был удивлен, что их нельзя применять в FX2N на выходах (в документации об этом ни слова). Какие еще есть приемы работы с выходами по абсолютному числу? |
|
|
25.01.2019 - 22:38
Сообщение
#2
|
|
Гигант мысли Группа: Пользователи Сообщений: 253 Регистрация: 21.01.2017 Пользователь №: 10799 |
Здравствуйте. Волею судеб пришлось начать разбираться с данным типом контроллеров. Возник вопрос, а какой подход можно применить для перебора выходов включая необходимые. Задача простая - на входы Х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. Константа-маска содержит единицы только в этих позициях. Вторая инструкция дописывает биты, которыми нужно управлять, и отправляет все слово на выходы. |
|
|
26.01.2019 - 02:37
Сообщение
#3
|
|
Гигант мысли Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 |
Задача простая - на входы Х0-Х7 приходит двоичное восьмибитное число и мне нужно включить выход с тем номером, на которое подается на вход. А что должно произойти с включенным таким образом выходом, когда число на входах изменится? И делается ли все это в дополнение к какой-то другой логике управления выходами? Если да, то каковы приоритеты? Сообщение отредактировал Sergei Troizky - 26.01.2019 - 02:40 -------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
26.01.2019 - 06:39
Сообщение
#4
|
|
Гуру Группа: Пользователи Сообщений: 1003 Регистрация: 19.08.2009 Пользователь №: 9149 |
То, что требуется, делается одной инструкцией DECO.
-------------------- Мозг любого человека работает круглосуточно. Но мозг инженера отличается тем, что способен при этом проанализировать задачу, синтезировать несколько техничных ее решений, а затем выбрать из этих решений наилучшее.
|
|
|
26.01.2019 - 09:48
Сообщение
#5
|
|
Читатель Группа: Пользователи Сообщений: 16 Регистрация: 25.01.2019 Пользователь №: 11114 |
|
|
|
26.01.2019 - 09:56
Сообщение
#6
|
|
Читатель Группа: Пользователи Сообщений: 16 Регистрация: 25.01.2019 Пользователь №: 11114 |
Задача простая - на входы Х0-Х7 приходит двоичное восьмибитное число и мне нужно включить выход с тем номером, на которое подается на вход. А что должно произойти с включенным таким образом выходом, когда число на входах изменится? И делается ли все это в дополнение к какой-то другой логике управления выходами? Если да, то каковы приоритеты? Да, вы правы, я упростил задачу до вопроса, который меня терзал. Сама задача достаточно проста: магазин торгующий люстрами, имеются пронумерованные люстры подключенные к автоматике. Покупатель при наборе номера на консоли включает на 3 минуты выбранную люстру. Консоль, как вы понимаете, кодирует набранный номер в двоичный формат. |
|
|
26.01.2019 - 10:06
Сообщение
#7
|
|
Читатель Группа: Пользователи Сообщений: 16 Регистрация: 25.01.2019 Пользователь №: 11114 |
Ссылка Биты объединяются в слова только группами по 4, то есть К2Х0 в данном случае необходимо. Ненужные биты можно замаскировать. Например: WAND K2X0 H1F K2M0, если хотите иметь результат в слове битов K2M0, либо WAND K2X0 H1F D0, если в регистре D0. Константа-маска содержит нули в позициях битов, которые нужно игнорировать..... да, я пробежался по всем темам этой ветки форума, видел эту тему, но это не то что было в вопросу, хотя в программе я буду использовать эти инструкции и подходы. дело в том, что существующая программа написана в лоб, т.е. в ней описаны все возможные варианты, таких контроллеров 18 и все отличаются программами - мне нужно унифицировать, так как они все выполняют одно и то же. |
|
|
Текстовая версия | Сейчас: 23.09.2024 - 15:47 |