для овена да, так же для других функций библиотеки SysLibSocket
для овена да, так же для других функций библиотеки SysLibSocket
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Ну строку в библиотеке я поменял правда проблема не решилась. Я может что-то не понимаю в хронологии действий, но по сути делаю то, что было описано на первых страницах данной темы
1. Добавляю библиотеки (codesys_network_121_hf1, oscat_basic_333) в свой проект
2. Экспортирую из библиотеки (codesys_network_121_hf1) DEMO
3. Импортирую DEMO в свой проект
4. Переименовываю MB_SERVER_DEMO в MB_SERVER_test
5. Вызываю MB_SERVER_test
Ну сейчас еще в библиотеке codesys_network_121_hf1 в IP_CONTROL2 заменил строку
IF SysSockBind(server_socket, ADR(sockaddr), SIZEOF(sockaddr)) THEN
на
IF BOOL_TO_DINT(SysSockBind(server_socket, ADR(sockaddr), SIZEOF(sockaddr)))<0 THEN
Где я ошибаюсь?
блин уже пожалел что связался, смотрите если в основной бибке в условие Вы проверяете на значение ИСТИНА, то и для овена знак должен быть больше -1
да и в целом зачем добавлять бибку экспортируйте в свой проект только то что нужно
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Ну логику замены я понял (хотя не понимаю смысла). Я просто интересуюсь почему программа не работает, хотя я выполняю все то что было прописано на первой странице темы. Ну, а что касается экспорта библиотек, то вставить готовые и отработанные библиотеки я считаю правильнее и надежнее, чем что либо переделывать и дербанить, тем более ресурс контроллера позволяет
смысл что у всех функции возвращают булевы переменные, а у овена отрицательный результат это минус один (-1). Почему не работает, потому что это надо проделать и с листеном, ну и вообще смотреть на каком шаге стопорится. Незабываем, что самое главное это в начале сделать правильное закрытие сокета, без него овеноовский плк сможет тянуть 15 открытых сокетов, потом контроллер придется сбрасывать
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Большое спасибо за консультацию. Меня просто интересовало, как и автора темы, нет ли готовых библиотек для работы с Modbus TCP (как для Modbus RTU). Из первых страниц данной темы я подумал, что можно использовать готовые библиотеки oscat для данной цели. Но тут получается, что готового нет и надо напильником дорабатывать, причем зная особенности контроллера. Будет время углублюсь в эту тему
да не так много там и переделывать, только открытие сокета и убрать лишнее из оскат бибки, не в смысле из всей библиотеки а из кода относящегося к модбасТСР
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Добрый день.
Выкладываю рабочий пример ModbusTCP из OSCAT библиотеки для ПЛК100.
Допилил при помощи блока IP_CONTROL2 от АТАМАНА
http://www.owen.ru/forum/showthread....l=1#post232436
Тестировал с LectusOPC.
Работает до первого отключения.
Последний раз редактировалось krug2000; 17.11.2017 в 16:29.
Спасибо за пример!
Подскажите, как увеличить массив данных?
Добрый день.
Представляю пример ModbusTCP сервера с работой через сокеты.
Поддерживаются функции 3, 4, 6, 16.
Тестировал на ПЛК100.
Писал для работы с Openhab, который рвет соединение после каждого опроса.
Для работы с Lectus нужно установить переменную tReadTimeout больше периода опроса.
По идее должен работать и на ПЛК110.