RU2668738C1 - Method and system for visual creation of programs for computer devices - Google Patents

Method and system for visual creation of programs for computer devices Download PDF

Info

Publication number
RU2668738C1
RU2668738C1 RU2017139719A RU2017139719A RU2668738C1 RU 2668738 C1 RU2668738 C1 RU 2668738C1 RU 2017139719 A RU2017139719 A RU 2017139719A RU 2017139719 A RU2017139719 A RU 2017139719A RU 2668738 C1 RU2668738 C1 RU 2668738C1
Authority
RU
Russia
Prior art keywords
algoblock
algoblocks
program
data
outputs
Prior art date
Application number
RU2017139719A
Other languages
Russian (ru)
Inventor
Владислав Олегович Лебедев
Original Assignee
Общество с ограниченной ответственностью "УМИКОН"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "УМИКОН" filed Critical Общество с ограниченной ответственностью "УМИКОН"
Priority to RU2017139719A priority Critical patent/RU2668738C1/en
Application granted granted Critical
Publication of RU2668738C1 publication Critical patent/RU2668738C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

FIELD: information technology.SUBSTANCE: invention relates to a method and system for visual creation of programs for computing devices. System comprises a graphical user interface through which an algoblock program for the computing device is created by selecting and the adding of algoblocks from the list of available algoblocks, and the creation of an algoblock program is performed by specifying a sequence of algoblocks and links between their inputs and outputs by setting a pre-fixed sequence of algoblocks for the settings of the algoblocks and the connections between their inputs and outputs, and executing the hardware and software environment that implements the algoblock program, which sequentially executes the algorithm after the algoblock, choosing from their first list (array) their codes and links – references to the data for this algoblock – in the second list (array), and the executing environment operates under the control of the source code of the algoblock program consisting of the mentioned arrays, created and modified in the visual environment of algoblock programming and is an interpreter, and each block is accessible to the entire volume of the mentioned data sets.EFFECT: technical result is to automate the creation of programs for computing devices.13 cl, 38 dwg, 9 tbl

Description

Область техникиTechnical field

Изобретение относится к компьютерным системам и, более конкретно, к системам и способам создания программ для вычислительных устройств, а именно для визуального создания программ для вычислительных устройств.The invention relates to computer systems and, more specifically, to systems and methods for creating programs for computing devices, namely for the visual creation of programs for computing devices.

Уровень техникиState of the art

В настоящее время подавляющее большинство существующих способов и систем программирования остаются текстовыми (скриптовыми). Они требуют от программиста знания правильного применения и расположения текстовых знаков (букв, цифр, знаков препинания и т.п.), не всякое сочетание которых является правильным текстом программы, то есть излишняя свобода действий при программировании приводит к возможности синтаксических ошибок, значительно затрудняя и удлиняя процесс программирования и отвлекая от основной его задачи – создания и реализации правильного алгоритма. Программист перегружается ненужными знаниями по употреблению текстовых знаков и их сочетаний и усилиями по соблюдению этих правил, отвлекается от самого процесса программирования.Currently, the vast majority of existing programming methods and systems remain textual (scripted). They require the programmer to know the correct use and location of text characters (letters, numbers, punctuation marks, etc.), not every combination of which is the correct text of the program, that is, excessive freedom of action during programming leads to the possibility of syntax errors, significantly complicating and lengthening the programming process and distracting from its main task - the creation and implementation of the correct algorithm. The programmer is overloaded with unnecessary knowledge on the use of text characters and their combinations and efforts to comply with these rules, distracted from the programming process itself.

Преодолеть этот принципиальный недостаток всех текстовых (скриптовых) языков позволяют визуальные языки и системы программирования, обеспечивающие символическое представление операции языка программирования как одного графического символа и визуальное представление связи между такими операциями. Такое представление позволяет программисту задавать операцию (оператор) выбором из допустимого набора операций, а передачу данных операции – путем визуального указания связи с другой операцией, откуда эти данные должны поступить. Это позволяет избавиться от необходимости самостоятельного подбора программистом правильного сочетания знаков, кодирующих как саму операцию, так и задание ее исходных данных. Однако существующие системы и способы визуального программирования являются лишь предтрансляторами к скриптовым (текстовым) языкам и потому наследуют часть их недостатков.To overcome this fundamental drawback of all text (scripting) languages, visual languages and programming systems that provide a symbolic representation of a programming language operation as a single graphic symbol and a visual representation of the relationship between such operations allow. This representation allows the programmer to specify the operation (operator) by choosing from an acceptable set of operations, and the transmission of the operation data by visual indication of the connection with another operation from where this data should come from. This eliminates the need for the programmer to independently select the correct combination of characters that encode both the operation itself and the task of its source data. However, existing systems and methods of visual programming are only pre-translators to script (text) languages and therefore inherit some of their shortcomings.

Например, известен способ визуального программирования набора команд для процесса (см. Заявка: 2006113579/09, Опубл. 27.10.2007), содержащий прием запроса на проектирование процесса; обеспечение интерактивного дисплея проектировщика процесса; сохранение библиотеки, содержащей, по меньшей мере, одну функцию, принятие, посредством интерактивного дисплея проектировщика процесса, связанной с функцией информации относительно функции, которая содержит, по меньшей мере, одно из ввода функции, вывода функции, соединения ввода в функцию, соединения вывода из функции и установки функции; вывод, посредством интерактивного дисплея проектировщика процесса, графического представления связанной с функцией информации и генерирование набора команд для процесса на основе функции и связанной с функцией информации.For example, there is a method for visually programming a set of instructions for a process (see Application: 2006113579/09, Publ. 27.10.2007), comprising receiving a request for a process design; providing an interactive display of the process designer; storing a library containing at least one function, accepting, through the interactive display of the process designer, information related to the function related to the function of the function, which contains at least one of the function input, function output, connection input to function, connection output from functions and function settings; the conclusion, through the interactive display of the process designer, a graphical representation of the information associated with the function and generating a set of instructions for the process based on the function and information associated with the function.

Как уже отмечалось, недостатками существующих технических решений является необходимость знания пользователем синтаксиса языков программирования, большое количество времени, затрачиваемого пользователем на создание и отладку программ для вычислительных устройств, а также низкая скорость интерпретирования создаваемых программ для вычислительных программ в реальном времени.As already noted, the disadvantages of existing technical solutions are the need for the user to know the syntax of programming languages, the large amount of time spent by the user on creating and debugging programs for computing devices, as well as the low speed of interpreting the created programs for computing programs in real time.

Задачей настоящего изобретения является преодоление недостатков существующих технических решений.The objective of the present invention is to overcome the disadvantages of existing technical solutions.

Сущность изобретенияSUMMARY OF THE INVENTION

Главное отличие не только от всех скриптовых (текстовых) систем программирования, но и существующих систем визуального программирования, например, вышеописанного способа визуального программирования и ему подобных - предлагаемый способ и реализующая его система настоящего изобретения обеспечивает непосредственный визуальный выбор нужной функции из списка возможных с немедленным ее выполнением при автоматическом согласовании типов данных и визуальным представлением результата сразу в момент выбора функции, а не генерирование набора текстовых команд (скриптов), выполняющих нужную функцию (операцию, оператор) с последующим их синтаксическим анализом, включая анализ правильности согласования типов данных, компиляцией и только затем исполнением.The main difference not only from all script (text) programming systems, but also existing visual programming systems, for example, the above-described visual programming method and the like, is the proposed method and the system of the present invention that implements it provides direct visual selection of the desired function from the list of possible with immediate the execution of automatic data type matching and visual presentation of the result immediately at the time of selecting the function, rather than generating a set and text commands (scripts) that perform the desired function (operation, operator) with their subsequent parsing, including analysis of the correctness of data type matching, compilation and only then execution.

Технический результат, достигаемый предлагаемым изобретением, состоит в снижении времени и затрат, затрачиваемых пользователем на создание программ для вычислительных устройств, а также в увеличении скорости интерпретирования создаваемых программ для вычислительных программ в реальном времени.The technical result achieved by the present invention is to reduce the time and cost spent by the user on creating programs for computing devices, as well as to increase the speed of interpretation of created programs for computing programs in real time.

Также технический результат, достигаемый предлагаемым изобретением, состоит в снижении времени и затрат, необходимых пользователю для обучения средствам программирования, а затем на создание и отладку с их помощью программ для вычислительных устройств.Also, the technical result achieved by the present invention is to reduce the time and cost necessary for the user to learn programming tools, and then to create and debug programs using them for computing devices.

Также технический результат, достигаемый предлагаемым изобретением, состоит в увеличении скорости интерпретирования создаваемых программ для вычислительных устройств, что позволяет реализовывать программы, выполняемые в реальном времени.Also, the technical result achieved by the present invention is to increase the speed of interpretation of the created programs for computing devices, which allows you to implement programs that run in real time.

Также технический результат, достигаемый предлагаемым изобретением, состоит в обеспечении возможности надежной верификации выполняемой программы ввиду однозначности восстановления программного кода существующей программы для его анализа.Also, the technical result achieved by the present invention is to enable reliable verification of the program being executed due to the unambiguity of restoring the program code of the existing program for its analysis.

Предлагается способ и система для визуального создания программ для вычислительных устройств, в которых осуществляется создание и редактирование пользователем посредством графического интерфейса пользователя программы (алгоблочной программы) для вычислительного устройства посредством выбора и добавления операторов (алгоблоков) из списка доступных алгоблоков, затем осуществляется связывание пользователем входов и выходов алгоблоков, чем обеспечивается задание потоков данных между операторами (алгоблоками), сразу после их создания алгоблоки осуществляют заданные кодом их типа (или кодом типа и их дополнительными параметрами) действия над данными, поступающими на входы алгоблоков, в соответствии с визуальными связями с выходами других алгоблоков (представляемыми ссылками в виде строк в таблице, содержащих номер алгоблока и его выхода, которые одновременно задают визуальное расположение линий связи) - по крайней мере, с одного выхода, по крайней мере, одного алгоблока, или ссылками, содержащими индекс значения в общем массиве данных (массивы данных являются векторами или матрицами данных, которые хранятся в базе данных), при этом результаты упомянутых выше действий алгоблоков остаются либо на выходах алгоблоков (вектор или матрица которых составляют базу данных выходов), либо записываются в соответствии со связями или ссылками (задающими номер элемента в массиве данных, в котором хранится результат) в общие массивы данных.A method and system for visually creating programs for computing devices in which a user creates and edits a program (algoblock program) for a computing device by means of a graphical user interface by selecting and adding operators (algoblocks) from the list of available algoblocks is performed, then the user is connected to the inputs and outputs of algoblocks, which ensures the specification of data flows between operators (algoblocks), immediately after their creation algoblocks perform actions specified by a code of their type (or type code and their additional parameters) on the data supplied to the inputs of the algoblocks, in accordance with visual connections with the outputs of other algoblocks (represented by links in the form of rows in the table containing the number of the algoblock and its output, which at the same time specify the visual arrangement of communication lines) - from at least one output of at least one algo block, or by links containing the index of the value in the general data array (data arrays are vectors and or data matrices that are stored in the database), while the results of the above-mentioned actions of the algoblocks remain either at the outputs of the algoblocks (the vector or matrix of which make up the database of outputs), or are written in accordance with the links or links (specifying the number of the element in the data array where the result is stored) into shared data arrays.

Визуально алгоблоки являются графическими элементами, которые, в свою очередь, являются визуальными изображениями устройств или узлов обработки в виде прямоугольников, таблиц, мнемонических изображений блоков или узлов обработки. Визуально представляются также линии связи, или указатели ссылок между входами и выходами алгоблоков и/или между наборами массивов данных, которые хранятся в базе данных.Visually algoblocks are graphic elements, which, in turn, are visual images of devices or processing units in the form of rectangles, tables, mnemonic images of blocks or processing units. Visually, communication lines, or link pointers between the inputs and outputs of the algoblocks and / or between sets of data arrays that are stored in the database, are also presented.

Создание алгоблочной программы может осуществляться следующими способами:Creating an algoblock program can be carried out in the following ways:

- путем задания, по крайней мере, одной последовательности алгоблоков и связей между их входами и выходами или между их входами и выходами и массивами данных;- by setting at least one sequence of algoblocks and connections between their inputs and outputs or between their inputs and outputs and data arrays;

- посредством задания для заранее фиксированной последовательности алгоблоков параметров настроек алгоблоков и связей между их входами и выходами или между их входами и выходами и массивами данных.- by setting for a predetermined sequence of algoblocks the parameters of the settings of the algoblocks and the connections between their inputs and outputs or between their inputs and outputs and data arrays.

Осуществляется выполнение алгоблочной программы исполняющей средой, которая является неизменяемой программой и которая последовательно выполняет алгоблок за алгоблоком, выбирая из первого списка (массива) их коды и связи - ссылки на данные для этого алгоблока - во втором списке (массиве), то есть исполняющая среда работает под управлением исходного кода алгоблочной программы, состоящего из упомянутых массивов, создаваемого и изменяемого в визуальной среде алгоблочного программирования, и является интерпретатором, причем каждому алгоблоку доступен весь объем упомянутых массивов данных.The algoblock program is executed by the runtime environment, which is an immutable program and which sequentially executes the algoblock behind the algoblock, selecting their codes and links from the first list (array) - the data links for this algoblock are in the second list (array), that is, the runtime runs under the control of the source code of the algoblock program, consisting of the mentioned arrays, created and modified in the visual environment of the algoblock programming, it is an interpreter, and each algob oku available the entire volume of said data arrays.

При необходимости одновременного решения задач с разным периодом обработки данных системой визуального программирования и исполняющей средой обеспечивается возможность разделения алгоблоков на разные циклы обхода:If it is necessary to simultaneously solve problems with a different period of data processing by the visual programming system and the runtime, it is possible to separate algoblocks into different bypass cycles:

- первый цикл имеет наименьший период выполнения - в данном цикле решаются задачи, требующие наиболее частого исполнения;- the first cycle has the shortest execution period - in this cycle, tasks that require the most frequent execution are solved;

- второй цикл исполнения может быть разделен (разбит) на несколько частей, и после каждого выполнения первого цикла выполняются последовательно алгоблоки очередной части второго цикла с первой по последнюю, и весь второй цикл выполняется за столько периодов исполнения первого цикла, на сколько частей разбит второй цикл;- the second execution cycle can be divided (divided) into several parts, and after each execution of the first cycle, the algoblocks of the next part of the second cycle from the first to the last are executed sequentially, and the entire second cycle is performed for as many periods of execution of the first cycle as the number of parts of the second cycle ;

- третий цикл соотносится со вторым, как второй с первым.- the third cycle corresponds to the second, as the second to the first.

Выполнение алгоблочной программы осуществляется исполняющей средой в бесконечном цикле, за исключением особых режимов, когда работа программы ограничивается одним циклом.The execution of the algoblock program is performed by the runtime in an infinite loop, with the exception of special modes, when the program is limited to one cycle.

Создание и редактирование алгоблочной программы осуществляется посредством редактирования пользователем упомянутых массивов, составляющих алгоблочную программу путем задания или редактирования последовательности алгоблоков посредством их выбора из списка возможных типов алгоблоков и задания входных данных для алгоблоков либо посредством графического указания связей входов и выходов алгоблоков, либо выбором входов и выходов из списка возможных баз данных и номеров их элементов.Creating and editing an algoblock program is carried out by editing the user of the arrays that make up the algoblock program by specifying or editing the sequence of algoblocks by selecting them from the list of possible types of algoblocks and specifying input data for the algoblocks or by graphically indicating the connections of the inputs and outputs of the algoblocks, or by choosing the inputs and outputs from a list of possible databases and their item numbers.

Ввиду невозможности ввода недопустимых или некорректных данных в любой момент создания и/или редактирования алгоблочной программы, алгоблочная программа не содержит синтаксических ошибок и ошибок зацикливания, что позволяет продолжать ее выполнение средой исполнения при создании и редактировании алгоблочной программы и, в свою очередь, позволяет обеспечить визуальный контроль результата редактирования программы непосредственно в момент выполнения редакции.Due to the impossibility of entering invalid or incorrect data at any time when creating and / or editing the algoblock program, the algoblock program does not contain syntax errors and looping errors, which allows its execution to continue while the runtime program is being created and edited and, in turn, allows visual control of the result of editing the program directly at the time of editing.

Поскольку создание и редактирование пользователем упомянутых массивов, составляющих алгоблочную программу, осуществляется путем задания или редакции последовательности алгоблоков выбором их из списка возможных типов алгоблоков и задания входных данных для них в графическом интерфейсе пользователя либо графическим указанием связей входов и выходов алгоблоков, либо выбором данных их списка допустимых, гарантируя этим невозможность ввода недопустимых или некорректных данных в любой момент создания или редакции, алгоблочная программа позволяет продолжать ее выполнение при ее создании и редактировании в виду отсутствия синтаксических ошибок и ошибок зацикливания, обеспечивая визуальный контроль результата редактирования программы сразу в момент его выполнения.Since the creation and editing by the user of the mentioned arrays constituting the algoblock program is carried out by defining or editing the sequence of algoblocks by selecting them from the list of possible types of algoblocks and specifying the input data for them in the graphical user interface or by graphically indicating the connections of the inputs and outputs of the algoblocks, or by selecting data from their list permissible, thereby guaranteeing the impossibility of entering invalid or incorrect data at any time during the creation or editing of an algoblock program and allows you to continue its implementation when you create and edit it in the absence of syntax errors and loop errors, providing visual control of the result of editing the program immediately at the time of its execution.

При создании и редактировании алгоблочной программы типы данных между входами и выходами алгоблоков (операторов), а также между входами и выходами алгоблоков (операторов) и между внешними базами данных, согласуются автоматически по предустановленным правилам.When creating and editing an algoblock program, the data types between the inputs and outputs of the algoblocks (operators), as well as between the inputs and outputs of the algoblocks (operators) and between external databases, are automatically coordinated according to predefined rules.

При создании и редактировании алгоблочной программы непосредственный текстовый ввод чисел или других символьных последовательностей осуществляется с контролем непосредственно в процессе ввода как допустимости ввода каждого символа, так и допустимость вводимого числа или другой символьной последовательности целиком таким образом, чтобы в момент окончания ввода это число или последовательность сразу могли использоваться в алгоблочной программе.When creating and editing an algoblock program, direct text input of numbers or other symbol sequences is carried out with control directly during input of both the validity of each character input and the validity of the input number or other character sequence in such a way that at the moment of input completion this number or sequence immediately could be used in an algoblock program.

Возможно создание и редактирование алгоблочной программы на одном вычислительном устройстве с последующей передачей алгоблочной программы в другое вычислительное устройство, откуда затем осуществляется получение текущих данных программы, причем сохраненная и переданная алгоблочная программа однозначно и полностью соответствует изначально созданной алгоблочной программе, поэтому может быть извлечена из вычислительного устройства, на котором происходит ее выполнение, посредством извлечения составляющих ее вышеописанных массивов, отображена, проверена (верифицирована) и отредактирована пользователем на другом вычислительном устройстве.It is possible to create and edit the algoblock program on one computing device, followed by the transfer of the algoblock program to another computing device, from where the current program data is then obtained, and the stored and transmitted algoblock program uniquely and completely corresponds to the originally created algoblock program, and therefore can be extracted from the computing device on which it is executed by extracting the arrays of the above-described arrays , displayed, verified (verified) and edited by the user on another computing device.

В зависимости от решаемых задач, структуры и объемов требующей обработки информации алгоблочные программы делятся на три уровня:Depending on the tasks to be solved, the structure and volumes of information requiring processing, block-based programs are divided into three levels:

- нижний уровень с малым количеством данных и, соответственно, возможностью предусмотреть заранее набор всех необходимых операций по их обработки - на этом уровне набор и последовательность алгоблоков фиксирована, часть или все алгоблоки реализованы аппаратно, программирование заключается в настройке связок для данных алгоблоков и параметров алгоблоков и является наиболее простым и доступным;- the lower level with a small amount of data and, accordingly, the ability to foresee a set of all the necessary operations for their processing - at this level, the set and sequence of algoblocks are fixed, part or all of the algoblocks are implemented in hardware, programming consists in setting up connectives for the given algoblocks and parameters of the algoblocks is the most simple and affordable;

- средний уровень с небольшим количеством данных, требующих большого разнообразия функций их обработки – для этого уровня задаются при программировании последовательность алгоблоков и их типы, база данных состоит из выходов алгоблоков, связи для входов алгоблоков ссылаются на выходы в этой базе, небольшая часть алгоблоков может реализовываться аппаратно, на данном уровне алгоблочная система программирования представляет собой цифровую модель аналоговой вычислительной машины;- an average level with a small amount of data requiring a wide variety of processing functions - for this level, the sequence of algoblocks and their types are specified during programming, the database consists of the outputs of the algoblocks, the connections for the inputs of the algoblocks refer to the outputs in this database, a small part of the algoblocks can be implemented hardware, at this level, the algoblock programming system is a digital model of an analog computer;

- верхний уровень, характеризующийся большими массивами информации: задаются при программировании последовательность алгоблоков и типы, базы данных внешние и для входов и выходов задаются ссылки на них.- the upper level, characterized by large amounts of information: when programming, the sequence of algoblocks and types are set, the databases are external and links to them are set for inputs and outputs.

Между алгоблочными программами различных уровней взаимодействие выполняется путем задания связей между их базами данных, аналогично связкам (связям) внутри алгоблочных программ.Between algoblock programs of different levels, interaction is performed by setting the links between their databases, similar to the bundles (links) inside the algoblock programs.

Между алгоблочными программами различных вычислительных устройств взаимодействие выполняется путем задания связей между их базами данных, аналогично связкам внутри алгоблочных программ или связям между алгоблочными программами различных уровней внутри одного вычислительного устройства, при этом собственно передача данных между устройствами может осуществляться по любому из существующих или возникших в будущем каналов обмена данными между вычислительными устройствами.The interaction between the algoblock programs of various computing devices is performed by setting the connections between their databases, similarly to the bonds within the algoblock programs or the bonds between the algoblock programs of various levels within the same computing device, while the actual data transfer between the devices can be carried out according to any existing or future communication channels between computing devices.

Предлагаемое изобретение поясняется чертежами:The invention is illustrated by drawings:

На ФИГ. 1 показан примерный вариант создания алгоблочной программы среднего уровня, согласно одной из реализаций настоящего изобретения;In FIG. 1 shows an exemplary embodiment of a mid-level algoblock program according to one implementation of the present invention;

На ФИГ. 2 показано меню, позволяющее пользователю добавить новый алгоблок, согласно одной из реализаций настоящего изобретения;In FIG. 2 shows a menu allowing a user to add a new algoblock, according to one implementation of the present invention;

На ФИГ. 3 показан примерный вариант компонентов алгоблочной программы, согласно одной из реализаций настоящего изобретения;In FIG. 3 shows an exemplary embodiment of components of an algoblock program, according to one implementation of the present invention;

На ФИГ. 4 показано окно (меню) настройки параметров алгоблока, согласно одной из реализаций настоящего изобретения;In FIG. 4 shows a window (menu) for setting parameters of an algoblock, according to one implementation of the present invention;

На ФИГ. 5 показан примерный вариант отображения ошибки выполнения операции алгоблоком, согласно одной из реализаций настоящего изобретения;In FIG. 5 shows an exemplary embodiment of displaying an operation error by an algoblock, according to one implementation of the present invention;

На ФИГ. 6 показан примерный вариант алгоблочной программы с добавленными логическим алгоблоком и алгоблоком заданий, согласно одной из реализаций настоящего изобретения;In FIG. 6 shows an exemplary embodiment of an algoblock program with added logical algoblock and task algoblock, according to one implementation of the present invention;

На ФИГ. 7 показано подменю выходных данных для алгоблока заданий, согласно одной из реализаций настоящего изобретения;In FIG. 7 shows a submenu of output data for the task unit according to one implementation of the present invention;

На ФИГ. 8 показано меню задания значения для входа алгоблока, согласно одной из реализаций настоящего изобретения;In FIG. 8 shows a menu for setting a value for an algoblock input, according to one implementation of the present invention;

На ФИГ. 9 показано меню настройки параметров алгоблока для изменения значения по умолчанию входа алгоблока, согласно одной из реализаций настоящего изобретения;In FIG. 9 shows an algoblock parameter setting menu for changing the default value of an algoblock input according to one implementation of the present invention;

На ФИГ. 10 показан примерный вариант интерфейса настроек алгоблока, согласно одной из реализаций настоящего изобретения;In FIG. 10 shows an exemplary embodiment of an algoblock settings interface, according to one implementation of the present invention;

На ФИГ. 11 окно свойств алгоблока сравнения, согласно одной из реализаций настоящего изобретения;In FIG. 11 is a window of properties of the comparison algoblock, according to one implementation of the present invention;

На ФИГ. 12 показан один из вариантов системного окна программы, согласно одной из реализаций настоящего изобретения;In FIG. 12 shows one embodiment of a system window of a program according to one implementation of the present invention;

На ФИГ. 13 окно среды визуального табличного программирования, использующееся для создания алгоблочной программы на верхнем уровне, согласно одной из реализаций настоящего изобретения;In FIG. 13 is a window of a visual table programming environment used to create an algoblock program at a higher level according to one implementation of the present invention;

На ФИГ. 14 показано окно редактирования алгоблока в режиме редактирования алгоблочных программ верхнего уровня, согласно одной из реализаций настоящего изобретения;In FIG. 14 shows an algoblock editing window in a top-level algoblock program editing mode according to one implementation of the present invention;

На ФИГ. 15 показано меню выбора источника данных для алгоблока, согласно одной из реализаций настоящего изобретения;In FIG. 15 shows a data source selection menu for an algoblock, according to one implementation of the present invention;

На ФИГ. 16 показано окно редактирования алгоблока с выбранной «Арифметической» операцией в качестве операции для двух операндов, согласно одной из реализаций настоящего изобретения;In FIG. 16 shows an algoblock editing window with the selected “Arithmetic” operation as an operation for two operands, according to one implementation of the present invention;

На ФИГ. 17 показано меню выбора типа арифметической операции, которая осуществляется пользователем при выборе типа арифметической операции, согласно одной из реализаций настоящего изобретения;In FIG. 17 shows a menu for selecting the type of arithmetic operation that is performed by the user when selecting the type of arithmetic operation, according to one implementation of the present invention;

На ФИГ. 18 показан пример окна редактирования алгоблока с выбранной «Арифметической» операцией в качестве операции для двух операндов, согласно одной из реализаций настоящего изобретения;In FIG. 18 shows an example of an algoblock editing window with the selected “Arithmetic” operation as the operation for two operands, according to one implementation of the present invention;

На ФИГ. 19 показано окно базы данных аналоговых сигналов, согласно одной из реализаций настоящего изобретения;In FIG. 19 shows a database window of analog signals, according to one implementation of the present invention;

На ФИГ. 20 пример выставления пользователем шага для слагаемых и суммы, согласно одной из реализаций настоящего изобретения;In FIG. 20 is an example of setting a step by a user for terms and sums, according to one implementation of the present invention;

На ФИГ. 21 показано окно базы данных аналоговых сигналов для алгоблока, согласно одной из реализаций настоящего изобретения;In FIG. 21 shows a database window of analog signals for an algoblock, according to one implementation of the present invention;

