1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Modbus регистры и WinCC Explorer

Модератор: Глоб.модераторы

Ответить
Аватара пользователя

Автор темы
iluha
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 27 июл 2020, 12:40
Имя: Илья
Страна: Узбекистан
город/регион: Ташкент
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Modbus регистры и WinCC Explorer

Сообщение iluha »

Может топик избитый, но всё же...

Имеем на борту ПЛК шнайдер Modicon M241.
Вся логика и управление на нем.

В проекте следующие типы сигналов:

%MX0.4 bool - сигнал общей аварии.
%MW139 int - счетчик наработки часов насоса.
%MD400 dint - давление на входе.
%MD805 real - уровень в емкости.

Мне всю эту кухню нужно прочитать в WinCC Explorer, записать это в TagManagement.

У меня получилось с аналоговыми такая штука:

В TagManagement WinCC Explorer добавляю драйвер ModBus TCP/IP.
Все сигналы сажаю через 4x holding регистр %MW.

%MW139 int - идет с таким же адресом без всяких преобразований.
%MD400 dint - умножаю на два, получаю адрес 800.
%MD805 real - умножаю на два и плюс 1, получаю адрес 1611.

Вот в таком режиме - всё читается на ура.

Что делать с %MX0.4 bool?
Пробовал также через 4x holding регистр %MW, но статуса бита не вижу.

Судя по описанию областей памяти Модбас мы имеем основных 4 регистра:

0x Coils Биты, доступные для чтения и записи
1x Discrete Inputs Биты, доступные только для чтения
3x Input Registers Регистры, доступные только для чтения 04 (0x04) Read Input Registers
4x Holding Registers Регистры, доступные для чтения и записи

И по-идее, я могу работать для BOOL как с группой 0x Coils / 1x Discrete Inputs,
для INT, DINT, REAL с группами 3x Input Registers / 4x Holding Registers.

Разница только в доступе на чтение/запись.

Но почему-то работает в моем случае только Holding Registers.

Осталось победить BOOLки.

Может кто подсобит, благодарствую.

makesstr
освоился
освоился
Сообщения: 222
Зарегистрирован: 19 сен 2019, 10:09
Имя: Макс
Страна: Россия
город/регион: Славянск-на-Кубани
Благодарил (а): 5 раз
Поблагодарили: 38 раз

Modbus регистры и WinCC Explorer

Сообщение makesstr »

По логике вещей, раз маркеры памяти вы получили в 4х, то и MX0.4 bool будет там же.
Попробуйте прогой Modbus Pool, ей можно сразу таблицу регистров читать, очень удобно. Битом поморгаете и найдете его без проблем.
Еще встречался с тем моментом что в WinCC нумерация битов в байте обратная (по крайней мере если сравнивать с Modbus Pool).
WinCC 7.4 SP1 Upd15, Step5.6
Аватара пользователя

Автор темы
iluha
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 27 июл 2020, 12:40
Имя: Илья
Страна: Узбекистан
город/регион: Ташкент
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Modbus регистры и WinCC Explorer

Сообщение iluha »

makesstr писал(а): 27 янв 2022, 08:19 По логике вещей, раз маркеры памяти вы получили в 4х, то и MX0.4 bool будет там же.
Вот ведь заковыка, я тоже понимаю, что %MX0.4 бит должен "на ура" читаться в Holding Registers. Но не читается ведь.
Мне тут народ еще посоветовал сначала слово целиком прочитать, поморгать битом и посмотреть как изменяется слово.
Но вопрос же остался: как и какой адрес указывать, он ведь гад с нуля начинается!?
makesstr писал(а): 27 янв 2022, 08:19 Попробуйте прогой Modbus Pool, ей можно сразу таблицу регистров читать, очень удобно. Битом поморгаете и найдете его без проблем.
Еще встречался с тем моментом что в WinCC нумерация битов в байте обратная (по крайней мере если сравнивать с Modbus Pool).
Т.е. это как?

makesstr
освоился
освоился
Сообщения: 222
Зарегистрирован: 19 сен 2019, 10:09
Имя: Макс
Страна: Россия
город/регион: Славянск-на-Кубани
Благодарил (а): 5 раз
Поблагодарили: 38 раз

Modbus регистры и WinCC Explorer

Сообщение makesstr »

Ну и модбас регистры с нуля начинаются 40001 - нулевой регистр.
[+]
Т.е. это как?
- что как?
WinCC 7.4 SP1 Upd15, Step5.6
Аватара пользователя

Автор темы
iluha
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 27 июл 2020, 12:40
Имя: Илья
Страна: Узбекистан
город/регион: Ташкент
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Modbus регистры и WinCC Explorer

Сообщение iluha »

Пишу чисто для заметки на будущее, вдруг кто-то столкнется с тем же.

