я дома с ФТП слил и перезалил прошивку, перегрузы прекратились.... , на работе перекрыт ФТП, (уж в целях какой безопасности, не знаю....)Magirus, качайте, пробуйте
именно эти события.
но я настоятельно рекомендую использовать статическую память.
Вопрос по некорректной работе библиотеки SisLibSockets.
Имеется скачанный с сайта пример реализации Клиент-Сервер для TCP соединения. Написан для контроллера Win NT .Работает прекрасно между двумя компами.Также можно тестить на одном компьютере,обращаясь клиентом к своему же адресу.
Попытка перенести пример на ПЛК100КМ с прошивкой 2.10.7 оказалась неудачной. После замены библиотеки SysLibSockets на аналогичную для ПЛК и замены целевой платформы на ПЛК100, сервер перестал включаться и клиент не цепляется. Пока удалось обнаружить , что при обращении к SisSockListen, ответ
всегда FALSE. Возможно и другие функции библиотеки работают с ошибками? Как работать с библиотекой , время на эксперименты утекает рекой...Видимо ПЛК100 не адаптирован к данной библиотеке или наоборот ? Прошу посоветовать, как перенастроить пример под ПЛК100.
Увы, это ее нормальное поведение, она всегда возвращает FALSE, даже если все успешно. Остальные функции так же не любят информировать программиста об успешности или неуспешности своего выполнения.
Более того, эти функции по-разному отвечают в режиме эмуляции и в контроллере, обратите на это внимание.
Дело в том, что в рамках концепции ПЛК - жесткий контроль за ресурсами классический подход, когда Вы функцией listen получаете доп. сокет при установлении соединения - не работает. 1 соединение-1 сокет, не больше и не меньше.
Соответственно создаете сокет и дальше просто ждете, когда начнут приходить данные (или сами начинаете передавать). Анализируя ответ функций чтения/записи и код посл. ошибки Вы и можете определить, есть соединение или нет.
Такой подход гарантирует, что вне зависимости от числа входящих соединений у Вас всегда для каждого требуемого сервиса будет нужное число сокетов.
Уточните, пожалуйста: listen просто не нужна (можно не вызывать, все будет работать и без нее), или ее нужно вызывать в любом случае, и просто игнорировать ее результат?
рекомендую вызывать. так будет совместимость с режимом симуляции.