Если ли возможность где-то почитать про параллельные процессы в Скаде?
Параллельно выполняются только тяжелые операции или операции, которые могут занять время, такие как
вычисление архивных значений, отправка e-mail или telegram-сообщений, построение отчетов. Работают следующим образом: Вы вызываете построение отчета в скрипте, но скада не строит его в тот же момент, вместо этого отчет начинает строиться в отдельном потоке, а код скриптов продолжает выполняться дальше. Вся эта информация никак не касается очереди скриптов и её переполнения и её можно не знать.
Сейчас очередь скриптов часто переполняется
Здесь всё очень просто. Все скрипты в скаде добавляются в очередь скриптов в том порядке в котором они были вызваны и выполняются последовательно друг за другом. Никакой параллельности у самих скриптов нет (два скрипта никогда не будут выполняться одновременно), т.к. это привело бы к хаотичности и нестабильной работе. Чтобы очередь скриптов переполнилась, нужно сделать в скриптах грубые ошибки, например зациклить скрипты на самих себя, чтобы очередь росла бесконечно. Или добавить в какой-то скрипт бесконечный цикл, чтобы он никогда не выполнился и соответственно не дал выполниться другим скриптам. Пример зацикленных друг на друга скриптов:
// скрипт по изменению переменной vrA
procedure vrA_OnDataChange(Sender: TM_Control);
begin
vrB.Value := Random(100); // меняем значение переменной vrB
end.
// скрипт по изменению переменной vrB
procedure vrB_OnDataChange(Sender: TM_Control);
begin
vrA.Value := Random(100); // меняем значение переменной vrA
end.
В таких (и о других подобных) ситуациях скада будет выдавать отдельное сообщение в журнал о переполнении очереди скриптов.
Также в скаде есть события "Запуск проекта" и "Полностью запущен".
Скрипты с типом события "Запуск проекта" выполняются один раз - при запуске проекта на сервере.
Скрипты с типом события "Полностью запущен" после запуска проекта ждут пока будет выполнено подключение ко всем OPC-серверам и выполняются после подключения, либо когда выйдет лимит времени на подключение.