Нулевой байт/слово, к примеру с адресом бита %MX0.4, в WinCC Explorer не читается.
WinCC Explorer вообще не видит WORD с адресом 0, никак, ни с каким типом данных и адаптацией.

Пришлось в проекте ПЛК дублировать значение в переменную с другим адресом.
Все битовые статусы у меня были организованы на 0 байте.
Те, из них, которые мне понадобились для скады, я сдублировал, а.и.:

Значение статуса бита, которое ранее записывалось в %MX0.4, я продублировал еще и в %MX6.0.
Т.о. получилось, что бит %MX6.0 я могу прочитать на скаде, как WORD с адресом 3. (см. приложенную картинку "Регистры-ModBus.jpg")
Регистры-ModBus.jpg
Да, я резервирую слово целиком ради одного бита, но так у меня получилось на данном этапе.

В TagManagement я указываю сигнал как SignalName, c типом данных FLOAT, адаптацией Float-to-UnsignedWord, и адресом Holding-регистра MW3.
В объекте Graphic Designer-а я указываю этот тег (word), но в setting-гах (адаптации) указываю как BOOL, и у меня отрабатывает нужная мне единичка.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5790
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 673 раза
Поблагодарили: 841 раз

Modbus регистры и WinCC Explorer

Сообщение Ryzhij »

iluha писал(а): 27 янв 2022, 14:52Т.е. это как?
У Модбаса от Сименс свой неповторимый свопинг.
iluha писал(а): 10 фев 2022, 11:23 Нулевой байт/слово, к примеру с адресом бита %MX0.4, в WinCC Explorer не читается.
iluha писал(а): 25 янв 2022, 06:16 %MD805 real - умножаю на два и плюс 1, получаю адрес 1611.
А при чтении нулевого слова почему единичку к адресу не добавили?
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
Аватара пользователя

Автор темы
iluha
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 27 июл 2020, 12:40
Имя: Илья
Страна: Узбекистан
город/регион: Ташкент
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Modbus регистры и WinCC Explorer

Сообщение iluha »

Я же гаварю, у меня "0" не видит.
Когда добавляю эдиничку, - получаю совсем другую область памяти.
Я не знаю почему так в моем случае.

Когда ПЛК Модикон отправляет адреса битов с нулевым байтом - HMI шнайдеровская читает их как есть.
Видимо по какому-то своему внутреннему распределению или преобразованию.

Но, когда мне нужно отправить это на внешний ОРС, тогда вот такие пляски получаются.

LexSL
освоился
освоился
Сообщения: 208
Зарегистрирован: 16 дек 2011, 15:13
Имя: Алексей
Страна: Россия
Благодарил (а): 67 раз
Поблагодарили: 53 раза

Modbus регистры и WinCC Explorer

Сообщение LexSL »

iluha писал(а): 10 фев 2022, 11:23 В TagManagement я указываю сигнал как SignalName, c типом данных FLOAT, адаптацией Float-to-UnsignedWord, и адресом Holding-регистра MW3.
А вот это зачем? в смысле адаптация FloatToXXX? Вы же читаете регистр? регистр есть слово - word : 16 bit.
Тег должен быть Word,если вы хотите доступ к битам получить.

И далее:
iluha писал(а): 10 фев 2022, 11:23 В объекте Graphic Designer-а я указываю этот тег (word), но в setting-гах (адаптации) указываю как BOOL, и у меня отрабатывает нужная мне единичка.
Какие такие setting (адаптации) в Graphic Designer?
Аватара пользователя

Автор темы
iluha
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 27 июл 2020, 12:40
Имя: Илья
Страна: Узбекистан
город/регион: Ташкент
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Modbus регистры и WinCC Explorer

Сообщение iluha »

Да, достаточно указать DataType: Unsigned 16-bit value и Format Adaptation: WordToUnsignedWord.

Для графического объекта ГрафикДизайнера есть вкладка Tag Animation.
В ней указываешь с каким тегом связать объект и там же указываешь тип данных для этого тега.
Вот в нем можно для WORD-тега указать поведение объекта, как будто работаешь с типом данных BOOL, и будет работать как битовый адрес.
Аватара пользователя

Автор темы
iluha
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 27 июл 2020, 12:40
Имя: Илья
Страна: Узбекистан
город/регион: Ташкент
Благодарил (а): 1 раз
Поблагодарили: 7 раз

Modbus регистры и WinCC Explorer

Сообщение iluha »

iluha писал(а): 11 фев 2022, 20:02 Для графического объекта ГрафикДизайнера есть вкладка Tag Animation.
В ней указываешь с каким тегом связать объект и там же указываешь тип данных для этого тега.
Вот в нем можно для WORD-тега указать поведение объекта, как будто работаешь с типом данных BOOL, и будет работать как битовый адрес.
tag-animation.PNG
У вас нет необходимых прав для просмотра вложений в этом сообщении.

