PDA

Просмотр полной версии : ОВЕН ПМ01



eupsychian
29.04.2011, 18:20
Имеется ряд вопросов по работе с ПМ01:

1) Одним из недостатков режима GPRS является "Негарантированное время доставки, низкий приоритет". Насколько это критично и от чего это зависит?

2) Если предполагается использовать ПМ01 за городом, то "негарантированное время доставки и низкий приоритет" уже уходят на второй план ?

3) В каких пределах может колебаться время доставки?

4) При общении с "миром" через GPRS можно использовать любой протокол. Какие преимущества имеет протокол Modbus TCP перед Modbus ASCII ?
RTU, наверное, не стоит обсуждать, так как условие разделения пакетов по времени (промежуток 3.5 символа) имеет свои грабли при использовании GPRS и вносит некоторые сложности в алгоритм обработки сообщений.

5) Как рассчитать кол-во необходимого трафика на какой-то промежуток времени (день, месяц) при отправке пакетов Modbus ASCII по запросу от сервера с определённым интервалом? Сколько байт тратится на обёртки типа TCP/IP и т.д., кроме тех байт, что уходят на Modbus обёртку?

6) Работа с ПМ01 по RS232 более устойчивая и быстрая чем по RS485 (эхо отключено). Из-за чего это может быть?
В HyperTerminal'e отвечает сразу, но там скорость посылки команд "вручную" отличается от скорости посылки команд windows программой на порядки. Поэтому это не показатель. Может быть я чего то не учитываю? Где-то на форуме разработчики спрашивали о том, нужен ли 485-ый интерфейс или можно обойтись 232-ым, и кто каким пользуется. МОжет не у меня одного такая проблема с 485-ым ?

7) Как устройству общаться с компьютером, если последний "сидит" через прокси ? Есть ли в ПМ01 (SIM300) какие то встроенные функции для общения через прокси или необходимо использовать другие механизмы (вспомогательные протоколы или что-то в этом роде) ?

Илья Кареткин
04.05.2011, 13:09
Здравствуйте.

Имеется ряд вопросов по работе с ПМ01:
1) Одним из недостатков режима GPRS является "Негарантированное время доставки, низкий приоритет". Насколько это критично и от чего это зависит?

Зависит от оператора и его сил в конкретном регионе при загрузке в конкретный момент времени, т.е. при недостатке слотов, первое чем оператор пожертвует - это GPRS.



2) Если предполагается использовать ПМ01 за городом, то "негарантированное время доставки и низкий приоритет" уже уходят на второй план ?

Тут другой подход: отталкивайтесь от периода опроса. Если ответственное соединение: передача аварии/управляющего воздействия, то я бы предпочел CSD (дозвон модем-модем). Если постоянная диспетчеризация, то можно и GPRS ( учитывая что возможное не продолжительное отсутствие связи не повлечет потери данных или последствий).



3) В каких пределах может колебаться время доставки?

Опытным путём: пинг между устройством с проводным интернет и безпроводным около 2х секунд.



4) При общении с "миром" через GPRS можно использовать любой протокол. Какие преимущества имеет протокол Modbus TCP перед Modbus ASCII ?
RTU, наверное, не стоит обсуждать, так как условие разделения пакетов по времени (промежуток 3.5 символа) имеет свои грабли при использовании GPRS и вносит некоторые сложности в алгоритм обработки сообщений.

Любой протокол если ВЫ будете его упаковывать. А так только ModbusTCP. Наш ПЛК+модем передают по ModbusTCP



5) Как рассчитать кол-во необходимого трафика на какой-то промежуток времени (день, месяц) при отправке пакетов Modbus ASCII по запросу от сервера с определённым интервалом? Сколько байт тратится на обёртки типа TCP/IP и т.д., кроме тех байт, что уходят на Modbus обёртку?

Все индивидуально и зависит от кол-ва параметров. Для 20 передаваемых регистров у меня за один обмен выходило около 5кб..
Но это всё индивидуально..



6) Работа с ПМ01 по RS232 более устойчивая и быстрая чем по RS485 (эхо отключено). Из-за чего это может быть?
В HyperTerminal'e отвечает сразу, но там скорость посылки команд "вручную" отличается от скорости посылки команд windows программой на порядки. Поэтому это не показатель. Может быть я чего то не учитываю? Где-то на форуме разработчики спрашивали о том, нужен ли 485-ый интерфейс или можно обойтись 232-ым, и кто каким пользуется. МОжет не у меня одного такая проблема с 485-ым ?

Интерфейсы абсолютно одинаковы - у gsm-модуля вообще он один, просто развязан на 2. Что значит быстрота..при какой длине RS-485 проявляется разница..?



7) Как устройству общаться с компьютером, если последний "сидит" через прокси ? Есть ли в ПМ01 (SIM300) какие то встроенные функции для общения через прокси или необходимо использовать другие механизмы (вспомогательные протоколы или что-то в этом роде) ?
Хм..сомневаюсь о данной возможности - у вас же ПК-сервер..постараюсь узнать у SimCom.

