КОНВЕРТОР ПРОТОКОЛА КОНТРОЛЛЕРА С ПРОГРАММИРУЕМОЙ ЛОГИКОЙ
PROGRAMMABLE LOGIC CONTROLLER PROTOCOL CONVERTER

Настоящая заявка согласно главе 119(е) раздела 35 Кодекса США испрашивает приоритет предварительной заявки на патент США №60/952118, поданной 26 июля 2007 года. Вышеупомянутая заявка полностью включена в настоящий документ посредством ссылки.
Уровень техники
Во многом промышленном оборудовании часто используются устройства, именуемые PLC контроллерами - сокращенное название для контроллеров с программируемой логикой. Как известно, PLC контроллер представляет собой промышленную микропроцессорную систему управления. PLC контроллер взаимодействует с другими компонентами процесса управления посредством каналов связи. PLC контроллеры используются в процессах управления простыми задачами переключения (например, открытие и закрытие клапана), для управления ПИД-регуляторами, комплексной обработкой данных, арифметическими операциями, для управления синхронизацией, технологическим процессом, станком и т.д. Например, PLC контроллер может быть подключен к датчикам, настроенным для представления значений температуры, давления, скорости потока, а также ряда других количественных показателей, относящихся к рабочим состояниям промышленных процессов. Аналогичным образом PLC контроллер может накапливать информацию о дискретных значениях, например, закрыт или открыт конкретный клапан. PLC контроллер может быть настроен для хранения этих данных в конкретных адресах, регистрах или в базе данных.
Кроме того, входящий в состав PLC контроллера микропроцессор может быть сконфигурирован для выполнения разнообразных операций технологического процесса с использованием получаемых данных. Например, PLC контроллеры могут быть запрограммированы для поддержания заданной температуры в рабочей камере. В этом случае, PLC контроллер может выполнять операцию по повышению температуры (например, закрыть/открыть клапаны, увеличить подачу топлива в камеру сгорания и др.), когда температура падает ниже установленного минимального значения. Аналогичным образом PLC контроллер может выполнять обратную операцию для понижения температуры, когда она превышает установленное максимальное значение.
Кроме того, PLC контроллер может быть сконфигурирован для представления данных в ответ на запросы о том, какое значение было записано заданным датчиком в любой заданный момент времени. Такие запросы обычно представляют собой запрос к конкретной ячейке памяти или к конкретному значению базы данных. Более того, такие запросы должны иметь формат, соответствующий протоколу связи, «понятному» для PLC контроллера. В некоторых случаях, возможность PLC контроллера передавать данные с использованием заданного протокола связи может быть реализована путем добавления в состав PLC контроллера соответствующей коммуникационной карты. Однако добавление коммуникационной карты в состав PLC контроллера часто требует его серьезной перенастройки и отключения всего технологического оборудования, что может вызвать чрезвычайно разрушительные последствия. Более того, некоторые коммуникационные карты обеспечивают доступ к ограниченному объему данных из PLC контроллера. Таким образом, данный подход может оказаться неприемлем в зависимости от того, какие данные из PLC контроллера необходимо получить оператору технологического процесса.
Сущность изобретения
Один вариант осуществления предлагает способ предоставления данных из контроллера с программируемой логикой (PLC контроллер). В общем, данный вариант осуществления включает осуществление доступа к файлу конфигурации, определяющему множество представляемых PLC контроллером адресов, и инициализацию массива разделяемой памяти. Массив разделяемой памяти содержит множество элементов, каждый из которых используется для хранения данных, полученных из PLC контроллера. Способ также включает инициирование первого процесса. Первый процесс, как правило, может быть сконфигурирован многократно передавать запрос по одному из определенных адресов PLC контроллера и сохранять возвращенное им в ответ на запрос значение данных в одном из элементов массива разделяемой памяти. Каждый запрос сформирован в соответствии с первым протоколом связи. Данный способ также может включать инициирование второго процесса. Второй процесс, как правило, может быть сконфигурирован на получение сформированного в соответствии со вторым протоколом связи запроса одного или нескольких значений данных, хранящихся в массиве разделяемой памяти, осуществления выборки одного или нескольких требуемых значений и их возврата в формате, совместимом со вторым протоколом связи.
Другой вариант осуществления содержит машиносчитываемый носитель данных, содержащий программу, которая сконфигурирована для реализации способа предоставления данных из PLC контроллера, не требующего «внедрения» дополнительных устройств, содержащую инструкции по выполнению операций. Операции, как правило, могут содержать осуществление доступа к файлу конфигурации, определяющему множество предоставляемых PLC контроллером адресов, и инициализацию массива разделяемой памяти. Массив разделяемой памяти содержит множество элементов, каждый из которых используется для хранения данных, полученных из PLC контроллера. Операции также содержат инициирование первого процесса. Первый процесс, как правило, может быть сконфигурирован многократно передавать запрос по одному из определенных адресов PLC контроллера и сохранять возвращенное им в ответ на запрос значение данных в одном из элементов массива разделяемой памяти. Каждый запрос сформирован в соответствии с первым протоколом связи. Данные операции также могут содержать инициирование второго процесса. Второй процесс, как правило, может быть сконфигурирован на получение сформированного в соответствии со вторым протоколом связи запроса одного или нескольких значений данных, хранящихся в массиве разделяемой памяти, осуществления выборки одного или нескольких требуемых значений и их возврата в формате, совместимом со вторым протоколом связи.
Еще один вариант осуществления содержит систему, в состав которой входит процессор и память, содержащая программу, сконфигурированную для выполнения операций по получению значений данных из PLC контроллера. Выполняемые программой операции, как правило, могут содержать осуществление доступа к файлу конфигурации, определяющему множество представляемых PLC контроллером адресов, и инициализацию массива разделяемой памяти. Массив разделяемой памяти содержит множество элементов, каждый из которых используется для хранения данных, полученных из PLC контроллера. Операции также содержат инициирование первого процесса. Первый процесс, как правило, может быть сконфигурирован многократно передавать запрос по одному из определенных адресов PLC контроллера и сохранять возвращенное им в ответ на запрос значение данных в одном из элементов массива разделяемой памяти. Каждый запрос сформирован в соответствии с первым протоколом связи. Данные операции также могут содержать инициирование второго процесса. Второй процесс, как правило, может быть сконфигурирован на получение сформированного в соответствии со вторым протоколом связи запроса одного или нескольких значений данных, хранящихся в массиве разделяемой памяти, осуществления выборки одного или нескольких требуемых значений и их возврата в формате, совместимом со вторым протоколом связи.
Краткое описание чертежей
Для более глубокого понимания характера и целей настоящего изобретения необходимо привести следующее подробное описание вместе с прилагаемыми чертежами, на которых сходным элементам присвоены одинаковые или сходные справочные номера:
Фиг.1 изображает концептуальную схему контролируемого промышленного объекта и центра управления производством, в состав которого входит SCADA система, сконфигурированная для обмена данными с системой преобразования данных PLC контроллера и самим PLC контроллером, в соответствии с вариантом осуществления;
Фиг.2 изображает блок-схему, иллюстрирующую компоненты системы преобразования данных PLC контроллера, сконфигурированной для осуществления процесса преобразования протокола PLC контроллера, в соответствии с вариантом осуществления;
Фиг.3 изображает концептуальную схему массива разделяемой памяти, используемого конвертором протокола PLC контроллера для осуществления связи с PLC контроллером с помощью нужного протокола связи, в соответствии с вариантом осуществления;
Фиг.4 иллюстрирует способ связи конвертора протокола PLC контроллера с PLC контроллером с помощью нужного протокола связи, в соответствии с вариантом осуществления.
Описание предпочтительного варианта осуществления
Варианты осуществления настоящего изобретения представляют систему преобразования протокола PLC контроллера, позволяющую SCADA системе эффективно обмениваться данными с PLC контроллером, используя требуемый протокол связи, особенно в тех случаях, когда PLC контроллер не поддерживает требуемый протокол связи. Система сбора данных и управления (SCADA система) централизует обработку данных и позволяет осуществлять удаленный контроль и управление различными промышленными системами. SCADA система может быть сконфигурирована для сбора данных в режиме реального времени с удаленных объектов для осуществления управления оборудованием и условиями в трубопроводе (например, трубопровод для транспортировки углеводородов или водорода). Например, SCADA система может быть сконфигурирована для отправки PLC контроллеру запроса значений, записанных в адреса памяти, представляющих текущее значение датчика на промышленном объекте или дискретное состояние компонента промышленного объекта. Для того чтобы SCADA система обменивалась данными с PLC контроллером оба устройства должны уметь работать с совместимым протоколом связи.
В одном варианте осуществления в качестве системы преобразования протокола PLC контроллера может выступать компьютер (например, интегрированная система), настроенный для обмена данными как с PLC контроллером, так и со SCADA системой путем выполнения прикладной программы. На практике программа может считывать файл конфигурации, который определяет, какие элементы данных (например, значения памяти, регистров или полей базы данных) необходимо получить из PLC контроллера и набор адресов памяти (например, MODBUS-адреса) для преобразования данных, полученных из PLC контроллера. Полученные данные могут храниться в ячейках массива разделяемой памяти, размещенного в адресах памяти, описанных в файле конфигурации. Файл конфигурации может быть передан на конвертер протокола PLC контроллера с использованием известного протокола связи (например, ftp - протокол передачи файлов).
Кроме того, программа может включать первый процесс, сконфигурированный для непрерывного чтения требуемых адресов PLC контроллера, по одному за раз, используя протокол связи, поддерживаемый PLC контроллером. Например, конвертер протокола PLC контроллера может быть физически подключен к самому PLC контроллеру с помощью последовательного соединения, что позволяет программе посылать запросы для получения информации с помощью протокола последовательной передачи данных, используемого PLC контроллером. В данном варианте осуществления в качестве протокола связи используется известный протокол NITP (Non-Intelligent Terminal Protocol). Первый процесс может хранить значения данных в массиве разделяемой памяти внутри памяти программы. Таким образом, первый процесс представляет данные из PLC контроллера как указано в файле конфигурации.
В то же время, программа может также включать в себя второй процесс, сконфигурированный для предоставления данных из массива разделяемых данных в соответствии со вторым протоколом связи, например, в SCADA систему. К примеру, второй процесс может предоставлять данные из разделяемой памяти с использованием известного протокола TCP-MODBUS в SCADA систему, которая «понимает» протокол TCP-MODBUS. Реализация такой схемы позволяет направлять данные из PLC контроллера в ответ на запросы любого головного устройства MODBUS, получаемые через порт локальной сети, имеющийся в системе преобразования протокола PLC контроллера. Таким образом, на практике система преобразования протокола PLC контроллера выдает себя за сам PLC контроллер для отправки данных в ответ на MODBUS запросы. Далее, если значения данных необходимо добавить (или убрать) из набора, представленного первым процессом, пользователь просто изменяет файл конфигурации, загружает его в систему преобразования протокола PLC контроллера (например, по протоколу ftp) и перезапускает программу (например, с помощью интерфейса диагностики на базе протокола HTTP).
Преимущественно варианты осуществления изобретения могут быть использованы для обеспечения доступа только в режиме чтения к данным любого типа в базе данных PLC контроллера (например, числовым, дискретным и др.) и для обеспечения данных в протоколе, поддерживаемом SCADA системой. Более того, варианты осуществления изобретения не требуют какой-либо настройки самого PLC контроллера либо перезапуска/выключения процессора; могут быть подключены/отключены от PLC контроллера без оказания какого-либо воздействия на него; а также могут быть подключены к SCADA системе (например, через соединение по протоколу TCP) для удаленной настройки, управления и использования.
Для сведения, варианты осуществления изобретения описаны в данном документе применительно к конкретному PLC контроллеру - серия устройств 5х5, поставляемых фирмой Siemens AG, Берлин, Германия. Как известно, серия 5х5 (и в частности, серия 505) представляет собой PLC контроллеры, способные предоставлять данные в ответ на запросы, сформированные с помощью протокола NITP через последовательное соединение RS-232, но при этом не поддерживают (по меньшей мере при отсутствии специальной дополнительной коммуникационной карты) запросы к данным с использованием протокола MODBUS. Далее, как известно, даже при наличии дополнительной коммуникационной карты преобразование данных в протоколе MODBUS, обеспечиваемое коммуникационными картами позволяет получить доступ только части доступных типов данных из базы данных PLC контроллера. Однако серия устройств 5х5 является хорошей иллюстрацией и формула настоящего изобретения не является ограниченной, как могут ее оценить специалисты среднего уровня.
Один вариант осуществления может быть внедрен в виде одной или нескольких программ для использования в компьютерной системе. Программа (программы) содержит инструкции для реализации вариантов осуществления изобретения (включая способы, описанные в данном документе) и может храниться на различных компьютерных носителях. Наглядные примеры компьютерных носителей включают, но не ограничиваются следующими: а) носители для постоянного хранения данных без возможности записи (например, устройства только для чтения данных, такие как CD-ROM и DVD-ROM диски, читаемые соответствующим дисководом), а также б) записываемые носители данных, на которых хранятся изменяющиеся данные (например, дискеты, жесткие диски, устройства флэш-памяти). Другие носители информации включают коммуникационные средства, посредством которых данные попадают в компьютер, такие как компьютерная или телефонная сеть, включая беспроводные сети связи. Последний вариант осуществления включает также передачу данных в/из сети Интернет и других сетей. Такие компьютерные носители, содержащие компьютерные инструкции, реализующие функции настоящего изобретения, представляют варианты осуществления настоящего изобретения.
Более того, содержащееся в данном документе описание ссылается на варианты осуществления изобретения. Однако необходимо понимать, нижеупомянутые варианты осуществления не ограничивают формулу настоящего изобретения. Напротив, любая комбинация отличительных признаков и элементов, относящаяся к другим вариантам осуществления или нет, предполагает реализацию и применение изобретения. Кроме того, в различных вариантах осуществления изобретение обеспечивает многочисленные преимущества по сравнению с известным уровнем техники. Однако хотя варианты осуществления изобретения могут предоставлять преимущества по сравнению с другими возможными решениями и/или известным уровнем техники, реализация конкретного преимущества в данном варианте осуществления не ограничивает формулу изобретения. Таким образом, нижеупомянутые аспекты, свойства, варианты осуществления и преимущества являются наглядными и не считаются элементами или ограничениями прилагаемой формулы изобретения, за исключением случаев, когда они прямо упомянуты в формуле изобретения. Аналогичным образом, ссылка на «изобретение» не будет толковаться как обобщение любого объекта изобретения, описанного в данном документе, и не будет рассматриваться как элемент или ограничение прилагаемой формулы изобретения, за исключением случаев, когда они прямо упомянуты в формуле изобретения.
В общем, выполняемые для реализации вариантов осуществления изобретения программы могут быть частью операционной системы или специального приложения, компонента, программы, модуля, объекта или последовательности инструкций. Также в состав программ переменные и структуры данных, которые хранятся в самой программе или получаются из памяти или из устройств хранения данных. В дополнение, описанные ниже различные программы могут быть определены на основе приложения, для которого они реализованы в конкретном варианте осуществления изобретения. Однако следует учесть, что любая применяемая система наименований конкретных программ используется для удобства, и таким образом формула изобретения не должна ограничиваться использованием исключительно в любом конкретном приложении, определяемом и/или подразумеваемом такой системой наименований.
Фиг.1 изображает концептуальную схему контролируемого промышленного объекта 105 и центра управления производством 130, в состав которого входит SCADA система 135, сконфигурированная для обмена данными с системой преобразования данных PLC контроллера 120 и самим PLC контроллером 115, в соответствии с вариантом осуществления. Как показано на схеме, контролируемый промышленный объект 105 включает группу промышленных установок 110, контроль и управление которыми осуществляет PLC контроллер 115. Группа промышленных установок 110 отражает характерные производственные процессы, контролируемые PLC контроллером 115. Примерами такого промышленного оборудования могут быть криогенные установки разделения воздуха, водоочистные станции, испарители жидких субстанций, установки очистки водорода. Как указано, PLC контроллер 115 представляет собой контроллер с программируемой логикой, настроенный для обмена данными с другими компонентами процесса управления посредством каналов связи, который может использоваться в процессах управления простыми задачами переключения (например, открытие и закрытие клапана), для управления ПИД-регуляторами, комплексной обработкой данных, арифметическими операциями, для управления синхронизацией, технологическим процессом, станком и т.д. В данном варианте осуществления PLC контроллер 115 представляет собой устройство серии 5х5, поставляемое фирмой Siemens AG, Берлин, Германия. Безусловно, в данном случае может использоваться любой PLC контроллер с вышеописанными характеристиками.
В одном варианте осуществления PLC контроллер 115 может отвечать на запросы системы преобразования протокола PLC контроллера 120. Такие запросы могут быть сформированы в соответствии с протоколом связи и передаются по каналу связи, организованному между PLC контроллером 115 и системой преобразования протокола PLC контроллера 120. К примеру, система преобразования протокола PLC контроллера 120 может быть сконфигурирована для обмена данными с PLC контроллером 115 через последовательное соединение (показано стрелкой 117) для передачи запросов (и получения ответов) с использованием протокола NITP.
В то же время, система преобразования протокола PLC контроллера 120 может быть также сконфигурирована для обмена данными со SCADA системой 135 через локальную сеть 137 (показана стрелкой 119). К примеру, SCADA система 135 может предоставлять запросы головного устройства MODBUS системе преобразования протокола PLC контроллера 120, обращаясь к блоку распознаваемых MODBUS адресов. В ответ прикладная программа, выполняемая системой преобразования протокола PLC контроллера 120, может делать выборку значений для запрашиваемых адресов из массива разделяемой памяти и передавать их в SCADA систему 135.
В конкретном варианте осуществления в качестве системы преобразования протокола PLC контроллера 120 применяется интегрированная компьютерная система модели UC-7110, поставляемая компанией Moxa, Inc., в которой используется многопоточная прикладная программа, как подробно описано ниже. Как известно, модель UC-7110 представляет собой готовый к работе компьютер на базе RISC-процессора с двумя последовательными портами и поддержкой двух локальных сетей. Безусловно, варианты осуществления изобретения могут быть адаптированы для использования с другими вычислительными средствами, имеющими вышеописанные характеристики.
В одном варианте осуществления результаты выполнения запроса из SCADA системы 135 передаются в центр управления производством 130. Центр управления производством 130 может использовать несколько компьютерных систем, выполняющих прикладные программы, применяемые для координации, наблюдения и управления операциями на контролируемом промышленном объекте 105. К примеру, центр управления эксплуатацией трубопровода 130 включает SCADA систему 135, базу данных SCADA системы 145, HTTP-сервер 148 и клиентскую систему 170, которые взаимодействуют друг с другом по локальной сети 137. Для сведения, компьютерные системы 135 и 170, изображенные в составе центра управления 130, представляют собой характерные существующие компьютерные системы, например рабочие станции, серверы, ноутбуки, планшетные компьютеры и др. Однако варианты осуществления не ограничивают формулу изобретения использованием какой-либо конкретной компьютерной системы, приложения, устройства, архитектуры или сети, а напротив могут быть адаптированы для использования преимуществ новых компьютерных систем и платформ по мере их появления. Дополнительно, специалист высокого уровня в данной области техники понимает, что изображения компьютерных систем 135, 148 и 170 упрощены для того, чтобы подчеркнуть аспекты настоящего изобретения, и что вычислительные системы и сети обычно включают большое количество компонентов, не изображенных на Фиг.1.
Как указано, SCADA система 135 может быть сконфигурирована для централизации обработки данных различных промышленных процессов и осуществления удаленного контроля и управления контролируемым промышленным объектом 105. К примеру, получаемые SCADA системой 135 данные хранятся в базе данных 145. Далее, приложение для отображения данных 175 может быть настроено на получение из базы данных 145 сведений о настоящем (или предыдущем) состоянии контролируемого промышленного процесса. Как правило, HTTP-сервер 148 настроен для передачи веб-страниц в формате HTML, отображаемых веб-обозревателем (например, приложение для отображения данных SCADA системы 175), где содержимое веб-страниц отображает информацию из базы данных 145 в структурированном виде. Соответственно, клиентская компьютерная система 170 включает в себя веб-обозреватель 175, используемый для отображения информации, полученной от HTTP веб-сервера 148. К сведению, хотя база данных 145 и веб-сервер 148 изображены как отдельные системы специалист среднего уровня в данной области техники понимает, что эти компоненты могут быть организованы и настроены различными способами.
Фиг.2 изображает блок-схему, иллюстрирующую компоненты системы преобразования данных PLC контроллера 120, сконфигурированной для осуществления процесса преобразования протокола PLC контроллера, в соответствии с вариантом осуществления. Как показано, система преобразования данных PLC контроллера 120 включает в себя центральный процессор (ЦП) 215, устройство хранения данных 220, память 230, последовательный порт 205 и порт сети Ethernet 210, каждый из которых подключен к шине 211. В качестве ЦП 215 может быть использован один ЦП, несколько ЦП, один многоядерный ЦП и др. Например, интегрированная система фирмы Moxa включает 32-битный процессор ARM9 с тактовой частотой 192 МГц. Устройство хранения данных 220 обеспечивает область постоянного хранения прикладных программ и данных для использования системой преобразования протокола PLC контроллера 120. Примерами устройства хранения данных 220 являются один или несколько жестких дисков, твердотельные накопители, оптические носители данных и др. К примеру, на схеме устройство хранения данных 220 содержит файл конфигурации 225. В одном варианте осуществления файл конфигурации 225 представляет собой набор значений, разделенных запятыми (CSV), показывающих к каким адресам PLC контроллера необходимо получить доступ посредством системы преобразования протокола PLC контроллера 120 и в какие MODBUS адреса ей необходимо их преобразовать (например, в какой MODBUS адрес).
Память 230 может представлять собой одно устройство или их комбинацию, таких как оперативная память, энергонезависимая или резервная память (например, программируемая или флэш-память). К примеру, в памяти 230 хранится операционная система 260, массив разделяемой памяти 250, приложение конвертора протокола PLC контроллера 235. Операционная система 260 используется для управления аппаратными и программными средствами, выполняемыми в системе преобразования протокола PLC контроллера 120, включая приложение конвертора протокола PLC контроллера 235. Дополнительно, операционная система 260 может включать различные вспомогательные приложения (например, серверный процесс протоколов FTP и HTTP), необходимые для взаимодействия с системой преобразования протокола PLC контроллера 120 и приложением конвертора протокола PLC контроллера 235.
Как показано на схеме, приложение конвертора протокола PLC контроллера 235 включает в себя первый процесс 240 (обозначен как NITP процесс) и второй процесс 245 (обозначен как MODBUS процесс). В одном варианте осуществления первый процесс 240 сконфигурирован многократно считывать адреса PLC контроллера 115, определенные в файле конфигурации 220. Далее, адреса считываются по одному за раз с помощью протокола, поддерживаемого PLC контроллером 115 (например, NITP протокол поддерживается PLC контроллерами серии 505 фирмы Siemens, AG). Первый процесс 240 может сохранять значения данных, полученных из PLC контроллера 115 в массиве разделяемой памяти 250. Таким образом, первый процесс 240 предоставляет данные из PLC контроллера 115, указанные в файле конфигурации 220.
При запуске приложение конвертора протокола PLC контроллера 235 считывает файл конфигурации 220, который описывает требуемые адреса PLC контроллера и MODBUS адреса, в которые их необходимо преобразовать. В одном варианте осуществления считываемая из файла конфигурации 220 информация представляется в формате, необходимом для формирования набора сообщений, используемых первым процессом 240 для получения значений данных из PLC контроллера 115. Например, протокол NITP имеет ограничения по количеству элементов данных, которые могут быть переданы в одном сообщении, поэтому сообщения обычно формируются таким образом, чтобы PLC контроллер 115 не был перегружен запросами данных. Когда сообщения сформированы, первый процесс 240 начинает по одному отправлять их в PLC контроллер 115, каждый раз ожидая ответа перед отправкой следующего сообщения. Данные, полученные на каждый результативный запрос, помещаются в массиве разделяемой памяти 250 для последующего использования вторым процессом 245 приложения конвертора протокола PLC контроллера 235. В одном варианте осуществления первый процесс 240 посылает сообщения постоянно через равные интервалы времени в бесконечном цикле до тех пор, пока не будет получено прерывание на остановку выполнения приложения конвертора протокола PLC контроллера 235.
Второй процесс 245 обычно сконфигурирован для предоставления данных, хранящихся в массиве разделяемой памяти 250, SCADA системе 135. То есть второй процесс 245 обычно сконфигурирован для выполнения функции подчиненного MODBUS устройства, предоставляя значения MODBUS адресов по запросу. К примеру, в одном варианте осуществления второй процесс 245 ожидает управляющего запроса от SCADA системы 135 через соединение по протоколу TCP, установленное через порт сети Ethernet 210, и отправляет в ответ требуемые значения из массива разделяемой памяти 250. Как и первый процесс 240, второй процесс 245 может выполняться в бесконечном цикле, все время находясь в режиме ожидания новых запросов SCADA системы 135 на получение данных до тех пор, пока не будет получено прерывание на остановку выполнения приложения конвертора протокола PLC контроллера 235.
Фиг.3 изображает более подробную схему организации массива разделяемой памяти 250, используемого приложением конвертора протокола PLC контроллера 235, согласно одному варианту осуществления изобретения. Как показано на схеме, массив разделяемой памяти 250 включает в себя набор ячеек для хранения значений числовых данных 335, набор ячеек для хранения значений дискретных данных 340 и набор ячеек для хранения диагностических значений 345. Дополнительно, операции первого процесса 240 (обозначен на схеме как NITP процесс) изображаются на Фиг.3 слева от массива разделяемой памяти 250, а операции второго процесса 245 (обозначен на схеме как MODBUS процесс) изображаются на Фиг.3 справа от массива разделяемой памяти 250. В одном варианте осуществления каждая ячейка для числовых данных 335 и для дискретных данных 340 используется для хранения значений данных, полученных из PLC контроллера 115. Каждой ячейке для числовых данных 335 и для дискретных данных 340 также могут быть поставлены в соответствие MODBUS адреса, что позволяет второму процессу 245 отвечать на запросы SCADA системы 135 по получению значений MODBUS адресов.
В одном варианте осуществления каждая ячейка массива для значений числовых данных использует 4 байта памяти для хранения чисел с плавающей точкой. В значениях числовых данных 335 обычно хранятся результаты измерений параметров промышленного объекта 105, которые могут меняться в непрерывном диапазоне, например, температура, давление, скорость потока и т.д. В значениях дискретных данных 340 обычно хранятся результаты измерений параметров промышленного объекта 105, которые могут принимать целые или булевские значения, например, целочисленный счетчик, отражающий состояния переключателя «включен» или «выключен».
Более наглядно, Фиг.3 изображает адрес «LPV1», адрес «V101» и адрес «LSP3», полученные из PLC контроллера 115, которые хранятся в первых трех ячейках для значений числовых данных 335 массива разделяемой памяти 250. Как показано, адреса «LPV1», «V101» и «LSP3» соответствуют переменной управления циклом 1, переменной общей памяти 101 и заданному значению управления циклом 3 для PLC контроллера серии 505 фирмы Siemens. Далее, в данном примере ячейки массива размещаются в первых трех значениях последовательности MODBUS адресов, начиная с регистра «40000». Как известно, MODBUS адреса разбиты на блоки, где последовательность регистров, начиная с регистра «40000», всегда зарезервирована для хранения числовых данных. В одном варианте осуществления SCADA система 135 может запрашивать любое значение числовых данных 335, посылая сообщение второму процессу 245 через соединение сети Ethernet 210. В ответ второй процесс 245 делает выборку нужных значений из массива разделяемой памяти 250 и передает их в SCADA систему 135 через соединение сети Ethernet 210, как показано стрелкой 320.
Аналогично, Фиг.3 изображает адрес «X1» и адрес «C3», полученные из PLC контроллера 115, которые хранятся в первых двух ячейках для значений дискретных данных 340 массива разделяемой памяти 250. Как показано, адреса «X1» и «C3» соответствуют состоянию 1 переключателя и выходной катушки 3 для PLC контроллера серии 505 фирмы Siemens. Далее, в данном примере ячейки массива размещаются в первых двух значениях последовательности MODBUS адресов, начиная с регистра «10000». Как и в случае со значениями числовых данных 335, SCADA система 135 может запрашивать любое значение дискретных данных 340, посылая сообщение второму процессу 245 через соединение сети Ethernet 210. В ответ второй процесс 245 делает выборку нужных значений из массива разделяемой памяти 250 и передает их в SCADA систему 135 через соединение сети Ethernet 210, как показано стрелкой 325.
В одном варианте осуществления в дополнение к получению значений данных из PLC контроллера 115 первый процесс 240 также может быть сконфигурирован записывать информацию ячейки массива разделяемой памяти 250, зарезервированные для диагностических значений 345. Например, Фиг.3 изображает ячейки массива, зарегистрированные для такой диагностической информации как дата, время, общее состояние и т.д. Диагностические значения 345 удобны для записи информации, относящейся к рабочему состоянию приложения конвертора протокола PLC контроллера 235 и/или системы преобразования данных PLC контроллера 120. Как и значения адресов PLC контроллера, SCADA система 135 может отправлять запрос на получение диагностических значений 345 второму процессу 245. В ответ второй процесс 245 делает выборку нужных значений из массива разделяемой памяти 250 и передает их в SCADA систему 135 через соединение сети Ethernet 210, как показано стрелкой 330.
Фиг.4 иллюстрирует способ 400, с помощью которого приложение конвертора протокола PLC контроллера 235 обменивается данными с PLC контроллером 115, используя нужный протокол связи, в соответствии с одним вариантом осуществления изобретения. В одном варианте осуществления способ 400 может быть реализован посредством применения приложения конвертора протокола PLC контроллера 235 для обмена данными с PLC контроллером 115 (например, PLC контроллер серии 505 фирмы Siemens, AG) и со SCADA системой 135, как описано выше. Однако средний специалист в данной области техники понимает, что примеры конкретного оборудования, программного обеспечения и средств, использованные в данном тексте в качестве примера, как и другие типы аналогичных объектов могут быть использованы, не выходя за рамки настоящего изобретения.
Как показано на схеме, способ 400 начинается с шага 405, где начинается выполнение приложения конвертора протокола PLC контроллера 235. В одном варианте осуществления приложение считывает файл конфигурации 220 и создает массив разделяемой памяти 250. Первоначально массив 250 включает ячейки для значений числовых данных 335, значений дискретных данных 340 и диагностических данных 345, как указано в файле конфигурации 220, но без каких-либо конкретных значений в элементах массива. На шаге 410 приложение конвертора протокола PLC контроллера 235 запускает первый процесс 240 и второй процесс 245. Операции, выполняемые первым процессом 240, описаны со ссылкой на шаги 410-435, а операции, выполняемые вторым процессом 245, описаны со ссылкой на шаги 445-465.
На шаге 415 первый процесс 240 устанавливает соединение с PLC контроллером 115. Например, как описано выше, последовательное подключение RS-232 может быть установлено с PLC контроллером серии 505 фирмы Siemens, AG. Шаги 420-435 представляют собой цикл, выполняемый первым процессом 240 до тех пор, пока выполняется приложение конвертора протокола PLC контроллера 235. На шаге 420 первый процесс 240 определяет следующее значение данных, которое необходимо запросить у PLC контроллера 115. Например, первый процесс 240 может содержать индекс, указывающий на последнее измененное значение в массиве разделяемой памяти 250. В этом случае первый процесс 240 просто переходит к следующему значению индекса в каждый проход шагов 420-435 в рамках цикла. На шаге 425 первый процесс 240 отправляет сообщение PLC контроллеру 115 с запросом по адресу PLC контроллера, определенному на шаге 420. Например, как описано выше, сообщение, сформированное с помощью протокола NITP, отправляется PLC контроллеру серии 505 фирмы Siemens, AG. Когда ответ получен, переданное из PLC контроллера 115 значение сохраняется в соответствующей позиции массива разделяемой памяти 250 (шаг 430). На шаге 435 первый процесс 240 определяет, получена ли команда прекращения выполнения (например, через прерывание). Однако до тех пор, пока выполняется приложение конвертора протокола PLC контроллера 235, первый процесс 240 продолжает считывать нужные адреса PLC контроллера, по одному за раз.
В одном варианте осуществления второй процесс 245 отвечает на запросы SCADA системы 135 о получении значений из массива разделяемой памяти 250, в то время как они обновляются первым процессом 240. На шаге 445 второй процесс устанавливает соединение со SCADA системой 135. Например, как описано выше, приложение конвертора протокола PLC контроллера 235 может быть сконфигурировано на установление соединения со SCADA системой 135 по протоколу TCP, позволяя второму процессу 245 выступать в роли подчиненного MODBUS устройства. Шаги 450-460 представляют собой цикл, выполняемый вторым процессом 245 до тех пор, пока выполняется приложение конвертора протокола PLC контроллера 235. На шаге 450 второй процесс 245 получает запрос на выборку диапазона значений из массива разделяемой памяти 250. В одном варианте осуществления запрос может быть сформирован запрос по протоколу MODBUS на получение диапазона MODBUS адресов. На шаге 445 второй процесс 245 осуществляет выборку запрашиваемых значений из массива разделяемой памяти 250, а на шаге 450 передает запрошенные данные в SCADA систему в соответствующем формате (например, формат MODBUS). На шаге 465 второй процесс 245 определяет, получена ли команда прекращения выполнения (например, через прерывание). Однако до тех пор, пока выполняется приложение конвертора протокола PLC контроллера 235, второй процесс 245 находится в режиме ожидания и продолжает отвечать на запросы по получению информации из массива разделяемой памяти 250.
Преимущественно варианты осуществления изобретения обеспечивают систему преобразования данных PLC контроллера, позволяющую SCADA системе эффективно обмениваться данными с PLC контроллером, используя требуемый протокол связи, особенно в тех случаях, когда PLC контроллер не поддерживает требуемый протокол связи. Как описано выше, варианты осуществления изобретения могут быть использованы для обеспечения организации доступа только в режиме чтения к любым типам данных из базы данных PLC контроллера (например, числовых, дискретных и др.), а также для предоставления данных с использованием протокола связи, поддерживаемого SCADA системой. Более того, варианты осуществления изобретения не требуют осуществлять какую-либо настройку самого PLC контроллера либо перезапуска/выключения процессора; могут быть подключены/отключены от PLC контроллера без оказания какого-либо воздействия на него; а также могут быть подключены к SCADA системе (например, через соединение по протоколу TCP) для удаленной настройки, управления и использования.
В данном документе были описаны предпочтительные способы и средства практической реализации данного изобретения. Специалисту в данной области понятно и совершенно очевидно, что в вышеописанные варианты осуществления могут быть внесены многие изменения и усовершенствования, не выходя за пределы сущности и объема настоящего изобретения. Вышеописанные варианты осуществления являются только иллюстративными и любые другие варианты осуществления описанных способов и средств могут быть применены, не выходя за пределы объема изобретения, описанного в нижеследующей формуле изобретения.