Страница 7 из 9 ПерваяПервая ... 56789 ПоследняяПоследняя
Показано с 61 по 70 из 85

Тема: Примеры по сокетам для ПЛК110/160 M02 и ПЛК1хх

  1. #61

    По умолчанию

    Иван, здравствуйте.
    Я ещё раз попытаюсь описать весь процесс получения.
    1. Скачиваю проект с форума и открываю в кодесис (все библиотеки и таргет файлы заранее установлены).
    2. Подключаю плк к ПК через ethernet, настраиваю подключение: ip:10.0.6.5, mask: 255.255.0.0 (на плк заранее прописаны: ip:10.0.6.10, mask: 255.255.0.0, getway: 10.0.6.10).
    3. В коде программы меняю переменную sIpv4 на 10.0.6.5.
    4. Подключаюсь онлайн в кодесис в плк, проект загружается в контроллер.
    5. На ПК запускаю программу Геркулес, tcp server, меняю порт на 502, запускаю (listen).
    6. В кодесис нажимаю F5 (start), открываю визуализацию, в строке "отправляемое сообщение" пишу hello и нажимаю кнопку отправить.
    Подскажите пожалуйста, ведь таким образом пример должен работать? В Геркулес должна прийти отправляемая строка? Или я что-то делаю не так?

  2. #62

    По умолчанию

    Цитата Сообщение от Александр_76 Посмотреть сообщение
    Или я что-то делаю не так?
    Все верно написано. Только наверно, gate ПЛК: 10.0.6.1.
    Проверьте не блокирует ли пк посылки, брандмауэр, например. Или попробуйте увеличить tSendServer до 10 мс или измените порт (может что-то блочит 502 порт).

    Проверил у себя по вашим пунктам (ПЛК110 М02, прошивка 1.2.42) - всё работает.
    Инженер по продуктам «ПЛК и модули»
    e-mail: i.masterenko@owen.ru | skype: i.masterenko_owen

  3. #63

    По умолчанию

    Цитата Сообщение от Мастеренко Иван Посмотреть сообщение
    Все верно написано. Только наверно, gate ПЛК: 10.0.6.1.
    Проверьте не блокирует ли пк посылки, брандмауэр, например. Или попробуйте увеличить tSendServer до 10 мс или измените порт (может что-то блочит 502 порт).

    Проверил у себя по вашим пунктам (ПЛК110 М02, прошивка 1.2.42) - всё работает.
    Иван, большое Вам спасибо!!!
    Брандмауэр блокировал работу Геркулес, поэтому и не шел обмен. Поправил настройки брендмауэра и все заработало.

  4. #64

    По умолчанию

    Иван, добрый вечер.
    Нужна Ваша помощь.
    Программа на ПЛК написана с использованием примера из этой темы (почти ничего не редактировал, добавил несколько переменных). ПЛК общается с сервером, передавая шестизначное число в формате STRING, принимает от сервера ответ в формате STRING (принимает 0 или 1).
    Программа успешно работает несколько часов (то 2, то 4), но спустя время ПЛК начинает дописывать в переменную sReadFromServer букву я (WireShark четко показывает, что сервер передал '1', а в ПЛК отображается '1я'). Помогает только перезагрузка ПЛК, после которой этот дефект пропадает.
    Если пробовать обрезать переменную функцией DELETE, то это помогает убрать лишнюю букву. Но, как только делаю проект загрузочным и перезагружаю ПЛК, то в переменной sReadFromServer при обмене передается 1, а после функции DELETE проскакивают числа (ip адрес сервера, к которому обращается ПЛК).
    Что это может быть? В какую сторону смотреть?
    Работу сервера проверили, программа WireShark показывает, что ничего лишнего не передается. Откуда ПЛК вообще берет лишнюю информацию и почему она появляется в переменной sReadFromServer???

    owen.jpg

  5. #65

    По умолчанию

    Здравствуйте!
    Очищать переменную типа string следует через функцию SysMemSet() из библиотеки SysLibMem.lib
    SysMemSet(ADR(sReadFromServer), 0, SIZEOF(sReadFromServer) );


    2022-12-09_11-25-21.jpg
    Последний раз редактировалось Мастеренко Иван; 09.12.2022 в 11:33.
    Инженер по продуктам «ПЛК и модули»
    e-mail: i.masterenko@owen.ru | skype: i.masterenko_owen

  6. #66

    По умолчанию

    Иван, спасибо, попробую.
    Сейчас я это делаю так: sReadFromServer:='';
    Переменная обнуляется, все работает, но через несколько часов выскакивают лишние символы.
    Посмотрим, сработает ли ваш вариант.

  7. #67

    По умолчанию

    Всем доброго дня!
    У меня такой вопрос, есть owen ПЛК110-30, программа написана на функциональных блоках, работаем с ним по TCP отправляя регистры
    Сама программа отрабатывает претензий к ней нет, но эпизодически при переподключении не можем подключиться к контроллеру.

    почитав документацию выяснилось что есть ограничение по количеству созданных сокетов, а проверка их если и есть, то она по таймингам совсем не вписывается.

    Собственно вопрос: есть ли возможно пример или сможете подсказать как осуществлять контроль за неиспользуемыми сокетами, в проекте который написан на ФБ.
    возможно есть какая-то возможность получить список открытых сокетов, пробежаться по ним и закрыть неактивные, или что то в таком духе
    я видел пример клиент\сервер, но если честно не могу сообразить как его применить в текущей программе

    Вероятно мой вопрос останется без ответа или возможно меня закидют гневными словами типа учи мат часть, но так вышло что это совсем не моя тема и от связи с контроллером зависит стабильность работы приложения. Очень надеюсь на хоть какю-то помощь.

  8. #68

    По умолчанию

    В ПЛК программист должен полностью контролировать использование ресурсов - и если Вы открываете сокет - то и должны его закрыть для переиспользования
    Тролль-наседка, добрый, нежный и ласковый

  9. #69

    По умолчанию

    Коллеги, добрый день. Делаю попытки оживить пример UDP клиента. Платформа - ПЛК110-60М (старый, не М02). Сеть состоит из ПЛК и ноутбука, на котором Codesys и прочее необходимое. В качестве сервера, с которым связывается UDP клиент, выступает самописная серверная программа, которая при каждой прилетевшей посылке отправляет обратно коротенький ответ. Процесс контролирую в WireShark. Наступаю на грабли в двух местах. Первые: при однократном нажатии на кнопку в визуализации, происходит отправка нескольких посылок (от 2 до 4). Вторые: ответы от сервера не принимаются. Сервер в ответ на каждую принятую посылку отправляет ответ, но клиент ничего не принимает.
    Подскажите, куда копать дальше.
    ЗЫ. Пример UDP сервера работает в паре с примерно таким же самописным клиентом, данные передаются и принимаются нормально.

  10. #70

    По умолчанию

    Могу посоветовать следующее:
    1) После отправки пакета блокировать отправку следующего, пока кнопка не будет отпущена (только по фронту).
    2) Проверить куда отправляет ответ сервер (IP и порт клиента). Проверить алгоритм, чтобы проверка на входящий пакет производилась на каждом цикле.

Страница 7 из 9 ПерваяПервая ... 56789 ПоследняяПоследняя

Похожие темы

  1. Недостатки ОВЕН ПЛК1хх
    от Николай Федоров в разделе ПЛК1хх
    Ответов: 104
    Последнее сообщение: 26.05.2017, 09:50
  2. Ответов: 1
    Последнее сообщение: 06.09.2014, 22:52
  3. ЕКОН134 и ПЛК1хх опрос по Ethernet
    от Makswell в разделе Сетевые технологии
    Ответов: 4
    Последнее сообщение: 09.04.2014, 08:00
  4. ПЛК1хх + GPRS
    от alext1981 в разделе Сетевые технологии
    Ответов: 11
    Последнее сообщение: 28.02.2013, 19:22
  5. Пожарная сигнализация+ПЛК1хх
    от Gans в разделе Подбор Оборудования
    Ответов: 2
    Последнее сообщение: 09.08.2007, 16:09

Ваши права

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