PDA

Просмотреть полную версию : Работа с ОВЕН MB110-244.2A


Arsie
04.06.2012, 15:43
Пример работает на заводских настройках модуля MB110-244.2A, выполнен для контроллера SMH-2Gi, но можно сконвертировать в проект для любого контроллера.

Карта памяти внутри проекта. Описание подключения и настроек внутри макроса.

dp38
03.05.2017, 17:30
Добрый день. А есть такой же, только с перламутровыми пуговицами?)
Не могу одолеть МВ110-224.16Д. Даже с Сенекой сам разобрался, а тут не пойму в чём дело. Нужно всего-то сделать два входа для TRIM5: 9-й и 12-й. Не сочтите за наглость, просто с MODBUSом делов иметь не доводилось.
Заранее спасибо.

Спасибо!) Разобрался! Оказывается, нужно было ловить сигнал int, а я, по наивности, ждал bool. Получил маску, преобразовал её в Reg16-bits, и на соответствующем выходе получил долгожданную единичку!) Ох уж этот ОВЕН!)

Да там не программа, только один блок. В карте памяти устройства указать тип Integer и адрес 51 - это карта состояния всех входов. Полученный результат заводим в блок reg16->bits, а уж он-то как раз и показывает, на каком из входов есть сигнал.

LordN
03.05.2017, 20:37
кому как, а я взял за правило, что при любой возможности битовые переменные следует брать как минимум байтом, а лучше сразу четырьмя, long-ом. экономия траффика чудовищная, особенно если битовых переменных не одна и не две и, кроме этого, экономятся теги у скад.

Gromov
04.05.2017, 02:42
В случаях с модулями ОВЕН не получится прочитать битовые переменные отдельно, т.к. они лежат каждая в своём регистре и идут не подряд. Но хорошо, что у них есть специальный регистр, в котором хранится битовая маска состояний входов.

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

Arsie
04.05.2017, 10:55
кому как, а я взял за правило, что при любой возможности битовые переменные следует брать как минимум байтом, а лучше сразу четырьмя, long-ом. экономия траффика чудовищная, особенно если битовых переменных не одна и не две и, кроме этого, экономятся теги у скад.

Лоджик это делает автоматически, если разрешены групповые запросы.

LordN
04.05.2017, 11:04
Лоджик это делает автоматически, если разрешены групповые запросы.

он что, собирает в int или long даже если задан тип bool? или я что-то не понимаю в модбасе

Arsie
04.05.2017, 11:17
он что, собирает в int или long даже если задан тип bool? или я что-то не понимаю в модбасе

Что-то типа того. Не int/long, т.к. это для модбаса недопустимо, но все булы уходят/приходят единственной посылкой. Получается "Типа long".

Только этот "типа лонг" длиной до 256 бит. Это гораздо эффективнее :ico-shama

LordN
04.05.2017, 11:21
Что-то типа того. Не int/long, т.к. это для модбаса недопустимо, но все булы уходят/приходят единственной посылкой. Получается "Типа long".

Только этот "типа лонг" длиной до 256 бит. Это гораздо эффективнее :ico-shama

а, вот вы о чем..
когда адреса идут подряд - это понятно.
:umnik2:

Arsie
04.05.2017, 11:42
а, вот вы о чем..
когда адреса идут подряд - это понятно.
:umnik2:

Ну так сбор в инт/лонг - это разве не то же самое?)) Биты-то подряд идут)

BraS
18.06.2017, 22:12
Да бы не плодить темы, напишу тут.

Это для всего семейства ОВЕН МХ110 нужно проделывать "перевороты"?
Просто читаю руководство для МЭ110-220, который измеряет электрические величины.
Так там есть отдельные регистры для передачи значения в формате long ( целая часть величины ) и есть в формате float ( я так понимаю, что это и есть real? )
Допустим, мне не нужны знаки после запятой, я могу взять данные в формате long и просто вывести их на экран?

Gromov
19.06.2017, 10:51
Всё зависит от того, какие данные лежат в лонге. Быть может, там то же самое, со знаками после запятой, но умноженное на, например, тысячу. Вы прочитайте оба значения и выбирайте то, с которым работать удобнее. По крайней мере, я бы так сделал.

mr.bug
22.08.2017, 12:46
Добрый всем день!

Хочу поделиться опытом соединения SMH2g с ОВЕН MB110-224.16Д, мб кому-то пригодится.

Как уже неоднократно писалось, состояние всех входов у ОВЕНа записывается в одной переменной по адресу 0034 (hex). Modscan32 на отлично видел эту переменную и отображал ее изменение. Но SMH упорно не хотел ее читать. Вытащил на поляну еще 2 соседние переменные с адресом 0033 и 0035 - результата не было, все 3 переменные показывали 0. Попробовал для каждой переменной выбрать 3 типа входа: Rin, Rout, Rin/out - результат тот же - только 0.
Параметры сети перепроверялись 100500 раз, у SMH и ОВЕНа все совпадает, но связи нет.

Обратился в поддержку: По удаленке создали пустой проект, вытащили на поляну 3 переменные по адресу 0033 Rin, Rout, Rin/out (оказывается для smlogic адрес регистра нужно уменьшать на 1, т.к. счет начинается не с 1 а с 0)- все заработало, на экране контроллера увидели состояние входов ОВЕНа. Руслан, еще раз спасибо!

Но до этого я же использовал 0033 адрес и он тоже показывал 0!!! Причина оказалась в периоде опроса переменной в карте памяти: Дабы не забивать сеть, я выставил там значение 1000, а в пустом проекте было по умолчанию 100. Со значением 100 опрос идет, с 500 или 1000 - почему-то нет. В общем, выставил у себя в проекте частоту опроса 100 и все заработало!

Arsie
22.08.2017, 14:38
Добрый всем день!
Хочу поделиться опытом соединения SMH2g с ОВЕН MB110-224.16Д, мб кому-то пригодится.



Этот опыт расписан у нас в справке, заодно там же объяснено, почему у овена адрес увеличен на единичку.

http://dl.segnetics.com/WebHelp/SMLogix/example_work_with_invertor.htm

mr.bug
23.08.2017, 10:39
Эх, вот говорил один товарищ что где-то был пример с частотником в хелпе, но так и не смог его найти. По запросу Modbus техническая инфа выдается, а вот на этот пример выхода нет. Нужно ручками в дереве хелпа до него дойти.
В принципе, этого и предыдущего поста (как и всей головной боли с этим модулем) бы не было, если бы при периоде опроса в 500 или 1000 переменные бы читались. А они стали читаться только при периоде в 100... Почему?

Arsie
23.08.2017, 11:05
Эх, вот говорил один товарищ что где-то был пример с частотником в хелпе, но так и не смог его найти. По запросу Modbus техническая инфа выдается, а вот на этот пример выхода нет. Нужно ручками в дереве хелпа до него дойти.
В принципе, этого и предыдущего поста (как и всей головной боли с этим модулем) бы не было, если бы при периоде опроса в 500 или 1000 переменные бы читались. А они стали читаться только при периоде в 100... Почему?

Думаю, это вопрос к программистам Овена.

Если бы было малО быстродействие модуля, то я бы ожидал обратного: чем быстрее опрос, тем хуже. А тут вообще не поддаётся логике.

Хотя это не первое изделие этой компании, софт которого слабо поддаётся логике))