Создание системы по сбору и мониторингу технологических параметров нагревательных печей КПЦ-3 металлургического завода "Электросталь"

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

Рубрика Программирование, компьютеры и кибернетика
Вид научная работа
Язык русский
Дата добавления 02.12.2016
Размер файла 3,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

2

Научная работа

Создание системы по сбору и мониторингу технологических параметров нагревательных печей КПЦ-3 металлургического завода "Электросталь"

Научный руководитель:

д. т. н., проф. Вартанов М.В.

Исполнитель:

магистрант гр. 154-273

Бородин А.А.

Введение

Современная технология производства предъявляет высокие требования к автоматизации технологических процессов, к выбору оптимальных средств комплексной автоматизации. Производство и поставка средств комплексной промышленной автоматизации технологических процессов, автоматизированных систем управления и оптимизации производственных процессов, АСУ ТП различной сложности являются одним из важнейших направлений работы нашей компании. Мы предлагаем широкий выбор средств для комплексной автоматизации, оптимизации производственных процессов.

Автоматизированная система управления и контроля предназначена для управления технологическим процессом (АСУ ТП), оптимизации технологических процессов, автоматизации технологических процессов, поддержания оптимального режима работы технологических аппаратов и учета промежуточных данных, формирования и выдачи отчетной и архивной документации, диагностики измерительного оборудования во всех отраслях промышленности таких как металлургическая, строительная, пищевая, химическая, нефтеперерабатывающая и др.

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

Решить проблему мониторинга большого количества данных призваны системы диспетчеризации и SCADA. Они позволяют обрабатывать большое количество поступающих технологических данных, эффективно использовать персонал при расположении систем на больших площадях.

1. Общие сведения и обзор существующих систем визуализации

1.1 Общая информация о системах сбора и отображения данных

Задачи сбора и отображения данных в современных автоматизированных системах встречаются очень часто. Это связано с тем, что несмотря на высокую степень автоматизации большинство технологических процессов нуждается в контроле человека. Так же можно отметить, что системы визуализации данных зачастую помогают определить причину неисправности системы в целом. В такой системе большую часть управляющих воздействий на объект выполняет ПЛК. Система служит лишь для отображения данных о проходящем технологическом процессе.

Сбор данных и их визуализация является неотъемлемой частью SCADA систем. SCADA системы представляют собой программный пакет (иногда и программно-аппаратный комплекс) для обеспечения сбора данных, обработки и архивации получаемых данных в режиме реального времени. SCADA системы чаще всего устанавливаются на ПК и используют для получения данных драйверы ввода/вывода или OPC серверы. Преобладающая часть систем сбора и отображения данных представлена на рынке именно SCADA системами. Они предлагают более широкий выбор функциональности, что не всегда является необходимостью. Большинство производителей ПЛК производят и ПО для разработки SCADA систем для своих ПЛК.

Возможности SCADA систем:

-обмен данными;

-управление;

-аварийная сигнализация;

-создание отчетов о технологическом процессе;

-обеспечение связи с СУБД, таблицы, текстовые процессоры;

-обработка информации в реальном времени.

Так же существуют программные и программно-аппаратные комплексы исключительно для сбора и архивации данных. Чаще всего данные из них используются технологическими службами для получения информации о технологических параметрах, которые невозможно получить, используя HMI. К подобным системам можно отнести программные комплексы:

- Autem PLC-ANALYZER

- ibaAnalyzer

- Win-PLC ANALYZER

- DAHMOS.

Преимущество подобных систем в простоте их использования. Так же данные системы в отличие от SCADA систем способны получать данные без использования OPC-серверов и плат ввода/вывода. Так же нет необходимости изменять программную часть в управляющем устройстве (RTU или ПЛК). Удобный графический интерфейс ПО и необходимость задействовать лишь одну систему для полной обработки данных от момента записи до создания отчета.

При проектировании систем сбора и отображения данных следует принимать во внимание несколько факторов:

-источник или источники данных;

-что необходимо делать с полученными данными (хранение, архивация, анализ);

-в каком виде необходимо визуализировать данные;

-объемы и вид данных;

-требования для линий связи.

Для удобства нашу систему сбора и отображения данных можно разделить по функциональному признаку на несколько частей:

-источник данных;

-средства доступа к данным;

-устройство для обработки полученных данных;

-часть, отвечающая за отображение данных.

Источники получаемых данных очень разнообразны и при проектировании системы являются одним из ключевых факторов при выборе решений. Их можно разделить на несколько групп:

-коды АЦП и уровни дискретных сигналов (УСО, простые ПЛК);

-сложные параметры со сложной структурой (ПЛК);

-локальные источники (платы расширения).

При таком разнообразии источников неудивительным стало появление большого количества механизмов доступа к данным. Для доступа к локальным источникам используют различные API. Для сетевых источников применяют протоколы передачи данных. К сожалению, большое количество устройств различных производителей сделало процедуру добавления поддержки нового источника данных трудоемким и затратным действием. Для сетевых источников существуют открытые протоколы, например, Modbus, но много устройств используют закрытые протоколы или протоколы использующие механизмы коммерческих операционных систем.

Данные полученные из источников необходимо визуализировать - представить в виде понятном и очевидном для восприятия органов чувств человека. Устройства для визуализации можно поделить на две группы:

-визуализация, реализованная различными устройствами (светодиодами, цифровыми индикаторами);

-реализация, построенная на специальном ПО, где отображение технологических данных происходит на экранах системы с предустановленными ОС.

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

1.2 Обзор существующих систем

В данном дипломном проекте реализована система сбора и отображения данных. Будем проводить анализ представленных систем SCADA, в связи с тем, что на рынке практически отсутствуют простые системы подобные той, что была спроектирована. Но в любой SCADA имеется, такая система.

На мировом рынке представлено более 50 продуктов, которые можно отнести к SCADA-системам. Продукты различаются:

-по требуемой операционной системе, наиболее распространена Windows (Linux, Mac OS встречаются намного реже для данного продукта);

-по количеству поддерживаемого оборудования, протоколов (почти все SCADA поддерживают Modbus, LonWorks, BACnet, OPC, DDE, реже протоколы специфического оборудования, со своим нестандартным протоколом, типа счётчика электрической энергии Меркурий 230ART, климатического контроллера Danfoss ECL-300, приборы фирмы Овен и т. п.);

