Вопросы новичка |
Здравствуйте, гость ( Вход | Регистрация )
Вопросы новичка |
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
Прикрепленные файлы
|
|
|
15.09.2021 - 00:28
Сообщение
#2
|
|
Читатель Группа: Пользователи Сообщений: 7 Регистрация: 14.09.2021 Пользователь №: 11444 |
Создал вторую задачу на FB
И в ней отдельно отрабатываю вычисления по сигналу M4, подаваемому с панели. Операции выполняются с 4мя регистрами общими D132 = D144 - D128 - D176 Костыль конечно получается. Но он работает 2021_09_15_01_14_15.jpg ( 49.48 килобайт ) Кол-во скачиваний: 4 |
|
|
15.09.2021 - 01:39
Сообщение
#3
|
|
Гигант мысли Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 |
А почему у Вас: IF M1 OR M2 THEN ..., IF M3 THEN ..., IF M8029 THEN ...,
а в начале IF M8002 = 1 THEN ...? Почему не IF M8002 THEN ...? Сообщение отредактировал Sergei Troizky - 15.09.2021 - 01:40 -------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
15.09.2021 - 12:50
Сообщение
#4
|
|
Читатель Группа: Пользователи Сообщений: 7 Регистрация: 14.09.2021 Пользователь №: 11444 |
А почему у Вас: IF M1 OR M2 THEN ..., IF M3 THEN ..., IF M8029 THEN ..., а в начале IF M8002 = 1 THEN ...? Почему не IF M8002 THEN ...? Делал проверки на другое условие кроме true. Поэтому осталось. Думаю это не принципиально. Это может быть причиной ошибок? Сообщение отредактировал Smith2007 - 15.09.2021 - 12:51 |
|
|
15.09.2021 - 14:59
Сообщение
#5
|
|
Гигант мысли Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 |
А почему у Вас: IF M1 OR M2 THEN ..., IF M3 THEN ..., IF M8029 THEN ..., а в начале IF M8002 = 1 THEN ...? Почему не IF M8002 THEN ...? Делал проверки на другое условие кроме true. Поэтому осталось. Думаю это не принципиально. Это может быть причиной ошибок? Пробуйте! Но, во всей этой истории есть что-то непонятное. А именно: биты с такими номерами не нужно сбрасывать в первом скане, они несохраняемые и поэтому уже сброшены. Остается предположить, что либо их включает что-либо ранее в программе, либо вывод что они не сброшены в первом скане- ошибочен. -------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
15.09.2021 - 17:55
Сообщение
#6
|
|
Читатель Группа: Пользователи Сообщений: 7 Регистрация: 14.09.2021 Пользователь №: 11444 |
... Но, во всей этой истории есть что-то непонятное. А именно: биты с такими номерами не нужно сбрасывать в первом скане, они несохраняемые и поэтому уже сброшены. Остается предположить, что либо их включает что-либо ранее в программе, либо вывод что они не сброшены в первом скане- ошибочен. В верху я явно инициализировал их после неудач с условием ибо уже не понимал кто их может взводить. Как уже написал выше, я создал вторую задачу в рамках одной программы и создал ее на FBD Вынес в нее только одну эту операцию. И все заработало нормально. Т.е. в действительности компилятор с ST чудит как-то. зы. Заказал FX3U-14MT. Быть может с ним будет другая ситуация. Кстати у меня есть еще один похожий ПЛК FX1N-14MR, несколько отличается плата и наличие дополнительного разъема. Он так же не верно исполняет в начале код с условием IF Сообщение отредактировал Smith2007 - 15.09.2021 - 19:16 |
|
|
Текстовая версия | Сейчас: 26.09.2024 - 21:11 |