IPB

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

27 страниц V   1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> FX2N -Биты, сгрупированные в слова
VAL_64
сообщение 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
Кто подскажет как сгруппировать биты?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Sergei Troizky
сообщение 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


--------------------
Делать надо сразу хорошо. Плохо само получится.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
VAL_64
сообщение 21.01.2017 - 20:42
Сообщение #3


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

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



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

"Ненужные биты можно замаскировать."А с ними я смогу работать как обычно?
А то входа и выхода и так в дефиците.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
acoustik
сообщение 22.01.2017 - 09:23
Сообщение #4


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

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



Цитата(VAL_64 @ 22.01.2017 - 02:42) *
"Ненужные биты можно замаскировать."А с ними я смогу работать как обычно?
А то входа и выхода и так в дефиците.

Да, сможете.


--------------------
There are only 10 types of people in the world — those who understand binary, and those who don't.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Sergei Troizky
сообщение 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.
Константа-маска содержит единицы только в этих позициях.
Вторая инструкция дописывает биты, которыми нужно управлять, и отправляет все слово на выходы.


--------------------
Делать надо сразу хорошо. Плохо само получится.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
VAL_64
сообщение 22.01.2017 - 22:52
Сообщение #6


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

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



Спасибо,завтра попробую в железе.
В симуляторе вроде работает
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
VAL_64
сообщение 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)

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
acoustik
сообщение 24.01.2017 - 09:55
Сообщение #8


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

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



Цитата(VAL_64 @ 24.01.2017 - 00:56) *
Закачал,все работает и вход и выход.

Кто подскажет с чего начать?
Как писал выше
Подключил к входу FX2N галетный переключатель на 18 положений,выход переключателя в двоичным коде 5 проводов.
К десяти выходам буду подключать эл. муфты 10 шт.(18 комбинаций-по 10 бит)
Как организовать такую логику работы если например с 1 положения включить на 18 положение то
выход должен выдать 11 комбинацию потом задержка 0,5 с потом обнулить выход,
выдать 14 комбинацию потом задержка 0,5 с затем обнулить выход,
выдать 17 комбинацию потом задержка 0,5 с затем обнулить выход, и вкл. 18 комбинацию обнулять не надо.
Если с 18 на 1 то в обратной последовательности. На переключателе ноля не будет,
всегда будет какая нибудь комбинация

Что-то как то не совсем понятно... Что значит 18 комбинаций-по 10 бит?

Цитата(VAL_64 @ 24.01.2017 - 00:56) *
Как новичку в чем удобней начать писать 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.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
VAL_64
сообщение 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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
acoustik
сообщение 24.01.2017 - 14:21
Сообщение #10


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

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



Цитата(VAL_64 @ 24.01.2017 - 18:15) *
ВХОД 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-ричной константой)
и т.д... с применением обрезных масок, как вам это показали выше.

Цитата(VAL_64 @ 24.01.2017 - 18:15) *
Y6=0
Y7=0
Y8=0 Y10
Y9=0 Y11

Y8 и Y9 в природе не существуют! biggrin.gif


--------------------
There are only 10 types of people in the world — those who understand binary, and those who don't.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
VAL_64
сообщение 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 то в обратной последовательности.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
acoustik
сообщение 24.01.2017 - 14:54
Сообщение #12


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

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



Цитата(VAL_64 @ 24.01.2017 - 20:37) *
если например с 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.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
acoustik
сообщение 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.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
VAL_64
сообщение 24.01.2017 - 15:43
Сообщение #14


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

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



Орентируемся на значения галетника.

С 1 по 11 вкл. сразу, например если галетник стоит на 2 вкл. сразу вторую комбинацию
если галетник вкл. на 5 то вкл. пятую комбинацию.
Если например галетник вкл. на 16 то у нас должна вкл. 11 потом 14 затем 16 (с задержками)
Если например галетник вкл. на 18 то у нас должна вкл. 11 потом 14 затем 17 а затем 18 (с задержками)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
acoustik
сообщение 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.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

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

 



- Текстовая версия Сейчас: 28.03.2024 - 19:41