здравствуйте коллеги.
в проектах чаще всего пользуюсь стандартными средствами при описании части программы Modbus обмена.
Но вот попалась задача, где на вскидку лучше воспользоваться OwenCommunication.
Посмотрел видео по реализации, написал опрос в виде своего (!) функционального блока на CFC с использованием
FB из библиотеки OCL: OCL.COM_Control, OCL.MB_SerialRequest и т.д.
Но при добавлении экземпляра своего функционального блока в основную программу (на CFC)
в момент ввода имени экземпляра функционального блока выходит ошибка
2024-10-31_16-06-54.png
Если жму "продолжить" после в процессе компиляции выходит ошибка:
КОД:
Код:
ERROR]         Internal error:System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.   
в ..get__CompiledType()    в _3S.CoDeSys.LanguageModelManager.Expression.get_Type()    в ..(_IVariable , IScope5 , _ICompileContext , _ISignature )    
в _3S.CoDeSys.Compiler35170.Phase1_Typification.InterfaceCompiler.(_ISignature , IScope5 , _ICompileContext )    
в _3S.CoDeSys.Compiler35170.Phase1_Typification.InterfaceCompiler.(_ISignature , IScope5 , _ICompileContext )    
в _3S.CoDeSys.Compiler35170.CompilerPhases.CompilerPhase1_Typifier.()    в _3S.CoDeSys.Compiler35170.CompilerPhases.CompilerPhase1_Typifier.()    
в _3S.CoDeSys.Compiler35170.CompilerPhases.CompilerPhase1_Typifier.()    в ..(Boolean , Boolean , Boolean )

Экспериментальным путем установил, что если я оставляю в объявлении своего блока OCL.COM_Control то ошибка не выходит и все компилируется.
Стоит только добавить хоть один OCL.MB_SerialRequest даже только в область объявления получаю ошибки вышеописанные.
Попробовал создать ФБ на ST, поведение тоже самое.
Программа ранее использовала стандартные средства обращения к модбас, которые я потер, чтобы не конфликтовали.
Вопрос: может быть библиотека не предоставляет возможность создать свои ФБ на их основе?
Как выйти из этой ситуации? в документации к OwenCommunication и здесь на форуме ответов не нашел.