Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 20

Тема: Язык Си в SP: FUN работает, FB нет

  1. #1

    По умолчанию Язык Си в SP: FUN работает, FB нет

    Добрый день,

    Вопрос про SP WinNT из Codesys 2.3 напрямую не связанный с овен, надеюсь задаю в нужную ветку форума.
    В интернете есть док "Creating and Linking External C Library Functions - CODESYS". Там описано как сделать внешнюю библиотеку на Си.

    У меня получилось сделать, но работает только функция. Она возвращает только одно значение, правда если делать static переменные то можно возвращать сложные результаты расчета несколькими вызовами функций по типу GetProperty объекта. А вот функциональный блок возвращает только 0.

    Ниже скрины создания описания библиотеки, исходников и компиляции obj, применения и отладки подключенной библиотеки. На выходе функций результат правильный. На выходе ФБ - 0.

    Подскажите что не так. В настройках выравнивания данных структур в компиляторе стоит как сказано в доке - 1 байт. Еще все это работает если OBJ создан в режиме debug - так и должно быть? Release работать не будет?
    01_csys23_lib_prj.png 02_vs6_cple.PNG 03_csys23_prj.png

  2. #2

    По умолчанию

    А зачем понадобилось делать внешнюю библиотеку на Си ?

  3. #3

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    4 байта. И отдельно внутри структуры 2 или 4 байта
    попробовал 4 байта в настройках проекта - незаработало - так же на выходе myout2 = 0

    а что значит (как это делать) отдельно внутри структуры 2 или 4 байта? добавлять ненужные переменные к битам и байтам чтобы нужные оказывались со смещением 2 или 4 байта от начала блока данных функционального блока?

  4. #4

    По умолчанию

    Цитата Сообщение от Вольд Посмотреть сообщение
    А зачем .. на Си ?
    Предположительно чтобы писать сложную математику (мат.модель), возможно использовать наработки. Писать будут программисты на Си. Моя задача проверить возможность писать на Си в принципе.

  5. #5

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    фб всегда выровнен под 4 байта. Внутрянка равняется по типу. Размером в 2 байта (int,word,uint..) - по 2 байт, 4 байт(real,dword,time..) - под 4 байта
    Как выглядит прототип си-шной функции реализующей ST-фб ?
    Как идет обращение к полям блока ?
    Прототип на второй картинке из первого сообщения в теме - http://www.owen.ru/forum/attachment....8&d=1486369345 - см. test4.h - он был сгенерирован кодесисом и потом я туда добавил static данные

    Обращение на третей картинке - http://www.owen.ru/forum/attachment....9&d=1486369361 - см. окно кода проекта

  6. #6

    По умолчанию

    Цитата Сообщение от sas7 Посмотреть сообщение
    Предположительно чтобы писать сложную математику (мат.модель), возможно использовать наработки. Писать будут программисты на Си. Моя задача проверить возможность писать на Си в принципе.
    В описании сказано, это хозяйство работает только на 32-bit платформах.

  7. #7

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    В описании сказано, это хозяйство работает только на 32-bit платформах.
    Функция работает и на 64 как видим по третей картинке. ФБ сейчас проверю на 32-й виртуалке. Кодесис и так работает как 32х битное приложение в 64х битной среде.

  8. #8

    По умолчанию

    Цитата Сообщение от sas7 Посмотреть сообщение
    Функция работает и на 64 как видим по третей картинке. ФБ сейчас проверю на 32-й виртуалке. Кодесис и так работает как 32х битное приложение в 64х битной среде.
    Если работает на 32, то на 64 тем более будет работать. Надо чтобы у ПЛК была платформа не ниже 32-bit.

  9. #9

    По умолчанию

    Проверил на 32х битной платформе. Работает как и раньше: FUN - да, FB - возвращает 0 в myout2. Наблюдается на таргетах SP PLCWinNT и SP RTE.

  10. #10

    По умолчанию

    может дело в call convention? как должно быть? __cdecl, __stdcall, __fastcall?

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. язык St
    от жекон в разделе ПЛК1хх
    Ответов: 13
    Последнее сообщение: 12.08.2017, 20:00
  2. язык St
    от freeon в разделе ПЛК1хх
    Ответов: 14
    Последнее сообщение: 14.12.2016, 19:45
  3. Язык LD
    от Руслан2 в разделе ПЛК1хх
    Ответов: 21
    Последнее сообщение: 08.12.2016, 04:48
  4. язык Sfc
    от Евгений Мотренко в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 13.05.2008, 04:34

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •