Crouli

Ответы в темах

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)
  • Автор
    Записи
  • в ответ на: Канал связи TCP-сервер #7482
    Crouli
    Участник

    Добрый день. Изменил драйвер. Опрос и привязку необходимо делать в ProcUnreadIncomingReq?

    
    public override bool ProcUnreadIncomingReq(Connection conn, ref KPLogic targetKP)
            {
                if (targetKP == null)
                {
                    //привязка кп
                    targetKP = CommLineSvc.FindKPLogic(-1, a_MBAP_device_address.ToString());
                }
                else
                {
    //.... чтение данных ..... 
                        for (int i = 0; i < g_modbus_slave.g_Elems.Elems.Count; i++)
                        {
                            if (g_modbus_slave.g_Elems.GetElemValNeedUpdateAndSetFalse(i))
                            {
                                SetCurData(i, g_modbus_slave.g_Elems.GetElemVal(i), 1);
                            }
                        }
                    }
    
                }           
    
                return base.ProcUnreadIncomingReq(conn, ref targetKP);;
            }
    

    В текущей реализации если у одного из КП поставить большой таймаут и он не ответит то другие КП не будут опрашиваться на время этого таймаута. Еще пробовал создавать бесконечный пустой цикл для одного из КП в ProcUnreadIncomingReq

                       while (Number == 58)
                        { 
                       
                        }
    

    после подключения и идентификации этого КП перестают опрашиваться все

    • Ответ изменён 8 лет, 10 месяцев назад пользователем Crouli.
    • Ответ изменён 8 лет, 10 месяцев назад пользователем Crouli.
    • Ответ изменён 8 лет, 10 месяцев назад пользователем Crouli.
    • Ответ изменён 8 лет, 10 месяцев назад пользователем Crouli.
    в ответ на: Канал связи TCP-сервер #7460
    Crouli
    Участник

    Попробовал установить поведение TCP сервера слейв в логах
    ———————————————————————————
    2017-10-03 15:59:48 Инициализация линии связи 16 «TcpПорт(0.70Tcp5028)<-Плк304(НолинскКот)»
    2017-10-03 15:59:48 Ошибка при инициализации канала связи: Поведение Slave канала связи не поддерживается КП 58 «Нолинск Котельная №11».

    Есть ли пример драйвера работающего в режиме слейв?

    в ответ на: Канал связи TCP-сервер #7458
    Crouli
    Участник

    Спасибо за ответ
    У нас написан драйвер для получения данные по Modbus TCP в slave режиме (ПЛК подключается к TCP серверу и начинает записывать регистры). Это как KpModbus.dll только работающий в режиме слейв. Привязка идет при первом полученном регистре по адресу устройства.
    НО поведение TCP сервера стоит мастер, если поставить слейв для каждого соединения будет создаваться свой поток?

    Crouli
    Участник

    Большое спасибо!

    в ответ на: KpModbus.dll в качетве Modbus TCP Slave #3191
    Crouli
    Участник

    Спасибо за помощь, будем рассматривать варианты.

    в ответ на: KpModbus.dll в качетве Modbus TCP Slave #3186
    Crouli
    Участник

    В качестве основного канала связи выступает ADSL, резервного GPRS. У обоих операторов услуга статического ip адреса платная. У нас довольно много таких объектов, так что все упирается в желание сэкономить.
    Рассматриваем возможность установки сетевого оборудования которое будет поднимать VPN соединение, и таким образом ПЛК будет получать статический ip адрес.

    в ответ на: KpModbus.dll в качетве Modbus TCP Slave #3184
    Crouli
    Участник

    Спасибо за ответы.
    В настоящее время такая схема у нас уже работает с ПЛК ОВЕН 304 на Codesys 3. ПЛК подключается к «MasterOPC Universal Modbus Server» дальше в MasterSCADA.
    Настроить ПЛК в качестве Модбас слейва но при этом TCP-клиента не получается.

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)