Научная статья на тему 'Создание панели оператора для мониторинга и управления объектом на основе оборудования Beckhoff, программы TwinCAT и программного пакета Microsoft Visual Studio 2012'

Создание панели оператора для мониторинга и управления объектом на основе оборудования Beckhoff, программы TwinCAT и программного пакета Microsoft Visual Studio 2012 Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
244
81
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АВТОМАТИЗИРОВАННАЯ СИСТЕМА УПРАВЛЕНИЯ / РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ / ПРОГРАММИРУЕМЫЙ ЛОГИЧЕСКИЙ КОНТРОЛЛЕР / ОБРАБОТКА ДАННЫХ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Архипов Владислав Валерьевич

В статье предложен вариант реализации панели оператора для мониторинга и управления объектами. Вопросы, рассмотренные в статье, могут быть полезны специалистам, занимающимся разработкой систем управления и мониторинга, а также студентам, изучающим вопросы проектирования системы автоматического управления и контроля

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Архипов Владислав Валерьевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Создание панели оператора для мониторинга и управления объектом на основе оборудования Beckhoff, программы TwinCAT и программного пакета Microsoft Visual Studio 2012»

Создание панели оператора для мониторинга и управления объектом на основе оборудования Beckhoff, программы TwinCAT и программного пакета Microsoft Visual Studio 2012 Архипов В. В.

Архипов Владислав Валерьевич /Arhipov Vladislav Valer ’evich - студент, кафедра систем автоматического управления и контроля, факультет интеллектуальных технических систем, Национальный исследовательский университет, Московский институт электронной техники, г. Зеленоград

Аннотация: в статье предложен вариант реализации панели оператора для мониторинга и управления объектами. Вопросы, рассмотренные в статье, могут быть полезны специалистам, занимающимся разработкой систем управления и мониторинга, а также студентам, изучающим вопросы проектирования системы автоматического управления и контроля.

Ключевые слова: автоматизированная система управления, разработка программного обеспечения, программируемый логический контроллер, обработка данных.

Создание панели оператора преследует две цели:

1) Мониторинг, индикация и сигнализация состояния объекта.

2) Управление состоянием объекта.

Подробно рассмотрим каждый из этих пунктов. При этом будем предполагать, что имеется система Beckhoff с подключенным терморезистором и светодиодом. Терморезистор будет использоваться для сбора информации (состояния объекта). На светодиод будет подаваться управляющий сигнал в виде напряжения, таким образом управляя состоянием объекта [1].

1. Мониторинг

В программе TwinCat создается новая программа для получения данных с терморезистора (рис. 1).

Описание переменных:

- gradus - измеряемая температура объекта управления. В данном примере имеется целочисленный тип данных. %MD2 означает, что во время выполнения программы переменная хранится в оперативной памяти (M - memory) контроллера со сдвигом, равным двум и занимает четыре байта (D - double);

- THERMOKON_dataIn - данные, получаемые с терморезистора. В данном примере имеется целочисленный тип данных. %IW6 означает, что переменной присваивается значение входного сигнала (I -input);

- THERMOKON_ctrlByte - управляющий байт, который разрешает чтение с устройства.

Затем эта программа записывается во флэш-память контроллера Beckhoff и запускается на выполнение. Мы, создавая панель оператора для мониторинга температуры, будем обращаться из внешней программы в эту область памяти и считывать значения переменной. Создается новый проект из шаблона «Windows Forms» в программном пакете Microsoft Visual Studio 2012. Далее создается ссылка из этого проекта на сборку

C:\TwinCAT\ADS Api\.NET\v2.0.50727\TwinCAT.Ads.dll

С помощью этой сборки можно программно обращаться к контроллерам Beckhoff с целью считывания или записи в оперативную память. Далее создается панель оператора с помощью визуальных элементов управления таким образом, как это показано на рис.2.

Рис. 2. Создание панели оператора

Обозначения:

- AMS Net ID - уникальный номер контроллера в сети. Является аналогом IP адреса и значение первых четырех байт берется из документации;

- Port - порт устройства;

- Кнопка «Connect» - кнопка, при нажатии на которую происходит соединение с контроллером Beckhoff по сети Ethernet;

- Чекбокс «Link» - элемент управления, отображающий текущее соединение с контроллером Beckhoff;

- Gradus - поле, отображающее температуру, получаемую с терморезистора;

- tmrMain - таймер, который с равным интервалом опрашивает контроллер Beckhoff с целью получения температуры.

В классе формы указывается ссылка на сборку TwinCAT.Ads, создается переменная tcClient, с помощью которой будет осуществляться обращение к контроллеру Beckhoff. В конструкторе класса ConnectionForm создается этот клиент, как показано на рис. 3.

using System; using System.10; using System.Windows,Forms; using TwinCAT.Ads;

namespace TwinCAT_test

