PDA

Просмотр полной версии : Не ясна адресация регистров в ПР 200 согласно документации



alek4322
10.10.2018, 01:12
Необходимо связать две ПР 200 по модбас протоколу, (одна пр-ка мастер, другая слев) так что-бы ведомая пр-ка успевала среагировать на короткий сигнал нажатия кнопки. Как я понимаю есть три способа решения этой задачи: №1 Прочитать входа пр-ки булевскими значениями, № Прочитать маску входов пр-ки целочисленным значением, № Передать значения входов одной пр-ки другой пр-ки через сетевые переменные. Подключил две пр-ки по RS 485 протокол модбас РТУ, задал в мастер устройстве адрес регистра чтения маски входов равный 0x0100 = 256, ведомая пр-ка передала значения своих входов in1 = 1; in2 = 2; in3 = 4; in4 = 8; in5 = 16; in6 = 32; in7 = 64; in8 = 128; вроде всё хорошо, думаю, дай попробую, считать входа побитно и столкнулся с неясной для себя проблемой, дело в том что в документации ПР200 написаны адреса регистров от 0x1000 до 0x1007 39079, что соответствует от 4096 до 4103 и вот что в результате 39080. И ещё что значит в документации вот это 39081 там указаны функции для выходов - только чтения, а записывать выхода, что нельзя? И что это за адреса регистров, вернее, какие нужно задавать адреса регистров в десятичной системе счисления, для того что бы их записать. Заранее благодарен за ответ.

melky
10.10.2018, 10:08
выходы записываются ПРОГРАММОЙ и никак иначе. Если хотите включить выходы по сети у вас должна быть соответствующая программа в ПР для этого.

Ревака Юрий
10.10.2018, 18:12
Необходимо связать две ПР 200 по модбас протоколу, (одна пр-ка мастер, другая слев) так что-бы ведомая пр-ка успевала среагировать на короткий сигнал нажатия кнопки. Как я понимаю есть три способа решения этой задачи: №1 Прочитать входа пр-ки булевскими значениями, № Прочитать маску входов пр-ки целочисленным значением, № Передать значения входов одной пр-ки другой пр-ки через сетевые переменные. Подключил две пр-ки по RS 485 протокол модбас РТУ, задал в мастер устройстве адрес регистра чтения маски входов равный 0x0100 = 256, ведомая пр-ка передала значения своих входов in1 = 1; in2 = 2; in3 = 4; in4 = 8; in5 = 16; in6 = 32; in7 = 64; in8 = 128; вроде всё хорошо, думаю, дай попробую, считать входа побитно и столкнулся с неясной для себя проблемой, дело в том что в документации ПР200 написаны адреса регистров от 0x1000 до 0x1007 39079, что соответствует от 4096 до 4103 и вот что в результате 39080. И ещё что значит в документации вот это 39081 там указаны функции для выходов - только чтения, а записывать выхода, что нельзя? И что это за адреса регистров, вернее, какие нужно задавать адреса регистров в десятичной системе счисления, для того что бы их записать. Заранее благодарен за ответ.

Здравствуйте, если есть необходимость читать битовые значения, то адрес необходимо вычислить разделив на 16, т.е 0x1000=4096/16=256, и дальше 256.0, 256.1 и т.д. Но лучше читать один int, меньше нагрузка на сеть.

alek4322
10.10.2018, 21:50
Здравствуйте, если есть необходимость читать битовые значения, то адрес необходимо вычислить разделив на 16, т.е 0x1000=4096/16=256, и дальше 256.0, 256.1 и т.д. Но лучше читать один int, меньше нагрузка на сеть.