eupsychian
05.05.2011, 12:26
...Что значит быстрота..при какой длине RS-485 проявляется разница..?

Длина кабеля минимальная – 10 см. Это ведь копейки.
Программу писал как на чистом Си с использованием WinAPI, так и на C# с использованием компонента SerialPort. Когда работаю по 232-му - ответ получаю сразу. Причём ошибки встречаются крайне редко - 1/1000, да даже и того реже.
Когда работаю по 485-му сразу же чувствуется нестабильность работы.
В программе на Си эта нестабильность проявляется в следующем:
1) В ответ приходит абракадабра или ответ "ERROR"
2) Вообще ничего не приходит. Может таймауты маленькие? Но длинные таймауты не помогают. Пробовал работать через дублирование команд (посылать запрос пока не получу "OK"). Работает, но на каждую команду с несколькими перезапросами уходит время, что неприемлемо. Если находишься в режиме передачи данных AT+CIPSEND - то не понимаешь - перешёл ли модем в режим посылки данных или нет.
3) Приходит "OK" или другой ответ в зависимости от контекста. Причём у модема бывают периоды обострения, т.е. когда он отвечает успешно на несколько команд подряд, а потом опять себя ведёт не так как надо.
В программе на C# по событию DataReceived ответы приходят, но такое чувство, что модем получает команду, отвечает на неё, но реагирует на содержание команды не сразу.
Например, посылая команду "AT+CMGF=0", а потом запрашивая "AT+CMGF?" (переключился ли он в этот режим или нет) обычно заканчивается 3 ситуациями:
1) Режим сразу же был изменён.
2) Режим не был изменён и, как показывает практика, не будет изменён, пока не послать "AT+CMGF=0" ещё несколько раз.
3) Модем вообще ничего не ответил, либо ответил следующую абракадабру:

Запрос: AT+CMGF=0
Оmвеm: bcb~0
Запрос: AT+CMGF?
Оmвеm: b?gp?3?_?

Запрос: AT+CMGF=0
Оmвеm: OK
Запрос: AT+CMGF?
Оmвеm: ??A- j; 8?C8??? ?


Поражает то, что по 232-му всё работает как в сказке!
И ещё...
Программы (а точнее их части, отвечающие за приём/передачу через порт) отлично работают с ОВЕН МСД-100 по 485-му интерфейсу!


Код настройки порта:


HANDLE hSerialPort; // Дескприптор для последовательного порта

BOOL SetDCB() // Настраиваем порт
{
DCB dcbSerialParams = {0};
dcbSerialParams.DCBlength = sizeof(dcbSerialParams);
if (!GetCommState(hSerialPort, &dcbSerialParams)) printf("\nError getting serial port state\n");
dcbSerialParams.BaudRate = CBR_115200;
dcbSerialParams.ByteSize = 8;
dcbSerialParams.StopBits = ONESTOPBIT;
dcbSerialParams.Parity = NOPARITY;
if (!SetCommState(hSerialPort, &dcbSerialParams)) return FALSE;
else return TRUE;
}

BOOL SetTimeOuts() // Устанавливаем таймауты для порта
{
COMMTIMEOUTS timeouts;
timeouts.ReadIntervalTimeout = 100;
timeouts.ReadTotalTimeoutMultiplier = 2;
timeouts.ReadTotalTimeoutConstant = 100;
timeouts.WriteTotalTimeoutMultiplier = 0;
timeouts.WriteTotalTimeoutConstant = 100;
if (!SetCommTimeouts(hSerialPort, &timeouts)) return FALSE;
else return TRUE;
}

void OpenPort(unsigned const char* PortName) // Функция открытия порта
{
hSerialPort = CreateFile(PortName, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if (hSerialPort == INVALID_HANDLE_VALUE)
{
if (GetLastError() == ERROR_FILE_NOT_FOUND) printf("\nSerial port (%s) doesn't exist\n",PortName);
else printf("\nError opening serial port (%s)\n",PortName);
}
if (SetDCB() == FALSE) printf("\nError setting serial port state (%s)\n",PortName);;
if (SetTimeOuts() == FALSE) printf("\nError setting serial port timeouts (%s)\n",PortName);;
}

void ClosePort() // Функция закрытия порта
{
CloseHandle(hSerialPort);
}

Илья Кареткин
18.05.2011, 10:16
Я так понимаю опрос через HiperTerminal по RS-485 так же работает, у вас, не корректно - "ответы на арабском" ??
Прошу выслать мне список текущих настроек модема командой AT&V, серийный номер модема.

eupsychian
20.05.2011, 17:26
Проанализировал настройки модема. Оказалось, что неправильно была выбрана скорость обмена... Жаль, что много времени было потеряно на такую ерунду...

Спасибо за внимание и поддержку! Всего наилучшего и успехов :)

