Вопросы новичка |
Здравствуйте, гость ( Вход | Регистрация )
Вопросы новичка |
7.10.2020 - 15:12
Сообщение
#1
|
|
Читатель Группа: Пользователи Сообщений: 11 Регистрация: 6.10.2020 Пользователь №: 11316 |
Только начал изучать ПЛК, у меня FX3G GXwork2 полностью в ST тк раньше сидел только в урезанном СИ микроконтроллеров. Вопросы которые я не смог понять/найти за эту неделю:
- как вызвать программный блок из основной программы, например на рисунке из POU_01 вызвать inte и вернуться; - как перемещаться в одной программе по меткам (Goto); - задать время повторения программы (цикл контроллера); - управлять быстрыми выходами (выдать пачку импульсов за время меньшее чем цикл контроллера). Задача минимум управлять 5-ю осями с серваками step/dir, линейная интерполяция по 2-м из них с точностью 0.1мм, без доп модулей это вполне возможно. Сообщение отредактировал Waldislaw - 7.10.2020 - 16:11
Прикрепленные файлы
|
|
|
8.10.2020 - 03:13
Сообщение
#2
|
|
Гигант мысли Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 |
Если только начал изучать ПЛК, настоятельно рекомендую Ladder, а не ST.
Ladder лучше визуализирует логику и лучше для понимания общих принципов и инструкций ПЛК. В ST, возможно, привычнее выглядят массивные вычисления, но ПЛК- это все же Программируемый ЛОГИЧЕСКИЙ Контроллер. Спорить или переубеждать, однако, не стану. Имеющий уши да услышит. Читаете ли Вы Руководство по программированию? Судя по вопросам, нет. Читайте его. "- задать время повторения программы (цикл контроллера)." Программа непрерывно выполняется циклически, если контроллер не остановлен вручную либо по фатальной ошибке выполнения программы. Выполнение кода программы занимает столько времени, сколько потребуется, и это время может (и в большинстве случаев будет) изменяться от цикла к циклу. Оно не может быть жестко задано либо ограничено извне. Однако, в настройках контроллера можно задать минимальное время цикла. Именно минимальное, хотя это может называться constant scantime: если программа не уложится в это время, оно будет превышено. -------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
8.10.2020 - 10:55
Сообщение
#3
|
|
Читатель Группа: Пользователи Сообщений: 11 Регистрация: 6.10.2020 Пользователь №: 11316 |
Если только начал изучать ПЛК, настоятельно рекомендую Ladder, а не ST. Ladder лучше визуализирует логику и лучше для понимания общих принципов и инструкций ПЛК. В ST, возможно, привычнее выглядят массивные вычисления, но ПЛК- это все же Программируемый ЛОГИЧЕСКИЙ Контроллер. Спорить или переубеждать, однако, не стану. Имеющий уши да услышит. Читаете ли Вы Руководство по программированию? Судя по вопросам, нет. Читайте его. "- задать время повторения программы (цикл контроллера)." Программа непрерывно выполняется циклически, если контроллер не остановлен вручную либо по фатальной ошибке выполнения программы. Выполнение кода программы занимает столько времени, сколько потребуется, и это время может (и в большинстве случаев будет) изменяться от цикла к циклу. Оно не может быть жестко задано либо ограничено извне. Однако, в настройках контроллера можно задать минимальное время цикла. Именно минимальное, хотя это может называться constant scantime: если программа не уложится в это время, оно будет превышено. Помоему столько языков в ПЛК что каждый может выбрать своё. Я уже накидал интерполяцию для 3-х осей, благо точность особо не нужна. Я искал как из одной программы вызвать другую, и не нашел. Какой операнд? В первой программе вычисления происходят (видимо основная), во второй ничего не меняется. Цикл моего контроллера 0,0005сек. Я просто сделал инкремент переменной и если она была равна 10000 то сбрасывал её и инвертировал выход Y0. Итого он инвертировался раз в 5 сек. Я так не смог найти где изменяется это значение. Если есть возможноть, можете скинуть ссылку на руководство по st, желательно на русском вайл их нур дойч шпрехе |
|
|
8.10.2020 - 16:12
Сообщение
#4
|
|
Фанат Группа: Пользователи Сообщений: 106 Регистрация: 17.03.2020 Из: Екатеринбург Пользователь №: 11250 |
- как перемещаться в одной программе по меткам (Goto); - задать время повторения программы (цикл контроллера); - управлять быстрыми выходами (выдать пачку импульсов за время меньшее чем цикл контроллера). Есть же инструкция CJ для прыжка к тому шагу программы который надо, хотя лучше CJP, а то все время будет скипать часть программы. Зачем цикл задавать? Можно конечно через D8039, но зачем замедлять? Есть же системные маркера M8011-M8014 если отсчет по времени делать. Быстрыми выходами эт шоль операция PLSY? До 200000 герц спец выход може выдать. И ткнуть ему тоже можно сколько надо испульсов. И флаги завершения есть и прочее. Мануал то почитайте. Есть некоторые ошибочные места или переведено немного не так как на самом деле, но много нового откроете для себя. |
|
|
8.10.2020 - 17:42
Сообщение
#5
|
|
Гигант мысли Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 |
-------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
9.10.2020 - 12:36
Сообщение
#6
|
|
Читатель Группа: Пользователи Сообщений: 11 Регистрация: 6.10.2020 Пользователь №: 11316 |
- как перемещаться в одной программе по меткам (Goto); - задать время повторения программы (цикл контроллера); - управлять быстрыми выходами (выдать пачку импульсов за время меньшее чем цикл контроллера). Есть же инструкция CJ для прыжка к тому шагу программы который надо, хотя лучше CJP, а то все время будет скипать часть программы. Зачем цикл задавать? Можно конечно через D8039, но зачем замедлять? Есть же системные маркера M8011-M8014 если отсчет по времени делать. Быстрыми выходами эт шоль операция PLSY? До 200000 герц спец выход може выдать. И ткнуть ему тоже можно сколько надо испульсов. И флаги завершения есть и прочее. Мануал то почитайте. Есть некоторые ошибочные места или переведено немного не так как на самом деле, но много нового откроете для себя. ST команды CJ и CJP не распознаёт. За мануал спасибо. PLSY то что нужно. В принципе я уже могу делать интерпляцию, но для более комфортной работы можно еще пару опросов. Я могу делать отдельную программу и вызывать ее когда хочу? Можно ли в ST в пределах одной программы или функции перемещаться по меткам (типа Goto в бэйсике или Си)? Ну и последний вопрос: Как задать время повторения программы(время цикла программы)? Спасибо зарание!!! Большое спасибо! Сообщение отредактировал Waldislaw - 9.10.2020 - 12:36 |
|
|
9.10.2020 - 16:20
Сообщение
#7
|
|
Гигант мысли Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 |
ST команды CJ и CJP не распознаёт. Ну вот вам и первый привет от языка ST. Нет в нем прыжков по меткам типа Goto/Jump. Я могу делать отдельную программу и вызывать ее когда хочу? В ST это делается путем создания функционального блока и обращения к нему по мере необходимости. Сообщение отредактировал Sergei Troizky - 9.10.2020 - 17:08 -------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
10.10.2020 - 14:27
Сообщение
#8
|
|
Читатель Группа: Пользователи Сообщений: 11 Регистрация: 6.10.2020 Пользователь №: 11316 |
ST команды CJ и CJP не распознаёт. Ну вот вам и первый привет от языка ST. Нет в нем прыжков по меткам типа Goto/Jump. Я могу делать отдельную программу и вызывать ее когда хочу? В ST это делается путем создания функционального блока и обращения к нему по мере необходимости. Я скачал 6 мануалов по запросу GX Works2 manual и там нет ни слова о том как создавать экземпляр функциональго блока и вызывать его. Еклмн в общих словах, а если не в общих, то в SFC. Я сдаюсь. Как использовать функциональный блок в программе на ST? И сразу попутно, может ли функциональный блок использовать глобальные переменные. Сообщение отредактировал Waldislaw - 10.10.2020 - 14:28 |
|
|
19.11.2020 - 13:50
Сообщение
#9
|
|
Гигант мысли Группа: Пользователи Сообщений: 459 Регистрация: 5.02.2014 Пользователь №: 10203 |
- как вызвать программный блок из основной программы, например на рисунке из POU_01 вызвать inte и вернуться; Никак, т.к. блок POU_01 и inte сами по себе являются программами (POU). Они выполняются, если включены в пул задач (в данном случае это Program Setting -> Execution Program). Для вызова определенных частей/блоков принято использовать функциональные блоки (FB). -------------------- Никому никогда ничего не объясняйте — каждый всё равно поймёт так, как ему выгодно.
|
|
|
19.11.2020 - 14:07
Сообщение
#10
|
|
Гигант мысли Группа: Пользователи Сообщений: 459 Регистрация: 5.02.2014 Пользователь №: 10203 |
Я скачал 6 мануалов по запросу GX Works2 manual и там нет ни слова о том как создавать экземпляр функциональго блока и вызывать его. Еклмн в общих словах, а если не в общих, то в SFC. Я сдаюсь. Как использовать функциональный блок в программе на ST? И сразу попутно, может ли функциональный блок использовать глобальные переменные. В программе на ST объявляете локальную переменную с типом нужного ФБ. ______________2020_11_19_125446.jpg ( 100.11 килобайт ) Кол-во скачиваний: 15 В программе вызываете блок и подключаете к нему формальные параметры: Имя_Функц_блока ( TRUE, вх_парам1, вх_парам2, вых_парам ); Входные и выходные параметры в соответствии с их типами самого ФБ (разумеется). Они могут быть как локальными, так и глобальными. -------------------- Никому никогда ничего не объясняйте — каждый всё равно поймёт так, как ему выгодно.
|
|
|
11.02.2021 - 12:52
Сообщение
#11
|
|
Читатель Группа: Пользователи Сообщений: 11 Регистрация: 6.10.2020 Пользователь №: 11316 |
Добрый день! Вопрос.
Делаю позиционирование на FX3GA-60MT. IF M8002 THEN dmov(TRUE,2000,D8146); (*максимальная скорость*) mov (TRUE,k1000,D8148); (*время разгона мсек*) mov (TRUE,k10,D8145); (*приращение скорости, что это такое? какие только числа не ставил 0,10,100,10000 - без изменений ?????*) M8147:=1; END_IF; DRVI(M8147,2000,1000,Y0,Y4); Подключил к Y0 динамик, есть равномерный свист 2 секунды и все. Хотя я установил разгон/замедление 1000 мсек, слышно что их нет, т.е. свист без изменения частоты.Пробовал ставить DRVA - также. И сразу попутно второй вопрос, как пользоваться в ST таймерами? Сообщение отредактировал Waldislaw - 11.02.2021 - 13:02 |
|
|
12.02.2021 - 19:43
Сообщение
#12
|
|
Фанат Группа: Пользователи Сообщений: 106 Регистрация: 17.03.2020 Из: Екатеринбург Пользователь №: 11250 |
Сперва откуда надыбали FX3GA? Я чет мануал не могу найти, лишь рекламную брошюрку мицубиши, которая лишь на сайте "заплати, получи".
По какому мануалу нашли что нужны D8146, D8148, D8145? В том что я нашел для FX3G совсем другие ячейки. "как пользоваться в ST таймерами" - страдать. |
|
|
17.02.2021 - 18:52
Сообщение
#13
|
|
Гигант мысли Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 |
https://we.tl/t-XWFj5Hw73l
Читайте раздел 7.9 Для позиционирования с разгоном/торможением используйте PLSR. Сообщение отредактировал Sergei Troizky - 17.02.2021 - 18:54 -------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
17.02.2021 - 19:53
Сообщение
#14
|
|
Фанат Группа: Пользователи Сообщений: 106 Регистрация: 17.03.2020 Из: Екатеринбург Пользователь №: 11250 |
https://we.tl/t-XWFj5Hw73l Читайте раздел 7.9 Для позиционирования с разгоном/торможением используйте PLSR. Т.е. вас не смущает маленькая такая приписочка в самом начале раздела, что это руководство для позиционирования и примеры в нём ТОЛЬКО для контроллеров FX1N, FX1S? И то что в этой же приписке написано что нужно читать другое руководство для FX3U, FX3G, и оно, скорее всего, на русский не переведено. ___.JPG ( 37.62 килобайт ) Кол-во скачиваний: 6 Сообщение отредактировал kaii - 17.02.2021 - 19:54 |
|
|
17.02.2021 - 21:55
Сообщение
#15
|
|
Гигант мысли Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 |
Cмущает.
Вот для FX3 на английском, если кому нужно: http://dl.mitsubishielectric.com/dl/fa/doc...y997d16801k.pdf -------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
Текстовая версия | Сейчас: 29.03.2024 - 01:00 |