Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: Помогите с ПЛК 308

  1. #1
    Пользователь
    Регистрация
    13.07.2011
    Адрес
    Макеевка
    Сообщений
    228

    По умолчанию Помогите с ПЛК 308

    Всем добрый день! Прошу помощи у знающих людей, решить следующую задачу:
    1 Есть ПЛК 308 надо организовать сбор данных по RS485 с различных приборов.
    2 И передовать их по Ethernet
    3 А так же часть данных отображать на СП270 по RS485.
    Какой протокол используется при передачи данных по Ethernet,
    modbus TCP?

  2. #2

    По умолчанию

    Добрый день.

    Если у Вас только 1 вопрос, то тогда да. Данные нужно передавать по modbus TCP.

  3. #3
    Пользователь
    Регистрация
    13.07.2011
    Адрес
    Макеевка
    Сообщений
    228

    По умолчанию

    Здравствуйте! Спасибо за ответ. Для передачи modbus TCP надо использовать библиотеку modbus TCP? Где её можно найти? и описание на неё?
    Помогите ещё в одном деле: Для опроса по modbus RTU я использую библиотеку modbas master, делаю все как написано в инструкции и в примере к ней, но ошибка появляется в этой строчке(com_num: PORTS:=0; (*0 - RS-485, 1 - RS-232*)) не могу понять почему?

  4. #4

    По умолчанию

    to desperadoes
    Пришлите пожалуйста программу архивом на support@owen.ru , так не глядя сказать трудно почему.

  5. #5

    По умолчанию Где взять библиотеку?

    Добрый день.
    Присоединяюсь к автору.
    Где взять библиотеку modbus TCP и описание на неё?

  6. #6
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    9,731

    По умолчанию

    Цитата Сообщение от MoZart Посмотреть сообщение
    Добрый день.
    Присоединяюсь к автору.
    Где взять библиотеку modbus TCP и описание на неё?
    Один из самых надежных, но трудных вариантов:
    зайти на сайт http://oscat.de/downloadmanager/view...atnetwork.html
    скачать библиотеку OSCAT Network CoDeSys 2.x
    разобраться в исходниках какорганизован модбас клиент, то бишь мастер modbasТСР
    и внедрить нужные блоки себе в проект

  7. #7
    Пользователь
    Регистрация
    03.03.2008
    Адрес
    Новосибирск
    Сообщений
    238

    По умолчанию

    Есть способ немного проще....Вернее два. Через конфигурацию или ручками. Всё описано во встроенной справке. Вот кусочек второго метода:

    PROGRAM TCP
    VAR
    mbserv: ModbusServer;
    En:BOOL;
    Res:BOOL;
    IoDrvStartBusCycle: UDINT;
    b:BOOL := TRUE;
    END_VAR


    IF b THEN
    En := TRUE;
    Res := FALSE;
    mbserv.wPort := 502;
    mbserv.pInputData := ADR( InputData1 );
    mbserv.uiInputDataSize := 500;
    mbserv.pOutputData := ADR( OutputData1 );
    mbserv.uiOutputDataSize := 500;
    mbserv.tTimeout := 0;
    b := FALSE;
    END_IF

    mbserv.xEnable := En;
    mbserv.xReset := Res;
    mbserv( );
    IF ( mbserv.xError ) THEN
    mbserv.xReset := TRUE;
    IoDrvStartBusCycle := Errors.ERR_SOCK_NOTCONNECTED;
    ELSE
    IoDrvStartBusCycle := Errors.ERR_OK;
    END_IF


    InputData1 - входные регистры (ф - 04)

    OutputData1 - выходные (ф - 03)

  8. #8
    Пользователь
    Регистрация
    02.08.2011
    Адрес
    Архангельск
    Сообщений
    13

    По умолчанию

    Цитата Сообщение от kgsh82 Посмотреть сообщение
    Есть способ немного проще....Вернее два. Через конфигурацию или ручками.
    Подскажите, каким образом можно преодолеть ограничение в 40 входных регистров, при использовании конфигуратора?

  9. #9
    Пользователь
    Регистрация
    03.03.2008
    Адрес
    Новосибирск
    Сообщений
    238

    По умолчанию

    Цитата Сообщение от ISh Посмотреть сообщение
    Подскажите, каким образом можно преодолеть ограничение в 40 входных регистров, при использовании конфигуратора?
    Чем второй метод не нравится?

  10. #10
    Пользователь
    Регистрация
    02.08.2011
    Адрес
    Архангельск
    Сообщений
    13

    По умолчанию

    Цитата Сообщение от kgsh82 Посмотреть сообщение
    Чем второй метод не нравится?
    Разобрался - понравился.
    Только появилось два вопроса:
    1) Опрашиваю ПЛК Лектусом - данные идут.
    Перезагружаю ПЛК - связь не восстанавливается, всё время mbserv.xError = TRUE.
    Еще раз перезагружаю ПЛК - связь восстановилась.
    Как сделать, чтобы связь всегда поднималась?
    2) Для чего нужны строки:
    Код:
    IoDrvStartBusCycle := Errors.ERR_SOCK_NOTCONNECTED;
    IoDrvStartBusCycle := Errors.ERR_OK;
    И компилятор ругается, что "Идентификатор 'Errors' не задан".

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

Ваши права

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