{

public partial class ConnectionForm : Form

{

TcAdsClient tcClient;

public ConnectionForm()

{

InitialiieComponent(); tcClient = new TcAdsClient();

}

Рис. 3. Создание клиента в конструкторе

При нажатии на кнопку «Connect» происходит соединение с контроллером Beckhoff и запускается таймер, срабатывающий по истечении 100 мс (рис. 4).

private void bnConnect_Click(object sender, EventArgs e)

{

if (!tcClient.IsConnected)

{

tcClient.Connect(txtAnsNetld.Text, Convert .ToInt32(txtPort.Text});

bnConnect.Text = ’’Disconnect”;

chLink.Checked = true;

tmrtlain .Interval = Ш;

tmrtlain.Enabled = true;

}

else

{

tmrtlain.Enabled = false;

CloseConnection(); bnConnect.Text = ’’Connect"; chLink.Checked = false;

}

Рис. 4. Обработчик события нажатия кнопки «Connect»

Если соединения не произошло, то вызывается метод корректного закрытия связи с контроллером Beckhoff (рис. 5).

void CloseConnection()

{

if ( tcClient != null SS tcClient.I^Connected ) tcClient.Dispose();

}

Рис. 5. Метод корректного закрытия связи

Каждые 100 мс таймера вызывается метод считывания информации из оперативной памяти контроллера. Сначала создается поток длиной 4 байта, а затем бинарный считыватель информации. После этого происходит чтение из оперативной памяти в области, со смещением равным двум, размером в 4 байта. Курсор чтения устанавливается в начальное положение, и полученное значение температуры присваивается текстовому полю, как показано на рисунке 6.

void UpdateAlLDataQ

{

// Creates an AOS stream of PLC memory with the length 4 byte // (4 byte is the size of the Double World type) war ds » new Ads5tream(4);

// Creates a binary reader to get data from the stream var br ■ new OinaryReader(ds);

// Reads a part of the PLC memory,

// 4020 is the magic number (special offset) tcClient.Read(0*4020, 2, ds),

// Sets the cursor position zero to order reads the received data ds,Position * 0;

txtGradus.Text • br,Readlntl6().ToString();

}

Рис. 6. Чтение из оперативной памяти контроллера

Индексная группа доступа к памяти %М поля определяется из таблицы на рис. 7.

IndexGroup Index Offset Access Data type Phys, unit Del, range Description

0x00004020 0x00000000- OxOOOOFFFF Ж UINT8[n] READJI - WRITER PLC memory rangefftM field).Offset is byte offset

0x00004021 0x00000000- OxFFFFFFFF m UINT8 READ_MX-WRITE_UIX PLC memory range [tMXfield).The low word of the index offset is the byte offset The index offset contains the bit address calculated from the byte number’8 + bit number

0x00004025 0x00000000 R ULONG PLCAD S_IGR_RM SIZE Byte length of the process diagram of the memory range

0x00004030 0x00000000- OxFFFFFFFF FUW UINT8 PLCADS_IGR_RWRB Retain data range. The index offset is byte offset

0x00004035 0x00000000 R ULONG PLCAD S_IGR_RRSIZE Byte length of the retain range

0x00004040 0x00000000- OxFFFFFFFF FUW UINT8 PLCAD S_IGR_RWDB Data range. The index offset is byte offset.

0x00004045 0x00000000 R ULONG PLCAD S_IGR_RDSIZE Byte length of the data range

Рис. 7. Индексная группа доступа к памяти

Панель оператора системы в режиме работы показана на рис. 8.

Рис. 8. Панель оператора системы в режиме работы

2. Управление объектом

В память контроллера Beckhoff записывается программа (рис. 9):

Логика ее работы состоит в том, что если значение переменной PC_SIGNAL отлично от нуля, то на светодиод подается напряжение 3В. Сама переменная находится в оперативной памяти контроллера в области со сдвигом, равным нулю, и занимает 4 байта.

Для создания панели управления можно использовать такой же шаблон проекта Microsoft Visual Studio 2012, как и для панели мониторинга. Графический интерфейс для управления зажиганием светодиода будет выглядеть как на рис. 10.

Рис. 10. Графический интерфейс для управления зажиганием светодиода

В отличие от первого проекта, будет использоваться дополнительная переменная signalState. Если она отлична от нуля, то на светодиод подано напряжение (рис. 11).

При нажатии на кнопку «Turn on» происходит запись в оперативную память контроллера (рис. 12).

private void bnTurnDn_Click.(object sender, EventArgs e)

{

var valueToWrite - (signalState == 0) ? 1 : 0*

// Creates an ADS stream of PLC memory with the length 1 byte // (4 byte is the size of the Double World type) var ds = new AdsStream(l);

// Creates a binary writer to set data into the stream var bw - new BinaryWriter(ds).;

ds. Position &;

bw,Wr ite((byte)va1ueToWrite);

tcClient,write(ЙЯ4О20, e, ds)j

bw,Close(); ds,Dispcse(); bw.Dispose();

>

Рис. 12. Описание действия нажатия на кнопку «Turn on» Панель оператора системы в режиме работы показана на рис. 13:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рис. 13. Панель оператора системы в режиме работы

3. Выводы

Создание панели оператора можно сделать с использованием программного пакета Microsoft Visual Studio 2012. При этом доступ к контроллеру осуществляется через сеть Ethernet. Компания Beckhoff поставляет бесплатный компонент TwinCAT.Ads для доступа к оперативной памяти контроллеров из внешних программ. Используя возможности Microsoft Visual Studio 2012, можно создать богатый и удобный пользовательский интерфейс за короткое время.

Литература

1. Петров И. В. Программируемые контроллеры. Стандартные языки и приемы программирования: учебник для вузов. / Под ред. проф. Дьяконова. - М.: СОЛОН-Пресс. 2004. - 256 стр.

i Надоели баннеры? Вы всегда можете отключить рекламу.