-по цене, по соотношению цена/качество, в общем случае на рынке представлены как полностью бесплатные SCADA, недорогие SCADA с ценой лицензии на 60 тегов от $100 (DATARate), так и SCADA ценой порядка $100 тыс., при максимальной комплектации -- при количестве тегов более 5000, нескольких АРМ диспетчера (WinCC, InTouch, Citect);

-частный случай условно-бесплатные SCADA, c ограничением по времени работы без перезапуска (обычно 1 час), или по количеству тегов (обычно 8-50), или по количеству одновременно поддерживаемых протоколов (обычно 1);

-по наличию и типу ключа аппаратной защиты (программный ключ файл, аппаратный USB- или LPT-ключ, программная “привязка” к оборудованию), среди прочих факторов ключ платной SCADA в любом случае замедляет первоначальное развертывание и замену вышедшего из строя сервера;

-по наличию прочих функций (поддержка резервирования, генераторы отчетов, удаленный доступ, веб-интерфейс и т. п.).

Полностью бесплатные SCADA: OpenSCADA, Rapid SCADA, FreeSCADA, scada-ГИНЭС, Inductive Automation Ignition.

Условно-бесплатные SCADA, достаточные для автоматизации малого технологического процесса и изучения без покупки лицензии, с возможностью работы в течение неограниченного времени:

- Simp Light Free -- ограничение 8 тегов;

- MasterSCADA -- ограничения 32 тега для MasterSCADA RT32 без дополнительных возможностей или 1 час полнофункциональной работы для MasterSCADA Demo;

- IGSS -- ограничение 50 объектов (ориентировочно 150 тегов) и выбор одного протокола передачи данных (IGSS FREE50), по другому типу лицензии ограниченно время работы без перезапуска на 1 час и 1000 объектов (DEMO Mode);

- Контар АРМ -- поддерживает только контроллеры производства ОАО “МЗТА”;

- IntegraXor свободна для 128 Modbus I/O;

- Каскад. Демоверсия имеет ограничение на 32 физических канала ввода/вывода и 2 часа непрерывной работы, включает себя полную справочную систему, SQL-сервер Firebird 2.5, WEB-модуль (реализация WebSCADA) и ряд проектов, демонстрирующих возможности системы. SCADA интегрирована с SoftLogic-системой KLogic, и как следствие, реализована сквозная технология программирования алгоритмов контроллеров и рабочих станций. При покупке лицензии время работы не ограничивается, лицензия выдается по числу каналов или устройств сервера доступа к данным и наличию дополнительных клиентских модулей;

- Vijeo Citect - позволяет создать и отладить полноценный проект без приобретения лицензий, при отсутствии лицензий включается демо-режим, в котором проект запускается на ограниченное время, после истечения этого времени проект необходимо перезапустить. Лицензируется только среда исполнения (Runtime), среда разработки распространяется свободно. В комплекте идет стандартный набор драйверов для подключения к контроллерам и RTU разных производителей. Всего насчитывается более 100 типов устройств, без учета поддержки стандартных протоколов, таких как OPC, Modbus и т.д. В отсутствии контроллера или контроллеров проект можно разрабатывать и отлаживать благодаря эмуляции точек ввода-вывода, конфигурируемых под конкретный контроллер.

Прочие SCADA: Simatic WinCC, Intouch Wonderware, Trace mode, Genesis, SCADA Infinity, PcVue Solutions, RSView, ClearSCADA, DATARate, Контур, Круг-2000, ZenOn, Winlog, iFix, InduSoft Web Studio SCADA, Wizcon, Vijeo Citect, Статус-4, Каскад, Энтек, Sitex, Elipse E3, Elvis, Realflex RealWin SCADA, Broadwin (Advantech) WebAccess, General Electric Proficy Cimplicity, WellinTech SCADA, Factory Link (с 2012 года не поддерживается разработчиком), Monitor Pro (базировалась на Factory Link, рекомендована замена на Vijeo Citect), Vijeo Look (рекомендована замена на Vijeo Citect).

Остановимся на наиболее популярных из них. И рассмотрим их основные достоинства.

В соответствии с рисунком 1.1 Master SCADA - система визуализации АСУТП, MES, задач учета и диспетчеризации объектов промышленности, ЖКХ и зданий.

Рисунок 1.1 - Master SCADA

Для оценки возможностей SCADA системы существует ознакомительная бесплатная версия на 32 точки и учебник по созданию АСУ ТП. Из других функций Master SCADA доступны следующие возможности:

- взаимодействие с другими программами с помощью современных технологий (OPC, OLE, DCOM, ActiveX, OLE DB, ODBC и др.);

- функция использования в операторской панели АСУ ТП документов любого типа и поддержка обмена данными с ними;

- Master SCADA имеет неограниченное расширение функциональности за счет использования продуктов сторонних разработчиков;

- наличие открытого интерфейса для создания пользователем любых базовых элементов;

- единая среда разработки всего проекта;

- раздельное конфигурирование структуры системы и логической структуры объекта;

- открытость и следование стандартам;

- интуитивная легкость освоения;

- мощная трехмерная графика и мультимедиа;

- неограниченная гибкость вычислительных возможностей;

- объектный подход;

- бесплатные инструментальная SCADA-система;

- бесплатная исполнительная система на 32 точки;

- галерея мнемосхем с объектов.

Рисунок 1.2 - TRACE MODE® 6

В соответствии с рисунком 1.2 TRACE MODE® - это первая интегрированная информационная система для управления промышленным производством, объединяющая в единые целые продукты класса SOFTLOGIC-SCADA / HMI-MES-EAM-HRM. SCADA система TRACE MODE разработана в 1992 году и к настоящему времени имеет более 7000 внедрений на объектах АСУ ТП. На данный момент актуальной версией является SCADA система TRACE MODE® 6.

Проекты, разработанные на базе TRACE MODE, имеют инсталляции в энергетической, металлургической, атомной, нефтяной, газовой, химической, космической и других отраслях промышленности. Нашли применение при разработке АСДУ ЖКХ и сельском хозяйстве России.

В состав системы входят бесплатные драйверы для более чем 2-х тысяч контроллеров и УСО.

Для программирования алгоритмов управления технологическими процессами в SCADA системе TRACE MODE 6 поддержаны все 5 языков международного стандарта IEC 61131-3. Такие как - Techno FBD, Techno LD, Techno SFC и процедурные - Techno ST, Techno IL.

Рисунок 1.3 - SIMP Light miniSCADA