dvsyut
здесь недавно
здесь недавно
Сообщения: 12
Зарегистрирован: 26 фев 2019, 10:53
Имя: Денис
Благодарил (а): 2 раза

Modbus регистры и WinCC Explorer

Сообщение dvsyut »

Добрый день. Тоже столкнулся с непонятной адресацией bool значений. выяснив вот, что. Есть у меня модуль цифровых входов/выходов.
В мануале по устройству написано, что чтение входов - регистр 0, чтение/запись выходов - регистр 100. В WinCC создаю два тега. Один чтение входа 0.0 (Binary Tag 3x400001.16), другой для выхода (Binary Tag 3x400101.16).

Что бы обратиться к нужному регистру нужно +1 к адресу (0->1, 100->101), а вот что бы до нужного бита достучаться, надо зеркально обратиться к нему. (первый- это последний). То что добавлять 1 адресу это я где-то видел в документациях по модбасу, а вот почему все перевернуто не знаю, но факт остается фактом. Или это особенность, какая то SIEMENS? Может поделитесь ссылкой на документацию, где это описано?

Изображение
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2471
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 2121 раз
Поблагодарили: 208 раз

Modbus регистры и WinCC Explorer

Сообщение keysansa »

Ryzhij писал(а): 10 фев 2022, 12:14 У Модбаса от Сименс свой неповторимый свопинг.
Не только у Siemens. Многие производители таким страдают.

Отправлено спустя 2 минуты 24 секунды:
dvsyut писал(а): 01 июн 2022, 09:50 То что добавлять 1 адресу это я где-то видел в документациях по модбасу, а вот почему все перевернуто не знаю, но факт остается фактом. Или это особенность, какая то SIEMENS?
Контроллеры обычно отдают регистры так, как они физически расположены в памяти. У разных процессоров способ расположения разный. Поэтому, в настройках Modbus часто есть настройки типа LSB-MSB/MSB-LSB, ну, и биты, в памяти тоже по разному хранятся.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5790
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 673 раза
Поблагодарили: 841 раз

Modbus регистры и WinCC Explorer

Сообщение Ryzhij »

keysansa писал(а): 02 июн 2022, 18:25 Контроллеры обычно отдают регистры так, как они физически расположены в памяти. У разных процессоров способ расположения разный. Поэтому, в настройках Modbus часто есть настройки типа LSB-MSB/MSB-LSB, ну, и биты, в памяти тоже по разному хранятся.
Контроллер, если кто не знает, работает по программе. :ext_secret: Какой фирмваре в него производитель воткнул, так он и оригинальничает.
И к ФИЗИЧЕСКОМУ расположению данных в памяти это точно никакого отношения не имеет. Процессор об этом и знать не знает. Для него важно лишь взять данные оттуда, куда их положили. Однозначность важна. И всё.
А как конструктор проводники шины адреса/данных переплёл при разводке платы вааще не принципиально. Как удобно, так и делалют.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2471
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 2121 раз
Поблагодарили: 208 раз

Modbus регистры и WinCC Explorer

Сообщение keysansa »

Ryzhij писал(а): 03 июн 2022, 07:59 Какой фирмваре в него производитель воткнул, так он и оригинальничает.
И к ФИЗИЧЕСКОМУ расположению данных в памяти это точно никакого отношения не имеет.
Полностью согласен. Но из-за, как я думаю, экономии, по факту происходит, как я написал.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5790
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 673 раза
Поблагодарили: 841 раз

Modbus регистры и WinCC Explorer

Сообщение Ryzhij »

keysansa писал(а): 04 июн 2022, 10:49 Но из-за, как я думаю, экономии, по факту происходит, как я написал.
Когда производитель выпускает одно дешёвое нестандартное изделие, это может считаться "экономией". А когда целый ряд моделей и устройств различного назначения, совместимых только между собой - это называется иначе.
"Жлобством" и "злоупотреблением" положением на рынке.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2471
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 2121 раз
Поблагодарили: 208 раз

Modbus регистры и WinCC Explorer

Сообщение keysansa »

Ryzhij писал(а): 05 июн 2022, 18:23 Когда производитель выпускает одно дешёвое нестандартное изделие, это может считаться "экономией".
А потом, на этого производителя начинают смотреть другие производители, и понеслось...
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5790
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 673 раза
Поблагодарили: 841 раз

Modbus регистры и WinCC Explorer

Сообщение Ryzhij »

Пока хотя бы 15% рынка не захватишь, хоть обсмотрись!
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2471
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 2121 раз
Поблагодарили: 208 раз

Modbus регистры и WinCC Explorer

Сообщение keysansa »

Ryzhij писал(а): 05 июн 2022, 18:31 Пока хотя бы 15% рынка не захватишь, хоть обсмотрись!
Лиха беда - начало...
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Ответить

Вернуться в «WinCC»