PDA

Просмотр полной версии : ПЛК100 - модем ПМ01-GPRS(UDP)



Nikosoff
01.09.2015, 12:42
Добрый день. Такая вот проблемма. Связка: плк100 c техпроцессом + модбас сервер для отправки данных диспетчеру + модем ПМ01. Соединение через GPRS по UDP.
В кофигурации: Universal network module + modem + PPP драйвер.
Что происходит:
Данные с модема в плк => 00 04 00 00 00 06 01 03 00 00 00 04. Вызов SysSockRecvFrom => 00 00 00 00 00 00 00 00 00 00 00 00.
Вызов SysSockSendTo => FF FF FF FF FF FF FF FF FF FF FF FF. Данные на входе в модем => 00 FF FF FF FF FF FF FF 00 0B FF FF.
Причём контрольная сумма пакета подсчитывается по правильным данным на входе в функцию SysSockSendTo. Как побороть? Может прошивка есть другая не 2.10?

Филоненко Владислав
02.09.2015, 17:37
2.10 крайне устаревшая прошивка. используйте 2.14.0

Nikosoff
03.09.2015, 08:42
2.10 крайне устаревшая прошивка. используйте 2.14.0
Здравствуйте, Владислав. Спасибо за отклик. Здесь на форуме нашёл 2.15.3. Результат к сожалению тот же.

Charushin1989
03.09.2015, 10:50
Здравствуйте,возникла проблема организация передачи данных с плк100 на спк110 модемы пм-01. Спк в сеть выходит все хорошо, плк тоже (лайн статус 3) передача пакетов не идет висит ошибка модбаса 85. Подскажите может кто знает в чем дело,программу прилагаю Максим.

Джэйсон
06.09.2015, 09:47
Здравствуйте,возникла проблема организация передачи данных с плк100 на спк110 модемы пм-01. Спк в сеть выходит все хорошо, плк тоже (лайн статус 3) передача пакетов не идет висит ошибка модбаса 85. Подскажите может кто знает в чем дело,программу прилагаю Максим.

Приветствую!
Удалось ли решить проблему? Столкнулся с аналогичной, как решить пока не знаю.

С Овен ПЛК работаю первый раз, задача появилась неожиданно уже при нахождении в командировке, преобразователей 485-232 нет, прослушать канал плк-модем не могу.

Опишу проблему подробнее, может кто подскажет куда копать:
По стандартному примеру ПЛК100-ПМ01-GPRS-ПМ01-ПЛК100. SetIP,SetGate,SetMask выполнено, IP адрес в UMD задается через ":". Оба модема подключаются к сети статус=3, MB Slave функционирует, проверял подключением Lectus OPC, данные принимаются и отправляются (как через стороннего провайдера, так и используя симку MB Master'а через мегафон-модем). MB Master постоянно выдает ошибку 85. При подключении к Lectus OPC (Slave) в логе лектуса видно что ПЛК подключается, передает пакет затем возникает ошибка: "Ошибка при получении данных Socket Error # 10054 Connection reset by peer.", либо "Ошибка: получены не запрашиваемые данные" (С лектус тоже особо не работал, могу ошибаться с выводами). При этом ПЛК100 начинает отображать ошибку 81.

Проект для ПЛК создавался с нуля, конфигурацию проверял несколько раз ошибок не обнаружил, но глаз замылен уже мог пропустить. Если необходимо проекты плк выложу

Джэйсон
06.09.2015, 17:31
Удалось ПЛК Modbus Master подключить к Lectus OPC (Slave) либо что-то прошлый раз не правильно настроил в лектусе, либо в плк надо указывать всю область Slave для чтения (что как-то совсем бредом кажется). Вообщем контроллеры по отдельности работают, а друг с другом не хотят совсем. Вижу 2 варианта... либо качество связи оператора (пинг между симками от 1 до 4 секунд), либо всё же ошибка в настройках ПЛК.

Charushin1989
07.09.2015, 08:18
Такие же мысли толи Мега пакеты бьет или теряет (хоть и через смд все четко 100/100),толи дело в ПО обидно что овен разводит руками,опц сервер тоже юзал пакеты шлет спк принимает

Charushin1989
07.09.2015, 08:26
Джейсон будь добр выложи гляну,глянь своим глазом мой проект может чего пропустил

Джэйсон
07.09.2015, 10:04
Вот проекты, сегодня попробую с МТС оператором.

Джэйсон
07.09.2015, 10:15
На мой взгляд в твоем проекте след. ошибка (первый раз с овнами работаю). 2й модуль UMD IP адрес указан через "." необходим разделитель ":". по большому счету то и все что заметил. я так понял задача считать данные с прибора по интерфейсу и передать по TCP в спк?

еще в программе отсутствует Universal Network Module не знаю на сколько он важен, но в примере он был.

Джэйсон
07.09.2015, 10:53
Еще одна странность обнаружилась... При обмене данными ПЛК (MB Master) и Lectus (MB Slave) происходит перезагрузка ПЛК и совпадает с изменением значений регистров в Lectus, но не всегда. Что-то тут не так)) как в поговорке "Стою на асфальте я в лыжи обутый..."

