Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 20 из 20

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

  1. #11

    По умолчанию

    адрес структуры это понятно - он собственно передается на вход функции реализующей функциональный блок. завтра на работе посмотрю. а как узнать реальный адрес экземпляра?

  2. #12

    По умолчанию

    вижу одинаковый адрес 20093350. скрин кода и выполнения в приложении
    04_vs6_lib_ptr.PNG 05_csy_ptr_eq.PNG

  3. #13

    По умолчанию

    а вот адрес внутри структуры оказался смещен. мне надо менять выравнивание в структуре на 2? т.е. делать меньше. сейчас видимо у меня выравнивание 4 байта, а в КДС 2 или по размеру типа.
    Вложение 29263

  4. #14

    По умолчанию

    поменял выравнивание на 2. непомогло. очевидно в VS размер типа INT - 4 байта. а где это в VS задается? я инклудил wtypes.h. (http://www.owen.ru/forum/attachment....8&d=1486369345) а какой надо было?

  5. #15

    По умолчанию

    а где всетаки описаны типы вроде INT? какой хидер нужно подключать? т.к. мне кажется это из-за того что VS скомпилировал структуру исходя из размера INT 4 байта а не 2 байта.
    Завтра попробую запись в адрес на работе.

  6. #16

    По умолчанию

    вывел из си в КДС размер типа INT - выдал 4 - нужен правильный хидер в котором будет сказано что INT размером в 2 байта (и соотв. остальные типы как надо)

    записал в Си напрямую в адрес *((byte*)inst + 4) = (byte)55; - получил в КДС на выходе LIB_TEST1.out1 == 55 т.е. в библиотеке Си другой размер типов. нужен правильный хидер. +4 потому, что в структуре перед out1 находится 2 in'а т.е. 2*2байта=4байта до начала out1 с точки зрения КДС.

    поискал в INCLUDE в VS6 - там нет других описаний типа INT кроме как в wtypes.h. где же его взять? Пробовал в VS ставить платформу 386 - все равно размер INT 4 байта.

    или вручную указать другие типы данных для структуры в Си чтобы они совпали с размерами КДС?
    Последний раз редактировалось sas7; 09.02.2017 в 10:23.

  7. #17

    По умолчанию

    typedef short INT; и т.д. работает КДС показывает одинаковые значения указателей внутренних элементов. ФБ возвращает значение в out

    в интернетах пишут про заголовочный файл CmpStd.h - он есть в платном тулките и там вроде есть описания типов. Кто нибудь может им поделиться?

  8. #18

    По умолчанию

    Еще вопрос: Созданная таким образом библиотека работает. Но работает только с OBJ созданным в режиме Debug. Если делать Release КДС компилирует проект, загружает, но при запуске выдает ошибку Unresolved external POUs и перечисляет все функции и ФБ моей библиотеки.

    В интернете пишут надо сохранить LIB файл с типом Internal Library. У меня есть только тип Internal v 2.2. Сохранил LIB internal 2.2 - проект с Release OBJ скомпилировался, загрузился, выполняется, НО ничего из функций и ФБ не возвращается, адрес КДС элемента структуры ФБ равен 0. Функции тоже возвращают нули.

    Что можно сделать чтобы заработало с Release OBJ?

  9. #19

    По умолчанию

    нули internal показывает возможно потому, что исполняет пустой код созданный в проекте библиотеки КДС а не внешний obj. Internal library v.2.3 это видимо просто internal library без версии в списке выбора типа сохранения.

    Итого как запустить release OBJ пока под вопросом

  10. #20

    По умолчанию

    да, сделал сам сопоставление типов - все работает.

    про release - вроде все так же как и в debug но вот неработает. есть подозрение может КДС пользуется отладочной информацией чтобы выполнять (находить точку входа) биб-ку и по-этому неможет запустить релиз. а дебаг содержит исходный код.. а этого в том числе и хочется избежать (чтобы без детских паролей было).

    на оф.форуме меня пока не авторизовали - как включат, напишу туда

Страница 2 из 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

Ваши права

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