Спасибо за ответ, завтра попробую. Извините за вопрос, но почему в документации сразу не писать адрес в десятичной системе счисления, или хотя бы писать в скобочках пояснения. Просто с этими адресами регистров модбаса, постоянно какая ни будь трабла, не давно пытался подружить ПР200 и вот это 39113, После выяснения реальных адресов модбас (Выясняли чуть ли ни всем миром, и Овеновскиеинженера с техподдержки) в общем капец какой то был, ну да ладно ребята помогли, за что спасибо большое. А началось всё с того что понадобился модуль ввода вывода, ну думаю поищу в интернете, нашёл 39113, думаю как замечательно модуль на 12 Вольт плюс реагирует на 0, а не на плюс 24 Вольта всего за 2000руб модуль ввода-вывода, плюс малогабаритный (тонкий 3 см.), что не маловажно, так как хотел создать щит, как можно тоньше для экономии нержавеющего дорогого металла, просто у Овна модули большие по габаритам и почему то только 24 Вольта, ну или 220 Вольт и реагируют на сигнал плюс 24 Вольта, а не на 0. В общем собрал щит всё подсоединил, адреса регистров китайцы прописали вот 39119 и вот 39120 там оказывается настоящие адреса регистров нужно высчитывать с offset смещением и они получаются совсем другие, ну да ладно как оказалось ни чего сложного конечно, когда знаешь про это и как это делать. Так вот, всё настроил написал программу, пр-ка и модуль связались и всё заработало, только медленно, в смысле иногда, а это 50 на 50, модуль ввода-вывода не чует нажатия кнопки, вернее, неясно, не чует или не передаёт, дело в том что индикационные светодиоды на модуле загораются всегда, а вот передаёт он их или не успевает увидеть, не знаю, не всегда. А вот если кнопку нажимать с удержанием с небольшим, как потом выяснилось 0,2 сек, всё работает замечательно. Инженера Овна сказали что вероятно малоскоростной модуль, я и подумал, да наверное поэтому такой и дешёвый. Ну да ладно, думаю состряпаю электронные модули задержки сигнала на транзисторах, сделал, всё заработало, всё хорошо, но думаю, моя колхозная электронная лепнина ни есть хорошо, думаю возьму и куплю нормальный модуль ввода-вывода у Овна, и нечего что 24 Вольта, начал искать на сайте, на 8 входов и 8 выходов не нашёл, позвонил ребятам в Овен сказали что есть на 12 входов и 8 выходов и стоимость что-то около 8000 руб, ну думаю, а зачем мне дорогие модули ввода-вывода, когда есть ПР200 за 6000 руб. Вот странно как-то модуль ввода-вывода стоит дороже чем ПР200. В общем начал дружить, теперь, две ПР200 между собой одна главная, тобишь Мастер, а другая вместо модуля ввода-вывода, написал программы сконфигурировал всё заработало, только ещё медленней чем с китайской дешёвкой, даже по маске, то есть когда считываю все входа одним целочисленным числом, ну начал играть с конфигурацией менять, таймаут ответа, период опроса, интервал между запросами увеличил скорость обмена максимально до 115200, посмотрим что будет не знаю поможет или нет, ну да ладно что нибудь придумаю. Еще раз благодарю за ответ, что-то я забыл про то что надо делить на 16.