В соответствии с рисунком 1.3 SIMP Light miniSCADA - реализованные в системе инновационные решения, позволяют максимально сократить сроки на разработку, настройку и дальнейшую эксплуатацию проектов по АСУ ТП. SCADA система не требует от разработчика специфических знаний в области программирования и разработки систем верхнего уровня. Достаточно только сконфигурировать систему под разрабатываемые задачи, имея лишь базовые знания пользователя ПК.

SIMP Light miniSCADA имеет поддержку большого количеств моделей контроллеров и устройств сбора данных. Является одной из недорогих сред разработки визуализации.

Рисунок 1.4 - SIMATIC WinCC

В соответствии с рисунком 1.4 SIMATIC WinCC - мощная среда разработки верхнего уровня управления АСУ ТП с централизованным контролем и сбором данных, система SIMATIC WinCC (Windows Control Center) - это компьютерная система человеко-машинного интерфейса, работающая под управлением операционных систем Windows и предоставляющая широкие функциональные возможности для построения систем управления различного назначения и уровней автоматизации.

Рисунок 1.5 - Citect SCADA

В соответствии с рисунком 1.5 Citect SCADA - программный продукт, представляющий собой полнофункциональную систему визуализации и мониторинга, управления и сбора данных. ПО Citect SCADA включает в себя все функциональные блоки (тренды, алармы, отчеты, драйвера, протоколы) представляя собой единое средство разработки проекта. В отличие от ПК -совместимых АСУ ТП CitectSCADA разрабатывалась как высокоэффективное средство управления интегрированными системами предприятия. Технологии Internet Explorer'а позволяют реализовывать удаленный мониторинг системы и управление технологическим процессом.

Дополнительное расширение возможностей Citect SCADA:

CitectFacilities - специальное приложение для автоматизации зданий и систем жизнеобеспечения сооружений и объектов ЖКХ.

CitectSCADA Reports - Мощная система сбора данных и генерации отчетов на основе MS SQL Server 2005 и встроенной службы Reporting Services.

Рисунок 1.6 - InTouch

В соответствии с рисунком 1.6 SCADA система InTouch - это достаточно мощная среда разработки визуализации и управления для промышленной автоматизации технологических процессов и диспетчерского контроля. SCADA система InTouch применяется для создания DCS (распределенных систем управления) и других АСУ ТП. Актуальной, на данный момент является версия 2014 R2.

Программный пакет InTouch 2014 R2 9.5:

Применение доходчивой технологической структуры HMI-интерфейса и простых в использовании инструментов преобразования снижает время и затраты на проектирование, а также обеспечивает однородность структур HMI-интерфейса. Структуры HMI-интерфейса более высокого качества позволяют оператору максимально фокусировать внимание, повышают коммерческую ценность, а также безопасность всей производственной системы. Быстрое и удобное обновление существующих приложений - упрощенное преобразование старых приложений с расширенной графикой путем применения новейших технологий.

Рисунок 1.7 - PCVue

В соответствии с рисунком 1.7 SCADA система PcVue - полнофункциональный продукт для решения задач распределенного мониторинга и управления. Интеллектуальный Генератор (Smart Generator) создает приложения PcVue из различных программных продуктов, включая AutoCad, CoDeSys и ISaGRAF. В совокупности с компонентом WebVue PcVue предлагает решение для детальной настройки, которое доступно из обычного Web-браузера через интернет. Система поддерживает возможность расширения за счёт добавления модулей.

PcVue обеспечивает гибкое решение для контроля промышленных процессов, энергоносителей и инфраструктуры. Он отвечает промышленным стандартам надежности и производительности, сохраняя при этом удобство для пользователей. Охватывает требования от однопользовательских приложений до сложных клиент-серверных проектов с резервированием.

Новая версия PcVue была разработана с учетом пожеланий интеграторов, производителей оборудования и пользователей, а также на основе большого опыта ARC Informatique в автоматизации производств. PcVue отличается эргономикой и инструментами, основанными на объектной технологии, которые минимизируют время разработки приложений, в том числе новейшие инструментальные средства от Microsoft, стандарты пользовательского интерфейса и средства безопасности Windows® XP и Windows 7.

2. Контроллер ICP DAS и коммуникация

2.1 Общие сведения о контроллере I-7188EX-MTCP

В соответствии с рисунком 2.1 представлен внешний вид контроллера I-7188EX-MTCP.

Рисунок 2.1 - Контроллер I-7188EX-MTCP

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

Данный промышленный контролер предлагает для использования 2 типа технологии: VxComm, Xserver. Рассмотрим каждую из них и подробно остановимся на технологии Xserver, которую мы использовали в реализации данного дипломного проекта.

В соответствии с рисунком 2.2, VxComm - данная технология позволяет запустить на контроллере сервер, который способен работать как преобразователь RS-232/485/422 в Ethernet. Что позволяет подключить ПК к устройствам автоматизации, если в нем нет RS-232/485/422 совместимой карты.

Рисунок 2.2 - Схема подключения VxComm

Помимо этого, данная технология позволяет создать на ПК виртуальные COM порты, которые будут привязаны к конечным устройствам, что облегчает работу. Таким образом, ПК будет определять подключенное устройство к COM порту, как будто он подключён к нему непосредственно по интерфейсу RS-232/485/422. Технология VxComm обеспечивает гораздо более простой доступ к интерфейсам для разработчиков ПО и позволяет использовать старые системы без изменения программного кода. Блок-диаграмма приведена в соответствии с рисунком 2.3:

Рисунок 2.3 - Блок-диаграмма работы VxComm драйвера

Xserver - данная технология позволяет решать следующие задачи:

-соединять RS-232 устройства посредством Ethernet сети;

-чтение и отправка цифровых/аналоговых данных используя Ethernet сеть;

-выполнять самостоятельные операции;

-выполнять распределённые вычисления;

-выполнять запрограммированные действия.

Xserver по умолчанию является программной прослойкой, позволяющей общаться с различными интерфейсами посредством использования различных портов протокола TCP/IP.

В соответствии с рисунком 2.4 приведём блок диаграмму.

Рисунок 2.4 - Диаграмма Xserver

Помимо базовых возможностей Xserver позволяет выполнять пользовательские программы. Подключая дополнительные модули возможно работать, используя дополнительные протоколы и средства. Например, библиотека Web200.lib позволяет использовать на устройстве WEB-сервер, который способен отображать технологические данные и общаться с различными интерфейсами устройства.

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

