Показано с 1 по 3 из 3

Тема: MB_SERVER (oscat) + ПЛК110

  1. #1

    По умолчанию MB_SERVER (oscat) + ПЛК110

    Доброго времени суток!
    Кто ни будь пробовал организовывать сервер модбас из этой замечательной бибки на ПЛК110? Поделитесь примером или подскажите в какую сторону копать.

    Демо из бибки не работает, ошибка IP_C.ERROR - 03000000h. По ней собственно сервер и был "запилен". Пример Камзапа работает на PLCWinNT, на его основе была составлена структура V_MAP модбас, так же написан и опробован интерфейс панели. Не хотелось бы все переделывать для организации не программным способом а через конфигурацию.

  2. #2

    По умолчанию

    Выяснилось что в ФБ IP_CONTROL2 неудачно проходит функция SysSockListen, хотя код схож с рабочим кодом в популярном на форуме примере web сервера, вот тот участок:

    TS_INIT: (* TCP-SERVER (PASSIV) *)
    server_socket := SysSockCreate(SOCKET_AF_INET, SOCKET_STREAM, SOCKET_IPPROTO_IP); (* Create Socket *)
    IF server_socket = SOCKET_INVALID THEN
    c_status := 1; (* SysSockCreate failed *)
    state:= C_CLOSE;
    ELSE (* Address bindings *)
    SysSockSetOption( server_socket, SOCKET_SOL, SOCKET_SO_REUSEADDR, ADR(dint_true), SIZEOF(dint_true) );
    sockaddr.sin_family:= SOCKET_AF_INET;
    sockaddr.sin_port := SysSockHtons(c_port);
    sockaddr.sin_addr := SOCKET_INADDR_ANY;
    IF NOT SysSockBind(server_socket, ADR(sockaddr), SIZEOF(sockaddr)) THEN
    c_status := 2; (* SysSockBind failed *)
    state := C_CLOSE;
    ELSIF NOT SysSockListen(server_socket, 1) THEN (* erzeugt Warteschlange für eine Verbindung *)
    c_status := 3; (* SysSockListen failed *)
    state:= C_CLOSE;
    ELSE
    SysSockIoctl(server_socket, SOCKET_FIONBIO, ADR(dint_true)); (* NonBlocking mode *)
    state:= TS_OPEN;
    END_IF;
    END_IF;

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

    По умолчанию

    не раз уже писалось, что установка сокета в плк овен отличается от общепринятой кодесисовской библиотеки, при создании операционной системы были допущены разночтения, где используется INT vs BOOL
    Ищите темы где описывается создание соединения для овеновских плк и вставте в свой проект
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Похожие темы

  1. Время OSCAT
    от ramilgim в разделе ПЛК1хх
    Ответов: 22
    Последнее сообщение: 11.08.2022, 19:25
  2. OSCAT.CRC_GEN Веселая CRC16
    от Frayl в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 15.12.2014, 11:00
  3. Modbus client Oscat
    от kanadchikov в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 20.03.2013, 12:16
  4. Oscat не компилируется
    от Safron в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 28.02.2011, 14:12

Ваши права

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