<< Click to Display Table of Contents >> Navigation: Проект > Элементы дерева объектов > Объекты > Порядок вычислений |
Общие сведения:
Все объекты с точки зрения организации порядка вычислений подразделяются на два типа: имеющие собственный цикл вычислений и не имеющие собственного цикла вычислений. Объекты первого уровня (помещенные в главный) всегда имеют собственный цикл.
1. Объекты, имеющие собственный цикл вычисляются независимо от родительского объекта.
А |
Б |
Порядок вычислений в обоих случаях один и тот же - все три объекта имеют разные циклы вычислений, которые работают параллельно и независимо. Порядок следования объектов (имеющих собственный цикл) в дереве не имеет значения.
2. Объекты, не имеющие собственного цикла вычислений вычисляются последовательно сверху вниз в цикле своего родительского объекта.
А |
Б |
В этом случае гарантирован порядок вычислений последовательно сверху вниз для объектов и функциональных блоков, расположенных на одном уровне иерархии.
При разработке объекта необходимо учитывать этот порядок, особенное внимание обращая на связи с вышестоящими элементами.
Пример:
представим себе, что необходимо произвести вычисления по формуле (А + В) х С.
1) правильно |
2) не правильно |
На первый взгляд результат в обоих случаях один и тот же: значения А и В - слагаемые, сумма - первый множитель, значение С - второй множитель. Если бы это были константы, то все бы так и было.
Но если значения А и В - обновляются с каждым опросом (циклом), получается следующее: сначала вычисляется произведение. Считываются данные входа Множитель0 и Множитель1, но Сумма еще не вычислялась и на входе Множитель0 находится значение, вычисленное Суммой за предыдущий! цикл. Поэтому, чтобы получить корректную работу формулы, необходимо чтобы Сумма стояла выше, чем Произведение.