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

Тема: 3 разных файла SysLibSockets.lib - какой использовать

  1. #1

    По умолчанию 3 разных файла SysLibSockets.lib - какой использовать

    Подскажите пожалуйста
    Пытаюсь открыть для себя дивный мир TCP-соединений на ПЛК-150, терплю фейл.
    Соединение не устанавливается, даже простая функция SysSockInetAddr возвращает ноль вместо адреса.
    Закралась мысль - а ту ли библиотеку я подключил. Стал искать и нашел аж 3 файла SysLibSockets.lib:
    Program Files (x86)\3S Software\CoDeSys V2.3\Library
    Program Files (x86)\Common Files\CAA-Targets\3S\Lib_NTRT
    Program Files (x86)\Common Files\CAA-Targets\3S\Lib_PLCWinNT
    Пробовал подключать их всех по одной. С первыми двумя все грузится, но не работает.
    С третьей все компилируется, но при прогрузке выдает сообщение "Неразрешенные ссылки на внешние POU: SysSockGetLastErrorSync, SOCK_IP_MREQinit, SOCK_KEEPALIVEinit"

    Вопрос, думаю, понятен: какой файл библиотеки подключать, и если из Lib_PLCWinNT то как заставить его прогружаться?

    Таргет файлы версии 2.11
    Версия прошивки ПЛК 2.16

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Program Files (x86)\3S Software\CoDeSys V2.3\Library

    почему примерами других не воспользоваться, например http://www.owen.ru/forum/showthread....l=1#post126715
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3

    По умолчанию

    Скажите пожалуйста - есть какой-то глубинный смысл писать
    IF BOOL_TO_DINT(x) < 0
    вместо
    IF x = FALSE

  4. #4
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Цитата Сообщение от Михаил Грушев Посмотреть сообщение
    Скажите пожалуйста - есть какой-то глубинный смысл писать
    IF BOOL_TO_DINT(x) < 0
    вместо
    IF x = FALSE
    попробуйте в обычных условиях в формате буля, состоящего из 0 и 1, задать -1 (минус единица)
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  5. #5

    По умолчанию

    Я читаю справку по SysSockConnect и вижу:
    Возвращаемый тип BOOL
    TRUE = успех
    FALSE = не успех

    при чем тут минус единица?

  6. #6
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Цитата Сообщение от Михаил Грушев Посмотреть сообщение
    Я читаю справку по SysSockConnect и вижу:
    Возвращаемый тип BOOL
    TRUE = успех
    FALSE = не успех

    при чем тут минус единица?
    ну сложно будет отправить искать на форуме объяснение разработчика, в кратце когда писалась первая прошивка к овеновским контроллерам, была допущена неточность, когда обнаружилось менять уже было поздно
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #7

    По умолчанию

    ООО, чую череп трещит - видать сознание расширилось
    Большое спасибо за наводку

    Теперь к веселой шутке, что индусы проверяют булеву переменную выражением if ( BoolToString(x).Length == 4)
    добавляется грустная шутка, как проверять ее в ПЛК Овен

  8. #8
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Вам как бы шашечки или ехать? Ну возвращается интовое число вместо буля как подразумевалось в стандартной библиотеке у немцев, оно от этого хуже или лучше работать не будет
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  9. #9

    По умолчанию

    Да тут не в шашечках дело, а в том что такая ловушка должна быть отражена в документации.
    А то можно очень долго мучаться, пока не спросишь на форуме.

  10. #10

    По умолчанию

    Чтоб расставить все точки над и, отмечу что и в виде BOOL_TO_DINT(SysSockConnect(...)) результат проверить невозможно.
    Указываю параметры верные - связь идет
    Указываю параметры неверные - связи нет
    А BOOL_TO_DINT(SysSockConnect(...)) в обоих случаях 0

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

Похожие темы

  1. какой использовать ПЛК, чтобы подключить...
    от mitya14 в разделе Подбор Оборудования
    Ответов: 8
    Последнее сообщение: 30.04.2017, 06:34
  2. Ответов: 10
    Последнее сообщение: 04.11.2015, 13:26
  3. Ответов: 4
    Последнее сообщение: 27.11.2014, 14:24
  4. Какой кабель использовать для RS485
    от Greenwich в разделе Сетевые технологии
    Ответов: 24
    Последнее сообщение: 26.12.2011, 09:36
  5. PID_Regulators.lib - какой ФБ использовать?
    от Ден в разделе ПЛК1хх
    Ответов: 0
    Последнее сообщение: 28.05.2008, 07:19

Метки этой темы

Ваши права

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