Ревака Юрий
11.10.2018, 10:11
Спасибо за ответ, завтра попробую. Извините за вопрос, но почему в документации сразу не писать адрес в десятичной системе счисления, или хотя бы писать в скобочках пояснения. Просто с этими адресами регистров модбаса, постоянно какая ни будь трабла, не давно пытался подружить ПР200 и вот это 39113, После выяснения реальных адресов модбас (Выясняли чуть ли ни всем миром, и Овеновские инженера с техподдержки) в общем капец какой то был, ну да ладно ребята помогли, за что спасибо большое. А началось всё с того что понадобился модуль ввода вывода, ну думаю поищу в интернете, нашёл 39113, думаю как замечательно модуль на 12 Вольт плюс реагирует на 0, а не на плюс 24 Вольта всего за 2000руб модуль ввода-вывода, плюс малогабаритный (тонкий 3 см.), что не маловажно, так как хотел создать щит, как можно тоньше для экономии нержавеющего дорогого металла, просто у Овна модули большие по габаритам и почему то только 24 Вольта, ну или 220 Вольт и реагируют на сигнал плюс 24 Вольта, а не на 0. В общем собрал щит всё подсоединил, адреса регистров китайцы прописали вот 39119 и вот 39120 там оказывается настоящие адреса регистров нужно высчитывать с offset смещением и они получаются совсем другие, ну да ладно как оказалось ни чего сложного конечно, когда знаешь про это и как это делать. Так вот, всё настроил написал программу, пр-ка и модуль связались и всё заработало, только медленно, в смысле иногда, а это 50 на 50, модуль ввода-вывода не чует нажатия кнопки, вернее, неясно, не чует или не передаёт, дело в том что индикационные светодиоды на модуле загораются всегда, а вот передаёт он их или не успевает увидеть, не знаю, не всегда. А вот если кнопку нажимать с удержанием с небольшим, как потом выяснилось 0,2 сек, всё работает замечательно. Инженера Овна сказали что вероятно малоскоростной модуль, я и подумал, да наверное поэтому такой и дешёвый. Ну да ладно, думаю состряпаю электронные модули задержки сигнала на транзисторах, сделал, всё заработало, всё хорошо, но думаю, моя колхозная электронная лепнина ни есть хорошо, думаю возьму и куплю нормальный модуль ввода-вывода у Овна, и нечего что 24 Вольта, начал искать на сайте, на 8 входов и 8 выходов не нашёл, позвонил ребятам в Овен сказали что есть на 12 входов и 8 выходов и стоимость что-то около 8000 руб, ну думаю, а зачем мне дорогие модули ввода-вывода, когда есть ПР200 за 6000 руб. Вот странно как-то модуль ввода-вывода стоит дороже чем ПР200. В общем начал дружить, теперь, две ПР200 между собой одна главная, тобишь Мастер, а другая вместо модуля ввода-вывода, написал программы сконфигурировал всё заработало, только ещё медленней чем с китайской дешёвкой, даже по маске, то есть когда считываю все входа одним целочисленным числом, ну начал играть с конфигурацией менять, таймаут ответа, период опроса, интервал между запросами увеличил скорость обмена максимально до 115200, посмотрим что будет не знаю поможет или нет, ну да ладно что нибудь придумаю. Еще раз благодарю за ответ, что-то я забыл про то что надо делить на 16.

Медленно, надо смотреть настройки, возможно в этой теме найдете что-то полезное http://www.owen.ru/forum/showthread.php?t=29367. По кнопке, так же не понятно, возможно задан параметр фильтрации на дискретном входе. "реагируют на сигнал плюс 24 Вольта, а не на 0", а какой модуль Вы пытались использовать, в линейке присутствуют модели работающие с n-p-n и p-n-p на 16 и 32 входа (ДН)

Мимоход
11.10.2018, 21:28
выходы записываются ПРОГРАММОЙ и никак иначе. Если хотите включить выходы по сети у вас должна быть соответствующая программа в ПР для этого.

Не факт.
ПРку можно использовать как простой модуль в/в, БЕЗ какой-либо ПРОГРАММЫ
39158

...данном режиме, можно использовать прибор как Modbus slave модуль ввода/вывода. Для этого необходимо предварительно настроить интерфейс связи на Slave режим. В данном режиме доступен опрос входов и запись выходов..

Ревака Юрий
12.10.2018, 09:50
Не факт.
ПРку можно использовать как простой модуль в/в, БЕЗ какой-либо ПРОГРАММЫ
39158

Да, этот режим работает, и выходными реле можно управлять по сети без дополнительных макросов.

melky
12.10.2018, 10:37
Ну и кому нужен ПР200 в режиме глупого модуля В/В ? это скорее как ремонтный вариант, пока не приедет "здоровый" на замену. Только вот понту от этого мало так как придется на момент ожидания переучивать Scada систему управлять этим ПР...

Ревака Юрий
12.10.2018, 11:14
Ну и кому нужен ПР200 в режиме глупого модуля В/В ? это скорее как ремонтный вариант, пока не приедет "здоровый" на замену. Только вот понту от этого мало так как придется на момент ожидания переучивать Scada систему управлять этим ПР...

Я бы не был так категоричен, в определенных случаях, иметь в одном устройстве AI/AO DI/DO более выгодно, чем набирать из отдельных модулей расширения, правда не обязательно это делать именно в режиме XP2, дополнив уст-во логикой, можно получить тоже с более гибкими алгоритмами.