Приведём спецификацию на данное устройство:

Таблица 2.1 - Спецификация I-7188EX-MTCP

Конструктивное исполнение

Конструкция корпуса:

Пластиковый корпус

Вид монтажа:

Монтаж на DIN-рейку

Встроенная память

Объем встроенной Flash-памяти:

512 кБ

Объем памяти EEPROM:

2 кБ

Объем энергонезависимой памяти NVRAM:

31 Байт

Сетевые интерфейсы

Портов 10 Mbit/s:

1

Разъем порта 10 Mbit/s:

RJ-45

Сторожевой таймер

Аппаратный:

да

Время срабатывания:

0.8 c

Промышленные интерфейсы/протоколы

Поддержка Modbus TCP:

Slave, Master

Поддержка Modbus RTU:

Master

Требования по питанию

Входное напряжение питания DC:

10... 30 В

Потребляемая мощность:

2 Вт

Оперативная память

Тип оперативной памяти:

SRAM

Установленный объем оперативной памяти:

512 кБ

Условия эксплуатации

Температура эксплуатации:

-25... 75 °С

Влажность:

10... 90 % (без конденсации)

Интерфейсы ввода-вывода

Количество COM-портов всего:

2

COM портов RS-232:

1

COM портов RS-485:

1

Условия хранения

Температура:

-30... 80 °С

Программное обеспечение

Установленная операционная система:

Mini OS7

Инструментальная среда:

MiniOS7 Studio(TC++1.01, TC 2.01, BC++ 3.1 ~ 5.2x, MSC 6.0, MSVC++ от 1.5.2)

Метод программирования:

C/C++

Габариты

Ширина:

72 мм

Высота:

33 мм

Глубина:

119 мм

Процессор

Тип установленного процессора:

80188-совместимый

Частота процессора:

40 МГц

Расширение модулями

Количество слотов всего:

1

Поддерживаемые модули расширения:

Платы x

Производитель

Имя:

ICP DAS

В соответствии с рисунком 2.5 приведён габаритный чертёж контроллера I-7188EX-MTCP:

2.2 Обмен данными контроллера и протокол Modbus

Для решения поставленной задачи, организация связи контроллера с ведомыми устройствами организована посредствам Ethernet. В частности, на уровне протоколов используется Modbus.

Выбор стандарта Ethernet обусловлен большой степенью интеграции, простотой и надежностью соединения, большим выбором сопутствующего оборудования для коммуникаций. В контроллере I-7188EX-MTCP имеется 1 разъем типа RJ-45 для подключения к сети Ethernet со скоростью до 10 Mbit/s.

Протоколом обмена данными выбран Modbus. Протокол Modbus и одноимённая сеть являются самыми распространёнными в мире среди протоколов и сетей. Несмотря на свой возраст (Modbus стал стандартом де-факто ещё в 1979 году) он не только не устарел, но наоборот, демонстрирует существенно возросшее количество ориентированных на него новых разработок и увеличивающийся объём организационной поддержки протокола. Миллионы Modbus-устройств по всему миру продолжают успешно работать, обновляются версии описания протокола.

Одним из главных преимуществ Modbus является отсутствие необходимости в специальных интерфейсных контроллерах (PROFIBUS и CAN требуют для своей реализации заказных микросхем), также к преимуществам следует причислить простоту программной реализации и элегантность принципов функционирования. Всё это снижает затраты на освоение стандарта как системными интеграторами, так и разработчиками контроллерного оборудования. Высокая степень открытости протокола обеспечивается полностью бесплатными текстами стандартов, которые можно скачать с сайта www.modbus.org. Разновидностями Modbus выступают Modbus Plus, представляющий собой многомастерный протокол с кольцевой передачей маркера, и протокол Modbus TCP, рассчитанный на использование в сетях Ethernet и Интернет.

Протокол Modbus имеет два режима передачи: RTU (remote terminal unit - удалённое терминальное устройство) и ASCII. Стандарт предусматривает, что режим RTU в протоколе Modbus должен присутствовать обязательно, а режим ASCII является опционным. Пользователь может выбирать любой из них, но все модули, включённые в сеть Modbus, должны иметь один и тот же режим передачи.

Рассмотрим более подробно протокол Modbus TCP/IP. Протокол MODBUS TCP/IP обеспечивает обмен между устройствами в сети Ethernet, используя модель Клиент - Сервер со стеком протоколов TCP/IP, где преобразователь выступает в роли MODBUS Server.

Модель Клиент - Сервер основывается на четырех типах сообщений:

- MODBUS Request;

- MODBUS Confirmation;

- MODBUS Indication;

- MODBUS Response.

Где:

MODBUS Request -запрос данных с сервера;

MODBUS Confirmation - сообщение, подтверждающее прием клиентом ответа от сервера;

MODBUS Indication - сообщение, подтверждающее что запрос клиента принят сервером;

MODBUS Response - данные сервера.

Рисунок 2.6 - Модель клиент-сервер

Рисунок 2.7 - Структура данных Modbus TCP

Таблица 2.2 - Структура данных прикладного уровня протокола Modbus TCP/IP

Поле

Длина,

байт

Описание

Клиент

Сервер

Transaction Identifier (Идентификатор Транзакции)

2

Идентификация

MODBUS запроса/ответа

Определяется клиентом

Копируется из полученного запроса

Protocol Identifier (Идентификатор Протокола)

2

0 = протокол

MODBUS

Определяется клиентом

Копируется из полученного запроса

Length (Длина)

2

Количество

Последующих байт

Определяется клиентом

(запрос)

Определяется сервером (ответ)

Unit Identifier (Идентификатор устройства)

1

Идентификатор устройства, подключенного к последовательной или другой линии данных

Определяется клиентом

Копируется из полученного запроса

Где:

- Transaction Identifier - порядковый номер запроса Клиента;

- Protocol Identifier - используется для идентификации MODBUS протокола в разных сетях;

- Length - счетчик байт передаваемого пакета начиная с поля Unit Identifier;

- Unit Identifier - идентификатор запрашиваемого устройства, используемый в последовательном канале MODBUS. Данное поле применяется для доступа к устройствам, подключенным через шлюз Ethernet/последовательный канал MODBUS.

Таблица 2.3. Структура стека протокола MODBUS TCP/IP в сети Ethernet

Уровень

Прикладной

ADU

Представления

-

Сеансовый

