Да, овен плк-160. Int32 установил, так как с панели выходит в таком формате, а дальше приходится преобразовывать. Поставил int32, в настройках сервера запретил использовать команду 0х06. Запись прошла успешно.
Да, овен плк-160. Int32 установил, так как с панели выходит в таком формате, а дальше приходится преобразовывать. Поставил int32, в настройках сервера запретил использовать команду 0х06. Запись прошла успешно.
У меня такой вопрос. Установил ОРС сервер версии 3.1.0 и никак не могу добиться чтобы значение float передавалось в SCADA систему с десятыми или сотыми. Подскажите пожалуйста как это можно сделать?
Ни так слетел объяснил. С ОРС сервера выходит сигнал float, а SCADA приходит целый.
Извиняюсь, мой косяк был, надо было просто обновить данные в SCADA системе.
Последний раз редактировалось Andrei1401; 06.02.2015 в 14:19.
Не понятно - вы решили проблему или нет?
Вы используете масштабирование? Проверьте правильные ли вы типы указали в настройках "Тип данных в устройстве" и "Тип данных в сервере".
Спасибо.
Это не совсем правильное поведение.
В качестве примера приведем наш ОРС сервер в режиме "Мастер". Если сервер чувствует обрыв соединения (приходит ошибка от системной функции ОС), то сервер прекращает попытки повтора (зачем если коннекта нет), закрывает соединение, и пытается снова соединиться.
Давайте представим такую схему. У нас есть один ПЛК и компьютер, которые соединены напрямую кабелем (перекрестным). Разорвали соединение.
Какие остатки предыдущих пакетов будут гулять по сети? И где они будут гулять?
Они могут накопиться в буфере контроллера, и потом (если контроллер не очистил буфер) выйти в сеть. У нас в ОРС сервере (в режиме Мастер) это учитывается, и буфер при новом соединении очищается.
Почему нарушена последовательность посылок? Почему стал другой номер порта и источника?
После реконнекта сменился IP и порт?
У нас в Slave нет таймаута ожидания разрыва. Разрыв детектируется операционной системой и передается в программу.
Наш Slave действительно поддерживает мультисоединение. Несколько странно почему это так удивляет главного разработчика фирмы ОВЕН. Большинство контроллеров поддерживает несколько соединений на один порт (Wago, Modicon, Delta), не говоря уже про различное ПО для операционной системы Windows (например эмулятор ModRSSim поддерживает до 1000 коннектов). Но к данной проблеме это отношения не имеет.
Последний раз редактировалось SCADAMaster; 10.02.2015 в 15:57.
Спасибо.
Ошибка приходит по таймауту коннекта, а пока его нет (а это секунды и более) - ПЛК успеет 10-к пакетов послать при описанных настройках мастера.
Буфер мастера очищается, а буфер стека TCP/IP? На логе ясно видны попытки ретрансмита.
И зачем представлять самую простую схему - использование TCP/IP предполагает что мастер находится, к примеру, в Антарктиде, 30 хопов до slave-а.
При новом соединении как минимум номер порта-source меняется именно для того чтобы можно было различить что это новое соединение а не обежавший планету 3 раза пакет.
Через сколько секунд разрыва? В протоколе TCP/IP нет нативных средств для определения разрыва от внешних причин (дядя Вася с топором) в момент разрыва, только по таймауту.
[/QUOTE]
О майн гот! Расскажите мне, что будет со SCADA если я в один порт с 2-х мастеров буду по очереди слать: то "температура реактора 100 градусов" то "500 градусов"? Вот что будет делать SCADA, будет ли там признак "Данные из разных источников"? Нельзя ли узнать на каких опасных производствах стоит Ваш OPC?
Много соединений на 1 порт нужно для Web-сервера, к примеру, где действия 1 пользователя не пересекаются с другими. А ModBus априори предполагает наличие только 1 мастера в сети.
Описанный выше апокалипсец как раз и происходит у Павла. Соединение закрыто, мастер открыл другое а OPC еще обслуживает старое соединение и получает негодные данные.
Последний раз редактировалось Филоненко Владислав; 10.02.2015 в 18:16.
Тролль-наседка, добрый, нежный и ласковый
Это зависит от реализации и настроек маршрутизатора. Маршрутизатор может сбрасывать буфер при отсутствии коннекта.
А почему бы и не проверить?
Может быть г-н _Pavel_ проверит работу по такой схеме?
Не обязательно. Порт источника может остаться как и в предыдущей сессии.
Кроме того если будет установлен новый коннект, а в буфере маршрутизатора остались данные, то эти старые данные будут записаны уже в новой сессии с новыми параметрами соединения (новым портом-source).
Вы занимаетесь демагогией.
Отвечая на вопрос что будет если послать разный запрос с двух мастеров ответ прост - сервер пример и запишет в теги сначала первый запрос, затем второй запрос.
Точно также поступит и ваш контроллер, если добавлю в него два TCP порта (502 и 503).
И это полностью является проблемой разработчика - он может на уровне исполняемых контролировать подобные изменения (в MasterSCADA для этого есть параметр "блокировка обратной связи"). В конце концов существуют информационные системы - которые только получают данные, и не производят запись данных.
В контроллерах вашей разработки ни что не мешает мне добавить в узел Modbus(Slave) два TCP порта (или больше) и обращаться к ним с разных мастеров. Поэтому режим 2 мастеров у вас, просто реализован не так удобно как у других производителей.
Последний раз редактировалось SCADAMaster; 10.02.2015 в 19:12.
Спасибо.
Но вот в чём нюанс - у меня на ПЛК это будут 2 различных slave c разными тегами (в терминологии SCADA) или 1 slave с разными портами , т.е. это осознанный (не значит правильный, но осознанный) выбор. А если OPC поддерживает мультимастерность на одном порту - это будет скрытая особенность, дыра как для случайных (как у Павла) так и для намеренных действий. И противоречие со стандартом ModBus. Кстати, на ПЛК можно не включать мультимастерность, а как это сделать для OPC?
Тролль-наседка, добрый, нежный и ласковый