Страница 1 из 4 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 32

Тема: Панель оператора СП310Р и весовой терминал GENERAL MEASURE M02

  1. #1

    По умолчанию Панель оператора СП310Р и весовой терминал GENERAL MEASURE M02

    Здравствуйте, коллеги!
    Есть необходимость подключить к ПР102 весовой терминал General Measure M02 по Modbus RTU через RS485 для дальнейшей обработки сигналов с тензодатчиков в программе. Первая попытка подключения успеха не принесла: в регистрах текущего веса, которые я пытался считать ПР-кой с терминала и наблюдать в онлайн-отладке, были нули.
    Затем, для пробы, подключил терминал к панели оператора, ибо там проще отследить наличие связи по интерфейсу через системное окно 60013.
    Увидел, что индикатор PLC мигает.
    Начал пытаться установить связь. Целый день вчера пробовал, но так и не получилось. Все провода проверены по 10 раз (в том числе, менялись местами А и В), все настройки и в терминале, и в панели испробованы. Причём, панель показывает, что связи нет, а терминал (есть там средство диагностики) - что связь есть.
    Смотрел осциллографом сигналы на интерфейсе. При подключенном к панели ПР102, когда всё работало нормально и связь была, и при подключенном к панели терминале, когда не работало. Разницы не заметил, но при одном нюансе: сигналы были одинаковые, только когда я заходил в меню настройки на терминале. Когда выходил в режим взвешивания, сигнал кардинально менялся. Тогда просто проскакивала пачка импульсов примерно раз в секунду, и индикатор PLC на панели в окне диагностики мигал более коротко и через более длительные промежутки времени, чем обычно, когда просто нет связи (например, отключен разъём PLC).
    В принципе, для проекта, меня бы устроил вариант подключения терминала к ПР через аналоговые выходы. Там они тоже имеются. И напряжение, и ток. Но и там всё по нулям. Хотя в меню соответствующие пункты включены, конечно.
    Уважаемые коллеги, не имел ли кто-нибудь дело с таким терминалом, или не сталкивался ли кто-нибудь с подобной проблемой? Почему нет связи по интерфейсу, если провода в норме, настройки протокола (master-slave, скорость, проверка на чётность, адрес и т.д.) совпадают?
    P.S. Всё это собрано на столе, проверяется в тепличных условиях, длина проводов ~40-50 см, так что помехи исключаются. Да и СП+ПР в связке работают нормально.
    P.P.S. Мануал на русском, на всякий случай, прилагаю. Перевод с оригинала, местами конечно, так себе, но в целом - нормально...
    Последний раз редактировалось Bone; 07.09.2021 в 11:56.

  2. #2
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    2,953

    По умолчанию

    Цитата Сообщение от Bone Посмотреть сообщение
    Здравствуйте, коллеги!
    Есть необходимость подключить к ПР102 весовой терминал General Measure M02 по Modbus RTU через RS485 для дальнейшей обработки сигналов с тензодатчиков в программе. Первая попытка подключения успеха не принесла: в регистрах текущего веса, которые я пытался считать ПР-кой с терминала и наблюдать в онлайн-отладке, были нули.
    Затем, для пробы, подключил терминал к панели оператора, ибо там проще отследить наличие связи по интерфейсу через системное окно 60013.
    Увидел, что индикатор PLC мигает.
    Начал пытаться установить связь. Целый день вчера пробовал, но так и не получилось. Все провода проверены по 10 раз, все настройки и в терминале, и в панели испробованы. Причём, панель показывает, что связи нет, а терминал (есть там средство диагностики) - что связь есть.
    Смотрел осциллографом сигналы на интерфейсе. При подключенном к панели ПР102, когда всё работало нормально и связь была, и при подключенном к панели терминале, когда не работало. Разницы не заметил, но при одном нюансе: сигналы были одинаковые, только когда я заходил в меню настройки на терминале. Когда выходил в режим взвешивания, сигнал кардинально менялся. Тогда просто проскакивала пачка импульсов примерно раз в секунду, и индикатор PLC на панели в окне диагностики мигал более коротко и через более длительные промежутки времени, чем обычно, когда просто нет связи (например, отключен разъём PLC).
    В принципе, для проекта, меня бы устроил вариант подключения терминала к ПР через аналоговые выходы. Там они тоже имеются. И напряжение, и ток. Но и там всё по нулям. Хотя в меню соответствующие пункты включены, конечно.
    Уважаемые коллеги, не имел ли кто-нибудь дело с таким терминалом, или не сталкивался ли кто-нибудь с подобной проблемой? Почему нет связи по интерфейсу, если провода в норме, настройки протокола (скорость, проверка на чётность, адрес и т.д.) совпадают?
    P.S. Всё это собрано на столе, проверяется в тепличных условиях, длина проводов ~40-50 см, так что помехи исключаются. Да и СП+ПР в связке работают нормально.
    P.P.S. Мануал на русском, на всякий случай, прилагаю. Перевод с оригинала, местами конечно, так себе, но в целом - нормально...
    Небось так и вбиваешь адреса регистров - 40001, как в инструкции. А надо 0, для 40002 - 1 и т.д.
    И где обещанный мануал?
    И приложить проект со своими настройкам регистров и портов ПР/СП
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков

  3. #3

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Небось так и вбиваешь адреса регистров - 40001, как в инструкции.
    Да, так и делал, когда пытался считать, пока не понял, что связи по интерфейсу нет.

    Цитата Сообщение от petera Посмотреть сообщение
    А надо 0, для 40002 - 1 и т.д.
    Неожиданно... Это мой первый проект такого уровня (с использованием сети), поэтому опыта пока ещё нет практически.

    Цитата Сообщение от petera Посмотреть сообщение
    И где обещанный мануал?
    Вложил. В первый раз почему-то не отправился...

    Цитата Сообщение от petera Посмотреть сообщение
    И приложить проект со своими настройкам регистров и портов ПР/СП
    Разве наличие/отсутствие связи по интерфейсу зависит от настроек регистров? Когда я подключал ПР к СП, связь была сразу же, при одинаковых настройках портов, конечно. Смотрел через системное окно 60013.

  4. #4

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Небось так и вбиваешь адреса регистров - 40001, как в инструкции. А надо 0, для 40002 - 1 и т.д.
    Цитата Сообщение от Bone Посмотреть сообщение
    Неожиданно... Это мой первый проект такого уровня (с использованием сети), поэтому опыта пока ещё нет практически.
    petera, все (ну, или, наверно, почти все) инструкции пишут, что нужно считывать данные с регистров с теми адресами, что указаны в инструкции (опять же)) к конкретному устройству. Соответственно, я и считывал те, что указаны в колонке "Адрес контроллера PLC". А нужно, как я понял, из соседней колонки, "Адрес дисплея"? Именно там они начинаются с 0? Или по другому принципу?

    Цитата Сообщение от petera Посмотреть сообщение
    И приложить проект со своими настройкам регистров и портов ПР/СП
    Чтобы убедиться ещё раз, создал, для пробы, просто пустой проект для ПР и проект с парой кнопок с вызовом окон 60013 и 60014, плюс пара индикаторов с индикацией регистров PSB50 и PSB51 для пущей верности, настроил порты, залил, и всё. Связь есть...

  5. #5
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    2,953

    По умолчанию

    Цитата Сообщение от Bone Посмотреть сообщение
    petera, все (ну, или, наверно, почти все) инструкции пишут, что нужно считывать данные с регистров с теми адресами, что указаны в инструкции (опять же)) к конкретному устройству. Соответственно, я и считывал те, что указаны в колонке "Адрес контроллера PLC". А нужно, как я понял, из соседней колонки, "Адрес дисплея"? Именно там они начинаются с 0? Или по другому принципу?



    Чтобы убедиться ещё раз, создал, для пробы, просто пустой проект для ПР и проект с парой кнопок с вызовом окон 60013 и 60014, плюс пара индикаторов с индикацией регистров PSB50 и PSB51 для пущей верности, настроил порты, залил, и всё. Связь есть...
    Для общего развития...
    Значения, что указаны в колонке "Адрес контроллера PLC" означают ссылку на адресное пространство в карте распределения регистров, согласно классического ModBus устройства так, как придумал Модикон. Все адресное пространство ПЛК от 1 до 49999 согласно стандарта, включая физические входы и выходы ПЛК, распределяется на области по 9999 адресов.
    MODBUS специфицирует 4 области данных:
    (ссылка 0х) 00001-09999 - Discrete Output Coils - однобитовый тип, доступен на чтение и на запись
    (ссылка 1х) 10001-19999 - Discrete Input Contacts - однобитовый тип, доступен только на чтение.
    (ссылка 3х) 30001-39999 - Analog Input Registers - 16-битовый знаковый или без знаковый тип, доступен только на чтение.
    (ссылка 4х) 40001-49999 - Analog Output Holding Registers - 16-битовый знаковый или без знаковый тип, доступен на чтение и на запись.
    В каждой области адресация начинается от 0000H и заканчивается 270EH (9999). Т.е. каждый бит для областей 0х и 1х адресуется от 0 до 270E и каждое слово для областей 3х и 4х 1WORD=2Byte=16Bit также адресуется от 0 до 270E.
    Это как придумали для Модикона.
    Со способом адресации данных связана определённая путаница. Modbus был первоначально разработан для контроллеров Modicon. В этих контроллерах для каждой из таблиц использовалась специальная нумерация. Например, первому регистру ввода (адрес 0000) соответствовал номер ячейки 30001, а первому регистру хранения (адрес 0000) — 40001. Эта разница в адресах для каждой области 1, 10001, 30001 и 40001 называется смещением.
    Таким образом, регистру хранения с адресом 107 в команде Modbus соответствовал регистр № 40108 контроллера. Хотя такое соответствие адресов больше не является частью стандарта, некоторые программные пакеты могут автоматически «корректировать» вводимые пользователем адреса, например, вычитая 40001 из адреса регистра хранения.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков

  6. #6

    По умолчанию

    petera, большое спасибо за информацию! Всё просто и понятно. А если ещё в совокупности с той дополнительной инфой, которая была найдена гуглопоиском по паре скопипастенных строк из Вашего сообщения, то ещё лучше
    Инфа очень полезна ещё и в свете того, что мне предстоит подключить в этом проекте к панели еще 1 УПП и 2 ПЧ с целью вывода данных тока, частоты, и т.п. Теперь всё уже не так страшно
    Только вот я смотрю, в ПР102 есть возможность создать всего 64 сетевых переменных, с адресом с 512 по 575. Есть опасения, что такого количества, да ещё с учётом тех, что с плавающей запятой, для всего проекта мне будет маловато. Могли бы выручить булевские, но в режиме Slave они не поддерживаются...
    А по поводу моей проблемы - всё получилось! Промежуточный результат - удалось вывести на панель показания веса, а, также, продублировать на панели индикаторы положения нуля, стабилизации и кнопку обнуления, регистры которых находятся в другой области памяти. Теперь буду пробовать подключать терминал уже к ПР-ке, работающей в режиме Master, по второму интерфейсу, как и задумывалось изначально.
    Смысл данной затеи в том, чтобы считывать ПР (в режиме Master) вес с терминала, записывать его в определённую сетевую переменную, а потом передавать его в режиме Slave в панель и показывать на "цифровом дисплее". Также, с панели через элемент "цифровой ввод" должно быть можно задавать определённый вес (и это число тоже передавать в ПР в режиме Slave) по достижению которого на весах, программа в ПР должна выполнять определённые действия, предварительно сравнив значения этих двух сетевых переменных. Возможно такое, вообще?
    P.S. А индикатор PLC в окне диагностики обмена сначала так и продолжал мигать, даже когда уже я увидел отображение реального веса с терминала на панели, что очень меня озадачило. Но потом, пока я выводил кнопку обнуления, индикаторы нуля и стабилизации, в какой-то момент он мигать перестал (я даже не заметил, когда), и теперь горит зелёным, как положено...
    Последний раз редактировалось Bone; 07.09.2021 в 19:15.

  7. #7
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    2,953

    По умолчанию

    Цитата Сообщение от Bone Посмотреть сообщение
    petera, большое спасибо за информацию! Всё просто и понятно. А если ещё в совокупности с той дополнительной инфой, которая была найдена гуглопоиском по паре скопипастенных строк из Вашего сообщения, то ещё лучше
    Инфа очень полезна ещё и в свете того, что мне предстоит подключить в этом проекте к панели еще 1 УПП и 2 ПЧ с целью вывода данных тока, частоты, и т.п. Теперь всё уже не так страшно
    Только вот я смотрю, в ПР102 есть возможность создать всего 64 сетевых переменных, с адресом с 512 по 575. Есть опасения, что такого количества, да ещё с учётом тех, что с плавающей запятой, для всего проекта мне будет маловато. Могли бы выручить булевские, но в режиме Slave они не поддерживаются...
    А по поводу моей проблемы - всё получилось! Промежуточный результат - удалось вывести на панель показания веса, а, также, продублировать на панели индикаторы положения нуля, стабилизации и кнопку обнуления, регистры которых находятся в другой области памяти. Теперь буду пробовать подключать терминал уже к ПР-ке, работающей в режиме Master, по второму интерфейсу, как и задумывалось изначально.
    Смысл данной затеи в том, чтобы считывать ПР (в режиме Master) вес с терминала, записывать его в определённую сетевую переменную, а потом передавать его в режиме Slave в панель и показывать на "цифровом дисплее". Также, с панели через элемент "цифровой ввод" должно быть можно задавать определённый вес (и это число тоже передавать в ПР в режиме Slave) по достижению которого на весах, программа в ПР должна выполнять определённые действия, предварительно сравнив значения этих двух сетевых переменных. Возможно такое, вообще?
    P.S. А индикатор PLC в окне диагностики обмена сначала так и продолжал мигать, даже когда уже я увидел отображение реального веса с терминала на панели, что очень меня озадачило. Но потом, пока я выводил кнопку обнуления, индикаторы нуля и стабилизации, в какой-то момент он мигать перестал (я даже не заметил, когда), и теперь горит зелёным, как положено...
    1.
    Могли бы выручить булевские, но в режиме Slave они не поддерживаются...
    Еще как поддерживаются!
    ПР поддерживает все функции ModBus для работы с битами - 01, 02, 05, 0F
    Захват-1 (1).png
    Но есть особенность, адреса бит находятся в той же памяти что и регистры. Т.е. каждому биту от 8192 до 9215 соответствует какой-либо разряд регистра 512...575. См. картинку.
    Таким образом булевских переменных в слейве ПР будет до 64 х 16 = 1024.
    Панель(мастер), например, может читать /писать отдельные биты в ПР или сразу группу из 16 бит, если рассматривать их как один регистр.
    Смотрите ссылку, там примеры на все случаи жизни! Обмен битовыми (BOOL) переменными с ПР Slave
    Если честно, то я уже устал давать эту ссылку!

    2. Я думаю, что нет смысла передавать на панель переменные с плавающей точкой, ведь это не для мат вычислений, а только для отображения значений. Вполне можно обойтись значениями с фиксированной точкой. Макросы для ОЛ по переводу float-int-float давно изобретены, могу поделиться.
    Таким образом и здесь можно уменьшить требуемое количество регистров в слейве ПР - в два раза .
    Последний раз редактировалось petera; 07.09.2021 в 21:14.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков

  8. #8

    Post

    Цитата Сообщение от petera Посмотреть сообщение
    1.
    Еще как поддерживаются!
    ПР поддерживает все функции ModBus для работы с битами - 01, 02, 05, 0F
    Захват-1 (1).png
    Но есть особенность, адреса бит находятся в той же памяти что и регистры. Т.е. каждому биту от 8192 до 9215 соответствует какой-либо разряд регистра 512...575. См. картинку.
    Таким образом булевских переменных в слейве ПР будет до 64 х 16 = 1024.
    Панель(мастер), например, может читать /писать отдельные биты в ПР или сразу группу из 16 бит, если рассматривать их как один регистр.
    Смотрите ссылку, там примеры на все случаи жизни! Обмен битовыми (BOOL) переменными с ПР Slave
    Если честно, то я уже устал давать эту ссылку!
    Спасибо за идею! Буду внедрять её позже. Я видел эту карту регистров, когда изучал тонны информации по этому вопросу, но как-то не придал ей значения. Зациклился на том, что ПР не поддерживает булевские переменные в режиме Slave и точка.
    А пока решаю следующую промежуточную задачу: вывести на панель вес на "цифровой дисплей", кнопку обнуления и индикаторы нуля и стабилизации веса . Пока получается, что если просто выводить вес и кнопку обнуления, то всё работает. Если выводить кнопку, индикаторы нуля и стабилизации веса, то работает. А если выводить всё сразу, то ОЛ ругается, что обнаружено использование сетевых переменных с совпадающими Modbus регистрами.
    Для считывания состояния индикаторов я прописываю в таблице переменных регистр 0 и его биты 0 и 2, как по инструкции от терминала. Тип переменных - булевские. А для считывания веса - тоже регистр 0, как в прошлый раз. Тип переменной - с плавающей запятой. Не понятно, куда прописывать смещение 4х или 0х, как это можно было сделать в настройках элементов на панели. Но без индикаторов показания веса отображались. А если я меняю в таблице переменных биты для считывания для индикатора 0 на, например, 1, то тоже всё работает. Но в первом бите отображается другой параметр. В общем, запутался немного. Прилагаю оба проекта. Если не трудно, посмотрите, пожалуйста, что я делаю не так?

    Цитата Сообщение от petera Посмотреть сообщение
    2. Я думаю, что нет смысла передавать на панель переменные с плавающей точкой, ведь это не для мат вычислений, а только для отображения значений. Вполне можно обойтись значениями с фиксированной точкой.
    Планирую выводить на панель показания с двух датчиков температуры. А для них, насколько мне известно, должны использоваться FLOATы, нет?

    Цитата Сообщение от petera Посмотреть сообщение
    Макросы для ОЛ по переводу float-int-float давно изобретены, могу поделиться.
    Таким образом и здесь можно уменьшить требуемое количество регистров в слейве ПР - в два раза .
    Блин... Я полагал, что простого преобразователя "TO INT" будет достаточно...
    Вложения Вложения

  9. #9
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    2,953

    По умолчанию

    Для считывания состояния индикаторов я прописываю в таблице переменных регистр 0 и его биты 0 и 2, как по инструкции от терминала. Тип переменных - булевские. А для считывания веса - тоже регистр 0, как в прошлый раз. Тип переменной - с плавающей запятой. Не понятно, куда прописывать смещение 4х или 0х, как это можно было сделать в настройках элементов на панели.
    т.к. функции записи или чтения однозначно определяют области регистров 4х или 0х, 3х или 1х
    Сделал сводную табл.:

    То в настройках переменных мастера ПР нужно руководствоваться кодом функции для чтения и записи
    Захват-3.png Захват-4.png
    Соответствующие поля есть в ОЛ
    Захват-005.png
    Если выводить кнопку, индикаторы нуля и стабилизации веса, то работает. А если выводить всё сразу, то ОЛ ругается, что обнаружено использование сетевых переменных с совпадающими Modbus регистрами.
    Я полагал, что проблему уже решили
    Захват-002.png
    Оказывается, что нет... Печально!

    Причем, если не использовать сетевые переменные второго интерфейса(слейва), а взять обычные переменные, то проблем нет
    Захват-006.png

    Ну и далее
    Если не использовать чтение 0 бита 0 регистра мастера для записи в сетевую переменную слейва то проблемы тоже нет
    Захват-08.png

    Как только "цепляю" сюда выходную сет.переменную слейва, даже через переменную - капут
    Захват-010.png

    Вижу единственный способ решения
    Добавить в мастер еще одно устройство, с тем же адресом
    Захват-01.png

    Где и "поселить" только булевские переменные

    Результат
    Захват-11.png Захват-12.png
    Последний раз редактировалось petera; 09.09.2021 в 04:49.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков

  10. #10
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    2,953

    По умолчанию

    Блин... Я полагал, что простого преобразователя "TO INT" будет достаточно...
    А как же это
    Планирую выводить на панель показания с двух датчиков температуры. А для них, насколько мне известно, должны использоваться FLOATы, нет?
    Вот именно для случаев вывода(или ввода) на панель значений с точкой и(или) со знаком нужны Макросы для ОЛ по переводу float-int-float
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков

Страница 1 из 4 123 ... ПоследняяПоследняя

Похожие темы

  1. Весовой терминал на МВ110-224.1ТД+2 шт. СМИ-1+ ПЛК100
    от KRUPSKIY в разделе Подбор Оборудования
    Ответов: 10
    Последнее сообщение: 26.04.2021, 07:56
  2. Ответов: 6
    Последнее сообщение: 18.09.2019, 20:37
  3. Овен пр 200 и весовой терминал
    от farikpwnz в разделе Программируемые реле
    Ответов: 7
    Последнее сообщение: 01.09.2019, 23:08
  4. Панель СП310Р. Переменная Float, сравнение
    от bonzay74 в разделе Панели оператора (HMI)
    Ответов: 4
    Последнее сообщение: 05.06.2019, 06:23
  5. панель оператора
    от Igont в разделе Подбор Оборудования
    Ответов: 13
    Последнее сообщение: 02.05.2007, 09:23

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •