Способ организации хранения данных на узлах сети с передачей данных между узлами сети с предсказуемой загрузкой узлов сети для систем реального времени
METHOD OF ORGANIZING DATA STORAGE ON NETWORK NODES WITH DATA TRANSMISSION BETWEEN NETWORK NODES WITH PREDICTABLE LOADING OF NETWORK NODES FOR REAL-TIME SYSTEMS

ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к области программирования и электротехники, а также к области организации хранения и обработки данных на узлах сети, а также обмена данными между узлами сети для различных применений, в том числе, специальных применений.
УРОВЕНЬ ТЕХНИКИ
Из уровня техники известен способ организации хранения связанных данных (см. RU 2621628, опубл. 06.06.2017), в котором: объединяют записи в по крайней мере одну группу по схожему признаку; присваивают идентификатор каждой вышеуказанной группе и каждой записи, находящейся в данной группе; формируют связь идентификатора группы с адресом его расположения на запоминающем устройстве таким образом, что перемещение группы на запоминающем устройстве, а также между запоминающими устройствами не изменяет значение идентификатора группы; формируют связь идентификатора записи с адресом ее расположения внутри группы на запоминающем устройстве таким образом, что перемещение записи на запоминающем устройстве внутри группы не изменяет идентификатор записи; сохраняют записи одной группы на запоминающем устройстве в смежных областях.
Способ и система внешнего хранения данных (RU2383952, опубл. 10.03.2010), где способ обеспечения внешнего хранения данных в системе, включающей в себя первичное устройство обработки данных, имеющее первичное устройство хранения данных и процессор, выполненное с возможностью обработки активных записей в процессоре и сконфигурированное для хранения данных, принадлежащих активным записям, в первичном устройстве хранения данных; и вторичную систему хранения данных, доступную первичному устройству обработки данных, при этом согласно способу данные, принадлежащие активной записи, сохраняют в первичном устройстве хранения данных и экспортируют эту запись посредством переноса по меньшей мере порции данных, принадлежащих данной записи, во вторичную систему хранения данных для хранения, причем этап экспортирования записи включает в себя этап, на котором принимают по меньшей мере один вызов, инициированный прикладной программой, использующей данные, принадлежащие упомянутой записи, посредством интерфейса прикладного программирования, выполненного с возможностью посылки порции данных во вторичную систему хранения данных. Первичное устройство обработки данных, имеющее первичное устройство хранения данных и процессор, выполненное с возможностью обработки активных записей в процессоре и сконфигурированное для хранения данных, принадлежащих активной записи, в первичном устройстве хранения данных, при этом процессор выполнен с возможностью: сохранять в первичном устройстве хранения данных данные, принадлежащие активной записи, принимать по меньшей мере один вызов, инициированный прикладной программой, использующей данные, принадлежащие этой записи, посредством интерфейса прикладного программирования, выполненного с возможностью посылки порции данных во вторичную систему хранения данных, для экспортирования данной записи, и экспортировать упомянутую запись посредством переноса по меньшей мере порции данных, принадлежащих этой записи, во вторичную систему хранения данных для хранения. Первичное устройство обработки данных, имеющее первичное устройство хранения данных и процессор, выполненное с возможностью обработки активных записей в процессоре и сконфигурированное для хранения данных, принадлежащих активной записи, в первичном устройстве хранения данных, при этом процессор выполнен с возможностью: загружать данные, принадлежащие упомянутой записи, из вторичной системы хранения данных в первичное устройство хранения данных, принимать по меньшей мере один вызов, инициированный прикладной программой, использующей данные, принадлежащие этой записи, посредством интерфейса прикладного программирования, выполненного с возможностью извлечения порции данных из вторичной системы хранения данных, и импортировать упомянутую запись посредством извлечения по меньшей мере порции данных, принадлежащих данной записи, из вторичной системы хранения данных. Первичное устройство обработки данных, имеющее первичное устройство хранения данных и процессор, выполненное с возможностью обработки активных записей в процессоре и сконфигурированное для хранения данных, принадлежащих активной записи, в первичном устройстве хранения данных, при этом процессор выполнен с возможностью: загружать данные, принадлежащие активной записи, в первичное устройство хранения данных, экспортировать эту запись посредством переноса по меньшей мере порции данных, принадлежащих данной записи, во вторичную систему хранения данных для хранения, загружать данные, принадлежащие активной записи, в первичное устройство хранения данных и сохранять информацию, отражающую счет версии для экспортированной записи, и увеличивать счет версии перед экспортированием записи. Первичное устройство обработки данных, имеющее первичное устройство хранения данных и процессор, выполненное с возможностью обработки активных записей в процессоре и сконфигурированное для хранения данных, принадлежащих активной записи, в первичном устройстве хранения данных, при этом процессор выполнен с возможностью: извлекать из вторичной системы хранения данных по меньшей мере один сегмент данных, включающий в себя данные, соответствующие по меньшей мере ассоциированной части порции данных, принимать сегмент данных, включающий в себя информацию, отражающую счет версии для экспортированной записи, и сравнивать счет версии с опорным счетом версии.
Из уровня техники также известно управление пакетной передачей данных (см. US7283474B1, опубл. 16.10.2007), причем система и способ передачи пакетных данных включают передачу пакетов данных передатчиком на приемник посредством соединения через сетевой элемент, причем приемник подтверждает получение каждого полученного пакета данных подтверждающим сообщением, содержащим данные заголовка, которые содержат размер окна и количество переданных байт, для которого передатчик не получил уведомление от передатчика, который не может получать данные при превышении размера окна, а также включает в указанном сетевом элементе буферизацию пакетов данных, переданных передатчиком в приемник и получение в сетевом элементе подтверждающего сообщения от приемника передатчику, а также включает определение условий передачи, содержащих условия буферизации пакетов данных в указанном сетевом элементе, и модифицирование поля, указывающего размер окна, включенного в подтверждающее сообщение в соответствии с условиями передачи.
Из уровня техники известны способ и система передачи данных (см. RU2469482, опубл. 10.12.2012), причем способ передачи данных в сети передачи данных, включает: передачу пакета данных от передатчика приемнику, если пакет данных неправильно принят в приемнике, передачу запроса повторной передачи от приемника передатчику, после приема повторного запроса в передатчике повторную передачу пакета данных от передатчика приемнику, после приема в передатчике заранее заданного числа запросов повторной передачи, запрашивающих повторную передачу пакета данных, передачу заранее заданного количества дубликатов пакета данных от передатчика приемнику, причем указанное заранее заданное количество дубликатов пакета данных включает по меньшей мере два дубликата, при этом указанное заранее заданное количество дубликатов пакета данных определяют на основании характеристики приемника, указывающей максимальное число повторно передаваемых блоков данных, которые могут быть одновременно обработаны приемником, а система для передачи данных в сети передачи данных включает: средства передачи пакета данных от передатчика приемнику, средства передачи запроса повторной передачи от приемника передатчику, если пакет данных неправильно принят в приемнике, средства повторной передачи пакета данных от передатчика приемнику после приема запроса повторной передачи в передатчике, средства передачи заранее заданного количества дубликатов пакета данных от передатчика приемнику после приема в передатчике заранее заданного числа запросов повторной передачи, запрашивающих повторную передачу пакета данных, причем указанное заранее заданное количество дубликатов включает по меньшей мере два дубликата, при этом указанные средства определяют указанное заранее заданное количество дубликатов пакета данных, который должен быть передан, на основании характеристики приемника, указывающей максимальное число повторно передаваемых блоков данных, которые могут быть одновременно обработаны приемником.
Недостатками упомянутых решений, является, по крайней мере, отсутствие задания такта работы вычислительного устройства (ВУ), равного периодичности получения данных от объекта управления, сохранения на вычислительном устройстве полученных от объектов управления наборов данных в разделяемой оперативной памяти ВУ в массиве кольцевых буферов, обновления данных в массиве кольцевых буферов каждый такт работы ВУ, сохранения на устройстве долговременной памяти изменившихся с предыдущего такта работы ВУ данные, сохранения с периодом один раз в несколько десятков тактов работы ВУ всех данных на конец такта работы ВУ, накопления данных, изменившихся с предыдущего такта работы ВУ, в массиве кольцевых буферов в оперативной памяти ВУ, передачи данных реального времени последнего такта работы ВУ в вычислительную сеть из массивов кольцевых буферов каждый такт работы ВУ или реже, причем при передаче изменившихся данных такт передачи равен такту работы ВУ, а также при передаче изменившихся данных один раз с периодом в несколько десятков тактов работы ВУ, если задано при конфигурировании, передаются все указанные к передаче данные, где передача текущих данных, осуществляется пакетами протоколов нижнего уровня, обеспечивающих передачу без подтверждения и без образования канала связи, причем пакет является широковещательным, мульти вещательным или с указанием конкретного адреса приемного узла сети и указывается один из обобщающих признаков: номер порта UDP стека TCP/IP или сокет IPX стека IPX/SPX, причем такой признак задает виртуальный массив кольцевых буферов и в передаваемом пакете передаются адреса в виртуальный массив кольцевых буферов содержащихся в пакете текущих данных, причем переданные пакеты принимаются узлом сети, на котором конфигурированием задан прием пакетов,, причем данные реального времени, изменившиеся с предыдущего такта работы вычислительного устройства, которые были накоплены в массиве кольцевых буферов в оперативной памяти и сжаты с использованием одного из известных алгоритмов сжатия данных, после чего сохранены на устройстве долговременной памяти, также на том же такте передаются в вычислительную сеть пакетами протоколов нижнего уровня, получения и сохранения переданных в вычислительную сеть пакетов со сжатыми архивированными данными другого узла сети узлом сети на устройстве долговременной памяти, причем одновременно с приемом сжатых данных, периодически посылаемых с передающего узла сети, принимающим узлом сети анализируется полученная с такими данными информация о наличии сжатых архивных данных на передающем узле сети и узлом сети сравнивается с сохраненными на принимающем узле сети, и при обнаружении недостающих данных принимающий узел сети посылает UDP-пакет на посылающий узел сети со списком недостающих сжатых архивированных данных, и в ответ посылающий узел сети наряду с периодически посылаемыми сжатыми архивными данными на принимающий узел сети, с которого пришел запрос, досылаются UDP-пакеты с запрошенными недостающими данными, равномерно распределенные по нескольким периодам передачи.
Предлагаемое изобретение позволяет преодолеть, по крайней мере, часть вышеуказанных недостатков или все указанные недостатки, а также реализовать преимущества настоящего изобретения, согласно описанию настоящего изобретения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Настоящее изобретение предназначено для устранения указанного и других недостатков уровня техники. Техническим результатом является повышение эффективности и надежности хранения и обработки данных на вычислительных устройствах, в том числе являющихся узлами сети, а также обмена данными между вычислительными устройствами, объединенными в вычислительную сеть, в реальном времени с предсказуемой загрузкой узлов сети, а также снижение нагрузки на узлы сети при хранении, обработки, передаче и получении данных и на вычислительную сеть, связывающую узлы сети, при обмене данными, в том числе уменьшение объема данных, передаваемых между узлами сети, обрабатываемых узлами сети и хранящихся на узлах сети.
Для достижения указанного технического результата в способе организации хранения данных на узлах сети с передачей данных между узлами сети с предсказуемой загрузкой узлов сети для систем реального времени на каждом вычислительном устройстве, связанным, по крайней мере, с одним объектом управления, задают такт работы вычислительного устройства, равный периодичности получения данных от объекта управления; получают, по крайней мере, на одном объекте управления набор данных реального времени, содержащий измеренные величины от измерительных преобразователей датчиков параметров объекта управления, и/или рассчитанные на их основе величины, включая побитно упакованные в отдельный байт - байт статуса - результаты проверки достоверности измеренных или рассчитанных величин и сравнения их с порогами - уставками, и/или величины, введенные вручную, и/или полученные другим известным способом, и передают такой набор полученных данных, по крайней мере, на одно вычислительное устройство; каждый такт работы вычислительного устройства сохраняют на вычислительном устройстве полученный набор данных в разделяемой оперативной памяти вычислительного устройства в массиве кольцевых буферов, причем массив кольцевых буферов содержит, по крайней мере, два набора значений, где первый набор значений содержит набор данных, полученный вычислительным устройством за последний такт работы вычислительного устройства, а второй набор значений, содержит набор данных, полученных вычислительным устройством за предпоследний такт работы вычислительного устройства, причем данные в массиве кольцевых буферов обновляются вычислительным устройством каждый такт работы вычислительного устройства; сохраняют на устройстве долговременной памяти изменившиеся с предыдущего такта работы вычислительного устройства данные, содержащиеся в полученном наборе данных, причем с периодом один раз в несколько десятков тактов работы вычислительного устройства сохраняют все данные на конец такта работы вычислительного устройства, а также сохраняют данные ручного ввода оператора и/или данные, рассчитанные на основе архивных данных реального времени, сохраненных в оперативной памяти вычислительного устройства и на устройстве долговременной памяти, включающие плановые показатели на будущее время; упомянутые выше данные, изменившиеся с предыдущего такта работы вычислительного устройства, накапливаются в массиве кольцевых буферов в оперативной памяти вычислительного устройства, который на такте работы вычислительного устройства, на котором сохраняются все данные и включая их, сжимаются с использованием одного из известных алгоритмов сжатия данных, включая, но не ограничиваясь, алгоритмы архивирования данных, и сохраняются на устройство долговременной памяти; по крайней мере, одно вычислительное устройство связано, по крайней мере, с одним другим вычислительным устройством, причем такие вычислительные устройства объединены в вычислительную сеть и являются узлами сети; данные реального времени последнего такта работы вычислительного устройства передаются в вычислительную сеть вычислительным устройством из массивов кольцевых буферов - базы текущих данных - каждый такт работы вычислительного устройства или реже, причем упомянутые данные передаются все или выбранные по перечню, в том числе заданному перечислением или диапазоном номеров в массиве, и такие данные передаются в полном объеме или только изменившиеся с предыдущего такта работы вычислительного устройства, причем при передаче изменившихся данных такт передачи равен такту работы вычислительного устройства, а также при передаче изменившихся данных один раз с периодом в несколько десятков тактов работы вычислительного устройства, если задано при конфигурировании, передаются все указанные к передаче данные, где передача текущих данных осуществляется пакетами протоколов нижнего уровня, обеспечивающих передачу без подтверждения и без образования канала связи, причем пакет является широковещательным, мульти вещательным или с указанием конкретного адреса приемного узла сети, и указывается один из обобщающих признаков: номер порта UDP стека TCP/IP или сокет IPX стека IPX/SPX, причем такой признак задает виртуальный массив кольцевых буферов - виртуальную базу данных, и в передаваемом пакете передаются адреса в виртуальном массиве кольцевых буферов содержащихся в пакете текущих данных, причем переданные пакеты принимаются узлом сети, на котором конфигурированием задан прием пакетов, имеющих указанный обобщающий признак, причем для такого обобщающего признака на принимающем узле сети указывается также соответствие адреса данных в виртуальной базе адресам в базе текущих данных принимающего узла, в соответствии с которыми данные из принятого пакета записываются в массив кольцевых буферов текущих данных принимающего узла - базу текущих данных; данные реального времени, изменившиеся с предыдущего такта работы вычислительного устройства, которые были накоплены в массиве кольцевых буферов в оперативной памяти и сжаты с использованием одного из известных алгоритмов сжатия данных, после чего сохранены на устройстве долговременной памяти, также на том же такте передаются в вычислительную сеть пакетами протоколов нижнего уровня, обеспечивающих передачу без подтверждения и без образования канала связи, UDP стека TCP/IP или IPX стека IPX/SPX, причем в пределах периода передача сжатых данных повторяется не менее одного раза и в месте с упомянутыми сжатыми данными в первом такте передаются данные о присутствующих на узле сжатых данных с момента их записи на таком узле сети; переданные в вычислительную сеть пакеты со сжатыми архивированными данными другого узла сети принимаются узлом сети и сохраняются на устройство долговременной памяти в раздел или каталог, заданный конфигурированием узла сети под данные передающего узла сети; одновременно с приемом сжатых данных, периодически посылаемых с передающего узла сети, принимающим узлом сети анализируется полученная с такими данными информация о наличии сжатых архивных данных на передающем узле сети и узлом сети сравнивается с сохраненными на принимающем узле сети, и при обнаружении недостающих данных принимающий узел сети посылает UDP- пакет на посылающий узел сети со списком недостающих сжатых архивированных данных, и в ответ посылающий узел сети наряду с периодически посылаемыми сжатыми архивными данными на принимающий узел сети, с которого пришел запрос, досылает UDP-пакеты с запрошенными недостающими данными, равномерно распределенные по нескольким периодам передачи, причем в первом пакете такой передачи передается таблица распределения пакетов с недостающим данными по периодам передачи и после окончания последнего периода, указанного в упомянутой таблице, принимающим узлом сети осуществляется проверка полноты сжатых архивированных данных и, при их неполноте по сравнению с передающим узлом сети, принимающим узлом сети выдается повторный запрос на передающий узел сети о досылке данных.
В частном случае такт работы вычислительного устройства определяется инерционностью одного или нескольких объектов управления, связанных с вычислительным устройством, при этом такт работы вычислительного устройства задается оператором или автоматически вычислительным устройством в три-четыре раза меньше постоянной времени объекта управления, имеющего наименьшую инерционность.
В частном случае устройством долговременного хранения является накопитель на жестком магнитном диске или флэш-память.
В частном случае вычислительное устройство или объект управления получает данные от измерительных преобразователей датчиков параметров объекта путем перерасчета измеренных величин, включая рассчитанные управляющие воздействия, с использованием коэффициентов расчетных алгоритмов для данных, содержащихся в наборах данных.
В частном случае вычислительное устройство сравнивает данные в полученном наборе данных за последний такт работы вычислительного устройства с сохраненными данными за предыдущий такт работы вычислительного устройства для определения изменившихся данных с предыдущего такта работы вычислительного устройства.
В частном случае объект управления передает на вычислительное устройство только изменившиеся данные с предыдущего такта работы вычислительного устройства.
В частном случае при наступлении времени значения планового показателя, это значение записывается в текущее значение одного или нескольких элементов массива текущих данных в разделяемой памяти.
В частном случае данные реального времени передаются в вычислительную сеть, по крайней мере, на одно вычислительное устройство, являющееся узлом сети вычислительной сети, если задано конфигурированием узла сети.
В частном случае конфигурированием с использованием списка задается фильтр адресов узлов, от которых принимаются пакеты принимающим узлом, причем пакеты принимаются только от узлов, указанных в данном списке, чем повышается безопасность системы от возможности несанкционированного или ошибочного воздействия.
В частном случае на узле сети сконфигурирована передача и прием пакетов по одному или нескольким обобщающим признакам.
В частном случае вычислительное устройство сравнивает полученные данные с сохраненными данными для определения изменившихся данных или вычислительное устройство получает изменившиеся данные с объекта управления, причем устройство управления определяет изменившиеся данные.
В частном случае данные реального времени, изменившиеся с предыдущего такта работы вычислительного устройства, которые были накоплены в массиве кольцевых буферов в оперативной памяти и сжаты с использованием одного из известных алгоритмов сжатия данных, после чего сохранены на устройстве долговременной памяти, также на том же такте передаются в вычислительную сеть пакетами протоколов нижнего уровня, если задано конфигурированием узла сети.
В частном случае на узле сети сконфигурирована передача пакетов сжатых архивных данных на несколько узлов сети и прием сжатых архивных данных от нескольких узлов сети.
Технический результат также достигается тем, что система для организации хранения данных на узлах сети с передачей данных между узлами сети с предсказуемой загрузкой узлов сети для систем реального времени, которая включает: вычислительные устройства, связанные с объектами управления, причем на каждом вычислительном устройстве задают такт работы такого вычислительного устройства, не больший периодичности получения данных от каждого из объектов управления, причем вычислительные устройства включены в вычислительную сеть и являются узлами такой вычислительной сети; объекты управления, на которых получают наборы данных реального времени, содержащие измеренные величины от измерительных преобразователей датчиков параметров объекта управления, и/или рассчитанные на их основе величины, включая побитно упакованные в отдельный байт - байт статуса - результаты проверки достоверности измеренных или рассчитанных величин и сравнения их с порогами - уставками, и/или величины, введенные вручную, и/или полученные другим известным способом и передают такой набор полученных данных на вычислительные устройства; разделяемую оперативную память для каждого из вычислительных устройств, в которую для каждого вычислительного устройства каждый такт работы вычислительного устройства сохраняют в массиве кольцевых буферов, причем массив кольцевых буферов содержит, по крайней мере, два набора значений, где первый набор значений содержит набор данных, полученный вычислительным устройством за последний такт работы вычислительного устройства, а второй набор значений, содержит набор данных, полученных вычислительным устройством за предпоследний такт работы вычислительного устройства, причем данные в массиве кольцевых буферов обновляются вычислительным устройством каждый такт работы вычислительного устройства; устройство долговременной памяти для каждого вычислительного устройства, в которой сохраняют изменившиеся с предыдущего такта работы вычислительного устройства данные, содержащиеся в полученном наборе данных, причем с периодом один раз в несколько десятков тактов работы вычислительного устройства сохраняют все данные на конец такта работы вычислительного устройства, а также сохраняют данные ручного ввода оператора и/или данные, рассчитанные на основе архивных данных реального времени, сохраненных в оперативной памяти вычислительного устройства и на устройстве долговременной памяти, включающие плановые показатели на будущее время, а также на устройстве долговременной памяти сохраняются упомянутые выше данные, изменившиеся с предыдущего такта работы вычислительного устройства, накапливаются в массиве кольцевых буферов в оперативной памяти вычислительного устройства, который на такте работы вычислительного устройства, на котором сохраняются все данные и включая их, сжимаются с использованием одного из известных алгоритмов сжатия данных, включая, но не ограничиваясь, алгоритмы архивирования данных; коммуникационный модуль, выделенный аппаратно или только программно, осуществляющий передачу данных реального времени последнего такта работы вычислительного устройства в вычислительную сеть из массивов кольцевых буферов каждый такт работы вычислительного устройства или реже, причем упомянутые данные передаются все или выбранные по перечню, в том числе заданному перечислением или диапазоном номеров в массиве, и такие данные передаются в полном объеме или только изменившиеся с предыдущего такта работы вычислительного устройства, причем при передаче изменившихся данных такт передачи равен такту работы вычислительного устройства, а также при передаче изменившихся данных один раз с периодом в несколько десятков тактов работы вычислительного устройства, если задано при конфигурировании, передаются все указанные к передаче данные, где передача текущих данных, осуществляется пакетами протоколов нижнего уровня, обеспечивающих передачу без подтверждения и без образования канала связи, причем пакет является широковещательным, мульти вещательным или с указанием конкретного адреса приемного узла сети и указывается один из обобщающих признаков: номер порта UDP стека TCP/IP или сокет IPX стека IPX/SPX, причем такой признак задает виртуальный массив кольцевых буферов и в передаваемом пакете передаются адреса в виртуальном массиве кольцевых буферов содержащихся в пакете текущих данных, причем переданные пакеты принимаются узлом сети, на котором конфигурированием задан прием пакетов, имеющих указанный обобщающий признак, причем для такого обобщающего признака на принимающем узле сети указывается также соответствие адреса данных в виртуальной базе адресам в базе текущих данных принимающего узла, в соответствии с которыми данные из принятого пакета записываются в массив кольцевых буферов текущих данных принимающего узла и данные реального времени, изменившиеся с предыдущего такта работы вычислительного устройства, которые были накоплены в массиве кольцевых буферов в оперативной памяти и сжаты с использованием одного из известных алгоритмов сжатия данных, после чего сохранены на устройстве долговременной памяти, также на том же такте передаются в вычислительную сеть пакетами протоколов нижнего уровня, обеспечивающих передачу без подтверждения и без образования канала связи, UDP стека TCP/IP или IPX стека IPX/SPX, причем в пределах периода передача сжатых данных повторяется не менее одного раза и в месте с упомянутыми сжатыми данными в первом такте передаются данные о присутствующих на узле сжатых данных с момента их записи на таком узле сети; и - переданные в вычислительную сеть пакеты со сжатыми архивированными данными другого узла сети принимаются узлом сети и сохраняются на устройство долговременной памяти в раздел или каталог, заданный конфигурированием узла сети под данные передающего узла сети; где одновременно с приемом сжатых данных, периодически посылаемых коммуникационным модулем с передающего узла сети, принимающим узлом сети анализируется полученная коммуникационным модулем с такими данными информация о наличии сжатых архивных данных на передающем узле сети и узлом сети сравнивается с сохраненными на принимающем узле сети, и при обнаружении недостающих данных принимающий узел сети посылает UDP- пакет на посылающий узел сети со списком недостающих сжатых архивированных данных, и в ответ посылающий узел сети наряду с периодически посылаемыми сжатыми архивными данными на принимающий узел сети, с которого пришел запрос, досылает UDP-пакеты с запрошенными недостающими данными, равномерно распределенные по нескольким периодам передачи, причем в первом пакете такой передачи передается таблица распределения пакетов с недостающим данными по периодам передачи и после окончания последнего периода, указанного в упомянутой таблице, принимающим узлом сети осуществляется проверка полноты сжатых архивированных данных и, при их неполноте по сравнению с передающим узлом сети, принимающим узлом сети выдается повторный запрос на передающий узел сети о досылке данных.
В частном случае, система содержит связанные с объектами управления модули сбора данных, которые передают наборы данных реального времени от измерительных преобразователей датчиков параметров объекта управления на объекты управления.
В частном случае, в системе такт работы вычислительного устройства определяется инерционностью одного или нескольких объектов управления, связанных с вычислительным устройством, при этом такт работы вычислительного устройства задается оператором или автоматически вычислительным устройством в три-четыре раза меньше постоянной времени объекта управления, имеющего наименьшую инерционность.
В частном случае, в системе устройством долговременного хранения является накопитель на жестком магнитном диске или флэш-память.
В частном случае, в системе вычислительное устройство или объект управления получает данные от измерительных преобразователей датчиков параметров объекта путем перерасчета измеренных величин, включая рассчитанные управляющие воздействия, с использованием коэффициентов расчетных алгоритмов для данных, содержащихся в наборах данных.
В частном случае, в системе вычислительное устройство сравнивает данные в полученном наборе данных за последний такт работы вычислительного устройства с сохраненными данными за предыдущий такт работы вычислительного устройства для определения изменившихся данных с предыдущего такта работы вычислительного устройства.
В частном случае, в системе объект управления передает на вычислительное устройство только изменившиеся данные с предыдущего такта работы вычислительного устройства.
В частном случае, в системе при наступлении времени значения планового показателя, оно записывается в текущее значение одного или нескольких элементов массива текущих данных в разделяемой памяти.
В частном случае, в системе данные реального времени передаются в вычислительную сеть, по крайней мере, на одно вычислительное устройство, являющееся узлом сети вычислительной сети, если задано конфигурированием узла сети.
В частном случае, в системе конфигурированием задается фильтр адресов узлов, от которых принимаются пакеты принимающим узлом.
В частном случае, в системе на узле сети сконфигурирована передача и прием пакетов по одному или нескольким обобщающим признакам.
В частном случае, в системе вычислительное устройство сравнивает полученные данные с сохраненными данными для определения изменившихся данных, или вычислительное устройство получает изменившиеся данные с объекта управления, причем устройство управления определяет изменившиеся данные.
В частном случае, в системе данные реального времени, изменившиеся с предыдущего такта работы вычислительного устройства, которые были накоплены в массиве кольцевых буферов в оперативной памяти и сжаты с использованием одного из известных алгоритмов сжатия данных, после чего сохранены на устройстве долговременной памяти, также на том же такте передаются в вычислительную сеть пакетами протоколов нижнего уровня, если задано конфигурированием узла сети.
В частном случае, в системе на узле сети сконфигурирована передача пакетов сжатых архивных данных на несколько узлов сети и прием сжатых архивных данных от нескольких узлов сети.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Дополнительные цели, признаки и преимущества настоящего технического решения будут понятны из прочтения последующего описания осуществления технического решения со ссылкой на прилагаемые чертежи, на которых:
ФИГ. 1 иллюстрирует примерный вариант общего вида предложенной системы, реализующей предложенный способ;
ФИГ. 2 иллюстрирует один из вариантов связи между узлами сети;
ФИГ. 3 иллюстрирует примерный вариант узла сети, обменивающегося данными с другим узлом сети;
ФИГ. 4 иллюстрирует вариант передачи данных с одного узла сети на другой узел сети предложенной системы;
ФИГ. 5 иллюстрирует примерный вариант описываемой системы с подключенными к узлу сети исполнительными устройствами.
ФИГ. 6 иллюстрирует примерный вариант назначения номеров соответствия данных, сохраненных на передающем узле сети, в виртуальной базе данных и на принимающем узле сети;
ФИГ. 7 иллюстрирует таблицу соответствия номеров параметров передающего узла сети номерам параметров виртуальной базы данных.
ФИГ. 8 иллюстрирует таблицу соответствия номеров параметров виртуальной БД номерам параметров принимающего узла сети.
ПОДРОБНОЕ ОПИСАНИЕ
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.
В частном случае, используемые в настоящем описании изобретении термины «компонент», «элемент», «секция», «модуль», «часть», «блок», «составная часть», «средство» и подобные, используются для обозначения компьютерных сущностей (например, объектов, связанных с компьютером, вычислительных сущностей), которые могут являться аппаратным обеспечением, в частности, оборудованием (например, устройством, инструментом, аппаратом, аппаратурой, частью устройства, в том числе, но не ограничиваясь, процессором, микропроцессором, микроконтроллером, печатной платой и т.д.), программным обеспечением (например, исполняемым программным кодом, скомпилированным приложением, модулем, частью программного обеспечения и/или кода и т.д.), микропрограммой (встроенным программным обеспечением, в частности, прошивкой (микроконтроллера), от англ. firmware,причем прошивка может включать (свою) операционную систему) или программно-аппаратным обеспечением (в частности, аппаратным обеспечением с установленным на нем программным обеспечением, в том числе, микропрограммой). Так, например, компонент может быть процессом, выполняющемся (исполняющимся) на процессоре, процессором, контроллером, исполняемым файлом, программой, функцией, методом, библиотекой, подпрограммой и/или электрическим, электронным, вычислительным устройством (например, микрокомпьютером, компьютером и т.д.), частями таких устройств или комбинацией программного и аппаратного обеспечения.
На ФИГ. 1 показан примерный вариант общего вида предложенной системы, реализующей предложенный способ.
Изображенная на ФИГ. 1 система включает узлы сети (от англ. node, сетевые узлы, узлы компьютерной сети, узлы) 112, между которыми осуществляется обмен данными (информацией). Упомянутым узлом сети 112 может являться персональный компьютер, сервер, компьютерная система, моноблок, одноплатный компьютер, рабочая станция и любое другое вычислительное устройство, настольное или мобильное, а также контроллер, например, промышленный контроллер. По крайней мере, один из упомянутых узлов сети (112) передает данные, по крайней мере, на один узел сети, и(или) принимает (получает) данные, по крайней мере, от одного другого узла сети, как описано далее. По крайней мере, один узел сети 112 может осуществлять прием (получение) данных, по крайней мере, от одного связанного с таким узлом сети модуля или модуля, являющимся частью узла сети, например, от модулей сбора данных (102), связанного, по крайней мере, с одним средством измерения, по крайней мере, одного объекта управления. Объектом управления является устройство (или динамический процесс), управление поведением которого осуществляется описываемой системой посредством исполнительных устройств (управляющих механизмов). Объекты управления автоматически контролируются и управляются узлами сети 112 при помощи связанных с ними средств измерения и исполнительных устройств. Модуль сбора данных 102 осуществляет получение данных со средств измерений, по крайней мере, одного объекта управления, в частности, с регистрирующих устройств (модулей и т.д.) объектов управления, например, датчиков, и передает их, по крайней мере, на один связанный с ним узел сети, что более подробно описано далее. Узлы и модули могут быть связаны друг с другом любым известным видом соединения, например, узлы сети могут быть соединены с использованием каналов связи и средств коммутации в систему для обмена информацией, в частности, могут принадлежать компьютерной сети (вычислительной сети). Для передачи данных между узлами сети и модулями, например, модулями сбора данных, может использоваться, по крайней мете, одна из известных сред передачи данных. Модуль сбора данных 102 может содержать (включать), по крайней мере, один процессор и/или, по крайней мере, один микропроцессор для опроса связанных с ним устройств (различного оборудования), получения от них данных, получения запросов от узлов сети, для обработки полученных данных и запросов, передачи данных на узел сети, для управления настройками связанных устройств, включая автоматическую градуировку, контроль напряжения питания и силы тока на устройствах и т.д. объектов управления. Модуль сбора данных 102 может включать блок связи (модуль связи), например, коммуникационный модуль, выделенный аппаратно или программно, для соединения, по крайней мере, с одним узлом сети, по крайней мере, для передачи и приема данных, запросов и т.д. Модуль сбора данных 102 может включать аналогово-цифровой преобразователь (АЦП) или может быть связан с ним, причем АЦП преобразовывает данные (значения), получаемые от средств измерений в аналоговом формате данных, в цифровой формат данных, так что модуль сбора данных 102 передает данные в цифровом формате на узел сети 112. Также, модуль сбора данных 102 может получать данные от средств измерений в цифровом формате данных и передавать их на узел сети 112.
Также, по крайней мере, один узел сети 112 может генерировать (формировать) данные, например, модулем генерирования (формирования) данных (303, ФИГ. 3), как описано далее. Такие данные (полученные узлом сети от модулей или сгенерированные узлом сети) сохраняются на таком узле сети и/или передаются, по крайней мере, на один другой узел сети.
Узел сети 112 содержит, по крайней мере, один центральный процессор, исполняющий код программ (машинные инструкции и т.д.), загруженных на узел сети 112 (установленных на узле сети 112), например, на устройстве хранения данных, таком, как накопитель на жестких магнитных дисках, или в оперативной памяти, или содержащихся в составных частях узла сети, например, в процессорах, микропроцессорах, микроконтроллерах и т.д., в частности, в микросхемах данных составных частей.
Настоящее изобретение описано на примере передачи данных между двумя и более узлами сети (112) в пределах одной и более сетей (компьютерных сетей). В описании настоящего изобретения описывается пример варианта обмена данными между двумя узлами сети, которые являются равнозначными узлами сети (112). Настоящее изобретение описано на примере передачи данных первым узлом сети, т.е. первый узел сети передает данные, по крайней мере, на один другой узел сети, например, на второй узел сети, причем такой второй узел сети, по крайней мере, принимает данные от одного и более узлов сети, например, от первого узла сети, как описано далее. Узлом сети может являться контроллер, персональный компьютер (ПК) автоматизированного рабочего места (АРМ) оператора, хотя стоит понимать, что варианты реализации настоящего изобретения охватывают обмен данными между любыми двумя и более устройствами, в частности, вычислительными устройствами, способными получать (принимать) и/или хранить данные и передавать (отправлять) данные, как описано в рамках настоящего изобретения.
На ФИГ. 2 показан один из вариантов связи между узлами сети, в частности, показан вариант связи одного из узлов сети 205 с другими узлами сети (210), причем узел сети 205 осуществляет передачу данных на другие узлы сети (210).
Как показано на ФИГ. 2 узел сети 205 осуществляет передачу данных, по крайней мере, на один другой узел сети 210, причем передаваемыми данными являются данные, полученные от модуля сбора данных 102, или, полученные от других узлов сети, или сгенерированные одним из узлов сети, например, узлом сети 205, причем такие сгенерированные данные могут быть сгенерированы, например, модулем генерирования данных (303, ФИГ. 3), что более подробно описано далее.
Узел сети 205 может передавать данные, по крайней мере, на один другой узел сети 210 и принимать (получать) данные, по крайней мере, от одного другого узла сети 210, способного осуществлять, по крайней мере, передачу данных, в частности, по крайней мере, от одного другого узла сети. Каждый из узлов сети 210 может передавать данные, по крайней мере, на один другой узел сети, например, на узел сети 205. Таким образом, каждый из узлов сети (205, 210) является одновременно передающим узлом (передающим устройством, передающей стороной) и принимающим узлом (принимающим устройством, принимающей стороной), т.е. приемо-передающим узлом сети (приемо-передающим устройством) и может принимать данные, по крайней мере, от одного узла сети и передавать данные, по крайней мере, на один другой узел сети. В некоторых вариантах осуществления изобретения узел сети (205, 210) может быть настроен (пользователем) только на передачу данных или только на прием данных, в частности, в зависимости от требуемого функционала такого узла сети (205, 210). Узел сети (205, 210), только передающий данные, в любой момент может быть перенастроен еще и на прием данных, а узел сети (205, 210), только принимающий данные, в любой момент может быть перенастроен еще и на передачу данных.
Узлы сети функционируют каждый со своим (собственным) заданным тактом - собственным тактом работы узла сети (собственным тактом устройства). Значение упомянутого собственного такта узла сети задается, в частности, настраивается, пользователем (оператором, программистом и т.д.) с использованием программного обеспечения, установленного на узле сети (205, 210), или с использованием программного обеспечения, установленного на устройстве, подключаемом к такому узлу сети (205, 210), или с использованием программного обеспечения, установленного на другом узле сети и т.д. Значение собственного такта узла сети может составлять от несколько миллисекунд до минут. Так, например, для узла сети 205 задается собственный такт узла сети, а для каждого из других узлов сети (210) задается свой собственный такт узла сети. Так, например, для узла сети 205 может быть задан собственный такт узла сети, равный, например, 50 миллисекундам, а для каждого из других узлов сети (210) может быть задан собственный такт узла сети, равный, например, 25 миллисекундам, 30 миллисекундам, 100 миллисекундам и т.д.
Собственный такт работы узла сети определяется свойствами объекта управления, в частности, его инерционностью. Так, динамика объекта управления задает собственный такт работы узла сети (такт реального времени). Если объект управления - медленный, то значение собственного такта узла сети - высокое (большое), если объект управления - быстрый, то значение собственного такта узла сети - низкое (маленькое), т.е. значение собственного такта узла сети, связанного с медленным объектом управления, больше собственного такта узла сети, связанного с быстрым объектом управления. Если один узел связан с несколькими объектами управления, то на узле сети задается (автоматически или пользователем) наименьший собственный такт реального времени, соответствующий самому быстрому объекту управления.
Значение собственного такта работы узла сети (такт функционирования узла сети) больше значения такта операционной системы, установленной на узле сети.
Так, в частности, собственный такт узла сети является периодом повторения операций (не связанных с передачей данных) узлом сети и в частности определяет частоту (в частности, периодичность), с которой узел сети осуществляет формирование (генерирование и т.д.) данных (данных реального времени) или опрашивает модуль сбора данных 102 (отправляет запрос на получение данных от модуля сбора данных 102) и получает данные реального времени, например, с датчиков, в том числе, например, с использованием модуля сбора данных (модуля сбора данных с датчиков) 102, как описано далее. Также, собственный такт узла сети определяет частоту передачи управляющих команд (управляющих воздействий) на объекты управления, в частности, на исполнительные устройства, связанные с такими объектами управления. На узле сети может быть задано - значения от каких датчиков, переданные в модуль сбора данных 102, будут получены узлом сети от модуля сбора данных 102. Так, например, может быть задано получение значений, регистрируемых определенным набором датчиков, например, относящихся к одному типу датчиков (датчиков температуры, датчиков давления и т.д.), или может быть задано получение не всех значений, регистрируемых датчиками, например, получать значения с первого по десятое, и т.д. Упомянутый модуль сбора данных 102 является устройством обмена информацией, в том числе устройством сетевого обмена (УСО). Модуль сбора данных 102 может включать коммуникационный модуль (модуль связи) или быть связанным с коммуникационным модулем, с использованием которого осуществляется обмен данными между модулем сбора данных 102 и узлом сети, например, узлом сети 205.
Также на узле сети задается (настраивается), например, пользователем, значение такта передачи данных реального времени (такт передачи данных реального времени узла сети), в частности, определяющего частоту, периодичность, с которой осуществляется передача данных узлом сети, например, узлом сети (205), на один или несколько узлов сети (210). Передача данных реального времени узлом сети осуществляется в конце каждого такта передачи данных реального времени узла сети. Передача данных реального времени осуществляется в такт, кратный собственному такту работы узла сети (313). Так, например, если значение собственного такта работы узла сети равно 100 миллисекундам, то значение такта передачи данных реального времени узла сети может быть задано равным 200 миллисекундам, 300 миллисекунда, 1 секунде и т.д. Так, например, значение такта передачи данных реального времени узла сети, например, узла сети 205, может быть задано равным 100 миллисекунд, т.е. каждые 100 миллисекунд узел сети 205 будет отправлять (передавать) данные реального времени, по крайней мере, на один другой узел сети (210) один раз в 100 миллисекунд (или начинать передачу данных реального времени на такие другие узлы сети).
Если узлу сети 210 необходимо передавать данные реального времени, т.е. если, по крайней мере, один из узлов сети (или все узлы сети) 210 также может передавать данные (как узел сети 205), то на узле сети 210 также задается такт передачи данных реального времени узла сети, с которым такой узел сети (210) будет осуществлять передачу данных реального времени с заданным тактом передачи данных реального времени узла сети, по крайней мере, на один другой узел сети, например, на узел сети 205, или любой другой узел сети.
Значение такта передачи данных реального времени узла сети может быть кратно, в том числе равно, значению собственного такта узла сети. В случае, если значение такта передачи данных реального времени узла сети ошибочно задано пользователем при настройке узла сети меньшим значения собственного такта узла сети, то узел сети автоматически (с использованием программного модуля или программно-аппаратного модуля узла сети) повышает значение такта передачи данных реального времени узла сети до значения, равного значению собственного такта узла сети.
На ФИГ. 3 показан примерный вариант узла сети, обменивающегося данными с другим узлом сети. Узел сети 313 передает данные, по крайней мере, на один другой узел сети, например, на узел сети 373 в режиме передачи данных реального времени и в режиме передачи данных архивов данных, причем узел сети 313 передает данные реального времени в двух режимах (подрежимах): в режиме передачи данных реального времени в полном объеме и в режиме передачи только изменившихся данных реального времени (передача по изменениям, передача данных по изменениям).
Под полным объемом данных понимается объем данных, содержащий значения, сохраненные в БД данных реального времени 323 узла сети 313, причем могут быть заданы (пользователем) на узле сети 313 - какие из значений такого полного объема данных передавать узлом сети 313, по крайней мере, на один другой узел сети. Так, например, может быть задана передача одного или нескольких значений (значений параметров), а также передача одного или нескольких диапазонов (интервалов) значений, которые будут переданы на другой узел сети 373 узлом сети 313. В случае, когда значения хранятся в БД данных реального времени 323 узла сети 313, то могут быть заданы номера, содержащие значения (значения переменных, параметров), которые (значения) будут переданы узлом сети 313 на другой узел сети 373. Так, например, могут быть заданы для передачи значения, содержащиеся с первого элемента БД данных реального времени 323 по сотый элемент БД данных реального времени 323 и т.д. При передаче данных в режиме только изменившихся данных также могут быть заданы на узле сети 313 - какие из значений данных передавать узлом сети 313, по крайней мере, на один другой узел сети, причем если указанные ячейки БД данных реального времени 323 не содержат изменившиеся данные (или не содержат данные, т.е. пусты), то содержимое (значения или их отсутствие) таких элементов БД данных реального времени 323 не будет передано на другой узел сети (например, на узел сети 373), как описано в рамках настоящего изобретения.
Узел сети 313 может принимать данные реального времени (в режиме передачи данных реального времени), которые передает узел сети 373, и данные архивов реального времени (в режиме передачи данных архивов данных), которые передает узел сети 373. Передаваемые узлом сети 373 данные реального времени получаются узлом сети 313 и сохраняются в базу данных реального времени узла сети 313, а переданные узлом сети 373 и полученные узлом сети 313 данные архивов данных сохраняются в базу данных полученных архивов данных 353 узла сети 313.
Узел сети 313 содержит базу данных (БД) данных реального времени 323, в которую узлом сохраняются данные реального времени, полученные каждый собственный такт узла сети 313, по крайней мере, от одного модуля сбора данных 102 или модуля генерирования данных 303. Так, модуль сбора данных (или группа модулей сбора данных, в частности, несколько модулей сбора данных) передает данные реального времени на узел сети 313, которые записываются узлом в БД данных реального времени (БД РВ) 323, второй модуль сбора данных (или группа модулей сбора данных) передает данные реального времени также на узел сети 313, которые записываются узлом сети 313, например, модулем хранения обработки данных (или модулем хранения данных), в ту же БД РВ 323 и так далее.
Узел сети 313 содержит также базу данных архивов данных (база данных архивов данных реального времени) 333, в которую осуществляется запись архивов данных (архивов данных реального времени, трендов), содержащих данные реального времени, полученные и/или сгенерированные и т.д. узлом сети 313 и сжатые (запакованные, заархивированные) за несколько собственных тактов узла сети 313, как более подробно описано далее. В такую базу данных архивов данных 333 узлом сети 313 сохраняются данные реального времени, полученные за несколько собственных тактов узла сети 313, по крайней мере, от одного модуля сбора данных 102 или модуля генерирования данных 303.
Данные реального времени, полученные, например, от модуля сбора данных 102, от, по крайней мере, одного другого узла сети или сгенерированные (сформированные и т.д.) узлом сети 313 за каждый собственный такт узла сети, сохраняются узлом сети 313 каждый собственный такт узла, в частности, в конце каждого собственного такта узла сети, в БД данных реального времени 323 узла сети 313. Сохраненные в БД данных реального времени (БД РВ) 323 узла сети 313 данные реального времени за предыдущий собственный такт узла сети 313, в частности, в конце предыдущего собственного такта узла сети, перезаписываются данными реального времени, полученными за последний собственный такт узла сети 313, причем в БД РВ 323 сохраняются данные реального времени, полученные за предыдущий собственный такт узла сети 313. В частном случае, БД данных реального времени (323) является кольцевым буфером (циклическим буфером), длина которого, в частности, количество элементов, задается (например, пользователем, в частности, оператором, разработчиком программного обеспечения узла сети и т.д.) на узле сети или удаленно. Упомянутым элементом кольцевого буфера БД данных реального времени 323 является набор значений, полученных на узле сети 313 и сохраненных (записанных) в такую БД РВ за один собственный такт узла сети (узла сети 313). Так, например, элементом кольцевого буфера является строка таблицы базы данных, содержащая ячейки, в которых хранятся значения переменных, полученные от модуля сбора данных (102), от других узлов сети или генерируемые модулем генерирования данных (303). В частном случае, длина кольцевого буфера задается на узле сети (пользователем или автоматически узлом сети) равной двум (2) элементам. В частном случае, данные (значения, полученные от модуля сбора данных 102, других узлов сети и/или модуля генерирования данных 303) реального времени, сохраненные в ячейках одной строки таблицы БД данных реального времени 323 узла сети 313, копируются в ячейки другой строки (расположенной под верхней или над верхней строкой) таблицы БД РВ 323 узла сети 313, и данные реального времени, сохраненные в ячейках верхней строки таблицы БД РВ 323 узла сети 313, перезаписываются данными реального времени, полученными за последний собственный такт узла сети 313. Таким образом, сохраненные данные реального времени за предыдущий собственный такт узла сети 313 перезаписываются сохраняемыми данными реального времени, полученными в текущий собственный такт узла сети 313. БД РВ узла сети 313 хранится в оперативном запоминающем устройстве (ОЗУ) узла сети, в частности, для обработки, сохранения в базу данных архивов данных и для передачи (в такт передачи данных реального времени узла сети 313) на узел сети 373, как описано в рамках настоящего изобретения.
Данные реального времени, полученные (или сформированные, сгенерированные и т.д.) узлом сети 313 за каждый собственный такт работы узла сети 313, сохраняются узлом сети 313 каждый собственный такт узла сети 313 и с заданной периодичностью, например, раз в десять собственных тактов работы узла сети 313 сжимаются и сохраняются в долговременной памяти узла 313 и передаются в базу данных архивов данных 333 узла сети 313. База данных архивов данных 333 узла сети 313 хранится в постоянном хранилище данных (например, на устройстве долговременной памяти, в частности, накопителе на жестком магнитном диске или флэш-памяти). Так, данные, характеризующие объект или объекты управления, получаемые, например, от измерительных преобразователей датчиков параметров объекта прямо или путем перерасчета измеренных величин, в том числе рассчитанных управляющих воздействий, а также данные ручного ввода, в том числе команды управления объектом управления и коэффициенты расчетных алгоритмов, располагаются в оперативной памяти локального вычислительного устройства в виде массива кольцевых буферов глубиной не менее, чем два значения - текущее и предыдущее, обновляемые каждый такт.Массив располагается в общей (разделяемой) оперативной памяти вычислительного устройства, чем обеспечивается его доступность для компонентов вычислительного процесса устройства. Синхронизация данных при доступе к массиву обеспечивается последовательным исполнением компонентов вычислительного процесса без программных прерываний. Вышеописанные данные, изменившиеся с предыдущего такта, записываются на устройство долговременной памяти, например, накопитель на жестком магнитном диске или флэш-память. Кроме того, с периодом один раз в несколько десятков тактов, например, раз в сто тактов, происходит запись всех данных на этом такте. Кроме вышеописанных данных на устройство долговременной памяти, например, накопитель на жестком магнитном диске или флэш-память, записываются данные, введенные вручную или рассчитанные на основе архивных данных реального времени, представляющие собой плановые показатели на будущее время, если таковые имеются. Если это задано конфигурированием, при наступлении времени значения планового показателя, оно записывается в текущее значение одного или нескольких элементов массива текущих данных в разделяемой памяти, описанного выше. Вышеописанные данные, изменившиеся с предыдущего такта, накапливаются в массиве в оперативной памяти, который на такте, на котором, как указано выше, записываются все данные, подвергается упаковке, сжатию, например, с помощью алгоритма LZA, и затем записываются на устройство долговременной памяти, например, накопитель на жестком магнитном диске или флэш-память. Таким образом, на вычислительном устройстве (в частности, узле вычислительной сети) создается локальная база данных реального времени, содержащая текущие и архивные данные реального времени. Так, в частности, данные реального времени, полученные узлом сети 313 за каждый собственный такт узла сети 313, сжимаются с использованием одного из известных алгоритмов сжатия данных. Как было сказано выше, данные могут быть заархивированы перед сохранением в базу данных архивов данных 333 узла сети 313. Сжатие (в частности, архивация) данных может осуществляться средствами (например, программным обеспечением) узла сети 313, например, средствами системы управления базы данных архивов данных 333.
Упомянутым постоянным хранилищем данных может являться накопитель на жестких магнитных дисках (НЖМД/HDD, англ. hard (magnetic) disk drive) или твердотельный накопитель (SSD, англ. solid-state drive), или гибридный жесткий диск (SSHD, англ. solid-state hybrid drive), или флэш-память и/или любое другое устройство, позволяющее осуществлять, по крайней мере, запись на устройство, чтение с устройства и/или хранение данных на устройстве. Данные в хранилищах данных сохраняются преимущественно в двоичном формате, совпадающем или близком к формату данных в базах текущих данных реального времени.
База данных, в частности, БД данных реального времени (323; 460, ФИГ. 4) узла сети, база данных архивов данных (333; 470, ФИГ. 4) узла сети, база данных полученных архивов данных (353; 480, ФИГ. 4) узла сети и любая другая база данных, описанная в рамках настоящего изобретения, может хранить данные в виде, по крайней мере, одного массива, таблицы или набора связанных или не связанных между собой массивов (причем массивы данных могут являться векторами или матрицами данных), таблиц базы данных, и любых других известных форматах. Описываемая в настоящем изобретении, по крайней мере, одна база данных (например, БД данных реального времени или, в частном случае, база данных архивов данных) является базой данных реального времени (БДРВ, БД РВ), т.е. является базой данных, обработка данных в которой осуществляется с жестким (заданным) тактом реального времени, для чего данные хранятся во временном хранилище данных, в частности, в ОЗУ, узла сети преимущественно в двоичном формате, как наиболее удобном для обработки.
Как было сказано выше, узел сети 313 может осуществлять передачу данных реального времени в двух режимах (подрежимах): в режиме передачи данных реального времени в полном объеме и в режиме передачи только изменившихся данных реального времени.
На ФИГ. 4 показан вариант передачи данных с одного узла сети на другой узел сети предложенной системы.
Если задано конфигурированием узла (вычислительной) сети, данные последнего, текущего такта из массивов, описанных выше, могут передаваться в сеть каждый такт или реже. Данные могут передаваться все или выбранные по перечню, в том числе заданному перечислением или диапазоном номеров (с одного заданного номера в массиве по другой заданный номер в массиве). Такие данные могут передаваться в полном объеме или только изменившиеся с предыдущего такта. При передаче изменившихся данных могут также раз с периодом в несколько десятков тактов передаваться все указные к передачи данные. При этом период передачи данных может не совпадать с периодом записи всех данных в постоянную память, как описано выше.
Передача текущих данных, описанных выше, осуществляется пакетами протоколов нижнего уровня, обеспечивающих передачу без подтверждения и без образования канала связи, например, UDP стека TCP/IP или IPX стека IPX/SPX. Пакет может быть широковещательным, мультивещательным или с указанием конкретного адреса приемного узла сети, однако всегда указывается обобщающий признак, например, номер порта UDP стека TCP/IP или сокет IPX стека IPX/SPX. Такой признак задает виртуальный массив - распределенную базу данных, подобный массиву текущих данных - базе данных - на вычислительном устройстве. В передаваемом пакете обязательно передаются номера параметров (адреса) в распределенной базе данных указанного в пакете признака, содержащихся в пакете текущих данных. Переданные пакеты могут приниматься узлом сети, на котором конфигурированием задан прием пакетов, имеющих указанный признак (номер порта или сокета, например). Для этого признака на принимающем узле сети указывается также соответствие номеров (адресов) данных в виртуальной базе номерам (адресам) в базе текущих данных принимающего узла сети (принимающего вычислительного устройства), в соответствии с которыми данные из принятого пакте помещаются в массив текущих данных. При необходимости конфигурированием может быть также задан фильтр адресов узлов сети, от которых могут приниматься пакеты. Таким образом создается распределенная (облачная) база текущих данных реального времени своя для каждого признака, которых может быть несколько. На узле сети может быть сконфигурирована передача и прием пакетов по одному или нескольким признакам (портам или сокетам). Таким образом создается сводная распределенная (облачная) база текущих данных реального времени, включающая все распределенные (облачные) базы текущих данных реального времени отдельных признаков, которых может быть несколько.
Если задано конфигурированием узла сети, сжатые архивированные данные из оперативной памяти кроме записи на устройство долговременной памяти на том же такте передаются по сети пакетами протоколов нижнего уровня, обеспечивающих передачу без подтверждения и без образования канала связи, например, UDP стека TCP/IP или IPX стека IPX/SPX. В пределах периода передача сжатых архивных данных повторяется не менее одного раза. Вместе со сжатыми архивными данными в первом пакте передаются сведения о присутствующих на узле сети сжатых данных с момента начала их записи на этом узле сети. Если задано конфигурированием узла сети, пакеты со сжатыми архивированными данными другого узла сети принимаются узлом сети и помещаются на устройство долговременной памяти, например, накопитель на жестком магнитном диске или флэш-память, в раздел или каталог, отведенный конфигурированием под данные передающего узла сети. Одновременно с приемом сжатых данных, периодически посылаемых с передающего узла сети, на принимающем узле сети анализируется (узлом сети) пришедшая с ними информация о наличии сжатых архивных данных на передающем узле сети и сравнивается с имеющимися на принимающем узле сети, и, если обнаруживается недостающие, принимающий узел посылает пакет UDP на посылающий узел со списком недостающих сжатых архивированных данных. В ответ посылающий узел наряду с периодически посылаемыми сжатыми архивными данными на принимающий узел, с которого пришел запрос, досылает UDP-пакеты с запрошенными недостающими данными, равномерно распределенные по нескольким периодам придачи, чтобы не перегрузить принимающий узел. В первом пакете такой передачи передается таблица распределения пакетов с недостающим данными по периодам передачи. После окончания последнего периода, указанного в этой таблице, на принимающем узле сети производится проверка полноты сжатых архивированных данных и, при их неполноте по сравнению с передающим узлом сети, опять выдается запрос на передающий узел об их досылки. На узле сети может быть сконфигурирована передача пакетов сжатых архивных данных на несколько узлов сети и прием сжатых архивных данных от нескольких узлов сети. Таким образом создается распределенная база архивных данных реального времени.
При передаче данных реального времени в режиме передачи данных реального времени в полном объеме все данные реального времени, полученные узлом сети 313 за собственный такт узла сети 313 и сохраненные в БД данных реального времени 323 узла сети 313, передаются на узел сети 373 в такт передачи данных реального времени узла сети 313.
В режиме передачи данных реального времени в полном объеме данные реального времени, полученные узлом сети 313 за последний собственный такт узла сети и сохраненные (в этот же собственный такт узла сети 313) в БД данных реального времени 323 узла сети 313, передаются на узел сети 373 узлом сети из БД данных реального времени узла сети 313 в конце каждого такта передачи данных реального времени узла сети 313, совпадающего или кратно большего собственного такта узла сети 313. Таким образом, узел сети 313 в такт передачи данных узла сети 313 осуществляет чтение значения данных реального времени (массива данных реального времени) из БД данных реального времени 323 узла сети 313 и осуществляет их передачу, по крайней мере, на один узел сети, например, 373. Принятые данные реального времени в полном объеме сохраняются узлом сети 373 в БД данных реального времени узла сети 373 и далее обрабатываются узлом сети 373.
Для передачи данных реального времени в полном объеме последнего собственного такта узла сети 313, сохраненных в БД данных реального времени 323 узла сети 313, узел сети 313 формирует набор данных для передачи узлу сети 373. Такой набор данных реального времени включает все данные реального времени из БД данных реального времени 323 узла сети 313, то есть массив данных за такт узла сети 313, в конце которого осуществляется передача.
Как было сказано выше, узел сети 313 может передавать, по крайней мере, на один другой узел сети (например, узел сети 373) данные реального времени в режиме передачи только изменившихся с последнего собственного такта узла сети 313 данных реального времени. Для передачи данных реального времени в режиме передачи только изменившихся данных, сохраненных в БД данных реального времени 323 узла сети 313, узел сети 313 формирует набор данных, содержащих изменившиеся данные, (массив изменившихся данных) для передачи на узел сети 373.
Передаваемый в текущий такт передачи данных реального времени узлом сети 313 набор данных только изменившихся данных реального времени содержит сохраненные в БД данных реального времени 323 данные, которые были получены (и/или сгенерированы) узлом сети 313 в последний собственный такт узла сети 313, содержащие значения, которые изменились по сравнению с предыдущим собственным тактом узла сети 313.
В частном случае, упомянутый передаваемый набор данных, формируемый узлом сети 313 и содержащий только изменившиеся данные, может содержать сохраненные в БД данных реального времени 323 узла сети 313 данные, которые изменились с последнего такта передачи данных реального времени узла сети.
Для формирования набора изменившихся данных реального времени (набора только изменившихся данных реального времени) узел сети 313 обрабатывает, в частности, анализирует данные реального времени, сохраненные в БД данных реального времени 323 узла сети 313, посредством сравнения сохраненных данных, полученных (сформированных и т.д.) передающим устройством за последний собственный такт передающего устройства с данными реального времени, сохраненными в БД данных реального времени 323, полученными (или сгенерированными) узлом сети 313 за предыдущий (предшествующий последнему собственному такту узла сети 313) собственный такт узла сети 313. Набор изменившихся данных реального времени, являющийся результатом упомянутого сравнения данных, передается узлом сети 313, по крайней мере, на один другой узел сети, например, узел сети 373 в такт передачи данных реального времени узла сети 313. Передача только изменившихся данных (только изменившихся данных реального времени) осуществляется с собственным тактом работы узла сети (313). Такт передачи всех значений может осуществляться реже, но с тактом, кратным собственному такту узла сети (313). Так, например, если значение собственного такта работы узла сети равно 100 миллисекундам, то значение такта передачи всех данных реального времени узла сети может быть задано равным 200 миллисекундам, 300 миллисекундам, 1 секунде и т.д.
В БД архивов данных 333 сохраняются только изменившиеся за такт данные, при этом раз в десятки или сотни тактов сохраняются все данные в конец такта
При сохранении узлом сети 313 данных реального времени в БД данных реального времени 323 данные, сохраненные за предыдущий собственный такт узла сети 313, копируются в БД данных реального времени 323 (создается копия данных реального времени за предыдущий собственный такт узла сети 313), а значения данных, с которых была сделана упомянутая копия данных, переписываются изменившимися данными, полученными за последний собственный такт узла сети 313.
Если в БД данных реального времени 323 не содержится сохраненных значений для предыдущего собственного такта узла сети 313, то может быть записано значение (или символ и т.д.), соответствующее отсутствию таких отсутствующих значений, либо если значения сохраняются в ячейках базы данных, то такая ячейка базы данных может оставаться пустой (не заполненной).
В режиме передачи только изменившихся данных реального времени сформированные наборы изменившихся данных передаются на узел сети 373 узлом сети из БД данных реального времени 323 узла сети 313 в конце собственного такта узла сети 313.
Переданные узлом сети 313 с использованием коммуникационного модуля 363 (и полученные с использованием коммуникационного модуля 485 узлом сети 373 в буфер приема данных узла сети 373) изменившиеся данные реального времени в виде набора данных сохраняются узлом сети 373 из буфера приема данных узла сети 373 в БД данных реального времени узла сети 373 и далее обрабатываются узлом сети 373.
Передача данных в режиме передачи только изменившихся данных снижает нагрузку на сеть (компьютерную сеть), а также на буферы приема данных и на узлы сети принимающей стороны, в частности, на центральные процессоры узлов сети, а также интерфейсы, шины и т.д. узлов сети принимающей стороны, а также приводит к снижению необходимого количества места, требуемого для хранения данных на устройствах хранения (данных) узлов сети принимающей стороны, в частности, в связи с тем, что передается узлами сети и принимается узлами сети меньшее количество данных, однако, в частном случае, может снижать надежность доставки данных. При этом введение дополнительно передачи в полном объеме со значительно большим тактом позволяет повысить надежность доставки данных без существенного повышения нагрузки на сетевое оборудование, в частности обеспечивает получение актуальных данных для вновь подключаемых к сети узлов. Однако оптимальная комбинация всех возможных режимов сетевого обмена выбирается исходя из конкретных условий и задач описываемой системы.
То есть при передаче данных в режиме передачи только изменившихся данных реального времени узел сети 313 в такт контрольной передачи данных реального времени узла сети 313 передает все данные реального времени в полном объеме (в частности, данные реального времени выбранного диапазона значений), т.е. содержащие, например, набор данных реального времени в полном объеме, полученные узлом сети 313 от модуля сбора данных 102 или сгенерированные модулем генерирования данных 303 за последний собственный такт узла сети 313, а не только изменившиеся данные реального времени, по крайней мере, на один узел сети, например, узел сети 373. Значение (величина) такта контрольной передачи данных узла сети 313 задается на узле 313 и значительно (например, в несколько раз, в несколько десятков раз, несколько сот раз) превышает значение такта передачи изменившихся данных реального времени узла сети 313, причем такт контрольной передачи данных узла сети 313 может быть меньше, равен или больше значения такта передачи архивов данных узла сети 313. Так, например, если для узла сети 313 задан собственный такт узла сети 313 (задано значение собственного такта узла сети 313), равный, например, 50 миллисекундам, соответственно, такт передачи изменившихся данных реального времени узла сети 313 равен также 50 миллисекундам, и такт передачи архивов данных узла сети 313 задан равным 20 секундам, то такт контрольной передачи данных узла сети 313 может быть задан равным, например, 500 миллисекундам или 5 секундам. Значения, содержащиеся в наборе данных, передаваемых в полном объеме при контрольной передаче данных, сохраняются узлом сети 373 в базу данных реального времени узла сети 373.
В частном случае, перед первой передачей набора изменившихся данных узлом сети 313 может быть передан набор данных реального времени, передаваемый в режиме передачи данных реального времени в полном объеме, а также может быть передан архив данных.
При передаче данных в режиме только изменившихся данных набор данных в полном объеме передается узлом сети 313 на другой узел сети для того, чтобы такой другой узел сети получил не только изменившиеся данные, содержащиеся в полученном таких другим узлом сети 373 наборе изменившихся данных, но и не изменившиеся данные, например, если такой другой узел сети был добавлено (например, пользователем) в описываемую систему в процессе работы системы. Так, например, по истечении определенного времени после запуска системы (узла сети 313, узла сети 373, по крайней мере, одного модуля сбора данных 102 и т.д.), например, через 5 минут, 10 минут, 1 час и т.д., в систему может быть добавлен новый другой узел сети, на который узлом сети 313 передаются только изменившиеся данные реального времени (и опционально архивы данных) в режиме передачи только изменившихся данных (в режиме передачи данных по изменениям). После добавления нового узла сети в описываемую систему (после установления связи (соединения), в частности, после подключения такого другого узла сети к другим узлам сети, а также модулям сбора данных и т.д., например, после подключения такого узла сети к компьютерной сети, такой как, например, локальная вычислительная сеть (ЛВС)) такой другой узел сети получает только изменившиеся данные реального времени, а не изменившиеся данные реального времени не передаются на такой другой узел сети, так что в БД реального времени такого другого узла сети не содержатся значения всех переменных, значения которых регистрируются связанным с узлом сети 313 модулем сбора данных 102 или модулем генерирования данных 303 и которые передаются узлом сети 313 на узел сети 373. Для того чтобы для упомянутых переменных в БД данных реального времени содержались все значения должно пройти достаточно большое количество времени, величина которого зависит от того, когда именно изменятся все упомянутые значения, т.е. когда обновятся все значения в БД данных реального времени. Чтобы этого избежать узлом сети осуществляется контрольная передача набора данных реального времени (передача данных в режиме контрольной передачи данных), например, один раз в десять секунд, т.е. в такт передачи изменившихся данных, значение которого в частном случае равно такту передачи данных реального времени, причем такт передачи изменившихся данных равен собственному такту работы узла сети (передающей стороны).
Также, упомянутый набор данных реального времени (в режиме передачи данных в полном объеме или в режиме передачи только изменившихся данных, в том числе в режиме контрольной передачи данных), передаваемый одним узлом сети 313 на другой узел сети 373, может содержать статус проверки достоверности данных, а также время порождения передаваемых данных (штамп времени, временную метку, от англ. timestamp), причем временем порождения данных является момент времени, в который были сгенерированы узлом сети 313 данные реального времени или момент времени, в который были получены данные реального времени узлом сети 313, например, от модуля сбора данных 102. Также, упомянутый набор данных, передаваемый одним узлом сети (313), по крайней мере, на один другой узел сети (373), может содержать значение таймаута (тайм-аута, от англ. timeout), т.е. времени, в течение которого другой узел сети 373 будет считать переданные данные валидными, а после истечения которого считать переданные данные невалидными, в частности, устаревшими.
На принимающем узле сети 373 пришедший в пакте с данными таймаут используется для проверки их достоверности, то есть если значения данных, входящих в принятый пакет, не обновляются с момента его прихода в течение времени таймаута, то они считаются недостоверными до следующего их обновления.
Передаваемые наборы данных (в полном объеме или только изменившиеся) реального времени перед передачей узлом сети 313 на узел сети 373 поступают в базу текущих данных и обрабатываются аналогично данным базы текущих данных 323 узла 313.
Для такта передачи данных реального времени (в полном объеме или только изменившихся данных) узла сети 313, в частности, набора данных реального времени, на узле сети 313 может быть задано отношение времени передачи данных реального времени узла сети 313 к такту передачи данных реального времени узла сети 313, которое позволяет настраивать на узле сети 313 время, в течение которого осуществляется передача данных реального времени узлом сети 313, по крайней мере, на один узел сети 373. Таким образом, в процессе передачи данных узлом сети 313 осуществляется «размазывание» передаваемых пакетов данных по времени передачи, так что последний передаваемый пакет данных будет передан не раньше, чем истечет время передачи данных. Так, например, если значение такта передачи данных реального времени узла сети 313 задано равным 100 миллисекундам и отношение времени передачи данных реального времени к такту передачи данных реального времени узла сети 313 задано равным 75 процентам, то узел сети 313 каждые 100 миллисекунд (каждый такт передачи данных реального времени) будет передавать данные соответствующего признака (порта или сокета) в течение 75 миллисекунд.
Набор данных (содержащий все или только изменившиеся данные реального времени) реального времени, а также описанный в рамках настоящего изобретения архив данных, может быть передан узлом сети 313, по крайней мере, одним сетевым пакетом данных (определенным образом оформленным сегментом данных), например, UDP/IP-пакетом, IPX-пакетом и т.д. Задание отношения времени передачи данных реального времени узла сети 313 к такту передачи данных реального времени узла сети 313 позволяет распределять передачу набора данных реального времени по всему диапазону времени, отведенному узлу сети 313 на передачу данных реального времени (например, 75 миллисекунд из примера выше), т.е. осуществляется «размазывание» пакетов по времени, отведенному на каждый такт передачи данных реального времени узла сети 313, так что данные реального времени (набор данных реального времени) передаются узлом сети 313 на узел сети 373 (более) равномерно, что позволяет избежать переполнения буфера приема данных (в которые передаются наборы данных, которые далее из буфера приема данных сохраняются, по крайней мере, в одну базу данных узла сети 373, как описано в рамках настоящего изобретения) узла сети 373 и промежуточного сетевого оборудования (например, маршрутизаторов, шлюзов, серверов и т.д.). Буфер приема данных может являться буфером приема данных коммуникационного модуля (коммуникационного модуля 485 узла сети 373, коммуникационного модуля 363 узла сети 313), связанного с узлом сети (с использованием проводного соединения или беспроводного соединения), или, являющегося частью узла сети, или может являться частью области памяти оперативного запоминающего устройства или постоянного запоминающего устройства (например, накопителя на жестких магнитных дисках, флеш-памяти и т.д.) узла сети и, в частности, являться частью операционной системы узла сети.
Перед передачей набора данных реального времени (включающем также дополнительные данные, в том числе служебные данные, метаданные и т.д.), в частности, сетевыми пакетами данных узлом сети 313 может быть дополнительно передан специальный синхропакет (пакет синхронизации). Упомянутыми дополнительными данными может являться такт передачи данных реального времени узла сети 313, собственный такт узла сети 313, установленное на узле сети 313 время, таймаут(ы) и т.д., а также другие параметры и настройки узла сети 313, модулей узла сети 313, в частности, как описано в рамках настоящего изобретения. Упомянутый синхропакет содержит информацию о следующих параметрах: текущем времени узла сети 313 (системном времени), количестве пакетов с данными, которые будут переданы узлом сети 313 вслед за таким синхропакетом, период времени, в течение которого будет осуществлена полная передача данных (всех пакетов с данными) и задержке времени между передачей такого синхропакета и передачей первого пакета с данными. Упомянутые параметры задаются (пользователем) на узле сети 313. В частном случае, узел сети 373 приостанавливает выполнение операций (функций), не относящихся к получению данных реального времени (например, приостанавливает передачу данных, опрос подключенных к нему модулей и т.д.) на время (период времени), в течение которого будет осуществлена полная передача данных (всех пакетов данных), указанное в синхропакете. На узле сети 373 может быть включен или отключен фильтр синхропакетов, определяющий необходимость узлом сети 373 обрабатывать синхропакет, отправленный узлом сети 313 на узел сети 373. Если фильтр синхропакетов включен, то узел сети 373 будет игнорировать синхропакет, принятый (полученный) от узла сети 313, причем упомянутые пакеты будут приниматься узлом сети 373.
Переданное в синхропакте время может использоваться для синхронизации времени узлов сети. Для этого на узле сети 313 задается передача данных в режиме широковещания хотя бы для одного параметра по определенному порту или сокету, а на синхронизируемых узлах сети - такой порт или сокет открывается на прием. После начала передачи данных узлом сети 313 время на синхронизируемых узлах сети будет соответствовать времени на узле сети 313 (совпадать с временем на узле сети 313), но в частном случае время на синхронизируемых узлах сети может отличаться на несколько миллисекунд.
Также, в дополнение к передаче данных реального времени узлом сети 313 может осуществляться передача данных в режиме передачи архивов данных за определенный период времени, равный периоду, с которым осуществляется их сжатие при архивировании. Узел 313 осуществляет одновременно с записью в долговременную память заархивированных в ОЗУ данных другим узлам в сети в соответствии с заданной конфигурацией.
Также, первый пакте с архивом данных, передаваемый узлом сети 313 на узел сети 373, содержит информацию о содержании архива данных реального времени 333 узла 313. Принимающий узел (373) сравнивает полученную и информацию о содержании архива узла 313 с имеющимися у него архивными данными с узла 313 и, при их недостаче по сравнению с полученной в пакете информацией, посылает на узел 313 пакет с запросом на посылку недостающих данных. Далее, узел сети 313 осуществляет передачу архивов данных, согласно информации (в частности, идентификаторам) о не полученных узлом сети 373 архивах данных, содержащейся в переданном узлом сети 373 на узел 313 запросе, причем передаваться архивы данных узлом сети 313 могут, как описано в рамках настоящего изобретения, в том числе, с передачей повторных (копий) архивов данных на узел сети 373.
Передаваемый узлом сети 313 архив данных из базы данных архивов данных 333 узла сети 313 может быть передан несколькими архивами (подархивами, субархивами), в том числе в формате многотомного архива, т.е. узел сети 313 может создать из одного архива данных несколько архивов данных (совокупность которых содержит данные, идентичные данным исходного архива данных), причем размер подархивов может быть задан на узле сети 313.
Передаваемый узлом сети 313 архив данных (или подархивы данных) может быть передан узлом сети 313, по крайней мере, одним сетевым пакетом данных.
Узел сети 313 передает, по крайней мере, на один узел сети 373 архив данных в такт передачи архивов данных узла сети 313, в частности, передает основной архив данных (первый архив данных такта передачи архивов данных), после чего осуществляет передачу этого же архива данных, в частности осуществляет повторную передачу (копии) архива данных (повторный архив данных) на узел сети 373 (или несколько узлов сети). В частном случае, на узел сети 373 узлом сети 313 может быть отправлено два повторных архива данных, что, в частности, достаточно для получения узлом сети 373 хотя бы одного архива данных (основного или повторного).
При получении узлом сети 373, по крайней мере, одного архива данных, т.е. архива данных, переданного в такт передачи архивов данных узла сети 313 или одного из повторных архивов данных, узел сети 373 игнорирует остальные архивы данных, в частности, основной архив данных и/или повторные архивы данных, являющиеся копией основного архива данных, в частности, не обрабатывает их, что снижает нагрузку на центральный процессор узла сети 373, а также, в частном случае, не приводит к переполнению буфера приема данных узла сети 373.
Как описано в рамках настоящего изобретения, передача данных (архивов данных, а также наборов данных реального времени в полном объеме или изменившихся данных, включая контрольную передачу данных реального времени) узлами сети может осуществляться в режиме широковещания (широковещательного канала, от англ. broadcasting) или в режиме направленной передачи данных. В режиме широковещания передача данных осуществляется, по крайней мере, одним узлом сети, например, узлом сети (205, ФИГ. 2), сразу на несколько других узлов сети (210, ФИГ. 2), а также на тот же узел сети (205, ФИГ. 2). В режиме направленной передачи данных передача данных осуществляется одним узлом сети, например, узлом сети (205, ФИГ. 2), по крайней мере, на один другой узел сети (201, ФИГ. 2), а также на тот же узел сети (205, ФИГ. 2).
Передача данных (наборов данных реального времени и архивов данных) может осуществляться с использованием протокола IPX (от англ. internetwork packet exchange - межсетевой обмен пакетами) или протокола UDP/IP (от англ. User Datagram Protocol - протокол пользовательских датаграмм, IP - от англ. Internet Protocol - дословно межсетевой протокол, маршрутизируемый протокол сетевого уровня стека TCP/IP), один из которых выбирается (пользователем) на узле сети 313 (и на принимающей стороне, узлах сети, на которые передаются данные узлом сети 313, например, на узле сети 373).
На узле сети 313 задается, по крайней мере, один адрес назначения (основной адрес сети), в частности, например, в случае UDP/IP - IP-адрес(а) узла сети, на который передаются данные, или в случае IPX указывается сеть назначения (получения) и узел (узлы) сети, на который передаются данные.
Так, при указании адреса назначения могут быть указаны следующие значения IP-адресов для UDP/IP:
- 198.10.10.11 (или 198.20.30.111, или 198.15.31.211 и т.д.) - передать данные узлу сети по адресу 198.10.10.11 (узлу сети с IP-адресом 198.10.10.11 (198.20.30.111, 198.15.31.211 и т.д.), т.е. осуществляется направленная передача данных такому узлу сети;
- последний октет IP-адреса может быть указан равным «255», например, для IP-адреса может быть указано значение «198.10.10.255» (или «198.20.30.255», или «198.15.31.255» и т.д.) - передать данные всем узлам сети, IP-адрес которых имеет вид «198.10.10.*» (или «198.20.30.* », или «198.15.31.* » и т.д.), где значение «*« лежит в диапазоне от «1» до «254», т.е. такой IP-адрес является широковещательным IP-адресом, т.е. осуществляется широковещательная передача данных (режим широковещания);
- «198.10.255.255» (или «198.15.255.255», или «198.35.255.255») - передать данные всем узлам сети, адрес которых имеет вид «198.10.*.* », т.е. осуществляется широковещательная передача данных;
- «127.0.0.1» - передавать данные на этот же узел сети.
Для IPX на узле сети задается сеть назначения и узел (узлы) сети, на который передаются данные. Если сеть назначения не указана («00000000»), то наборы данных (в виде пакетов данных) передаются узлом сети 313 в локальный сегмент сети. Если в качестве адреса назначения указывается «FFFFFFFFFFFF», наборы данных (в виде пакетов данных) предназначаются всем узлам сети данного сегмента (которому принадлежит узел сети 313).
Кроме упомянутых адресов сети (основных адресов сети, адресов назначения) на узлах сети передающей стороны могут быть заданы дополнительные (резервные) адреса сети, по которым узлами сети передающей стороны будут переданы данные одновременно с передачей данных по основному адресу, что является эффективным средством резервирования передачи данных. В случае задания в качестве резервных для основного адреса передачи, данные будут продублированы соответствующее количество раз, что, в частности, используется в рамках настоящего изобретения для предотвращения потерь данных (в частности, наборов данных или пакетов данных наборов данных) на неустойчивых линиях связи. Также дополнительные (резервные) адреса сети задаются для передачи данных, когда данные не могут быть переданы в режиме широковещания или если узлы сети, на которые необходимо передать данные, находятся в сети (компьютерной сети) отличной от сети, которой принадлежит узел сети передающей стороны, или если узлы сети принадлежат разным сетям, в том числе, если одна из сетей, которой принадлежит, по крайней мере, один узел принимающей стороны, отлична от сети узла сети передающей стороны.
На узле сети 313 задаются порты в случае UDP (или сокеты в случае IPX), на которые будет осуществляться передача данных (наборов данных реального времени и архивов данных). Так, для каждого передаваемого набора данных или архива данных могут быть заданы порты, на которые будут отправлены узлом сети 313 такие наборы данных или архивы данных.
Номера портов в случае UDP (или сокетов в случае IPX), на которые отправляются наборы данных или архивы данных, всегда присутствуют в стандартных заголовках UDP (IPX) пакетов данных, содержащих наборы данных или архивы данных, которые передаются передающей стороной, например, узлом сети 313, на принимающую сторону (по крайней мере, на один узел сети).
На принимающей стороне, по крайней мере, на одном узле сети, получающем данные (реального времени или архивы данных), задаются порты (или сокеты), от которых ожидаются пакеты с данными принимающей стороной и соответствие номеров в сетевой виртуальной базе данных реального времени базе данных реального времени на принимающей машине. Таким образом, узлы сети принимающей стороны могут принимать только те данные, которые необходимо получить (и, в частности, обработать), без необходимости получать все данные, что снижает нагрузку на буферы приема данных (в частности, не требует записи в них полученных данных) и на узлы сети принимающей стороны, в частности, на центральные процессоры узлов сети, а также на интерфейсы, шины и т.д. узлов сети принимающей стороны, а также приводит к снижению места на устройствах хранения узлов сети принимающей стороны.
Передаваемые узлом сети 313 данные (реального времени в полном объеме или только изменившиеся и/или данные архивов), в частности в виде наборов данных или архивов данных передаются на узел сети 373 в упомянутый выше буфер приема данных узла сети 373. Далее из буфера приема данных (буфер приема) узла сети 373 полученные от узла сети 313 данные реального времени сохраняются узлом сети 373 в БД данных реального времени узла сети 373, а полученные узлом сети 373 архивы данных сохраняются в базу данных полученных архивов данных 480 узла сети 373. Размер буфера приема данных узла сети (например, узла сети 373 или узла сети 313) является размером буфера, зарезервированного для временного хранения принимаемых данных от одного и более узлов сети (например, узла сети 313), причем размер буфера приема данных каждого из узлов сети задается пользователем на соответствующем узле или удаленно. Буфер приема данных может быть реализован, по крайней мере, одним (промежуточным) хранилищем данных, например, по крайней мере, одной областью памяти оперативного запоминающего устройства узла сети. Буфер приема данных может состоять, по крайней мере, из двух буферов приема данных, например, буфера приема данных реального времени узла сети (например, узла сети 373) и буфера приема данных архивов данных узла сети (например, узла сети 373). В частном случае, данные реального времени могут передаваться узлом сети 313 на узел сети 373 и помещаться средствами узла сети 373 в буфер приема данных реального времени узла сети 373, а данные архивов данных могут передаваться узлом сети 313 на узел сети 373 и помещаться средствами узла сети 373 в буфер приема данных архивов данных узла сети 373. Полученные узлом сети 373 данные реального времени из буфера приема данных реального времени сохраняются узлом сети в БД данных реального времени узла сети 373, а полученные узлом сети 373 данные архива данных сохраняются узлом сети в базу данных полученных архивов данных 480 узла сети 373. Вышеописанные буферы могут организовываться средствами сетевого обмена операционной системы, например, Windows или Linux, размер которого может быть задан по умолчанию и, при необходимости, изменяться пользователем.
Размер упомянутого сетевого пакета данных, в частности, максимальный размер сетевого пакета данных, может быть задан (на одном из узлов сети), например, пользователем, причем максимальный размер сетевого пакета данных задается в соответствии с максимальным размером, поддерживаемым оборудованием на маршруте передачи данных, так что для передачи большого количества данных максимальный размер сетевого пакета данных устанавливается максимально возможным.
На ФИГ. 5 показан примерный вариант описываемой системы с подключенными к узлу сети исполнительными устройствами.
Как было сказано выше, значения, сохраненные в базу данных реального времени и в базу данных полученных архивов данных 480 узла сети 373 обрабатываются узлом сети 373.
Описываемый способ и система предоставляют возможность (например, пользователю) осуществлять контроль состояния, просмотр значений (измерений), удаленное управление устройствами, в частности, по крайней мере, одним исполнительным устройством (управляющим устройством, устройством управления и т.д.) 505. Упомянутые контроль и управление осуществляются с помощью, по крайней мере, одного исполнительного устройства 505, в том числе посредством взаимодействия пользователя с упомянутыми узлами сети, например, задание значений, настройка и т.д. Упомянутые контроль и управление осуществляются исполнительным устройством 505 посредством использования в таких исполнительных устройствах (505), по крайней мере, одной (управляющей) микросхемы, микрокомпьютера, микропроцессора или любого другого модуля, связанного, по крайней мере, с одним узлом сети, и осуществляющим регистрирование данных и/или позволяющим осуществлять управление связанными с таким модулем устройствами, осуществлять задание значений для таких устройств и т.д.
В процессе обработки данных узел сети, например, узел сети 373, формирует управляющие команды (или управляющие программы, инструкции, значения и т.д.) для исполнительных устройств (505) объектов управления и передает их, по крайней мере, на одно исполнительное устройство, связанное с узлом сети 373 или являющееся частью узла сети 373, или, по крайней мере, на один другой узел сети, например, на узел сети 313, с целью дальнейшей передачи узлом сети 313 управляющих команд на связанное (в том числе через модуль сбора данных) с узлом сети 313 исполнительное устройство 505. Сформированные управляющие команды используются для управления объектами управления, чтобы объекты управления поддерживались в пределах необходимых (заданных) параметров, в частности, в том режиме, в котором должен функционировать каждый из объектов управления.
Управляющие команды позволяют управлять исполнительными устройствами (505), например, включать или отключать такое исполнительное устройство, изменять значения, заданные на таком исполнительном устройстве и т.д., например, вентилятор, включать или отключать нагревательный элемент, открыть или закрыть клапан и т.д.
Результатом обработки узлом сети 373 полученных и сохраненных в БД данных (реального времени и/или архивов данных) является, по крайней мере, выработка команд для управления исполнительными устройствами (505), в том числе, после обработки, по крайней мере, одним узлом сети, например, после приведения управляющих команд к формату, пригодному для подачи на вход исполнительного устройства (505) или пригодному для подачи на вход, по крайней мере, одного модуля, являющегося частью исполнительного устройства 505 или связанного с ним, или после обработки исполнительным устройством. Таким образом, узел сети 373 с использованием, по крайней мере, одного алгоритма, реализуемого программным обеспечением (программой), установленным на узле сети 373 вырабатывает управляющие команды (в том числе последовательности управляющих команд) для исполнительного устройства 505.
На ФИГ. 6 показан примерный вариант назначения номеров соответствия данных, сохраненных на передающем узле сети, в виртуальной базе данных и на принимающем узле сети.
При передаче данных узлом сети 313 номера параметров (переменных), значения которых сохранены в БД данных реального времени 323 (и которые будут переданы в составе наборов данных реального времени и архивы данных), преобразуются узлом сети 313 в сетевые номера параметров (номера в виртуальной базе данных, виртуальные номера параметров в виртуальной базе данных), которые добавляются к значениям параметров, передаваемым, по крайней мере, на один другой узел сети, например, на узел сети 373. Номер параметра (данных реального времени) на передающем узле сети, значение которого сохраняется в БД данных реального времени (323), определяет местоположение (в частности, позицию) такого значения, сохраненного в упомянутой базе данных. Номер параметра (данных) в виртуальной базе данных (сетевой номер параметра, виртуальный идентификатор) определяет местоположение значения, сохраненного в передаваемом пакетами наборе данных реального времени (или, в частном случае, архиве данных), в частности, в базе данных, содержащей упомянутые передаваемые данные, причем в такой базе данных (сетевой базе данных, виртуальной базе данных) хранятся значения параметров, передаваемые на другие узлы сети. На каждом узле сети номера параметров в виртуальной базе данных преобразуются в номера параметров (данных) в базе данных принимающего узла сети, значения которых сохраняются в базы данных реального времени соответствующих узлов сети. Так, например, группа параметров с номерами параметров, значения которых (номеров) сохранены в БД данных реального времени 313 и равны, например, «1» и «2» соответственно (т.е. в частном случае, значение первого параметра сохранено в первой ячейке таблицы БД данных реального времени, а значение второго параметра - во второй ячейке такой таблицы), преобразуются в номера параметров виртуальной базы данных, например, «3» и «4», и записываются в пакет данных, передаваемый в вычислительную сеть, по крайней мере, на один узел сети, например, узел сети 373. Далее при получении такого пакета данных узел сети 373 преобразует номера параметров «3» и «4» виртуальной базы данных в номера параметров (данных) принимающего узла сети, например, «1» и «255» соответственно. Также, по крайней мере, один другой узел, отличный от узла 373, который получил отправленный в вычислительную сеть пакет данных, преобразует сетевые номера параметров виртуальной базы данных «3» и «4» в номера параметров принимающего узла сети, например, «5» и «4» соответственно. Преобразование номеров параметров передающей стороны (передающего узла сети) в номера параметров виртуальной базы данных осуществляется передающим наборы данных узлом сети (или, по крайней одним модулем такого узла сети или связанным с ним модулем) с использованием таблицы соответствия (связи) номеров параметров передающей стороны с номерами параметров виртуальной базы данных, примерный вариант которой показан на ФИГ. 7 (707, таблица соответствия номеров параметров передающего узла сети 626 номерам параметром виртуальной базы данных 636). При формировании наборов данных, передаваемых пакетами данных, узел сети 313 осуществляет чтение номеров параметров из БД данных реального времени 323 узла сети 313 и осуществляет их поиск в таблице соответствия 707 (ФИГ. 7), после чего осуществляет чтение соответствующих им номеров параметров виртуальной БД в этой же таблице 707 (ФИГ. 7), после чего добавляет их в передаваемые пакеты данных. Обратное преобразование номеров параметров виртуальной базы данных в номера параметров принимающего узла сети 646 осуществляется получающим пакеты данных узлом сети (или, по крайней одним модулем такого узла сети или связанным с ним модулем), например, узлом сети 373, с использованием таблицы соответствия (808, ФИГ. 808) номеров параметров виртуальной БД 636 номерам параметров принимающего узла сети 646, примерный вариант которой показан на ФИГ. 8.
В процессе формирования узлом сети 313 пакетов, содержащих наборы данных реального времени (включая наборы данных реального времени в полном объеме, наборы только изменившихся данных реального времени, в том числе при контрольной передаче данных) узлом сети 313 осуществляется преобразование номеров параметров данных, передаваемых узлами сети пакетами (656) данных на другие узлы сети. В частности, осуществляется присвоение номеров параметров виртуальной базы данных 636 для значений из БД данных реального времени 323, причем каждый номер параметров виртуальной базы данных 636 соответствует номеру параметров передающего узла сети 626 для значения, хранящегося в БД данных реального времени 323, как показано на ФИГ. 7.