-

Транспортный

TCP (порт 502)

Сетевой

IP

Канальный

802.3 (Ethernet)

Физический

Экранированная и неэкранированная витая пара

2.3 Подключение и настройка ПО для работы с I-7188EX-MTCP

В соответствии с рисунком 2.8, для подключения контроллера к ПК будем использовать кабель с подключением по RS-232. Со стороны ПК необходимо наличие 9-пинового D-SUB Com порта. Со стороны контроллера используем вывода RX и TX. Так же необходимо вывод INIT заземлить для отключения запуска приложений, добавленных в autoexec.bat.

Рисунок 2.8 - Подключение по RS-232

Далее можно выбрать одно из двух приложений для коммуникации с контроллером MiniOs7 Utility, либо 7188xw Utility. Первая является инструментом с графическим интерфейсом, вторая - это консольное приложение.

Рисунок 2.9 - Окно создания нового соединения в MiniOS7 UTILITY

В соответствии с рисунком 2.9, выберем MiniOs7 Utility, так как она более удобная и имеет графический интерфейс пользователя. Необходимо скачать утилиту с сайта производителя, либо взять с диска, поставляемого с контроллером и установить её. После запуска нажимаем “New connection”. Выбираем COM порт и вводим остальные параметры, соответствующие нашему соединению.

Рисунок 2.10 - Главное окно программы MiniOS7 UTILITY

В соответствии с рисунком 2.11, для передачи файла с ПК на устройство необходимо выделить файл в левой части программы и нажать F5.

Рисунок 2.11 - Загрузка файлов в контроллер в ПО MiniOS7 UTILITY

Для запуска приложения необходимо нажать правой кнопкой мыши по файлу на устройстве и нажать “Run”. После этого, результат выполнения программы отобразится в окне “7188xw”. В соответствии с рисунком 2.12, показано выполнение тестового приложения “Hello world”.

Рисунок 2.12 - Окно выполнения программы “Hello world”

Так же для работы устройства необходимо обновить предустановленное ПО на устройстве для корректной его работы. Для этого воспользуемся утилитой MiniOS7 Utility. Для обновления нам так же понадобится образ системы. Подключаемся к нашему устройству. В диспетчере фалов ПК выбираем скаченный образ системы, нажимаем по нему правой кнопкой мыши и выбираем пункт “Update MiniOS7 Image”, в соответствии с рисунком 2.13.

Рисунок 2.13 - Обновление внутреннего ПО контроллера

3. Программная часть научно-исследовательской работы

3.1 Общие сведения о программной части контроллера I-7188EX-MTCP

I-7188EX-MTCP использует встроенную ОС под названием MiniOS7. Это интегрированная ОС разработанная на основе ROM-DOS. DOS говорит контроллеру каким образом запускать программы, управлять файлами и потоками информации, входы и выходы, и многие другие функции связанные с производительностью контроллера. MiniOS7 имеет схожие функции, как и ROM-DOS, но имеет набор специфичных функций для работы с контроллером. Так же MiniOS7 гораздо быстрее происходит начальную инициализацию системы и ее запуск. Скорость запуска ROM-DOS системы 4-5 секунд, у MiniOS7 около 0,1 секунд. Встроенная ОС поддерживает следующие функции:

-загрузка и выполнение файлов;

-функции диагностики системы;

-обновление MiniOS7

-выполнение EXE, COM или BAT файлов DOS

-поддержка AUTOEXEC.BAT для автозапуска приложений.

В связи с тем, что MiniOS7 это изменённая версия системы DOS существует ряд особенностей её работы:

-система может выполнять не все DOS приложения;

-возможно выполнение одновременно лишь одной программы;

-помимо библиотек языка C возможно использовать и библиотеки Turbo PASCAL;

-поддержка функций управления памятью для int 21h

MiniOS7 позволяет использовать встроенные команды для выполнения определенных действий, без разработки своего программного обеспечения. Для соединения с контролером и выполнения команд используется специальное консольное приложение: 7188xw.exe. Полный список команд приведён в приложении.

3.2 Настройка среды разработки

В связи с тем, что в данном контроллере используется 80188 - совместимый процессор для компиляции проекта необходим 16-битный компилятор, иначе появится ошибка в соответствии с рисунком 3.1.

Рисунок 3.1 - Ошибка при попытке запуска 16-bit приложения

Но запуск 16 - битного компилятора не представляется возможным в нативном режиме. Для компиляции использована среда разработки BC 3.1. При попытке запуска среды разработки в 64-битной системе появится следующее сообщение:

В таком случае для использования ПО разработки необходимо: либо установленная система DOS, либо эмулятор этой системы. Будем использовать второй метод, так как он наиболее удобен и позволяет работать с приложением гостевой системы, как с окном хост системы. В качестве эмулятора был выбран DOS-BOX.

Итак, для запуска среды разработки проекта необходимо выполнить следующие действия:

В соответствии с рисунком 3.2, после запуска системы DOS выполнить команду cls для очистки экрана.

Рисунок 3.2 - Очистка экрана

Проверить путь к проекту. Приведем пример с демо-примером от производителя контроллеров. Проект Hello.

Проверить путь BC/Bin файла, например, D:\BC\Bin.

Использовать команду для монтирования диска, пример: “mount d d:\”

После монтирования диска, необходимо переключится на работу с ним. Пример: “D:” to change “Z:\>” to “D:\>”

Пропишите путь до BC/Bin фала. Пример: “path d:\bc\bin”, в соответствии с рисунком 3.3.

Рисунок 3.3 - Запуск подготовленного batch файла

Измените директорию на ту, в которой находится файл проекта, запустите BC 3.1.

Для упрощения запуска и компиляции можно создать небольшой batch файл.

path d:\bc\bin

cd minios7\hello\hello_c

bc

После необходимо положить его в корень монтируемого диска. И после его выполнения будет запущена среда с открытым фалом проекта.

После успешного запуска среды, перед первой компиляцией, необходимо провести настройки генерации объектного кода в соответствии с нашим типом CPU, в соответствии с рисунком 3.4.

Рисунок 3.4 - Настройки генерации кода

Так как в нашем контролере с I-7188EX-MTCP используется 80188 совместимый процессор для нас необходимыми и достаточными будут 3 параметра: метод обсчета чисел с плавающей точкой - необходим режим эмуляции, набор инструкций процессора - для нас необходимы инструкции 80186 серии, так же необходимо установить разрешение на быстрые операции с плавающей точкой.