mdmx
21.06.2013, 11:16
Какой параметр GATE нужно указывать при подключении к ПЛК-150 модема ПМ-01 с сим-картой со статическим ip-адресом? Цитирую инструкцию:
"В подключенном состоянии, перейти в область PLC_Browser (ПЛК-Браузер) и задать настройки TCP/IP подключения для контроллера, соответствующие настройкам используемой в GSM-модеме SIM-карты:
a. SetIP XXX.XXX.XXX.XXX
b. SetGATE XXX.XXX.XXX.XXX
c.SetMASK XXX.XXX.XXX.XXX"
IP - ясно, MASK - ясно. в инструкции параметр GATE указан 10.0.6.1, но в техподдержке сообщили, что это для подключения по Ethernet.
решено

Shurik
27.06.2013, 20:32
Здравствуйте! Купил 2 модема ПМ01 - 220АВ у официльного представителя фирмы ОВЕН (компания СВ Альтера, Украина). Проблема следующего характера. У одного из модемов постоянно горят светодиоды Tx Rx, не реагирует на команды. Если переключатель 2 перевести в состояние OFF, светодиоды гаснут. Есть сим карта или нет - реакция та же. Второй модем работал какое-то время стабильно (отправка, прием сообщений). Приблизительно через пол часа светодиод GSM перестал мигать. Повторно включив питание светодиод GSM мигает с периодом 1 сек 14 раз, после этого один раз промигивает светодиод Тх и никаких признаков жизни модем не подает. На команды не отвечает. Неужели это нормально? Подскажите, в чем проблема, ведь совершенно новые модемы. Можно ли их как-то оживить?

makkatchen
07.05.2017, 20:53
Здравствуйте. Подскажите, пожалуйста, можно ли использовать ПМ-01 в режиме подключения RTU?
Следующая ситуация.
К контроллеру ПЛК150, к выходу 485, подключается ряд устройств, в том числе и ПМ-01.
Но все устройства работают в режиме RTU, а модем в ANSII.. в связи с этим все устройства, понятное дело, "отваливаются"(

Может какой девайс, аля конвертер, у вас есть, или можно что в настройках модема поменять, или библиотеку какую поставить? вот.

Сергей Лысов
07.05.2017, 23:27
К контроллеру ПЛК150, к выходу 485, подключается ряд устройств, в том числе и ПМ-01.

Если RS-485 занят, то используйте RS-232 Debug.

ГЛЮКОNIC
02.09.2017, 15:30
Подскажите пожалуйста модем ПМ01 подключен через 9 пиновый разьём RS232 (от Коректора 3 провода Rx Tx GND) то всё работает, но нужно подцепить через сьёмную клему не применяя разьёма - что я делаю не так - нужно ли в модеми прописывать другой интерфейс или я всё же другая ошибка с моей стороны ? - при попытки позвонить с телефона с 9 пинового модем отвечает, а вот с разьёма где питание также подходит модем трубку не берёт будто на него не приходит интерфейсные данные

PavelGO
21.09.2017, 10:44
Здравствуйте. Общаюсь с пм через 232 с помощью syslibcom. Смс и звонки - всё ок. Нет ли рабочего примера АТ команд для отправки/приема TCP?

Сергей Лысов
21.09.2017, 11:18
Нет ли рабочего примера АТ команд для отправки/приема TCP?

Примеры можно посмотреть вот тут: ссылка (http://www.mt-system.ru/sites/default/files/docs/documents/sim900_tcpip_application%20note_v1.02.pdf)
К каждому примеру есть описание, но на английском языке.

PavelGO
21.09.2017, 11:35
Спасибо. В теории понятно, а как выйдет на практике неизвестно. Если во время tcp сеанса придет смс или входящий вызов, то как то плясать нужно будет, видимо. Или во время отправки-получения прийти ничего не может?

Сергей Лысов
21.09.2017, 12:26
Если во время tcp сеанса придет смс или входящий вызов, то как то плясать нужно будет, видимо. Или во время отправки-получения прийти ничего не может?
Перед началом tcp соединения отправляйте команду "AT+GSMBUSY=1" и про входящие звонки можно забыть. После окончания сессии пишите "AT+GSMBUSY=0". Как сделать запрет СМС, к сожалению, не в курсе.

Трофимов Артем
21.09.2017, 12:51
смс будут храниться у оператора до появления симки в сети/пока не истечёт время хранения/пока модем не освободится от звонка. т.к. GPRS использует систему звонка - модуль должен считаться заблокированным.

PavelGO
26.09.2017, 11:03
Спасибо. Еще вопрос по опыту или к поддержке: вместе с передачей tcp, обработкой вызовов и **** возможно(надёжно) ли соединение с Codesys для удалённой отладки или лучше роутер на ethernet повесить с ещё одной симкой?

Трофимов Артем
26.09.2017, 11:51
ПМ01 работает в 2G сети, Вы конечно можете на такой скорости грузить проект, но лично по удобству и стабильности соединения среды с контроллером я бы рекоммендовал через роутер. а раз такая ситуация с удалённой отладкой , то и основной обмен можно заложить через него.