На ФИГ. 22 изображен примерный вариант процедур и управление исполнением, согласно одной из реализаций настоящего изобретения;In FIG. 22 depicts an exemplary embodiment of procedures and execution control, according to one implementation of the present invention;

На ФИГ. 23 изображен примерный вариант структуры алгоблока, согласно одной из реализаций настоящего изобретения;In FIG. 23 shows an exemplary embodiment of an algoblock structure, according to one implementation of the present invention;

На ФИГ. 24 изображен примерный вариант структуры операнда алгоблока, согласно одной из реализаций настоящего изобретения;In FIG. 24 shows an exemplary embodiment of the structure of the operand of an algoblock, according to one implementation of the present invention;

На ФИГ. 25 изображен примерный вариант структуры операции и результата, согласно одной из реализаций настоящего изобретения;In FIG. 25 shows an exemplary embodiment of the structure of the operation and the result, according to one implementation of the present invention;

На ФИГ. 26 показан пример структурированности данных операндов и результата, определяемой списком, согласно одной из реализаций настоящего изобретения;In FIG. 26 shows an example of the structure of these operands and the result determined by the list, according to one implementation of the present invention;

На ФИГ. 27 показан примерный вариант пользовательского интерфейса для взаимодействия с базами данных, согласно одной из реализаций настоящего изобретения;In FIG. 27 shows an exemplary user interface for interacting with databases, according to one implementation of the present invention;

На ФИГ. 28 показан один из вариантов интерфейса пользователя для описания базы данных, согласно одной из реализаций настоящего изобретения;In FIG. 28 shows one embodiment of a user interface for describing a database, according to one implementation of the present invention;

На ФИГ. 29 показан примерный вариант алгоблока слота, согласно одной из реализаций настоящего изобретения;In FIG. 29 shows an exemplary embodiment of an algoblock slot, according to one implementation of the present invention;

На ФИГ. 30 показан примерный вариант алгоблока слота Память, согласно одной из реализаций настоящего изобретения;In FIG. 30 shows an exemplary embodiment of an algoblock of a Memory slot, according to one implementation of the present invention;

На ФИГ. 31 показан примерный вариант алгоблока слота FRAM, согласно одной из реализаций настоящего изобретения;In FIG. 31 shows an exemplary algoblock of a FRAM slot, according to one implementation of the present invention;

На ФИГ. 32 показан примерный вариант алгоблока слота CAN, согласно одной из реализаций настоящего изобретения;In FIG. 32 shows an exemplary algoblock of a CAN slot, according to one implementation of the present invention;

На ФИГ. 33 показан примерный вариант окна списка алгоблоков, согласно одной из реализаций настоящего изобретения;In FIG. 33 shows an exemplary embodiment of an algoblock list window, according to one implementation of the present invention;

На ФИГ. 34 показан вариант арифметического алгоблока, согласно одной из реализаций настоящего изобретения;In FIG. 34 shows an embodiment of an arithmetic algoblock, according to one implementation of the present invention;

На ФИГ. 35 показан примерный вариант отображения двух связанных между собой алгоблоков, согласно одной из реализаций настоящего изобретения;In FIG. 35 shows an exemplary display of two interconnected algoblocks, according to one implementation of the present invention;

На ФИГ. 36 показан примерный вариант внешнего вида окна настройки параметров алгоблока, согласно одной из реализаций настоящего изобретения;In FIG. 36 shows an exemplary appearance of an algoblock parameter setting window according to one implementation of the present invention;

На ФИГ. 37 показано окно настройки входов алгоблока, согласно одной из реализаций настоящего изобретения;In FIG. 37 shows a window for configuring inputs of an algoblock, according to one implementation of the present invention;

На ФИГ. 38 показано окно (интерфейса, страницы и т.д.) настройки выходов алгоблока, согласно одной из реализаций настоящего изобретения.In FIG. 38 shows a window (of an interface, page, etc.) for setting the outputs of an algoblock, according to one implementation of the present invention.

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, и может быть реализовано в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, предоставленными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.The objects and features of the present invention, methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present invention is not limited to the exemplary embodiments disclosed below, and may be implemented in various forms. The essence described in the description is nothing more than the specific details provided to assist the specialist in the field of technology in a comprehensive understanding of the invention, and the present invention is defined only in the scope of the attached claims.

Используемые в настоящем описании изобретении термины «компонент», «элемент», «система», «модуль», «часть», в частности, «составная часть», и подобные предназначены (используются) для обозначения компьютерных сущностей (сущностей/объектов, связанных с компьютером, вычислительных сущностей), которые могут являться аппаратным обеспечением/оборудованием (например, устройством, инструментом, аппаратом, аппаратурой, составной частью устройства, в частности, процессором, микропроцессором, печатной платой и т.д.), программным обеспечением (например, исполняемым программным кодом, скомпилированным приложением, программным модулем, частью программного обеспечения и/или кода и т.д.) или микропрограммой (прошивкой/firmware). Так, например, компонент может быть процессом, выполняющемся/исполняющимся на процессоре, процессором, объектом, исполняемым файлом, программой, функцией, методом, библиотекой, подпрограммой и/или вычислительным устройством (например, микрокомпьютером или компьютером) или комбинацией программного или аппаратного обеспечения.Used in the present description of the invention, the terms "component", "element", "system", "module", "part", in particular, "component", and the like are intended (used) to refer to computer entities (entities / objects associated with a computer, computing entities), which can be hardware / equipment (for example, a device, instrument, apparatus, equipment, part of a device, in particular, a processor, microprocessor, printed circuit board, etc.), software (on Example, executable program code, compile the application, software module, part of the software and / or code, etc.) or firmware (firmware / firmware). So, for example, a component can be a process running / executing on a processor, a processor, an object, an executable file, a program, a function, a method, a library, a subprogram and / or a computing device (for example, a microcomputer or a computer) or a combination of software or hardware.

В настоящем изобретении описывается способ и система для визуального создания программ (программного обеспечения) для вычислительных устройств с исполняющей системой (средой исполнения), в частности, способ и система для создания программного обеспечения с использованием визуальных элементов - графических элементов или таблиц, включая среду исполнения созданного программного обеспечения.The present invention describes a method and system for visually creating programs (software) for computing devices with a runtime system (runtime), in particular, a method and system for creating software using visual elements — graphic elements or tables, including the runtime created software.

Описываемая система визуального программирования, включая среду исполнения, в первую очередь предназначена для создания САУ (систем автоматического управления) и АСУ ТП (автоматизированных систем управления технологических процессов), прежде всего компонентов реального времени таких систем, промышленных объектов от отдельного агрегата (например, насоса или станка), цеха, насосной станции, атомного реактора и т.п. до завода, электростанции или газопровода целиком, транспортных средств (автомобилей, поездов, кораблей самолетов и т.п.), объектов городской инфраструктуры, включая, например, "умный дом " и т.п., и рассчитана на программирование прежде всего промышленных контроллеров, планшетных, панельных, бортовых и настольных компьютеров в таких системах. Однако возможно применение данной системы для программирования любых компьютерных устройств, включая сотовые телефоны, часы, бытовые приборы, средства связи, информации, развлечений и т.п.The described system of visual programming, including the execution environment, is primarily intended for the creation of self-propelled guns (automatic control systems) and automated process control systems (automated process control systems), primarily real-time components of such systems, industrial facilities from a separate unit (for example, a pump or machine), workshop, pump station, nuclear reactor, etc. to the plant, power station or the entire gas pipeline, vehicles (cars, trains, aircraft ships, etc.), urban infrastructure, including, for example, a "smart home", etc., and is designed to program primarily industrial controllers , tablet, panel, on-board and desktop computers in such systems. However, it is possible to use this system for programming any computer devices, including cell phones, watches, household appliances, communications, information, entertainment, etc.

Визуальное программирование реализуется как имитация сборки, настройки и наладки реального устройства, например, аналоговой вычислительной машины или системы управления:Visual programming is implemented as an imitation of the assembly, configuration and commissioning of a real device, for example, an analog computer or a control system:

- или путем выбора из фиксированного набора нужных блоков или узлов обработки, соединения их между собой или связями в виде, например, проводов или труб в нужной последовательности;- or by choosing from a fixed set of the necessary blocks or processing units, connecting them together or in the form of, for example, wires or pipes in the desired sequence;

- или раскладыванием по ячейкам, заполнением ячеек фиксированной структуры – таблицы - элементами (блоками, узлами, ссылками) выбором из списка возможных для каждой ячейки;- or laying out the cells, filling in the cells of a fixed structure - the table - elements (blocks, nodes, links) by choosing from a list of possible for each cell;

- последующей настройкой изменением параметров узлов в ограниченных границами допустимости диапазонах.- subsequent adjustment by changing the parameters of the nodes in the ranges limited by the admissibility limits.

Данные между узлами обработки, являющимися операторами языка, согласуются автоматически по предустановленным правилам.Data between processing nodes, which are language operators, are automatically negotiated according to predefined rules.

В частном случае осуществления настоящего изобретения графическими элементами являются визуальные изображения устройств или узлов обработки - алгоблоков (которые более подробно описаны далее), например, в виде прямоугольников, таблиц, мнемонических изображений блоков или узлов обработки, а также или линии связи или указатели ссылок между их входами и выходами и/или между наборами массивов данных, которые могут храниться, по крайней мере, в одной базе данных, например, в виде одной таблицы или нескольких таблиц.In the particular case of the implementation of the present invention, graphic elements are visual images of devices or processing units — algoblocks (which are described in more detail below), for example, in the form of rectangles, tables, mnemonic images of blocks or processing units, as well as communication lines or link pointers between them inputs and outputs and / or between sets of data arrays that can be stored in at least one database, for example, as a single table or several tables.

Визуальный алгоблочный язык программирования позволяет создавать программное обеспечение (например, приложения):Visual algoblock programming language allows you to create software (for example, applications):

- путем задания по крайней мере одной последовательности алгоблоков и связей между их входами и выходами или между их входами и выходами и массивами обрабатываемых данных:- by setting at least one sequence of algoblocks and connections between their inputs and outputs or between their inputs and outputs and arrays of processed data:

- посредством задания для заранее фиксированной последовательности алгоблоков параметров настроек алгоблоков и связей между их входами и выходами или между их входами и выходами и массивами обрабатываемых данных.- by setting for a predetermined sequence of algoblocks the parameters of the settings of the algoblocks and the connections between their inputs and outputs or between their inputs and outputs and arrays of processed data.

Алгоблоки являются операторами (компонентами) описываемого способа и системы - визуального алгоблочного языка программирования. Алгоблоки осуществляют заданные кодом их типа или кодом типа и их дополнительными параметрами действия (например, сложение, поиск максимального, логические операции, интегрирование во времени и т.п.) над данными, поступающими на их, алгоблоков, входы, в соответствии со связями, заданными связками или ссылками (например, в виде строк в таблице, содержащих номер алгоблока и его выхода, откуда данные берутся, или содержащих индекс значения в массиве (в БД) обрабатываемых данных), по крайней мере, с одного выхода, по крайней мере, одного алгоблока (например, выхода того же алгоблока или другого алгоблока, как более подробно описано далее) или из общих массивов обрабатываемых данных. В частном случае осуществления настоящего изобретения массив данных является вектором или матрицей данных, которые могут быть сохранены, по крайней мере, в одной базе данных.Algoblocks are the operators (components) of the described method and system — the visual algoblock programming language. Algoblocks carry out the actions specified by a code of their type or type code and their additional action parameters (for example, addition, maximum search, logical operations, integration over time, etc.) over the data coming into them, algoblocks, inputs, in accordance with the connections, specified links or links (for example, as rows in a table containing the number of the algoblock and its output, where the data are taken from, or containing the index of the value in the array (in the database) of the processed data) from at least one output of at least one algoblock ( for example, the output of the same algoblock or another algoblock, as described in more detail below) or from common arrays of processed data. In the particular case of the implementation of the present invention, the data array is a vector or matrix of data that can be stored in at least one database.

Результаты упомянутых выше действий алгоблоков остаются либо на выходах алгоблоков, вектор или матрица которых составляют базу обработанных данных, либо записываются в соответствии со связками или ссылками (которые задают, например, номер элемента в массиве (в БД) обрабатываемых данных, куда помещается результат) в общие массивы обрабатываемых данных (в БД).The results of the above-mentioned actions of the algoblocks remain either at the outputs of the algoblocks, the vector or matrix of which constitutes the database of the processed data, or are written in accordance with the links or links (which specify, for example, the number of the element in the array (in the database) of the processed data where the result is placed) in general arrays of processed data (in the database).

Таким образом, программа визуального алгоблочного языка программирования является набором массивов (векторов) данных, в частности, чисел, и может, в частном случае, иметь следующую структуру:Thus, a program of a visual algoblock programming language is a set of arrays (vectors) of data, in particular numbers, and can, in a particular case, have the following structure:

- Массив, в частности, вектор, содержащий числа, каждое из которых определяет тип алгоблока, а последовательность таких чисел массива (вектора) задает последовательность исполнения алгоблоков. Например, число «1» упомянутого массива может задавать (определять) алгоблок сложения, «2» упомянутого массива задает алгоблок вычитания (возможны также алгоблоки любых арифметических и логических операций, динамических операций, таких как триггеры или интеграторы, или их комбинаций различной степени сложности, каждому типу алгоблока присваивается свой код) и т.д. Тогда последовательность чисел в массиве 1,2,2,1 задает последовательность алгоблоков, выполняющих операции: Сложение, Вычитание, Вычитание, Сложение.- An array, in particular, a vector containing numbers, each of which determines the type of algoblock, and the sequence of such numbers of the array (vector) defines the sequence of execution of the algoblocks. For example, the number “1” of the mentioned array can specify (define) the addition algo block, the “2” of the mentioned array defines the subtraction algo block (it is also possible to use any arithmetic and logical operations, dynamic operations, such as triggers or integrators, or combinations of different complexity, each type of algoblock is assigned its own code), etc. Then the sequence of numbers in the array 1,2,2,1 defines the sequence of algorithms that perform the operations: Addition, Subtraction, Subtraction, Addition.

Возможен также вариант реализации, при котором число «1» упомянутого массива может задавать (определять) алгоблок выполнения арифметических операций, для которого тип операции задаваться параметром алгоблока который, в свою очередь, задается в другом массиве (векторе), в котором для алгоблока арифметических операций (типа 1) сложение задается числом 1, вычитание – числом 2, умножение – числом 3 и т.д., число «2» может задавать (определять) алгоблок выполнения логических операций для которого тип операции задаваться параметром алгоблока, который, в свою очередь, также задается в дополнительном массиве (векторе) параметров алгоблоков, в котором для алгоблока логических операций (типа 2) операция «И» задается числом 1, «ИЛИ» – числом 2 и т.д. В этом случае приведенный выше пример последовательности операций - Сложение, Вычитание, Вычитание, Сложение - задается двумя связанными массивами: массивом последовательности алгоблоков 1, 1, 1, 1 и массивом их параметров - 1,2,2,1.An implementation option is also possible, in which the number “1” of the mentioned array can specify (determine) the arithmetic execution unit, for which the type of operation is set by the parameter of the algo unit which, in turn, is set in another array (vector), in which for the arithmetic unit (type 1) addition is specified by number 1, subtraction - by number 2, multiplication - by number 3, etc., number “2” can specify (define) the logic block for performing logical operations for which the type of operation is specified by the parameter of the block, which which, in turn, is also specified in an additional array (vector) of parameters of the algoblocks, in which for the algoblock of logical operations (type 2) the operation "AND" is specified by the number 1, "OR" - by the number 2, etc. In this case, the above example of the sequence of operations - Addition, Subtraction, Subtraction, Addition - is defined by two connected arrays: an array of the sequence of algoblocks 1, 1, 1, 1 and an array of their parameters - 1,2,2,1.

Отдельным типом алгоблока является алгоблок вызова подпрограммы, обработка которого заключается в запуске последовательности алгоблоков, представляющих собой подпрограмму.A separate type of algoblock is the subroutine call algoblock, the processing of which is to start the sequence of algoblocks that are a subroutine.

Более подробно алгоблоки и примеры алгоблоков, а также операций, осуществляемых алгоблоками описаны далее.Algoblocks and examples of algoblocks, as well as operations carried out by algoblocks are described in more detail below.

- Второй массив может содержать числа, задающие номера элементов в базах данных обрабатываемых данных или в базе выходов алгоблоков, откуда осуществляется получение значений, подаваемых на вход алгоблока для обработки, т.е. осуществляется установление (в частном случае, определение) упомянутых выше связок.- The second array may contain numbers that specify the element numbers in the databases of the processed data or in the base of the outputs of the algoblocks, from where the values supplied to the input of the algoblock for processing are received, i.e. the establishment (in the particular case, determination) of the above-mentioned ligaments is carried out.

- Третий массив может содержать начальные значения для входов алгоблоков, оказавшихся несвязанными с базами данных выходов или базами обрабатываемых данных.- The third array may contain initial values for the inputs of the algoblocks, which turned out to be unrelated to the output databases or the databases of the processed data.

Выполнение алгоблочной программы производится (осуществляется) исполняющей средой, которая последовательно выполняет алгоблок (операцию) за алгоблоком (операцией), выбирая из первого списка (массива) их коды и связки (или ссылки) на данные для этого алгоблока во втором списке (массиве).The algoblock program is executed (executed) by the runtime that sequentially performs the algoblock (operation) behind the algoblock (operation), choosing their codes and links (or links) to the data for this algoblock in the second list (array) from the first list (array).

Параллельные вычисления допускаются только в следующих случаях:Parallel computing is allowed only in the following cases:

- в рамках одного алгоблока;- within the framework of one algoblock;

- в рамках особой последовательности алгоблоков, в которой:- within the framework of a special sequence of algoblocks, in which:

- алгоблоки последовательности не используют результаты (данных выходов) вычислений друг друга,- the sequence algoblocks do not use the results (output data) of each other’s calculations,

- до окончания выполнения всех алгоблоков последовательности использование другими алгоблоками программы результатов (данных выходов) любого алгоблока такой последовательности не допускается, то есть не может начаться выполнение следующего за этой последовательностью алгоблока;- until the completion of all algoblocks of a sequence, the use by other algoblocks of the program of the results (data outputs) of any algoblock of such a sequence is not allowed, that is, the execution of the following algoblock cannot begin;

- в рамках набора нескольких последовательностей алгоблоков, выполняемых параллельно, объединенных, например, в одну подпрограмму, и обладающих следующими свойствами:- within the framework of a set of several sequences of algoblocks executed in parallel, combined, for example, into one subprogram, and having the following properties:

- алгоблоки каждой из этого набора последовательностей не используют результаты (данные выходов) алгоблоков любой другой из последовательностей данного набора;- the algoblocks of each of this set of sequences do not use the results (output data) of the algoblocks of any other of the sequences of this set;

- до окончания выполнения всех алгоблоков всех последовательностей набора использование другими алгоблоками программы результатов (данных выходов) любого алгоблока данного набора последовательностей не допускается, то есть не может начаться выполнение следующего за данным набором последовательностей алгоблока.- until the completion of all the algoblocks of all sequences of the set, the use by other algorithms of the program of the results (data outputs) of any algoblock of this set of sequences is not allowed, that is, the execution of the next following this set of sequences of the algoblock cannot begin.

Исполняющая среда, как видно из вышесказанного, работает непосредственно под управлением исходного кода программы, состоящего из вышеописанных массивов, создаваемого и изменяемого в визуальной среде алгоблочного программирования, то есть является интерпретатором. При этом ввиду гарантированного отсутствия в исходном коде синтаксических ошибок отпадает необходимость в ресурсозатратном синтаксическом анализе, что обеспечивает скорость выполнения алгоблочной программы исполняющей средой, сравнимое со скоростью выполнения компилированной программы.The execution environment, as can be seen from the above, works directly under the control of the source code of the program, consisting of the arrays described above, created and modified in the visual environment of the algoblock programming, that is, it is an interpreter. In this case, due to the guaranteed absence of syntax errors in the source code, the need for resource-consuming parsing is eliminated, which ensures the execution speed of an algoblock program by a runtime environment comparable to the speed of a compiled program.

Ввиду строгой последовательности выполнения и отсутствия прерывания выполнения не требуется также специальной синхронизации данных между алгоблоками, каждому алгоблоку доступен весь объем массивов обрабатываемых данных.Due to the strict sequence of execution and the absence of interruption of execution, special synchronization of data between algoblocks is also not required; the entire volume of processed data arrays is available to each algoblock.

В частном случае осуществления настоящего изобретения при необходимости разделения ресурсов системы, например, для одновременного решения задач с разным периодом обработки данных системой визуального программирования и исполняющей средой обеспечивается возможность разделения алгоблоков на разные циклы обхода:In the particular case of the implementation of the present invention, if it is necessary to separate the resources of the system, for example, to simultaneously solve problems with different periods of data processing by the visual programming system and the execution environment, it is possible to separate the algorithms into different bypass cycles:

- первый цикл имеет наименьший период выполнения - в данном цикле решаются задачи, требующие наиболее частого исполнения;- the first cycle has the shortest execution period - in this cycle, tasks that require the most frequent execution are solved;

- второй цикл исполнения может быть разделен (разбит) на несколько частей, и после каждого выполнения первого цикла выполняются последовательно алгоблоки очередной части второго цикла с первой по последнюю, и весь второй цикл выполняется за столько периодов исполнения первого цикла, на сколько частей разбит второй цикл;- the second execution cycle can be divided (divided) into several parts, and after each execution of the first cycle, the algoblocks of the next part of the second cycle from the first to the last are executed sequentially, and the entire second cycle is performed for as many periods of execution of the first cycle as the number of parts of the second cycle ;

- третий цикл соотносится со вторым, как второй с первым.- the third cycle corresponds to the second, as the second to the first.

Примером такой задачи из области систем автоматического управления является случай, когда необходимо за малое время (например, 0, 1 сек) открыть сбросной клапан при превышении допустимого значения давления и одновременно выполнять поддержание температуры, расхода и уровня с помощью ПИД-регулирования (пропорционально-интегрально-дифференцирующего регулирования). При этом регулирование может осуществляться осуществлять реже, чем проверка, например, не реже, чем раз в 0,5 сек. Если вычислительных ресурсов на выполнение в каждом цикле проверки давления с возможным открытием клапана и одновременно исполнением функций всех трех регуляторов не хватает (например, на каждый из регуляторов нужно 0,05 сек и на обработку сигнала давления с выдачей сигнала на клапан тоже 0,05 сек), но за 0,1 секунды успевает выполниться проверка и один регулятор, то исполняя в первом цикле только проверку, а во втором цикле в каждой части после каждого исполнения первого по одному регулятору, задача успешно решается.An example of such a task from the field of automatic control systems is the case when it is necessary in a short time (for example, 0, 1 sec) to open the relief valve when the permissible pressure value is exceeded and at the same time maintain the temperature, flow and level using PID control (proportionally-integral differentiating regulation). At the same time, regulation can be carried out less frequently than verification, for example, at least once every 0.5 sec. If there are not enough computing resources for performing a pressure check in each cycle with the possible opening of the valve and simultaneously performing the functions of all three regulators (for example, it takes 0.05 sec for each of the regulators and 0.05 sec for processing the pressure signal with a signal to the valve ), but in 0.1 second only one controller manages to check, then performing only a check in the first cycle, and in the second cycle in each part after each execution of the first one controller, the problem is successfully solved.

Стоит отметить, что более подробно упомянутые выше циклы (первый, второй и третий) описаны далее.It is worth noting that the cycles mentioned above (first, second and third) are described in more detail below.

Вышеописанный алгоритм исполнения алгоблоков включая алгоритм разделения ресурсов гарантирует целостность обрезываемых и обработанных данных, отсутствие затрат на синхронизацию и предсказуемое время исполнения задач. Таким образом обеспечивается детерминированность вычислительного процесса, что позволяет применять настоящее изобретение для решения задач реального времени. The above-described algorithm for executing algorithms, including a resource sharing algorithm, guarantees the integrity of the data being cut and processed, the absence of synchronization costs, and the predictable execution time of tasks. This ensures the determinism of the computing process, which allows the application of the present invention to solve real-time problems.

Исполняющая среда является неизменяемой программой, которая может быть реализована:The runtime is an immutable program that can be implemented:

- одним или комплексом программных модулей, функционирующих:- one or a set of software modules that function:

- под управлением различных операционных систем (например, MS Windows, FreeBSD, Linux, RTOS, iOS, Android, Mac OS и т.д.), в том числе виртуальной машины;- Under the control of various operating systems (for example, MS Windows, FreeBSD, Linux, RTOS, iOS, Android, Mac OS, etc.), including a virtual machine;

- без использования внешней операционной системы (например, MS Windows, FreeBSD, Linux, RTOS, iOS, Android, Mac OS и т.д.), в том числе сама являясь операционной системой;- without using an external operating system (for example, MS Windows, FreeBSD, Linux, RTOS, iOS, Android, Mac OS, etc.), including being the operating system itself;

- программным модулем, исполняемым из постоянной памяти;- a software module executable from read-only memory;

- аппаратным модулем на жестокой логике (состоящих из логических микросхем или ПЛИС) и других – например, блоков ввода и вывода аналоговых или дискретных параметров и др.- hardware module based on strict logic (consisting of logic microcircuits or FPGAs) and others - for example, input and output blocks of analog or discrete parameters, etc.

Выполнение (работа) алгоблочной программы осуществляется исполняющей средой в бесконечном цикле, за исключением особых режимов, когда работа программы ограничивается одним циклом или его частью, например:The execution (work) of the algoblock program is carried out by the runtime in an infinite loop, with the exception of special modes, when the program is limited to one cycle or its part, for example:

- при пошаговом исполнения алгоблочной программы или исполнения до точки остановки при отладке;- during step-by-step execution of an algoblock program or execution to a stopping point during debugging;

- при синхронизации исполнения с другими программами - например, когда происходит остановка в фиксированной точке алгоритма одной программы, после чего выполняется полностью или частично другая программа, после чего продолжается выполнение первой;- when synchronizing execution with other programs - for example, when a program stops at a fixed point in the algorithm of one program, after which another or all other programs are executed, after which the first one continues to execute;

- в других особых случаях исполнения.- in other special cases of performance.

Описываемые изобретение позволяет осуществлять создание и редактирование пользователем (разработчиком программы, программистом и т.д.) вышеописанных массивов, составляющих алгоблочную программу, в частности, путем задания или редактирования последовательности алгоблоков посредством их выбора из списка возможных типов алгоблоков и задания входных данных для алгоблоков:The described invention allows the creation and editing by the user (program developer, programmer, etc.) of the above-described arrays constituting the algoblock program, in particular, by defining or editing the sequence of algoblocks by selecting them from the list of possible types of algoblocks and setting input data for the algoblocks:

- либо посредством графического указания связей входов и выходов алгоблоков,- either by graphically indicating the connections of the inputs and outputs of the algoblocks,