Sokolow_Dmitry
05.12.2018, 12:00
Я бы не был так категоричен, в определенных случаях, иметь в одном устройстве AI/AO DI/DO более выгодно, чем набирать из отдельных модулей расширения, правда не обязательно это делать именно в режиме XP2, дополнив уст-во логикой, можно получить тоже с более гибкими алгоритмами.

А в режиме ПРОГРАММА как по Модбас управлять дискретными выходами ПР200, если в руководстве написано, что возможна запись только сетевых переменных (не булевских)?

Ревака Юрий
05.12.2018, 14:01
А в режиме ПРОГРАММА как по Модбас управлять дискретными выходами ПР200, если в руководстве написано, что возможна запись только сетевых переменных (не булевских)?

Через сетевые переменные, в логике необходимо произвести разложение на биты целого числа полученного по сети, см. макрос INT_BOOL.

LGM
26.10.2022, 17:09
Добрый день!
Кто нибудь объясните для чайника, читаю руководства и данную тему, но вникнуть пока не получается.
Есть пр200 которая снимает данные с датчиков давления 4-20мА. Хочу видеть эти значения в пр102 через RS485.
Сделал сетевую переменную в обоих проектах в пр200(мастер) и пр102(слейв) с одним адресом. Подумал что дальше все само заиграет. Дайте пример программ и настроек приборов для подобного подключения. А то не разберусь никак что опрашивать на что делить, куда это записывать..
пр200
63385
63386
пр102
63387
63388

melky
26.10.2022, 17:25
LGM в слейве порядок не настраивается, он 2301 (3412) как вам удобнее. то есть по идее поставить галку старшим регистром вперед и все на стороне ПР102

Сергей0308
26.10.2022, 18:36
Добрый день!
Кто нибудь объясните для чайника, читаю руководства и данную тему, но вникнуть пока не получается.
Есть пр200 которая снимает данные с датчиков давления 4-20мА. Хочу видеть эти значения в пр102 через RS485.
Сделал сетевую переменную в обоих проектах в пр200(мастер) и пр102(слейв) с одним адресом. Подумал что дальше все само заиграет. Дайте пример программ и настроек приборов для подобного подключения. А то не разберусь никак что опрашивать на что делить, куда это записывать..
пр200
63385
63386
пр102
63387
63388

Так какой смысл мудрить, передавайте целочисленной переменной, одним регистром:

63390

petera
26.10.2022, 18:42
Добрый день!
Кто нибудь объясните для чайника, читаю руководства и данную тему, но вникнуть пока не получается.
Есть пр200 которая снимает данные с датчиков давления 4-20мА. Хочу видеть эти значения в пр102 через RS485.
Сделал сетевую переменную в обоих проектах в пр200(мастер) и пр102(слейв) с одним адресом. Подумал что дальше все само заиграет. Дайте пример программ и настроек приборов для подобного подключения. А то не разберусь никак что опрашивать на что делить, куда это записывать..
пр200
63385
63386
пр102
63387
63388
Все советы хороши, но...

Слейв имеет адрес 16,
63391

https://owen.ru/forum/attachment.php?attachmentid=11954&d=1392750964
а мастер тупо долбится по адресу 15
63392

LGM
27.10.2022, 10:52
melky

petera
Помогло! Спасибо!
До этого только с трмов снимал в скаду, там имена уникальные должны были быть, здесь выходит всем слейвам надо адрес мастера прописывать.
Если не затруднит в целях ликвидации безграмотности почему старшим регистром вперед?


Сергей0308

Так какой смысл мудрить, передавайте целочисленной переменной, одним регистром:
Без примера в программе ничего не ясно, но очень интересно)

petera
27.10.2022, 11:00
Помогло! Спасибо!
До этого только с трмов снимал в скаду, там имена уникальные должны были быть, здесь выходит всем слейвам надо адрес мастера прописывать.


Каждый слейв должен иметь уникальный адрес, у мастера никакого собственного адреса нет!

Для каждого устройства в настройках мастера указывается адрес конкретного устройства, например на картинке - устройство с адресом 15(естественно такое устройство должно быть)
В настройках мастера может быть несколько устройств, каждое должно иметь свой адрес(существующий)