Привет.
Я написал небольшой функциональный блок, задача которого посчитать некую величину. Вычисление - это 10 IF и 10 сумм. Исходные аргументы и конечный результат - это глобальные переменные в моем проекте.
Программа PLC_PRG запускает через таймер этот функциональный блок 5 раз в секунду.
А еще есть экран визуализации и там много кнопок, у которых к функции OnValueChanged (действие при изменении) подцеплен вызов этого-же функционального блока.
Т.е. получается что основная программа постоянно ходит в этот ф.блок и еще человек "своими пальцами" может вызывать этот ф.блок.
Не получится ли так, что отработка блока разорвется из-за наложения двух вызовов, глобальные переменные испортятся, вычисления сломаются? (т.н. "состояние гонки", неопределённость параллелизма)
А что, если основная программа начнет вызывать в ф.блок не 5, а 105 раз в секунду?
А что, если в программе появится еще несколько элементов, претендующих на вызова этого ф.блока?
Спасибо.
Внимание. Скорее всего я перепутал функциональный блок и функцию.