ПЛК100 + LabVIEW + джойстик v2.0

в 9:46, , рубрики: OPC, бесполезности, плк, Промышленное программирование

В своей прошлой статье я описывал возможность управления ПЛК джойстиком и обещал добавить небольшое изменение, связав ПЛК и LabVIEW не через последовательный порт, а через Ethernet (благо, коммуникационные возможности ПЛК100 это позволяют) и при помощи OPC-сервера — в данном случае это Codesys OPC Server. (Кстати, аналогичным образом с LabVIEW можно связать любой другой контроллер — через OPC-сервер, который работает с конкретным контроллером). В этой статье я, собственно, и собираюсь описать, как всё это делается.

Суть такова: LabVIEW обрабатывает нажатия кнопок джойстика; в случае нажатия конкретной кнопки — переменной (все переменные булевы) OPC-сервера, соответствующей этой кнопке, присваивается значение TRUE; контроллер читает значения переменных OPC-сервера и реагирует на их изменения в соответствии с залитой в него программой.

Часть Codesys

Объявляем восемь булевых глобальных переменных: в моём случае это x, y, a, b — для четырёх кнопок и up, down, right, left — для крестика.
Программа состоит из функциональных блоков и выглядит так:

ПЛК100 + LabVIEW + джойстик v2.0 - 1

«Содержимое» функциональных блоков можно найти здесь.
Затем необходимо настроить символьный файл — файл, содержащий описание данных, с которыми работает OPC-сервер. Для этого заходим в Options, выбираем там Symbol configuration, ставим галочку на Dump symbol entries, в появившемся окне Set object attributes выбираем необходимые переменные.

ПЛК100 + LabVIEW + джойстик v2.0 - 2

Настройку Codesys OPC Server я пропускаю: в Сети хватает информации на эту тему. Добавлю только, что при настройке подключения нужно выбрать Ethernet-соединение. Впрочем, ПЛК100 можно подключить и при помощи кабеля программирования, но это чревато ощутимой задержкой. Также стоит упомянуть, что частоту обновления сервера (Update Rate) я увеличил до 1500 миллисекунд: при малом значении сервер иногда пропускает кратковременные нажатия кнопок.

Часть LabVIEW

Прежде всего понадобится NI LabVIEW DSC Module (пробную версию можно скачать на официальном сайте). Данный модуль даёт возможность работать с данными OPC-сервера в LabVIEW.
Создаём новый VI, добавляем на Frontal Panel 8 индикаторов.

ПЛК100 + LabVIEW + джойстик v2.0 - 3

«Пишем»/рисуем такую вот программу:

ПЛК100 + LabVIEW + джойстик v2.0 - 4

Если интересуют подробности по поводу программы — см. здесь.
Далее необходимо привязать OPC-переменные к индикаторам, соответствующим конкретным кнопкам джойстика. Для этого открываем свойства индикатора, переходим на вкладку Data Binding; в Data Binding Selection выбираем DataSocket; в Access Type ставим Write Only, поскольку нам нужно записывать значения в переменные; в Path выбираем DSTP Server.

ПЛК100 + LabVIEW + джойстик v2.0 - 5

В появившемся окошке находим нужный нам OPC-сервер и выбираем соответствующую переменную.

ПЛК100 + LabVIEW + джойстик v2.0 - 6

Проделываем эту манипуляцию с каждым индикатором, после чего понимаем, что всё готово — можно подключать джойстик и снимать видео. А вот и оно, кстати.

Результатами я остался вполне доволен: связь стабильная, пропусков нажатий не наблюдалось. Но, судя по морганию индикаторов на Front Panel, LabVIEW как-то неохотно реагировала на нажатия кнопок. Мне кажется, что на более мощном компьютере этого бы не наблюдалось.

Автор: existentiary

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js