Pull to refresh

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

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

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

Часть Codesys


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



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



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

Часть LabVIEW


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



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



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



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



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



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

Articles