3.3 Программа контроллера I-7188EX-MTCP

Программную часть контроллера I-7188EX-MTCP, можно разделить на две структурные части. Первая часть отвечает за сбор данных по протоколу Modbus, вторая отвечает за отображение данных на Web-странице.

Описание блоков схемы:

Блок 1. Первоначальная инициализация, инициализирует все регулярные выражения, включенные в сокет сервера и окружающую сеть.

Блок 2. Этот блок содержит 2 функции:

-UserInit() в ней пользователь может определить пользовательские переменные и команды, которые будет выполнены только один раз после запуска контроллера;

-UserLoopFun() пользователь может написать сюда код, который будет выполняться каждый scan time.

Блок 3. Проверка состояния TCP портов, содержит данные или нет. Если есть данные, то выполняется блок 5, если данных нет-выполняется блок 4.

Блок 4. Проверка watchdog таймера. Если таймер срабатывает, контроллер перезагружает сам себя. В противном случае переходит к UserLoopFun() в блоке 2.

Блок 5. В соответствии с номером порта и программой, создается правильный ответ. Порт 80: если нет необходимости вызова CGI функции- переходит к блоку 7. Если нет, то к блоку 6.

Блок 6. Пользователь может вызывать различные функции для решения конкретных задач. По умолчанию-имеет несколько стандартных функций:

CGI_DPAGE();

CGI_USER();

CGI_WEB();

PRINT_PAGE().

Блок 7. Отправляются данные браузеру клиента. После завершения отправки, возвращается в UserLoopFun() в блоке 2.

Подробно разберем первую часть и опишем ключевые моменты данной части программы.

Самое первое, что необходимо сделать, это директивой #include включить в наш проект заголовочный файл для работы с Modbus/TCP:

#include "..\Lib\MBTCP.h"

Далее напишем блок с используемыми переменными:

int iScanCOMPort=1;// переменная для Modbus

int iSendflag[3];

unsigned long lStart_TimeTick[3]; //Для подсчета времени когда 7186E соединяется по Ethernet.

//I/O карта памяти

unsigned char far iMemory_DI[100];

int far iMemory_AI[100];

В теле функции void UserInit(void): проведем ряд первоначальных настроек соединения. В ней используется функция ModbusTCP_Init, объявление которой происходит в mbtcp.h и выглядит следующем образом:

int ModbusTCP_Init(int iIndex,unsigned char *cRemote_IP,int iRemote_TCPPort,

unsigned long lConnect_Timeout,unsigned long lReConnect_Time_Interval);

Функция необходима для получения начальных параметров соединения с ведомыми устройствами. Поддерживает до 8 соединений. Возможно 8 соединений на 1 IP адрес, либо 1 соединение на 8 IP адресов.

iIndex:

0~7. Номер соединения.

cRemote_IP:

IP адрес удаленного устройства.

Пример: "192.168.255.100"

iRemote_TCPPort:

TCP порт удаленного устройства.

Пример: 502

lConnect_Timeout:

Таймаут соединения удаленного устройства.

Единицы измерения: миллисекунды

lReConnect_Time_Interval:

Промежуток времени до повторного соединения, если функция вернула 0- успешно, любой другие данные- ошибка.

Вызов данной функции:

//======= Начало ядра Modbus =======

int iRet;

iRet=InitModbus(iMemory_DI,iMemory_DO,iMemory_AI,iMemory_AO);

if(iRet!=0)

{

// Инициализация Modbus произошла с ошибкой.

}

else

{

// Инициализации Modbus прошла успешно.

}

//======= Конец ядра Modbus =======

ModbusTCP_Init(0,"169.254.254.72",502,1500,8000);

//ModbusTCP_Init(1,"192.168.255.101",502,1500,8000);

//ModbusTCP_Init(2,"192.168.255.102",502,1500,8000);

В функции void UserLoopFun(void) мы реализуем работу с Modbus и получение данных с ведомого устройства. Основной является функция ModbusTCP_Master2Slave, которой для работы передаются следующие параметры:

int ModbusTCP_Master2Slave(int iIndex,unsigned char cNetID, unsigned char cFunction, int iLocalMemoryBaseAddress, int iRemoteMemoryBaseAddress, int iIOCount, unsigned long lTimeout);

iIndex: 0~7. поддерживается до 8 соединений. Каждое соединение должно быть объявлено в функции ModbusTCP();

cNetID: 0~0xFF, NetID (номер станции) удаленного Modbus/Slave устройства;

cFunction: команда (код функции).

iLocalMemoryBaseAddress: внутренний начальный регистр с которым вы хотите работать;

iRemoteMemoryBaseAddress: начальный регистр удаленного устройства с которым вы хотите работать;

iIOCount: количество регистров для чтения;

lTimeout: время таймаута соединения 1~65535. Единицы измерения: миллисекунды;

Использование функции:

int i, iRet;

//======= Начало ядра Modbus =======

if(mtModbusPort[iScanCOMPort].EnableMode==_ModbusRTU_Slave)

CheckModbusRTURequest(iScanCOMPort);// Есть ли запросы от Modbus/RTU Master?

if(mtModbusPort[iScanCOMPort].EnableMode==_ModbusASCII_Slave)

CheckModbusASCIIRequest(iScanCOMPort);// Есть ли запросы Modbus/ASCII Master?

if(mtModbusPort[iScanCOMPort].EnableMode==_ModbusRTU_Gateway)

{

SendModbusRequest(iScanCOMPort);// Передача запроса к ведомому устройству.

CheckResponseTimeout(iScanCOMPort);// Если таймаут запроса, переводим iModbusAction

// в IDLE состояние.

CheckModbusResponse(iScanCOMPort);// Есть ли ответ от ведомого устройства?

SendModbusResponse(iScanCOMPort);// Передача ответа ведомому устройству.

}

iScanCOMPort++;

if(iScanCOMPort>iTotalCOMPort)

iScanCOMPort=1;

//======= Конец ядра Modbus =======

//Получение с концевика ОТКРЫТИЯ заслонки шибера рекуператора.

If ((GetTimeTicks()-lStart_TimeTick[0])>500 || (iSendflag[0]==1)) //Связываться по Ethernet каждые 500 ms.

