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

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

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

Автор: VAL_64 21.01.2017 - 19:11

Добрый вечер.

Подключил к входу FX2N галетный переключатель на 18 положений,выход переключателя в двоичным коде 5 проводов.
Пробую программировать K1X0 работает только Х0-Х1-Х2-Х3, пятый вход не работает.
Делаю К2Х0 работают все 8 входов Х0 по Х7.
Мне надо только 5 входов.
И такая же ситуация с выходами К1Y0,выходов надо 10
Кто подскажет как сгруппировать биты?

Автор: Sergei Troizky 21.01.2017 - 20:17

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

Автор: VAL_64 21.01.2017 - 20:42

Цитата(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

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

Да, сможете.

Автор: Sergei Troizky 22.01.2017 - 21:40

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

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

Автор: VAL_64 22.01.2017 - 22:52

Спасибо,завтра попробую в железе.
В симуляторе вроде работает

Автор: VAL_64 23.01.2017 - 18:56

Закачал,все работает и вход и выход.

Кто подскажет с чего начать?
Как писал выше
Подключил к входу 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

Цитата(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

Автор: VAL_64 24.01.2017 - 12:15

ВХОД 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; и т.д.

Автор: acoustik 24.01.2017 - 14:21

Цитата(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

Автор: VAL_64 24.01.2017 - 14:37

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

Цитата(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-го на первый?
У вас эти комбинации определяются как? Номером (кодом) нового значения галетника или в зависимости откуда произошел переход на это значение?

Автор: acoustik 24.01.2017 - 15:01

Цитата
выход должен выдать 11 комбинацию потом задержка 0,5 с потом обнулить выход,
выдать 14 комбинацию потом задержка 0,5 с затем обнулить выход
выдать 17 комбинацию ...

При записи по выходам нового значения - обнуление выходов не требуется. Они и без этого примут новое значение, пересланное в порт...

Автор: VAL_64 24.01.2017 - 15:43

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

С 1 по 11 вкл. сразу, например если галетник стоит на 2 вкл. сразу вторую комбинацию
если галетник вкл. на 5 то вкл. пятую комбинацию.
Если например галетник вкл. на 16 то у нас должна вкл. 11 потом 14 затем 16 (с задержками)
Если например галетник вкл. на 18 то у нас должна вкл. 11 потом 14 затем 17 а затем 18 (с задержками)

Автор: acoustik 24.01.2017 - 16:55

GX Works у меня нет, пользуюсь обычным IEC-редактором. Вариант "пятиминутка", не претендует на исключительную идею, в качестве направления куда двигаться, разве что...
Заводим глобальные переменные:


Инициализируем массив нужными значениями (это будут коды последовательностей вкл выходов Y):


Заведем локальные переменные:


Это для случая, когда галетник в положении 1 -11


А это, для положения 16 и выше:


Для других положений больше 16 - меняется только обведенное красным. В MUX подставляются номера нужных комбинаций из массива aCombs и изменяется число этих комбинаций.

Автор: acoustik 24.01.2017 - 17:01

UPD:
в четвертой строке не 4 а 2 (кол-во комбинаций минус 1).

Автор: VAL_64 24.01.2017 - 17:05

Просто перебор с 1 по 18
А как со ступенями 11,14,17 не соображу


 

Автор: acoustik 24.01.2017 - 17:11

Цитата(VAL_64 @ 24.01.2017 - 23:05) *
Просто перебор с 1 по 18
А как со ступенями 11,14,17 не соображу

А у вас компилятор никаких ошибок не выдает? blink.gif
Или в ворксе так можно - в один нетворк пихать несколько не связанных между собой процедур?

Автор: acoustik 24.01.2017 - 17:21

Еще одно исправление:

Автор: VAL_64 24.01.2017 - 18:03

Цитата(acoustik @ 24.01.2017 - 18:11) *
Цитата(VAL_64 @ 24.01.2017 - 23:05) *
Просто перебор с 1 по 18
А как со ступенями 11,14,17 не соображу

А у вас компилятор никаких ошибок не выдает? blink.gif
Или в ворксе так можно - в один нетворк пихать несколько не связанных между собой процедур?

Нет.
В симуляторе вроде тоже работает.

Автор: VAL_64 24.01.2017 - 20:34

Цитата(VAL_64 @ 24.01.2017 - 13:15) *
ВХОД 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; и т.д.

Собрал, что то не пойму на выход дает код галетника
А мне надо будет на каждое переключение галетника выводить определенный код на выхода Y...

 

Автор: VAL_64 24.01.2017 - 20:49

Кто подскажет где взять MUX c тремя входами или как сделать,собрать?

 

Автор: acoustik 25.01.2017 - 06:20

Цитата(VAL_64 @ 25.01.2017 - 02:34) *
Собрал, что то не пойму на выход дает код галетника
А мне надо будет на каждое переключение галетника выводить определенный код на выхода Y...

В 6-й строке: вход у элемента AND где Timer1.Status должен быть инверсный.

Цитата(VAL_64 @ 25.01.2017 - 02:34) *
Кто подскажет где взять MUX c тремя входами или как сделать,собрать?

Берете MUX и растягиваете его вниз, пока не будет создано желаемое кол-во входов.
И еще - инструкция MOV в 4-й строке должна быть импульсной (MOVP)

Автор: VAL_64 25.01.2017 - 08:52

В 6-й строке: вход у элемента AND где Timer1.Status должен быть инверсный.



Как поменять инверсию?

Автор: acoustik 25.01.2017 - 09:31

Цитата(VAL_64 @ 25.01.2017 - 14:52) *
В 6-й строке: вход у элемента AND где Timer1.Status должен быть инверсный.



Как поменять инверсию?

Двойной клик возле входа на квадратике.

Автор: VAL_64 25.01.2017 - 15:37

В плюс работает а в обратную с 18-1 нет.
Надо бы выхода Y.... обнулять на время задержек 0.5-1сек.
С первой по 11 получилось без задержек.
Задержки и обнуление порта нужно для переключения эл. муфт,
надо чтобы предыдущая комбинация была выключена на 0.5-1сек. прежде чем вкл. следующая(время на отпускание эл.муфт)

 

Автор: acoustik 25.01.2017 - 15:54

Цитата(VAL_64 @ 25.01.2017 - 21:37) *
В плюс работает а в обратную с 18-1 нет.

А в обратную и не будет, так как я показал лишь примерный план.

Цитата(VAL_64 @ 25.01.2017 - 21:37) *
Надо бы выхода Y.... обнулять на время задержек 0.5-1сек.
С первой по 11 получилось без задержек.
Задержки и обнуление порта нужно для переключения эл. муфт,
надо чтобы предыдущая комбинация была выключена на 0.5-1сек. прежде чем вкл. следующая(время на отпускание эл.муфт)

Нужно яснее выражать свою мысль. Где именно нужны задержки и для чего - стало ясно только сейчас.

Автор: acoustik 25.01.2017 - 16:10

Попробуйте сначала просто разложить сложную задачу на отдельные составляющие. И затем постепенно их воплощать.
Ранее я спрашивал:

Цитата
А если с 17-го на 18-й? Или со 2-го на первый?
У вас эти комбинации определяются как? Номером (кодом) нового значения галетника или в зависимости откуда произошел переход на это значение?

Так вот, для того чтобы реализовать ваш план, нужно как минимум определять - с какой стороны произошло переключение на текущую позицию. С 17 на 18 или с 1 на 18.

Автор: VAL_64 26.01.2017 - 11:21

Вот что получилось.
Тут просто перебираю ступени с 1 по 18
Например стоит галетник на первой ступени включаем 15 у нас идет
задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 2 ступени->задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 3 ступени->задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 4 ступени->задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 5 ступени->задержка 1сек.->обнуление порта Y....->
....
.....
.....
.....
задержка 1 сек.->включение 15 ступени->
затем останавливается и ждет другого переключения ступени
В другую сторону аналогично.
В симуляторе и в железе работает.

Сейчас думаю как сделать переход через 11, 14, 17,
Например стоит галетник на первой ступени включаем 18 у нас идет

задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 11 ступени->задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 14 ступени->задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 17 ступени->задержка 1сек.->обнуление порта Y....->
затем >задержка 1сек.->и включение 18 ступени
В другую сторону аналогично с 18 по 1 через 17, 14, 11,

Выложил файлы может кто посмотрит все ли я делаю правильно по написанию,
да и так какие нюансы бывают.



 

 1___0.2.0.zip ( 187.58 килобайт ) : 4
 

Автор: acoustik 27.01.2017 - 11:35

Цитата(VAL_64 @ 24.01.2017 - 20:37) *
выход должен выдать 11 комбинацию потом задержка 0,5 с потом обнулить выход,
выдать 14 комбинацию потом задержка 0,5 с затем обнулить выход,
выдать 17 комбинацию потом задержка 0,5 с затем обнулить выход,
и вкл. 18 комбинацию обнулять не надо.


Цитата(VAL_64 @ 25.01.2017 - 21:37) *
В плюс работает а в обратную с 18-1 нет.
Надо бы выхода Y.... обнулять на время задержек 0.5-1сек.
С первой по 11 получилось без задержек.
Задержки и обнуление порта нужно для переключения эл. муфт,
надо чтобы предыдущая комбинация была выключена на 0.5-1сек. прежде чем вкл. следующая(время на отпускание эл.муфт)


Цитата(VAL_64 @ 24.01.2017 - 21:43) *
Орентируемся на значения галетника.
С 1 по 11 вкл. сразу, например если галетник стоит на 2 вкл. сразу вторую комбинацию
если галетник вкл. на 5 то вкл. пятую комбинацию.

Если например галетник вкл. на 16 то у нас должна вкл. 11 потом 14 затем 16 (с задержками)
Если например галетник вкл. на 18 то у нас должна вкл. 11 потом 14 затем 17 а затем 18 (с задержками)


Цитата(VAL_64 @ 26.01.2017 - 17:21) *
Вот что получилось.
Тут просто перебираю ступени с 1 по 18
Например стоит галетник на первой ступени включаем 15 у нас идет
задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 2 ступени->задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 3 ступени->задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 4 ступени->задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 5 ступени->задержка 1сек.->обнуление порта Y....->

....

Автор топика, вы не находите, что у вас слишком много противоречий? Это больше смахивает на "делаю то - сам не знаю что".
Для своих познаний в программировании ПЛК вы выбрали себе весьма не тривиальную задачу... Не в обиду.
Сперва бы нужно четко представлять себе то, что хотите сделать и так же доходчиво донести свой вопрос здесь, если вы обращаетесь за помощью.

Автор: acoustik 27.01.2017 - 11:44

Это ваша единственная задача? Или вы действительно хотите освоить предмет?
Такое программирование, как изображено на ваших картинках приведет к тому, что ваши программы будут делать совсем не то, что от них ожидается, несмотря на то, что с виду вроде все правильно.

Автор: VAL_64 27.01.2017 - 12:22

Цитата(acoustik @ 27.01.2017 - 12:44) *
Это ваша единственная задача? Или вы действительно хотите освоить предмет?
Такое программирование, как изображено на ваших картинках приведет к тому, что ваши программы будут делать совсем не то, что от них ожидается, несмотря на то, что с виду вроде все правильно.

Вот я и спрашиваю что, где не так, и на что обратить внимание?

Есть задача избавится от "ЛОГИКА Т" на ст. 1516Ф1 карусельно расточной,
и действительно хочу освоить предмет.

Задача как сделать переход через 11, 14, 17,
Например стоит галетник на первой ступени включаем 18 у нас идет

задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 11 ступени->задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 14 ступени->задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 17 ступени->задержка 1сек.->обнуление порта Y....->
затем >задержка 1сек.->и включение 18 ступени
В другую сторону аналогично с 18 по 1 через 17, 14, 11,

Автор: acoustik 27.01.2017 - 14:28

Цитата(VAL_64 @ 27.01.2017 - 18:22) *
Есть задача избавится от "ЛОГИКА Т" на ст. 1516Ф1 карусельно расточной,
и действительно хочу освоить предмет.

Тогда не делайте никогда так:

В какой последовательности и как выполнятся все эти несвязанные процедуры, запихнутые в один нетворк? От сюда потом получаются непонятные глюки, которые не так просто отловить. Не знаю как в GX Works'е, но вот в IEC Developer такая белиберда при компиляции приводит к целой куче предупреждений, которые режут глаз.
Правило: одна строка (нетворк) - одна логическая цепь.

Автор: acoustik 27.01.2017 - 14:35

Цитата(VAL_64 @ 27.01.2017 - 18:22) *
Задача как сделать переход через 11, 14, 17,
Например стоит галетник на первой ступени включаем 18 у нас идет

задержка 1сек.->обнуление порта Y....->

И есть идеи? Размышления? Какой-нибудь план, который можно обсудить?
Или вам нужно готовое решение?

Автор: VAL_64 27.01.2017 - 14:54

У меня есть рабочий код переключений 11,14,17 ступени
Пытаюсь его реализовать по блочно.



 1.zip ( 603 байт ) : 11
 

Автор: acoustik 27.01.2017 - 15:12

Цитата(VAL_64 @ 27.01.2017 - 20:54) *
У меня есть рабочий код переключений 11,14,17 ступени
Пытаюсь его реализовать по блочно.

Понятно. На ПЛК немного другая интерпретация С-подобного языка. Тут надо мыслить немного по иному...
И проще всего это сделать - хорошо представлять то, что должно получится (сам процесс). Прямой перенос кода с одной платформы (С) на другую (ПЛК) не пройдет.

Автор: VAL_64 29.01.2017 - 15:35

Кто подскажет вот так два выхода можно писать?
Если нельзя то как организовать вывод?
Информация с низу критична или не чего стршного

 

Автор: acoustik 29.01.2017 - 16:12

Цитата(VAL_64 @ 29.01.2017 - 21:35) *
Кто подскажет ...

Видимо, этот "Кто" - буду я. А то народу то тут полно, кому есть что ответить на ваш вопрос biggrin.gif

Цитата(VAL_64 @ 29.01.2017 - 21:35) *
вот так два выхода можно писать?
Если нельзя то как организовать вывод?

Можно.

Цитата(VAL_64 @ 29.01.2017 - 21:35) *
Информация с низу критична или не чего стршного

Эта информация говорит о кол-ве того или иного, использованного в проекте. Для вас не критична (пока что).

Автор: acoustik 29.01.2017 - 16:53

В пакете GX Works не работаю, так как считаю его отстойным не очень удобным инструментом. Если обзаведетесь https://yadi.sk/d/C12ayGbX3BeBMz редактором, то сможете посмотреть как реализовал https://yadi.sk/d/13lheAz03BeF3C. Немного снабдил комментариями. Чтобы они читались нормально, а не кракозябрами, нужно https://yadi.sk/d/_o6jYiFf3BeBJP. Это файл реестра - добавить в систему и пере-загрузится.
В книге по GX Works пишут, что им можно открывать проекты созданные в IEC редакторе, однако, они будут представлены лишь в LD-стиле, и поэтому понять вам от туда мало что удастся.

Автор: VAL_64 29.01.2017 - 18:25

Цитата(acoustik @ 29.01.2017 - 17:53) *
В пакете GX Works не работаю, так как считаю его отстойным не очень удобным инструментом. Если обзаведетесь https://yadi.sk/d/C12ayGbX3BeBMz редактором, то сможете посмотреть как реализовал https://yadi.sk/d/13lheAz03BeF3C. Немного снабдил комментариями. Чтобы они читались нормально, а не кракозябрами, нужно https://yadi.sk/d/_o6jYiFf3BeBJP. Это файл реестра - добавить в систему и пере-загрузится.
В книге по GX Works пишут, что им можно открывать проекты созданные в IEC редакторе, однако, они будут представлены лишь в LD-стиле, и поэтому понять вам от туда мало что удастся.

Огромное спасибо.

Автор: acoustik 29.01.2017 - 21:03

Да, и на железе не проверял из-за отсутствия такового. Есть FX3U, но лень проводки подключать... wink.gif
Что касается перепрыгивания через комбинации: только на 18-м положении галетного переключателя нужно отработать 11-14-17 (17-14-11)? Уточните этот вопрос, завтра постараюсь добавить в проект, при наличии свободного времени и выложу.

Автор: Sergei Troizky 30.01.2017 - 00:22

Пару слов для VAL_64, касательно IEC Developer-а.
IEC не о Вас заботится, а о себе. Им нужно бесконечно выдумывать что-то новое, лишь бы оправдать свое существование. И это новое не всегда лучше, а часто и просто надумано.
Софт для работы с ПЛК должен быть заточен на мониторинг и отладку работы оборудования, а не написание в тиши офиса способом удобным исходному программисту.
Формат LD изначально предназначен для визуализации логики, и на сегодняшний день ничего лучшего для этой цели не придумано.
Да, массивные вычисления более естественно выглядят в текстовом формате, но понимать сколь-либо сложные логические конструкции и мониторить их состояние в структурированном тексте- мягко говоря, сложно. Кроме того, код, после компиляции из языка высокого уровня, всегда далек от оптимального.
LD необходим и достаточен для работы с любым PLC, почему и поддерживается всеми производителями, для всех моделей.
Просто примите к сведению мнение опытного специалиста, а дальше поступайте как знаете.
Вступать в дискуссии с приверженцами ST я не буду.

Автор: VAL_64 30.01.2017 - 10:03

Установил IEC Developer 7.04.
Загрузил, все заработало сразу - перебор с 1 по 18 и с 18 по 1.

Ступени разгона или торможения являются 11,14,17 ступени.
С 1 по 11 включаются сразу без ступеней разгона,как я понял из описания,
например
включил 3 - включилась третья
включил 5 - сразу включилась пятая, перебирать с 1 по 5 не надо.
включил 11 - сразу включилась 11
Так если выбрана скорость с 12 по 14 скорость включается через 11 ступень
с 15 по 17 заданная скорость включится через две ступени разгона 11 и 14,
18-я скорость включится через три ступени разгона 11,14,17.
Переход на пониженную скорость также осуществляется с последовательнным
торможением на тех же ступенях 11,14,17
Переключение муфт происходит с выдержкой времени 1 сек.

Маленький вопрос многие элементы на схеме с окончанием _М, что это значит?

Автор: acoustik 30.01.2017 - 10:30

Цитата(VAL_64 @ 30.01.2017 - 16:03) *
Маленький вопрос многие элементы на схеме с окончанием _М, что это значит?

Постфикс _M означает, что этот элемент из библиотеки производителя (митсубиси). В пуле библиотек есть два вида последних: стандартные (_Е) и производителя (_М). Стандартные элементы присутствуют во многих средах программирования, не связанных с митсубиси. CodeSys, например...

Автор: acoustik 30.01.2017 - 10:52

Цитата(Sergei Troizky @ 30.01.2017 - 06:22) *
Пару слов для VAL_64, касательно IEC Developer-а.
IEC не о Вас заботится, а о себе. Им нужно бесконечно выдумывать что-то новое, лишь бы оправдать свое существование. И это новое не всегда лучше, а часто и просто надумано.

Очевидно, что это новое и есть среда GX Works, а впоследствии GX Works 2. IEC Developer древняя тема, существующая задолго до ГХ Воркса и уже давно забытая производителем и не поддерживается у них (не имеет продолжения развития). Работа в IEC - лишь в силу привычки. Плюс ко всему, IEC хоть и старый, но лишен всех тех недостатков и глюков, присутствующих в GX Works'ах. Одно только сквозное присвоение глобальных переменных чего стоит. В ворксе же, для этого, нужно лезть в навигатор и т.д. ... Короче танцы smile.gif

Цитата(Sergei Troizky @ 30.01.2017 - 06:22) *
Софт для работы с ПЛК должен быть заточен на мониторинг и отладку работы оборудования, а не написание в тиши офиса способом удобным исходному программисту.
Формат LD изначально предназначен для визуализации логики, и на сегодняшний день ничего лучшего для этой цели не придумано.
Да, массивные вычисления более естественно выглядят в текстовом формате, но понимать сколь-либо сложные логические конструкции и мониторить их состояние в структурированном тексте- мягко говоря, сложно. Кроме того, код, после компиляции из языка высокого уровня, далек от оптимального.
LD необходим и достаточен для работы с любым PLC, почему и поддерживается всеми производителями, для всех моделей.
Просто примите к сведению мнение опытного специалиста, а дальше поступайте как знаете.
Вступать в дискуссии с приверженцами ST я не буду.

Тоже поддерживаю мнение. Но, видимо, в данном случае (с автором) - речь идет о языках LD vs FBD... ? На ST я, к примеру, не написал еще ни одной программы, даже сколь-нибудь малого функц. блока. rolleyes.gif

ЗЫ: это не в качестве дискуссии, тапками не закидывать smile.gif
ЗЫЫ: и LD и FBD являются прекрасными инструментами для мониторинга. Особенно если уметь этим хорошо пользоваться.

Автор: acoustik 30.01.2017 - 11:04

Цитата(VAL_64 @ 26.01.2017 - 17:21) *
Вот что получилось.
Тут просто перебираю ступени с 1 по 18
Например стоит галетник на первой ступени включаем 15 у нас идет
задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 2 ступени->задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 3 ступени->задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 4 ступени->задержка 1сек.->обнуление порта Y....->
задержка 1 сек.->включение 5 ступени->задержка 1сек.->обнуление порта Y....->
....
.....
.....
.....
задержка 1 сек.->включение 15 ступени->
затем останавливается и ждет другого переключения ступени ...


Цитата(VAL_64 @ 30.01.2017 - 16:03) *
Ступени разгона или торможения являются 11,14,17 ступени.
С 1 по 11 включаются сразу без ступеней разгона,как я понял из описания,
например
включил 3 - включилась третья
включил 5 - сразу включилась пятая, перебирать с 1 по 5 не надо.
включил 11 - сразу включилась 11
...

Может быть это описание выложите, а то что-то я вообще запутался как надо то? biggrin.gif

Автор: VAL_64 30.01.2017 - 11:48

Перебирать ступени с 1 по 18 нужно для суппорта,
а ступени разгона или торможения 11,14,17 для планшайбы(шпинделя).
Описание вечером выложу. Архив правда большой.

Автор: VAL_64 30.01.2017 - 19:13

Не скромный вопрос как в ответе отправить файл архива 360Мб.

https://yadi.sk/d/hUDSkNN43Brrgi Ссылка на янд.диск

Автор: acoustik 30.01.2017 - 19:17

Цитата(VAL_64 @ 31.01.2017 - 01:13) *
Не скромный вопрос как в ответе отправить файл архива 360Мб.

Ну... такие файлы конечно проще на сетевые ресурсы выкладывать и давать ссылки. И тоже нескромный вопрос - это столько весит описание ?? 360 метров? blink.gif

Автор: VAL_64 30.01.2017 - 19:55

Цитата(VAL_64 @ 30.01.2017 - 20:13) *
Не скромный вопрос как в ответе отправить файл архива 360Мб.

https://yadi.sk/d/hUDSkNN43Brrgi Ссылка на янд.диск


Это фотографии книги.

Автор: acoustik 30.01.2017 - 20:00

Цитата(VAL_64 @ 31.01.2017 - 01:55) *
Цитата(VAL_64 @ 30.01.2017 - 20:13) *
Не скромный вопрос как в ответе отправить файл архива 360Мб.

https://yadi.sk/d/hUDSkNN43Brrgi Ссылка на янд.диск


Это фотографии книги.

Охренеть. 398 метров...
Поставил качать.

Автор: VAL_64 30.01.2017 - 20:29

Я долго вникал как это все работает,с первого раза не с разу поймешь
Если коротко в двух словах
Минимальная ступень 1.
С начала кнопкой вкл. включается главнный двигатель и насос смазки,планшайба пока стоит- муфты выкл.
потом кнопкой вкл. планшайбы должны включится муфты,в зависимости где стоит галетник на ступени.
С 1 по 11 включаются сразу без ступений разгона,как я понял из описания
Ступени разгона или торможения являются 11,14,17 ступени.
Так если при отключенной планшайбе выбрана скорость с 12 по 14-выбранная скорость включается через 11ступень
с15по 17 заданная скорость включится через две ступени разгона 11 и 14,
18-я скорость включится через три ступени разгона 11,14,17.
Переход на пониженную скорость или нажатие кнопки стоп планшайбы также осуществляется с последовательнным торможением на тех же ступенях 11,14,17 и закнчиватся командой тормоз.
Переключение муфт присходит с выдержкой времени 1 сек.
Отключение или полный останов планшайбы можно приравнять к
переключению с заданной скорости вращения в первое положение.Например,при нажатии на кнопку Стоп планшайбы,
если стоит 18 ступень, должно произойти снижение скорости через 17,14,11 ступени, а затем
включить две муфты тормоза ЭМ8 и ЭМ9 и планшайба тормозит до полной остановки.

Еще суппорт с поперечной и продольной подачей,тоже с муфтами
Джостик на четыре положения и одна кнопка сверху
Галетник на семь положений выбор режимов работы.
Но это все потом.



 

Автор: acoustik 30.01.2017 - 20:53

Цитата(VAL_64 @ 31.01.2017 - 02:29) *
Я долго вникал как это все работает,с первого раза не с разу поймешь
Если коротко в двух словах
Минимальная ступень 1.
С начала кнопкой вкл. включается главнный двигатель и насос смазки,планшайба пока стоит- муфты выкл.
....

Токарный станок напоминает фото smile.gif. Нужно переварить это все, чтобы хоть как-то понять процесс...
Какой контроллер будет всем этим управлять?

Автор: VAL_64 30.01.2017 - 21:09

Станок карусельно-расточной по идеи как токарный только
шпиндель(планшайба)стоит вертикально

Пока я эксперименты ставлю на PLC FX2N-64MT
32 вход 32 выход и сом порт,программирую через него.
Входов-выходов с натягом вроде хватает
В описании много написано в автоматическом режиме-это не надо,
будет только ручной как на простом токарном станке.
Будут растачивать трубы большого диаметра,точность +\- 1мм.

Автор: acoustik 30.01.2017 - 21:16

Цитата(VAL_64 @ 31.01.2017 - 03:09) *
Станок карусельно-расточной по идеи как токарный только
шпиндель(планшайба)стоит вертикально

Пока я эксперименты ставлю на PLC FX2N-64MT
32 вход 32 выход и сом порт,программирую через него.
Входов-выходов с натягом вроде хватает

Ясно... Когда то я делал управление к 3-х осевому фрезерному станку, тоже ваш напоминал по виду. Но там я МК АВР использовал и соответственно С-программирование.
А с ПЛК вы давно знакомы? В частности с FX? Судя по стилю вашего программирования - думаю чуть ли не впервые столкнулись... smile.gif

Автор: VAL_64 30.01.2017 - 21:50

Цитата(acoustik @ 30.01.2017 - 22:16) *
Цитата(VAL_64 @ 31.01.2017 - 03:09) *
Станок карусельно-расточной по идеи как токарный только
шпиндель(планшайба)стоит вертикально

Пока я эксперименты ставлю на PLC FX2N-64MT
32 вход 32 выход и сом порт,программирую через него.
Входов-выходов с натягом вроде хватает

Ясно... Когда то я делал управление к 3-х осевому фрезерному станку, тоже ваш напоминал по виду. Но там я МК АВР использовал и соответственно С-программирование.
А с ПЛК вы давно знакомы? В частности с FX? Судя по стилю вашего программирования - думаю чуть ли не впервые столкнулись... smile.gif

На МК AVR делал цифровую индикацию для фрезерных станков ФП37 с ЧПУ Курс 332
Электронный ввод программ с microSD в место перфолент замена, ФСУ Консул,
Замена магнитной ленты (носитель программы)на фрезерном станке с ЧПУ ПФСТ-500,ставил компьютер.

В частности с FX- первый раз.
С S7-200 немного сталкивался,но это было давно.
Стиля программирования PLC у меня практический нет.
Компьютер хотел ставить в место PLC получается громоздко и надежность падает.
Учится никогда не поздно.
В принципе я обслуживаю,ремонтирую все эти ЧПУ,привода,контроллеры,ну и станки целиком.





Автор: acoustik 31.01.2017 - 06:23

Цитата(VAL_64 @ 31.01.2017 - 03:50) *
Цитата(acoustik @ 30.01.2017 - 22:16) *
Цитата(VAL_64 @ 31.01.2017 - 03:09) *
Станок карусельно-расточной по идеи как токарный только
шпиндель(планшайба)стоит вертикально

Пока я эксперименты ставлю на PLC FX2N-64MT
32 вход 32 выход и сом порт,программирую через него.
Входов-выходов с натягом вроде хватает

Ясно... Когда то я делал управление к 3-х осевому фрезерному станку, тоже ваш напоминал по виду. Но там я МК АВР использовал и соответственно С-программирование.
А с ПЛК вы давно знакомы? В частности с FX? Судя по стилю вашего программирования - думаю чуть ли не впервые столкнулись... smile.gif

На МК AVR делал цифровую индикацию для фрезерных станков ФП37 с ЧПУ Курс 332
Электронный ввод программ с microSD в место перфолент замена, ФСУ Консул,
Замена магнитной ленты (носитель программы)на фрезерном станке с ЧПУ ПФСТ-500,ставил компьютер.

В частности с FX- первый раз.
С S7-200 немного сталкивался,но это было давно.
Стиля программирования PLC у меня практический нет.
Компьютер хотел ставить в место PLC получается громоздко и надежность падает.
Учится никогда не поздно.
В принципе я обслуживаю,ремонтирую все эти ЧПУ,привода,контроллеры,ну и станки целиком.

Понятно.
Просмотрел талмут - параграф 4.3.5: я так понял, что набор/сброс скорости в пределах этого участка происходит так - сначала счетчик натикивает сколько-то тактов, пока не сравняется с уставкой и затем сразу включает муфты заданной новой скорости (подается сигнал на усилители). Это в любом случае приводит к некоторой задержке перед включением новой скорости. От сюда вопрос - а ПЛК будет видеть фактическую скорость (обратная связь) ? А вот про обнуление сигналов на муфты я чет не нашел... Хотя теоретически, по идее, должна отключится предыдущая ступень перед включением новой. Тут все зависит от конструкции самой коробки с муфтами.
Параграф 4.3.6 - ну тут все ясно. 11-14-17 ступени разгона/торможения.

Автор: acoustik 31.01.2017 - 06:58

Думаю, алгоритм должен быть такой:
с 1-й ступени на 6-ю: сброс У -> пауза -> вкл муфт 6-й ступени;
с 6-й на 3-ю: сброс У -> пауза -> вкл муфт 3-й ступени;
с 3-й на 15-ю: сброс У -> пауза -> вкл муфт 11-й ступени -> пауза -> сброс У -> пауза -> вкл 14-й ступени -> пауза -> сброс У -> пауза -> вкл 15-й ступени;
с 15-й на 18-ю: сброс У -> пауза -> вкл 17-й ступени -> пауза -> сброс У -> пауза -> вкл 18-й ступени.

ну и при сбросе скорости - все в обратном порядке.

Автор: VAL_64 31.01.2017 - 10:19

По идеи здесь обратную связь нам и не надо.
Все вкл. и выкл. будут происходить по нашему алгоритму 11-14-17 ; 17-14-11
не зависимо где что включено и как стоит галетник.
Там про обнулении сигналов на муфты нет, есть таблица все возможных задержек и на муфты тоже
Контроль включение муфт нам это тоже не надо,
Все сделано на ЛОГИКЕ Т (герконы)

Вот поправил программу сейчас все переключается без перебора вкл. 15 включилась 15 с задержкой.
Сижу думаю как отфильтровать 11-14-17.

 Plan_Switcher.zip ( 140.51 килобайт ) : 11
 

Автор: acoustik 31.01.2017 - 10:59

Цитата(VAL_64 @ 31.01.2017 - 16:19) *
Вот поправил программу сейчас все переключается без перебора вкл. 15 включилась 15 с задержкой.
Сижу думаю как отфильтровать 11-14-17.

Да, сейчас так и должно быть по идее - просто через задержку включать сразу нужную ступень. Разве что 15-я ступень должна будет включатся через 11-14.
На самом деле это легко осуществимо по методу "тупо в лоб", но это ни фига не энтерпрайзно smile.gif Хочется лаконичного решения.
Надо разделить все 18 позиций условно на две категории: в первой категории позиции без разгона (1-11), а во второй позиции с разгоном (12-18). И выполнять одну из этих подпрограмм, в зависимости от того, куда ткнули галетник.
Через зонные компараторы (ZCP) это просто сделать - заодно и получим маркеры направления (куда смещать индекс) и соответственно в каком порядке шагать по массиву комбинаций ступеням разгона/торможения.

Автор: acoustik 31.01.2017 - 15:11

Тестируйте.

 Plan_Switcher.zip ( 319.17 килобайт ) : 11


Собрал на STL-ах (шагах).

Автор: VAL_64 31.01.2017 - 18:42

Скачал, протестирую завтра с утра блок на работе.
Сейчас пока анализирую вашу программу,

Собрал на STL-ах (шагах).--Как понять?
S0....S3 (Sequence) --Это шаговые маркеры(метки переходов)?
Если эмулятор для IEC Developer?

Автор: acoustik 1.02.2017 - 07:52

Цитата(VAL_64 @ 1.02.2017 - 00:42) *
Собрал на STL-ах (шагах).--Как понять?
S0....S3 (Sequence) --Это шаговые маркеры(метки переходов)?

Так и понимать - шаговое управление. То есть некий процесс разбит на шаги и в каждый отдельно взятый момент времени - выполняется какой-нибудь один из этих шагов. В некоторых ситуациях весьма удобно.
S0....S3 - операнды шаговых состояний.

Цитата(VAL_64 @ 1.02.2017 - 00:42) *
Если эмулятор для IEC Developer?

https://yadi.sk/d/1TYivXvC3C8mm7.

P.S. В программе можно многое сократить и сделать ее компактнее, но я не стал этого делать, чтобы хорошо прослеживалась суть действий. Если закрутится нормально, то можно будет поупрощать...

Автор: VAL_64 1.02.2017 - 09:30

Протестировал, все отлично как надо.
Большое спасибо.

Автор: acoustik 1.02.2017 - 10:01

Цитата(VAL_64 @ 1.02.2017 - 15:30) *
Протестировал, все отлично как надо.
Большое спасибо.

Обнаружил небольшой косяк - если переключатся на меньший диапазон (назад) с одной из ступеней рампа (11,14,17), то эта ступень включается еще раз. Знаю в чем проблема - надо переделать слегка...

Автор: VAL_64 1.02.2017 - 11:45

Закономерность:Если с 11 включить например 15 включится 14->15 и будет всегда так,
пока один раз не переключишь на какую нибудь другую ступень например 10 и
если вернутся опять на 11 включится 11.
Потом переключаем на 15 вот в этом случае опять включится 11 а затем 14->15.

Автор: acoustik 1.02.2017 - 12:20

Цитата(VAL_64 @ 1.02.2017 - 17:45) *
Закономерность:Если с 11 включить например 15 включится 14->15 и будет всегда так,
пока один раз не переключишь на какую нибудь другую ступень например 10 и
если вернутся опять на 11 включится 11.
Потом переключаем на 15 вот в этом случае опять включится 11 а затем 14->15.

Да, такая лабуда. Сейчас разгребусь с делами и переделаю

Автор: acoustik 1.02.2017 - 19:42

Почти закончил, завтра наверное выложу. Без шагов, в обычном виде.

Автор: acoustik 2.02.2017 - 07:41

Ну вот, примерно так:
 Plan_Switcher_2.zip ( 398.64 килобайт ) : 10


Протестировал в симуляторе - глюков не обнаружено.

Автор: VAL_64 2.02.2017 - 08:44

Испытал,вроде нормально погоняю немного.

Автор: VAL_64 2.02.2017 - 10:21

Что то не пойму в симуляторе этот проект не идет,
предыдущие нормально

 

Автор: acoustik 2.02.2017 - 10:30

Цитата(VAL_64 @ 2.02.2017 - 16:21) *
Что то не пойму в симуляторе этот проект не идет,
предыдущие нормально

В сообщении говорится, что надо перекомпилировать проект. Любой новый открытый проект сначала нужно скомпилировать.

Автор: VAL_64 2.02.2017 - 10:42

Цитата(acoustik @ 2.02.2017 - 11:30) *
Цитата(VAL_64 @ 2.02.2017 - 16:21) *
Что то не пойму в симуляторе этот проект не идет,
предыдущие нормально

В сообщении говорится, что надо перекомпилировать проект. Любой новый открытый проект сначала нужно скомпилировать.

Я его компилировал и залил в контролер,в контролере работает в симуляторе не хочет

Автор: acoustik 2.02.2017 - 10:49

Цитата(VAL_64 @ 2.02.2017 - 16:42) *
Цитата(acoustik @ 2.02.2017 - 11:30) *
Цитата(VAL_64 @ 2.02.2017 - 16:21) *
Что то не пойму в симуляторе этот проект не идет,
предыдущие нормально

В сообщении говорится, что надо перекомпилировать проект. Любой новый открытый проект сначала нужно скомпилировать.

Я его компилировал и залил в контролер,в контролере работает в симуляторе не хочет

Симуляторы вообще-то довольно дубовые штуки и весьма тормознутые. Кроме того, некоторые инструкции в них не эмулируются. Судя по картинке - это симулятор от Воркса? Может в нем не идет?
Я прогоняю в 3U через мониторинг, затем меняю плк в проекте на 2N.

Автор: acoustik 2.02.2017 - 10:58

Вот 3-й вариант программы.
 Plan_Switcher_3.zip ( 484.41 килобайт ) : 9


Основан на преобразовании позиций галетника и индекса в позиционный код. На позиц код галетника (текущее положение) накладывается маска с битами ступеней разгона/торможения, тем самым формируются точки останова.
Индекс двигается в ту или иную сторону и при попадании на точку останова - эта комбинация вываливается на выхода Y. И так пока не доедет до позиции галетника.

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

Автор: VAL_64 2.02.2017 - 11:12

Сейчас залью в контролер,попробуем.

Автор: VAL_64 2.02.2017 - 12:07

В третьем варианте что то выхода не одновременно включаются-выключаются,
даже по звуку реле слышно на дисплее этого не видать.
На втором варианте можно остановится,работает вроде не плохо
вот только я забыл, еще будет комбинация муфт тормоза и толчок.
тормоз-0-ступень
толчок-19-ступень
Наверное массив надо увеличит: ARRAY [1..18] ARRAY [0..19]
и толчок-19 ступень и тормоз 0 ступень должны включатся сразу
без ступеней разгона.

Автор: acoustik 2.02.2017 - 12:15

Цитата(VAL_64 @ 2.02.2017 - 18:07) *
В третьем варианте что то выхода не одновременно включаются-выключаются,
даже по звуку реле слышно на дисплее этого не видать.

Хм... У меня транзисторные выхода, звука нет, но по светодиодам вроде не заметно что не одновременно включаются. Во всяком случае неразличимо глазом.

Цитата(VAL_64 @ 2.02.2017 - 18:07) *
На втором варианте можно остановится,работает вроде не плохо
вот только я забыл, еще будет комбинация муфт тормоза и толчок.
тормоз-0-ступень
толчок-19-ступень
Наверное массив надо увеличит: ARRAY [1..18] ARRAY [0..19]
и толчок-19 ступень и тормоз 0 ступень должны включатся сразу
без ступеней разгона.

ARRAY [1..18] = 18 элементов
ARRAY [0..19] = 20 элементов

Я специально создал массив с 1-го элемента, а не с нулевого, дабы было более понятна реализация переключений, так как галетник в нуле быть не может. Ну а так - нет проблем, 0-19 запросто.

Автор: acoustik 2.02.2017 - 12:29

Цитата(VAL_64 @ 2.02.2017 - 18:07) *
В третьем варианте что то выхода не одновременно включаются-выключаются,
даже по звуку реле слышно на дисплее этого не видать.

Да, заметил. Только это не "не одновременное" вкл/выкл, а на короткий период включается следующая комбинация после текущей. И уже знаю почему. Исправить легко.

Цитата(VAL_64 @ 2.02.2017 - 18:07) *
вот только я забыл, еще будет комбинация муфт тормоза и толчок.

Муфты тормоза и толчковая тоже входят в состав этих 10-ти битов ступеней?
Из таблицы видно, что ступени подачи занимают 8 бит. Если всего 10 бит, стало быть старший 9й бит это толчок, а нулевой это тормоз? (не показаны в таблице).

Цитата(VAL_64 @ 2.02.2017 - 18:07) *
На втором варианте можно остановится,работает вроде не плохо

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

Автор: acoustik 2.02.2017 - 12:51

Цитата(VAL_64 @ 2.02.2017 - 18:07) *
и толчок-19 ступень и тормоз 0 ступень должны включатся сразу
без ступеней разгона.

А что включает толчок и тормоз? Не галетник же?
И кстати, при включении питания станка - галетник всегда должен находится (находится) в первом положении?

Если для толчка и тормоза предусмотрены иные органы управления, то ихние коды (комбинации битов) можно просто инжектировать в коды галетника при выдаче на выхода. В моменты, когда тормоз и толчок активны, естественно.
А лучше бы диаграмму какую поглядеть - в каком порядке все это включается...

Автор: VAL_64 2.02.2017 - 13:40

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

Автор: acoustik 2.02.2017 - 13:46

Цитата(VAL_64 @ 2.02.2017 - 19:40) *
Чтобы ступени включались включались кнопкой пуск и выключались кнопкой стоп,
не зависимо какая ступень на галетнике
На толчок стоит тумблер,
На тормоз не каких внешних органов управления нет,он вырабатывается
автоматический при нажатии кнопки стоп(после отработки всех ступений 11,14,17 если включена 18)
когда тумблер включен, кнопка пуск включает не 1-18 ступени а одну комбинацию муфт(толчок)
например 19 ступень:кнопку держишь 19 ступень включена, кнопку отпустил муфты выключились
и через 1 сек.включится тормоз 0- ступен(своя комбинация муфт).
Пока тумблер толчок включен галетник выбор ступений не участвует в прцессе

Вон оно как. Ну теперь ясно.

Автор: acoustik 2.02.2017 - 14:56

А если галетник стоит, к примеру, на 15-й ступени и нажали кнопку пуск - с какой ступени стартанет станок (с какой комбинации муфт) ? Сразу с 11-й, затем 14 и 15? Или с первой?

Автор: VAL_64 2.02.2017 - 15:26

с 11-й, затем 14 и 15.
Логика переключений остается прежней

Автор: acoustik 2.02.2017 - 15:35

Цитата(VAL_64 @ 2.02.2017 - 21:26) *
с 11-й, затем 14 и 15.
Логика переключений остается прежней

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

Автор: VAL_64 2.02.2017 - 15:54

Вот таблица,внизу код в десятичном формате

 

Автор: acoustik 3.02.2017 - 07:55

Протестируйте толчковый режим - так должно быть или нет:
 Plan_Switcher_4.zip ( 145.02 килобайт ) : 6


Кнопка ПУСК - Х5
Кнопка СТОП - Х6
Тумблер режима - Х7 (отключен - нормальный реж; включен - толчковый).

Автор: VAL_64 3.02.2017 - 08:49

Цитата(acoustik @ 3.02.2017 - 08:55) *
Протестируйте толчковый режим - так должно быть или нет:
 Plan_Switcher_4.zip ( 145.02 килобайт ) : 6


Кнопка ПУСК - Х5
Кнопка СТОП - Х6
Тумблер режима - Х7 (отключен - нормальный реж; включен - толчковый).

Да, так работает.

Автор: acoustik 3.02.2017 - 10:44

https://yadi.sk/i/ZunWqj4R3CbiBm

Автор: VAL_64 3.02.2017 - 20:42

Цитата(acoustik @ 3.02.2017 - 11:44) *
https://yadi.sk/i/ZunWqj4R3CbiBm

Посмотрел дома,на работе видео ограничено.
Да красиво получилось.
Я в симуляторе3 вчера попытался немного.

 

Автор: acoustik 4.02.2017 - 04:01

Еще нюанс - если планшайба работает скажем на 15-й ступени и тут тумблер режима толчка включили..... По идее тормозить надо, согласно алгоритму 14-11-стоп?

Автор: acoustik 4.02.2017 - 06:19

4-я версия:  Plan_Switcher_4.zip ( 160.59 килобайт ) : 5


Код оптимизирован. Добавлены процессы пуска и останова.

P.S. В программе P0_Init нужно удалить вторую строку! Забыл убрать... Иначе при старте плк установится маркер симуляции для HMI и физ входа отключатся от программы.

Автор: VAL_64 4.02.2017 - 09:06

Цитата(acoustik @ 4.02.2017 - 05:01) *
Еще нюанс - если планшайба работает скажем на 15-й ступени и тут тумблер режима толчка включили..... По идее тормозить надо, согласно алгоритму 14-11-стоп?

Да, согласно алгоритму 14-11-стоп.
По идеи на ходу включать толчок ни к чему,или вообще тумблер должен бездействовать на ходу.
Толчок нужен, чтобы толчками провернуть деталь зажатую на планшайбе при снятии и установке.

Автор: acoustik 4.02.2017 - 09:17

Цитата(VAL_64 @ 4.02.2017 - 15:06) *
Да, согласно алгоритму 14-11-стоп.
По идеи на ходу включать толчок ни к чему,или вообще тумблер должен бездействовать на ходу.
Толчок нужен, чтобы толчками провернуть деталь зажатую на планшайбе при снятии и установке.

Вот поэтому и спросил, так как всегда надо предусматривать определенные блокировки на всякие возможные случаи, в том числе "от дурака" smile.gif

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

Автор: VAL_64 4.02.2017 - 10:08

Цитата(acoustik @ 4.02.2017 - 07:19) *
Код оптимизирован. Добавлены процессы пуска и останова.

Один вход для аварийной остановки надо наверное предусмотреть.

Да!!! Надо потихоньку все переварить.
Хочу в симуляторе попробовать,ход действий кратко не подскажите с чего начать.
GT Designer2 или 3 ?
GT Simulator2 или 3 ?
из пакета iQ-Works ?
До понедельника на контролере не могу испытать.

Автор: acoustik 4.02.2017 - 10:24

Цитата(VAL_64 @ 4.02.2017 - 16:08) *
Цитата(acoustik @ 4.02.2017 - 07:19) *
Код оптимизирован. Добавлены процессы пуска и останова.

Один вход для аварийной остановки надо наверное предусмотреть.

Предусмотрим.

Цитата(VAL_64 @ 4.02.2017 - 16:08) *
Да!!! Надо потихоньку все переварить.
Хочу в симуляторе попробовать,ход действий кратко не подскажите с чего начать.
GT Designer2 или 3 ?
GT Simulator2 или 3 ?
из пакета iQ-Works ?
До понедельника на контролере не могу испытать.

В одно время, использовал GT Designer2, пока не было 3-го. Оба устраивали. Но это было тогда, когда я использовал панели мистубиси, серии GOT. Потом с GT Des 3 из пакета iQ Works начались определенные трудности, связанные с тем, что криво работало на Win7 x64. Приходилось ставить виртуальные машины и... короче танцевать с бубном. Спустя какое-то время я вовсе отказался от митсубисевских панелей, так как им нашлась достойная замена, и соответственно перестал пользоваться софтом GT Designer.
Но GT Simulator 3 здорово выручал, при отсутствии "настоящей" панели можно было графически эмулировать проект прям на экране компа.
В настоящий момент, все это барахло, входящее в комплект GX Works, iQ Works - мне абсолютно не нужно. Для программирования ПЛК митсубиси юзаю только GX IEC Developer. Сенсорные панели, которые использую сейчас, имеют собственную среду разработки, причем со сквозными каналами к ПЛК - то есть через панель среда подключается к ПЛК (впрочем, как и у некоторых панелей Митсу) и управлять им можно прям с компа, не заливая проект в панель (именно так и сделано было видео, в одном из предыдущих моих постов).

Это я все к тому, что я не объективный советчик по этим вопросам - ставьте и пробуйте разные среды, пока какая-нибудь не приглядится smile.gif.

Автор: VAL_64 4.02.2017 - 10:42

Цитата(acoustik @ 4.02.2017 - 11:30) *
Да, еще вопрос:
время действия тормоза может быть более 1 сек? Или 1 сек "за глаза"?

В книге есть таблица задержек, сейчас уточню.
Желательно конечно чтобы можно было менять(подбирать).
Коробки скоростей старые не знай как себя будут вести все эти переключения.

Автор: acoustik 4.02.2017 - 10:44

Цитата(VAL_64 @ 4.02.2017 - 16:08) *
Цитата(acoustik @ 4.02.2017 - 07:19) *
Код оптимизирован. Добавлены процессы пуска и останова.

Один вход для аварийной остановки надо наверное предусмотреть.

Согласно ПУЭ, аварийная остановка должна обеспечиваться "железным" выключателем, обесточивающим всю установку целиком. Вряд ли на контроллер надо возлагать такое действие.

Автор: acoustik 4.02.2017 - 10:53

Цитата(VAL_64 @ 4.02.2017 - 16:42) *
Цитата(acoustik @ 4.02.2017 - 11:30) *
Да, еще вопрос:
время действия тормоза может быть более 1 сек? Или 1 сек "за глаза"?

В книге есть таблица задержек, сейчас уточню.
Желательно конечно чтобы можно было менять(подбирать).
Коробки скоростей старые не знай как себя будут вести все эти переключения.

Менять можно, в программе. То есть приходишь к станку с ноутбуком, ставишь значения таймеров - проверяешь на реальных пусках/остановках. То же касается и времени переключения муфт (время работы ступеней и время паузы).
А если хватает входов, то можно сделать настройку времени задержки (работы тормоза) перемычками с определенной дискретностью. Тогда ноутбук не нужен wink.gif .

Автор: acoustik 4.02.2017 - 11:24

Цитата(acoustik @ 4.02.2017 - 16:44) *
Согласно ПУЭ, аварийная остановка должна обеспечиваться "железным" выключателем, обесточивающим всю установку целиком. Вряд ли на контроллер надо возлагать такое действие.

Но если сильно хочется, то включайте кнопкой маркер М8034. Он вырубит все выхода ПЛК, в независимости от программы.

Автор: VAL_64 4.02.2017 - 11:25

Цитата(acoustik @ 4.02.2017 - 11:53) *
А если хватает входов, то можно сделать настройку времени задержки (работы тормоза) перемычками с определенной дискретностью. Тогда ноутбук не нужен .

Да это, как мне кажется не нужно задержки менять придется при первой настройке
или же после ремонта коробки скоростей.
Вот таблица задержек.
Я писал 1сек. это для первого пуска даже можно будет увеличить
Помечено-это отключение главного двигателя если планшаба стоит не включена более 2х минут
наверное выход надо использовать будет, пускатель главного двигателя будет управляться
без контролера другими кнопками Пуск и Стоп,будем использовать блок-контакт на отключение.


 

Автор: VAL_64 4.02.2017 - 11:26

Цитата(acoustik @ 4.02.2017 - 11:24) *
Сенсорные панели, которые использую сейчас, имеют собственную среду разработки,

Если не секрет какая среда разработки ?
С панелями не приходилось работать,только ремонтируем по возможности.

Автор: acoustik 4.02.2017 - 11:34

Цитата(VAL_64 @ 4.02.2017 - 17:25) *
Цитата(acoustik @ 4.02.2017 - 11:53) *
А если хватает входов, то можно сделать настройку времени задержки (работы тормоза) перемычками с определенной дискретностью. Тогда ноутбук не нужен .

Да это, как мне кажется не нужно задержки менять придется при первой настройке
или же после ремонта коробки скоростей.

Согласен.

Цитата(VAL_64 @ 4.02.2017 - 17:25) *
Помечено-это отключение главного двигателя если планшаба стоит не включена более 2х минут
наверное выход надо использовать будет, пускатель главного двигателя будет управляться
без контролера другими кнопками Пуск и Стоп,будем использовать блок-контакт на отключение.

Тогда надо заводить на плк сигнал о состоянии главного двигателя (любой свободный блок-контакт). Так же, использовать один из выходов плк для реле, разрывающего цепь контактора главного двигателя.
Тогда, плк сам определит, что планшайба не была включена в течение 1,5...2 мин и вырубит главный двигатель.

Автор: acoustik 4.02.2017 - 11:38

Цитата(VAL_64 @ 4.02.2017 - 17:26) *
Цитата(acoustik @ 4.02.2017 - 11:24) *
Сенсорные панели, которые использую сейчас, имеют собственную среду разработки,

Если не секрет какая среда разработки ?
С панелями не приходилось работать,только ремонтируем по возможности.

Панели Weinview, Kinco.
Для Weinview среда EB8000 Weintek Easy Builder.
Для панелей Kinco - "Kinco HMI Ware".

Автор: acoustik 4.02.2017 - 11:49

Цитата(VAL_64 @ 4.02.2017 - 17:25) *
Вот таблица задержек.
...

Обратите внимание на задержки включения муфт из этой таблицы. Меня так и не покидает мысль, что задержки переключений не должны превышать тех, которые приведены здесь. Мне сразу показалось странным, что между отключением одной комбинации и включением другой нужно 1 сек. Да и в книге про это ни буквы. На сколько я знаю (из практического опыта), что в подобных механизмах с муфтами скоростей, последние включаются чуть ли не сразу, при перемене скорости. Иначе теряется момент, да и плавность будет скачкообразна, и тем сильнее, чем меньше инерционность вала, скорость которого регулируют.

Автор: acoustik 4.02.2017 - 12:04

По сути, эл муфта это обычная катушка с сердечником, к которому прикреплено фрикционное кольцо (ну или что там непосредственно сцепляется (передает момент)). Так вот если снять сигнал с катушки, то это кольцо отваливается сразу от сцепления. Зачем тут задержки? При этом, другие катушки (кольца) должны тут же включится и "подхватить" скорость, для дальнейшего разгона/торможения. Иначе будет значительный износ этих муфт; они же не могут мгновенно сравнять скорости вращающего со скоростью регулируемого маховика.
Как то делал управление эл-пневматическими муфтами - смысл тот же, только фрикционные кольца двигались пневматическими клапанами, которые, в свою очередь, открывались эл. магн. катушками. Так там даже авария такая была предусмотрена, если один любой клапан не открылся через 0,5 сек, после подачи сигнала. Кольца эти разрывало в клочья просто, если скорости не были уравнены.

Автор: VAL_64 4.02.2017 - 12:07

Цитата(acoustik @ 4.02.2017 - 12:49) *
Цитата(VAL_64 @ 4.02.2017 - 17:25) *
Вот таблица задержек.
...

Обратите внимание на задержки включения муфт из этой таблицы. Меня так и не покидает мысль, что задержки переключений не должны превышать тех, которые приведены здесь. Мне сразу показалось странным, что между отключением одной комбинации и включением другой нужно 1 сек. Да и в книге про это ни буквы. На сколько я знаю (из практического опыта), что в подобных механизмах с муфтами скоростей, последние включаются чуть ли не сразу, при перемене скорости. Иначе теряется момент, да и плавность будет скачкообразна, и тем сильнее, чем меньше инерционность вала, скорость которого регулируют.

Да 0.3-0.5 сек.,я где то писал выше 0.5 это в симуляторе чтобы было видно можно прибавить.

Автор: VAL_64 4.02.2017 - 12:09

Цитата(acoustik @ 4.02.2017 - 13:04) *
По сути, эл муфта это обычная катушка с сердечником, к которому прикреплено фрикционное кольцо (ну или что там непосредственно сцепляется (передает момент)). Так вот если снять сигнал с катушки, то это кольцо отваливается сразу от сцепления. Зачем тут задержки? При этом, другие катушки (кольца) должны тут же включится и "подхватить" скорость, для дальнейшего разгона/торможения. Иначе будет значительный износ этих муфт; они же не могут мгновенно сравнять скорости вращающего со скоростью регулируемого маховика.
Как то делал управление эл-пневматическими муфтами - смысл тот же, только фрикционные кольца двигались пневматическими клапанами, которые, в свою очередь, открывались эл. магн. катушками. Так там даже авария такая была предусмотрена, если один любой клапан не открылся через 0,5 сек, после подачи сигнала. Кольца эти разрывало в клочья просто, если скорости не были уравнены.

Да Вы правы.

Автор: acoustik 4.02.2017 - 12:29

Цитата(VAL_64 @ 4.02.2017 - 18:07) *
Да 0.3-0.5 сек.,я где то писал выше 0.5 это в симуляторе чтобы было видно можно прибавить.

В любом случае, в программе это регулируется так:
- таймером Т_1 регулируется время МЕЖДУ отключением текущей и включением следующей комбинации (с дискретностью 0,1 с);
- таймером Т_2 регулируется время РАБОТЫ текущей комбинации, если эта комбинация промежуточная (тоже с дискретностью 0,1 с);
- таймером Т_3 регулируется время работы тормоза (дискретность 0,1 с).

Все эти величины настраиваются на реальном станке.

Автор: VAL_64 4.02.2017 - 12:53

Цитата(acoustik @ 4.02.2017 - 13:29) *
Цитата(VAL_64 @ 4.02.2017 - 18:07) *
Да 0.3-0.5 сек.,я где то писал выше 0.5 это в симуляторе чтобы было видно можно прибавить.

В любом случае, в программе это регулируется так:
- таймером Т_1 регулируется время МЕЖДУ отключением текущей и включением следующей комбинации (с дискретностью 0,1 с);
- таймером Т_2 регулируется время РАБОТЫ текущей комбинации, если эта комбинация промежуточная (тоже с дискретностью 0,1 с);
- таймером Т_3 регулируется время работы тормоза (дискретность 0,1 с).

Все эти величины настраиваются на реальном станке.

Понял.
Спасибо за разъяснение.

Автор: acoustik 4.02.2017 - 12:59

Цитата(acoustik @ 4.02.2017 - 18:29) *
- таймером Т_3 регулируется время работы тормоза (дискретность 0,1 с).

В 5-й версии будет. В 4-й версии таймер Т_3 хоть и отработает заданное значение, но на выходах это не скажется, так как не позволит таймер Т_1, отрабатывая свой алгоритм.

Автор: acoustik 4.02.2017 - 15:13

Пятая (чистовая) версия:  Plan_Switcher_5.1.zip ( 159.63 килобайт ) : 8

Все доп. мои плюшки для симуляции на сенс. панели удалены.

Изменения:
- оптимизирован код;
- управление выходами для всех режимов осуществляется одним блоком, вынесенным в отд программу;
- переключение режимов работы происходит только после полного завершения текущего (работающего) режима;
- добавлена опция отключения главного двигателя при простое планшайбы в течение 2-х минут (регулируется);
- все таймеры корректно действуют, согласно своим предназначениям (писал выше, про регулировки времен);

Периферия:
Х0...Х4 - входы для селектора уставки скорости (галетник)
Х5 - кнопка ПУСК
Х6 - кнопка СТОП
Х7 - тумблер режимов работы
Х10 - внешний сигнал о том, что главный мотор вращается (запущен)

Y0...Y11 - выходы управления муфтами
Y12 - выход на реле, отключающее главный двигатель в случае простоя планшайбы

Автор: VAL_64 4.02.2017 - 17:22

Цитата(acoustik @ 4.02.2017 - 16:13) *
Пятая (чистовая) версия:  Plan_Switcher_5.1.zip ( 159.63 килобайт ) : 8

Все доп. мои плюшки для симуляции на сенс. панели удалены.

Изменения:
- оптимизирован код;
- управление выходами для всех режимов осуществляется одним блоком, вынесенным в отд программу;
- переключение режимов работы происходит только после полного завершения текущего (работающего) режима;
- добавлена опция отключения главного двигателя при простое планшайбы в течение 2-х минут (регулируется);
- все таймеры корректно действуют, согласно своим предназначениям (писал выше, про регулировки времен);

Периферия:
Х0...Х4 - входы для селектора уставки скорости (галетник)
Х5 - кнопка ПУСК
Х6 - кнопка СТОП
Х7 - тумблер режимов работы
Х10 - внешний сигнал о том, что главный мотор вращается (запущен)

Y0...Y11 - выходы управления муфтами
Y12 - выход на реле, отключающее главный двигатель в случае простоя планшайбы

Да,сделано профессионально.
Спасибо, в понедельник попробую на контролере отпишусь.
Сейчас разбираюсь с симуляцией,
EB8000 Weintek EasyBuilder установил.
Одного не пойму эта панель на компьютере должна соединятся с нашим симулятором GX Simulator 7.22Y из GX IEC Developer 7.04
или еще какие примочки надо.
Что то у меня не получается связать.


Автор: acoustik 4.02.2017 - 23:05

Цитата(VAL_64 @ 4.02.2017 - 23:22) *
Сейчас разбираюсь с симуляцией,
EB8000 Weintek EasyBuilder установил.
Одного не пойму эта панель на компьютере должна соединятся с нашим симулятором GX Simulator 7.22Y из GX IEC Developer 7.04
или еще какие примочки надо.
Что то у меня не получается связать.

Эмммм... Теперь я понял суть вопроса smile.gif. Нет, сама по себе среда ЕВ8000 вам не даст ни какой графической эмуляции. Для этого надо иметь реальную панельку этой фирмы, через которую и осуществляется связь ПК -> ПЛК. Ни с каким симулятором, тем более GX, софт сам по себе не соединится. В качестве связующего звена тут выступают сами реальные панели, подключенные и к ПК и к ПЛК.
У вас же есть GT Designer - у него мощные средства для этого. Никакой другой софт вам, покамест, не нужен.

Автор: VAL_64 4.02.2017 - 23:12

Цитата(acoustik @ 5.02.2017 - 00:05) *
У вас же есть GT Designer - у него мощные средства для этого. Никакой другой софт вам, покамест, не нужен.

Да через него я соединяюсь нормально.

Автор: acoustik 4.02.2017 - 23:22

Цитата(VAL_64 @ 5.02.2017 - 05:12) *
Цитата(acoustik @ 5.02.2017 - 00:05) *
У вас же есть GT Designer - у него мощные средства для этого. Никакой другой софт вам, покамест, не нужен.

Да через него я соединяюсь нормально.

Потому что это митсубисевский софт, и он просто обязан соединится "виртуально" со своим ПЛК. Пользуйтесь им.
Дам совет - не привыкайте к симуляции. Вы должны сами видеть то, что программируете. Симуляция нужна лишь посредственно - посмотреть значения каких-либо вычислений, установить некий маркер и т.п. Ни одной толковой программы с помощью симулятора не выйдет. Какой толк симулировать то, что плохо работает? Приучайтесь сразу писать рабочие программы. А с симулятором лишь отлаживать их.

Автор: VAL_64 4.02.2017 - 23:36

Вот я и хочу проанализировать что к чему, пока контролера под рукой нет.
Запустил 5 версию в симуляторе на ступени Х0-Х4 задал 18, Х10 включил и Х5 пуск подал,
что то все стоит мертво. Участок обведенный в Р3 не активный,или что то не так делаю.
У12 не включен.

 

Автор: acoustik 5.02.2017 - 09:31

Цитата(VAL_64 @ 5.02.2017 - 05:36) *
Вот я и хочу проанализировать что к чему, пока контролера под рукой нет.
Запустил 5 версию в симуляторе на ступени Х0-Х4 задал 18, Х10 включил и Х5 пуск подал,
что то все стоит мертво. Участок обведенный в Р3 не активный,или что то не так делаю.
У12 не включен.

Х10 к программе планшайбы никакого отношения не имеет, его можно не трогать. Он просто включает сигнал останова на Y12.
А с входами что-то не так...
У меня все четко :

Автор: acoustik 5.02.2017 - 09:42

А вот я запустил симулятор для 2N версии (которая у вас) и получил тот же эффект:

Вот вам и симуляторы... 100%-рабочую программу запустить толком не могут.
Поэтому я не пользуюсь ими. Запускаю и проверяю сразу в железе.

Автор: acoustik 5.02.2017 - 09:48

Скорее всего, по каким-то причинам физ входа не проходят в симуляторе в слово К2М0. Он не эмулирует инструкцию PRUN. Временно уберите эту ветку и управляйте просто маркерами М0...М7.

Автор: VAL_64 5.02.2017 - 10:44

Цитата(acoustik @ 5.02.2017 - 10:48) *
Скорее всего, по каким-то причинам физ входа не проходят в симуляторе в слово К2М0. Он не эмулирует инструкцию PRUN. Временно уберите эту ветку и управляйте просто маркерами М0...М7.

Понятно.
Завтра в железе испытаю.

Автор: acoustik 5.02.2017 - 10:47

Вот https://yadi.sk/i/8EKhS9873CveXC на железе, через моделирование на панели в реальном времени.

Автор: acoustik 5.02.2017 - 11:09

Поменяйте TRUE на FALSE и симулируйте управление маркерами М0-М7. Перед загрузкой в плк верните назад (TRUE).

Автор: VAL_64 5.02.2017 - 11:22

С маркерами все работает.
А разве У12 не сразу должен быть включен при включении?
Пускатель не будет включатся.

Автор: acoustik 5.02.2017 - 11:28

Цитата(VAL_64 @ 5.02.2017 - 17:22) *
С маркерами все работает.
А разве У12 не сразу должен быть включен при включении?
Пускатель не будет включатся.

Ну я исходил из того, что реле, которое будет разрывать цепь стартера мотора в отключенном состоянии замыкает эту цепь (разрешает пуск мотора). Это, например, необходимо для того, чтобы можно было запустить мотор при отключенном ПЛК. Мало ли... Настроечные работы какие...
А поменять не сложно если надо. Поставьте инверсию на выходе таймера и всего делов smile.gif. Будет включатся сразу.

Автор: VAL_64 5.02.2017 - 11:51

Цитата(acoustik @ 5.02.2017 - 12:28) *
Цитата(VAL_64 @ 5.02.2017 - 17:22) *
С маркерами все работает.
А разве У12 не сразу должен быть включен при включении?
Пускатель не будет включатся.

Ну я исходил из того, что реле, которое будет разрывать цепь стартера мотора в отключенном состоянии замыкает эту цепь (разрешает пуск мотора). Это, например, необходимо для того, чтобы можно было запустить мотор при отключенном ПЛК. Мало ли... Настроечные работы какие...
А поменять не сложно если надо. Поставьте инверсию на выходе таймера и всего делов smile.gif. Будет включатся сразу.

На месте разберусь.

Автор: acoustik 5.02.2017 - 12:09

Версия 5.2:  Plan_Switcher_5.2.zip ( 170.49 килобайт ) : 7


Улучшения, оптимизация, удаление лишнего.
Теперь выход мотора включается сразу при старте ПЛК.
Все проверено на железе.

Автор: acoustik 5.02.2017 - 12:31

Пожалуй, для заявленного функционала проще и не попишешь... Я не вижу что еще тут можно упростить/уменьшить. Можно только добавить, если надо, в будущем.
Версия 5.2 самая компактная. Остальные предыдущие в топку! cool.gif

Автор: VAL_64 5.02.2017 - 13:05

Цитата(acoustik @ 5.02.2017 - 13:31) *
Пожалуй, для заявленного функционала проще и не попишешь... Я не вижу что еще тут можно упростить/уменьшить. Можно только добавить, если надо, в будущем.
Версия 5.2 самая компактная. Остальные предыдущие в топку! cool.gif

Вы правы.
Вот таймер на отключение У12 двигателя может выдать импульсную команду или
что то надо добавить,а то у нас после отключения двигателя через 2 минуты У12 остается выключенный
и мы кнопкой пуск главного двигателя не сможем включить двигатель .
У нас же две пары кнопок
Пуск-Стоп----главного двиг. без управления контролером
Пуск-Стоп----планшайбы
Перед включением муфт двигатель всегда должен быть включенным
Без двигателя по идеи кнопки Пуск-Стоп----планшайбы не должны работать.


Автор: acoustik 5.02.2017 - 13:16

Цитата(VAL_64 @ 5.02.2017 - 19:05) *
Вот таймер на отключение У12 двигателя может выдать импульсную команду или
что то надо добавить,а то у нас после отключения двигателя через 2 минуты У12 остается выключенный
и мы кнопкой пуск главного двигателя не сможем включить двигатель .
У нас же две пары кнопок
Пуск-Стоп----главного двиг. без управления контролером
Пуск-Стоп----планшайбы
Перед включением муфт двигатель всегда должен быть включенным
Без двигателя по идеи кнопки Пуск-Стоп----планшайбы не должны работать.

После отключения главного двигателя контроллером, через 2 мин простоя, выход Y12 опять включится, так как пропадет сигнал Motor.Running, разрешающий работу таймера. Ничего добавлять тут не требуется.

Цитата(VAL_64 @ 5.02.2017 - 19:05) *
Без двигателя по идеи кнопки Пуск-Стоп----планшайбы не должны работать

Да, верно. Для этого в третьем нетворке программы Р1 добавьте условие для запуска планшайбы через AND. Ко второму входу AND подключите сигнал Motor.Running.

Автор: acoustik 5.02.2017 - 13:21

Было так:

Станет вот так:

Автор: VAL_64 5.02.2017 - 13:28

Понял.

Автор: acoustik 5.02.2017 - 13:31

А стоп он и в Африке стоп. Если планшайба не запущена, то нажимай не нажимай на стоп - ничего не будет. Выработается команда Stop_Proccess, пробежится по программе, обнаружит что ничего не включено и сбросит сама себя.

Автор: acoustik 5.02.2017 - 13:36

Цитата(acoustik @ 5.02.2017 - 19:31) *
А стоп он и в Африке стоп. Если планшайба не запущена, то нажимай не нажимай на стоп - ничего не будет. Выработается команда Stop_Proccess, пробежится по программе, обнаружит что ничего не включено и сбросит сама себя.

Наврал. Даже команда СТОП-процесса не выработается, потому что кнопка СТОП действует только когда есть сигнал Chuck_Run (планшайба запущена). Так что при стоячей планшайбе можно до посинения жать на кнопку стоп - ничего не будет.

Автор: acoustik 5.02.2017 - 13:54

Я бы вот что предусмотрел бы:
В книге мельком читал про всякие аварии (датчики давления и пр). Так вот можно выделить один вход, скажем Х11, на который приходят все, собранные в цепочку сигналы аварий от датчиков. И в случае появления сигнала на Х11 (или отсутствия) запрещать пуск станка. А если он уже запущен, то включать процедуру остановки с последующей блокировкой пуска, пока не устранится проблема на Х11.
Воздействие этого входа (Х11) будет равносильно кнопке СТОП (подключается параллельно ей). Здесь можно использовать свойство команд плк SET и RST. RST имеет преимущество. Так что если активна команда RST к определенному операнду, то включить этот операнд командой SET не удастся, пока не исчезнет RST.

Автор: VAL_64 5.02.2017 - 14:29

Цитата(acoustik @ 5.02.2017 - 14:54) *
Я бы вот что предусмотрел бы:
В книге мельком читал про всякие аварии (датчики давления и пр). Так вот можно выделить один вход, скажем Х11, на который приходят все, собранные в цепочку сигналы аварий от датчиков. И в случае появления сигнала на Х11 (или отсутствия) запрещать пуск станка. А если он уже запущен, то включать процедуру остановки с последующей блокировкой пуска, пока не устранится проблема на Х11.
Воздействие этого входа (Х11) будет равносильно кнопке СТОП (подключается параллельно ей). Здесь можно использовать свойство команд плк SET и RST. RST имеет преимущество. Так что если активна команда RST к определенному операнду, то включить этот операнд командой SET не удастся, пока не исчезнет RST.

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

Автор: acoustik 5.02.2017 - 14:36

Цитата(VAL_64 @ 5.02.2017 - 20:29) *
Да там есть датчик давления,он отключает главный двигатель через какое то время,
концевые выключатели: ограничение перемещений вверх-вниз поперечной подачи, ограничение вправо-влево продольной подачи,
общий стоп, и т. д. связанные с инструментом

Значит команду Motor.Running тоже нужно задействовать, чтобы при внезапном отключении главного двигателя планшайба произвела полный цикл остановки. Попробуйте сделать это сами и выложите скриншот.

Автор: VAL_64 5.02.2017 - 15:05

Цитата(acoustik @ 5.02.2017 - 15:36) *
Цитата(VAL_64 @ 5.02.2017 - 20:29) *
Да там есть датчик давления,он отключает главный двигатель через какое то время,
концевые выключатели: ограничение перемещений вверх-вниз поперечной подачи, ограничение вправо-влево продольной подачи,
общий стоп, и т. д. связанные с инструментом

Значит команду Motor.Running тоже нужно задействовать, чтобы при внезапном отключении главного двигателя планшайба произвела полный цикл остановки. Попробуйте сделать это сами и выложите скриншот.

Это значить что если с Х11 или Х10 пропадет сигнал, должен произойти полный цикл остановки план шайбы?

Автор: acoustik 5.02.2017 - 15:11

Цитата(VAL_64 @ 5.02.2017 - 21:05) *
Это значить что если с Х11 пропадет сигнал, должен произойти полный цикл остановки план шайбы?

Точно так. И планшайбу нельзя будет запустить, пока нет сигнала на Х11 (есть авария).

Автор: acoustik 5.02.2017 - 15:19

Цитата(acoustik @ 5.02.2017 - 21:11) *
Точно так. И планшайбу нельзя будет запустить, пока нет сигнала на Х11 (есть авария).

Вообще, следуя логике, получится должно так:
При любой аварии остановится главный мотор - это и будет тем сигналом, который вырубит планшайбу. А так как недавно мы добавили еще одно условие пуска планшайбы (через AND), то она и не пустится, пока не включится главный мотор. А мотор, в свою очередь, не запустится пока есть какая-нить авария (это уже его собственная схема защиты). Поэтому, нам требуется лишь ввести еще одно условие, для остановки планшайбы, кроме кнопки СТОП.

Здесь можно поступить двояко: либо использовать уже существующий сигнал на Х10 (Motor.Running) для отслеживания ситуации, либо дополнить еще одним (Х11) для входа аварии. Это будет полезно, если, допустим, при появлении аварии мотор отключается не сразу, а с выдержкой времени. Тогда при появлении аварии на Х11 - ПЛК произведет процедуру остановки планшайбы, а мотор выключится уже от своей собственной схемы защиты.

Автор: VAL_64 5.02.2017 - 15:36

Что то не пойму при компиляции какае та ошибка.

 

Автор: acoustik 5.02.2017 - 15:48

Цитата(VAL_64 @ 5.02.2017 - 21:36) *
Что то не пойму при компиляции какае та ошибка.

Первый раз вижу такое... Причем тут время ПК?... Ну, нажимайте "Да" и продолжайте компиляцию. Думаю это не страшно, забава какая-то от митсубиси smile.gif

Автор: acoustik 5.02.2017 - 15:52

Цитата(acoustik @ 5.02.2017 - 21:48) *
Цитата(VAL_64 @ 5.02.2017 - 21:36) *
Что то не пойму при компиляции какае та ошибка.

Первый раз вижу такое... Причем тут время ПК?... Ну, нажимайте "Да" и продолжайте компиляцию. Думаю это не страшно, забава какая-то от митсубиси smile.gif

Возможно это связано с тем, что у вас открыто окно EDM с внесенными туда значениями (новыми). Короче это просто сообщение, ничего страшного.

Автор: acoustik 5.02.2017 - 15:59

Да, нюанс:
зайдите в меню Extras -> Options -> Code Generation и поставьте галочки так, как на картинке ниже


и нажмите "Сохранить по умолчанию"

Автор: VAL_64 5.02.2017 - 16:01

Цитата(acoustik @ 5.02.2017 - 16:52) *
Цитата(acoustik @ 5.02.2017 - 21:48) *
Цитата(VAL_64 @ 5.02.2017 - 21:36) *
Что то не пойму при компиляции какае та ошибка.

Первый раз вижу такое... Причем тут время ПК?... Ну, нажимайте "Да" и продолжайте компиляцию. Думаю это не страшно, забава какая-то от митсубиси smile.gif

Возможно это связано с тем, что у вас открыто окно EDM с внесенными туда значениями (новыми). Короче это просто сообщение, ничего страшного.

После этого не симулируется.
Если без компиляции ваш проект симулируется нормально.
Хотел задержку убавить 2 минуты.
Раньше тоже было потом вроде пропало так я и не понял.
Перегружу комп попробую.

Автор: acoustik 5.02.2017 - 16:11

Закройте симулятор и проект. Откройте проект 5.2 и скомпилируйте. Сколько программных шагов у вас получилось? (если не изменяли ничего)

Автор: VAL_64 5.02.2017 - 16:32

По новой распаковал, открыл, если сразу в симуляторе то нормально,
начнешь компилировать до шагов не доходит,
и после этого не симулируется.
Пробовал под FX3 компилировать тоже самое.


 

Автор: acoustik 5.02.2017 - 16:38

Цитата(VAL_64 @ 5.02.2017 - 22:32) *
По новой распаковал, открыл, если сразу в симуляторе то нормально,
начнешь компилировать до шагов не доходит,
и после этого не симулируется.
Пробовал под FX3 компилировать тоже самое.

Не симулируется потому что не скомпилировалось. А не скомпилировалось, потому что.... Хрень какая-то... Попробуйте вот этот:
 Plan_Switcher_5.2.zip ( 171.4 килобайт ) : 4

Автор: VAL_64 5.02.2017 - 16:41

Раньше когда ваши проекты открывал у меня вылетало окошко установить какие то две библиотеки по моему
я ставил две галочки шла установка,а сейчас этого нет может в этом дело.

Автор: acoustik 5.02.2017 - 16:43

Цитата(VAL_64 @ 5.02.2017 - 22:41) *
Раньше когда ваши проекты открывал у меня вылетало окошко установить какие то две библиотеки по моему
я ставил две галочки шла установка,а сейчас этого нет может в этом дело.

Сейчас этого нет, потому что эти библиотеки уже установлены.

Автор: VAL_64 5.02.2017 - 16:45

Цитата(VAL_64 @ 5.02.2017 - 17:41) *
Раньше когда ваши проекты открывал у меня вылетало окошко установить какие то две библиотеки по моему
я ставил две галочки шла установка,а сейчас этого нет может в этом дело.

В проекте Library_Pool бледная не активна что ли

Автор: VAL_64 5.02.2017 - 16:47

Цитата(acoustik @ 5.02.2017 - 17:38) *
Цитата(VAL_64 @ 5.02.2017 - 22:32) *
По новой распаковал, открыл, если сразу в симуляторе то нормально,
начнешь компилировать до шагов не доходит,
и после этого не симулируется.
Пробовал под FX3 компилировать тоже самое.

Не симулируется потому что не скомпилировалось. А не скомпилировалось, потому что.... Хрень какая-то... Попробуйте вот этот:
 Plan_Switcher_5.2.zip ( 171.4 килобайт ) : 4


Попробывал так же

Автор: VAL_64 5.02.2017 - 16:51

Вот параметр

 

Автор: acoustik 5.02.2017 - 17:05

Цитата
В проекте Library_Pool бледная не активна что ли

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

Закройте все GX GT программы и установите https://yadi.sk/d/YSrjktmW3CyYow

Автор: VAL_64 5.02.2017 - 17:07

Вот в этом окне компиляцию произвел прошла сейчас и там и там идет.
Опять не что не понял

 

Автор: acoustik 5.02.2017 - 17:14

Цитата(VAL_64 @ 5.02.2017 - 23:07) *
Вот в этом окне компиляцию произвел прошла сейчас и там и там идет.
Опять не что не понял

Я тоже ничего не понимаю blink.gif . У меня никогда такого не было. Явно что дело не в программе и не в софте - возможно что то мешает со стороны системы...
Ну раз скомпилировалось, значит отлично. 490 шагов - все верно.

Автор: VAL_64 5.02.2017 - 17:14

Цитата(acoustik @ 5.02.2017 - 18:05) *
Цитата
В проекте Library_Pool бледная не активна что ли

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

Закройте все GX GT программы и установите https://yadi.sk/d/YSrjktmW3CyYow

Установил пока все нормально.
Буду заниматься.


 

Автор: acoustik 5.02.2017 - 17:21

Цитата(VAL_64 @ 5.02.2017 - 23:14) *
Установил пока все нормально.
Буду заниматься.

Понятно. Ладно, на сегодня я вас покидаю. Время http://rainbow6.ubi.com/siege/ru-ru/home/... smile.gif

Автор: VAL_64 5.02.2017 - 18:14

Цитата(acoustik @ 5.02.2017 - 18:21) *
Цитата(VAL_64 @ 5.02.2017 - 23:14) *
Установил пока все нормально.
Буду заниматься.

Понятно. Ладно, на сегодня я вас покидаю. Время http://rainbow6.ubi.com/siege/ru-ru/home/... smile.gif

От всей души, спасибо.
Познавательный урок для меня

Автор: VAL_64 6.02.2017 - 20:26

Сегодня в обед попробовал закачал в контролер
по лампочкам все работает как надо.
С X11-М11 вот что получилось,вроде работает,только регистр не обозвал.
Если сигнал пропадает с X10-М10 или X11-М11 то включается сигнал стоп(Control.Stop),и тормозит по ступеням по нашей логике.
Когда сигналы восстанавливаются наш сигнал Control.Stop обнуляется.
В том направлении иду?

 

Автор: acoustik 7.02.2017 - 00:00

Цитата(VAL_64 @ 7.02.2017 - 02:26) *
Сегодня в обед попробовал закачал в контролер
по лампочкам все работает как надо.
С X11-М11 вот что получилось,вроде работает,только регистр не обозвал.
Если сигнал пропадает с X10-М10 или X11-М11 то включается сигнал стоп(Control.Stop),и тормозит по ступеням по нашей логике.
Когда сигналы восстанавливаются наш сигнал Control.Stop обнуляется.
В том направлении иду?

Это что?

От куда взялся М11? И сигналы Control.Stop и Control.Start - это КНОПКИ! Их нельзя устанавливать или сбрасывать в программе!

Автор: acoustik 7.02.2017 - 00:02

Напишите лучше что вы хотели этим сделать, я добавлю в проект и выложу.

Автор: acoustik 7.02.2017 - 00:08

Если вы хотите использовать (добавить) Х11 под аварийный вход, то надо сделать немного по другому... В зависимости от того, что он должен делать. И вряд ли его место в программе мотора.

Автор: acoustik 7.02.2017 - 00:35

Вот проект, здесь учтен вход Х11 под аварию.
 Plan_Switcher_5.3.zip ( 170.4 килобайт ) : 7


Если на Х11 есть сигнал, то ничего не запустится, а если уже было запущено, то будет произведена остановка. Так же, будет остановка, если пропадет сигнал "главный мотор запущен" (Х10).

Автор: VAL_64 7.02.2017 - 09:36

Цитата(acoustik @ 5.02.2017 - 14:54) *
Воздействие этого входа (Х11) будет равносильно кнопке СТОП (подключается параллельно ей). Здесь можно использовать свойство команд плк SET и RST. RST имеет преимущество. Так что если активна команда RST к определенному операнду, то включить этот операнд командой SET не удастся, пока не исчезнет RST.

Я вот на это повелся.

Автор: acoustik 7.02.2017 - 10:11

Цитата(VAL_64 @ 7.02.2017 - 15:36) *
Цитата(acoustik @ 5.02.2017 - 14:54) *
Воздействие этого входа (Х11) будет равносильно кнопке СТОП (подключается параллельно ей). Здесь можно использовать свойство команд плк SET и RST. RST имеет преимущество. Так что если активна команда RST к определенному операнду, то включить этот операнд командой SET не удастся, пока не исчезнет RST.

Я вот на это повелся.

Понятно biggrin.gif . В принципе, это означало, что подключить аварийный вход можно было физически параллельно кнопке стоп - это возымело бы тот же эффект останова. Однако, правильнее все же, выделить для этой цели отдельный вход. Что и сделано в 5.3 версии (Х11).

Автор: VAL_64 7.02.2017 - 17:06

Цитата(acoustik @ 7.02.2017 - 11:11) *
Цитата(VAL_64 @ 7.02.2017 - 15:36) *
Цитата(acoustik @ 5.02.2017 - 14:54) *
Воздействие этого входа (Х11) будет равносильно кнопке СТОП (подключается параллельно ей). Здесь можно использовать свойство команд плк SET и RST. RST имеет преимущество. Так что если активна команда RST к определенному операнду, то включить этот операнд командой SET не удастся, пока не исчезнет RST.

Я вот на это повелся.

Понятно biggrin.gif . В принципе, это означало, что подключить аварийный вход можно было физически параллельно кнопке стоп - это возымело бы тот же эффект останова. Однако, правильнее все же, выделить для этой цели отдельный вход. Что и сделано в 5.3 версии (Х11).

Понятно

Автор: VAL_64 8.02.2017 - 10:09

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

Автор: acoustik 8.02.2017 - 11:26

Цитата(VAL_64 @ 8.02.2017 - 16:09) *
Вот такой вопрос, следующую часть программы продолжать в этом проекте или можно отработать отдельно,
если отдельно то можно будет потом все с группировать, что предусмотреть в этих случаях.
В принципе эти части логический не связаны между собой, могут работать не зависимо друг от друга, только
во второй части будет использоваться один сигнал планшайба в работе(включена).

Продолжайте в этом же проекте. Тем более, что предполагается использование общей переменной.
Создайте для новой части программы свою задачу (Task).

Автор: VAL_64 8.02.2017 - 14:02

Инициализацию наверное можно прописать в P0_Init, или не стоит?
Будет всего 15 муфт и также как на планшайбе 18 ступений (8 муфт в коробке скоростей) в самом первом варианте мы это делали,
муфта вверх; муфта вниз; муфта к центру; муфта от центра; муфта рабочей подачи; муфта тормоз гориз.подачи; муфта тормоз вертик. подачи

Автор: acoustik 9.02.2017 - 10:39

Цитата(VAL_64 @ 8.02.2017 - 20:02) *
Инициализацию наверное можно прописать в P0_Init, или не стоит?
Будет всего 15 муфт и также как на планшайбе 18 ступений (8 муфт в коробке скоростей) в самом первом варианте мы это делали,
муфта вверх; муфта вниз; муфта к центру; муфта от центра; муфта рабочей подачи; муфта тормоз гориз.подачи; муфта тормоз вертик. подачи

Да, инициализацию прописывайте в Р0. Она общая для всех программ, выполняется один раз при старте ПЛК.

Автор: VAL_64 9.02.2017 - 12:03

Я так и сделал.

Автор: VAL_64 11.02.2017 - 14:27

Добрый день.
acoustik посмотрите пожалуйста P5 что так,не так, или совсем ни куда не годится.

 pack.zip ( 216.14 килобайт ) : 5
 

Автор: acoustik 11.02.2017 - 19:12

Цитата(VAL_64 @ 11.02.2017 - 20:27) *
Добрый день.
acoustik посмотрите пожалуйста P5 что так,не так, или совсем ни куда не годится.

Ок, гляну завтра.

Автор: acoustik 12.02.2017 - 08:18

Посмотрел.
1. В программе Р5, мне кажется, излишнее кол-во переменных, задействованных для опознания текущего режима работы.
2. В этой же программе в строках 2 и 3 происходит наложение слов (K2M12 и K2M17). Лучше выбрать один диапазон (К3М12) и фильтровать из него нужные сигналы операцией WAND.
3. Все операции с физ. выходами (Y) выведены в отд. ветку P9_Output. Это же должно касаться 8-й строки в программе P7_Main_Suport.
4. Все переносы физ. входов (Х) в маркеры (М) командой PRUN, желательно, должны быть собраны в одном месте - это сделано в программе P3_TaskManager, чтобы не рыскать их по всем блокам.
5. Список программ, которые выполняются ВСЕГДА (т.е. условие выполнения у них =TRUE) - находятся в пуле задач в задаче T3_Inf_Loop. Не стоит плодить новые задачи =TRUE для программ Р5 и Р7.

Автор: acoustik 12.02.2017 - 08:40

Да, и еще...
Следует учитывать, что инструкция PRUN работает восьмерично, т.е. переносит "слепок" входов в маркеры. Для удобства лучше всего переносить Х/М начинающиеся с Х0,10,20 и т.д. Тогда не будет путаницы в маркерах-целях.
Например:

Цитата
LD M8000
PRUN K3X0
K3M0

Здесь произойдет перенос входов Х в маркеры с 0-го по 13-й, не затрагивая маркеры М8 и М9, то есть "как есть". В этом случае номера маркеров будут соответствовать номерам входов Х.

Автор: acoustik 12.02.2017 - 09:46

Программа Р5, нетворки 12 и 13.
Тут конечно не столько правило, сколько дело вкуса, но замечу такую вещь: у мицубиси полно всяких экзотических и не очень, готовых "плюшек", в виде счетчиков CTU/D, таймеров TON, TOF, TP..., которые занимают весомое кол-во шагов в итоге. Посмотрим на ветку 12 - в ней находится инструкция OR с четырьмя входами, инструкция AND с двумя и таймер типа TIMER_100_FB_M. Вся эта конструкция занимает всего 12 шагов.
А теперь смотрим ветку 13 - тут только импульсный таймер типа ТР. И он один весит аж 18 шагов! По-моему, слегка расточительно использовать столько шагов, для элементарной задачи включить и сбросить выход через 2 сек.
Это можно сделать и простыми блоками, с меньшим использованием программных шагов.

Автор: VAL_64 12.02.2017 - 09:55

Цитата(acoustik @ 12.02.2017 - 09:40) *
Да, и еще...
Следует учитывать, что инструкция PRUN работает восьмерично, т.е. переносит "слепок" входов в маркеры. Для удобства лучше всего переносить Х/М начинающиеся с Х0,10,20 и т.д. Тогда не будет путаницы в маркерах-целях.
Например:
Цитата
LD M8000
PRUN K3X0
K3M0

Здесь произойдет перенос входов Х в маркеры с 0-го по 13-й, не затрагивая маркеры М8 и М9, то есть "как есть". В этом случае номера маркеров будут соответствовать номерам входов Х.

Вот это одинаковые команды?

 

Автор: acoustik 12.02.2017 - 09:58

Цитата(VAL_64 @ 12.02.2017 - 15:55) *
Вот это одинаковые команды?

Команды одинаковые, а диапазон разный.

Автор: VAL_64 12.02.2017 - 10:00

А если я сразу переведу все входа?
Они будут все использоваться.


 

Автор: acoustik 12.02.2017 - 10:07

Цитата(VAL_64 @ 12.02.2017 - 16:00) *
А если я сразу переведу все входа?
Они будут все использоваться.

Будут. Именно так и надо поступать. А потом, просто выковыривать нужные сигналы из набора маркеров К8М0, или из слова типа DINT, так как длина блока К8 займет два 16-ти битных слова.

Цитата
Они будут все использоваться

В каком смысле все? Так же, как я и говорил ранее - точный слепок входов Х, без использования М8,М9,М18,М19 ... Эти маркеры будут свободны для других целей.

Автор: acoustik 12.02.2017 - 10:16

Такие переменные, сигналы которых состоят из некоторой последовательности друг за другом идущих входов (галетники в данном случае) - удобно подключать к входам, начинающимся с Х0, Х10, Х20... так как в этом случае их легко будет выхватить из соотв. набора маркеров, с применением необходимых масок. Оставшиеся же входа в слове, между этими галетниками, можно использовать для одиночных сигналов (аварии, кнопки и т.п.)

Автор: VAL_64 12.02.2017 - 10:20

Цитата(acoustik @ 12.02.2017 - 10:58) *
Цитата(VAL_64 @ 12.02.2017 - 15:55) *
Вот это одинаковые команды?

Команды одинаковые, а диапазон разный.

К1Х0- это Х0 Х1 Х2 Х3
К2Х0- это Х0 Х1 Х2 Х3 Х4 Х5 Х6 Х7
К3Х0- это Х0 Х1 Х2 Х3 Х4 Х5 Х6 Х7 Х10 Х11 Х12 Х13
К1Х10- это Х10 Х11 Х12 Х13
К2Х10- это Х10 Х11 Х12 Х13 Х14 Х15 Х16 Х17

Я правильно понимаю?

Автор: VAL_64 12.02.2017 - 10:23

Цитата(acoustik @ 12.02.2017 - 11:16) *
Такие переменные, сигналы которых состоят из некоторой последовательности друг за другом идущих входов (галетники в данном случае) - удобно подключать к входам, начинающимся с Х0, Х10, Х20... так как в этом случае их легко будет выхватить из соотв. набора маркеров, с применением необходимых масок. Оставшиеся же входа в слове, между этими галетниками, можно использовать для одиночных сигналов (аварии, кнопки и т.п.)

Понял.

Автор: acoustik 12.02.2017 - 10:39

Цитата(VAL_64 @ 12.02.2017 - 16:20) *
К1Х0- это Х0 Х1 Х2 Х3
К2Х0- это Х0 Х1 Х2 Х3 Х4 Х5 Х6 Х7
К3Х0- это Х0 Х1 Х2 Х3 Х4 Х5 Х6 Х7 Х10 Х11 Х12 Х13
К1Х10- это Х10 Х11 Х12 Х13
К2Х10- это Х10 Х11 Х12 Х13 Х14 Х15 Х16 Х17

Я правильно понимаю?

Правильно.
Должно быть что-то вроде этого:


P.S. Понятно, что на картинке ошибка - вместо HF1 должно быть H1F biggrin.gif

Автор: acoustik 12.02.2017 - 12:01

Управлять скоростью суппорта можно аналогично как и скоростью план-шайбы. Там все будет тоже самое, что в программе P1_Normal_Mode (съем значения галетника).
А галетник на 7 позиций режимов - судя по программе, это обычный переключатель на 7 положений? Тогда его положение лучше опрашивать напрямую с маркеров, а не использовать сравнение с числовыми эквивалентами. Это добавляет лишний избыточный код в программу (инструкции сравнения).

Автор: VAL_64 12.02.2017 - 12:15

Цитата(acoustik @ 12.02.2017 - 13:01) *
Управлять скоростью суппорта можно аналогично как и скоростью план-шайбы. Там все будет тоже самое, что в программе P1_Normal_Mode (съем значения галетника).
А галетник на 7 позиций режимов - судя по программе, это обычный переключатель на 7 положений?

Да 7 режимов это обычный галетник на 7 положений.

Автор: acoustik 12.02.2017 - 12:20

Цитата(VAL_64 @ 12.02.2017 - 18:15) *
Цитата(acoustik @ 12.02.2017 - 13:01) *
Управлять скоростью суппорта можно аналогично как и скоростью план-шайбы. Там все будет тоже самое, что в программе P1_Normal_Mode (съем значения галетника).
А галетник на 7 позиций режимов - судя по программе, это обычный переключатель на 7 положений?

Да 7 режимов это обычный галетник на 7 положений.

Дополнил пост на http://www.melsec.ru/forum/index.php?showtopic=5263&view=findpost&p=10997.

Автор: VAL_64 12.02.2017 - 12:29

Здесь не опечатка ли?
Во втором сообщении вроде писалось
Константа-маска содержит нули в позициях битов, которые нужно игнорировать.

 

Автор: acoustik 12.02.2017 - 12:32

Цитата(VAL_64 @ 12.02.2017 - 18:29) *
Здесь не опечатка ли?
Во втором сообщении вроде писалось
Константа-маска содержит нули в позициях битов, которые нужно игнорировать.

Опечатка. Я уже сказал про это (отредактировал) http://www.melsec.ru/forum/index.php?showtopic=5263&view=findpost&p=10996.

Автор: acoustik 12.02.2017 - 12:35

Для галетника режимов суппорта следует поступить вот так:



Автор: acoustik 12.02.2017 - 12:38



Автор: VAL_64 12.02.2017 - 12:42

Цитата(acoustik @ 12.02.2017 - 13:38) *


Понял.
Не до глядел про опечатку.
Сейчас буду пробовать с режимами.

Автор: acoustik 12.02.2017 - 12:48



Автор: acoustik 12.02.2017 - 13:35

Выборку значений для переменной var1 в соответствии с положением галетника режима лучше (но не проще! очень просто) сделать на основе обыкновенного шифратора, как я сделал вычисление номеров зон в блоке FB_Zone_Num. Этот финт займет несколько меньше шагов, чем применение инструкций MOV. Тем более меньше, что там не будет инструкций сравнения чисел, а лишь преобразование одного из 7-ми включенных маркеров в соотв. двоичный код на выходе.
Кстати, навскидку, в самой надобности переменной var1 что-то я сомневаюсь...

Автор: VAL_64 12.02.2017 - 14:13

Цитата(acoustik @ 12.02.2017 - 14:35) *
Выборку значений для переменной var1 в соответствии с положением галетника режима лучше (но не проще! очень просто) сделать на основе обыкновенного шифратора, как я сделал вычисление номеров зон в блоке FB_Zone_Num. Этот финт займет намного меньше шагов, чем применение инструкций MOV. Тем более меньше, что там не будет инструкций сравнения чисел, а лишь преобразование одного из 7-ми включенных маркеров в соотв. двоичный код на выходе.
Кстати, навскидку, в самой надобности переменной var1 что-то я сомневаюсь...

Пропустил один момент когда работают четыре режима фиксированных скоростей
галетник на 18 ступений не должен реагировать.

Автор: acoustik 12.02.2017 - 14:18

Цитата(VAL_64 @ 12.02.2017 - 20:13) *
Пропустил один момент когда работают четыре режима фиксированных скоростей
галетник на 18 ступений не должен реагировать.

Понятно. Вроде бы об этом в вордовском документе что-то сказано...
Напишите таблицу соответствий положений галетника (1-7) числу, которое должно быть в var1. Семь чисел.
Первые понятны из программы, это 1,7,11,18. Допишите остальные три числа.

Автор: VAL_64 12.02.2017 - 15:15

Цитата(acoustik @ 12.02.2017 - 15:18) *
Цитата(VAL_64 @ 12.02.2017 - 20:13) *
Пропустил один момент когда работают четыре режима фиксированных скоростей
галетник на 18 ступений не должен реагировать.

Понятно. Вроде бы об этом в вордовском документе что-то сказано...
Напишите таблицу соответствий положений галетника (1-7) числу, которое должно быть в var1. Семь чисел.
Первые понятны из программы, это 1,7,11,18. Допишите остальные три числа.

Положения 5 рабочая подача
Положения 6 и 7 Фазка 45*,когда суппорт перемещается сразу в двух направлениях и обработка
детали производится под углом 45*,скорость задается на рабочей подачи галетником(1-18)
Числа наверное взять можно произвольные, 1,7,11,18 это номера ступений я использовал.

Автор: VAL_64 12.02.2017 - 15:19

Цитата(acoustik @ 12.02.2017 - 13:01) *
Управлять скоростью суппорта можно аналогично как и скоростью план-шайбы. Там все будет тоже самое, что в программе P1_Normal_Mode (съем значения галетника).
А галетник на 7 позиций режимов - судя по программе, это обычный переключатель на 7 положений? Тогда его положение лучше опрашивать напрямую с маркеров, а не использовать сравнение с числовыми эквивалентами. Это добавляет лишний избыточный код в программу (инструкции сравнения).

Блог FB_Bin_Filter повторно можно использовать?

Автор: acoustik 12.02.2017 - 15:21

Цитата(VAL_64 @ 12.02.2017 - 21:15) *
Положения 5 рабочая подача
Положения 6 и 7 Фазка 45*,когда суппорт перемещается сразу в двух направлениях и обработка
детали производится под углом 45*,скорость задается на рабочей подачи галетником(1-18)
Числа наверное взять можно произвольные, 1,7,11,18 это номера ступений я использовал.

Я так понял, в положениях галетника 1-2-3-4 скорость выбирается какая-то постоянная из всех значений скоростей в массиве (var1). А в положениях 5-6-7 ее (скорость) можно крутить этим галетником, выбирая любую.


Автор: acoustik 12.02.2017 - 15:24

Цитата(VAL_64 @ 12.02.2017 - 21:19) *
Блог FB_Bin_Filter повторно можно использовать?

Не можно, а нужно. Сколько угодно раз, в любой подпрограмме, если маска фильтра соответствует H1F.

Автор: acoustik 12.02.2017 - 15:36

Откройте тело блока FB_Bin_Filter и уберите в первой строке букву "I" у команды LDI.

В программе P1_Normal_Mode поставьте инверсию у входа Е.


Теперь блок FB_Bin_Filter применяйте в нужных местах, задействуя вход Е в качестве разрешения переноса на выход "_d" кода галетника. Если на входе Е будет 0 (ЛОЖЬ), то в выходную переменную, которая подключена к "_d", можно записывать любое значение в любом другом участке этой программы.

Автор: VAL_64 12.02.2017 - 15:39

Цитата(acoustik @ 12.02.2017 - 16:21) *
Цитата(VAL_64 @ 12.02.2017 - 21:15) *
Положения 5 рабочая подача
Положения 6 и 7 Фазка 45*,когда суппорт перемещается сразу в двух направлениях и обработка
детали производится под углом 45*,скорость задается на рабочей подачи галетником(1-18)
Числа наверное взять можно произвольные, 1,7,11,18 это номера ступений я использовал.

Я так понял, в положениях галетника 1-2-3-4 скорость выбирается какая-то постоянная из всех значений скоростей в массиве (var1). А в положениях 5-6-7 ее (скорость) можно крутить этим галетником, выбирая любую.

Первые четыре режима , 1-5мм/мин. 2-46мм/мин. 3-160мм/мин. 4-1800мм/мин.
это фиксированные скорости взятые из наших 18 ступений
получается 1 ступень, 7 ступень, 11 ступень, 18 ступень,суппорт будет перемещаться за счет двигателя,

5-6-7-- суппорт будет перемещаться за счет планшайбы связанной механический через муфту рабочей подачи и муфту направления,
регулироваться скорость перемещения будет за счет оборотов планшайбы и галетника (1-18) супорта.

Автор: acoustik 12.02.2017 - 15:55

Цитата(VAL_64 @ 12.02.2017 - 21:39) *
5-6-7-- суппорт будет перемещаться за счет планшайбы связанной механический через муфту рабочей подачи и муфту направления,
регулироваться скорость перемещения будет за счет оборотов планшайбы и галетника (1-18) супорта.

То есть в этих положениях (5-6-7) роль задатчика скорости план-шайбы принимает на себя галетник суппорта, вместо галетника план-шайбы? Что-то вроде - один галетник подменили другим? Что-то тут не сходится, кажется... Зачем тогда 18 ячеек скорости в массиве суппорта?

Автор: VAL_64 12.02.2017 - 16:17

Цитата(acoustik @ 12.02.2017 - 16:55) *
Цитата(VAL_64 @ 12.02.2017 - 21:39) *
5-6-7-- суппорт будет перемещаться за счет планшайбы связанной механический через муфту рабочей подачи и муфту направления,
регулироваться скорость перемещения будет за счет оборотов планшайбы и галетника (1-18) супорта.

То есть в этих положениях (5-6-7) роль задатчика скорости план-шайбы принимает на себя галетник суппорта, вместо галетника план-шайбы? Что-то вроде - один галетник подменили другим? Что-то тут не сходится, кажется... Зачем тогда 18 ячеек скорости в массиве суппорта?

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

 

Автор: acoustik 12.02.2017 - 16:25

Цитата(VAL_64 @ 12.02.2017 - 22:17) *
Нет, у нас две разные коробки, скорости план-шайбы и подачи супорта.
Инициализацию выполнили с разными кодами ступений.
В планшайбе в коробке 10 муфт
В суппорте 8 муфт

Ну вроде ясно. Про количество муфт там и там понятно сразу было. Думаю, надо сперва избавится от лишнего и немного привести программу в нормальный вид, т.е. разложить все по полочкам (в отдельные программы, согласно назначению).

Автор: acoustik 12.02.2017 - 17:10

Сперва надо вдумчиво определить глобальные переменные. Программы Р5 и Р7 пока не задействованы (оставил как есть), потому что их нужно здорово править (по идее с чистого листа писать). В этом проекте (ниже) они не компилируются и не участвуют в работе.
 Suport_Plan_Switcher_2.zip ( 207.2 килобайт ) : 5

Структура "Switch" тоже пока в стороне. Надо подумать как лучше ее раскидать.

Автор: acoustik 12.02.2017 - 17:21

На данном этапе надо составить список всех входов-выходов с привязкой к конкретным устройствам. Во всяком случае - точно известных на данный момент устройств, в соответствии с "правилами", о которых я говорил выше.
Например, будем считать, что галетник режимов суппорта на 7 положений подключен ко входам Х20...Х26.

Автор: acoustik 12.02.2017 - 17:38

Вернее, даже так: выкинем пока программу Р7 из проекта, чтоб не мозолила глаз, а программу Р5 переименуем в суппорт и закинем в задачу T3_Inf_Loop (вечный цикл):

Автор: acoustik 12.02.2017 - 17:49

Тело программы суппорта начнем с выкалупывания галетника скорости, используя уже готовый блок FB_Bin_Filter. Причем, поставим условие передачи значения галетника в переменную Set_Value только в 5,6 и 7-м режимах.

Так же, согласно "договору", галетник скорости суппорта будет подключен ко входам Х10...Х14. Соответственно, его маркеры будут М10...М14.

Автор: acoustik 12.02.2017 - 18:03

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

Автор: VAL_64 12.02.2017 - 18:49

У меня что то ошибку дает на (FB_Bin_Filter).
Разбираюсь как вставить,читаю описание.

Автор: VAL_64 12.02.2017 - 22:37

Цитата(VAL_64 @ 12.02.2017 - 19:49) *
У меня что то ошибку дает на (FB_Bin_Filter).
Разбираюсь как вставить,читаю описание.

Разобрался.

Автор: acoustik 13.02.2017 - 06:12

Цитата(VAL_64 @ 13.02.2017 - 00:49) *
У меня что то ошибку дает на (FB_Bin_Filter).
Разбираюсь как вставить,читаю описание.

Любой ФБ вставляется в программу так же, как и инструкции и фирменные функц. блоки, таймеры...

Вызывается окно вставки ФБ:


Вот тут находятся ФБ, которые есть внутри проекта:


После вставки, прописывается локальная переменная этого ФБ в Header'е:

Автор: acoustik 13.02.2017 - 07:59

По адресам - вот такой расклад получается:


Тут все сигналы, которые мне известны. Добавьте там если надо.

Автор: acoustik 13.02.2017 - 09:04

Да, забыл про вордовский документ, там еще несколько сигналов описаны, которых я не учел:

Еще входы:
1. Двигатель установочных перемещений вкл. (блок-контакт) - это же не главный мотор? Т.е. для него тоже нужен вход, что он работает?
2. Ограничение движение суппорта (концевик)

Выходы:
1. Включение лубрикатора смазки
2. Суппорт в работе (лампочка)

Добавил:

Автор: VAL_64 13.02.2017 - 10:54

1. Двигатель установочных перемещений вкл. (блок-контакт) - это же не главный мотор? Т.е. для него тоже нужен вход, что он работает?
Нет ни главный, можно и не делать.
Я добавил еще поперечину, она ходит вверх и вниз.
Зажим-Разжим там ручной рукоятка, поворачиваешь до срабатывания концевика, концевик стоит с наруже

 

Автор: acoustik 13.02.2017 - 11:08

Цитата(VAL_64 @ 13.02.2017 - 16:54) *
1. Двигатель установочных перемещений вкл. (блок-контакт) - это же не главный мотор? Т.е. для него тоже нужен вход, что он работает?
Нет ни главный, можно и не делать.

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

Цитата(VAL_64 @ 13.02.2017 - 16:54) *
Я добавил еще поперечину, она ходит вверх и вниз.
Зажим-Разжим там ручной рукоятка, поворачиваешь до срабатывания концевика, концевик стоит с наруже

Вижу. Только надо будет все это описать как-то, как работает и как взаимодействует между собой.

Автор: VAL_64 13.02.2017 - 11:30

Цитата(acoustik @ 13.02.2017 - 12:08) *
Цитата(VAL_64 @ 13.02.2017 - 16:54) *
1. Двигатель установочных перемещений вкл. (блок-контакт) - это же не главный мотор? Т.е. для него тоже нужен вход, что он работает?
Нет ни главный, можно и не делать.

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

Цитата(VAL_64 @ 13.02.2017 - 16:54) *
Я добавил еще поперечину, она ходит вверх и вниз.
Зажим-Разжим там ручной рукоятка, поворачиваешь до срабатывания концевика, концевик стоит с наруже

Вижу. Только надо будет все это описать как-то, как работает и как взаимодействует между собой.

Там в принципе все стандартно, но только я пока не понял с выборкой люфта.
Да на вход внешнего сигнала авария я соберу все концевики ограничений, и не мешало бы сделать один выход на лампу(чтобы мигала с частотой 1гц.)
Входов то больше нет.
Выход еще вроде остался.


 

Автор: acoustik 13.02.2017 - 11:44

Лампу аварии добавил (Y15), кстати соответствует входу внешней аварии (Х15).
Будем считать, что все физические сигналы периферии определены и четко локализованы:

Автор: acoustik 13.02.2017 - 11:51

Стартовый проект, с оформленным списком GVL:
 Suport_Plan_Switcher_2.zip ( 213.25 килобайт ) : 5


В дальнейшем надо отталкиваться от него. Имена глобальных переменных, их адреса и структуры не менять.

Автор: acoustik 14.02.2017 - 08:12

Я бы этот галетник режимов на 7 положений переделал в двоичный код. Он занял бы всего 3 входа. Особенно если входа еще нужны а их не хватает...

Автор: VAL_64 14.02.2017 - 08:47

Цитата(acoustik @ 14.02.2017 - 09:12) *
Я бы этот галетник режимов на 7 положений переделал в двоичный код. Он занял бы всего 3 входа. Особенно если входа еще нужны а их не хватает...

Можно, но на галетнике в станке наверное дешифратор надо делать из диодов,
там стоит обычный советский галетник.
На галетнике (1-18) уже что то встроено внутри, я не разбирал его он крупней этого.
Еще узел смены инструмента на пять положений остался не затронут, я хотел его отдельно сделать на реле,или на простом контролере.
Там кнопка (смены инструмента ) три концевика (фиксация,контроль зажима и еще один), контакт с токового реле,
и два выхода на пускатели двигателя.
Если попотеть наверное можно с экономить вх.\вых. для смены инструмента, а так можно и не делать в двоичным коде.

Автор: VAL_64 14.02.2017 - 09:12

Цитата(VAL_64 @ 14.02.2017 - 09:47) *
Цитата(acoustik @ 14.02.2017 - 09:12) *
Я бы этот галетник режимов на 7 положений переделал в двоичный код. Он занял бы всего 3 входа. Особенно если входа еще нужны а их не хватает...

Можно, но на галетнике в станке наверное дешифратор надо делать из диодов,
там стоит обычный советский галетник.
На галетнике (1-18) уже что то встроено внутри, я не разбирал его он крупней этого.
Еще узел смены инструмента на пять положений остался не затронут, я хотел его отдельно сделать на реле,или на простом контролере.
Там кнопка (смены инструмента ) три концевика (фиксация,контроль зажима и еще один), контакт с токового реле,
и два выхода на пускатели двигателя.
Если попотеть наверное можно с экономить вх.\вых. для смены инструмента, а так можно и не делать в двоичным коде.

Сигналы Y13 и Y14 можно взять, лампа суппорт в работе- с муфт,
лубрикатор смазки-с двигателя супорта
смазка включается только когда двигается суппорт

Автор: VAL_64 14.02.2017 - 10:34

Цитата(VAL_64 @ 14.02.2017 - 09:47) *
Цитата(acoustik @ 14.02.2017 - 09:12) *
Я бы этот галетник режимов на 7 положений переделал в двоичный код. Он занял бы всего 3 входа. Особенно если входа еще нужны а их не хватает...

Можно, но на галетнике в станке наверное дешифратор надо делать из диодов,
там стоит обычный советский галетник.
На галетнике (1-18) уже что то встроено внутри, я не разбирал его он крупней этого.
Еще узел смены инструмента на пять положений остался не затронут, я хотел его отдельно сделать на реле,или на простом контролере.
Там кнопка (смены инструмента ) три концевика (фиксация,контроль зажима и еще один), контакт с токового реле,
и два выхода на пускатели двигателя.
Если попотеть наверное можно с экономить вх.\вых. для смены инструмента, а так можно и не делать в двоичным коде.

Вот примерно так, наверное

 

Автор: acoustik 14.02.2017 - 11:34

Цитата(VAL_64 @ 14.02.2017 - 16:34) *
Вот примерно так, наверное

Да, именно так. Причем для 1 и 2 положений диоды не нужны.
А муфты тормоза 1,2 включаются всегда обе или бывает по отдельности? А то можно и их на один выход повесить

Автор: VAL_64 14.02.2017 - 12:21

Цитата(acoustik @ 14.02.2017 - 12:34) *
Цитата(VAL_64 @ 14.02.2017 - 16:34) *
Вот примерно так, наверное

Да, именно так. Причем для 1 и 2 положений диоды не нужны.
А муфты тормоза 1,2 включаются всегда обе или бывает по отдельности? А то можно и их на один выход повесить

Да муфты тормоза можно наверное включать вместе.
Два направления одновременно будут работать только при Фаске 45* и то тормозить будут вместе.

Автор: acoustik 14.02.2017 - 17:13

И так, как я понял: команда СТАРТ СУППОРТ поступает одновременно с каким-нибудь направлением (ВПРАВО, ВЛЕВО, ВВЕРХ, ВНИЗ), соответственно включаются муфты этих направлений и через пол секунды должен включаться двигатель суппорта. Потом, если джойстик (или крестовина, как там у вас) отпустили, то все вырубается, команда СТАРТ СУППОРТ тоже и включаются оба тормоза на 2 сек. Причем, если эти действия производятся в положении галетника выбора режима с 1 по 4-е, то в муфты скорости записываются какие-то постоянные значения (константы), а если положение 5 и выше, то скорость уже зависит от положения галетника скорости суппорта.
Я правильно понимаю?

И что включает РАБОЧУЮ муфту ?

Автор: VAL_64 14.02.2017 - 18:49

Цитата(acoustik @ 14.02.2017 - 18:13) *
И так, как я понял: команда СТАРТ СУППОРТ поступает одновременно с каким-нибудь направлением (ВПРАВО, ВЛЕВО, ВВЕРХ, ВНИЗ), соответственно включаются муфты этих направлений и через пол секунды должен включаться двигатель суппорта. Потом, если джойстик (или крестовина, как там у вас) отпустили, то все вырубается, команда СТАРТ СУППОРТ тоже и включаются оба тормоза на 2 сек. Причем, если эти действия производятся в положении галетника выбора режима с 1 по 4-е, то в муфты скорости записываются какие-то постоянные значения (константы), а если положение 5 и выше, то скорость уже зависит от положения галетника скорости суппорта.
Я правильно понимаю?

И что включает РАБОЧУЮ муфту ?

Да все правильно.
Режимы с 1 по 4-е это четыре фиксированные скорости (наши ступени 1 режим-1 ступень, 2 режим-7 ступень, 3 режим-11 ступень,
4 режим-18 ступень), работают от двигателя суппорта и только при выключенной план-шайбе. Кнопка Старт не должна блокироваться
(пока держишь включено отпустил выключилось) Скорость выбирается галетником режима ( 1-4 )
Да забыл галетник (1-18) в этом режиме не должен участвовать.

Режимы 5 работает также СТАРТ СУППОРТ выбор направление но вместо двигателя включается муфта рабочей подачи(можно с задержкой)
В этом режиме кнопка Старт должна фиксироваться (самоблокировка) пока не выключишь рычаг направления(с тормозом также)
скорость регулируется галетником (1-18)
Режим 5 работает только при включенной план-шайбе.
Режим 6-7 также как 5-й только включаются две муфты направления ЭТО Я ЕЩЕ УТОЧНЮ
надо почитать.

Автор: acoustik 14.02.2017 - 18:55

Цитата(VAL_64 @ 15.02.2017 - 00:49) *
Да все правильно.
Режимы с 1 по 4-е это четыре фиксированные скорости (наши ступени 1 режим-1 ступень, 2 режим-7 ступень, 3 режим-11 ступень,
4 режим-18 ступень), работают от двигателя суппорта и только при выключенной план-шайбе. Кнопка Старт не должна блокироваться
(пока держишь включено отпустил выключилось) Скорость выбирается галетником режима ( 1-4 )
Режимы 5 работает также СТАРТ СУППОРТ выбор направление но вместо двигателя включается муфта рабочей подачи(можно с задержкой)
В этом режиме кнопка Старт должна фиксироваться (самоблокировка) пока не выключишь рычаг направления(с тормозом также)
скорость регулируется галетником (1-18)
Режим 5 работает только при включенной план-шайбе.
Режим 6-7 также как 5-й только включаются две муфты направления ЭТО Я ЕЩЕ УТОЧНЮ
надо почитать.

Кнопка СТАРТ суппорта, я так понимаю? То есть сначала дергаем ручку направления и затем нажимаем эту кнопку и суппорт поедет? (с блокировкой понятно)
Просто тут один момент: двигатель суппорта должен включаться сразу после нажатия кнопки СТАРТ или только после того, как включили какое-то направление?
Из прошлой программы я понял что двигатель не включается, если не вкл кнопка СТАРТ И какое-нить направление. Причем с задержкой в 0,5 с.

Автор: VAL_64 14.02.2017 - 19:04

Цитата(acoustik @ 14.02.2017 - 19:55) *
Цитата(VAL_64 @ 15.02.2017 - 00:49) *
Да все правильно.
Режимы с 1 по 4-е это четыре фиксированные скорости (наши ступени 1 режим-1 ступень, 2 режим-7 ступень, 3 режим-11 ступень,
4 режим-18 ступень), работают от двигателя суппорта и только при выключенной план-шайбе. Кнопка Старт не должна блокироваться
(пока держишь включено отпустил выключилось) Скорость выбирается галетником режима ( 1-4 )
Режимы 5 работает также СТАРТ СУППОРТ выбор направление но вместо двигателя включается муфта рабочей подачи(можно с задержкой)
В этом режиме кнопка Старт должна фиксироваться (самоблокировка) пока не выключишь рычаг направления(с тормозом также)
скорость регулируется галетником (1-18)
Режим 5 работает только при включенной план-шайбе.
Режим 6-7 также как 5-й только включаются две муфты направления ЭТО Я ЕЩЕ УТОЧНЮ
надо почитать.

Кнопка СТАРТ суппорта, я так понимаю? То есть сначала дергаем ручку направления и затем нажимаем эту кнопку и суппорт поедет? (с блокировкой понятно)
Просто тут один момент: двигатель суппорта должен включаться сразу после нажатия кнопки СТАРТ или только после того, как включили какое-то направление?
Из прошлой программы я понял что двигатель не включается, если не вкл кнопка СТАРТ И какое-нить направление. Причем с задержкой в 0,5 с.

Сейчас уточню.

Автор: acoustik 14.02.2017 - 19:17

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

Автор: VAL_64 14.02.2017 - 19:40

Как я понял из описания муфты направления включаются от переключателя направления, а рабочая муфта и двигатель
от кнопки Старт суппорта.
У нас движение координаты не будет пока не выполнится два условия, муфта направление и рабочая муфта не включатся.
Пусть будет рычаги направления включают муфты направления, а кнопка Старт суппорта двигатель(рабочую муфту)
Будем кнопкой Старт суппорта раскручивать двигатель, а потом рычагом давать направление.
А тормоз должен срабатывать когда пропадет сигнал направления,не зависимо включен двигатель кнопкой или нет
Также с рабочей муфтой.

Автор: acoustik 14.02.2017 - 19:43

Цитата(VAL_64 @ 15.02.2017 - 01:40) *
Как я понял из описания муфты направления включаются от переключателя направления, а рабочая муфта и двигатель
от кнопки Старт суппорта.
У нас движение координаты не будет пока не выполнится два условия, муфта направление и рабочая муфта не включатся.
Пусть будет рычаги направления включают муфты направления, а кнопка Старт суппорта двигатель(рабочую муфту)
Будем кнопкой Старт суппорта раскручивать двигатель, а потом рычагом давать направление.
А тормоз должен срабатывать когда пропадет сигнал направления,не зависимо включен двигатель кнопкой или нет
Также с рабочей муфтой.

Да, так наверное похоже на правду.

Автор: acoustik 14.02.2017 - 19:48

1-4 режимы НЕ блокируют кнопку старт - двигатель и рабочая муфта работают пока кнопку не отпустишь.
5-7 режимы БЛокируют кнопку старт - двигатель и рабочая муфта работают без зажима этой кнопки, пока не пропадет сигнал с джойстика направления

Автор: VAL_64 14.02.2017 - 20:01

Цитата(acoustik @ 14.02.2017 - 20:48) *
1-4 режимы НЕ блокируют кнопку старт - двигатель и рабочая муфта работают пока кнопку не отпустишь.
5-7 режимы БЛокируют кнопку старт - двигатель и рабочая муфта работают без зажима этой кнопки, пока не пропадет сигнал с джойстика направления

1-4 режимы НЕ блокируют кнопку старт--работает только двигатель без включения планшайбы
5-7 режимы БЛокируют кнопку старт------работает только муфта рабочей подачи при включенной план-шайбе

 

Автор: acoustik 14.02.2017 - 20:07

Примерно понятно. Если что, нетрудно будет внести корректировки.
Я немного изменил состав и наполненность глобальных переменных; завтра с утра постараюсь подредактировать скелет (начало) программы суппорта в свете новой информации и выложу.

Автор: acoustik 15.02.2017 - 07:32

Пока примерно вот так:
 Suport_Plan_Switcher_2.zip ( 217.14 килобайт ) : 3


Начата логика работы суппорта в режимах 1-4 (программа Р5). Сперва эту часть надо доработать, а затем переходить к следующей.

Автор: VAL_64 15.02.2017 - 10:27

Вот разбираюсь, что то не пойму таймер не хочет включаться.
Команда вкл. двигатель проходит до таймера доходит, а он не срабатывает.


 

Автор: acoustik 15.02.2017 - 11:08

Цитата(VAL_64 @ 15.02.2017 - 16:27) *
Вот разбираюсь, что то не пойму таймер не хочет включаться.
Команда вкл. двигатель проходит до таймера доходит, а он не срабатывает.

Блин, извиняюсь. Забыл имя поменять у таймера ниже. Смените имя и все заработает.

Автор: VAL_64 15.02.2017 - 13:32

После отключения направления, пока еще нажата кнопка старт муфты направления не отключались пока не отпустишь кнопку старт.
И на выход Spd_Out (K2Y20) выводилось номер ступени а надо комбинацию из массива согласно таблице.
Попробовал подправить,вот что получилось.

Девятая строка кажется лишняя, ведь у нас все восемь бит используется.


 

Автор: acoustik 15.02.2017 - 13:44

Цитата(VAL_64 @ 15.02.2017 - 19:32) *
После отключения направления, пока еще нажата кнопка старт муфты направления не отключались пока не отпустишь кнопку старт.
И на выход Spd_Out (K2Y20) выводилось номер ступени а надо комбинацию из массива согласно таблице.
Попробовал подправить,вот что получилось.

Все правильно, вот для чего нужны такие моменты, чтобы их отловить сразу. Там тоже забыл внести изменения... ph34r.gif
Они не отключаются по 11-й строке, которая предполагает отключение двигателя. Сейчас нарисую как надо сделать.

Автор: acoustik 15.02.2017 - 13:48

WAND и WOR тут не нужны.

Автор: VAL_64 15.02.2017 - 13:55

Цитата(acoustik @ 15.02.2017 - 14:48) *
WAND и WOR тут не нужны.

Я уже понял, после то как отправил.

Автор: acoustik 15.02.2017 - 13:56

Попробуйте вот этот:
 Suport_Plan_Switcher_2.zip ( 217.57 килобайт ) : 3


Управление выходами скорости суппорта вынесено в программу Output. В программе Р5 мы управляем только индексом!

Автор: acoustik 15.02.2017 - 14:03

Цитата(VAL_64 @ 15.02.2017 - 19:32) *
И на выход Spd_Out (K2Y20) выводилось номер ступени а надо комбинацию из массива согласно таблице.

Вот это оплошность еще та, я не заметил. Наскоряк делал. Просто занят немного другой работой, на форум не часто вылажу. Но вы то увидели в чем подвох - зачет! wink.gif

Автор: VAL_64 15.02.2017 - 14:06

Цитата(acoustik @ 15.02.2017 - 15:03) *
Цитата(VAL_64 @ 15.02.2017 - 19:32) *
И на выход Spd_Out (K2Y20) выводилось номер ступени а надо комбинацию из массива согласно таблице.

Вот это оплошность еще та, я не заметил. Наскоряк делал. Просто занят немного другой работой, на форум не часто вылажу. Но вы то увидели в чем подвох - зачет! wink.gif

Для меня это полезно, я потихоньку каждый шаг разбираю.

Автор: acoustik 15.02.2017 - 14:32

Таблица физических подключений согласно проекту выглядит сейчас вот так:

Как видно, я изменил порядок выходов муфт управления, чтобы они соответствовали направлению джойстика, т.е. слово К1М31 напрямую передается в выходы K1Y31. Вообще, программа P9_Output создана только потому, что она содержит одинаковые инструкции для обоих режимов работы планшайбы. Чтобы не дублировать их в каждой программе режима планшайбы. Поэтому, выходы на скорость суппорта можно и оставить в самой программе суппорта - все равно, управление скоростью сводится к записи значения в индекс массива скорости суппорта. Но можно засунуть и туда, что справедливо, ибо блок программы Р9 выполняется последним, что собственно переносит результат программы на выхода.

Автор: VAL_64 15.02.2017 - 20:52

Попробовал пятый режим, вот что получилось.
Сигнал план-шайба в работе пока инвертировал чтобы не мешал.
И заметил если отключить направление и пока включен тормоз включить опять направление,
то получается все три муфты тормоз и направление на какое то время остаются включенными (это не хорошо наверное).
Как то наверное надо сделать пока тормоз не отпустит, направление не включалось

Да вначале в место FB_Bin_Filter поставил WAND_3_M правильно или не правильно.

 Suport_Plan_Switcher_2.zip ( 204.16 килобайт ) : 2
 

Автор: VAL_64 16.02.2017 - 08:38

Цитата(VAL_64 @ 15.02.2017 - 21:52) *
Попробовал пятый режим, вот что получилось.
Сигнал план-шайба в работе пока инвертировал чтобы не мешал.
И заметил если отключить направление и пока включен тормоз включить опять направление,
то получается все три муфты тормоз и направление на какое то время остаются включенными (это не хорошо наверное).
Как то наверное надо сделать пока тормоз не отпустит, направление не включалось

Да вначале в место FB_Bin_Filter поставил WAND_3_M правильно или не правильно.

Вот с тормозом подправил,пока тормоз не отработает направление не включится.

 

Автор: acoustik 16.02.2017 - 09:41

Цитата(VAL_64 @ 16.02.2017 - 02:52) *
Попробовал пятый режим, вот что получилось.

Гляну.

Цитата(VAL_64 @ 16.02.2017 - 02:52) *
Да вначале в место FB_Bin_Filter поставил WAND_3_M правильно или не правильно.

Принципиально нет никакой разницы.

Автор: acoustik 16.02.2017 - 10:00

Нетворки 14 и 15 удаляем. Эти действия уже выполняются в 9 и 10, их незачем дублировать.

Муфты направления и скорости включаются всегда, во всех положениях галетника режима (1-7), поэтому надо это дело вынести отдельно от всех прочих условий, чтобы не повторять два раза (на режимах 1-4 и режимах 5-7).

Сделаю чутка попозже...

В 5-6-7 режимах мотор суппорта не включается? Все работает через рабочую муфту?

Автор: VAL_64 16.02.2017 - 10:04

В 5-6-7 режимах мотор суппорта не включается? Все работает через рабочую муфту?

Да.

Автор: acoustik 16.02.2017 - 10:16

Тогда вот так:
 Suport_Plan_Switcher_2.1.zip ( 217.96 килобайт ) : 2


Второй таймер для раб муфты тоже позже выкину. Можно одним обойтись и для мотора и для муфты.

Автор: VAL_64 16.02.2017 - 11:02

Цитата(acoustik @ 16.02.2017 - 11:16) *
Тогда вот так:
 Suport_Plan_Switcher_2.1.zip ( 217.96 килобайт ) : 2


Второй таймер для раб муфты тоже позже выкину. Можно одним обойтись и для мотора и для муфты.

Сейчас внимательно прочитал про двигатель там еще нужна задержка на отключение двигателя,
а задержку на рабочую муфту можно убрать про нее ни что не сказано

 

Автор: acoustik 16.02.2017 - 11:06

Понятно, т.е. двигатель вкл с задержкой и выкл с задержкой, а раб муфта вкл/выкл сразу.

Автор: VAL_64 16.02.2017 - 11:16

Цитата(acoustik @ 16.02.2017 - 12:06) *
Понятно, т.е. двигатель вкл с задержкой и выкл с задержкой, а раб муфта вкл/выкл сразу.

Да.

Автор: VAL_64 16.02.2017 - 12:00

На 5-7 режиме включение рабочей муфты, должно встать на самоблокировку.
Пока не выключишь направление.

Автор: acoustik 16.02.2017 - 12:13

Цитата(VAL_64 @ 16.02.2017 - 18:00) *
На 5-7 режиме включение рабочей муфты, должно встать на самоблокировку.
Пока не выключишь направление.

Ага. Чуть позже соорудим. Занят немного...

Автор: VAL_64 16.02.2017 - 18:50

Вот так можно делать?
Лампа индикации "Суппорт включен", включается вместе с выбором направления.

 

Автор: acoustik 16.02.2017 - 19:13

Цитата(VAL_64 @ 17.02.2017 - 00:50) *
Вот так можно делать?
Лампа индикации "Суппорт включен", включается вместе с выбором направления.

Можно. С точки зрения ПЛК это обычное действие включения выхода, главное чтобы это действие совпадало с вашими задумками wink.gif .

Автор: acoustik 16.02.2017 - 20:16

Смотрите, общая логика для этих двух режимов сводится лишь к тому, что в одном случае (режимы 1-4) мы включаем двигатель, причем с выключенной планшайбой, а во втором (5-7) включаем только рабочую муфту и уже с включенной планшайбой. Плюс к этому, во втором случае начинает действовать галетник скорости суппорта. Разложите эти два направления (условия) в программе. Попробуйте сделать это самостоятельно, а завтра я выложу свое видение этого вопроса.

Автор: VAL_64 16.02.2017 - 20:45

Цитата(acoustik @ 16.02.2017 - 21:16) *
Смотрите, общая логика для этих двух режимов сводится лишь к тому, что в одном случае (режимы 1-4) мы включаем двигатель, причем с выключенной планшайбой, а во втором (5-7) включаем только рабочую муфту и уже с включенной планшайбой. Плюс к этому, во втором случае начинает действовать галетник скорости суппорта. Разложите эти два направления (условия) в программе. Попробуйте сделать это самостоятельно, а завтра я выложу свое видение этого вопроса.

Вот что получилось, еще добавил включение лубрикатора смазки при 1-4 режиме, и выбора любого направления.

 Suport_Plan_Switcher_2.1.zip ( 204.52 килобайт ) : 5
 

Автор: acoustik 17.02.2017 - 09:05

Цитата(VAL_64 @ 17.02.2017 - 02:45) *
Вот что получилось, еще добавил включение лубрикатора смазки при 1-4 режиме, и выбора любого направления.

Ну да, что-то типа этого. А галетник так и останется переключателем, не будет в двоичном коде?

Автор: acoustik 17.02.2017 - 09:10

Основная задача галетника переключать режимы, и как в дополнение мы еще используем его для определения диапазонов 1-4 и 5-7. Я думаю, в самом начале программы Р5 выделить эти диапазоны, создав локальные две переменные и уже использовать их, вместо инструкций OR.

Хотя нет, можно оставить и так.

Автор: VAL_64 17.02.2017 - 09:45

Цитата(acoustik @ 17.02.2017 - 10:05) *
Цитата(VAL_64 @ 17.02.2017 - 02:45) *
Вот что получилось, еще добавил включение лубрикатора смазки при 1-4 режиме, и выбора любого направления.

Ну да, что-то типа этого. А галетник так и останется переключателем, не будет в двоичном коде?

Можно реализовать галетник в двоичном коде.

Автор: acoustik 17.02.2017 - 09:50

Цитата(VAL_64 @ 16.02.2017 - 18:00) *
На 5-7 режиме включение рабочей муфты, должно встать на самоблокировку.
Пока не выключишь направление.

То есть без направления она тоже не включается? Пока джойстик куда нибудь не дернешь?

Автор: VAL_64 17.02.2017 - 10:00

Цитата(acoustik @ 17.02.2017 - 10:50) *
Цитата(VAL_64 @ 16.02.2017 - 18:00) *
На 5-7 режиме включение рабочей муфты, должно встать на самоблокировку.
Пока не выключишь направление.

То есть без направления она тоже не включается? Пока джойстик куда нибудь не дернешь?

Может включатся, но не вставать на самоблокировку пока не включишь направление.
Как направление убрал муфта выключится.

Автор: acoustik 17.02.2017 - 10:06

Примерно вот так:
 Suport_Plan_Switcher_2.2.zip ( 218.17 килобайт ) : 4

Автор: acoustik 17.02.2017 - 10:30

Только вот здесь вот:


Это конкретно только для 5-го режима или для всего диапазона 5-7 ? Если только для пятого, то надо заменить переменную Range_5_7 на Control_SU.Mode5.

Автор: VAL_64 17.02.2017 - 10:50

Цитата(acoustik @ 17.02.2017 - 11:30) *
Только вот здесь вот:


Это конкретно только для 5-го режима или для всего диапазона 5-7 ? Если только для пятого, то надо заменить переменную Range_5_7 на Control_SU.Mode5.

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


 

Автор: acoustik 17.02.2017 - 11:17

Я так понимаю, рабочая муфта включается во всех режимах 5-6-7 ? Вот как раз 10-й нетворк ей и управляет. Поэтому я поставил туда переменную диапазона Range_5_7.
Зачем дублировать программу включения рабочей муфты для всех трех режимов? Различаться будут только коды, поступающие на выхода муфт направлений.

Автор: VAL_64 17.02.2017 - 11:34

Цитата(acoustik @ 17.02.2017 - 12:17) *
Я так понимаю, рабочая муфта включается во всех режимах 5-6-7 ? Вот как раз 10-й нетворк ей и управляет. Поэтому я поставил туда переменную диапазона Range_5_7.
Зачем дублировать программу включения рабочей муфты для всех трех режимов? Различаться будут только коды, поступающие на выхода муфт направлений.

Совершенно верно, но 5 от 6-7 все ровно как то надо разделять.

Автор: acoustik 17.02.2017 - 11:53

Цитата(VAL_64 @ 17.02.2017 - 17:34) *
Цитата(acoustik @ 17.02.2017 - 12:17) *
Я так понимаю, рабочая муфта включается во всех режимах 5-6-7 ? Вот как раз 10-й нетворк ей и управляет. Поэтому я поставил туда переменную диапазона Range_5_7.
Зачем дублировать программу включения рабочей муфты для всех трех режимов? Различаться будут только коды, поступающие на выхода муфт направлений.

Совершенно верно, но 5 от 6-7 все ровно как то надо разделять.

Хм, ну тогда разделите. Я погляжу потом, чтоб понять смысл этого разделения

Автор: VAL_64 17.02.2017 - 13:21

Цитата(acoustik @ 17.02.2017 - 12:53) *
Цитата(VAL_64 @ 17.02.2017 - 17:34) *
Цитата(acoustik @ 17.02.2017 - 12:17) *
Я так понимаю, рабочая муфта включается во всех режимах 5-6-7 ? Вот как раз 10-й нетворк ей и управляет. Поэтому я поставил туда переменную диапазона Range_5_7.
Зачем дублировать программу включения рабочей муфты для всех трех режимов? Различаться будут только коды, поступающие на выхода муфт направлений.

Совершенно верно, но 5 от 6-7 все ровно как то надо разделять.

Хм, ну тогда разделите. Я погляжу потом, чтоб понять смысл этого разделения

Не так выразился, вот что получилось.

Правда "Суппорт в работе" повторяется три раза,надо как то по другому буду думать.

 

Автор: acoustik 17.02.2017 - 13:56

Цитата(VAL_64 @ 17.02.2017 - 19:21) *
Цитата(acoustik @ 17.02.2017 - 12:53) *
Цитата(VAL_64 @ 17.02.2017 - 17:34) *
Цитата(acoustik @ 17.02.2017 - 12:17) *
Я так понимаю, рабочая муфта включается во всех режимах 5-6-7 ? Вот как раз 10-й нетворк ей и управляет. Поэтому я поставил туда переменную диапазона Range_5_7.
Зачем дублировать программу включения рабочей муфты для всех трех режимов? Различаться будут только коды, поступающие на выхода муфт направлений.

Совершенно верно, но 5 от 6-7 все ровно как то надо разделять.

Хм, ну тогда разделите. Я погляжу потом, чтоб понять смысл этого разделения

Не так выразился, вот что получилось.

Правда "Суппорт в работе" повторяется три раза,надо как то по другому буду думать.

У вас получилось дублирование выходов, а это не допустимо. Включившись в первом вхождении выход, сразу же отключится нетворком, следующим ниже. То есть надо понимать, что только последний встретившийся статус выхода в программе передастся на реальный выход.

Автор: VAL_64 17.02.2017 - 14:21

Цитата(acoustik @ 17.02.2017 - 14:56) *
Цитата(VAL_64 @ 17.02.2017 - 19:21) *
Цитата(acoustik @ 17.02.2017 - 12:53) *
Цитата(VAL_64 @ 17.02.2017 - 17:34) *
Цитата(acoustik @ 17.02.2017 - 12:17) *
Я так понимаю, рабочая муфта включается во всех режимах 5-6-7 ? Вот как раз 10-й нетворк ей и управляет. Поэтому я поставил туда переменную диапазона Range_5_7.
Зачем дублировать программу включения рабочей муфты для всех трех режимов? Различаться будут только коды, поступающие на выхода муфт направлений.

Совершенно верно, но 5 от 6-7 все ровно как то надо разделять.

Хм, ну тогда разделите. Я погляжу потом, чтоб понять смысл этого разделения

Не так выразился, вот что получилось.

Правда "Суппорт в работе" повторяется три раза,надо как то по другому буду думать.

У вас получилось дублирование выходов, а это не допустимо. Включившись в первом вхождении выход, сразу же отключится нетворком, следующим ниже. То есть надо понимать, что только последний встретившийся статус выхода в программе передастся на реальный выход.

Я про это и говорю, в таком виде только в седьмом режиме лампочка горит.

Автор: VAL_64 17.02.2017 - 15:16

В 6-7 режиме муфты направления не включаются, в 5 включается


Поменял в первом SEL вход 0 с входом 1
6-7 заработал 5 нет

Автор: VAL_64 17.02.2017 - 15:25

Цитата(acoustik @ 17.02.2017 - 16:15) *
Цитата(acoustik @ 17.02.2017 - 20:57) *
Вот так правильно:
[attachment=758:Suport_P...cher_2.2.zip]

Нет, тоже не пойдет. Надо подумать как лучше сделать.

Понял

Автор: acoustik 17.02.2017 - 15:26

Цитата(VAL_64 @ 17.02.2017 - 21:16) *
В 6-7 режиме муфты направления не включаются, в 5 включается


Поменял в первом SEL вход 0 с входом 1
6-7 заработал 5 нет

Я знаю. Секунду... ща будет норм

Автор: acoustik 17.02.2017 - 15:27

Вино, оно такое... rolleyes.gif
Вот рабочий вариант:
 Suport_Plan_Switcher_2.2.zip ( 219.6 килобайт ) : 6

Автор: acoustik 17.02.2017 - 15:31

Если режим НЕ 6 и НЕ 7, значит какой-то из диапазона 1-5. А в этом диапазоне на выход всегда проходит положение джойстика (переменная Support.Dir_I).
Если положение 6 или 7, то на выход попадают соответствующие константы.
Соответственно, если джойстик отпустить, то на выход муфт направления записывается 0. Инструкцию MOV переноса 0 на выхода направления в 12-м нетворке я удалил.

Автор: VAL_64 17.02.2017 - 15:51

Работает в роде все нормально, забыли только задержку на выключение двигателя суппорта.

Автор: acoustik 17.02.2017 - 15:57

Цитата(VAL_64 @ 17.02.2017 - 21:51) *
Работает в роде все нормально, забыли только задержку на выключение двигателя суппорта.

А, ну да. Ну это в принципе очень просто сделать.

Автор: acoustik 17.02.2017 - 16:05

Цитата(acoustik @ 17.02.2017 - 21:57) *
Цитата(VAL_64 @ 17.02.2017 - 21:51) *
Работает в роде все нормально, забыли только задержку на выключение двигателя суппорта.

А, ну да. Ну это в принципе очень просто сделать.

Например вот так:


Автор: acoustik 17.02.2017 - 16:37

Переключение скоростей суппорта должно тоже происходить ступенчато?
Например, стояла 2-я скорость, поставили 6-ю. Тогда муфты скоростей должны будут последовательно отработать все скорости 2-3-4-5-6 с паузами между переключениями (так же, как с планшайбой, только без разгонных ступеней).
То же, и в обратном направлении.

Автор: VAL_64 17.02.2017 - 16:51

Цитата(acoustik @ 17.02.2017 - 17:37) *
Переключение скоростей суппорта должно тоже происходить ступенчато?
Например, стояла 2-я скорость, поставили 6-ю. Тогда муфты скоростей должны будут последовательно отработать все скорости 2-3-4-5-6 с паузами между переключениями (так же, как с планшайбой, только без разгонных ступеней).
То же, и в обратном направлении.

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

Автор: VAL_64 17.02.2017 - 20:33

Цитата(VAL_64 @ 17.02.2017 - 17:51) *
Цитата(acoustik @ 17.02.2017 - 17:37) *
Переключение скоростей суппорта должно тоже происходить ступенчато?
Например, стояла 2-я скорость, поставили 6-ю. Тогда муфты скоростей должны будут последовательно отработать все скорости 2-3-4-5-6 с паузами между переключениями (так же, как с планшайбой, только без разгонных ступеней).
То же, и в обратном направлении.

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

Обработку поперечины наверное в новой программе начинать?
И обработку смены инструмента в новой?

Автор: acoustik 18.02.2017 - 06:16

Цитата(VAL_64 @ 18.02.2017 - 02:33) *
Обработку поперечины наверное в новой программе начинать?
И обработку смены инструмента в новой?

Ну да, согласно общей логике.

Автор: VAL_64 18.02.2017 - 12:07

Никак не соображу противоположное включение пускателя с задержкой на 1 сек.
Одна кнопка вверх другая вниз, пока держишь вкл. отпустил выкл.
При выключении должен включится противоположное направление на 1 сек.

 

Автор: acoustik 18.02.2017 - 12:41

Цитата(VAL_64 @ 18.02.2017 - 18:07) *
Никак не соображу противоположное включение пускателя с задержкой на 1 сек.
Одна кнопка вверх другая вниз, пока держишь вкл. отпустил выкл.
При выключении должен включится противоположное направление на 1 сек.

Т.е. включил кнопку ВВЕРХ - поехала вверх, отпустил кнопку - остановилось ВВЕРХ и на 1 сек включилась ВНИЗ ? Ну и наоборот?

Автор: VAL_64 18.02.2017 - 12:47

Цитата(acoustik @ 18.02.2017 - 13:41) *
Цитата(VAL_64 @ 18.02.2017 - 18:07) *
Никак не соображу противоположное включение пускателя с задержкой на 1 сек.
Одна кнопка вверх другая вниз, пока держишь вкл. отпустил выкл.
При выключении должен включится противоположное направление на 1 сек.

Т.е. включил кнопку ВВЕРХ - поехала вверх, отпустил кнопку - остановилось ВВЕРХ и на 1 сек включилась ВНИЗ ? Ну и наоборот?

Да, выборка люфта.

Автор: acoustik 18.02.2017 - 12:51

При этом надо еще небольшую задержку между переключениями вверх/вниз, чтобы успело отвалится реле вверх перед тем, как включится реле вниз. Или это элетрически там сделано (блокировка от одновременного включения) ?

Автор: VAL_64 18.02.2017 - 13:01

Цитата(acoustik @ 18.02.2017 - 13:51) *
При этом надо еще небольшую задержку между переключениями вверх/вниз, чтобы успело отвалится реле вверх перед тем, как включится реле вниз. Или это элетрически там сделано (блокировка от одновременного включения) ?

Да задержку наверное надо, (блокировка от одновременного включения) будет сделана на блок кантактах пускателей.


 

Автор: acoustik 18.02.2017 - 13:07

Цитата(VAL_64 @ 18.02.2017 - 19:01) *
Да задержку наверное надо, (блокировка от одновременного включения) будет сделана на блок кантактах пускателей.

Если блокировка одновр. включения будет сделана на блок-контактах контакторов направлений, то задержку в контроллере в принципе можно и не делать, так как роль этой задержки будет выполнять физическое время отключения включенного контактора направления (пока его блок-контакт не подготовит цепь для запуска противоположного направления). К этому моменту сигнал с ПЛК, запускающий это направление, будет висеть на выходе. Так как при отпускании кнопки одного направления ПЛК переключит выхода и включит другое направление очень быстро. И если блокировки нет, то включенный пускатель чисто механически не успеет отвалится, а другой пускатель начнет включатся...

Автор: VAL_64 18.02.2017 - 13:19

Цитата(acoustik @ 18.02.2017 - 14:07) *
Цитата(VAL_64 @ 18.02.2017 - 19:01) *
Да задержку наверное надо, (блокировка от одновременного включения) будет сделана на блок кантактах пускателей.

Если блокировка одновр. включения будет сделана на блок-контактах контакторов направлений, то задержку в контроллере в принципе можно и не делать, так как роль этой задержки будет выполнять физическое время отключения включенного контактора направления (пока его блок-контакт не подготовит цепь для запуска противоположного направления). К этому моменту сигнал с ПЛК, запускающий это направление, будет висеть на выходе. Так как при отпускании кнопки одного направления ПЛК переключит выхода и включит другое направление очень быстро. И если блокировки нет, то включенный пускатель чисто механически не успеет отвалится, а другой пускатель начнет включатся...

На практике реверс двигателя на пускателях всегда делают блокировку на блок.контактах и еще бывает чисто механическая
если залип один пускатель физический второй не сможет сработать.
Вывод: вы правы задержку в контроллере можно не делать.

Автор: acoustik 18.02.2017 - 13:23

Так же, обращаю внимание на то, что вход для конечника поперечины всего один (Х37), а это означает, что при включении любого конечника ВВЕРХ или ВНИЗ - все варианты движения будут заблокированы. По логике же вещей должно быть так: достигли верхнего положения - включился концевик ВВЕРХ и заблокировал дальнейшее движение ВВЕРХ. Однако ВНИЗ должно быть разрешено. Ну и наоборот. Иначе каким образом оттягивать поперечину от сработавшего конечника?

Автор: acoustik 18.02.2017 - 13:39

Но если отработка противоположного направления (на 1 сек) будет работать по любой причине, из-за которой поперечина остановилась (отпустили кнопку или сработал концевик), то нормально. При достижении концевика (любого) поперечина остановится и отъедет в противоположном направлении. Хотя по правилам такое не допускается, то есть если сработал конечник, то должна произойти полная остановка узла. И оттащить его от крайнего положения можно только либо вручную, либо противоположной кнопкой (направлением).

Автор: VAL_64 18.02.2017 - 13:43

Цитата(acoustik @ 18.02.2017 - 14:23) *
Так же, обращаю внимание на то, что вход для конечника поперечины всего один (Х37), а это означает, что при включении любого конечника ВВЕРХ или ВНИЗ - все варианты движения будут заблокированы. По логике же вещей должно быть так: достигли верхнего положения - включился концевик ВВЕРХ и заблокировал дальнейшее движение ВВЕРХ. Однако ВНИЗ должно быть разрешено. Ну и наоборот. Иначе каким образом оттягивать поперечину от сработавшего конечника?

Это я помню,(входов то не хватает) на станке все координаты имеют ручное перемещение,
вот из за этого чтобы узнать что сработали концевые выключатели будет мигать лампочка.

(Х37) это контроль зажима поперечины, он запрещает пуск план-шайбы и пуск вверх и вниз.
Зажим ручной (укоятка на поперечене), а конечник поперечины будет Х27 (супорт) я все конечники друг за другом посажу
на этот вход

Автор: acoustik 18.02.2017 - 13:52

Цитата(VAL_64 @ 18.02.2017 - 19:43) *
Цитата(acoustik @ 18.02.2017 - 14:23) *
Так же, обращаю внимание на то, что вход для конечника поперечины всего один (Х37), а это означает, что при включении любого конечника ВВЕРХ или ВНИЗ - все варианты движения будут заблокированы. По логике же вещей должно быть так: достигли верхнего положения - включился концевик ВВЕРХ и заблокировал дальнейшее движение ВВЕРХ. Однако ВНИЗ должно быть разрешено. Ну и наоборот. Иначе каким образом оттягивать поперечину от сработавшего конечника?

Это я помню,(входов то не хватает) на станке все координаты имеют ручное перемещение,
вот из за этого чтобы узнать что сработали концевые выключатели будет мигать лампочка.

(Х37) это контроль зажима поперечины, он запрещает пуск план-шайбы.
Зажим ручной (укоятка на поперечене), а конечник поперечины будет Х27 (супорт) я все конечники друг за другом посажу
на этот вход

Ну тогда нет проблем. Просто предусматривать такие ситуации нужно всегда, особенно если нет ручного перемещения. Хорошо когда станок работает, и ПЛК в состоянии отследить, в каком именно направлении двигался узел, перед тем как сработал конечник. Тогда элементарно заблокировать именно это направление, разрешив противоположное. А если узел достиг конечника, а тут обед. Вырубили питание станка и ушли... После обеда приходят, включают питание а узел в крайнем положении и ПЛК фиксирует включенный вход безопасности. Отлично, но как контроллер будет помнить - в каком именно направлении двигался узел до включения концевика и до выключения питания. Вот такие нюансы.

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