- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Modbus регистры и WinCC Explorer
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 36
- Зарегистрирован: 27 июл 2020, 12:40
- Имя: Илья
- Страна: Узбекистан
- город/регион: Ташкент
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
Modbus регистры и WinCC Explorer
Может топик избитый, но всё же...
Имеем на борту ПЛК шнайдер 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ки.
Может кто подсобит, благодарствую.
Имеем на борту ПЛК шнайдер 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ки.
Может кто подсобит, благодарствую.
-
- освоился
- Сообщения: 222
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 38 раз
Modbus регистры и WinCC Explorer
По логике вещей, раз маркеры памяти вы получили в 4х, то и MX0.4 bool будет там же.
Попробуйте прогой Modbus Pool, ей можно сразу таблицу регистров читать, очень удобно. Битом поморгаете и найдете его без проблем.
Еще встречался с тем моментом что в WinCC нумерация битов в байте обратная (по крайней мере если сравнивать с Modbus Pool).
Попробуйте прогой Modbus Pool, ей можно сразу таблицу регистров читать, очень удобно. Битом поморгаете и найдете его без проблем.
Еще встречался с тем моментом что в WinCC нумерация битов в байте обратная (по крайней мере если сравнивать с Modbus Pool).
WinCC 7.4 SP1 Upd15, Step5.6
-
- здесь недавно
- Сообщения: 36
- Зарегистрирован: 27 июл 2020, 12:40
- Имя: Илья
- Страна: Узбекистан
- город/регион: Ташкент
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
Modbus регистры и WinCC Explorer
Вот ведь заковыка, я тоже понимаю, что %MX0.4 бит должен "на ура" читаться в Holding Registers. Но не читается ведь.
Мне тут народ еще посоветовал сначала слово целиком прочитать, поморгать битом и посмотреть как изменяется слово.
Но вопрос же остался: как и какой адрес указывать, он ведь гад с нуля начинается!?
Т.е. это как?
-
- освоился
- Сообщения: 222
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 38 раз
Modbus регистры и WinCC Explorer
Ну и модбас регистры с нуля начинаются 40001 - нулевой регистр.
- что как?
WinCC 7.4 SP1 Upd15, Step5.6
-
- здесь недавно
- Сообщения: 36
- Зарегистрирован: 27 июл 2020, 12:40
- Имя: Илья
- Страна: Узбекистан
- город/регион: Ташкент
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
Modbus регистры и WinCC Explorer
Пишу чисто для заметки на будущее, вдруг кто-то столкнется с тем же.
Нулевой байт/слово, к примеру с адресом бита %MX0.4, в WinCC Explorer не читается.
WinCC Explorer вообще не видит WORD с адресом 0, никак, ни с каким типом данных и адаптацией.
Пришлось в проекте ПЛК дублировать значение в переменную с другим адресом.
Все битовые статусы у меня были организованы на 0 байте.
Те, из них, которые мне понадобились для скады, я сдублировал, а.и.:
Значение статуса бита, которое ранее записывалось в %MX0.4, я продублировал еще и в %MX6.0.
Т.о. получилось, что бит %MX6.0 я могу прочитать на скаде, как WORD с адресом 3. (см. приложенную картинку "Регистры-ModBus.jpg")
Да, я резервирую слово целиком ради одного бита, но так у меня получилось на данном этапе.
В TagManagement я указываю сигнал как SignalName, c типом данных FLOAT, адаптацией Float-to-UnsignedWord, и адресом Holding-регистра MW3.
В объекте Graphic Designer-а я указываю этот тег (word), но в setting-гах (адаптации) указываю как BOOL, и у меня отрабатывает нужная мне единичка.
Нулевой байт/слово, к примеру с адресом бита %MX0.4, в WinCC Explorer не читается.
WinCC Explorer вообще не видит WORD с адресом 0, никак, ни с каким типом данных и адаптацией.
Пришлось в проекте ПЛК дублировать значение в переменную с другим адресом.
Все битовые статусы у меня были организованы на 0 байте.
Те, из них, которые мне понадобились для скады, я сдублировал, а.и.:
Значение статуса бита, которое ранее записывалось в %MX0.4, я продублировал еще и в %MX6.0.
Т.о. получилось, что бит %MX6.0 я могу прочитать на скаде, как WORD с адресом 3. (см. приложенную картинку "Регистры-ModBus.jpg")
Да, я резервирую слово целиком ради одного бита, но так у меня получилось на данном этапе.
В TagManagement я указываю сигнал как SignalName, c типом данных FLOAT, адаптацией Float-to-UnsignedWord, и адресом Holding-регистра MW3.
В объекте Graphic Designer-а я указываю этот тег (word), но в setting-гах (адаптации) указываю как BOOL, и у меня отрабатывает нужная мне единичка.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 841 раз
Modbus регистры и WinCC Explorer
У Модбаса от Сименс свой неповторимый свопинг.
А при чтении нулевого слова почему единичку к адресу не добавили?
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- здесь недавно
- Сообщения: 36
- Зарегистрирован: 27 июл 2020, 12:40
- Имя: Илья
- Страна: Узбекистан
- город/регион: Ташкент
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
Modbus регистры и WinCC Explorer
Я же гаварю, у меня "0" не видит.
Когда добавляю эдиничку, - получаю совсем другую область памяти.
Я не знаю почему так в моем случае.
Когда ПЛК Модикон отправляет адреса битов с нулевым байтом - HMI шнайдеровская читает их как есть.
Видимо по какому-то своему внутреннему распределению или преобразованию.
Но, когда мне нужно отправить это на внешний ОРС, тогда вот такие пляски получаются.
Когда добавляю эдиничку, - получаю совсем другую область памяти.
Я не знаю почему так в моем случае.
Когда ПЛК Модикон отправляет адреса битов с нулевым байтом - HMI шнайдеровская читает их как есть.
Видимо по какому-то своему внутреннему распределению или преобразованию.
Но, когда мне нужно отправить это на внешний ОРС, тогда вот такие пляски получаются.
-
- освоился
- Сообщения: 208
- Зарегистрирован: 16 дек 2011, 15:13
- Имя: Алексей
- Страна: Россия
- Благодарил (а): 67 раз
- Поблагодарили: 53 раза
Modbus регистры и WinCC Explorer
А вот это зачем? в смысле адаптация FloatToXXX? Вы же читаете регистр? регистр есть слово - word : 16 bit.
Тег должен быть Word,если вы хотите доступ к битам получить.
И далее:
Какие такие setting (адаптации) в Graphic Designer?
-
- здесь недавно
- Сообщения: 36
- Зарегистрирован: 27 июл 2020, 12:40
- Имя: Илья
- Страна: Узбекистан
- город/регион: Ташкент
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
Modbus регистры и WinCC Explorer
Да, достаточно указать DataType: Unsigned 16-bit value и Format Adaptation: WordToUnsignedWord.
Для графического объекта ГрафикДизайнера есть вкладка Tag Animation.
В ней указываешь с каким тегом связать объект и там же указываешь тип данных для этого тега.
Вот в нем можно для WORD-тега указать поведение объекта, как будто работаешь с типом данных BOOL, и будет работать как битовый адрес.
Для графического объекта ГрафикДизайнера есть вкладка Tag Animation.
В ней указываешь с каким тегом связать объект и там же указываешь тип данных для этого тега.
Вот в нем можно для WORD-тега указать поведение объекта, как будто работаешь с типом данных BOOL, и будет работать как битовый адрес.
-
- здесь недавно
- Сообщения: 36
- Зарегистрирован: 27 июл 2020, 12:40
- Имя: Илья
- Страна: Узбекистан
- город/регион: Ташкент
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
Modbus регистры и WinCC Explorer
iluha писал(а): ↑11 фев 2022, 20:02 Для графического объекта ГрафикДизайнера есть вкладка Tag Animation.
В ней указываешь с каким тегом связать объект и там же указываешь тип данных для этого тега.
Вот в нем можно для WORD-тега указать поведение объекта, как будто работаешь с типом данных BOOL, и будет работать как битовый адрес.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 12
- Зарегистрирован: 26 фев 2019, 10:53
- Имя: Денис
- Благодарил (а): 2 раза
Modbus регистры и WinCC Explorer
Добрый день. Тоже столкнулся с непонятной адресацией bool значений. выяснив вот, что. Есть у меня модуль цифровых входов/выходов.
В мануале по устройству написано, что чтение входов - регистр 0, чтение/запись выходов - регистр 100. В WinCC создаю два тега. Один чтение входа 0.0 (Binary Tag 3x400001.16), другой для выхода (Binary Tag 3x400101.16).
Что бы обратиться к нужному регистру нужно +1 к адресу (0->1, 100->101), а вот что бы до нужного бита достучаться, надо зеркально обратиться к нему. (первый- это последний). То что добавлять 1 адресу это я где-то видел в документациях по модбасу, а вот почему все перевернуто не знаю, но факт остается фактом. Или это особенность, какая то SIEMENS? Может поделитесь ссылкой на документацию, где это описано?
В мануале по устройству написано, что чтение входов - регистр 0, чтение/запись выходов - регистр 100. В WinCC создаю два тега. Один чтение входа 0.0 (Binary Tag 3x400001.16), другой для выхода (Binary Tag 3x400101.16).
Что бы обратиться к нужному регистру нужно +1 к адресу (0->1, 100->101), а вот что бы до нужного бита достучаться, надо зеркально обратиться к нему. (первый- это последний). То что добавлять 1 адресу это я где-то видел в документациях по модбасу, а вот почему все перевернуто не знаю, но факт остается фактом. Или это особенность, какая то SIEMENS? Может поделитесь ссылкой на документацию, где это описано?
-
- эксперт
- Сообщения: 2471
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 2121 раз
- Поблагодарили: 208 раз
Modbus регистры и WinCC Explorer
Не только у Siemens. Многие производители таким страдают.
Отправлено спустя 2 минуты 24 секунды:
Контроллеры обычно отдают регистры так, как они физически расположены в памяти. У разных процессоров способ расположения разный. Поэтому, в настройках Modbus часто есть настройки типа LSB-MSB/MSB-LSB, ну, и биты, в памяти тоже по разному хранятся.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 841 раз
Modbus регистры и WinCC Explorer
Контроллер, если кто не знает, работает по программе. Какой фирмваре в него производитель воткнул, так он и оригинальничает.
И к ФИЗИЧЕСКОМУ расположению данных в памяти это точно никакого отношения не имеет. Процессор об этом и знать не знает. Для него важно лишь взять данные оттуда, куда их положили. Однозначность важна. И всё.
А как конструктор проводники шины адреса/данных переплёл при разводке платы вааще не принципиально. Как удобно, так и делалют.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- эксперт
- Сообщения: 2471
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 2121 раз
- Поблагодарили: 208 раз
Modbus регистры и WinCC Explorer
Полностью согласен. Но из-за, как я думаю, экономии, по факту происходит, как я написал.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 841 раз
Modbus регистры и WinCC Explorer
Когда производитель выпускает одно дешёвое нестандартное изделие, это может считаться "экономией". А когда целый ряд моделей и устройств различного назначения, совместимых только между собой - это называется иначе.
"Жлобством" и "злоупотреблением" положением на рынке.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- эксперт
- Сообщения: 2471
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 2121 раз
- Поблагодарили: 208 раз
Modbus регистры и WinCC Explorer
А потом, на этого производителя начинают смотреть другие производители, и понеслось...
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 841 раз
Modbus регистры и WinCC Explorer
Пока хотя бы 15% рынка не захватишь, хоть обсмотрись!
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- эксперт
- Сообщения: 2471
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 2121 раз
- Поблагодарили: 208 раз
Modbus регистры и WinCC Explorer
Лиха беда - начало...
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.