PDA

Просмотр полной версии : Проверка связи Ethernet ПЛК100



OwenFUN
03.03.2010, 16:54
Может быть я чей-то клон, но поиск результатов не дал.

Два ПЛК100 обшаются по NetVarUDP.
Подскажите как в программе проверить наличие связи между ними. Можно ли судить о наличии связи по сетевым переменным? Или надо syslibcom?

Да, и еще. При цикличиском опросе по 485 модбасрту выключенных устройств считывает ФФинвалид. Как сделать чтоб если дивайс выключен то ПЛК его не опрашивает, или как это сбросить программно?

Николаев Андрей
03.03.2010, 18:22
по Udp - не знаю - это надо пролог спросить. скорее всего какие то флаги есть.
по второму - надо программно отслеживать опрашивается или нет. и принимать соответствующее решение.

DARNER
03.03.2010, 19:37
по Udp думаю надо держать одну сетевую переменную чтения в логической единице и если она стала ноль, то значит нет связи.

OwenFUN
04.03.2010, 02:33
DARNER:

по Udp думаю надо держать одну сетевую переменную чтения в логической единице и если она стала ноль, то значит нет связи.

Я так и делаю, но на мой взгляд ето как-то неправильно???

Николаев Андрей

по Udp - не знаю - это надо пролог спросить. скорее всего какие то флаги есть.
по второму - надо программно отслеживать опрашивается или нет. и принимать соответствующее решение.

Это как? Если одно устройство не ответило N-раз, то выключаем опрос этого устройства, это понятно. А если устройство опять включат и его опрос надо возобновить? Может сделать чтоб опрос возобновлялся через промежуток времени, если опять не отвечает то опять отклюкаем на промежуток времени? Опять как-то коряво получается.

Терзают сомнения что если постоянно вкл/выкл опрос, ПЛК100 этого не выдержит, зависнет там что-нибудь. Не дай бог конечно, но че-то очкую я. Потому что если он выйдет из строя и случится авария, то я налипну материально на нормальную сумму(((

DARNER
04.03.2010, 06:49
DARNER:


Я так и делаю, но на мой взгляд ето как-то неправильно???

....

главное чтобы было надежно...о других способах я не нашел инфы

Flomaster
04.03.2010, 09:46
В свое время тоже был озадачен таким вопросом.
Здесь (http://www.owen.ru/forum/showthread.php?t=425&highlight=Ping+%CF%CB%CA%F5%F5%F5) можете найти пример пинга ПЛК. Я брал этот пример за основу, затем проверял на действующем оборудовании. Всё работало замечательно.

Николаев Андрей
04.03.2010, 10:09
а как вы представляете себе, что контроллер должен знать включен модуль или нет??? что за бред?
если так критично - заведите питание модуля на промежуточную реле, и с неё на дискретный вход контроллера. есть сигнал на входе - опрашивайте, нет - не опрашивайте.

DARNER
04.03.2010, 13:07
...
Это как? Если одно устройство не ответило N-раз, то выключаем опрос этого устройства, это понятно. А если устройство опять включат и его опрос надо возобновить? Может сделать чтоб опрос возобновлялся через промежуток времени, если опять не отвечает то опять отклюкаем на промежуток времени? Опять как-то коряво получается.

Терзают сомнения что если постоянно вкл/выкл опрос, ПЛК100 этого не выдержит, зависнет там что-нибудь. Не дай бог конечно, но че-то очкую я. Потому что если он выйдет из строя и случится авария, то я налипну материально на нормальную сумму(((

странные какие-то рассуждения...зачем что-то отключатьто??? если пропадает связь с модулем об этом появляется информация в соотвествующем модуле (last_adress и last error)....поищите по форуму ..эта тема уже поднималась.

OwenFUN
04.03.2010, 15:05
Почему у меня сетевые переменные не обнуляются при выключении одного из плк?? Разве они где то сохраняются:confused: Мне надо чтобы они обнулялись при обрыве связи, а они обнуляются только после reset. А затем когда включаю питание обмен восстанавливается.


В свое время тоже был озадачен таким вопросом.
Здесь (http://www.owen.ru/forum/showthread.php?t=425&highlight=Ping+%CF%CB%CA%F5%F5%F5) можете найти пример пинга ПЛК. Я брал этот пример за основу, затем проверял на действующем оборудовании. Всё работало замечательно.

Завтра попробую.

А что кроме ветки про пинг больше никто с этим не сталкивался? Странно, по моему вопрос актуальный. Если есть пример скиньте на почту ria08_83@mail.ru Заранее благодарен.

Flomaster
04.03.2010, 16:36
так в той ветке и есть пример:-)
можно считать количество ответов от другого плк и делать вывод, есть с ним связь или нет.

DARNER
04.03.2010, 16:52
Почему у меня сетевые переменные не обнуляются при выключении одного из плк?? ....

вы плк как выключаете? ;)
вы учитаваете у него есть "запас хода" при пропадании питания?
также необходимо правильно настроить списки сетевых переменных.

OwenFUN
05.03.2010, 01:55
вы плк как выключаете? ;)
вы учитаваете у него есть "запас хода" при пропадании питания?
также необходимо правильно настроить списки сетевых переменных.

плк включены через свич, я выключал и его в том числе. Все равно не обнуляются.
Блин объясните по нормальному как сделать чтобы сетевые переменные сбрасывались при обрыве связи. Где галочку надо поставить?

Вот не нашел что значит галочка request on boot up??? Это случаем ни оно? В документации о ней видимо забыли.

Flomaster
05.03.2010, 05:05
у меня установлена эта галочка.
используйте пинг. если плк не отвечает, значит связи нет. а переменные в этом случае можно обнулить "руками".
кстати сказать, я не знаком с внутренним механизмом обмена данными посредством сетевых переменных, но с чего вы взяли, что они должны обнуляться при потере связи?

OwenFUN
05.03.2010, 09:44
А представь что у тебя распределленная система управления где параметры меняются в течении времени. У тебя пропала связь ну мало провод в обрыве. А твоя скада показывает значение которое уже изменилось в 10 раз. Ну а дальше сам знаешь что будет)) Налипалово на бабки)))

