2.37M
Category: programmingprogramming

Основы создания программы

1.

ОСНОВЫ СОЗДАНИЯ ПРОГРАММЫ
GX WORKS3 ДЛЯ АРХИТЕКТУР FX5CPU

2.

После открытия программы нужно создать проект. Для этого открываем окошко
“Project” и нажимаем “New…”. В новом открывшемся окне нужно будет выбрать
технологию процессора. В нашем случае в “Series” мы выбираем “FX5CPU” и в “Type”
выбираем “FX5U”. Чуть ниже нужно будет выбрать программный язык, на котором и
будет написана программа. Выбираем “FBD/LD”, которое и будет нашим основным
языком, нажимаем “OK”.

3.

Нас встречает полотно, на котором и предстоит работать. Для того чтобы начать работу с
контроллерами, для начала нужно установить связь с самими контроллерами. А чтобы
установить связь с необходимыми контроллерами, нужны необходимые элементы
(прикрепление в картинке). Справа будет находиться библиотека (панель) с документацией
а также элементами, а слева панель навигации для удобного перемещения и настройкой
программы. Чтобы импортировать необходимые нам элементы, переходим в правую часть
где находится “Guidance Flow”, чуть ниже выбираем “Element Selection”.

4.

После выбора, нужно проверить, находится ли библиотека элементов. Для этого
нажимаем “Library”, если мы видим в “Display Target” папки и элементы такие же как
на картинке, ничего предпринимать не нужно. Если такой библиотеки нет, нужно
добавить файл библиотеки (файл с предыдущего слайда) и импортировать его с
помощью иконки обозначенной сверху, нажав и выбрав “Register Library”.

5.

После регистрации библиотеки, можно создавать основу. Для этого нам понадобится в этой
же библиотеке раздел “CCIEFBasicStart_FB” где находится один элемент, предназначенный
для установки связи с контроллером. Переносим его на рабочее полотно зажав кнопку
мыши и отпустив в нужно месте. Точно также повторить и перенести второй блок. Теперь
нужно в свободном месте полотна нажать кнопкой мыши и ввести “TRUE”, после нажав
“Enter”. Это нужно чтобы программа была запущена со старта и готова к работе. Переносим
наш созданный элемент “TRUE” ближе к функции “Enable” чтобы объеденить их и в таком же
порядке повторяем со вторым блоком.

6.

Теперь мы можем задать ось к каждому блоку. В нашем случае у нас есть две оси –
конвейер, и вторая – ось разливного механизма. Для этого нам и нужно два блока, который
и будет контроллировать определённую ось чего-либо. В панеле навигации слева находим
“Label” – “Global Label” – “Global” и открываем. В данной таблице, а именно в “Label Name”
вписываем всвою метку, это может быть любое название нашей оси, к примеру “Conv”,
“Rock”, и т.д. Эти два параметра должны иметь тип AXIS_REF_JEC для дальнейшего
манипулирования осями а также класс “VAR_GLOBAL” в таблице “Class”. После этого
переходим обратно в на наше полотно и просто начинаем печатать названия этих двух
меток в пустом месте. После этого соединяем их с каждым блоком непосредственно. После
этого, нам нужно создать лимит и пронумеровать наши оси самостоятельно. Для этого

7.

После этого, нам нужно создать лимит вращения или “выкручивания” по оси и
пронумеровать наши оси самостоятельно. Для этого находим в панели навигации “Initial”,
кликаем правой кнопкой мыши и нажимаем “Add New Data”, создаём файл программы как
на второй картинке, по нововой созданной программе кликаем ещё раз правой кнопкой
мыши но в этот раз нам нужно выбрать Тип Данных “Program Block” и тип языка программы
“ST”, после создания открываем тело программы и нумеруем наши оси, ограничивая
вращения. Сохраняем, закрываем и переходим обратно в наше рабочее полотно с блоками.

8.

Далее нам нужно знать статус этих двух контроллеров чтобы использовать их в дальнейшем. Для этого нужно
задать локальную переменную, находящуюся там же где и наша программа под названием “Local Label”. Нас
встречает похожая таблица, но с опциями поменьше. Сделано это для специальных локальных переменных
которые не выходят за рамки программы и используются по назначению только в самой программе (для
передачи информации). Также вписываем названия меток, это не имеет значения но вы должны запомнить
их, в нашем примере это “ConvStatus”, “RockStatus” и “ConvPWR” а также “RockPWR” (далее имеющие тип
данных “Bit”, выбирается по нажатию нужной переменной под колонкой “Data Type”). После открываем окно
нашей программы и также присоединяем соответственно их названиям к “Status”. Результат должен
получится как на картинке. Это и является основой нашей программы. Также цифры под каждом блоком
обозначают порядок действий программа выполнит после инициализации, то есть слева направо и сверху
вниз.

9.

После создания основы, нужно сделать так чтобы два наши контроллера были запущены и готовы к работе
после инициализации. Так как у нас присутсвует дисплей с кнопкой запуска, в нашем случае понадобится
само управление запуском этих контроллеров. Находим элемент “MC_Power_JEC” и переносим два раза на
наше полотно также как и “AND” элемент, либо просто вписав его в пустом месте. Далее на картинке мы
видим что у нас есть метка “M100”, которая отвечает за нажатие кнопки как и “PWRButon”. Чтобы это
повторить, переходим в “Global Label” и создаём глобальную переменную под названием “PWRButon”, в
самом конце мы и видим нашу метку, помеченную дополнительным обозначением “M100”, вписываем и
создаём подобную систему запуска. Блок “AND” работает точно также как и “И”, поэтому контроллеры будут
запущены/выключены в зависимости от статуса или от нажатия кнопки. Важно вписать во второй блок
“M100” перед “AND”, иначе кнопка на дисплее не будет исправно работать.

10.

Разберём далее нужные нам блоки, где будет самое главное не запутаться. Ниже в рабочем полотне
создаём блок под названием “TON”, который обозначается как “Timer On Delay”, иными словами
создаёт небольшую задержку а также передаёт TRUE/FALSE аргументы через “IN” блока в “Q”, то есть
если наш “ConvPWR” возвращает “TRUE”, то и блок “TON” возвратит “TRUE”. Всё что нам осталось
сделать с этим блоком, так это задать само время задержки перед выполнением следующего блока. В
нашем случае это 200 миллисекунд. В пустое место вписываем “t#200ms” и присоединяем, точно
также как и “ConvPWR”. Далее нам нужен блок “MC_MoveVelocity”. Перетаскиваем его ближе к TON и
соединяем “Q” с “Execute”. С блоком который будет приводить наш конвейер в движение всё немного
проще – Есть направление, скорость, ускорение и замедление, то есть как плавно он будет двигаться и
останавливаться и по какой оси. ВАЖНО! Параметр “InVelocity” будет возвращать “TRUE” когда наш
конвейер достигнет заданной скорости, а для этого в “Global Label” нам нужно будет создать
переменную “ConvInVelocity” и присоединить как показано на правой картинке.

11.

ОСТАЛЬНЫЕ БЛОКИ
Было рассказано о самых важных блоках
при создании своей программы, но также
нужно упомянуть что это не все блоки,
другие блоки как PLS, SET (Set Devices), MOV
(Move), RST (Reset Devices), GE (Проверка
двух переменных, так называемое
подтверждение), а также OR (ИЛИ) также
играют роль в выполнении программы.
Также, если вы делаете изменения в
программе никогда не забывайте про
компиляцию программы при её передаче в
контроллеры. Всё очень просто, просто
нажмите F4 и программа сделает всё за вас.
English     Русский Rules