Вызов внешних функций из obj файлов в SС13 не поддерживается.
Код Ваших С функций должен быть скомпонован с системой исполнения CoDeSys для SС13. В системе исполнения нужно сделать так называемую Reference table с указателями на Ваши функции. Далее нужно добавить функцию RHICFGGetExtRefTable, возвращающую указатель на эту таблицу. После чего Ваши функции будут видны из IEC программ.
В самом CoDeSys нужно сделать проект, содержащий объявления соответствующих POU и сохранить его как внешнюю библиотеку (external library). Получится .lib файл, который конечные пользователи должны будут включить в свои проекты. Для внешних библиотек полезно написать некие заглушки на IEC языках в CoDeSys. Они будут работать в режиме эмуляции.
Пример:
void huge MyFirstLibFunc(void)
{
return;
}
int huge MySecondLibFunc(int i)
{
return 2*i;
}
RHIExtRefTable gRHIRefTable[] =
{
{"MYFIRSTLIBFUNC", (void(*)())MyFirstLibFunc},
{"MYSECONDLIBFUNC",(void(*)())MySecondLibFunc},
{"", NULL}
};
RHIExtRefTable * RHICFGGetExtRefTable(void)
{
return gRHIRefTable;
}
Подробнее см. документ 'RHI documentation' в SDK.