- либо выбором входов и выходов из списка возможных баз данных и номеров их элементов, при этом ввод номеров может осуществляться как выбором из списка, так и прямым вводом числа, при котором непосредственно в процессе ввода контролируется как допустимость ввода каждого символа, так и допустимость вводимого числа целиком.- either by selecting entries and exits from the list of possible databases and their element numbers, while entering numbers can be done either by selecting from the list or by directly entering a number at which directly during the input process both the validity of the input of each character and the validity of the input whole numbers.

Таким образом, ввиду невозможности ввода недопустимых или некорректных данных в любой момент создания и/или редактирования алгоблочной программы, такая алгоблочная программа не содержит синтаксических ошибок и ошибок зацикливания, что позволяет продолжать ее выполнение средой исполнения при создании и редактировании алгоблочной программы в описываемых способе и системе визуального программирования. Это, в свою очередь, позволяет обеспечить визуальный контроль результата редактирования программы непосредственно в момент выполнения редакции.Thus, due to the impossibility of entering invalid or incorrect data at any time of creating and / or editing an algoblock program, such an algoblock program does not contain syntax errors and loop errors, which allows its execution to continue when the algo block program is created and edited in the described method and system visual programming. This, in turn, allows you to provide visual control of the result of editing the program directly at the time of editing.

В частном случае осуществления настоящего изобретения визуальная алгоблочная система программирования обеспечивает загрузку алгоблочной программы (в виде вышеописанных массивов) в удаленный или не имеющий собственного визуального интерфейса аппаратный модуль (который может быть реализован вычислительным устройством, например, персональным компьютером, промышленным управляющим контроллером, смартфоном и т.д.), а также обеспечивает получение текущих обрабатываемых и обработанных данных из такого аппаратного модуля и выкачку из упомянутого аппаратного модуля алгоблочной программы (в виде вышеописанных массивов) с возможностью ее последующей редакции и обратной закачки. Данная возможность обеспечивается тем, что выкачанная алгоблочная программа однозначно и полностью соответствует изначально созданной алгоблочной программе и может быть отображена и отредактирована в визуальной алгоблочной системе программирования, поскольку выкачивание алгоблочной программы осуществляется посредством выкачивания вышеописанных массивов, составляющих алгоблочную программу.In the particular case of the implementation of the present invention, the visual algoblock programming system provides the loading of the algoblock program (in the form of the arrays described above) into a hardware module remote or without its own visual interface (which can be implemented by a computing device, for example, a personal computer, industrial control controller, smartphone, etc. .d.), and also provides the receipt of the current processed and processed data from such a hardware module and pumping from the mentioned the removed hardware module of the algoblock program (in the form of the arrays described above) with the possibility of its subsequent editing and reverse download. This feature is provided by the fact that the pumped-out algoblock program unambiguously and completely corresponds to the originally created algoblock program and can be displayed and edited in the visual algoblock programming system, since the pumping of the algoblock program is carried out by pumping out the arrays described above that make up the algoblock program.

В зависимости от решаемых задач, структуры и объемов требующей обработки информации алгоблочные программы могут быть подразделены на три уровня:Depending on the tasks to be solved, the structure and volumes of information requiring processing, block-based programs can be divided into three levels:

- нижний уровень алгоблочных программ - со столь малым количеством данных, что представляется возможным предусмотреть заранее набор всех необходимых операций по их обработке. На данном уровне набор и последовательность алгоблоков заранее фиксированы как часть исполняющей среды, часть или все алгоблоки реализованы аппаратно, описываемый способ программирования (создания алгоблочной программы) заключается в настройке связок (связей) для таких алгоблоков и параметров алгоблоков (и является наиболее простым и доступным для осуществления пользователем);- the lower level of algoblock programs - with such a small amount of data that it seems possible to foresee a set of all necessary operations for their processing. At this level, the set and sequence of algoblocks are pre-fixed as part of the runtime environment, part or all of the algoblocks are implemented in hardware, the described programming method (of creating an algoblock program) is to configure bundles (links) for such algoblocks and parameters of the algoblocks (and is the easiest and most implementation by the user);

- средний уровень алгоблочных программ - с небольшим количеством данных, но требующих большого разнообразия функций их обработки. Для данного уровня пользователем задаются при создании алгоблочной программы последовательность алгоблоков и их типы, база обрабатываемых и обработанных данных состоит из выходов алгоблоков, связи для входов алгоблоков ссылаются на выходы в этой базе, часть алгоблоков может быть реализовано аппаратно. На данном уровне, как и на нижнем, алгоблочная система программирования является цифровой моделью аналогового вычислительного устройства;- An average level of algoblock programs - with a small amount of data, but requiring a wide variety of processing functions. When creating an algoblock program, the user sets the sequence of algoblocks and their types for the given level, the database of processed and processed data consists of the outputs of the algoblocks, the connections for the inputs of the algoblocks refer to the outputs in this database, some of the algoblocks can be implemented in hardware. At this level, as at the bottom, the algoblock programming system is a digital model of an analog computing device;

- верхний уровень алгоблочных программ характеризуется большими массивами данных (информации), пользователем при создании алгоблочной программы осуществляется задание последовательности алгоблоков и их типов, базы обрабатываемых и обработанных данных внешние для программы, для входов и выходов задаются ссылки на элементы этих баз.- the upper level of the algoblock programs is characterized by large arrays of data (information), when creating the algoblock program, the user sets the sequence of algoblocks and their types, the databases of processed and processed data are external to the program, links to the elements of these databases are set for inputs and outputs.

В распределенной по пространству или по функциям системе, а также между алгоблочными программами различных уровней взаимодействие осуществляется посредством задания связей между базами обрабатываемых и обработанных данных, аналогично связям (связкам) внутри алгоблочных программ, как описано выше и как будет более подробно описано далее.In a system distributed by space or by function, as well as between algoblock programs of various levels, interaction is carried out by setting relationships between the databases of processed and processed data, similar to the connections (bundles) inside algoblock programs, as described above and as will be described in more detail below.

Далее рассматриваются примеры реализации данного изобретения.The following are examples of the implementation of this invention.

Алгоблочные программы среднего уровня – для их создания, как для и других уровней, используется среда визуального графического программирования.Algoblock programs of the middle level - for their creation, as for other levels, the visual graphic programming environment is used.

На ФИГ. 1 показан примерный вариант создания алгоблочной программы среднего уровня, согласно одной из реализаций настоящего изобретения.In FIG. 1 shows an exemplary embodiment of a mid-level algoblock program according to one implementation of the present invention.

На ФИГ. 1 в качестве иллюстрации части настоящего изобретения показан системный алгоблок («SYS»). В показанном на ФИГ. 1 интерфейсе пользователя входы и выходы алгоблока представлены выводами алгоблока, а операции самими алгоблоками. Пользователь в графическом интерфейсе, например, посредством нажатия правой кнопки манипулятора «Мышь» (или посредством комбинаций горячих клавиш, кнопок графического интерфейса пользователя, либо любым другим известным способом), в частности, в основном окне графического интерфейса пользователя, может открыть меню добавления алгоблоков, которое показано на ФИГ. 2.In FIG. 1, a system algoblock (“SYS”) is shown as an illustration of part of the present invention. In the shown in FIG. In the user interface, the inputs and outputs of the algoblock are represented by the outputs of the algoblock, and the operations by the algoblocks themselves. A user in the graphical interface, for example, by pressing the right button of the Mouse button (or by using combinations of hot keys, buttons of the graphical user interface, or by any other known method), in particular, in the main window of the graphical user interface, can open the menu for adding algoblocks, which is shown in FIG. 2.

На ФИГ. 2 показано меню, позволяющее пользователю добавить новый алгоблок, согласно одному из осуществлений настоящего изобретения.In FIG. 2 shows a menu allowing a user to add a new algoblock, according to one embodiment of the present invention.

Стоит отметить, что добавление последующего алгоблока может осуществляться как в конец списка, так и до и поле выбранного алгоблока, то есть алгоблока, на котором была нажата клавиша манипулятора «Мышь».It is worth noting that the addition of the subsequent algoblock can be carried out both at the end of the list, and before and in the field of the selected algoblock, that is, the algoblock on which the mouse button was pressed.

В качестве одного из примерных описаний настоящего изобретения рассматривается пример арифметической функции, в частности сложения, посредством использования системного алгоблока и арифметического алгоблока, как показано на ФИГ. 3. Так, в качестве примера было осуществлено добавление (пользователем) арифметического алгоблока к уже добавленному и изображенному на ФИГ. 1 системному алгоблоку.As one of the exemplary descriptions of the present invention, an example of an arithmetic function, in particular addition, by using a system algoblock and an arithmetic algoblock, as shown in FIG. 3. So, as an example, the addition (by the user) of the arithmetic algoblock to the already added and shown in FIG. 1 system algoblock.

На ФИГ. 3 показан примерный вариант компонентов алгоблочной программы, согласно одному из вариантов настоящего изобретения. В приведенном примере системный алгоблок («SYS») является базовым и который позволяет задействовать в программах системные параметры.In FIG. 3 shows an exemplary embodiment of components of an algoblock program, according to one embodiment of the present invention. In the given example, the system algoblock (“SYS”) is basic and which allows you to use system parameters in programs.

Выходы алгоблока могут быть связаны с входами другого алгоблока или с входами того же самого алгоблока. Так, например, один из выходов системного алгоблока может быть связан пользователем, по крайней мере, с одним из входов другого алгоблока, например, с одним из входов арифметического алгоблока (в частности, входом 1 «Вх1»). Т.е. один выход алгоблока может быть связан с одним и более входами, по крайней мере, одного алгоблока, а один вход алгоблока может быть связан только с одним выходом алгоблока. Стоит отметить, что выходы и входы одного алгоблока могут быть связаны между собой.The outputs of the algoblock can be connected to the inputs of another algoblock or to the inputs of the same algoblock. So, for example, one of the outputs of a system algoblock can be connected by a user to at least one of the inputs of another algoblock, for example, to one of the inputs of an arithmetic algoblock (in particular, input 1 “Bx1”). Those. one output of the algoblock can be connected with one or more inputs of at least one algoblock, and one input of the algoblock can be connected with only one output of the algoblock. It is worth noting that the outputs and inputs of one algoblock can be interconnected.

При выборе пользователем одного из выходов алгоблока, данный выход алгоблока подсвечивается, в частности, выделяется цветной, например, красной полосой. После выделения пользователем выхода алгоблока пользователь может выбрать один из входов другого или того же алгоблока, чтобы связать с ним упомянутый выход. После выбора входа при осуществлении связи входа и выхода алгоблока (алгоблоков) пользователю может быть отображено меню подтверждения установления связи между входом и выходом алгоблока (алгоблоков).When the user selects one of the outputs of the algoblock, this output of the algoblock is highlighted, in particular, a colored, for example, red stripe is highlighted. After the user selects the output of the algoblock, the user can select one of the inputs of the other or the same algoblock to associate the said output. After selecting the input when communicating the input and output of the algoblock (algoblocks), the user may be presented with a confirmation menu for establishing a connection between the input and output of the algoblock (algoblocks).

После установления связи (осуществления привязки, связки) между входом и выходом алгоблока (алгоблоков) такая связь отображается в графическом интерфейсе пользователя посредством линии, связывающей упомянутые вход и выход алгоблока (алгоблоков). Такая, по крайне мере, одна линия, отражающая осуществление связи входа и выхода, по крайней мере, одного алгоблока может иметь цвет, отражающий, например, тип данных такой связи (например, розовый – биты, серый – байты, красный – желтый – вещественное число и т.д.), с целью обеспечения пользователю визуального контроля за связями между алгоблоками (входами и выходами алгоблоков). С целью повышения наглядности линии могут визуально от выходов идти в общую шину данных (линию большей толщины черного, например, цвета) и выходить из нее ко входам. При этом цветная линия от выхода до входа показывается, и в том числе внутри более широкой шины по выбору выхода или входа «мышью», например.After establishing a connection (binding, linking) between the input and output of the algoblock (algoblocks), such a connection is displayed in the graphical user interface via a line connecting the mentioned input and output of the algoblock (algoblocks). Such at least one line reflecting the implementation of the input and output communication of at least one algo block can have a color reflecting, for example, the data type of such communication (for example, pink - bits, gray - bytes, red - yellow - real number, etc.), in order to provide the user with visual control over the connections between the algoblocks (inputs and outputs of the algoblocks). In order to increase visibility, the lines can visually go from the outputs to the common data bus (a line with a greater thickness of black, for example, color) and exit from it to the inputs. In this case, a color line from the output to the input is shown, including inside the wider bus by choosing the output or input with the mouse, for example.

