FX2N -Биты, сгрупированные в слова |
Здравствуйте, гость ( Вход | Регистрация )
FX2N -Биты, сгрупированные в слова |
21.01.2017 - 19:11
Сообщение
#1
|
|
Гигант мысли Группа: Пользователи Сообщений: 253 Регистрация: 21.01.2017 Пользователь №: 10799 |
Добрый вечер.
Подключил к входу FX2N галетный переключатель на 18 положений,выход переключателя в двоичным коде 5 проводов. Пробую программировать K1X0 работает только Х0-Х1-Х2-Х3, пятый вход не работает. Делаю К2Х0 работают все 8 входов Х0 по Х7. Мне надо только 5 входов. И такая же ситуация с выходами К1Y0,выходов надо 10 Кто подскажет как сгруппировать биты? |
|
|
21.01.2017 - 20:17
Сообщение
#2
|
|
Гигант мысли Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 |
Биты объединяются в слова только группами по 4, то есть К2Х0 в данном случае необходимо.
Ненужные биты можно замаскировать. Например: WAND K2X0 H1F K2M0, если хотите иметь результат в слове битов K2M0, либо WAND K2X0 H1F D0, если в регистре D0. Константа-маска содержит нули в позициях битов, которые нужно игнорировать. Сообщение отредактировал Sergei Troizky - 21.01.2017 - 20:17 -------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
21.01.2017 - 20:42
Сообщение
#3
|
|
Гигант мысли Группа: Пользователи Сообщений: 253 Регистрация: 21.01.2017 Пользователь №: 10799 |
Биты объединяются в слова только группами по 4, то есть К2Х0 в данном случае необходимо. Ненужные биты можно замаскировать. Например: WAND K2X0 H1F K2M0, если хотите иметь результат в слове битов K2M0, либо WAND K2X0 H1F D0, если в регистре D0. Константа-маска содержит нули в позициях битов, которые нужно игнорировать. "Ненужные биты можно замаскировать."А с ними я смогу работать как обычно? А то входа и выхода и так в дефиците. |
|
|
22.01.2017 - 09:23
Сообщение
#4
|
|
Гигант мысли Группа: Пользователи Сообщений: 408 Регистрация: 3.08.2014 Пользователь №: 10311 |
"Ненужные биты можно замаскировать."А с ними я смогу работать как обычно? А то входа и выхода и так в дефиците. Да, сможете. -------------------- There are only 10 types of people in the world — those who understand binary, and those who don't.
|
|
|
22.01.2017 - 21:40
Сообщение
#5
|
|
Гигант мысли Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 |
Входы, которые нужно игнорировать, маскируются лишь при копировании группы в слово-получатель.
Ничто не мешает использовать их для других целей. Что касается выходов, там процедура немного сложнее. Для передачи пяти младших битов из D0 на Y0..Y4, не затрагиваяY5..Y7, необходимо выполнить две операции: WAND K2Y0 HE0 D1 WOR D0 D1 K2Y0 Первая инструкция запоминает во вспомогательном регистре D1 состояние битов Y5..Y7. Константа-маска содержит единицы только в этих позициях. Вторая инструкция дописывает биты, которыми нужно управлять, и отправляет все слово на выходы. -------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
22.01.2017 - 22:52
Сообщение
#6
|
|
Гигант мысли Группа: Пользователи Сообщений: 253 Регистрация: 21.01.2017 Пользователь №: 10799 |
Спасибо,завтра попробую в железе.
В симуляторе вроде работает |
|
|
23.01.2017 - 18:56
Сообщение
#7
|
|
Гигант мысли Группа: Пользователи Сообщений: 253 Регистрация: 21.01.2017 Пользователь №: 10799 |
Закачал,все работает и вход и выход.
Кто подскажет с чего начать? Как писал выше Подключил к входу FX2N галетный переключатель на 18 положений,выход переключателя в двоичным коде 5 проводов. К десяти выходам буду подключать эл. муфты 10 шт.(18 комбинаций-по 10 бит) Как организовать такую логику работы если например с 1 положения включить на 18 положение то выход должен выдать 11 комбинацию потом задержка 0,5 с потом обнулить выход, выдать 14 комбинацию потом задержка 0,5 с затем обнулить выход, выдать 17 комбинацию потом задержка 0,5 с затем обнулить выход, и вкл. 18 комбинацию обнулять не надо. Если с 18 на 1 то в обратной последовательности. На переключателе ноля не будет, всегда будет какая нибудь комбинация Как новичку в чем удобней начать писать LD (Ladder Diagrm), FBD (Functional Block Diagram), ST (Structured Text) |
|
|
24.01.2017 - 09:55
Сообщение
#8
|
|
Гигант мысли Группа: Пользователи Сообщений: 408 Регистрация: 3.08.2014 Пользователь №: 10311 |
Закачал,все работает и вход и выход. Кто подскажет с чего начать? Как писал выше Подключил к входу FX2N галетный переключатель на 18 положений,выход переключателя в двоичным коде 5 проводов. К десяти выходам буду подключать эл. муфты 10 шт.(18 комбинаций-по 10 бит) Как организовать такую логику работы если например с 1 положения включить на 18 положение то выход должен выдать 11 комбинацию потом задержка 0,5 с потом обнулить выход, выдать 14 комбинацию потом задержка 0,5 с затем обнулить выход, выдать 17 комбинацию потом задержка 0,5 с затем обнулить выход, и вкл. 18 комбинацию обнулять не надо. Если с 18 на 1 то в обратной последовательности. На переключателе ноля не будет, всегда будет какая нибудь комбинация Что-то как то не совсем понятно... Что значит 18 комбинаций-по 10 бит? Как новичку в чем удобней начать писать LD (Ladder Diagrm), FBD (Functional Block Diagram), ST (Structured Text) LD, FBD -------------------- There are only 10 types of people in the world — those who understand binary, and those who don't.
|
|
|
24.01.2017 - 12:15
Сообщение
#9
|
|
Гигант мысли Группа: Пользователи Сообщений: 253 Регистрация: 21.01.2017 Пользователь №: 10799 |
ВХОД 18 переключений
Х0-Х4 в двоичном -1 -2 -3 - - -11 - -14 - -17 -18 ВЫХОД Y1=0 Y2=0 Y3=0 Y4=0 Y5=0 Y6=0 Y7=0 Y8=0 Y9=0 Вот так примерно,каждому из 18 положений будет своя комбинация выдаваться в порт Y. Например первому 1-0000000111; 2-0111000111; 3-1010101000; и т.д. Сообщение отредактировал VAL_64 - 24.01.2017 - 12:23 |
|
|
24.01.2017 - 14:21
Сообщение
#10
|
|
Гигант мысли Группа: Пользователи Сообщений: 408 Регистрация: 3.08.2014 Пользователь №: 10311 |
ВХОД 18 переключений Х0-Х4 в двоичном -1 ... Вот так примерно,каждому из 18 положений будет своя комбинация выдаваться в порт Y. Например первому 1-0000000111; 2-0111000111; 3-1010101000; и т.д. Я так понял - каждому из 18-ти положений галетника на выходе должна получится некая комбинация вкл/откл битов? Ну это просто, засылайте нужное число на выхода командой MOV. 1- MOV K7 K3Y0 (десятичной константой) 2- MOV 2#111000111 K3Y0 (в бинарном виде) 3- MOV H2A8 K3Y0 (16-ричной константой) и т.д... с применением обрезных масок, как вам это показали выше. Y6=0 Y7=0 Y8 и Y9 в природе не существуют! -------------------- There are only 10 types of people in the world — those who understand binary, and those who don't.
|
|
|
24.01.2017 - 14:37
Сообщение
#11
|
|
Гигант мысли Группа: Пользователи Сообщений: 253 Регистрация: 21.01.2017 Пользователь №: 10799 |
1- MOV K7 K3Y0 (десятичной константой)
2- MOV 2#111000111 K3Y0 (в бинарном виде) 3- MOV H2A8 K3Y0 (16-ричной константой) С этим я разобрался по про бывал. Вот так хочу сделать что то не сображу если например с 1 положения включить на 18 положение то выход должен выдать 11 комбинацию потом задержка 0,5 с потом обнулить выход, выдать 14 комбинацию потом задержка 0,5 с затем обнулить выход, выдать 17 комбинацию потом задержка 0,5 с затем обнулить выход, и вкл. 18 комбинацию обнулять не надо. Если с 18 на 1 то в обратной последовательности. |
|
|
24.01.2017 - 14:54
Сообщение
#12
|
|
Гигант мысли Группа: Пользователи Сообщений: 408 Регистрация: 3.08.2014 Пользователь №: 10311 |
если например с 1 положения включить на 18 положение то выход должен выдать 11 комбинацию потом задержка 0,5 с потом обнулить выход, выдать 14 комбинацию потом задержка 0,5 с затем обнулить выход, выдать 17 комбинацию потом задержка 0,5 с затем обнулить выход, и вкл. 18 комбинацию обнулять не надо. Если с 18 на 1 то в обратной последовательности. Ну, как вариант(ы): 1 (просто) - использовать STL... (шаги с переходами). 2 (сложнее) - описать все 18 ситуаций и скакать по лабелам (меткам в программе), в зависимости от того, какой код приходит с галетника. 3 (достаточно сложно, но компактно) - крутить в цикле FOR-NEXT с заранее созданными массивами, размер которых и значения в ячейках соответствуют "комбинации" включения выходов. Через таймер (0.5с) двигаться по массиву. Цитата если например с 1 положения включить на 18 положение то... Если с 18 на 1 то в обратной последовательности. А если с 17-го на 18-й? Или со 2-го на первый? У вас эти комбинации определяются как? Номером (кодом) нового значения галетника или в зависимости откуда произошел переход на это значение? -------------------- There are only 10 types of people in the world — those who understand binary, and those who don't.
|
|
|
24.01.2017 - 15:01
Сообщение
#13
|
|
Гигант мысли Группа: Пользователи Сообщений: 408 Регистрация: 3.08.2014 Пользователь №: 10311 |
Цитата выход должен выдать 11 комбинацию потом задержка 0,5 с потом обнулить выход, выдать 14 комбинацию потом задержка 0,5 с затем обнулить выход выдать 17 комбинацию ... При записи по выходам нового значения - обнуление выходов не требуется. Они и без этого примут новое значение, пересланное в порт... -------------------- There are only 10 types of people in the world — those who understand binary, and those who don't.
|
|
|
24.01.2017 - 15:43
Сообщение
#14
|
|
Гигант мысли Группа: Пользователи Сообщений: 253 Регистрация: 21.01.2017 Пользователь №: 10799 |
Орентируемся на значения галетника.
С 1 по 11 вкл. сразу, например если галетник стоит на 2 вкл. сразу вторую комбинацию если галетник вкл. на 5 то вкл. пятую комбинацию. Если например галетник вкл. на 16 то у нас должна вкл. 11 потом 14 затем 16 (с задержками) Если например галетник вкл. на 18 то у нас должна вкл. 11 потом 14 затем 17 а затем 18 (с задержками) |
|
|
24.01.2017 - 16:55
Сообщение
#15
|
|
Гигант мысли Группа: Пользователи Сообщений: 408 Регистрация: 3.08.2014 Пользователь №: 10311 |
GX Works у меня нет, пользуюсь обычным IEC-редактором. Вариант "пятиминутка", не претендует на исключительную идею, в качестве направления куда двигаться, разве что...
Заводим глобальные переменные: 1.GIF ( 10.41 килобайт ) Кол-во скачиваний: 16 Инициализируем массив нужными значениями (это будут коды последовательностей вкл выходов Y): 2.GIF ( 11.15 килобайт ) Кол-во скачиваний: 20 Заведем локальные переменные: 3.GIF ( 7.66 килобайт ) Кол-во скачиваний: 15 Это для случая, когда галетник в положении 1 -11 4.GIF ( 24.27 килобайт ) Кол-во скачиваний: 24 А это, для положения 16 и выше: 5.GIF ( 48.2 килобайт ) Кол-во скачиваний: 32 Для других положений больше 16 - меняется только обведенное красным. В MUX подставляются номера нужных комбинаций из массива aCombs и изменяется число этих комбинаций. -------------------- There are only 10 types of people in the world — those who understand binary, and those who don't.
|
|
|
Текстовая версия | Сейчас: 25.09.2024 - 04:57 |