Nikosoff
07.09.2015, 11:56
Вот проекты, сегодня попробую с МТС оператором.

Добрый день. По GPRS с использованием TCP ни Лектус, ни ПЛК нормально не работают. Пинг в 2 секунды для GSM это нормально. С какой частотой опрашиваете устройства?
Было замечено, но исследования не проводились, что если опрос производить не чаще чем раз 15 секунд, происходит "засыпание" канала. Соответственно таймауты для TCP.
Пляски с бубном успеха не имели. К сожалению решения пока нет. Оператор МТС. Если есть возможность проверьте уровень принимаемого модемом сигнала: AT+CSQ.
Ежели 16 и меньше - для ПМ01 делов не будет. И обратите внимание в проэкте ValveM1_Local_(Server)-1 модуль контроля модема работоспособен лишь во время активной фазы соединения
по GPRS. После подхвата PPP драйвером он бесполезен. Выключите питание модема после активации GPRS сессии и посмотрите на состояние bi_ModemFault и bi_ModemLineStatus.
На плк 100 и 150 не работает. Ну по крайней мере на моих экземплярах. И ещё если Вы используете Modbus RTU то как мне кажется в настройках порта связи с модемом, "Frame oriented"
лучше установить то же RTU. Сильно не затачивался по этому поводу, но попробуйте.

Nikosoff
07.09.2015, 12:08
Еще одна странность обнаружилась... При обмене данными ПЛК (MB Master) и Lectus (MB Slave) происходит перезагрузка ПЛК и совпадает с изменением значений регистров в Lectus, но не всегда. Что-то тут не так)) как в поговорке "Стою на асфальте я в лыжи обутый..."

Увеличьте Min и Max cycle lenght в конфигурации. У меня более менее получалось мин 5мс мах 5000мс

Джэйсон
07.09.2015, 13:28
Добрый день, Nikosoff. Спасибо за ответ и советы. Период опроса пробовал от 1 до 5 секунд. По поводу модуля контроля модема особо не задумывался, в примере было реализовано, я и использовал, разберусь с передачей данных буду смотреть на него. А вот по поводу настройки портов на RTU или ASCII этого не замечал, спасибо, попробую, но опять же настройки портов взяты из примера, который я так понимаю представители Овен обкатали.

Nikosoff
07.09.2015, 13:35
Как сказал один Уважаемый на этом форуме человек: "И у примеров бывают ошибки" :). Не хочу обидеть людей писавших пример. Это всего лишь моё мнение. Извините если оно ошибочно.
А как у Вас с питанием модема и контролера. Были случаи при питании 24 вольтами в момент передачи модемом данных происходила просадка и естестно ребут.

Джэйсон
07.09.2015, 13:37
Увеличьте Min и Max cycle lenght в конфигурации. У меня более менее получалось мин 5мс мах 5000мс

Увеличил cycle lenght и поменял Frame oriented в ValveM1_Local_(Server) ПЛК начал перезагружаться... вернул на ASCII перестал.

Джэйсон
07.09.2015, 13:45
Сейчас пытаюсь запустить пример в чистом виде, без своих добавлений... связка ПЛК (Клиент) - Лектус (Сервер) работает, плк не перезагружается, пока в лектусе не установил протокол Modbus RTU связи не было. попытался данного клиента подключить к своему проекту плк(сервер) опять ошибка 85.

Nikosoff
07.09.2015, 14:06
Скорее всего у вас затык на строках 11-13 POU Control. Попробуйте управлять таймерами по событиям тригеров а не в каждом цикле

