Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 29

Тема: Не удается установить связь по TCP-сокету из ПЛК-150 :(

  1. #1

    По умолчанию Не удается установить связь по TCP-сокету из ПЛК-150 :(

    Здравствуйте!

    Никак не получается установить коннект из ПЛК-150 к ПК. Вот код:

    CASE step OF
    0:
    sock:=SysSockCreate( SOCKET_AF_INET, SOCKET_STREAM, SOCKET_IPPROTO_TCP);

    sock_adr.sin_addr:=16#6C01A8C0; {192.168.1.108 - IP ПК}
    sock_adr.sin_family:=SOCKET_AF_INET;
    sock_adr.sin_port:=5001;

    sc := SysSockConnect( sock, ADR( sock_adr ), SIZEOF( sock_adr ) ); {sc = -1}

    step:=1;

    1:
    tmr(IN:=start_TON,PT:=t#5s);
    IF NOT start_TON THEN
    start_TON:=TRUE;
    END_IF
    IF tmr.Q THEN
    my_buf[0] := 5;
    res:=SysSockSend(sock, ADR( my_buf ), SIZEOF( my_buf ), SOCKET_MSG_OOB );
    start_TON:=FALSE;
    END_IF
    END_CASE

    IP ПЛК - 192.168.1.205
    Со стороны ПК пишу на Delphi 7 использую TServerSocket и уверен, что всё правильно.
    Что я делаю не правильно?
    Последний раз редактировалось Boris3B; 06.07.2009 в 14:35.

  2. #2

    По умолчанию

    с сокетами ни когда не пробывал ...

    Но зачем такой тюнинг в зоопарке??? есть более простые способы конекта с плк ...
    или со стороны ПК не форточки?

  3. #3

    По умолчанию

    А остальные пляски, типа бинд кто делать будет?

    SysSockConnect - возвращает -1 - значит ошибка.

  4. #4

    По умолчанию

    Сам разобрался. Основные проблемы были со стороны ПК.

    По ответам:

    K.I.V.: Со стороны ПК будет многпоточный TCP-сервер. Под форточкой или нет - пОфигу.

    Филоненко Владислав: Типа Бинд оказался не при делах. Без него всё работает.

  5. #5

    По умолчанию

    Есть некий "стандарт" установления соединения и если у Вас так удачно совпали дефолтные установки и Bind не понадобился - это не значит, что в сл. раз все заработает.

  6. #6

    По умолчанию

    Здравствуйте, многоуважаемые! Попробовал пример веб-сервера для ПЛК150I-M. Не хочет, зараза! Перезагружается! Прошивка 2.10.4, как пишет PLCInfo (хотя программа перепрошивки вроде должна лить 2.10.5, судя по заголовку). Максимум чего я добился - ответа "Cannot open this file" в браузере, когда в контроллере не было файлов. Залил весь контент, запрашиваю http://<ip>/index.html - и контроллер начинает перезагружаться. Причем циклически, хотя загрузочного проекта нет...
    А в debug.txt пишет
    2009.11. 9 17:13:11 # 17 E Power is recovered too late!
    Причем здесь power?!
    Характерно, что со всеми другими проектами запускается на ура...

  7. #7

    По умолчанию

    Пришлите ваш проект, к-й так себя ведет, лог и дебаг txt, лог гипертерминала и файлы таргета из каталога C:\CoDeSys\Имя вашего ПЛК\

  8. #8

    По умолчанию

    Не хочет, зараза! Перезагружается! Прошивка 2.10.4, как пишет PLCInfo (хотя программа перепрошивки вроде должна лить 2.10.5, судя по заголовку). Максимум чего я добился - ответа "Cannot open this file" в браузере, когда в контроллере не было файлов. Залил весь контент, запрашиваю http://<ip>/index.html - и контроллер начинает перезагружаться. Причем циклически, хотя загрузочного проекта нет...
    точь в точь мои танцы с бубнами....
    http://www.owen.ru/forum/showthread.php?t=6183
    скачал прошивку 2.10.7 в архиве 2.10.5 которая на поверку оказалась 2.10.4
    залил в контроллер и понеслась
    ЗЫ может на сайте ссылки поправите?

  9. #9

    По умолчанию

    Не знаю насчет прошивки, пока выяснил следующее: жалобы на питание возникали, вероятно, из-за непонятных токов между интерфейсами, контроллер был одновременно подключен к ПК через RS232 и к хабу, как только в определенные моменты стал выдергивать один кабель, циклическая перезагрузка прекратилась. Теперь только по ethernet, правда, все равно очень странно себя ведет, перезагружается очень часто, но тут я связываю пока вот с чем:
    1. Кривой пример сервера, не отслеживается переполнение буфера, выход за пределы выделенной памяти и т.п.
    2. Очень-очень интересная библиотека SysLibSockets, про которую не единожды сказано, что за более подробной документацией - пожалте к справке ОС, которую я пока нигде не сумел отыскать. Так вот решительно непонятно, чего такого должны возвращать эти веселые функции. Попробовал сразу поставить контроль на возвращаемые значения - программа постоянно переходит в состояние ошибки, т.к. результаты возвращаются вроде как аварийные. Убрал контроль - не смотря на аварийные результаты, все заработало.
    Однако если при перезагрузке контроллера ethernet-кабель включен в контроллер, начинается циклическая перезагрузка. Стоит выдернуть кабель и дождаться, когда загорится "работа" - тогда вроде все стабильно, включаешь кабель - и погнали работать более-менее.
    Сдается мне, что просто в определенный момент сокет действительно не открывается, и дальнейший bind просто рушит программу. Однако совершенно не понятно, как же анализировать результат, возвращаемый функциями из SysLibSocket. Они ВСЕГДА возвращают аварийные значения, а работают, по видимому, когда нравится.

    magirus, так я не понял, после скачки прошивки "понеслась" - это значит "все заработало нормально" или "начались танцы с бубном"? И действительно, у меня аналогичное подозрение, что косяк на самом деле с прошивкой. Граждане разработчики! Потрудитесь если уж не выложить современные прошивки, то хотя бы уж исправить всю эту свистопляску с номерами версий!

  10. #10

    По умолчанию

    начались танцы с бубном.
    у меня сейчас два контроллера
    причем с самописной программой, (небольшой) без использования веб сервера, но с прошивкой 2.10.4 перегружаются циклически при вставленном в RS debug порт кабеле
    кстати идея Ваша на счет эзернета, попробую перепрошить через эзернет, залив прошивку на диск....

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

Ваши права

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