Возможна ли реализация следующей схемы подключения МРВ -> Модем -> Коммутируемая линия -> Модем -> Устройство сбора данных (типа I -7000) путем использования канала подтипа Контр_2 и написанием собственного драйвера, описывающего носитель. Какие затруднения могут возникнуть при решении этой задачи. Напишите Ваши рекомендации.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Можно обойтись и без написания драйвера. Нами испытывались ситуации обмена МРВ модем + с удаленным оборудованием посредством коммутируемого соединения в случаях, когда удаленный узел сам не может ответить на входящий звонок (например - это банальный модуль DCS без возможности управления модемом). Суть метода состояла в том, чтобы удаленный модем сам поднял трубку на хводящий звонок и установил соединение с модемом. Мы проводили испытания на модемах US Robotics - было достаточно только включить один джампер на DIP-панели модема. В принципе, я думаю, что на сегодняшний день практически все модели модемов поддерживают данную опцию. Итак - после подъема трубки и установления связи, линия становиться прозрачной для МРВ, т.е. можно работать с практически любым протоколом для RS232. Нами были испытана следующая система: МРВ модем+ - модем - линия связи - модем - РС-контроллер с Микро МРВ (не модем +). Модем контроллера с включенной функцией автоответа. Обмен по протоколу M-Link. В данной системе Микро МРВ ничего даже и не "подозревал" о том, что обмен производился через коммутируемую линию.
Таким образом возможен даже обмен с любыми не интелектуальными устройствами (например DCS) у которых есть есть интерфейс RS232. Все заботы по установлению соединения берет на себя модем. Поэтому, если Вы планируете использовать на удаленном узле контроллер типа Лагуна (серии I7188), то никаких драйверов писать не нужно, единственное - необходим МРВ модем+. Небольшое ограничение - при соединении модем выдает в порт текстовое сообщение типа "CONNECT 9600 ... и т.д.", необходимо, чтобы устройство, к которому подключен модем ложно не среагировало на данную строку.
Однако, если Вы планируете использовать связку модулей УСО серии I7000 без соединения их с контроллером, а напрямую к модему, то возможно что это не будет работать. Мы пытались связаться таким образом по схеме: МРВ модем+ - модем - линия связи - модем - I7520 - I7065. Связь с модулем не удалась. Я подозреваю, что дело в неверной интерпретации сообщения от модема "CONNECT ...." модулем конвертера RS232-485. Т.е. после установления соединения запрос почему-то не проходил через конвертер. Хотя мы не исключаем, что при использовании другого конвертера такая связь могла бы быть возможной.
Posted by ATMosphere (Участник № / Member № 115) on :
Благодарен за исчерпывающий ответ!
Но возник следующий вопрос: Где Вы в последнем описываемом Вами проекте (МРВ модем+ - модем - линия связи - модем - I7520 - I7065) указывали номер телефона с I7520??? Ведь из документации следует, что в бланке "Параметы узла" указывается только собственный телефонный номер и строка инициализации для собственного модема, а другого узла в проекте нет! Как же тогда МРВ узнает, куда звонить?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Выбор телефонного номера производится из файла addr.ind проекта, в котором в соответствие адресам узлов стоят их номера телефонов, поэтому, чтобы "обмануть" сервер, в проекте создаются узлы-пустышки с соответствующими настройками. Если связь с модулем УСО, то достаточно создать узел пустым - без каналов, но с указанием его сетевого номера (адреса) как у модуля УСО.
Posted by ATMosphere (Участник № / Member № 115) on :
Спасибо за ответ! Теперь появилось два момента: 1) Собрали следующую конфигурацию: PC->I-7520->I-7041. В терминале делаем посылку CONNECT 9600<cr>, тем самым имитируя отклик модема. Затем делаем посылку DCS ($012). Все работает. I-7041 отвечает. Да и причем здесь может быть I-7520, ведь он осуществляет исключительно электрическое преобразование интерфейсов и никак не анализирует содержимое байт данных! В связи с этим вопрос: А из модема то запрос "выходит"? Или он не формируется со стороны PC? А может быть дело в настройке порта модема на конце I-7520 (он ведь может иметь скорость, отличную от I-7065)? Был бы очень благодарен Вам за разрешение вопроса, т.к. направление довольно перспективное (МРВ+два модема+I-xxxx - вот и вся диспетчеризация).
Posted by ATMosphere (Участник № / Member № 115) on :
И еще один вопрос: 2) Согласно Вашим рекомендациям создали проект (в DEMO): Узел МРВ, где параметры портов: COM3-модем, COM1-связь с контроллером; связь по посл. портам: I-7041 на COM3(сет.адрес 2), I-7041 на COM1(сет.адрес - 1); основные: host mode - модем, сетевой адрес: 1. Узел контроллера(пустой): сетевой адрес 2, указан номер телефона провайдера Internet. Физически к компьютеру ничего не подключалось!
Результат довольно интересный: в канале на COM1 как и ожидалось, сразу же недостоверность. Далее идет дозвон до провайдера, устанавливается связь, в достоверности канала по COM3 0, в канале некоторое значение, причем иногда даже меняется. В файле протокола, который создал профайлер, при инициализации COM3 значится RS:COM 3 Inc M-Link detected Представлены запросы DCS (как и должно быть): $016 = 5 = 0 RS:COM 1 check error Однако нет аналогичных запросов для COM3. Вопрос: Почему же не протоколируются запросы DCS для COM3? Ведь указано, что там I-7041. И откуда появился M-Link detected, ведь наличия связи по M-Link в проекте нет? Готов выслать для ознакомления файл протокола, созданный профайлером и проект.
Posted by ATMosphere (Участник № / Member № 115) on :
Уважаемый Member №4!
Искренне надеемся о продолжении обсужений по этой теме.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
То, что пишется "M-Link Detected" - это норма, по умолчанию обмен по модему считается как по протоколу M-Link. Запросы же все равно будут зависеть от подтипа канала (что видно по сообщениям в Лог-файле). Не совсем понятно - почему Вы использовали для коммутируемого соединения номер телефона провайдера Интернет?
Posted by ATMosphere (Участник № / Member № 115) on :
Почему же в Вашем эксперименте не удалось установить связь? Крайне интересно, и важно! Все-таки, возможно ли ее установить без контроллера?
Хотелось бы получить комментарий к сообщению от 28.01.2003 связанного с Вашим сообщением от 15.01.2003 (а именно последним абзацем)!
Правильно ли я понимаю, что если в принципе возможна связь по коммутируемой линии с I-7000, то аналогично можно ее установить и с Modbus устройством?
А номер провайдера был выставлен, чтобы более легким трудом (не занимая двух номеров) получить состояние: MODEM:COM3 (...) connection established и увидеть запрос в log файле к I-7000 $026. Теперь мы его увидели и надеемся, что в реальном проекте эта связь заработает. Не так ли?
А можно ли реализовать, чтобы при каждом модемном соединении формировалось несколько запросов к I-7000 (например, к нескольким модулям, для которых созданы узлы-пустышки с одним и тем же тел. номером и разными сет. номерами)? Или же МРВ потребует дозвона для каждого?
И еще, есть ли возможность реализовать задачу, в которой по инициативе оператора происходит удержание модемного соединения и непрерывное чтение данных (или формирование), а далее, по той же инициативе, это соединение обрывается?
Заранее благодарен за оперативность!
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1) Не совсем понятно, что Вы подразумеваете под отсутствием контроллера? Если его физическое отсутствие, то - естественно Вы никогда не установите с ним связь. 2) Ответ к сообщению от 28.01.2003: За давностью времени эксперимента я сейчас не могу сказать точно - что было возможной причиной, то, что я указал в своем ответе насчет конвертера - всего лишь мои подозрения. Хотя я не исключаю причин, которые указали Вы. 3) Да, такой же "фокус" можно попробовать проделать и с ModBus RTU. Но мы этого пока еще не пробовали на реальном железе. 4) Если нужен постоянный обмен только с одним номером без отключения, то можно использовать режим "захвата узла" - подробности смотрите в справочной системе в разделе "Разработка распределенных систем"-"Обмен по коммутируемым линиям". Этим режимом можно управлять как вручную так и автоматически.
Posted by Bob (Участник № / Member № 137) on :
Уважаемые коллеги! Сообщите пожалуйста, проводились ли еще эксперименты с УСО типа ADAM, по протоколу MODBUS и др. на коммутируемых линиях и каковы результаты. С надеждой, В. Масленников