Джэйсон
07.09.2015, 14:19
Скорее всего у вас затык на строках 11-13 POU Control. Попробуйте управлять таймерами по событиям тригеров а не в каждом цикле

Попробовал с триггерами, не помогло... исключил свои POU из программы остался только модуль управления питанием модема и конфигурация... при Frame oriented = RTU плк перезагружается. Line Status даже до 2х не успевает дойти у модема.

capzap
07.09.2015, 14:25
Попробовал с триггерами, не помогло... исключил свои POU из программы остался только модуль управления питанием модема и конфигурация... при Frame oriented = RTU плк перезагружается. Line Status даже до 2х не успевает дойти у модема.

интересно, когда кто нить спросит о версиях прошивки и таргета

Nikosoff
07.09.2015, 14:25
В extconf.cfg что нибудь писали?

Джэйсон
07.09.2015, 14:44
интересно, когда кто нить спросит о версиях прошивки и таргета

Binary VERSION 2.14.0
Need Target version 2.10

таргет и использую 2.10

Джэйсон
07.09.2015, 14:46
В extconf.cfg что нибудь писали?

да заменил точку доступа на свою, остальное не менял

Джэйсон
07.09.2015, 14:53
Оказывается модемы ПМ01 необходимо программировать отдельно. Вот только в папке с примерами об этом не написано, хотя тех. поддержка говорит что есть там файлик со списком команд... Кто может помочь с этим? не могу найти его. или extconf он и есть?

Nikosoff
07.09.2015, 14:59
Попробуйте вот это. Это такой же пример Control только слегка модифицированный. Если не ошибаюсь то тоже была проблема с ребутами.

Джэйсон
07.09.2015, 15:02
прошивку сами меняли или поставлено было с этой, если сами сносили ли таргеты и устанавливали их по новой?

да, и по поводу лога, приходит ответ от последовательного порта, после чего идет запись пришли не запрашиваемые данные, у Вас еще какое то устройство к лектусу подключено?

ПЛК новые - прошивка родная, таргет переустановил только сегодня.
К лектусу больше ничего не подключено... видимо сам задал его одновременно как Master и как Slave

Джэйсон
07.09.2015, 15:04
Попробуйте вот это. Это такой же пример Control только слегка модифицированный. Если не ошибаюсь то тоже была проблема с ребутами.

Спасибо. Это я так понимаю надо импортировать в свой проект?

Nikosoff
07.09.2015, 15:07
Так точно.

Nikosoff
07.09.2015, 15:08
Здравствуйте, capzap! Сорри что перебиваю.

capzap
07.09.2015, 15:09
(xx.xxx.xxx.xxx:502 сервер) Tx: [12] 00 04 00 00 00 06 01 03 00 00 00 02
20:23:27.868 [8472] (0.0.0.0:502) Rx: [12] 00 00 00 00 00 06 01 03 00 00 00 01
20:23:27.868 [8472] (0.0.0.0:502)Rx: [8] 01 03 00 00 00 01 84 0Aну вот например кусок,первая строчка: номер пакета отправки четвертый, ответа нет. Во второй и третьей строчке два запроса один для modbusTCP, второй соответственно для modbus RTU/ASCII
может лектус имеет смысл обновить и создать новую конфигурации (ну если лектус новейший то откатится на какую нить старую версию)

capzap
07.09.2015, 15:10
Здравствуйте, capzap! Сорри что перебиваю.

:) да ни че страшного, я Вам уже на спину плюнул

Nikosoff
07.09.2015, 15:18
Спасибо. Это я так понимаю надо импортировать в свой проект?