{

lStart_TimeTick[0]=GetTimeTicks();

iRet=ModbusTCP_Master2Slave(0,1,2,0,30001,1,4000);

//Номер устройства Modbus/TCP из функции ModbusTCP_Init

//Адрес ведомого устройства

//Код функции = 2 = чтение значений из нескольких дискретных входов

//Начальный индекс данных на Мастер контроллере

//Начальный индекс данных на Modub/TCP ведомом устройстве

//количество ячеек

//Таймаут=4000 ms

if(iRet==0)

{

iSendflag[0]=0;

printCom1("Modbus TCP чтение DI выполнено");

for(i=0;i<2;i++)

{

printCom1("gate_open = %X ",iMemory_DI[i]);

}

printCom1("\n\r");

iMemory_DI[i]=DI[0];

}

else if(iRet<0)

{

iSendflag[0]=0;

printCom1("Modbus TCP DI код ошибки = %d\n\r",iRet);

}

else

{

iSendflag[0]=1;

printCom1("Ожидание ответа от DI \n\r");

}

}

Остальные дискретные и аналоговый параметры получаются аналогичным образом, изменяется только параметр //I/O канал в функции ModbusTCP_Master2Slave. Функция по завершению работы, может вернуть следующие значения:

-0: нет ошибок. Отправка запроса прошло успешно, ответ получен;

-502: Запрос отправлен, но данные пока не получены;

-1: ошибка соединения с ведомым устройством;

-2: соединение не установлено;

-3: соединение установлено, ошибка отправки запроса;

-4: соединение установлено, таймаут ожидания ответа;

-5: соединение установлено, ошибка получения ответа;

-6: соединение закрыто или не было создано.

Функция printCom1(); Используется для диагностики проблем соединения. В ней отображаются ошибки и получаемые данные.

Вторая часть программы отвечает за отображение данных. При решении нашей технологической задачи нет необходимости обновления данных в реальном времени, поэтому в качестве элемента отображения будет использован WEB-сервер, который может быть реализован непосредственно на I-7188EX-MTCP. Таким образом, пользователю для мониторинга технологических данных необходимо будет в адресной строке браузера ввести ip адрес (если настроен DNS-сервер на определённый домен) сети для получения доступа к странице.

Для создания Web-сервера необходимо подключить несколько библиотек и заголовочных файлов к нашему проекту. Также необходимо написать специальную HTML страницу, в которой будет схематично представлен наш технологический процесс. Также в нашу программу на контроллере необходимо будет добавить код, который будет передавать данные из переменных контроллера в HTML код, посредством которого будет происходить отображение данных.

Рисунок 3.6 - Структурная схема соединений веб-сервера

В соответствии с рисунком 3.6, сервер состоит из трёх элементов:

User.c - пользовательский код,

HTML - страницы отображаемые браузером,

Web Lib - библиотека для работы и запуска веб-сервера.

Подробно рассмотрим часть кода программы, отвечающую за работу web-сервера. Импортируем библиотеку, необходимую для работы сервера:

#include "..\lib\web.h" //библиотека для работы веб-сервера

Создадим массив для хранения дискретных величин и переменную типа int для хранения аналогового значения.

int airflow_speed;

unsigned char DI[2];

В массиве каждая дискретная величина имеет свое место. Каждый раз при получении данных по протоколу Modbus, данные из временной переменной будут записывать либо в массив в определённую ячейку, либо в переменную типа int для дискретных значений и аналоговых соответственно. Основой функцией является void GetDataFromWeb (void){}. Это функция-интерпретатор, функция отправляет значение переменной SendDataToWeb на веб страницу. Так же заменяет ключевые слова вида: ~xxxx=xxxx~ (включая знаки тильды) - на значения из переменной SendDataToWeb. В функции GetDataFromWeb добавлен цикл, перебирающий значения от 0 до 2. Таким образом, мы отправляем на web форму данные наших дискретных величин. Идентификация конкретной дискретной величины происходит при сравнении данных из массивов Argu_Name[0] и Argu_St[0], в которых хранятся данные об имени идентификатора и его значении соответственно. На веб-форме наши идентификаторы имеют вид:

~Led=0~ - соответствует индикации сигнала с концевика открытия шиберной заслонки,

~Led=1~~ - соответствует индикации сигнала с концевика закрытия шиберной заслонки,

~Led=2~ соответствует индикации сигнала работы вентилятора рекуператора,

~Speed=data~ - данные о скорости потока воздуха,

~Conn_Server=rc~ - количество обновлений страницы.

Код выполняющий идентификацию и отправку данных на веб форму:

for (int i = 0; i < 2; ++i)// цикл перебора значении массива DI[]

{

if (strcmp(Argu_Name[0],"Led")==0 | strcmp(Argu_St[0],i)==0) // определение идентификатора дискретных величин

if (DI[i]==1) // если 1

strcpy(SendDataToWeb,"led_on.png");

else // если 0

strcpy(SendDataToWeb,"led_off.png");

}

if (strcmp(Argu_Name[0],"Speed")==0 | strcmp(Argu_St[0],"data")==0) // определение идентификатора аналоговой величины

{

ltoa(airflow_speed,SendDataToWeb,10);

}

if (strcmp(Argu_Name[0],"Conn_Server")==0 | strcmp(Argu_St[0],"rc")==0) // определение идентификатора количества обновлений

{

rc++;

if (rc==900000000) rc=0;

ltoa(rc,SendDataToWeb,10);

}

Web часть состоит из 2-х html файлов index.htm и home.html. Index.htm-загружается по умолчанию после успешного запуска веб сервера и перехода на ip адрес контроллера. В соответствии с рисунком 3.7, на ней есть возможность перейти к настройкам сети, либо перейти непосредственно к просмотру данных о технологическом процессе.

Рисунок 3.7 - Страница index.html

В соответствии с рисунком 3.8, Страница для настройки сети позволяет задать ip адрес контроллера в сети, маску и основной шлюз. Также, на ней можно посмотреть версию web библиотеки и версию MiniOS7.

Рисунок 3.8 - Сетевые настройки веб сервера

В соответствии с рисунком 3.9, на странице мониторинга технологического процесса представлены технологические параметры печи.

Рисунок 3.9 - Технологические параметры печи

На ней имеются следующие технологические параметры:

-состояние заслонки печи;

-задание по температуре;

-температура зон печи;

-состояние регулятора и процентное положение;

-расход газа;

-состояние выполнения программы.

Так же на странице представлено число показывающее количество обновлений страницы. Обновление происходит раз в 25 секунд.