Так что разработчики кто нить может объяснить что такое request on boot up?

Flomaster
05.03.2010, 10:30
я что-то не понял, причем здесь обмен данными между 2 плк100 и распределенная система со скадой?
вы задали вопрос как отследить обрыв связи - я вам дал направление в котором копать. нет ответа при пинге - значит обрыв. или я что-то неправильно понимаю?

DARNER
05.03.2010, 11:11
я что-то не понял, причем здесь обмен данными между 2 плк100 и распределенная система со скадой?
вы задали вопрос как отследить обрыв связи - я вам дал направление в котором копать. нет ответа при пинге - значит обрыв. или я что-то неправильно понимаю?

да гонит он на овен не разобравшись в документации и не потыкавшись в примерах....просто хочет чтобы дали пример готовый ничего руками не делая и головой не думая....блин пора тему походу закрывать,т.к. автор темы сам уводит не в ту сторону.

Flomaster
05.03.2010, 12:29
просто хочет чтобы дали пример готовый ничего русками не делая и головой не думая....

вполне возможно:)
но в той ветке, на которую я дал линк, есть пример. с минимальными доработками его можно использовать в своем проекте. я в свое время так и сделал.

И надо отдать должное, в настоящее время в этой (http://www.owen.ru/forum/showthread.php?t=551) ветке скопилось очень много полезных примеров.
Когда я начинал осваивать ОВЕН в 2007 году, эта ветка только зарождалась, и всё приходилось делать методом чтения документации, тыка и смекалки :-).

DARNER
05.03.2010, 12:43
...
Когда я начинал осваивать ОВЕН в 2007 году, эта ветка только зарождалась, и всё приходилось делать методом чтения документации, тыка и смекалки :-).

да если бы тех.поддержка овеновская была рублем (реальными деньгами) заинтересована изначально, там бы каждый день появлялись новые примеры и решения многих насущных проблем и задач.
+ еще и различные реализации протоколов для подключения самых разнообразных устройств типа счетчиков, расходомеров, тепловычислителей и прочего разнообразия.

Flomaster
05.03.2010, 15:26
да если бы тех.поддержка овеновская была рублем (реальными деньгами) заинтересована изначально, там бы каждый день появлялись новые примеры и решения многих насущных проблем и задач.


не могу с вами не согласиться. но и на сегодняшний день благодаря ветке "примеры программ..." уже можно найти решение множества проблем, а также понять сам принцип работы с тем или иным оборудованием. а дальше уже можно и свою задачу успешно решить. было бы желание :) кстати, если я правильно помню, в ветку добавляются примеры программ не только самой техподдержкой, но и пользователями продукции овен. так что пользуясь случаем, всем огромное спасибо!:)

OwenFUN
05.03.2010, 17:02
А про пинг это да. Пока другого выхода не вижу. 9 марта попрубую. Если получится выложу пример мож кому пригодится))

Про документацию могу сказать что в целом она не плохая.Но...
Очень много упущений и недоработок. Я прочитал все что есть и не один раз. Плюс курю форум. Все равно этого мало. request on boot up для примера, что же вы раз такие умные не можете сказать что это такое и как оно работает или где это увидеть. в документе про сетевые переменные этого нет. И попробуйте на это возразить.
ИМХО лет через десять ОВЕН заявит о себе как о производителе надежного и доступного оборудования. А пока только второе.

Филоненко Владислав
05.03.2010, 17:14
зачем вам пинг? обмен двусторонний.
зациклить 2 инкрементирующихся счетчика и при расхождении между текущим и закольцованным больше дельта - связь потеряна.
доп. бонус - контроль задержек при обмене, для диагностики.
и все штатными средствами.

DARNER
05.03.2010, 17:29
зачем вам пинг? обмен двусторонний.
зациклить 2 инкрементирующихся счетчика и при расхождении между текущим и закольцованным больше дельта - связь потеряна.
доп. бонус - контроль задержек при обмене, для диагностики.
и все штатными средствами.

спасибо за конструктивное предложение....попробуем на практике.

OwenFUN
10.03.2010, 02:25
Вопрос про пинг. Объясните синтаксис

sock_adr.sin_addr:=16#0A00065F
в десятичной системе это будет 167773791. Мне непонятно как задать IP ну например 192.168.50.11. Это будет 728А9613 ???

Вопрос про счетчики: один счетчик на одном плк второй на другом?

Филоненко Владислав
10.03.2010, 10:04
каждое число, разделенное точкой - отдельный байт в Ip. а не вместе

magirus
10.03.2010, 17:06
0A=10
00=00
06=06
5F=95
итак ваш ип 10.0.6.95
192.168.50.11=с0a8320b