За Ваше сообщение №18 - мерси! А рассуждения о таинственном поведении КДС как-то настораживают.
Я попробую сформулировать несколько положений, поправьте, в чем ошибаюсь.
Имеется проект. К нему подключили некую внутреннюю библиотеку.
1) Внутренняя библиотека (ВБ) - это всего лишь POU, созданные ранее и названные ВБ. Будучи подключенной к проекту, эти POU добавлены в список модулей для компиляции и, соответственно, компилируютсяе КДС при работе с нашим проектом.
2) Как POU из списка для компиляции, эти библиотечные модули никак не отличаются от остальных POU, входящих в проект.
3) Если в библиотечном POU есть обращение к глобальным переменным проекта - компилятор не обидится. Это вопрос исключительно вкуса программиста (как и вообще широта использования глобальных переменных). Да, может быть неудобство - если эта ВБ предназначена для широкого использования. Но это не ошибка.
4) Аналогично не есть ошибкой синтаксиса обращение из библиотечных POU к конфигурационным переменным - это же, по сути, тоже глобальные переменные.
5) Если в составе ВБ есть глобальные переменные и-или конфигурационные данные, то они просто добавляются к проекту и учитываются при компиляции (этот постулат сдается мне сомнительным, но неохота же все проверять ручками - жду ответов от прошедших путь).
Таким образом, во внутренних библиотеках есть мало чего библиотечного. Это "куски" программы, написанные ранее и приклеиваемые к текущему проекту. Можно так считать?
В противоположность, попробую предположить, что внешние библиотеки компилируются до включения в проект и этим похожи на взрослые библиотеки. Так?
Еще раз оговорюсь: я не рассматриваю сейчас культуру программирования. Прекрасно понимаю опасность широкого использования глобальных переменных, важность заужения интерфейса модулей, вопросы портирования (часто здесь переоцениваемые) и прочая, и прочая... Речь сегодня о ФОРМАЛЬНЫХ ПРАВИЛАХ работы с ВБ.
Спасибо!