На выходах арифметического алгоблока осуществляется отображение результатов выполнения заданного кодом типа алгоблока и его дополнительными параметрами действия над данными, поступающими на входы арифметического алгоблока, входы, в соответствии со связями, заданными связками. В показанном на ФИГ. 3 примере на Вход 1 арифметического алгоблока подается переменная величина (в данном случае номер текущего цикла алгоблочной программы) с выхода системного алгоблока, как описано выше. На остальные входы арифметического алгоблока подаются нули. Результатом работы указанного арифметического алгоблока (в частности, операций, которые более подробно будут описаны ниже, каждого составного элемента арифметического алгоблока – «1», «2», «3», «4», «5», «6» и «7») являются значения на его выходах (в рассматриваемом примере - значения на выходах 1, 2, 3, 4, 5, 6 и 7). Согласно значениям на входах арифметического алгоблока и заданному коду алгоблока (в том числе, упомянутым операциям составных элементов арифметического алгоблока, которые в данном случае являются операциями сложения), на Выходе 1, Выходе 5 и Выходе 7 арифметического алгоблока в данном случае значения соответствуют (равны) входному значению на Входе 1 арифметического алгоблока с учетом нулевого значения на Входе 2. Значения других выходов данного арифметического алгоблока в данном случае равны нулю, согласно упомянутым операциям арифметического алгоблока и значениям на входах 3 и 4, 5 и 6, 7 и 8.At the outputs of the arithmetic algoblock, the results of the execution of the type specified by the code of the algoblock and its additional action parameters on the data arriving at the inputs of the arithmetic algoblock, the inputs, in accordance with the connections given by the connectives, are displayed. In the shown in FIG. In the 3rd example, at Input 1 of the arithmetic algoblock, a variable value (in this case, the number of the current cycle of the algoblock program) is supplied from the output of the system algoblock, as described above. The remaining inputs of the arithmetic algoblock are zeros. The result of the indicated arithmetic algoblock (in particular, operations, which will be described in more detail below, of each component of the arithmetic algoblock - “1”, “2”, “3”, “4”, “5”, “6” and “7 ") Are the values at its outputs (in this example, the values at the outputs 1, 2, 3, 4, 5, 6 and 7). According to the values at the arithmetic algoblock inputs and the given algoblock code (including the mentioned operations of the constituent elements of the arithmetic algoblock, which in this case are addition operations), at Output 1, Output 5, and Output 7 of the arithmetic algoblock, in this case, the values correspond (are equal) the input value at Input 1 of the arithmetic algoblock, taking into account the zero value at Input 2. The values of the other outputs of this arithmetic algoblock in this case are equal to zero, according to the aforementioned arithmetic operations algoblock and the values at inputs 3 and 4, 5 and 6, 7 and 8.

Далее в качестве иллюстративного варианта упомянутый выше выход системного алгоблока связан (пользователем) с входом арифметического алгоблока, отличным от используемого выше, в частности, с Входом 3 («Вх-3») арифметического алгоблока, другой выход системного алгоблока связывается, например, с Входом 4 («Вх-4») арифметического алгоблока.Further, as an illustrative option, the aforementioned output of the system algoblock is connected (by the user) with the input of the arithmetic algoblock different from that used above, in particular, with Input 3 (“Bx-3”) of the arithmetic algoblock, another output of the system algoblock is connected, for example, with the Input 4 ("Bx-4") arithmetic algoblock.

Пользователь может выбрать алгоблок (в данном случае арифметический алгоблок), чтобы открыть меню структуры алгоблока (свойств алгоблока) - окно (меню) настройки параметров алгоблока, как показано на ФИГ. 4.The user can select the algoblock (in this case, the arithmetic algoblock) to open the menu of the structure of the algoblock (properties of the algoblock) - the window (menu) for setting the parameters of the algoblock, as shown in FIG. four.

Меню настройки (параметров) алгоблока содержит подменю «Настройка» (в частности реализованным окном, открывающимся посредством выбора пользователем соответствующей вкладки «Настройка»), подменю «Входы данных», подменю «Входы управления», подменю «Выходы данных» и подменю «Выходы диагностики», которые более подробно описаны далее.The algoblock settings (parameters) menu contains the “Settings” submenu (in particular, the implemented window that opens by selecting the appropriate “Settings” tab by the user), the “Data Inputs” submenu, the “Control Inputs” submenu, the “Data Outputs” submenu and the “Diagnostic Outputs” submenu ", Which are described in more detail below.

В подменю «Настройка» отображаются значения на входах и выходах выбранного в настоящий момент алгоблока, а также операции для соответствующих входов и выходов алгоблока (операции, осуществляемые алгоблоком между соответствующим входом и выходом, например, Входом 3 и Входом 4 и т.д.). Так в настоящем примере Операцией («Оп1») для Входа 3 («Вх 3») и Входа 4 («Вх 4») является операция сложения («+»). Операция (согласно типу алгоблока) может быть изменена пользователем в (выпадающем) меню типов операций. В данном случае для арифметического алгоблока может быть выбрана одна из арифметических операций, например, сложение, вычитание, деление, умножение, проценты, возведение в степень, логарифм и т.д. Для других типов алгоблоков (например, логического алгоблока) могут быть выбраны (пользователем) операции, соответствующие типу алгоблока. Стоит также отметить, что тип операции может быть задан также посредством использования управляющих входов (входов управления) алгоблока, путем задания соответствующего операции числа (например, 0 – сложение, 1 - вычитание, 3 - умножение и т.д.) как описано в рамках настоящего изобретения.The “Settings” submenu displays the values at the inputs and outputs of the currently selected algo block, as well as the operations for the corresponding inputs and outputs of the algo block (operations carried out by the algo block between the corresponding input and output, for example, Input 3 and Input 4, etc.) . So in the present example, the Operation (“Op1”) for Input 3 (“In 3”) and Input 4 (“In 4”) is the addition operation (“+”). The operation (according to the type of algoblock) can be changed by the user in the (drop-down) menu of operation types. In this case, one of the arithmetic operations, for example, addition, subtraction, division, multiplication, percent, exponentiation, logarithm, etc., can be selected for the arithmetic algoblock. For other types of algoblocks (for example, a logical algoblock), operations corresponding to the type of algoblock can be selected (by the user). It is also worth noting that the type of operation can also be set by using the control inputs (control inputs) of the algoblock, by setting the corresponding number operation (for example, 0 - addition, 1 - subtraction, 3 - multiplication, etc.) as described in the framework of the present invention.

Пользователь может настраивать любые параметры алгоблочной программы и отдельных алгоблоков, причем алгоблочная программа меняется во время работы (исполнения) в процессе отладки, т.е. отображение результата работы алгоблочной программы и ее составных частей, алгоблоков происходи в то время, когда пользователь осуществляет описываемые изменения, например, в меню свойств алгоблока (окне настройки параметров алгоблока).The user can configure any parameters of the algoblock program and individual algoblocks, and the algoblock program changes during operation (execution) during debugging, i.e. display of the result of the work of the algoblock program and its components, algoblocks occur at the time when the user makes the described changes, for example, in the algoblock properties menu (window for setting the parameters of the algoblock).

Принципиальное ускорение разработки и отладки в данном изобретении достигается благодаря тому, что программу можно редактировать в процессе ее работы и тут же видеть результат благодаря тому, что система является графической (визуальной), не требует трансляции, и отсутствует возможность допустить синтаксическую ошибку: вне зависимости от того, какие параметры в интерфейсе, в частности, в меню свойств алгоблока выбирает пользователь, результатом его действий является работоспособная не зацикленная программа.Fundamental acceleration of development and debugging in this invention is achieved due to the fact that the program can be edited during its operation and immediately see the result due to the fact that the system is graphic (visual), does not require translation, and there is no possibility to make a syntax error: regardless of what parameters in the interface, in particular, in the properties menu of the algoblock, the user selects, the result of his actions is a workable, non-looping program.

Для достижения этого действия, доступные пользователю, подобраны так, что отсутствует возможность не только синтаксической ошибки, но и зацикливания программы. Как описывается в рамках настоящего изобретения, у алгоблочной программы существует один общий цикл, внутри которого задание циклов пользователем не допускается, глубина итеративных вычислений строго ограничена.To achieve this action, available to the user are selected so that there is no possibility of not only a syntax error, but also a loop of the program. As described in the framework of the present invention, the algoblock program has one common cycle, inside which the user cannot set cycles, the depth of iterative calculations is strictly limited.

Стоит отметить, что у алгоблока существуют несколько типов выходов, в частности выходы данных и диагностические (которые более подробно описаны ниже). Также у алгоблоков существует несколько типов входов, в частности входы данных и управляющие (которые более подробно описаны ниже).It is worth noting that the algoblock has several types of outputs, in particular data and diagnostic outputs (which are described in more detail below). Algoblocks also have several types of inputs, in particular data and control inputs (which are described in more detail below).

Если для первого входа («-1») арифметического алгоблока, на котором стоит (задано, подается) переменная величина/значение (или постоянная величина/значение) и на входе 2 («Вх 2») стоит (задано, подается) значение «0», то в случае смены Операции 1 с «+» (сложение) на «/» (деление) на Выходе 1 («Вых 1») алгоблока будет отображено предупреждение о некорректности операции (в данном случае – делении на ноль – значения Входа 1 на значение Входа 2, значением последнего которого является ноль по умолчанию), что говорит о том, что операция, выполняемая алгоблоком, выполнилась с ошибкой, как показано на ФИГ. 5 (отображение «восклицательного знака»). При этом на первом диагностическом выходе, соответствующем в данном случае первому выходу данных, 0 сменится на 1, что также является признаком некорректности операции, который можно обработать это в последующей части программы.If for the first input ("-1") of the arithmetic algoblock on which the variable / value (or constant value / value) is located (set, supplied) and at input 2 ("Вх 2") there is (set, supplied) the value " 0 ", then in the event that Operation 1 is changed from" + "(addition) to" / "(division), Output 1 (" Output 1 ") of the algoblock will display a warning about the incorrect operation (in this case, division by zero - the Input value 1 to the value of Input 2, the last value of which is zero by default), which indicates that the operation performed by the algoblock , Completed with errors, as shown in FIG. 5 (display of “exclamation mark”). At the same time, at the first diagnostic output, corresponding in this case to the first data output, 0 will change to 1, which is also a sign of an incorrect operation that can be processed in the subsequent part of the program.

Т.е. результат данной операции (деление на ноль – недопустимая операция) является недостоверным - операция выполнилась с ошибкой. Такое упоминание позволяет пользователю осуществить соответствующие действия для внесения изменений в программу (в частности, в операции, входные данные и т.д.) для обработки алгоблоком соответствующим (правильным) образом обработать возникшую ситуацию (в частности, устранить возникшую потенциальную ошибку). В ходе выполнения (процессе исполнения) алгоблочной программы не осуществляется исключений (exceptions) и созданная (создаваемая) программа продолжает функционирование (работу), т.е. осуществляется продолжение выполнения (исполнения) алгоблочной программы. Таким образом, исполнение программы осуществляется автоматически всегда, что позволяет описываемой системе (в частном случае используемой для автоматического управления различными устройствами, механизмами и т.д.) без участия пользователя осуществлять упомянутое управление и принимать решения самостоятельно, то есть, не дожидаясь вмешательства пользователя, как после, так и во время создания алгоблочной программы.Those. the result of this operation (division by zero is an invalid operation) is invalid - the operation completed with an error. Such a mention allows the user to take appropriate actions to make changes to the program (in particular, operations, input data, etc.) for processing by the algoblock in an appropriate (correct) way to handle the situation (in particular, to eliminate the potential error). During the execution (execution process) of the algoblock program, no exceptions are implemented and the created (created) program continues to function (work), i.e. the continuation of the execution of the algoblock program is carried out. Thus, the execution of the program is always automatic, which allows the described system (in the particular case used to automatically control various devices, mechanisms, etc.) to carry out the mentioned control and make decisions independently without user intervention, that is, without waiting for user intervention, both after and during the creation of the algoblock program.

Вышеописанное обеспечивает исполнение алгоблочной программы (и системы) вне зависимости от данных, подаваемых на ее вход (в частности, на вход(ы) алгоблоков), т.е. программа осуществляет обработку любых поданных на ее вход данных, причем, за заданный такт, за заданное время в зависимости от заданных характеристик.The above ensures the execution of the algoblock program (and system) regardless of the data supplied to its input (in particular, to the input (s) of the algoblocks), i.e. the program processes any data submitted to its input, and, for a given clock cycle, for a given time, depending on the specified characteristics.

Описываемая система и способ позволяют осуществлять (автоматическое) согласование типов данных. Так, в приведенном выше примере на вход арифметического алгоблока, способный получать типы данных в виде вещественных чисел, были поданы целочисленные числа с выхода системного алгоблока. Так, в качестве примера, первый нижний слева выход системного алгоблока (являющийся битовым (логическим) выходом, имеющим на выходе битовый тип данных) может быть подан на один из входов арифметического алгоблока, в частности, на вход 5 арифметического алгоблока.The described system and method allows for the (automatic) coordination of data types. So, in the above example, the input of the arithmetic algoblock, capable of receiving data types in the form of real numbers, was given integer numbers from the output of the system algoblock. So, as an example, the first lower left output of the system algoblock (which is a bit (logical) output having a bit data type at the output) can be fed to one of the arithmetic algoblock inputs, in particular, to input 5 of the arithmetic algoblock.

Таким образом, описываемая система позволяет осуществлять согласование типов данных, в частности, битовых, целых, вещественных и т.д., т.е. согласование всех типов данных осуществляется описанной системой автоматически. Это позволяет создание программы пользователем без знания языков программирования, в частности, без знания пользователя о необходимости согласования типов данных и/или без знания пользователем синтаксиса языков программирования.Thus, the described system allows the coordination of data types, in particular, bit, integer, real, etc., i.e. coordination of all types of data is carried out by the described system automatically. This allows the user to create a program without knowledge of programming languages, in particular, without knowledge of the user about the need to coordinate data types and / or without knowledge of the syntax of programming languages by the user.

На ФИГ. 6 показан примерный вариант алгоблочной программы с добавленными логическим алгоблоком (в данном случае битовым) и алгоблоком заданий (в данном случае битовым), согласно одному из вариантов настоящего изобретения. Как было сказано выше, пользователь может добавить алгоблок (в данном случае логический алгоблок) в конец списка алгоблоков, а также перед или после (предварительно) выбранного пользователем алгоблока в интерфейсе пользователя. Выбор позиции добавляемого алгоблока осуществляется посредством дополнительного меню выбора позиции добавления алгоблоков.In FIG. 6 shows an exemplary variant of an algoblock program with added logical algoblock (in this case, bitwise) and an algoblock of tasks (in this case, bitwise), according to one embodiment of the present invention. As mentioned above, the user can add the algoblock (in this case, the logical algoblock) to the end of the list of algoblocks, as well as before or after the (pre) user-selected algoblock in the user interface. The selection of the position of the added algoblock is carried out by means of an additional menu for selecting the position of adding the algoblocks.

В рассматриваемом примере выход 1 алгоблока заданий связан (пользователем) с входом 1 логического алгоблока, а выход 2 алгоблока заданий связан (пользователем) с входом 2 логического алгоблока. В данном случае на выходах логического алгоблока содержатся нули.In this example, the output 1 of the task unit is connected (by the user) to the input 1 of the logical algorithm, and the output 2 of the task unit is connected (by the user) to the input 2 of the logical unit. In this case, the outputs of the logical algo block contain zeros.

В показанном на ФИГ. 6 примере специальный алгоблок – заданий - отличается тем, что изменение значений выходов данного алгоблока не осуществляется входами данного алгоблока, поскольку данный алгоблок не имеет входов. Значения выходов данного алгоблока могут быть заданы пользователем в окне настройки (свойств) алгоблока без возможности изменения значений на выходе такого алгоблока выходами с других алгоблоков и т.д., т.е. данный алгоблок не позволяет алгоблочной программе (или, по крайней мере, одному составному элементу алгоблочной программы) изменять, в частном случае, перезаписывать (перезатирать) выходные значения данного специального алгоблока.In the shown in FIG. In example 6, a special algoblock - tasks - is characterized in that the output values of this algoblock are not changed by the inputs of this algoblock, since this algoblock has no inputs. The output values of this algoblock can be set by the user in the settings window (properties) of the algoblock without the ability to change the values at the output of such an algoblock by outputs from other algoblocks, etc., i.e. This algoblock does not allow the algoblock program (or at least one component element of the algoblock program) to change, in a particular case, overwrite (overwrite) the output values of this special algoblock.

На ФИГ. 7 показано подменю выходных данных для алгоблока заданий, согласно одному из вариантов осуществления настоящего изобретения.In FIG. 7 shows a submenu of output data for the task unit according to one embodiment of the present invention.

После изменения (пользователем) значения выхода 1 («Вых 1») алгоблока, в данном случае с «0» на «1», в меню выходных данных, значение на выходе 1 логического алгоблока изменилось на «1», согласно значениям на входах логического алгоблока и заданному коду алгоблока (в том числе, упомянутым операциям составных элементов арифметического алгоблока, которые в данном случае являются операциями сложения), в данном случае операции «ИЛИ» для входов 1 2 логического алгоблока. При смене упомянутой операции «ИЛИ» логического алгоблока на «И», в режиме реального в рамках интерпретирования алгоблочной программы значение на выходе 1 логического алгоблока будет равно «0» согласно текущей операции, установленной пользователем.After changing (by the user) the value of output 1 (“Output 1”) of the algoblock, in this case from “0” to “1”, in the output menu, the value at output 1 of the logical algoblock changed to “1”, according to the values at the inputs of the logical the algoblock and the given algoblock code (including the mentioned operations of the constituent elements of the arithmetic algoblock, which in this case are addition operations), in this case, the OR operation for inputs 1 2 of the logical algoblock. When changing the mentioned “OR” operation of the logical algoblock to “AND”, in real mode, as part of the interpretation of the algoblock program, the value at the output 1 of the logical algoblock will be “0” according to the current operation set by the user.

Упомянутые выше управляющие входы, которые визуально разделены с основными входами алгоблока, являются такими же входами алгоблока, как и входы данных, но позволяют осуществлять управление алгоблоком, в частности, осуществлять изменение операций посредством подачи на управляющий вход значений, являющимися закодированными типами описываемых операций. Так, например, операция «ИЛИ» логического алгоблока может быть закодирована численным значением, в частном случае, значением равным «14», операция «И» алгоблока может быть закодирована численным значением, равным «8», тождество – «9» и т.д. Закодированный описанным выше способом тип операции на входе алгоблока отображается в интерфейсе пользователя. Управляющий вход алгоблока может быть связан с выходом другого (или того же алгоблока) с целью установления (или изменения) типа данной операции, что также позволяет динамически изменять тип операции, в зависимости от значения, подаваемого на управляющий вход алгоблока, в частности, на (управляющий) вход операции алгоблока. Значение несвязанного входа (общего или управляющего) алгоблока может быть изменено пользователем в окне списка алгоблоков интерфейса пользователя посредством выбора пользователем данного входа и посредством задания значения для данного входа алгоблока, например, посредством меню задания значения (в частности, закодированного, как описано выше) по умолчанию для входа алгоблока, как показано на ФИГ. 8. В показанном на ФИГ. 8 подменю «Входов данных» алгоблока отображаются значения входов алгоблока, значения входов по умолчанию, связь между входами-выходами алгоблоков и т.д.The control inputs mentioned above, which are visually separated from the main inputs of the algoblock, are the same inputs of the algoblock as data inputs, but they allow you to control the algoblock, in particular, change operations by supplying to the control input values that are encoded types of the described operations. So, for example, the “OR” operation of a logical algo block can be encoded with a numerical value, in the particular case, with a value equal to “14”, the “And” operation of an algo block can be encoded with a numerical value equal to “8”, the identity is “9”, etc. d. The type of operation at the input of the algoblock encoded in the manner described above is displayed in the user interface. The control input of the algoblock can be connected with the output of another (or the same algoblock) in order to establish (or change) the type of this operation, which also allows you to dynamically change the type of operation, depending on the value supplied to the control input of the algoblock, in particular, on ( control) input of the operation of the algoblock. The value of the unconnected input (general or control) of the algoblock can be changed by the user in the window of the list of algoblocks of the user interface by selecting the given input by the user and by setting the value for the given input of the algoblock, for example, through the menu for setting the value (in particular, encoded as described above) according to by default for the input of the algoblock, as shown in FIG. 8. As shown in FIG. The 8 submenus of the “Data Inputs” of the algoblock display the values of the inputs of the algoblock, the default values of the inputs, the relationship between the inputs and outputs of the algoblock, etc.

Стоит отметить, что значения несвязанных (непривязанных) входов алгоблоков, в частности, не связанных с выходами алгоблоков (например, выходом того же алгоблока или другого алгоблока) задаются (в частности, хранятся) в отдельной таблице базы данных (таблице значений по умолчанию для входов алгоблоков). Такие значения для входов алгоблоков могут быть заданы как для входов данных алгоблоков, так и для управляющих входов алгоблоков. Т.е. в частном случае осуществления настоящего изобретения значения по умолчанию для входов алгоблоков являются константами и хранятся в упомянутой таблице значений по умолчанию для входов алгоблоков. Так, например, при выборе подменю «Входов данных» для алгоблока (например, логического алгоблока) в меню настройки параметров алгоблока (после его выбора пользователем) пользователь может изменить значение по умолчанию, по крайней мере, для одного из входов алгоблока, например, для Входа 3 («Вх3») с «0» на «1», как показано на ФИГ. 9, причем в окне списка алгоблоков интерфейса пользователя на соответствующем входе алгоблока будет отображено значение, заданное пользователем таким способом. Причем в данном случае при изменении пользователем упомянутого значения по умолчания осуществляется изменение самой алгоблочной программы (но не данных), поскольку значения по умолчанию (являющиеся константами) являются частью алгоблочной программы. Так, при изменении значений выходов алгоблоков (например, упомянутого выше алгоблока заданий) осуществляется изменение данных только в оперативной памяти, но алгоблочная программа не меняется, а при изменении значений по умолчанию осуществляется изменение алгоблочной программы, т.е. при вводе (изменении) значений по умолчанию осуществляется изменение (в частности ввод) значений в таблицах, описывающих алгоблочную программу и которые могут сохраняться в постоянной или полупостоянной памяти.It is worth noting that the values of unconnected (unbound) inputs of the algoblocks, in particular, those not connected with the outputs of the algoblocks (for example, the output of the same algoblock or another algoblock) are set (in particular, stored) in a separate database table (the table of default values for inputs Algoblocks). Such values for the inputs of the algoblocks can be set both for the inputs of the data of the algoblocks and for the control inputs of the algoblocks. Those. in the particular case of the implementation of the present invention, the default values for the inputs of the algoblocks are constants and are stored in the mentioned table of default values for the inputs of the algoblocks. So, for example, when you select the “Data Inputs” submenu for the algoblock (for example, the logical algoblock) in the settings menu of the algoblock (after it is selected by the user), the user can change the default value for at least one of the inputs of the algoblock, for example, Input 3 ("Vh3") from "0" to "1", as shown in FIG. 9, and in the window of the list of algoblocks of the user interface at the corresponding input of the algoblock, the value set by the user in this way will be displayed. And in this case, when the user changes the mentioned default value, the algoblock program itself (but not the data) is changed, since the default values (which are constants) are part of the algoblock program. So, when changing the values of the outputs of the algoblocks (for example, the above-mentioned algoblock of tasks), the data is changed only in the RAM, but the algoblock program does not change, and when the default values are changed, the algoblock program is changed, i.e. when you enter (change) the default values, you change (in particular, enter) the values in the tables describing the algoblock program and which can be stored in permanent or semi-permanent memory.

Алгоблочную программу описывает таблица алгоблоков (типов алгоблоков), таблица связей между алгоблоками и таблица значений входов алгоблоков по умолчанию, причем упомянутые таблицы составляют (формируют) базу данных. Таким образом алгоблочная программа является набором упомянутых таблиц, по крайней мере, одной базы данных, которые хранятся, по крайней мере, в одном хранилище данных, в частности в постоянной памяти, например, постоянной памяти (вычислительного) устройства, в частности ПЗУ устройства, или в полупостоянной памяти. Причем значения выходов алгоблоков сохраняются (хранятся) в оперативной памяти, в частности в ОЗУ (вычислительного) устройства.The algoblock program is described by a table of algoblocks (types of algoblocks), a table of relations between algoblocks, and a table of values of the inputs of algoblocks by default, and these tables compose (form) a database. Thus, an algoblock program is a set of said tables of at least one database that are stored in at least one data store, in particular in read-only memory, for example, read-only memory of a (computing) device, in particular a ROM of a device, or in semi-permanent memory. Moreover, the output values of the algoblocks are stored (stored) in RAM, in particular in the RAM (computing) device.

В процессе создания (разработки) алгоблочной программы все данные алгоблочной программы и таблицы, составляющие саму программу, хранятся в оперативной памяти. При этом таблицы, составляющие программу, при их изменении сохраняются в полупостоянной памяти устройства (включая накопитель на жестких магнитных дисках или флэш-память), на котором осуществляется создание такой алгоблочной программы. В постоянную или полупостоянную память устройства исполнения программа (составляющие ее таблицы) может быть записана по команде пользователя удаленно с устройства, где происходит разработка программы. Алгоблочная программа также может быть в полном объеме вычитана по команде пользователя из устройства, где она исполняется, в устройство, где пользователь может ее изменить, отладить и загрузить обратно в устройство исполнения. Возможен также режим удаленной отладки, когда данные из устройства исполнения постоянно поступают в устройство, где происходит отладка программы, что позволяет пользователю постоянно видеть результаты выполнения всех алгоблоков программы.In the process of creating (developing) the algoblock program, all the data of the algoblock program and the tables that make up the program itself are stored in RAM. In this case, the tables that make up the program, when they are changed, are stored in the semi-permanent memory of the device (including a hard disk drive or flash memory), on which such an algoblock program is created. In the permanent or semi-permanent memory of the execution device, the program (its constituent tables) can be recorded remotely from the device where the program is being developed at the command of the user. Alloblock program can also be fully read out at the command of the user from the device where it is executed, to the device where the user can change it, debug it and download it back to the execution device. Remote debugging mode is also possible, when data from the execution device is constantly supplied to the device where the program is debugging, which allows the user to constantly see the results of all the program blocks.

При изменении (пользователем) связей (связок) между алгоблоками и/или значений входов алгоблоков осуществляется изменение алгоблочной программы, в то время как при изменении значений выходов осуществляется изменение данных (для) созданной (или создаваемой, в частности в процессе изменения) алгоблочной программы.When (user) changes in the relationships (bundles) between the algoblocks and / or the values of the inputs of the algoblocks, the algoblock program is changed, while when the values of the outputs are changed, the data (for) the created (or created, in particular during the change) algoblock program is changed.

Стоит отметить, что (пользователем) может быть осуществлено отключение алгоблока (приостановка выполнения кода алгоблока), в частности, посредством задания на соответствующем (управляющем) входе алгоблока значения, соответствующего отключению алгоблока. Так, например, при задании (подаче) на один из первых двух верхних левых (управляющих) входов алгоблока, отвечающих за отключение алгоблока, значения, соответствующего отключению алгоблока, например, в частном случае, «1» (или отличное от «0» число/значение, которое является значением по умолчанию и является значением, соответствующим тому, что алгоблок отключен, т.е. не выполняется код алгоблока), то в данном случае исполнение данного алгоблока будет (при)остановлено, т.е. алгоблок перестанет исполняться, в частности перестанет исполняться код алгоблока. Таким образом, при изменении значения по умолчанию, например, на входе 1 логического алгоблока во вкладке входных данных окна настройки параметров алгоблока с «0» на «1», на выходах логического алгоблока оказываются нулевые значения, в отличие от значений, указанных на ФИГ. 7.It is worth noting that (by the user), the algoblock can be turned off (suspension of the execution of the algoblock code), in particular, by setting the value corresponding to disabling the algoblock on the corresponding (control) input of the algoblock. So, for example, when setting (feeding) to one of the first two upper left (control) inputs of the algoblock responsible for disabling the algoblock, the value corresponding to disabling the algoblock, for example, in the particular case, is “1” (or a number other than “0” / value, which is the default value and is the value corresponding to the fact that the algoblock is disabled, i.e. the algoblock code is not executed), then in this case the execution of this algoblock will be (if) stopped, i.e. the algoblock will stop executing, in particular, the algoblock code will stop executing. Thus, when changing the default value, for example, at input 1 of the logical algoblock in the input data tab of the window for setting the parameters of the algoblock from “0” to “1”, the outputs of the logical algoblock have zero values, in contrast to the values indicated in FIG. 7.

Стоит отметить, что вход управляющий алгоблока (в данном примере управляющий вход арифметического алгоблока) может быть связан с любым выходом другого алгоблока, например, алгоблока заданий, или с любым другим выходом того же самого алгоблока (в данном примере арифметического алгоблока).It is worth noting that the control algoblock input (in this example, the arithmetic algoblock control input) can be connected to any output of another algoblock, for example, the task algoblock, or any other output of the same algoblock (in this arithmetic algoblock example).

Как было сказано выше, в зависимости от значения на выходе алгоблока, который (выход) связан с (управляющим) входом алгоблока, при изменении значения выхода посредством окна настройки параметров алгоблока заданий в подменю выходов данных, может быть остановлено или осуществлено (в том числе продолжено) выполнение алгоблока. Таким образом при подаче «отключающего» значения на вход алгоблока с выхода алгоблока (того же или другого) может быть остановлено выполнение алгоблока, на вход которого подается «отключающее» значение, и значения выходов алгоблока перестают меняться.As mentioned above, depending on the value at the output of the algoblock, which (output) is connected to the (control) input of the algoblock, when the output value is changed by means of the settings window for the parameters of the algoblock in the submenu of data outputs, it can be stopped or executed (including continued ) execution of the algoblock. Thus, when applying a “disconnecting” value to the input of the algoblock from the output of the algoblock (the same or another), the execution of the algoblock can be stopped, the input of which is supplied with a “disconnecting” value, and the values of the outputs of the algoblock cease to change.

Как было сказано выше и в рамках рассматриваемого примера один из выходов алгоблока (в рассматриваемом примере - логического алгоблока) может быть связан с входом другого алгоблока (в рассматриваемом примере – арифметического алгоблока), причем с входом управляющим (в данном случае входом отключения алгоблока). В данном рассматриваемом примере выход 1 логического алгоблока связан с входом отключения (управляющим входом) арифметического алгоблока. Поскольку на выходе логического алгоблока значение равно «0», то работа арифметического алгоблока не останавливается (логический алгоблок продолжает выполнять код алгоблока). В данном случае «0» на управляющем входе (в частности входе отключения алгоблока) арифметического алгоблока соответствует тому, что алгоблок продолжает выполнять код алгоблока, как было описано выше.As mentioned above, and within the framework of the considered example, one of the outputs of the algoblock (in the considered example, the logical algoblock) can be connected to the input of another algoblock (in the considered example, the arithmetic algoblock), and with the control input (in this case, the disconnect input of the algoblock). In this example, the output 1 of the logical algoblock is connected to the trip input (control input) of the arithmetic algoblock. Since the value at the output of the logical algo block is “0”, the operation of the arithmetic algo block does not stop (the logical algo block continues to execute the code of the algo block). In this case, “0” at the control input (in particular, the algoblock shutdown input) of the arithmetic algoblock corresponds to the fact that the algoblock continues to execute the algoblock code, as described above.

Далее при задании (пользователем) на Выходе 1 алгоблока заданий значения, равного «1» (единице), которое в данном случае связано с входом 1 логического алгоблока, причем на Выходе 1 логического алгоблока теперь значение равно «1» (единице) и данное значение подается на вход отключения арифметического алгоблока. Поскольку в данном случае значение на входе отключения арифметического алгоблока соответствует значению отключения алгоблока (в частности, отличное от «0»), то значения на выходах арифметического алгоблока перестают изменяться (замораживаются). Описываемые управляющие входы (в том числе входы отключения) служат для выполнения вычисления алгоблоками. В данном примере посредством осуществленных выше операций, в частности, описанных связей между алгоблоками и задания значений на выходах (и входах) алгоблоков был создан аналог условного оператора логического «ЕСЛИ». В данном примере, если на (управляющий) вход арифметического алгоблока подается истинное значение («1», «Истина» («true»)), то операция блокируется.Further, when setting (by the user) at Output 1 of the task unit the value equal to “1” (unit), which in this case is connected to input 1 of the logical unit, and at Output 1 of the logical unit, now the value is “1” (unit) and this value fed to the trip input of the arithmetic algoblock. Since in this case the value at the trip input of the arithmetic algoblock corresponds to the trip value of the algoblock (in particular, different from "0"), the values at the outputs of the arithmetic algoblock cease to change (they are frozen). The described control inputs (including trip inputs) are used to perform calculations by algo blocks. In this example, through the operations performed above, in particular, the described relationships between the algoblocks and setting values at the outputs (and inputs) of the algoblocks, an analogue of the conditional logical “IF” operator was created. In this example, if the true value (“1”, “True”) is supplied to the (control) input of the arithmetic algoblock, then the operation is blocked.

По необходимости пользователь может изменить логику действия (алгоблока) посредством выбора (указания) необходимого алгоблока (в настоящем примере, арифметического алгоблока) в подменю Входов управления (окна настроек параметров алгоблока) через изменение параметров Входов управления. Так, например, в подменю Входов управления пользователь может изменить параметры управляющих входов алгоблока. В частности, для упомянутого изменения логики алгоблока пользователь может выставить флаг инверсии, по крайне мере, для одного входа управления. Как было отмечено выше, при изменении, по крайней мере, одного из значений (или параметров) по умолчанию входов управления алгоблока осуществляется изменение алгоблочной программы, причем любое изменение алгоблочной программы приводит к полному очищению оперативной памяти, в которой хранятся данные алгоблочной программы – таблицы выходов данных и выходов диагностики алгоблоков, как было описано выше.If necessary, the user can change the logic of the action (algoblock) by selecting (specifying) the necessary algoblock (in this example, the arithmetic algoblock) in the Control Inputs submenu (settings window of the algoblock) by changing the parameters of the Control Inputs. So, for example, in the Control Inputs submenu, the user can change the parameters of the control inputs of the algoblock. In particular, for the aforementioned algoblock logic change, the user can set the inversion flag for at least one control input. As noted above, when at least one of the values (or parameters) of the control inputs of the algoblock is changed, the algoblock program is changed, and any change of the algoblock program completely erases the RAM in which the data of the algoblock program are stored - the output tables Algoblock diagnostic data and outputs, as described above.

Далее при изменении (в частности, восстановлении заданных ранее значений) на выходах алгоблоков, например, алгоблока заданий, осуществляется исполнение (кодов) алгоблоков.Further, when changing (in particular, restoring previously set values) at the outputs of the algoblocks, for example, the algoblock of tasks, the execution (codes) of the algoblocks is performed.

С использованием не более чем одного алгоблока может быть создана (пользователем) динамическая операция. Для создания динамики (динамической операции) в алгоблочной программе используется запоминание с предыдущих шагов (предыдущих тактов исполнения). Так, например, в случае логического алгоблока выходы такого алгоблока (значения выходов алгоблока) являются значениями с предыдущего шага данного алгоблока.Using no more than one algoblock, a dynamic operation can be created (by the user). To create dynamics (dynamic operation) in the algoblock program, memorization from the previous steps (previous execution steps) is used. So, for example, in the case of a logical algoblock, the outputs of such an algoblock (values of the outputs of the algoblock) are the values from the previous step of this algoblock.

В приведенном примере на основе логического алгоблока может быть собран (создан) триггер. В данном случае первые два (основных) входа логического алгоблока являются счетными входами триггера. Один из входов логического алгоблока может быть использован в качестве обратной связи триггера (подавать значение на него с предыдущего шага). Третий вход логического алгоблока используется в качестве сбросного входа. Выход 5, который является результатом обработки всех четырех выходов логического алгоблока связывается с Входом 4 того же логического алгоблока. Операция 5 (для Выхода 1 и выхода 2) в настройках алгоблока при этом изменена (пользователем) на операцию «ИЛИ», а операция 2 (между третьим и четвертым входом логического алгоблока) изменена на операцию «2>1», обеспечивающую сброс выхода алгоблока при подаче «1» на сбросной вход – Вход 3.In the above example, a trigger can be assembled (created) based on a logical algo block. In this case, the first two (main) inputs of the logical algoblock are the counting inputs of the trigger. One of the inputs of the logical algoblock can be used as trigger feedback (apply a value to it from the previous step). The third input of the logical algoblock is used as a reset input. Output 5, which is the result of processing all four outputs of the logical algoblock, is connected to Input 4 of the same logical algoblock. Operation 5 (for Output 1 and Output 2) in the settings of the algoblock was changed (by the user) to the operation "OR", and operation 2 (between the third and fourth inputs of the logical algoblock) was changed to operation "2> 1", which reset the output of the algoblock when applying “1” to the reset input - Input 3.

Посредством задания значений алгоблока (в данном случае алгоблока заданий) может быть проверена работа триггера, как упомянуто выше.By setting the values of the algoblock (in this case, the algoblock of tasks), the operation of the trigger can be checked, as mentioned above.

Аналогичным образом на основе алгоблока арифметического алгоблока может быть построен интегратор путем связывания выхода операции суммирования с одним из двух ее входов – интеграл будет накапливаться на выходе алгоблока, который соответствует операции суммирования.Similarly, an integrator can be built on the basis of the argmetic algoblock of the arithmetic algoblock by linking the output of the summation operation with one of its two inputs - the integral will accumulate at the output of the algoblock that corresponds to the summation operation.

На ФИГ. 10 показан примерный вариант интерфейса настроек алгоблока, согласно одному из осуществлений настоящего изобретения. В частном случае осуществления настоящего изобретения интерфейс настроек алгоблока является интерфейсом свойств алгоблока.In FIG. 10 shows an exemplary embodiment of an algoblock settings interface, in accordance with one embodiment of the present invention. In the particular case of the implementation of the present invention, the interface of the algoblock settings is the interface of the properties of the algoblock.

Пользователь, выбрав элемент графического интерфейса, например, представленный элементом меню ("вкладкой") выходных данных привязать, по крайней мере, один параметр к базе данных (БД), в частности связать, по крайней мере, один из параметров с базой данных.The user, having selected a graphical interface element, for example, represented by a menu item ("tab") of the output data, bind at least one parameter to the database (DB), in particular, bind at least one of the parameters to the database.

В частном случае осуществления настоящего изобретения пользователь, осуществив привязку Вых1 с А1 и/или Вых2 с А2, может «свернуть» (или закрыть окно) свойств алгоблока, например, посредством «клика» левой кнопкой мыши по пустому пространству графического интерфейса пользователя (в частности, под алгоблоками, цепочкой из алгоблоков). Пользователь также может соединить другие выходы алгоблоков с входами других алгоблоков, например, Вых1 алгоблока аналоговых входов с Вх1 алгоблока сравнения, а Вых2 входов с У1 (первой уставкой) алгоблока сравнения. Далее пользователь может открыть окно свойств алгоблока сравнения (которое продемонстрировано на ФИГ. 11), как было описано выше.In the particular case of the implementation of the present invention, the user, by connecting Out1 with A1 and / or Out2 with A2, can “minimize” (or close the window) properties of the algoblock, for example, by “left-clicking” on an empty space of the graphical user interface (in particular , under the algoblocks, a chain of algoblocks). The user can also connect other outputs of the algoblocks with the inputs of other algoblocks, for example, Output1 of the analog block of inputs from Вх1 of the comparison block, and Output2 of inputs with У1 (first setting) of the comparison block. Next, the user can open the properties window of the comparison algoblock (which is shown in FIG. 11), as described above.

Далее, пользователь может осуществить привязку во вкладке Вых.данных, как показано на ФИГ. 11.Further, the user can bind in the Output Data tab, as shown in FIG. eleven.

В созданной программе с использованием алгоблоков осуществляется сравнение значения из А1 базы данных со значением А2 из базы данных, причем результат сравнения заносится в Д1, как показано на ФИГ. 12.In the created program, using algoblocks, the value from A1 of the database is compared with the value of A2 from the database, and the result of the comparison is entered in D1, as shown in FIG. 12.

На ФИГ. 12 показан один из вариантов системного окна программы, согласно одному из осуществлений настоящего изобретения. Как продемонстрировано на ФИГ. 12 переменная Д1 приняла значение равное единице, поскольку значение А1 превысило уставку, т.е. значение А2.In FIG. 12 shows one embodiment of a system window of a program according to one embodiment of the present invention. As shown in FIG. 12, the variable D1 took a value equal to one, since the value of A1 exceeded the setting, i.e. A2 value.

Имя и описание переменной Д1 может быть задано (определено) пользователем вручную посредством описываемых в настоящем изобретении инструментов, предоставляемых описываемой системой, например, в окне интерфейса базы данных.The name and description of the variable D1 can be set (defined) by the user manually using the tools described in the present invention provided by the described system, for example, in the database interface window.

Механизмом обмена данными с внешними устройствами через порты или память являются для алгоблоков среднего уровня алгоблоки специального типа – слоты.The mechanism for exchanging data with external devices through ports or memory is for mid-level algoblocks of a special type of algoblocks - slots.

Стоит отметить, что в рамках настоящего изобретения могут быть использованы несколько типов слотов (алгоблоков слотов), например:It should be noted that in the framework of the present invention can be used several types of slots (algoblock slots), for example:

- слоты (MikKON), примерный вариант одного из которых показан на ФИГ. 29, осуществляющие обмен данными с модулями (MikKON), в частном случае слотами, с использованием последовательных портов модуля;- slots (MikKON), an example of one of which is shown in FIG. 29, exchanging data with modules (MikKON), in the particular case slots, using the serial ports of the module;

- слоты Память (примерный вариант одного из которых показан на ФИГ. 30), осуществляющие обмен данными через память модуля;- Memory slots (an example of one of which is shown in FIG. 30), exchanging data through the module’s memory;

- слоты FRAM (примерный вариант одного из которых показан на ФИГ. 31), осуществляющие чтение-запись данных в FRAM;- FRAM slots (an exemplary embodiment of one of which is shown in FIG. 31) that read / write data in FRAM;

- слоты CAN (примерный вариант одного из которых показан на ФИГ. 32), осуществляющие обмен данными с модулями через CANBUS.- CAN slots (an example of one of which is shown in FIG. 32), exchanging data with the modules via CANBUS.

В настройках слота может быть задано количество слотов такого типа и тип выводов (слот может либо читать данные, либо писать их) и адрес в памяти с которого они читаются или по которому записываются.In the slot settings, the number of slots of this type and the type of outputs (the slot can either read data or write it) and the memory address from which they are read or written to can be set.

Стоит отметить, что для упомянутых слотов может быть задан тип слота (используемый протокол), начальный адрес в памяти модуля (все входы-выходы модуля отображаются на его память), тип и названия выводов.It is worth noting that for the mentioned slots, the type of slot (protocol used) can be set, the starting address in the memory of the module (all inputs and outputs of the module are mapped to its memory), type and names of the outputs.

Используемый тип слота в дальнейшем может осуществляться задание дополнительных параметров в окне настройки алгоблока слота. Например, может быть задан номер порта и адрес, для некоторых – адрес расширения (MikKON).The type of slot used in the future, additional parameters can be set in the slot algoblock settings window. For example, a port number and address can be specified, for some, an extension address (MikKON).

Слот может выполнять либо операцию чтения из модуля, либо операцию записи в модуль. Таким образом, у слота могут быть либо входы, либо выходы. Названия выводов не могут повторяться, так как по ним осуществляется идентификация выводов. Смещение задаёт смещение адреса вывода относительно заданного адреса в памяти модуля. Смещение может быть задано в формате <байт>:<бит>. Например, для вычитывания самых первых битов из байтов по адресам 5 и 10, может быть задан базовый адрес в памяти модуля равный 3, а смещения:A slot can perform either a read operation from a module or a write operation to a module. Thus, a slot can have either inputs or outputs. The names of the conclusions cannot be repeated, since they are used to identify the conclusions. The offset specifies the offset of the output address relative to the specified address in the module memory. The offset can be specified in the format <byte>: <bit>. For example, to subtract the very first bits from bytes at addresses 5 and 10, the base address in the module's memory can be set to 3, and the offsets:

- для первого вывода: 2:0;- for the first conclusion: 2: 0;

- для второго вывода: 7:0.- for the second conclusion: 7: 0.

После конфигурирования слотов будут доступны соответствующие алгоблоки слотов, которые могут быть выбраны в меню окна списка алгоблоков.After configuring the slots, the corresponding slot blocks will be available, which can be selected in the window menu of the list of blocks.

На ФИГ. 29 показан примерный вариант алгоблока слота (MikKON), согласно одному из вариантов осуществления настоящего изобретения.In FIG. 29 shows an exemplary embodiment of a slot algoblock (MikKON), according to one embodiment of the present invention.

Изображенные на ФИГ. 29 «Dis1» и «Dis2» являются входами отключения алгоблока. Ненулевое значение на любом из этих входов отключает алгоблок. Изображенный на ФИГ. 29 «T» является минимальным тактом опроса (в миллисекундах). Изображенный на ФИГ. 29 «Adr» является адресом модуля. Изображенный на ФИГ. 29 «SA» является адресом расширения модуля. Изображенный на ФИГ. 29 «#» является номером порта, через который производится обмен с модулем. Стоит отметить, что изображенные на ФИГ. 29, «Dis1», «Dis2», «T», «Adr», «SA», «#» являются входами управления.Depicted in FIG. 29 “Dis1” and “Dis2” are algoblock disable inputs. A nonzero value on any of these inputs disables the algoblock. Depicted in FIG. 29 “T” is the minimum polling cycle (in milliseconds). Depicted in FIG. 29 “Adr” is the address of the module. Depicted in FIG. 29 “SA” is the extension address of the module. Depicted in FIG. 29 "#" is the port number through which the exchange is made with the module. It is worth noting that depicted in FIG. 29, “Dis1”, “Dis2”, “T”, “Adr”, “SA”, “#” are the control inputs.

Кроме входов управления у алгоблока могут существовать выходы диагностики (как показано на ФИГ. 29):In addition to the control inputs, the algoblock may have diagnostic outputs (as shown in FIG. 29):

«А» - активность модуля. «1» означает, что обмен с модулем осуществляется нормально. Если от модуля нет ответа в течение времени равного минимальному такту опроса, то на этом выводе устанавливается 0;“A” - module activity. “1” means that the exchange with the module is normal. If there is no response from the module for a time equal to the minimum polling cycle, then 0 is set on this pin;

«Т» - реальный такт опроса (в миллисекундах).“T” is the actual polling cycle (in milliseconds).

На ФИГ. 30 показан примерный вариант алгоблока слота Память («MEM»), согласно одному из вариантов осуществления настоящего изобретения.In FIG. 30 shows an exemplary algoblock of a Memory slot (“MEM”), according to one embodiment of the present invention.

В частном случае осуществления настоящего изобретения входы управления "Dis1" и "Dis2" являются входами отключения алгоблока. Ненулевое значение на любом из них отключает алгоблок.In the particular case of the implementation of the present invention, the control inputs "Dis1" and "Dis2" are the disable inputs of the algoblock. A nonzero value on any of them disables the algoblock.

На ФИГ. 31 показан примерный вариант алгоблока слота FRAM, согласно одному из вариантов осуществления настоящего изобретения. Ненулевое значение на любом из них отключает алгоблок.In FIG. 31 shows an exemplary algoblock of a FRAM slot, according to one embodiment of the present invention. A nonzero value on any of them disables the algoblock.

В частном случае осуществления настоящего изобретения входы управления "Dis1" и "Dis2" являются входами отключения алгоблока.In the particular case of the implementation of the present invention, the control inputs "Dis1" and "Dis2" are the disable inputs of the algoblock.

На ФИГ. 32 показан примерный вариант алгоблока слота CAN, согласно одному из вариантов осуществления настоящего изобретения.In FIG. 32 shows an exemplary algoblock of a CAN slot, according to one embodiment of the present invention.

В частном случае осуществления настоящего изобретения входы управления "Dis1" и "Dis2" являются входами отключения алгоблока. Ненулевое значение на любом из них отключает алгоблок.In the particular case of the implementation of the present invention, the control inputs "Dis1" and "Dis2" are the disable inputs of the algoblock. A nonzero value on any of them disables the algoblock.

Изображенный на ФИГ. 32 «T» является минимальным тактом опроса (в миллисекундах). Изображенный на ФИГ. 32 «Adr» является адресом модуля. Изображенный на ФИГ. 32 «#» является номером порта, через который производится обмен с модулем.Depicted in FIG. 32 “T” is the minimum polling cycle (in milliseconds). Depicted in FIG. 32 “Adr” is the address of the module. Depicted in FIG. 32 "#" is the port number through which the exchange is made with the module.

Кроме входов управления у алгоблока могут существовать выходы диагностики (как показано на ФИГ. 32):In addition to the control inputs, the algoblock may have diagnostic outputs (as shown in FIG. 32):

«Т» - реальный такт опроса (в миллисекундах);"T" - the actual polling cycle (in milliseconds);

«А» - активность модуля. «1» означает, что обмен с модулем осуществляется нормально. Если от модуля нет ответа в течение времени равного минимальному такту опроса, то на этом выводе устанавливается 0.“A” - module activity. “1” means that the exchange with the module is normal. If there is no response from the module for a time equal to the minimum polling cycle, then 0 is set on this pin.

В частном случае осуществления настоящего изобретения создаваемая программа может содержать несколько повторяющихся алгоблоков и/или цепочек алгоблоков, которые могут быть вынесены (добавлены) пользователем, по крайней мере, в одну подпрограмму, что, в частном случае позволяет уменьшить общий размер программы.In the particular case of the implementation of the present invention, the program to be created may contain several repeating algoblocks and / or chains of algoblocks that can be added (added) by the user to at least one subprogram, which, in the particular case, can reduce the overall size of the program.

Стоит отметить, что в частном случае, программа является еще одним циклом выполнения, который может быть вызван с помощью алгоблока вызова подпрограммы. При обнаружении в цепочке алгоблоков алгоблока вызова подпрограммы, система выполнения программы останавливает выполнение текущего цикла, осуществляет выполнение подпрограммы и затем продолжает выполнение со следующего за алгоблоком выхода подпрограммы алгоблока.It is worth noting that in the particular case, the program is another run cycle that can be called using the subroutine call block. If a subroutine call is found in the chain of the algoblocks of the algoblock, the program execution system stops the execution of the current cycle, executes the subprogram, and then continues execution from the output of the subroutine of the algoblock.

Подпрограмма всегда начинается с алгоблока входа в подпрограмму и заканчивается алгоблоком выхода из подпрограммы и может иметь, в частном случае, 16 входов и 16 выходов. Кроме того, входы алгоблоков, находящихся в теле подпрограммы, могут быть привязаны к выходам алгоблоков основных циклов для использования «глобальных» данных.A subprogram always starts with the algoblock for entering the subprogram and ends with the algoblock for exiting the subprogram and can have, in the particular case, 16 inputs and 16 outputs. In addition, the inputs of the algoblocks located in the body of the subprogram can be tied to the outputs of the algoblocks of the main loops for using “global” data.

Как было описано выше пользователем может быть осуществлено добавление алгоблоков в программу.As described above, the user can add algoblocks to the program.

На ФИГ. 33 показан примерный вариант окна списка алгоблоков, согласно одному из осуществлений настоящего изобретения.In FIG. 33 shows an exemplary embodiment of an algoblock list window, in accordance with one embodiment of the present invention.

В данном окне пользователем может быть осуществлено добавление и удаление алгоблоков в выбранном цикле и изменение привязки входов (алгоблоков) к выходам (алгоблоков), а также отображаются алгоблоки выбранного цикла.In this window, the user can add and remove algoblocks in the selected cycle and change the binding of inputs (algoblocks) to outputs (algoblocks), and also algoblocks of the selected cycle are displayed.

В частном случае, цвет отображаемого алгоблока может зависеть от того, выбран ли он пользователем, связаны ли выходы алгоблока с входами другого алгоблока и т.д. Так, например, выбранный пользователем алгоблок отображается жёлтым цветом, алгоблок, выходы которого связаны с входами выбранного – бирюзовым, а алгоблок, входы которого связаны с выходами выбранного – малиновым.In the particular case, the color of the displayed algoblock may depend on whether it is selected by the user, whether the outputs of the algoblock are connected to the inputs of another algoblock, etc. So, for example, the user-selected algoblock is displayed in yellow, the algoblock whose outputs are connected to the inputs of the selected one is turquoise, and the algoblock whose inputs are connected to the outputs of the selected one is crimson.

В частном случае осуществления настоящего изобретения пользователь может добавить алгоблок в создаваемую им программу посредством манипулятора "мышь". Так, например, пользователь, нажав ("кликнув") правую кнопку манипулятора "мышь", может выбрать вкладку «вставить алгоблок» в открывающемся меню и далее в подменю выбрать необходимый алгоблок.In the particular case of the implementation of the present invention, the user can add the algoblock to the program he creates using the mouse. So, for example, the user, having pressed (“clicking”) the right button of the mouse manipulator, can select the “insert algo block” tab in the pop-up menu and then select the desired algo block in the submenu.

Стоит отметить, что пользователь может осуществить добавление ("вставку") алгоблока в начало списка, перед выбранным алгоблоком или в конец списка (в частности, после всех существующих алгоблоков).It is worth noting that the user can add (“insert”) the algoblock to the beginning of the list, before the selected algoblock or to the end of the list (in particular, after all existing algoblocks).

В частном случае осуществления настоящего изобретения пользователь осуществляет связывание ("привязку"), по крайней мере, одного выхода, по крайней мере, одного алгоблока, по крайней мере, с одним входом, по крайней мере, одного другого алгоблока. В частном случае, такое связывание ("привязка") может быть осуществлена с использованием манипулятора "мышь". Так, например, пользователь может выбрать один из выходов одного из алгоблоков и связать его с входом другого (или того же) алгоблока. Так, пользователь может выбрать выход одного алгоблока (выход данных либо выход диагностики и т.д.), затем выбрать вход другого, после чего подтвердить связывание.In the particular case of the implementation of the present invention, the user associates ("binds") at least one output of at least one algoblock with at least one input of at least one other algoblock. In the particular case, such a binding ("binding") can be carried out using the mouse. So, for example, the user can select one of the outputs of one of the algoblocks and associate it with the input of another (or the same) algoblock. So, the user can select the output of one algoblock (data output or diagnostic output, etc.), then select the input of another, and then confirm the binding.

На ФИГ. 34 показан еще один вариант алгоблока, в частности арифметического алгоблока, согласно одному из осуществлений настоящего изобретения. В приведенном примере слева у алгоблока располагаются входы данных. Сверху располагаются входы управления. Справа располагаются выходы данных, снизу располагаются выходы диагностики. Стоит отметить, что количество входов и выходов алгоблоков зависит от типа алгоблока. В частном случае осуществления настоящего изобретения входы алгоблока имеют значение по умолчанию, которое используется, если вход такого алгоблока не связан с выходом другого алгоблока. Внутри тела алгоблока в верхнем левом углу осуществлен вывод (отображение) номера цикла, в котором задан (в который добавлен) данный алгоблок и номер алгоблока в цикле. Под ним может располагаться условное обозначение типа алгоблока. Также внутри тела алгоблока может быть отображен признак инверсии и знаковости для входов алгоблока. У примерного варианта алгоблока, изображенного на ФИГ. 34, у входа данных «Вх1» пользователем задана (определена) инверсия значения (neg), а для входа «Вх2» - учёт знака (sign). Сочетание инверсии значения «neg» и учёта знак «sign» в зависимости от типа входа, приведено в таблице ниже:In FIG. 34 shows yet another embodiment of an algoblock, in particular an arithmetic algoblock, according to one embodiment of the present invention. In the given example, the data inputs are located at the left of the algoblock. Above are the control inputs. To the right are the data outputs, below are the diagnostic outputs. It is worth noting that the number of inputs and outputs of the algoblocks depends on the type of algoblock. In the particular case of the implementation of the present invention, the inputs of the algoblock have a default value, which is used if the input of such an algoblock is not connected to the output of another algoblock. Inside the body of the algoblock, in the upper left corner, the number of the cycle in which the given algoblock and the number of the algoblock in the cycle are specified (in which it is added) is displayed. Under it can be located the type designation of the algoblock. Also, inside the body of the algoblock, a sign of inversion and sign for the inputs of the algoblock can be displayed. An exemplary embodiment of the algoblock depicted in FIG. 34, at the data input “Вх1” the user specified (defined) the inversion of the value (neg), and for the input “Вх2" - account of the sign (sign). The combination of the inversion of the neg value and the accounting of the sign sign depending on the type of input is shown in the table below:

ТипType of neg=0, sign=0neg = 0, sign = 0 neg =0, sign =1neg = 0, sign = 1 neg =1, sign =0neg = 1, sign = 0 neg =1, sign =1neg = 1, sign = 1 БитBit 1 если больше 01 if greater than 0 1 если не равно 01 if not equal to 0 1 если меньше или равно 01 if less than or equal to 0 1 если равно 01 if equal to 0 БайтByte Не изменяетсяDoes not change Не изменяетсяDoes not change Побитовая инверсия входного значенияBitwise inversion of input value Смена знака на противоположныйOpposite sign 2-хбайтовое целое2-byte integer Не изменяетсяDoes not change Не изменяетсяDoes not change Побитовая инверсия входного значенияBitwise inversion of input value -value-value 4-хбайтовое целое4-byte integer Не изменяетсяDoes not change Не изменяетсяDoes not change Побитовая инверсия входного значенияBitwise inversion of input value -value-value 8-ибайтовое целое8-byte integer Не изменяетсяDoes not change Не изменяетсяDoes not change Побитовая инверсия входного значенияBitwise inversion of input value -value-value 4-байтовое с плавающей точкой4-byte floating point Не изменяетсяDoes not change 1/value1 / value -value-value -1/value-1 / value 8-байтовое с плавающей точкой8-byte floating point Не изменяетсяDoes not change 1/value1 / value -value-value -1/value-1 / value

Стоит отметить, что алгоблоки могут иметь входы управления «Dis1» и «Dis2». Упомянутые входы могут быть использованы для отключения данного алгоблока из выполнения. Если на них подано ненулевое значение, то алгоблок не работает.It should be noted that the algoblocks can have control inputs “Dis1” and “Dis2”. Mentioned inputs can be used to disable this algoblock from execution. If a nonzero value is supplied to them, then the algoblock does not work.

Выходы алгоблока могут быть привязаны к базе данных (MWBridge). В этом случае результаты выполнения алгоблока будут отражаться в соответствующих параметрах БД (MWBridge). Для передачи данных из БД (MWBridge) в систему выполнения алгоблочной программы может быть использован специальный тип алгоблоков: алгоблоки задания. Данный тип алгоблоков резервирует область данных соответствующего типа и позволяет передать на входы других алгоблоков значение из базы данных (MWBridge).Algoblock outputs can be linked to a database (MWBridge). In this case, the results of the implementation of the algoblock will be reflected in the corresponding database parameters (MWBridge). To transfer data from the database (MWBridge) to the execution system of the algoblock program, a special type of algoblocks can be used: job algoblocks. This type of algoblocks reserves a data region of the corresponding type and allows you to transfer the value from the database (MWBridge) to the inputs of other algoblocks.

Стоит отметить, что пользователь может выбрать вход одного алгоблока, связанный с выходом другого алгоблока, или пользователь может быть выход одного алгоблока, связанный с входом другого алгоблока, чтобы вызвать отображение описываемой системой и способом двух таких связанных алгоблоков, показанных на ФИГ. 35.It is worth noting that the user can select the input of one algoblock associated with the output of another algoblock, or the user can be the output of one algoblock associated with the input of another algoblock to cause the described system and method to display two such associated algoblocks shown in FIG. 35.

На ФИГ. 35 показан примерный вариант отображения двух связанных между собой алгоблоков, согласно одному из вариантов осуществления настоящего изобретения. На ФИГ. 35 показана связь между двумя алгоблоками, в частности, связь между выходом «№ДБ» системного алгоблока («SYS») и входом («Вх4») арифметического алгоблока («1:2»). Продемонстрированным и описанным способом пользователем может быть осуществлено отслеживание всей последовательности алгоблоков, в частности, связей между алгоблоками. In FIG. 35 shows an exemplary display of two interconnected algoblocks, according to one embodiment of the present invention. In FIG. 35 shows the relationship between two algoblocks, in particular, the relationship between the output "No. DB" of the system algoblock ("SYS") and the input ("Bx4") of the arithmetic algoblock ("1: 2"). By the demonstrated and described method, the user can monitor the entire sequence of algoblocks, in particular, the relationships between the algoblocks.

Стоит отметить, что в частном случае осуществления настоящего изобретения пользователь может настраивать параметры алгоблоков.It should be noted that in the particular case of the implementation of the present invention, the user can configure the parameters of the blocks.

На ФИГ. 36 показан примерный вариант внешнего вида окна настройки параметров алгоблока. В приведенном окне (в частности интерфейсе пользователя, диалоге пользователя, страница и т.д.) пользователем может осуществляться настройка параметров выбранного алгоблока. Стоит отметить, что для каждого типа алгоблоков может существовать свой диалог (окно, интерфейс, страница и т.д.) настройки. В частном случае осуществления настоящего изобретения одинаковыми могут быть окна (страницы, интерфейс и т.д.) просмотра и настройки входов (данных) алгоблока, входов управления алгоблока, выходов (данных) алгоблока и выходов управления алгоблока.In FIG. 36 shows an exemplary appearance of the algoblock parameter setting window. In the above window (in particular, the user interface, the user dialog, page, etc.), the user can configure the parameters of the selected algoblock. It is worth noting that for each type of algoblocks there can be its own dialog (window, interface, page, etc.) settings. In the particular case of the implementation of the present invention, the windows (pages, interface, etc.) of viewing and adjusting the inputs (data) of the algoblock, the inputs of the control of the algoblock, the outputs (data) of the algoblock and the outputs of the control of the algoblock can be the same.

Также, для алгоблока пользователем могут быть изменены описание алгоблока, например, с целью придания большей читабельности создаваемой программы из алгоблоков в целом.Also, for the algoblock, the user can change the description of the algoblock, for example, in order to give greater readability to the program being created from the algoblocks as a whole.

Как было сказано выше, пользователь может осуществлять настройку входов алгоблоков, в частности посредством окна (интерфейса, страницы и т.д.) настройки входов алгоблока, примерный вариант которого изображен на ФИГ.37. В частном случае осуществления настоящего изобретения, как показано на ФИГ. 37, в окне настройки входов алгоблока может отображаться пользователю: текущее значение входа, его значение по умолчанию, признак инверсии («neg») и знаковости («sign»). Также, в последнем поле может отображаться связь с выходом, номер цикла и алгоблока в цикле, а также название выхода. Инверсия и знаковость могут быть заданы (определены, установлены и т.д.) пользователем (только) для связей входа с выходом. Таким образом, для несвязанного входа («болтающегося в воздухе») упомянутые параметры не могут быть определены (назначены) пользователем. As mentioned above, the user can configure the inputs of the algoblocks, in particular through the window (interface, page, etc.) of the settings of the inputs of the algoblock, an example of which is shown in FIG. 37. In the particular case of the implementation of the present invention, as shown in FIG. 37, in the settings window of the inputs of the algoblock, the user can be displayed: the current value of the input, its default value, sign of inversion ("neg") and sign ("sign"). Also, in the last field, the connection with the output, the number of the cycle and the algoblock in the cycle, as well as the name of the output can be displayed. Inversion and sign can be set (defined, set, etc.) by the user (only) for input-output connections. Thus, for an unconnected input (“hanging in the air”), the parameters mentioned cannot be defined (assigned) by the user.

Как было сказано выше, пользователь может осуществлять настройку выходов алгоблоков, в частности посредством окна (интерфейса, страницы и т.д.) настройки выходов алгоблока, примерный вариант которого изображен на ФИГ. 38. В частном случае осуществления настоящего изобретения, как показано на ФИГ. 38, в окне настройки выходов алгоблока пользователь может просмотреть или изменить (редактировать) название выходов алгоблока, его текущее значение, тип выхода и/или его индекс в соответствующей базе данных, например, базе данных MWBridge. В частном случае, новое значение, для каждого из упомянутых параметров, может быть введен (задан, установлен и т.д.) пользователем в соответствующем поле. В частности, в режиме «подключения к модулю» такое значение будет передано в модуль. В частном случае, упомянутое значение может быть использовано в программе до тех пор, пока не будет перезаписано новым значением в результате выполнения алгоблока (в частном, случае, если такой алгоблок не отключен входами управления «Dis1» или «Dis2»).As mentioned above, the user can configure the outputs of the algoblocks, in particular by means of the window (interface, page, etc.) of the settings of the outputs of the algoblocks, an example of which is shown in FIG. 38. In the particular case of the implementation of the present invention, as shown in FIG. 38, in the settings window of the outputs of the algoblock, the user can view or change (edit) the name of the outputs of the algoblock, its current value, type of output and / or its index in the corresponding database, for example, the MWBridge database. In the particular case, a new value, for each of the mentioned parameters, can be entered (set, set, etc.) by the user in the corresponding field. In particular, in the “connect to module” mode, this value will be transferred to the module. In the particular case, the mentioned value can be used in the program until it is overwritten with the new value as a result of the execution of the algoblock (in the particular case, if such an algoblock is not disabled by the control inputs “Dis1” or “Dis2”).

Стоит отметить, что создаваемая с использованием алгоблоков программа (алгоблочная программа) с целью обеспечения возможности разделения вычислительных ресурсов по времени, может состоять, по крайней мере, из трех циклов:It is worth noting that the program (using the algoblock program) created with the use of algoblocks can consist of at least three cycles in order to ensure the possibility of separating computing resources by time:

- основного цикла;- the main cycle;

- замедленного цикла;- slow cycle;

- медленного цикла.- slow cycle.

Алгоблоки в каждом цикле выполняются последовательно. По завершении выполнения цикла начинает выполняться цикл более низкого приоритета (после «основного» – «замедленный», после «замедленного» – «медленный»). Если в цепочке алгоблоков «замедленного» или «медленного» циклов встречается алгоблок возврата на предыдущий цикл, то выполнение данного цикла приостанавливается, и управление передаётся на цикл более высокого приоритета (с «медленного» на «замедленный», с «замедленного» на «основной»). Это позволяет эффективно использовать вычислительные ресурсы системы исполнения алгоблочной программы, создавая конструкции типа «за время одного выполнения «замедленного» цикла выполнить «медленный» цикл N раз». Кроме того, в данном случае осуществляется возможность точно определить, где и когда будет осуществлено прерывание выполнения одного цикла и переход на другой цикл, и обеспечивается целостность данных при таких переходах, не требуя специальных затрат на сохранение контекста.Algoblocks in each cycle are executed sequentially. Upon completion of the cycle, a cycle of lower priority begins (after the "main" - "slow", after the "slow" - "slow"). If in the chain of “slow” or “slow” cycle algoblocks there is an algoblock of return to the previous cycle, then the execution of this cycle is paused, and control is transferred to a higher priority cycle (from “slow” to “slow”, from “slow” to “main” "). This makes it possible to efficiently use the computing resources of the system for executing an algoblock program, creating structures of the type “during a single execution of a“ slowed down ”cycle, execute a“ slow ”cycle N times. In addition, in this case, it is possible to precisely determine where and when the interruption of the execution of one cycle and the transition to another cycle will be carried out, and data integrity is ensured during such transitions, without requiring special costs for maintaining the context.

Для описываемой алгоблочной программы среднего уровня базы данных (значений выходов) таких программ существуют только в том случае, когда существует алгоблочная программа и созданы (пользователем) алгоблоки. For the described middle-level algoblock program, databases (output values) of such programs exist only when the algoblock program exists and the algoblocks are created (by the user).

При этом стоит также отметить, что элементы такой базы - значения выходов алгоблоков - могут быть связаны с внешней БД (например, базой данных аналоговых переменных или дискретных переменных, в частности, БД MWBridge), сохраняемой в ОЗУ. Образ такой БД по требованию пользователя и/или по изменению может копироваться в постоянную память, в частности, в хранилище данных, например, на накопителе на жестких магнитных дисках с, причем образ БД может быть сохранен как в двоичном, так и в текстовом формате, в частности, в файлах. Причем хранение упомянутых данных в двоичном формате позволяют ускорить доступ к таким данным, а хранение в текстовом формате позволяет осуществлять их редактирование (например, пользователем) в любой другой среде (или системе), например, в любой текстовом или табличном редакторе. Образ используется для первоначальной инициализации расположенной в ОЗУ БД при страте исполняющей программы.It is also worth noting that the elements of such a database — the outputs of the algoblocks — can be connected to an external database (for example, a database of analog variables or discrete variables, in particular, the MWBridge database) stored in RAM. The image of such a database, at the request of the user and / or by modification, can be copied to read-only memory, in particular, to a data storage, for example, on a hard disk drive with, moreover, the image of the database can be saved in both binary and text format, in particular in files. Moreover, storing the mentioned data in binary format allows you to speed up access to such data, and storing in text format allows you to edit it (for example, by the user) in any other medium (or system), for example, in any text or spreadsheet editor. The image is used for initial initialization of the database located in RAM with the execution program stratum.

В другом частном случае осуществления настоящего изобретения алгоблочные программы реализованы как алгоблочные программы верхнего уровня также с применением среды визуального табличного программирования, но оптимизированной уже под верхний уровень.In another particular embodiment of the present invention, the algoblock programs are implemented as upper-level algoblock programs also using a visual table programming environment, but optimized for the upper level.

Описываемые система и способ предназначены для создания (пользовательских) процедур (как более подробно описано далее), исполняемых вычислительными устройствами или, по крайней мере, одним модулем упомянутых вычислительных устройств (далее исполняемых процедур или процедур). Упомянутые исполняемые процедуры могут исполняться, по крайней мере, одним вычислительным устройством или, по крайней мере, одним модулем (программным или аппаратным) такого вычислительного устройства, в режиме реального времени.The described system and method are intended to create (user) procedures (as described in more detail below) executed by computing devices or at least one module of said computing devices (hereinafter referred to as executable procedures or procedures). Said executable procedures may be executed by at least one computing device or at least one module (software or hardware) of such a computing device in real time.

Алгоблок верхнего уровня является набором данных (в том числе двоичных данных), определяющих требуемую операцию (сложение, триггер, решение системы линейных уравнений и т.п.), по крайней мере, одним из следующих способов:The top-level algoblock is a set of data (including binary data) that defines the required operation (addition, trigger, solution of a system of linear equations, etc.) in at least one of the following ways:

- входы алгоблока - операнды (по крайней мере, один, например, один или два операнда, в зависимости от типа операции);- Algoblock inputs - operands (at least one, for example, one or two operands, depending on the type of operation);

- результат исполнения операции;- the result of the operation;

- тип операции;- type of transaction;

- условия выполнения операции;- conditions for the operation;

- условия использования операндов;- conditions for the use of operands;

- выход алгоблока - результат выполнения операции, в том числе логический результат выполнения операции.- Algoblock output - the result of the operation, including the logical result of the operation.

Каждый упомянутый набор данных алгоблока может включать в себя (дополнительные) флаги, уточняющие режимы использования таких наборов данных алгоблока.Each aforementioned algoblock dataset may include (additional) flags specifying the usage modes of such algoblock datasets.

Упомянутые процедуры (в том числе пользовательские) являются набором алгоблоков, исполняемых (исполняющей системой) последовательно друг за другом.The mentioned procedures (including user procedures) are a set of algorithms executed (by the executing system) sequentially one after another.

Для первых четырех из упомянутых процедур алгоблочной программы верхнего уровня исполнение осуществляется по специальному циклическому алгоритму разделения времени, аналогичному описанному выше для трех циклов алгоблоков среднего уровня. То есть упомянутые первые четыре процедуры в данной реализации являются четырьмя циклами обхода.For the first four of the above-mentioned procedures of the top-level algoblock program, execution is carried out according to a special cyclic time-sharing algorithm similar to that described above for the three cycles of mid-level algoblocks. That is, the first four procedures mentioned in this implementation are four traversal cycles.

Первая процедура, являющаяся основной, наиболее часто исполняемой процедурой, присутствует всегда и образует быстрый цикл обхода (цикл первой процедуры), исполняемый на каждом такте работы ядра реального времени (описываемой системы). Для организации вычислительного процесса (исполнения программы) пользователю предоставляется специальный алгоблок (который может быть выбран пользователем, в частности, посредством, меню, как описано ниже) цикла «Переход» на предыдущий цикл обхода, который позволяет прервать исполнение текущего цикла обхода (кроме первого, который не прерывается) и перейти к исполнению предыдущего более быстрого цикла обхода (исполняется процедура с меньшим номером). Упомянутый специальный алгоблок может исполняться безусловно или может иметь условие исполнения, в частности, по значению определенной переменной или времени, т.е. алгоритм организации вычислительного процесса (исполнения циклов второго и выше) может быть изменен по результатам работы программы в процессе ее выполнения.The first procedure, which is the main, most frequently executed procedure, is always present and forms a fast traversal cycle (cycle of the first procedure), executed at each clock cycle of the real-time kernel (of the described system). To organize the computing process (program execution), the user is provided with a special algoblock (which can be selected by the user, in particular, through the menu, as described below) of the “Go” cycle to the previous bypass cycle, which allows you to interrupt the execution of the current bypass cycle (except for the first, which is not interrupted) and proceed to the execution of the previous faster loop (the procedure with the lower number is executed). The mentioned special algoblock may be executed unconditionally or may have a condition of execution, in particular, by the value of a certain variable or time, i.e. the algorithm for organizing the computational process (execution of cycles of the second and higher) can be changed according to the results of the program during its execution.

Например, для случая, когда количество циклов обхода равно трем, причем второй и третий циклы обхода включают алгоблок цикла, делящий эти процедуры на две части: на «2-1», «2-2» и «3-1», «3-2» соответственно (в частном случае, алгоблок цикла осуществляет безусловную передачу управления предыдущему циклу обхода).For example, for the case when the number of bypass cycles is three, and the second and third bypass cycles include an algoblock cycle that divides these procedures into two parts: “2-1”, “2-2” and “3-1”, “3 -2 ”, respectively (in the particular case, the algoblock of the cycle unconditionally transfers control to the previous bypass cycle).

Номер такта ядра реального времениReal-time Kernel Clock Number Исполняемые процедурыExecutable Procedures 1one 1 + «2-1»1 + "2-1" 22 1 + «2-2»1 + "2-2" 33 1 + «3-1»1 + "3-1" 4four 1 + «2-1»1 + "2-1" 55 1 + «2-2»1 + "2-2" 66 1 + «3-2»1 + "3-2"

Далее последовательность (исполнения циклов второго и выше) повторяется.Next, the sequence (execution of cycles of the second and higher) is repeated.

Таким образом, в приведенном примере первый цикл обхода (процедура № 1) исполняется в 3 раза чаще второго и в 6 раз чаще третьего.Thus, in the above example, the first loop (procedure No. 1) is executed 3 times more often than the second and 6 times more often than the third.

Исполняемое количество циклов обхода может быть меньше заданного в том случае, если, например, одна из процедур, входящих в циклы обхода, не определена (например, количество алгоблоков в ней равно 0).The executed number of bypass cycles can be less than specified if, for example, one of the procedures included in the bypass cycles is not defined (for example, the number of algoblocks in it is 0).

Для данной реализации алгоблочной системы процедуры с номерами большими количества циклов обхода, то есть начиная с пятой, не входят в алгоритм непрерывного циклического исполнения и могут быть запущены только посредством использования специального алгоблока «Вызов процедуры».For this implementation of the algoblock system, procedures with numbers greater than the number of bypass cycles, that is, starting with the fifth, are not included in the continuous cyclic execution algorithm and can only be started using the special procedure call algorithm.

В данном случае осуществления настоящего изобретения пользователь может добавить в процедуру подпрограмму из алгоблочной программы среднего уровня посредством использования (добавления) соответствующего алгоблока «Вызов подпрограммы».In this case, the implementation of the present invention, the user can add to the procedure a subroutine from the mid-level algoblock program by using (adding) the corresponding “Subroutine call” algoblock.

В алгоблочной программе верхнего уровня может осуществляется проверка данных на достоверность. Такая проверка на данных достоверность может осуществляться после проведения выборки данных (если выборка определена). В частном случае, перед использованием операндов в операции может быть осуществлена проверка операндов на достоверность. В частном случае, может осуществляться, по крайней мере, одна из типов проверок:In the top-level algoblock program, data validation can be performed. Such data validation may be carried out after data sampling (if the sampling is determined). In the particular case, before using operands in an operation, the operands can be checked for validity. In the particular case, at least one of the types of checks can be carried out:

- проверка по статусу; - status check;

- проверка по базе данных. - database check.

По крайней мере, одна из описываемых проверок может быть осуществлена как совместно друг с другом (объединенные комбинацией «И»/«ИЛИ»), так и отдельно друг от друга, как описано далее.At least one of the described checks can be carried out both jointly with each other (combined by the combination of “AND” / “OR”), and separately from each other, as described below.

НА ФИГ. 13 показано окно среды визуального табличного программирования, использующееся для создания алгоблочной программы на верхнем уровне.In FIG. 13 shows a window of the visual table programming environment used to create an algoblock program at the top level.

По нажатию кнопки «Генерация» осуществляется передача исполняющей системе текущей редакции алгоблочной программы, то есть соответствующего набора таблиц. Данную кнопку можно перевести нажатия правой клавиши манипулятора «Мышь» в постоянно нажатое состояние (режим «Автогенерация») в интерфейсе программирования, тогда передача исполняющей системе текущей редакции будет происходить немедленно после внесения любых изменений в программу. By pressing the "Generation" button, the current system of the algoblock program is transferred to the executing system, that is, the corresponding set of tables. This button can be translated by pressing the right button of the “Mouse” manipulator into a constantly pressed state (“Auto-generation” mode) in the programming interface, then the current version will be transferred to the executing system immediately after any changes to the program are made.

В таблице «Расчетные процедуры» пользователь может выбрать одну из строк таблицы, например, посредством манипулятора «Мышь».In the table “Calculation procedures”, the user can select one of the rows of the table, for example, using the “Mouse” manipulator.

При выборе пользователем одной из строк упомянутой таблицы осуществляется отображение окно редактирования алгоблока. Так, например, при выборе пользователем первой строки данной таблицы осуществляется отображение окна редактирования первого алгоблока, которое показано на ФИГ. 14.When the user selects one of the rows of the mentioned table, the algoblock edit window is displayed. So, for example, when the user selects the first row of this table, the editing window of the first algoblock is displayed, which is shown in FIG. fourteen.

На ФИГ. 14 показано окно редактирования алгоблока в режиме редактирования алгоблочных программ верхнего уровня.In FIG. 14 shows the editing window of the algoblock in the editing mode of the algoblock top-level programs.

В данном режиме редактирования алгоблока пользователь может задать операнды и результаты операций. Так, пользователь может задать источник данных, например, выбрав в качестве источника данных базу данных "А" (база данных аналоговых сигналов, примерный вариант которой показан на ФИГ. 19) или базу данных дискретных сигналов «D», или другие базы данных в том числе внутренние, которые описаны в рамках настоящего изобретения (как показано на ФИГ. 15.In this editing mode of the algoblock, the user can specify the operands and results of operations. So, the user can specify the data source, for example, by choosing database "A" as the data source (analog signal database, an example of which is shown in FIG. 19) or the digital signal database "D", or other databases in that including internal, which are described in the framework of the present invention (as shown in FIG. 15.

На ФИГ. 15 показано меню выбора источника данных для алгоблока.In FIG. 15 shows a menu for selecting a data source for an algoblock.

На ФИГ. 16 показано окно редактирования алгоблока с выбранной «Арифметической» операцией в качестве операции для двух операндов (Операнда 1 и Операнда 2).In FIG. 16 shows the editing window of the algoblock with the selected “Arithmetic” operation as the operation for two operands (Operand 1 and Operand 2).

На ФИГ. 17 показано меню выбора типа арифметической операции, которая осуществляется пользователем при выборе типа арифметической операции.In FIG. 17 shows a menu for selecting the type of arithmetic operation, which is carried out by the user when selecting the type of arithmetic operation.

После смены пользователем типа арифметической операции, в данном случае на «сложение», операнды алгоблока (в частности, Операнд 1 и Операнд 2) изменились автоматически на слагаемые, как показано на ФИГ. 18.After the user changes the type of arithmetic operation, in this case to “addition”, the operands of the algoblock (in particular, Operand 1 and Operand 2) automatically changed to terms, as shown in FIG. eighteen.

На ФИГ. 18 показан пример окна редактирования алгоблока с выбранной «Арифметической» операцией в качестве операции для двух операндов, в данном случае являющимися слагаемыми при выбранном типе арифметической операции в виде сложения данных операндов. Результатом работы данного алгоблока является сумма, как показано на ФИГ. 18. Входным параметром для первого слагаемого выбрано значение поля «ПослЗначение» (последнее значение) таблицы A1 (базы данных, изображенной на ФИГ. 19); входным параметром для второго слагаемого выбрано значение поля «ПослЗначение» (последнее значение) таблицы A2; а результат операции сложения (Сумма) выводится в поле «ПослЗначение» (последнее значение) таблицы A3, как показано на ФИГ. 19.In FIG. Figure 18 shows an example of an algoblock editing window with the selected "Arithmetic" operation as an operation for two operands, in this case, the terms of the selected type of arithmetic operation in the form of summing these operands. The result of this algoblock is the sum as shown in FIG. 18. The input parameter for the first term is the value of the field "LastValue" (the last value) of table A1 (the database shown in FIG. 19); the input parameter for the second term is the value of the “LastValue” field (last value) of table A2; and the result of the addition operation (Sum) is displayed in the “Last Value” field (last value) of Table A3, as shown in FIG. 19.

На ФИГ. 19 показано окно базы данных аналоговых сигналов. В данной базе данных отображается, по крайней мере, результат работы (выполнения) алгоблоков, и осуществляется возможность задания пользователем значений для алгоблоков, в частности, посредством изменения полей таблиц (A0, A1, A2 и т.д.), например, значения полей «ПослЗначение». Пользователь может изменить "Скаляр" на "Вектор" (или на «Матрицу») для первого слагаемого, второго слагаемого и для Суммы, а также задать размер вектора. В рассматриваемом примере размер вектора выставлен пользователем равным двум (2).In FIG. 19 shows an analog signal database window. In this database, at least the result of the work (execution) of the algoblocks is displayed, and the user can set values for the algoblocks, in particular, by changing the fields of the tables (A0, A1, A2, etc.), for example, the values of the fields "Last Value". The user can change the “Scalar” to “Vector” (or “Matrix”) for the first term, the second term and for Sum, as well as set the size of the vector. In this example, the size of the vector is set by the user to two (2).

Также пользователь может выставить шаг, который в данном случае также равен двум, как показано на ФИГ. 20 для первого и второго слагаемых, а также для Суммы.The user can also set the step, which in this case is also equal to two, as shown in FIG. 20 for the first and second terms, as well as for the Sum.

На ФИГ. 21 показано окно базы данных аналоговых сигналов для алгоблока, пример которого приведен на ФИГ. 20.In FIG. 21 shows a window of a database of analog signals for an algoblock, an example of which is shown in FIG. twenty.

Подобным описываемым выше способом может быть создан логический алгоблок или любой другой алгоблок, описываемый в рамках настоящего изобретения.In the same manner as described above, a logical algoblock or any other algoblock described in the framework of the present invention can be created.

Проверка по статусу может быть осуществлена для данных, имеющих статусные биты состояния сигнала, в частности:A status check can be performed for data having status bits of signal status, in particular:

- расчетная БД (Rsprog RR);- estimated database (Rsprog RR);

- БД (MWBridge/MLB) А и Д.- DB (MWBridge / MLB) A and D.

При этом для баз данных (MWBridge/MLB) проверки по статусу включаются побитно:Moreover, for databases (MWBridge / MLB), status checks are turned on bit by bit:

- бит «Н» - проверка на достоверность (которая более подробно описана далее);- bit “N” - validation (which is described in more detail below);

- бит «К» - бит квитирования;- bit “K” - acknowledgment bit;

- 6 битов уставок (в случае достоверности – бит «Н» не взведен)/типов недостоверности (в случае недостоверности – бит «Н» взведен, т.е. равен единице). Проверка по базе данных осуществляется посредством анализа состояния указанного элемента базы данных (скаляра, вектора или матрицы - при необходимости производится свертка данных по флагу «И»/«ИЛИ») - элемент проверяется на значение Истина/Ложь в зависимости от указанных флагов проверки. Приведение различных типов данных к логическому типу осуществляется следующим образом:- 6 bits of the settings (in the case of reliability, the “H” bit is not charged) / types of inaccuracy (in the case of uncertainty, the “H” bit is cocked, that is, equal to one). Checking the database is carried out by analyzing the state of the specified database element (scalar, vector or matrix — if necessary, the data is convolved using the “AND” / “OR” flag) - the element is checked for True / False depending on the specified check flags. The conversion of various data types to a logical type is carried out as follows:

- для числовых данных (любые вещественные и целые) значение, равное нулю является Ложью, а значение, не равное нулю является Истиной;- for numerical data (any real and integer), a value of zero is false, and a value of non-zero is true;

- для символьных данных используется код символа и далее обработка осуществляется как для целых чисел (в частности, посредством использования ASCII-кода).- for character data, the character code is used and further processing is carried out as for integers (in particular, through the use of an ASCII code).

Вместо проверки по БД могут быть использованы БД, указанные в условии обработки в качестве расширения БД операнда/результата, причем такая проверка (по статусам «И» / «ИЛИ» БД) является упомянутой выше проверкой на достоверность.Instead of checking against the database, the databases specified in the processing condition as an extension of the operand / result database should be used, moreover, such a check (according to the “AND” / “OR” statuses of the database) is the reliability check mentioned above.

Для каждой операции пользователь может задать режимы использования результатов такой проверки при исполнении операции. Для операции определен флаг задания проверки, имеющий следующие значения:For each operation, the user can specify the modes of using the results of such verification when performing the operation. For the operation, the check job flag is defined, which has the following values:

- НПР (не проверять операнды на достоверность);- NPR (do not check operands for reliability);

- Люб (хотя бы один из операндов должен быть достоверен);- Lyub (at least one of the operands must be reliable);

- Оба (проверять оба операнда),- Both (check both operands),

а также флаг выполнимости операции в зависимости от результатов проверки:as well as a flag of the feasibility of the operation, depending on the results of the check:

- Да (операция исполняется);- Yes (the operation is in progress);

- Нет (операция не исполняется).- No (the operation is not performed).

Если необходимо, производится свертка операндов по «И» или «ИЛИ».If necessary, the operands are convolved according to "AND" or "OR".

Учет недостоверных данных при свертке производится следующим образом:Accounting for false data during convolution is performed as follows:

Проверка операндовOperand checking Свертка по «И»"I" convolution Свертка по «ИЛИ»Convolution by "OR" Не проверятьDo not check Используется константа операндаThe operand constant is used. Операнд пропускаетсяOperand is skipped ПроверятьCheck Используется сам операндThe operand itself is used. Операнд пропускаетсяOperand is skipped

НПР
(не проверять)
NPR
(do not check)
ЛЮБОЙ/ОБАANY / BOTH
Выполнить операциюPerform an operation Не выполнять операциюDo not perform an operation 1
операнд
one
operand
2 операнда2 operands 1
операнд
one
operand
2 операнда2 operands 1
операнд
one
operand
2 операнда2 operands
ЛЮБОЙANY ОБАBOTH ЛЮБОЙANY ОБАBOTH ОП
ДСТ-0
OP
DST-0
Оба ОП
ДСТ-0
Both OP
DST-0
ОП
ДСТ-0
OP
DST-0
Оба ОП
ДСТ-0
Both OP
DST-0
Оба ОП
ДСТ-0
Both OP
DST-0
ОП
ДСТ-0
OP
DST-0
Оба ОП
ДСТ-0
Both OP
DST-0
Оба ОП
ДСТ-0
Both OP
DST-0
ОП
НЕДСТ-
1
OP
NEDST-
one
Один ОП
НЕДСТ-2
One OP
NEDST-2
ОП
НЕДСТ-4
OP
NEDST-4
Один ОП
НЕДСТ-5
One OP
NEDST-5
Один ОП
НЕДСТ-7
One OP
NEDST-7
ОП
НЕДСТ-9
OP
NEDST-9
Один ОП
НЕДСТ-10
One OP
NEDST-10
Один ОП
НЕДСТ-12
One OP
NEDST-12
Оба ОП
НЕДСТ-
3
Both OP
NEDST-
3
Оба ОП
НЕДСТ-
6
Both OP
NEDST-
6
Оба ОП
НЕДСТ-
8
Both OP
NEDST-
8
Оба ОП
НЕДСТ-
11
Both OP
NEDST-
eleven
Оба ОП
НЕДСТ-
13
Both OP
NEDST-
13

где ОП ДСТ – Операнд достоверен; ОП НЕДСТ – Операнд недостоверен.where OP DST - The operand is reliable; OP NEDST - The operand is unreliable.

СлучайHappening ДействиеAct Записываемый статусRecorded Status 00 Тривиальный случай: операция выполняется над операндамиTrivial case: operation is performed on operands 00 1one Вместо НЕДСТ операнда используется КОНСТАНТА ОПЕРАНДАInstead of the NEST operand, the OPERAND CONSTANT is used 00 22 Если операнд сворачивался по "И": КОНСТАНТА ОПЕРАНДА"ИЛИ": операнд НЕ УЧИТЫВАЕТСЯIf the operand was minimized by "AND": ORANDAND CONSTANT: ORDER NOT OPERATED 00 33 ====== 1one 4four Используется Сам ОперандUsed Operand itself 55 55 НЕДСТ операнд НЕ УЧИТЫВАЕТСЯNEDST operand is not taken into account 00 66 ====== 4four 77 ====== 4four 88 ====== 4four 99 Операция НЕ ВЫПОЛНЯЕТСЯ: используется КОНСТАНТА РЕЗУЛЬТАТА (если разрешена); Константа пишется со своим СТАТУСОМ, флаг записи статуса игнорируется. Но, если задана запись статуса, то статус константы будет затерт статусом операцииOperation DOES NOT PERFORM: RESULT CONSTANT is used (if enabled); The constant is written with its STATUS, the status record flag is ignored. But, if a status record is specified, then the status of the constant will be erased by the status of the operation 55 1010 ====== 55 11eleven ====== 99 1212 ====== 99 1313 ====== 99

Если операция не может быть выполнена (деление на 0 и т.д.), то в результат записывается константа результата (если разрешено) и статус 5 (если разрешена запись статуса).If the operation cannot be performed (division by 0, etc.), then the result constant (if allowed) and status 5 (if the status record is allowed) is written to the result.

Далее приведен пример анализа достоверности операндов при свертке:The following is an example of analysis of the reliability of operands during convolution:

- Свертка по флагу "И": результирующий свернутый операнд объявляется недостоверным, если хотя бы одно из сворачиваемых данных было недостоверным;- Convolution according to the "I" flag: the resulting collapsed operand is declared invalid if at least one of the collapsed data was invalid;

- Свертка по флагу "ИЛИ": результирующий свернутый операнд объявляется недостоверным, если все сворачиваемые данные были недостоверными.- Convolution by the "OR" flag: the resulting collapsed operand is declared invalid if all collapsed data was invalid.

Если в результате выполнения свертки по флагу "ИЛИ" (с пропуском недостоверных операндов) нет ни одного достоверного данного, то такой операнд считается отсутствующим.If, as a result of the convolution by the "OR" flag (with the skipping of invalid faithfuls), there is not a single reliable data, then such an operand is considered absent.

Далее приведен пример действий при отсутствии операндов, когда обнаружено отсутствие хотя бы одного операнда, то:The following is an example of actions in the absence of operands when the absence of at least one operand is detected, then:

- при значениях флагов «Люб» или «Оба» и при флаге выполнимости операции «Да» в результат записывается константа результата;- with the values of the flags “Lyub” or “Both” and with the flag of feasibility of the operation “Yes”, the result constant is written to the result;

- при всех остальных комбинациях флагов результат не изменяется.- for all other flag combinations, the result does not change.

Расширение БД операнда/результата за счет БД, указанных в поле условия, позволяет использовать в операциях дополнительные БД. Расширение включается "кликом" манипулятора «мышь» в области Условие обработки или Результат обработки, при этом название изменяется на Расширение операнда или Расширение результата.The expansion of the operand / result database due to the database specified in the condition field allows the use of additional databases in operations. The extension is activated by “clicking” the “mouse” manipulator in the Processing condition or Processing result area, and the name changes to Operand expansion or Result extension.

Правила расширения:Extension Rules:

- расширение производится (простым) наращением размерностей:- expansion is carried out by (simple) increase in dimensions:

Структура операндаOperand structure Структура условияCondition structure Результирующая структураResulting structure ПримечаниеNote 1. Скаляр1. Scalar СкалярScalar Вектор (2)Vector (2) Вектор (n)Vector (n) Вектор (1+n)Vector (1 + n) Матрица (n,m)Matrix (n, m) Вектор (1+n)Vector (1 + n) 2. Вектор (l)2. Vector (l) СкалярScalar Вектор (l+1)Vector (l + 1) Вектор (n)Vector (n) Вектор (l+n)Vector (l + n) Матрица (n,m)Matrix (n, m) Вектор (l+n)Vector (l + n) 3. Матрица (l,k)3. The matrix (l, k) СкалярScalar Матрица (l,k)Matrix (l, k) Нет расширенияNo extension Вектор (n)Vector (n) Матрица (l,k)Matrix (l, k) Нет расширенияNo extension Матрица (n,m)Matrix (n, m) Матрица (l+n,k)Matrix (l + n, k) Есть, только, если m>=kThere is only if m> = k

- при расширении для дополнительных БД используется тот же тип значений, что и для основного операнда/результата; если такого типа значений для дополнительной БД не существует, то используется текущее значение.- when expanding for additional databases, the same type of values is used as for the main operand / result; if this type of value does not exist for the additional database, then the current value is used.

Далее описано осуществление записи данных в алгоблоках.The following describes the recording of data in the algoblocks.

При записи данных в БД (MWBridge/MLB) перед записью осуществляется проверка ранее записанного значения. Запись осуществляется только в том случае, если данные отличаются (исключение может составлять алгоблок «Копирование»). В частном случае, данными являются (собственно) значение и статус (в зависимости от режима работы могут писаться значение и статус как вместе, так и отдельно).When writing data to the database (MWBridge / MLB) before writing, the previously recorded value is checked. Recording is carried out only if the data is different (an exception may be the “Copy” algoblock). In a particular case, the data are (actually) the value and status (depending on the operating mode, the value and status can be written both together and separately).

Запись данных в БД (Rsprog) осуществляется всегда.Writing data to the database (Rsprog) is always done.

На ФИГ. 22 изображен примерный вариант процедур и управление исполнением, согласно одному из осуществлений настоящего изобретения.In FIG. 22 depicts an exemplary embodiment of procedures and execution control, in accordance with one embodiment of the present invention.

На ФИГ. 23 изображен примерный вариант структуры алгоблока, согласно одному из осуществлений настоящего изобретения.In FIG. 23 depicts an exemplary embodiment of an algoblock structure, according to one embodiment of the present invention.

На ФИГ. 24 изображен примерный вариант структуры операнда алгоблока, согласно одному из осуществлений настоящего изобретения.In FIG. 24 shows an exemplary embodiment of the structure of an operand of an algoblock, according to one embodiment of the present invention.

На ФИГ. 25 изображен примерный вариант структуры операции и результата, согласно одному из осуществлений настоящего изобретения.In FIG. 25 depicts an exemplary embodiment of an operation structure and result, according to one embodiment of the present invention.

В частном случае осуществления настоящего изобретения структурированность данных операндов и результата может определяться:In the particular case of the implementation of the present invention, the structure of these operands and the result can be determined:

- скаляром;- scalar;

- вектором:- vector:

- матрицей;- matrix;

- списком.- a list.

На ФИГ. 26 показан пример структурированности данных операндов и результата, определяемой списком, согласно одному из осуществлений настоящего изобретения.In FIG. 26 shows an example of the structuredness of these operands and the result determined by the list, according to one embodiment of the present invention.

В частном случае осуществления настоящего изобретения структурированность, определяемая списком, содержит:In the particular case of the implementation of the present invention, the structure defined by the list contains:

1 Разделение по режиму задания:1 Separation by job mode:

1.1 задание константами;1.1 assignment by constants;

1.2 задание ссылками на БД.1.2 assignment of links to the database.

2 Разделение по организации данных в списках:2 Separation of the organization of data in lists:

2.1 список скаляров (образует вектор - обрабатывается как вектор);2.1 list of scalars (forms a vector - it is processed as a vector);

2.2 список векторов (образует матрицу - обрабатывается как матрица);2.2 list of vectors (forms a matrix - is processed as a matrix);

2.3 список списков (образует матрицу - обрабатывается как матрица).2.3 list of lists (forms a matrix - processed as a matrix).

В таблице ниже приведен пример использования элементов списка Sp(1…8) в различных режимах (согласно ФИГ. 26):The table below shows an example of the use of elements of the list Sp (1 ... 8) in various modes (according to FIG. 26):

Организация данныхData organization Режим заданияJob mode 1.1 Константы1.1 Constants 1.2 Ссылки1.2 References 2.1 Список скаляров (вектор)2.1 List of scalars (vector) Sp(1..8) – список, заданный константами (максимум 8 элементов) – размер вектораSp (1..8) - list specified by constants (maximum 8 elements) - vector size Sp(1)-ссылка на начало списка; Sp(2)-количество элементов списка (размер вектора)Sp (1) - link to the beginning of the list; Sp (2) - the number of list items (vector size) 2.2 Список векторов (матрица)2.2 List of vectors (matrix) Sp(1..6) - список, заданный константами (максимум 6 элементов) – размер вектора; Sp(7) – количество векторов (размер матрицы); Sp(8) – смещение между векторами матрицы; Матрица 6XSp(7)Sp (1..6) - list specified by constants (maximum 6 elements) - vector size; Sp (7) - the number of vectors (matrix size); Sp (8) is the displacement between the vectors of the matrix; 6XSp Matrix (7) Sp(1)-ссылка на начало списка (элемент матрицы (1,1)); Sp(2)-количество элементов списка (размер вектора); Sp(3)-количество векторов (размер матрицы); Sp(4)-смещение между векторами матрицы; образуется матрица Sp(2)XSp(3)Sp (1) -link to the beginning of the list (matrix element (1,1)); Sp (2) - the number of list items (vector size); Sp (3) -number of vectors (matrix size); Sp (4) -shift between the vectors of the matrix; the matrix Sp (2) XSp (3) is formed 2.3 Список списков (матрица)2.3 List of lists (matrix) Sp(1..4) - список, заданный константами (максимум 4 элемента) - размер вектора; Sp(5..8) – смещения между векторами матрицы, отсчитанные от 1-го вектора; Образуется матрица 4X5Sp (1..4) - list specified by constants (maximum 4 elements) - vector size; Sp (5..8) - displacements between the vectors of the matrix counted from the 1st vector; 4X5 matrix is formed Sp(1)-ссылка на начало списка (элемент матрицы (1,1)); Sp(2)-количество элементов списка (размер вектора); Sp(3)-количество векторов (размер матрицы); Sp(4)-ссылка на список смещений векторов матрицы, отсчитываемых от 1-го вектора матрицы (размер списка равен sp(3)-1); образуется матрица Sp(2)XSp(3)Sp (1) -link to the beginning of the list (matrix element (1,1)); Sp (2) - the number of list items (vector size); Sp (3) -number of vectors (matrix size); Sp (4) -link to the list of displacements of the matrix vectors counted from the 1st matrix vector (the size of the list is sp (3) -1); the matrix Sp (2) XSp (3) is formed

Стоит отметить, что It is worth noting that

1. Списки, заданные константами:1. Lists defined by constants:

- имеют индивидуальные флаги отрицания;- have individual negation flags;

- элементы списка, меньшие или равные нулю и не входящие в область нормальных номеров (за ними нет нормальных номеров) отбрасываются.- list items less than or equal to zero and not falling into the normal number area (there are no normal numbers behind them) are discarded.

2. Списки, заданные ссылками:2. Lists specified by links:

- если элемент списка задан отрицательным числом, то считается, что он имеет отрицание - для выборки элемента используется абсолютное значение;- if the list item is given a negative number, then it is considered that it has a negation - the absolute value is used to select the item;

- никаких других проверок не производится - нули не отбрасываются.- no other checks are performed - zeros are not discarded.

3. Индивидуальное отрицание элемента списка и общее отрицание всего операнда объединяются по правилу «Исключительное ИЛИ», т.о. два отрицания отменяют отрицание.3. The individual negation of the list item and the general negation of the entire operand are combined according to the “Exclusive OR” rule, thus two negations cancel the negation.

Отрицание элементов осуществляется после чтения или перед записью по следующим правилам:Denial of elements is carried out after reading or before writing according to the following rules:

- для чисел производится умножение на -1;- for numbers multiplied by -1;

- для логических элементов выполняется функция NOT;- the NOT function is performed for logical elements;

- для символов:- for characters:

- если код символа меньше 128, то к нему прибавляется 128;- if the character code is less than 128, then 128 is added to it;

- если код символа больше 127, то от него вычитается 128.- if the character code is greater than 127, then 128 is subtracted from it.

На ФИГ. 27 показан примерный вариант пользовательского интерфейса для взаимодействия с базами данных, согласно одному из осуществлений настоящего изобретения. В частном случае осуществления настоящего изобретения описываемый способ предоставляет возможность пользователю осуществлять просмотр и редактирование (расчетных) баз данных, который может включать, по крайней мере, два режима осуществления взаимодействия пользователя:In FIG. 27 illustrates an exemplary user interface for interacting with databases, according to one embodiment of the present invention. In the particular case of the implementation of the present invention, the described method enables the user to view and edit (settlement) databases, which may include at least two modes of user interaction:

- инициализацию баз данных;- initialization of databases;

- просмотр и редактирование текущих значений.- view and edit current values.

В частном случае осуществления изобретения пользователь может осуществлять:In the particular case of the invention, the user can carry out:

- просмотр баз данных;- view databases;

- редактирование баз данных:- editing databases:

- редактирование отдельных элементов векторов;- editing of individual elements of vectors;

- групповое присвоение одинаковых значений (для символьного вектора предусмотрен ввод как символа присвоения, так и его кода);- group assignment of the same values (for a character vector, both an assignment character and its code are entered);

- изменение размерностей векторов (только в режиме инициализации) (используется кнопка «Установить»);- change the dimensions of vectors (only in initialization mode) (use the "Install" button);

- определение элементов БД, используемых для организации дистанционного управления процессом исполнения программы («Отладчик»):- definition of database elements used to organize remote control of the program execution process ("Debugger"):

- поле «Команды» определяет элементы БД, используемые для передачи команд исполняющей системе (наличие команды определяется значением соответствующей переменной: = 0 – нет команды, = 1 – есть команда; после исполнения команды исполняющая система сбрасывает управляющую переменную в 0);- the "Commands" field defines the database elements used to transmit commands to the executing system (the presence of a command is determined by the value of the corresponding variable: = 0 - there is no command, = 1 - there is a command; after executing the command, the executing system resets the control variable to 0);

- поле «Параметры» определяет элементы БД, используемые как для передачи параметров в определенных командах, так и для приема результатов работы исполняющей системы; поле «Пуск» определяет два подряд идущих параметра: номер процедуры и алгоблока; поле «Стоп» определяет три подряд идущих параметра: номер цикла, процедуры и алгоблока; поле «Время» определяет три подряд идущих параметра в миллисекундах: такт системы, время исполнения ядра реального времени и время исполнения алгоблочной программы; поле «Циклы» определяет вектор счетчиков циклов (предварительно задается количество циклов);- the “Parameters” field defines the database elements used both for transmitting parameters in certain commands and for receiving the results of the execution system; the “Start” field defines two consecutive parameters: the number of the procedure and the algoblock; the “Stop” field defines three consecutive parameters: cycle, procedure, and algoblock number; the “Time” field defines three consecutive parameters in milliseconds: system clock, real-time kernel execution time, and algoblock program execution time; the Cycles field defines the vector of cycle counts (the number of cycles is predefined);

- поле «Автозапуск» определяет режим запуска программы после загрузки:- the “Autostart” field determines the program launch mode after loading:

- при включенном режиме «Автозапуск» программа начинает исполняться сразу после загрузки с возможной задержкой, указываемой в секундах;- when the "Autostart" mode is on, the program starts to be executed immediately after loading with a possible delay indicated in seconds;

- если режим «Автозапуск» отключен, то программа не исполняется после старта системы; запуск возможен только:- if the "Autostart" mode is disabled, the program is not executed after the system starts; launch is possible only:

- или используя кнопки управления в БД (Rsprog) (только локальный запуск – начинает исполняться программа на данном вычислительном устройстве);- or using the control buttons in the database (Rsprog) (only local launch - the program starts to run on this computing device);

- или устанавливая значение «1» в соответствующей управляющей переменной БД («Пуск»), причем возможен дистанционный пуск программы при условии, что данная управляющая переменная включена в сетевую передачу;- or by setting the value "1" in the corresponding control variable of the database ("Start"), and it is possible to remotely start the program, provided that this control variable is included in the network transmission;

- поле «Группы учета» позволяет установить способ обработки групп учета:- the “Accounting groups” field allows you to set the processing method for accounting groups:

-перед исполнением программы;-before the execution of the program;

-после исполнения программы;-after the execution of the program;

-в теле самой программы с помощью алгоблока «Группы учета» (в этом случае возможно задание номеров обсчитываемых групп; в остальных случаях всегда обсчитываются все группы).-in the body of the program itself using the “Accounting Groups” algoblock (in this case, it is possible to specify the numbers of the groups to be counted; in other cases, all groups are always calculated)

Дополнительные особенности осуществления пользователем просмотра и редактирования (расчетных) баз данных, включая, но не ограничиваясь, инициализацию баз данных, просмотр и редактирование текущих значений, представлены в приведенной ниже таблице:Additional features of the user viewing and editing (calculated) databases, including, but not limited to, initializing databases, viewing and editing current values, are presented in the table below:

КомандаTeam Используемые параметрыParameters Used ДействияActions Пуск Start Пуск(Пр/Алг) – программа стартует с указанной процедуры и алгоблока(Пр и Алг не равны 0); Стоп(Цк/Пр/Алг) – программа останавливается по достижении указанной процедуры и алгоблока на заданном цикле(Цк, Пр и Алг не равны 0);Start (Pr / Alg) - the program starts with the specified procedure and the algoblock (Pr and Alg are not equal to 0); Stop (Ck / Pr / Alg) - the program stops after reaching the specified procedure and the algoblock on a given cycle (Ck, Pr and Alg are not equal to 0); Запуск программы на исполнениеRunning a program for execution СтопStop ---------- Останов исполнения программы; в параметрах Стоп(Цк/Пр/Алг) возвращаются номера цикла, процедуры и алгоблока, на которых произведен остановProgram execution stop; in the Stop parameters (Tsk / Pr / Alg), the cycle, procedure, and algoblock numbers are returned, at which the stop ГенерацияGeneration ---------- Производится перезагрузка расчетных массивов и программы; если программа до этого исполнялась, производится запускThe calculated arrays and the program are rebooted; if the program was previously running, it starts ПродолжитьContinue -------- Продолжение исполнения после остановаContinued execution after shutdown Сброс счетчиковReset Counters -------- Обнуление счетчиков исполнения для всех процедур, входящих в циклы обходаZeroing execution counters for all procedures that are included in bypass cycles Алгоблок «+»Algoblock "+" -------- Пошаговое исполнение; в параметрах Стоп(Цк/Пр/Алг) возвращаются номера цикла, процедуры и алгоблока, на которых произведен остановStep-by-step execution; in the Stop parameters (Tsk / Pr / Alg), the cycle, procedure, and algoblock numbers are returned, at which the stop Цикл «+»The cycle "+" Цикл обхода (определяет номер процедуры, входящей в цикл обхода)Bypass cycle (defines the number of the procedure included in the bypass cycle) Исполнение на один цикл указанной процедуры; в параметрах Стоп(Цк/Пр/Алг) возвращаются номера цикла, процедуры и алгоблока, на которых произведен остановExecution of the specified procedure for one cycle; in the Stop parameters (Tsk / Pr / Alg), the cycle, procedure, and algoblock numbers are returned, at which the stop Такт системы (задается в мсек.)System cycle (set in ms.) -------- Изменение основного такта работы системыChange the main cycle of the system

В частном случае, исполнение команды вызывается установкой «1» в соответствующую переменную БД, как показано в приведенной таблице ниже:In the particular case, the execution of the command is called by setting "1" in the corresponding database variable, as shown in the table below:

ПараметрParameter ЗначениеValue Пуск(Пр/Алг)Start (Pr / Alg) Определяют стартовую процедуру и алгоблокThe starting procedure and the algoblock are determined Стоп(Цк/Пр/Алг)Stop (CC / Pr / Alg) При старте: определяют точку останова;
При останове: возвращают точку останова
At start: define a breakpoint;
On stop: return a breakpoint
Цикл обходаBypass cycle Для команды «Цикл «+» определяет номер процедуры, входящей в цикл обходаFor the command "Cycle" + "determines the number of the procedure included in the loop Исполнение/ОшибкаExecution / Error Возвращает значение «1» при работающей программе и «0» при неработающей. Отрицательные значения означают ошибки:
-1 – ошибка загрузки Progres.nsi;
-2 – ошибка подключения к БД (MWBridge);
-3..-8 – ошибка обработки файлов БД RS$RR,RS$LR,RS$SR,RS$IR,RS$IR2, RS$IR4 соответственно;
-9 – недостаточно оперативной памяти для загрузки расчетных БД;
-10 – недостаточно оперативной памяти для загрузки процедуры;
-11 – Ошибка обработки файла процедур;
-12 - Win-программа не может исполняться под DOS;
-13 – ошибка распределения памяти под область предыдущих значений;
-14 – отсутствует файл процедур;
-15 – размер файла процедур не соответствует требуемому;
-16 – разрушена внутренняя структура файла процедур;
-17 – не заданы процедуры для обсчета;
-18 – ошибка создания файла Procedur.prs;
-19 – ошибка записи в файл Procedur.prs;
-20 – ошибка контрольной суммы.
Returns the value “1” when the program is running and “0” when the program is not running. Negative values indicate errors:
-1 - error loading Progres.nsi;
-2 - error connecting to the database (MWBridge);
-3 ..- 8 - error processing database files RS $ RR, RS $ LR, RS $ SR, RS $ IR, RS $ IR2, RS $ IR4, respectively;
-9 - there is not enough RAM to load the calculated databases;
-10 - insufficient RAM to load the procedure;
-11 - Error processing the procedure file;
-12 - Win-program cannot be executed under DOS;
-13 - memory allocation error for the area of previous values;
-14 - missing procedure file;
-15 - the file size of the procedures does not match the required
-16 - the internal structure of the procedure file is destroyed;
-17 - no procedures for calculation;
-18 - error creating the Procedur.prs file;
-19 - error writing to the Procedur.prs file;
-20 - checksum error.
Последняя процедура, последний алгоблокLast procedure, last algoblock Возвращает номера процедуры и алгоблока, на которых завершено исполнение на текущем такте работы исполняющей системыReturns the procedure and algoblock numbers on which execution on the current clock cycle of the executing system is completed Цикл ResidentResident cycle Возвращает текущее значение цикла: 0 – старт, 1 – исполнение, 2 – завершениеReturns the current value of the cycle: 0 - start, 1 - execution, 2 - completion Цикл (вектор)Cycle (vector) Возвращает текущие значения счетчиков циклов для процедур, входящих в цикл обхода (количество процедур определяется размерностью вектора, но не больше циклов обхода)Returns the current values of the cycle counts for the procedures included in the loop (the number of procedures is determined by the dimension of the vector, but not more than the loop) Время (S/R/U)Time (S / R / U) Возвращает время в мсек.: S – основной такт работы системы; R – такт работы Resident; U – такт работы исполняющей системы обработки алгоблоковReturns time in ms: S - the main clock of the system; R is the clock cycle of Resident; U is the clock cycle of the runtime processing system of algoblocks

На ФИГ. 28 показан один из вариантов интерфейса пользователя для описания базы данных, согласно одному из осуществлений настоящего изобретения. В частном случае осуществления изобретения пользователь может осуществлять просмотр и редактирования описаний сигналов, а также осуществлять анализ использования сигналов.In FIG. 28 shows one embodiment of a user interface for describing a database according to one embodiment of the present invention. In the particular case of the invention, the user can view and edit descriptions of signals, as well as analyze the use of signals.

В частном случае, пользователь может осуществлять просмотр и редактирование имени сигнала, описания сигнала, инициализационного значения, текущего значения (в частности, при загруженной системе исполнения алгоблоков).In the particular case, the user can view and edit the signal name, description of the signal, initialization value, current value (in particular, when the system for executing algorithms is loaded).

Так, в частном случае, пользователь при упомянутом редактировании может использовать:So, in a particular case, the user with the mentioned editing can use:

- функцию Добавить - добавляется один новый сигнал в конец БД (при загруженной исполняющей части производится перезагрузка БД);- Add function - one new signal is added to the end of the database (when the executing part is loaded, the database is rebooted);

- функцию Коррекция - выполняется переход к формату коррекции БД;- Correction function - the transition to the database correction format is performed;

- операции с буфером обмена (буфер обмена в дальнейшем может использоваться в формате коррекции):- operations with the clipboard (the clipboard can later be used in the correction format):

- запись в буфер обмена (в начало, в конец, с обнулением предыдущего содержимого и т.д.);- writing to the clipboard (to the beginning, to the end, with zeroing the previous contents, etc.);

- очистка буфера (полная очистка, очистка по блокам и т.д.);- buffer cleaning (full cleaning, block cleaning, etc.);

- назначение номеров сигналов для записи в буфер посредством манипулятора "мышь" в области номера сигнала (посредством левой кнопки манипулятора "мышь" пользователем может быть определено начало области записей, посредством левой кнопки манипулятора "мышь" пользователем может быть определен конец области записей для копирования в буфер обмена).- assignment of signal numbers for writing to the buffer using the mouse button in the signal number area (using the left button of the mouse button, the user can determine the beginning of the recording area, using the left button of the mouse button the user can determine the end of the recording area for copying to clipboard).

Стоит также отметить, что в настоящем изобретении осуществляется анализ использования элементов, по крайней мере, одной из баз данных. Такой анализ может быть осуществлен автоматически. Режим анализа может быть установлен (осуществлен, определен, выставлен и т.д.) пользователем, по крайней мере, выбором из следующих режимов:It is also worth noting that the present invention analyzes the use of elements of at least one of the databases. Such an analysis can be carried out automatically. The analysis mode can be set (implemented, defined, set, etc.) by the user, at least by choosing from the following modes:

- только присвоение;- only assignment;

- только использование;- only use;

- присвоение и использование.- appropriation and use.

Режим Использование позволяет определить те места в программе (номер процедуры, алгоблока и область в алгоблоке), где данный элемент используется, или как данное, или как флаг, или как ссылочный массив.The Use mode allows you to determine those places in the program (procedure, algoblock number and area in the algoblock) where this element is used, either as a given, or as a flag, or as a reference array.

Режим Присвоение позволяет определить те места в программе (номер процедуры, алгоблока и область в алгоблоке), где данный элемент присваивается, т.е. меняет значение.The Assignment mode allows you to determine those places in the program (procedure number, algoblock and the area in the algoblock) where this element is assigned, i.e. changes the meaning.

В обоих случаях использование и присвоение может осуществляться посредством ссылки, т.е. зависеть от текущего значения других элементов.In both cases, the use and assignment can be carried out by reference, i.e. depend on the current value of other elements.

В частном случае анализ ссылочной информации осуществляется (только) при загруженной исполняющей системе.In the particular case, the analysis of the reference information is carried out (only) when the executing system is loaded.

В частном случае осуществления настоящего изобретения может осуществляться проверка исполнения по условиям результата. In the particular case of the implementation of the present invention, verification of performance under the terms of the result can be carried out.

Так, например, проверка необходимости исполнения алгоблока может осуществляться (непосредственно) на этапе расчета. Для этого могут быть использованы условия результата.So, for example, verification of the need for execution of an algoblock can be carried out (directly) at the calculation stage. For this, the conditions of the result can be used.

Для включения проверки пользователь может:To enable verification, the user can:

- взвести флаги:- cock the flags:

- использования условий результата;- use of the conditions of the result;

- проверки по условиям результата; - checks on the conditions of the result;

- определить значение для проверки (например, Истина, Ложь, 0 13, как описано в рамках настоящего изобретения);- determine the value for verification (for example, True, False, 0 13, as described in the framework of the present invention);

- установить результат проверки по умолчанию (Да, Нет), используемый при недостоверных данных или неверной адресации условий проверки.- set the default scan result (Yes, No) used for invalid data or incorrect addressing of the scan conditions.

В частном случае, заданная (определенная, установленная и т.д.) таким образом проверка позволяет выполнять операции индивидуально. Например, при операции сложения векторов с записью в вектор результата можно определить вектор условий результата, разрешающий исполнение сложения только для избранных элементов векторов (для тех элементов векторов результата, для которых соответствующие элементы вектора условий результата имеют значение, равное проверяемому).In the particular case, a given (specific, established, etc.) check thus allows you to perform operations individually. For example, in the operation of adding vectors with writing to the result vector, you can determine the result condition vector that allows addition to be performed only for selected elements of the vectors (for those elements of the result vectors for which the corresponding elements of the result condition vector have a value equal to the one being checked).

Проверка по условиям результата может быть применима, по крайней мере, для одной из следующих операций:Verification by the conditions of the result may be applicable for at least one of the following operations:

- общие операции:- general operations:

- копирование;- copying;

- (все) арифметические операции (кроме прогрессии, решения системы линейных уравнений, а также определения коэффициентов полинома);- (all) arithmetic operations (except for progression, solving a system of linear equations, as well as determining the coefficients of a polynomial);

- (все) логические операции, кроме апериодического фильтра и отклонения;- (all) logical operations, except for an aperiodic filter and deviations;

- операции динамики: - dynamics operations:

- ограничение;- restriction;

- ШИМ;- PWM;

- таймеры:- timers:

- циклический;- cyclic;

- астрономический.- astronomical.

В частном варианте реализации настоящего изобретения пользователем или по крайней мере, одной частью системы, реализующей описываемый в настоящем изобретении способ, может осуществляться операция выборки операндов.In a particular embodiment of the present invention, by a user or at least one part of a system implementing the method described in the present invention, an operation of selecting operands can be performed.

Операция выборки операндов используется для фильтрации операндов по определенным критериям. Операнды, не прошедшие выборку, не участвуют в операции. Упомянутая выборка может быть организована по следующим критериям:The operand selection operation is used to filter operands according to certain criteria. Unsampled operands do not participate in the operation. The mentioned sample can be organized according to the following criteria:

- по номеру набора;- by dial number;

- по статусу параметра;- by parameter status;

- по значению параметра.- by parameter value.

Выборка по номеру набора может осуществляться для БД (MWBridge). Параметр считается удовлетворяющим данному критерию выборки, если номер набора параметра равен заданному.Selection by dialing number can be done for the database (MWBridge). A parameter is considered to satisfy this selection criterion if the parameter set number is equal to the specified one.

Выборка по статусу может осуществляться для БД (MWBridge) и вектора RR. Параметр считается удовлетворяющим данному критерию выборки, если текущий статус параметра входит в группу статусов, разрешенную для данной выборки. Может осуществляться следующая организация выборки по статусу:Status sampling can be performed for the database (MWBridge) and the RR vector. A parameter is considered to satisfy this selection criterion if the current status of the parameter is included in the group of statuses allowed for this selection. The following organization of sampling by status can be carried out:

- Норма (статус = 0);- Norm (status = 0);

- Достоверно (0,3,4);- Reliably (0.3.4);

- Недостоверно (1,2,5,6,7);- Unreliable (1,2,5,6,7);

- За верхней уставкой (3);- For the upper setting (3);

- За нижней уставкой (4);- For the lower setting (4);

- За верхней или нижней уставкой (3,4);- For the upper or lower setting (3.4);

- Не за верхней уставкой (0,4);- Not at the upper setting (0.4);

- Не за нижней уставкой (0,3);- Not at the lower setting (0.3);

- Прямое указание значения статуса в диапазоне 0-7.- Direct indication of the status value in the range 0-7.

Также для организации выборки может быть использован статусный байт, в котором побитно (6 битов анализа уставок, бит достоверности и бит квитирования) указывается:Also, to organize the sampling, a status byte can be used, in which bitwise (6 bits of settings analysis, a validity bit and an acknowledgment bit) are indicated:

- Использование данного бита (установка бита в «1»);- Use of this bit (setting the bit to "1");

- Использование данного бита (сброс бита в «0»);- Use of this bit (reset bit to "0");

- Отказ от анализа данного бита.- Refusal to analyze this bit.

В частном случае считается, что выборка пройдена, если все биты, для которых определена проверка, имеют указанные значения.In the particular case, it is considered that the sample has been passed if all the bits for which the test is defined have the indicated values.

Выборка по значению может осуществляться для всех БД. Параметр считается удовлетворяющим данному критерию выборки, если текущее значение параметра удовлетворяет заданному условию проверки. Возможны следующие проверки значения:Sampling by value can be performed for all databases. A parameter is considered to satisfy this selection criterion if the current value of the parameter satisfies the specified verification condition. The following value checks are possible:

- равно константе;- equal to a constant;

- неравно константе;- unequally constant;

- больше константы;- more constants;

- меньше константы;- less constant;

- находится в диапазоне <константа1 - константа2>;- is in the range <constant1 - constant2>;

- находится вне диапазона <константа1 - константа2>.- is out of the range <constant1 - constant2>.

Результаты выборки по указанным выше критериям могут быть объединены в единый результат логическими операциями «И» и «ИЛИ», что позволяет составлять сложные логические конструкции для выборки операндов.The results of the selection according to the above criteria can be combined into a single result by the logical operations "AND" and "OR", which allows you to compose complex logical structures for selecting operands.

Выборка может осуществляться для следующих операций:Sampling can be carried out for the following operations:

- общие:- general:

- копирование;- copying;

- арифметические:- arithmetic:

- все бинарные операции;- all binary operations;

- все унарные операции;- all unary operations;

- взвешенное сложение и умножение, а также средневзвешенное;- weighted addition and multiplication, as well as weighted average;

- попадание в диапазон;- falling into the range;

- прогрессия;- progression;

- логические:- brain teaser:

- отрицание (NOT);- denial (NOT);

- И, ИЛИ, Исключительное ИЛИ, НЕ И, НЕ ИЛИ, НЕ Исключительное ИЛИ, Следование, НЕ Следование,- AND, OR, Exclusive OR, NOT AND, NOT OR, NOT Exclusive OR, Following, NOT Following,

- сравнение с уставками;- comparison with settings;

- сравнение значений;- comparison of values;

- попадание в диапазон;- falling into the range;

- динамика:- dynamics:

- идентификация модели.- model identification.

Включение выборки производится следующим образом:The inclusion of sampling is as follows:

- установить общий флаг включения выборки;- set the general flag to enable the selection;

- включить необходимые выборки (по набору, статусу и значению);- include the necessary samples (by set, status and value);

включение производится нажатием "мыши" в область наименованияinclusion is made by clicking the "mouse" in the namespace

выборки;sampling;

- для каждой включенной выборки установить требуемые значения для проверки;- for each included sample, set the required values for verification;

- определить логическую связку выборок (если используется более одной выборки).- determine the logical connective of the samples (if more than one sample is used).

Настоящее изобретение использует графический (визуальный) язык программирования интерпретирующего типа (ГЯПИ).The present invention uses a graphical (visual) interpretative type programming language (GUYAP).

Стоит отметить, что ГЯПИ является процедурным (с точки зрения последовательности исполнения).It is worth noting that the NSG is procedural (in terms of sequence of execution).

Также, стоит отметить, что ГЯПИ является цифровой моделью аналоговой ЭВМ (с точки зрения обработки данных).It is also worth noting that the NSG is a digital analog computer model (in terms of data processing).

Также, в ГЯПИ отсутствует претрансляция в текстовый язык и дальнейшая компиляция.Also, in the NSG there is no translation into a text language and further compilation.

Описываемая в рамках настоящего изобретения программа состоит из визуальной связи алгоблоков и хранится (в ОЗУ, на накопителе на жестких магнитных дисках и т.д.):The program described in the framework of the present invention consists of visual communication of the algoblocks and is stored (in RAM, on a hard disk drive, etc.):

- в виде набора алгоблоков;- in the form of a set of algoblocks;

- связей между алгоблоками и начальными данными для алгоблоков, которые (алгоблоки, связи, начальные данные), в свою очередь, хранятся в виде связанных таблиц.- links between the algoblocks and the initial data for the algoblocks, which (algoblocks, links, initial data), in turn, are stored in the form of linked tables.

Стоит также отметить, что исполняющая среда, в частном случае, описываемая система (для различных программных и аппаратных платформ), является средой реального времени (которая обеспечивает детерминированность времени исполнения одного цикла программы) является интерпретатором, выполняющим создаваемую/созданную программу.It is also worth noting that the runtime environment, in the particular case of the described system (for various software and hardware platforms), is a real-time environment (which ensures the determinism of the execution time of one program cycle) is an interpreter that executes the created / created program.

Также, создаваемая пользователем программа в среде исполнения выполняется непрерывно в бесконечном цикле, остановка программы является временным отладочным действием.Also, a user-created program in the runtime runs continuously in an endless loop, stopping the program is a temporary debugging action.

Стоит отметить, что в среде исполнения (интерпретаторе) отсутствует синтаксический анализ, причем синтаксический анализ выполняется интерфейсом программирования путем представления к использованию только допустимых элементов языка программирования, что исключает синтаксические ошибки пользователем и не допускает возможности создания других бесконечных или имеющих неопределенную длину циклов, кроме одного общего цикла программы.It should be noted that there is no parsing in the runtime (interpreter), and parsing is performed by the programming interface by presenting only valid elements of the programming language for use, which eliminates user syntax errors and does not allow the possibility of creating other infinite or indefinitely long cycles, except for one general program cycle.

Также, преобразование форматов данных (целое-вещественное, вещественное – целое и пр.) происходит автоматически по предустановленным правилам;Also, the conversion of data formats (integer-real, real-integer, etc.) occurs automatically according to predefined rules;

Способ и система позволяют как программировать управляющие контроллеры, так и создавать программы/программное обеспечение общего назначения (программы для операционных систем, операционные системы и т.д.).The method and system allow both programming controllers and creating general-purpose programs / software (programs for operating systems, operating systems, etc.).

В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.In conclusion, it should be noted that the information provided in the description are examples that do not limit the scope of the present invention defined by the claims. One skilled in the art will recognize that there may be other embodiments of the present invention consistent with the spirit and scope of the present invention.

Claims (27)

1. Реализуемый процессором способ визуального создания программ для вычислительных устройств, в котором:1. Implemented by the processor a method of visually creating programs for computing devices, in which: - осуществляется создание и редактирование пользователем посредством графического интерфейса пользователя программы (алгоблочной программы) для вычислительного устройства посредством выбора и добавления операторов (алгоблоков) из списка доступных алгоблоков, затем осуществляется связывание пользователем входов и выходов алгоблоков, чем обеспечивается задание потоков данных между операторами (алгоблоками), сразу после их создания алгоблоки осуществляют заданные кодом их типа (или кодом типа и их дополнительными параметрами) действия над данными, поступающими на входы алгоблоков, в соответствии с визуальными связями с выходами других алгоблоков (представляемыми ссылками в виде строк в таблице, содержащих номер алгоблока и его выхода, которые одновременно задают визуальное расположение линий связи) по крайней мере с одного выхода по крайней мере одного алгоблока, или ссылками, содержащими индекс значения в общем массиве данных (массивы данных являются векторами или матрицами данных, которые хранятся в базе данных), при этом результаты упомянутых выше действий алгоблоков остаются либо на выходах алгоблоков (вектор или матрица которых составляют базу данных выходов), либо записываются в соответствии со связями или ссылками (задающими номер элемента в массиве данных, в котором хранится результат) в общие массивы данных, причем алгоблоки являются графическими элементами, которые в свою очередь являются визуальными изображениями устройств или узлов обработки в виде прямоугольников, таблиц, мнемонических изображений блоков или узлов обработки, визуально представляются также линии связи, или указатели ссылок между входами и выходами алгоблоков и/или между наборами массивов данных, которые хранятся в базе данных, причем создание алгоблочной программы осуществляется:- the creation and editing by the user through the graphical user interface of the program (algoblock program) for the computing device is carried out by selecting and adding operators (algoblocks) from the list of available algoblocks, then the user inputs and outputs the algoblocks, thereby setting data flows between operators (algoblocks) , immediately after their creation, the algoblocks perform the actions specified by their type code (or type code and their additional parameters) I am on the data coming to the inputs of the algoblocks, in accordance with visual connections with the outputs of other algoblocks (represented by links in the form of rows in a table containing the number of the algoblock and its output, which simultaneously set the visual arrangement of communication lines) from at least one output of at least at least one algoblock, or with links containing an index of a value in a common data array (data arrays are vectors or data matrices that are stored in the database), while the results of the above-mentioned algorithms the shackles remain either at the outputs of the algoblocks (the vector or matrix of which make up the database of outputs), or are written in accordance with the links or links (specifying the number of the element in the data array in which the result is stored) to the general data arrays, and the algoblocks are graphic elements that in turn, they are visual images of devices or processing units in the form of rectangles, tables, mnemonic images of blocks or processing units, communication lines, or pointers, are also visually represented links between the inputs and outputs of the algoblocks and / or between the sets of data arrays that are stored in the database, and the creation of the algoblock program is carried out: - путем задания по крайней мере одной последовательности алгоблоков и связей между их входами и выходами или между их входами и выходами и массивами данных:- by setting at least one sequence of algoblocks and connections between their inputs and outputs or between their inputs and outputs and data arrays: - посредством задания для заранее фиксированной последовательности алгоблоков параметров настроек алгоблоков и связей между их входами и выходами или между их входами и выходами и массивами данных;- by setting for a predetermined sequence of algoblocks the parameters of the settings of the algoblocks and the connections between their inputs and outputs or between their inputs and outputs and data arrays; - осуществляется выполнение алгоблочной программы исполняющей программно-аппаратной средой, которая последовательно выполняет алгоблок за алгоблоком, выбирая из первого списка (массива) их коды и связи - ссылки на данные для этого алгоблока - во втором списке (массиве), причем исполняющая среда работает под управлением исходного кода алгоблочной программы, состоящего из упомянутых массивов, создаваемого и изменяемого в визуальной среде алгоблочного программирования, и является интерпретатором, причем каждому алгоблоку доступен весь объем упомянутых массивов данных.- the algoblock program is executed by the executing hardware-software environment, which sequentially executes the algoblock behind the algoblock, choosing their codes and links from the first list (array) - data links for this algoblock are in the second list (array), and the runtime is managed the source code of the algoblock program, consisting of the arrays mentioned, created and modified in the visual environment of the algoblock programming, is an interpreter, and the whole Volume of the mentioned data arrays. 2. Способ по п. 1, характеризующийся тем, что при необходимости одновременного решения задач с разным периодом обработки данных системой визуального программирования и исполняющей средой обеспечивается возможность разделения алгоблоков на разные циклы обхода:2. The method according to p. 1, characterized in that if it is necessary to simultaneously solve problems with different periods of data processing by the visual programming system and the runtime, it is possible to separate the algoblocks into different bypass cycles: - первый цикл имеет наименьший период выполнения - в данном цикле решаются задачи, требующие наиболее частого исполнения;- the first cycle has the shortest execution period - in this cycle, tasks that require the most frequent execution are solved; - второй цикл исполнения может быть разделен (разбит) на несколько частей, и после каждого выполнения первого цикла выполняются последовательно алгоблоки очередной части второго цикла с первой по последнюю, и весь второй цикл выполняется за столько периодов исполнения первого цикла, на сколько частей разбит второй цикл;- the second execution cycle can be divided (divided) into several parts, and after each execution of the first cycle, the algoblocks of the next part of the second cycle from the first to the last are executed sequentially, and the entire second cycle is performed for as many periods of execution of the first cycle as the number of parts of the second cycle ; - третий цикл соотносится со вторым, как второй с первым.- the third cycle corresponds to the second, as the second to the first. 3. Способ по п. 2, характеризующийся тем, что выполнение алгоблочной программы осуществляется исполняющей средой в бесконечном цикле, за исключением особых режимов, когда работа программы ограничивается одним циклом.3. The method according to p. 2, characterized in that the execution of the algoblock program is carried out by the runtime in an infinite loop, with the exception of special modes, when the program is limited to one cycle. 4. Способ по п. 1, характеризующийся тем, что создание и редактирование алгоблочной программы осуществляется посредством редактирования пользователем упомянутых массивов, составляющих алгоблочную программу путем задания или редактирования последовательности алгоблоков посредством их выбора из списка возможных типов алгоблоков и задания входных данных для алгоблоков либо посредством графического указания связей входов и выходов алгоблоков, либо выбором входов и выходов из списка возможных баз данных и номеров их элементов.4. The method according to claim 1, characterized in that the creation and editing of the algoblock program is performed by the user editing the arrays comprising the algoblock program by defining or editing the sequence of algoblocks by selecting them from the list of possible types of algoblocks and specifying input data for the algoblocks or by means of graphical indication of the connections of inputs and outputs of the algoblocks, or by the selection of inputs and outputs from the list of possible databases and their element numbers. 5. Способ по п. 4, характеризующийся тем, что ввиду невозможности ввода недопустимых или некорректных данных в любой момент создания и/или редактирования алгоблочной программы, такая алгоблочная программа не содержит синтаксических ошибок и ошибок зацикливания, что позволяет продолжать ее выполнение средой исполнения при создании и редактировании алгоблочной программы и в свою очередь позволяет обеспечить визуальный контроль результата редактирования программы непосредственно в момент выполнения редакции.5. The method according to p. 4, characterized in that due to the impossibility of entering invalid or incorrect data at any time when creating and / or editing the algoblock program, such an algoblock program does not contain syntax and loop errors, which allows its execution to continue while the runtime is created and editing the algoblock program, and in turn, allows you to provide visual control of the result of editing the program directly at the time of editing. 6. Способ по п. 1, характеризующийся тем, что типы данных между входами и выходами алгоблоков (операторов), а также между входами и выходами алгоблоков (операторов) и между внешними базами данных согласуются автоматически по предустановленным правилам.6. The method according to claim 1, characterized in that the data types between the inputs and outputs of the algoblocks (operators), as well as between the inputs and outputs of the algoblocks (operators) and between external databases are automatically coordinated according to predefined rules. 7. Способ по п. 1, характеризующийся тем, что непосредственный текстовый ввод чисел или других символьных последовательностей осуществляется с контролем непосредственно в процессе ввода как допустимости ввода каждого символа, так и допустимости вводимого числа или другой символьной последовательности целиком таким образом, чтобы в момент окончания ввода это число или последовательность сразу могли использоваться в алгоблочной программе.7. The method according to p. 1, characterized in that the direct text input of numbers or other character sequences is carried out with the control directly in the process of entering both the validity of the input of each character and the validity of the input number or other character sequence in such a way that at the time of completion input, this number or sequence could be used immediately in the algoblock program. 8. Способ по пп. 6 и 7, характеризующийся тем, что осуществляется создание и редактирование пользователем упомянутых массивов, составляющих алгоблочную программу, путем задания или редакции последовательности алгоблоков выбором их из списка возможных типов алгоблоков и задания входных данных в графическом интерфейсе пользователя для них либо графическим заданием связей входов и выходов алгоблоков, при котором возможно связать только допустимые к соединению входы и выходы, либо выбором данных из списка допустимых, ввиду чего невозможны синтаксические ошибки и ошибки зацикливания и ввод недопустимых или некорректных данных, и в любой момент создания или редакции, и алгоблочная программа позволяет продолжать ее выполнение при ее создании и редактировании, то есть создание алгоблочной программы осуществляется пользователем визуально посредством выбора из списка допустимых параметров и графического задания связей и обеспечивает визуальный контроль результата редактирования программы сразу в момент его выполнения.8. The method according to PP. 6 and 7, characterized in that the user creates and edits the mentioned arrays that make up the algoblock program by specifying or editing the sequence of algoblocks by selecting them from the list of possible types of algoblocks and specifying the input data in the graphical user interface for them or by graphically setting the connections of inputs and outputs Algoblocks, in which it is possible to connect only the inputs and outputs that are valid for the connection, or by selecting data from the list of valid, due to which syntax is impossible errors and errors of looping and entering invalid or incorrect data, and at any time of creation or editing, and the algoblock program allows you to continue its execution when you create and edit it, that is, the creation of the algoblock program is carried out visually by the user by selecting from the list of valid parameters and graphical assignments and provides visual control of the result of editing the program immediately at the time of its execution. 9. Способ по п. 1, характеризующийся тем, что средствами упомянутого вычислительного устройства осуществляется сохранение и передача алгоблочной программы в другое вычислительное устройство, а также осуществляется получение текущих данных из упомянутого вычислительного устройства, причем сохраненная и переданная алгоблочная программа однозначно и полностью соответствует изначально созданной алгоблочной программе и отображается и редактируется пользователем на другом вычислительном устройстве, посредством осуществления сохранения и передачи вышеописанных массивов, составляющих алгоблочную программу.9. The method according to p. 1, characterized in that the means of the said computing device stores and transfers the algoblock program to another computing device, and also receives current data from the said computing device, and the stored and transmitted algoblock program uniquely and completely corresponds to the original created the block program and is displayed and edited by the user on another computing device, by means of saving I and the transfer of the above arrays that make up the algoblock program. 10. Способ по п. 1, характеризующийся тем, что в зависимости от решаемых задач, структуры и объемов требующей обработки информации алгоблочные программы делятся на три уровня:10. The method according to p. 1, characterized in that depending on the tasks to be solved, the structure and volumes of information requiring processing, the block-based programs are divided into three levels: - нижний уровень с малым количеством данных и соответственно возможностью предусмотреть заранее набор всех необходимых операций по их обработке - на этом уровне набор и последовательность алгоблоков фиксирована, часть или все алгоблоки реализованы аппаратно, программирование заключается в настройке связок для данных алгоблоков и параметров алгоблоков и является наиболее простым и доступным;- the lower level with a small amount of data and, accordingly, the ability to foresee a set of all necessary operations for their processing - at this level, the set and sequence of algoblocks are fixed, part or all of the algoblocks are implemented in hardware, programming consists in setting up connectives for the data of the algoblocks and parameters of the algoblocks and is the most simple and affordable; - средний уровень с небольшим количеством данных, требующих большого разнообразия функций их обработки - для этого уровня задаются при программировании последовательность алгоблоков и их типы, база данных состоит из выходов алгоблоков, связи для входов алгоблоков ссылаются на выходы в этой базе, небольшая часть алгоблоков может реализовываться аппаратно, на данном уровне алгоблочная система программирования представляет собой цифровую модель аналоговой вычислительной машины;- an average level with a small amount of data requiring a wide variety of processing functions - for this level, the sequence of algoblocks and their types are specified during programming, the database consists of the outputs of the algoblocks, the connections for the inputs of the algoblocks refer to the outputs in this database, a small part of the algoblocks can be implemented hardware, at this level, the algoblock programming system is a digital model of an analog computer; - верхний уровень, характеризующийся большими массивами информации: задаются при программировании последовательность алгоблоков и типы, базы данных внешние и для входов и выходов задаются ссылки на них.- the upper level, characterized by large amounts of information: when programming, the sequence of algoblocks and types are set, the databases are external and links to them are set for inputs and outputs. 11. Способ по п. 10, характеризующийся тем, что между алгоблочными программами различных уровней взаимодействие выполняется путем задания связей между их базами данных, аналогично связям внутри алгоблочных программ.11. The method according to p. 10, characterized in that between the algoblock programs of different levels, the interaction is performed by setting the links between their databases, similar to the links inside the algoblock programs. 12. Способ по п. 1, характеризующийся тем, что между алгоблочными программами различных вычислительных устройств взаимодействие выполняется путем задания связей между их базами данных, аналогично связям внутри алгоблочных программ или связям между алгоблочными программами различных уровней внутри одного вычислительного устройства, при этом собственно передача данных между устройствами может осуществляться по любому из существующих или возникших в будущем каналов обмена данными между вычислительными устройствами.12. The method according to p. 1, characterized in that between the algoblock programs of various computing devices, the interaction is performed by setting the links between their databases, similar to the links inside the algoblock programs or the links between the algoblock programs of different levels within the same computing device, while the actual data transfer between devices can be carried out by any of the existing or future channels of data exchange between computing devices. 13. Система визуального создания программ для вычислительных устройств, включающая:13. A system for visually creating programs for computing devices, including: - графический интерфейс пользователя, посредством которого осуществляется создание пользователем программы (алгоблочной программы) для вычислительного устройства посредством выбора и добавления операторов (алгоблоков) из списка доступных алгоблоков, затем осуществляется связывание пользователем входов и выходов алгоблоков, чем обеспечивается задание потоков данных между операторами (алгоблоками), сразу после их создания алгоблоки осуществляют заданные кодом их типа (или кодом типа и их дополнительными параметрами) действия над данными, поступающими на входы алгоблоков, в соответствии с визуальными связями с выходами других алгоблоков (представляемыми ссылками в виде строк в таблице, содержащих номер алгоблока и его выхода, которые одновременно задают визуальное расположение линий связи) по крайней мере с одного выхода по крайней мере одного алгоблока, или ссылками, содержащими индекс значения в общем массиве данных (массивы данных являются векторами или матрицами данных, которые хранятся в базе данных), при этом результаты упомянутых выше действий алгоблоков остаются либо на выходах алгоблоков (вектор или матрица которых составляют базу данных выходов), либо записываются в соответствии со связями или ссылками (задающими номер элемента в массиве данных, в котором хранится результат) в общие массивы данных, причем алгоблоки являются графическими элементами, которые в свою очередь являются визуальными изображениями устройств или узлов обработки в виде прямоугольников, таблиц, мнемонических изображений блоков или узлов обработки, визуально приставляются также линии связи, или указатели ссылок между входами и выходами алгоблоков и/или между наборами массивов данных, которые хранятся в базе данных, причем создание алгоблочной программы осуществляется:- a graphical user interface through which the user creates a program (algoblock program) for a computing device by selecting and adding operators (algoblocks) from the list of available algoblocks, then the user inputs and outputs the algoblocks, thereby setting data flows between operators (algoblocks) , immediately after their creation, the algoblocks carry out actions given by their type code (or type code and their additional parameters) the inputs arriving at the algoblocks in accordance with visual connections with the outputs of other algoblocks (represented by links in the form of rows in the table containing the number of the algoblock and its output, which simultaneously set the visual arrangement of communication lines) from at least one output of at least one of the algoblock, or with links containing the index of the value in the general data array (the data arrays are vectors or data matrices that are stored in the database), while the results of the above actions either at the outputs of the algoblocks (the vector or matrix of which make up the database of outputs), or are written in accordance with the links or links (specifying the number of the element in the data array in which the result is stored) to the general data arrays, and the algoblocks are graphic elements that are in turn, they are visual images of devices or processing nodes in the form of rectangles, tables, mnemonic images of blocks or processing nodes, communication lines, or link pointers between at the entrances and exits algoblokov and / or between sets of data that are stored in a database, and creating algoblochnoy program is: - путем задания по крайней мере одной последовательности алгоблоков и связей между их входами и выходами или между их входами и выходами и массивами данных:- by setting at least one sequence of algoblocks and connections between their inputs and outputs or between their inputs and outputs and data arrays: - посредством задания для заранее фиксированной последовательности алгоблоков параметров настроек алгоблоков и связей между их входами и выходами или между их входами и выходами и массивами данных;- by setting for a predetermined sequence of algoblocks the parameters of the settings of the algoblocks and the connections between their inputs and outputs or between their inputs and outputs and data arrays; - исполняющую программно-аппаратную среду, осуществляющую выполнение алгоблочной программы, которая последовательно выполняет алгоблок за алгоблоком, выбирая из первого списка (массива) их коды и связи - ссылки на данные для этого алгоблока - во втором списке (массиве), причем исполняющая среда работает под управлением исходного кода алгоблочной программы, состоящего из упомянутых массивов, создаваемого и изменяемого в визуальной среде алгоблочного программирования, и является интерпретатором, причем каждому алгоблоку доступен весь объем упомянутых массивов данных.- an executing hardware and software environment that executes the algoblock program, which sequentially executes the algoblock behind the algoblock, choosing their codes and links from the first list (array) - the data links for this algoblock are in the second list (array), and the runtime runs under control of the source code of the algoblock program, consisting of the arrays mentioned, created and modified in the visual environment of the algoblock programming, is an interpreter, and all the algoblocks have access to it said data arrays.
RU2017139719A 2017-11-15 2017-11-15 Method and system for visual creation of programs for computer devices RU2668738C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2017139719A RU2668738C1 (en) 2017-11-15 2017-11-15 Method and system for visual creation of programs for computer devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2017139719A RU2668738C1 (en) 2017-11-15 2017-11-15 Method and system for visual creation of programs for computer devices

Publications (1)

Publication Number Publication Date
RU2668738C1 true RU2668738C1 (en) 2018-10-02

Family

ID=63798235

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2017139719A RU2668738C1 (en) 2017-11-15 2017-11-15 Method and system for visual creation of programs for computer devices

Country Status (1)

Country Link
RU (1) RU2668738C1 (en)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862379A (en) * 1995-03-07 1999-01-19 International Business Machines Corporation Visual programming tool for developing software applications
US20030037310A1 (en) * 2001-08-18 2003-02-20 David Ge Visual programming tool and execution environment for developing computer software applications
EP1610219A1 (en) * 2004-06-23 2005-12-28 Renner, Peter System for software development.
RU2006113579A (en) * 2002-03-25 2007-10-27 Дэйта Кволити Солюшнз, Инк. (Us) METHOD FOR VISUAL PROGRAMMING A SET OF TEAMS FOR A PROCESS
RU2371758C2 (en) * 2003-10-24 2009-10-27 Майкрософт Корпорейшн Programming interface for computer platform
CA2684438A1 (en) * 2009-09-22 2010-02-10 Ibm Canada Limited - Ibm Canada Limitee User customizable queries to populate model diagrams
US7793258B2 (en) * 2004-03-15 2010-09-07 Ramco Systems Limited Software development using visual interfaces
US7949993B2 (en) * 2006-11-28 2011-05-24 International Business Machines Corporation Method and system for providing a visual context for software development processes

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862379A (en) * 1995-03-07 1999-01-19 International Business Machines Corporation Visual programming tool for developing software applications
US20030037310A1 (en) * 2001-08-18 2003-02-20 David Ge Visual programming tool and execution environment for developing computer software applications
RU2006113579A (en) * 2002-03-25 2007-10-27 Дэйта Кволити Солюшнз, Инк. (Us) METHOD FOR VISUAL PROGRAMMING A SET OF TEAMS FOR A PROCESS
RU2371758C2 (en) * 2003-10-24 2009-10-27 Майкрософт Корпорейшн Programming interface for computer platform
US7793258B2 (en) * 2004-03-15 2010-09-07 Ramco Systems Limited Software development using visual interfaces
EP1610219A1 (en) * 2004-06-23 2005-12-28 Renner, Peter System for software development.
US7949993B2 (en) * 2006-11-28 2011-05-24 International Business Machines Corporation Method and system for providing a visual context for software development processes
CA2684438A1 (en) * 2009-09-22 2010-02-10 Ibm Canada Limited - Ibm Canada Limitee User customizable queries to populate model diagrams

Similar Documents

Publication Publication Date Title
US9754059B2 (en) Graphical design verification environment generator
US6671874B1 (en) Universal verification and validation system and method of computer-aided software quality assurance and testing
US9535821B1 (en) Displaying violated coding rules in source code
Wasserman et al. The future of programming
CN108280291A (en) Reusable simulation model Interface design and interconnection method, device and computer equipment
US10684936B2 (en) Observer for simulation test and verification
CA2925015A1 (en) System and method for testing data representation for different mobile devices
CN111880784B (en) SIMSCRIPT language-oriented discrete event simulation graphical modeling method
JPH11513512A (en) Method of manufacturing digital signal processor
CN110531985A (en) SDK initial method and system, electronic equipment, storage medium
EP1548581A2 (en) Methods, apparatus and programs for system development
RU2668738C1 (en) Method and system for visual creation of programs for computer devices
US10922208B2 (en) Observer for simulation test and verification
Zaeh et al. Model-driven development of PLC software for machine tools
Kress-Gazit et al. The challenges in specifying and explaining synthesized implementations of reactive systems
CN115934069A (en) Visual program compiling method and device, electronic equipment and storage medium
Bell Software Engineering for students
Blandford et al. Users as rational interacting agents: formalising assumptions about cognition and interaction
Salgado Towards a Live Refactoring Recommender Based on Code Smells and Quality Metrics
Campbell et al. Modeling and simulation with compose and activate
EP3098736A1 (en) Graphical modeling for accessing dynamic system states across different components
KR100936670B1 (en) Graphical expression apparatus for system requirement
Pimenta Automated specification-based testing of graphical user interfaces
CN111399827A (en) Descriptive object code automatic generation method for sensor data processing
CN115795918B (en) FMU model simulation scheduling method, platform and electronic equipment