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

Тема: Использование старых библиотек

  1. #11

    По умолчанию

    в 3м CDS есть два вида библиотек: новые и старые. Старые точно такие же , описание на новый SysCom во вложение, правда на английском.

    описание идет вместе с самой средой и лежит в папке C:\Program Files\3S CoDeSys\CoDeSys\Documentation\
    Вложения Вложения

  2. #12

    По умолчанию

    Спасибо. Читаю.

    Появилась еще одна проблема. Написал небольшой кусок кода. Компилирую его - 0 ошибок, 0 сообщений. Пытаюсь сделать логин к контроллеру - долго-долго (1-2 мин.) думает, потом выдает "В экземпляре объекта не задана ссылка на объект".
    Это что значит?

  3. #13

    По умолчанию

    выкладывайте ваш проект)) будем смотреть

  4. #14

    По умолчанию

    Проект в прикрепленном архиве.
    Вложения Вложения
    • Тип файла: rar Test_2.rar (26.8 Кб, Просмотров: 42)

  5. #15

    По умолчанию

    К сожалению проект пустой, там нет кода. Давайте попробуем еще раз.

  6. #16

    По умолчанию

    У меня CoDeSys Gateway SysTray(stopped) - и я ни как не могу его запустить. Видимо из-за этого мои глюки. То не логинится, то во время работы разрывается связь, то я не могу остановить работу контроллера и разорвать с ним соединение пока не убью CoDeSys как процесс.
    Полный хаос.

    Не подскажете какие порты используются для работы CoDeSys Gateway и как проверить - кем они заняты?

  7. #17

    По умолчанию

    В вашем проекте есть ряд недоработок:

    1) опущена структура ComSettingsEx при открытие порта, а в ней есть важный параметр byByteSize, который определяет биты данных (формат посылки)

    2)Res - это результат выполнения операции (0- все прошло без ошибок, иначе код ошибки)

    3) Функция SysComOpen2 возвращает ссылку на ком порт (Com Handle), именно то, что вам и нужно при последующей работе с портом, и нужно брать это значение.

  8. #18

    По умолчанию

    Евгений Сергеевич! Вы написали "2)Res - это результат выполнения операции (0- все прошло без ошибок, иначе код ошибки)".
    В инструкции указано, что значение 0xFFFFFFFF - вот это ошибка, а не 0.

    Кто ошибается?

  9. #19

    По умолчанию

    pResult типа "POINTER TO RTS_IEC_RESULT" имеет описание "Error code, see Document „Runtime Error Codes“."(Код ошибки, смотрите документ "Коды ошибок во время выполнения программы")

    И там в описание видим 0 - No error (нет ошибок)

    то о чем вы говорите это видно вот это:
    "The return value of type RTS_IEC_HANDLE gives a handle for the port. This handle can be passed to other library functions. If the port cannot be opened, 0xFFFFFFFF will be returned as handle."
    (возвращаемое значение типа RTS_IEC_HANDLE выдает ссылку (Handle) на порт. Этот дескриптор может быть передан другим функциям библиотеки. Если порт не может быть открыт, 0xFFFFFFFF будет возвращено как ссылка.)

    Если я ничего не путаю, то в ситуации, когда порт кем-то занят, и мы пытаемся его открыть еще раз, то ошибка открытия (Res) равна нулю, а Handle равен 0xFFFFFFFF. А вот если порт не исправен (сгорел например), то значение Res будет отлично от нуля, а вот что будет присвоено в Handle я затрудняюсь ответить так с ходу, это смотреть надо на приборе с мертвым портом.
    Если порт исправен и никем не занят, то при открытие мы получим ссылку на порт (Handle) отличный как от 0 так и от 0xFFFFFFFF, и Res=0.

    Причем Handle = SysComOpen2 (..., adr(Res));
    Последний раз редактировалось Евгений Сергеевич; 28.02.2011 в 17:13.

Страница 2 из 2 ПерваяПервая 12

Ваши права

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