Было замечено следующее, к примеру:
2:
timer();
IF timer.Q THEN
timer(IN:=FALSE, PT:=T#0s);
.... такая конструкция работает если timer TON или TOF
а если ТР - to reboot.
В Control этот таймер присутствует и как вариант возможные проблемы при компиляции. Не утверждаю а только предполагаю.

Джэйсон
07.09.2015, 15:24
ну вот например кусок,первая строчка: номер пакета отправки четвертый, ответа нет. Во второй и третьей строчке два запроса один для modbusTCP, второй соответственно для modbus RTU/ASCII
может лектус имеет смысл обновить и создать новую конфигурации (ну если лектус новейший то откатится на какую нить старую версию)

Спасибо за советы. Сейчас связки ПЛК(Клиент) - GPRS - Лектус(Сервер) и Лектус(Клиент) - GPRS - ПЛК(Сервер) функционируют и обмен данными идет. Эти варианты нужны были что бы убедить себя в работоспособности оборудования. Проблема связать ПЛК(Клиент) - GPRS - ПЛК(Сервер) и похоже ошибки в программе.

Nikosoff
07.09.2015, 15:42
А что подразумевается под выражением отдельно програмить? http://alex-exe.ru/radio/wireless/gsm-sim900-at-command/ Вам в помощь, но как бы хватает двух команд в extconf.cfg AT+CGATT=1
AT+CGDCONT. Всё остальное делает PPP драйвер. На AT+CGQREQ ответ ERROR. Отключите эхо: ATE0. Хотя и с эхом конектимся. Проблема не в настройках модема.Имхо

Джэйсон
07.09.2015, 16:00
"программировать отдельно" так мне сообщил сотрудник тех.поддержки по телефону

capzap
07.09.2015, 16:03
Спасибо за советы. Сейчас связки ПЛК(Клиент) - GPRS - Лектус(Сервер) и Лектус(Клиент) - GPRS - ПЛК(Сервер) функционируют и обмен данными идет. Эти варианты нужны были что бы убедить себя в работоспособности оборудования. Проблема связать ПЛК(Клиент) - GPRS - ПЛК(Сервер) и похоже ошибки в программе.

если от плк до плк, то в какой из модемов воткнута симка со статическим IP-адресом

Джэйсон
07.09.2015, 16:05
если от плк до плк, то в какой из модемов воткнута симка со статическим IP-адресом

обе симки имеют статические адреса... менял их местами эффект тот же

Джэйсон
08.09.2015, 08:56
Вообщем упражняюсь дальше. Frame oriented должен быть ASCII т.к. плк общается с модемом AT командами. Соответственно при RTU видимо в порт что-то прилетает что вызывает программный сбой и как следствие перезагрузку. Обновил прошивки у плк до 2.15.3, т.к. там были багфиксы для Modbus Master и Slave.

Джэйсон
08.09.2015, 09:28
Решил испробовать на проводном соединении. плк(клиент) - лектус(сервер) и лектус(клиент) - плк(сервер) работают... плк(клиент) - плк(сервер) ошибка 85.

Nikosoff
08.09.2015, 12:37
Вообщем упражняюсь дальше. Frame oriented должен быть ASCII т.к. плк общается с модемом AT командами. Соответственно при RTU видимо в порт что-то прилетает что вызывает программный сбой и как следствие перезагрузку. Обновил прошивки у плк до 2.15.3, т.к. там были багфиксы для Modbus Master и Slave.
День добрый! Ну если мыслить логически то параметр Frame oriented применим для прямого подключения к порту модбас устройств. В случае применения порта в universal network device этот параметр силы не имеет. Это по логике и по принципу работы. ASCII АТ команды модему отдаются для управления модемом и никак параметр Frame oriented не миожет влиять на правила обмена с модемом (ждать таймаута или модбас обвёртки). Почему так с ПЛК происходит, ну хз.

Джэйсон
13.09.2015, 20:29
Время идет, а пляска всё продолжается. С мегафонов качество связи мешает работе... т.к. проекты ПО подключаются к удаленным объектам в других городах, но часто теряется соединение, прерывистые пинги и т.д.
А вот с МТС все еще интереснее, беру исправный проект ПО, указываю IP МТС процесс подключения доходит до LineStatus=3 (МТС подтверждает что коннекция есть), а вот плк вообще ничего не шлёт в модем (проверено прослушкой линии RS485). Причем если подключать модемы к ПК и пробовать управлять AT командами по РЭ, то данные передаются, текстовые конечно, но всё же.
Может кто подсказать после команды AT+CIPSTART выдается CONNECT OK затем через секунд 20 порт закрывается "CLOSED" - это нормально?

Филоненко Владислав
14.09.2015, 10:08
Используйте мегафон. С МТС не работал, но на билайне сложно было настроить, редкая симка подходила.

Джэйсон
14.09.2015, 14:33
Спасибо за ответ. У мегафона долгий и прерывистый пинг.

Джэйсон
13.10.2015, 11:45
Пришлось решить задачу через TCP Connection.