Подробно разберем ключевые моменты кода HTML страницы- home.html. Строка необходимая для обновления страницы раз в 25 секунд:

<META HTTP-EQUIV="Refresh" CONTENT="20;url=/cgi-bin/cgi_user?Page=Home.htm">.

Места, где вместо идентификаторов с помощью программы подставляются реальные значения, либо устанавливается картинка, соответствующая текущему состоянию:

<!-- fun_on (Image) Картинка индикатор работы вентилятора -->

<div id="u6" class="ax_image" data-label="fun_on">

<img id="u6_img" class="img " src="~Led=2~"/>

<!-- Unnamed () -->

<div id="u7" class="text">

<p><span>&nbsp;</span></p>

</div>

</div>

<!-- gate_close_on (Image) Картинка индикатор закрытия заслонки -->

<div id="u12" class="ax_image" data-label="gate_close_on">

<img id="u12_img" class="img " src="~Led=1~"/>

<!-- Unnamed () -->

<div id="u13" class="text">

<p><span>&nbsp;</span></p>

</div>

</div>

<!-- gate_open_on (Image) Картинка индикатор открытия заслонки -->

<div id="u14" class="ax_image" data-label="gate_open_on">

<img id="u14_img" class="img " src="~Led=0~"/>

<!-- Unnamed () -->

<div id="u15" class="text">

<p><span>&nbsp;</span></p>

</div>

</div>

<!-- gas_speed (Shape) Данные о скорости потока воздуха -->

<div id="u20" class="ax_paragraph" data-label="gas_speed">

<img id="u20_img" class="img " src="resources/images/transparent.gif"/>

<!-- Unnamed () -->

<div id="u21" class="text">

<p><span>~Speed=data~</span></p>

</div>

</div>

<!-- pages_reloads (Shape) Колличество обновлений страницы -->

<div id="u22" class="ax_paragraph" data-label="pages_reloads">

<img id="u22_img" class="img " src="resources/images/transparent.gif"/>

<!-- Unnamed () -->

<div id="u23" class="text">

<p><span>~Conn_Server=rc~</span></p>

3.4 Программная часть контролера Siemens S7-1214С AC/DC/Rly

Для передачи технологических параметров на контроллер I-7188EX-MTCP необходимо внести изменения в программу контроллера Siemens. В нашем случае мы используем контроллер Siemens S7-1214С AC/DC/Rly, заказной номер: 6ES7214-1BG40-0XB0. Полную поддержку коммуникационного протокола Modbus TCP обеспечивают прошивки начиная с версии 2.0. Все программные блоки для управления обменом данных, содержаться в версиях ПО начиная с STEP 7 Basic/Professional от V11 SP2. В первую очередь, необходимо настроить IP адрес контроллера Siemens в соответствии с настройками сети. В соответствии с рисунком 3.10, произведём её в настройках интерфейса Profinet.

Рисунок 3.10 - Настройка IP адреса контроллера Siemens

Также необходимо активировать байт системной памяти и надстроить его адрес. В соответствии с рисунком 3.11, настройку можно провести во вкладке System and clock memory.

Рисунок 3.11 - Установка байта системной памяти

Это позволит использовать нам в нашей программе адреса следующих битов:

-бит который всегда равен 0;

-бит который всегда равен 1;

-бит регистрации диагностического события, устанавливается в 1 на один цикл программы в случае обнаружения диагностического события;

-бит первого прохода, устанавливается в 1 во время первого прохода программы.

В соответствии с рисунком 3.12, программный блок для реализации протокола Modbus TCP называется MB_SERVER. Он расположен INSTRUCTIONS-Communication - Communication processor - Modbus TCP - MB_SERVER окна Task card. Добавим блок в организационный блок 1(OB1), главного цикла программы.

Рисунок 3.12 - Функциональный блок MB_SERVER

Функциональный блок MB_SERVER содержит следующие входа и выхода:

Таблица 3.1 - Входа/выхода функционального блока MB_SERVER

Имя

Тип

Назначение

Входы:

EN

BOOL

Активирует блок при значении логической 1

DISCONNECT

BOOL

Управление инициализацией соединения

CONNECT_ID

WORD

Идентификатор соединения в Modbus сети

IP_PORT

WORD

Номер используемого порта

Выходы:

NDR

BOOL

0-новые данные отсутствуют, 1-новые данные записаны через Modbus

DR

BOOL

0-данных для чтения нет, 1-данные прочитаны через Modbus

ERROR

BOOL

Ошибка при вызове блока MB_SERVER

STATUS

WORD

Код ошибки

ENO

BOOL

При корректной работе блока без ошибок на выходе будет логическая 1

Для хранения данных экземпляра блока и буфера данных MB_SERVER используем глобальный блок данных.

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

-status в ней содержаться данные о состоянии экземпляра блока MB_SERVER;

-data в регистрах хранятся данные передаваемые по Modbus TCP.

Таблица 3.2 - Структура блока данных MB_TCP_DATA

Имя

Тип

Назначение

Status:

ndr

BOOL

0-новые данные отсутствуют, 1-новые данные записаны через Modbus

dr

BOOL

0-данных для чтения нет, 1-данные прочитаны через Modbus

error

BOOL

Ошибка при вызове блока MB_SERVER

status

WORD

Код ошибки

data:

gate_open

BOOL

Концевик открытия шибера

gate_close

BOOL

Концевик закрытия шибера

fun_on

BOOL

Вентилятор работает

airflow_speed

WORD

Скорость потока воздуха

Адресация в поле offset появится после компиляции нашего блока данных.

Теперь необходимо указать нашему функциональному блоку MB_SERVER на наш блок данных. Наиболее важным параметром является вход/выход MB_HOLD_REG, через который задается указатель на область памяти, которую блок будет использовать для чтения и записи по протоколу Modbus. Формат указателя "P#bit address" "data type" "length":

-bit address - адрес начального бита;

-data type - тип данных;

-length - количество регистров для считывания или записи.

Начальный адрес начинается с 4 байта, так как первые 4 заняты структурой status.

Теперь необходимо передавать наши технологические данные в соответствующие регистры блока данных для передачи их по протолку Modbus на наш контроллер I-7188EX-MTCP.

Стоит рассмотреть представление адресов Modbus в контроллерах Siemens. С помощью адресного пространства определяется номер используемой функции чтения или записи и адрес переменной. Так же в отличии от большинства PLC нумерация регистров начи...


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.