Может пригодится, вложил проект примера, по которому сделано видео пользователя capzap.
Может пригодится, вложил проект примера, по которому сделано видео пользователя capzap.
У меня нет опыта в сокетах для ПЛК, но есть кое-какой опыт в сокетах вообще. И мне пришло в голову, что проблема возврата false может не быть такой банальной ошибкой, как кажется на первый взгляд. Функция SysSockConnect может быть реализована неблокирующей (т.е. она только иницирует начало установки соединения и сразу возвращается). Сам процесс установления соединения протяженный во времени и может длиться неопределенно долго. А блокировать работу задачи функция не в праве. Поэтому она возвращает false в расчете на то, что за итогом установки соединения пользователь библиотеки будет следить другими методами, когда и как ему будет это удобно.
Соглашусь с вами, возможно это так и есть. Но тогда бы сделали какой-нить callback при завершении асинхронного соединения. Другого способа проверить успешность соединения я так и не нашел(((
Не, мужики. Асинхронное добро выведено в SysLibSocketsAsync.lib и рогатыми ПЛК не поддерживается.
Здравствуйте!!!Изучаю библиотеку SysLibSockets. Не могу понять одно.
Есть строка diSocket:=SysSockCreate(SOCKET_AF_INET, SOCKET_STREAM, 0) , которая должна возвращать номер сокета. Но почему то возвращает постоянно -1. Пробывал на другом ПЛК-все нормально отрабатывает.У пробывал кнопку сброс, вкл/выкл ПЛК. При отладке SysSockCreate(SOCKET_AF_INET, SOCKET_STREAM, 0) возвращает три знака вопроса. ПЛК 150. Куда копать????
Последний раз редактировалось Ильнур; 10.09.2013 в 09:23.
Ребят подскажите такое дело, надо связать старенькую машину под ДОСом с ПЛК, на компе есть поднятая прога, которая работает по IPX(с исходниками в которых можно поковыряться) , надо с ней завести разговор. Как под ПЛК запрограмировать работу по этому протоколу.
Если взять пример с диска про пинг, какие изменения надо сделать в открытии сокета?
Полазив по исходникам досовской проги нашел что при формировании заголовка IPX в поле PacketType устанавливается 4, в библиотеке SysLibSockets этому отвечает что?
Если (* AddressFamily *) то там 4 соответствует в описании
SOCKET_AF_PUP:INT:=4; (* pup protocols: e.g. BSP *)
есть там и IPX но почему то другой номер
SOCKET_AF_IPX:INT:=23; (* Novell Internet Protocol *)
Если это относится к секции (* Protocols *), то там нет цифры 4
Вобщем как правильно поднять IPX-сокет под ПЛК ( конкретно 110-60), ну и естественно поднимется ли он вообще?
Буду благодарен за любую подсказку.
Последний раз редактировалось Foregit; 27.01.2014 в 19:09.