Спасибо всем откликнувшимся!
Я поизучал программу и не нашёл ничего определённого :( Действительно, вызов FB осуществляется без указания экземплярного DB, и вышестоящего OPN DI### я в программе не нашёл. Но:
1. Описание интерфейса FB216 пустое - нет ни входных, ни выходных, ни статических, ни временных переменных. Соответственно, экземплярный блок вроде как и не нужен.
2. Собственно программа FB216 обращается только к глобальным данным (I, Q, M, Т), а также к открытому ранее шаред DB. Выглядит это в программе примерно так:
Код: Выделить всё
//FC0
Network 3:
OPN "xyz" DB223
UC "aaa" FC201
UC "bbb" FC202
....
UC "qqq" FC215 <-- здесь, помимо прочих FB, вызывается FB216
....
Соответственно, программы данной подсистемы обращаются к данным шаред ДБ так:
Вроде все законно, хоть и отличается от рекомендованного стиля (программа в стиле Step5, что-ли?): открывается шаред DB223 с общими для группы программ данными, и все программы к нему обращаются по мере необходимости посредством "обычного доступа".
3. Единственная странность - в некоторых местах FB216 обращается к области L, при том что никаких переменных в интерфейсе FB нет вообще. Причем, обращение идёт и на чтение, и на запись. Не знаю, насколько это допустимо, но подобные финты ушами я замечал по всей данной программе, а таких странностей с "невызываемой" программой в других местах не было.
Короче, в программе всё мутно, символы на итальянском, а все спецы фирмы-производителя оборудования в полном составе свалили в отпуск... Что ещё нужно для счастья? :Р
Буду признателен за любые рекомендации по поиску "порывшейся собаки".