Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 32

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

  1. #21

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    В принципе можно расширить до DWord, но смысл теряется, т.к. Float тоже два регистра.
    Тогда уж до DINT, ему отрицательные нужны. Но опять же нет смысла, проще Float сразу.
    Кстати тут нашёл макрос чей-то, ТО_DINT, но там только положительные значения выходят, с отрицательными не работает. На самом деле он ТО_DWORD.
    Последний раз редактировалось kondor3000; 14.10.2021 в 19:08.

  2. #22

    По умолчанию

    petera, kondor3000, большое спасибо! Смогу добраться до проекта и попробовать не ранее, чем послезавтра.

  3. #23

    По умолчанию

    Цитата Сообщение от Bone Посмотреть сообщение
    petera, kondor3000, не ранее, чем послезавтра.
    ... а сейчас пока напишу немного по теме, по памяти.

    Цитата Сообщение от petera Посмотреть сообщение
    Хочу внести ясность
    1. Запомните раз и на всегда
    Если ПР слейв, а панель мастер, то ВСЕГДА включайте в настройках порта панели
    Переставить Word..
    Вложение 57456
    petera, я поставил эту галку в числе самых первых изменений в настройках в процессе своих опытов, и она стоит до сих пор. Где-то читал тут на форуме, что это как раз влияет на корректность отображения данных, и не только. Сейчас уже точно не вспомню, на что конкретно это влияло у меня, но помню, что стало лучше.)
    Правда, у меня этот пункт называется немного по-другому, но это не важно, наверно, и зависит, как я понял, от версии конфигуратора.

    Цитата Сообщение от petera Посмотреть сообщение
    В ПРке настройки старшим регистром/байтом вперёд/назад в слейве есть, но НЕ РАБОТАЮТ. Эти настройки только для мастера ПРки

    Там у Вас целый клубок проблем,
    Вы сначала в ПР мастером читаете регистры терминала, затем копируете значения в переменную слейва ПР
    Вложение 57444
    Вот здесь и зарыта собака - Мастер читает регистры терминала не в том порядке.
    Нужно поиграть настройками - старшим байтом в перед
    Мне так кажется, что должно быть так
    Вложение 57445
    Да, и эти настройки я тоже перепробовал. Остановился на обеих установленных галках, как наиболее оптимальном варианте.
    При настройках по умолчанию был такой эффект: постепенно нагружал датчик, смотрел в онлайн-отладке ОЛ на содержимое соответствующей сетевой переменной с весов и видел там число, плавно увеличивающееся от (примерно) 2,7Е-35 до 3,5+Е37. И по достижении определённого усилия (около условных 12 кг на дисплее весового терминала. "Условных" - потому что откалибрована эта весовая система сейчас пока совершенно от балды, на условные 15 кг максимального веса) содержимое сетевой переменной обнулялось (появлялся "0") и, при дальнейшем увеличении нагрузки на весовой датчик, начинало расти по новой, от 2,7Е-35 до сигнала перегруза с терминала, т.е., циклично. Полагаю, что, если откалибровать систему на больший вес, чтобы не было сигнала перегруза, то эти циклы повторялись бы снова и снова, как раз из-за неправильного порядка следования старших/младших регистров/байт.
    Все остальные варианты снятия/установки этих галок, кроме установок по умолчанию, обеспечивали линейность изменения сигнала по всему диапазону. Менялся только показатель степени.

    Цитата Сообщение от petera Посмотреть сообщение
    Я же писал, что для случаев вывода(или ввода) на панель целых значений с точкой и(или) со знаком нужны Макросы для ОЛ по переводу float-int-float
    На данный момент пользуюсь макросом SCALE из Менеджера компонентов ОЛ. Очень удобная штука. Позволяет конвертировать любой диапазон FLOATов в любой диапазон FLOATов же. И в онлайн-отладке я вижу, как он работает, т.е., чётко переводит данные с сетевой переменной весов (от 3,59Е-43 до 5,7Е-41) в число от 0 до 15 на своём выходе (в соответствии с его настройками и максимальным весом терминала), и это число через сетевую переменную уходит в панель на "цифровой дисплей". НО! Проблема в том, что показания на "цифровом дисплее" не соответствуют показаниям в сетевой переменной.
    Более того - я могу в онлайн-отладке записать в эту сетевую переменную любое значение.
    Пишу 0 - на "цифровом дисплее" панели тоже 0. Пишу 1 - на "цифровом дисплее" что-то типа 758439057 или 3,9Е+19 (при соответствующих настройках формата отображения DEC или FLOAT), например. Пишу 2 - на "цифровом дисплее" что-то типа 3584947822 или , например, 2,4Е-12...

    Цитата Сообщение от petera Посмотреть сообщение
    ЗЫ
    В любом случае
    СНАЧАЛА нужно добиться правильного чтения регистров терминала в ПРку
    Этого как раз добился. Линейно изменяется от - от 3,59Е-43 до 5,7Е-41 перед появлением сигнала перегруза. Завтра буду рыть в сторону настройки "цифрового дисплея" по Вашим советам и по образцу. Если у Вас работает, то и у меня должно заработать. Но мне кажется, я перепробовал ВСЕ настройки, какие только можно...

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    petera, про маленький диапазон INT, я коротко уже написал. Хорошо если ему надо до 32 кг взвешивать, с точностью до грамма. Но тут весовой терминал, может там идёт речь о 50 тоннах, и какая тогда точность будет? +_ сотни килограмм, про граммы я молчу даже.
    kondor3000, будут взвешиваться грузы массой 300-500 кг. Точность даже +- 1 кг (0,2-0,3%) устроила бы. А уж если было бы

    Цитата Сообщение от petera Посмотреть сообщение
    N=1 от -3276.8 до 3276.7
    то вообще, просто шикарно...

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

    По умолчанию

    При настройках по умолчанию был такой эффект: постепенно нагружал датчик, смотрел в онлайн-отладке ОЛ на содержимое соответствующей сетевой переменной с весов и видел там число, плавно увеличивающееся от (примерно) 2,7Е-35 до 3,5+Е37. И по достижении определённого усилия (около условных 12 кг на дисплее весового терминала. "Условных" - потому что откалибрована эта весовая система сейчас пока совершенно от балды, на условные 15 кг максимального веса) содержимое сетевой переменной обнулялось (появлялся "0") и, при дальнейшем увеличении нагрузки на весовой датчик, начинало расти по новой, от 2,7Е-35 до сигнала перегруза с терминала, т.е., циклично. Полагаю, что, если откалибровать систему на больший вес, чтобы не было сигнала перегруза, то эти циклы повторялись бы снова и снова, как раз из-за неправильного порядка следования старших/младших регистров/байт.
    На данный момент пользуюсь макросом SCALE из Менеджера компонентов ОЛ. Очень удобная штука. Позволяет конвертировать любой диапазон FLOATов в любой диапазон FLOATов же. И в онлайн-отладке я вижу, как он работает, т.е., чётко переводит данные с сетевой переменной весов (от 3,59Е-43 до 5,7Е-41) в число от 0 до 15 на своём выходе (в соответствии с его настройками и максимальным весом терминала),
    2,7Е-35 до 3,5+Е37 ???
    Я просто обалдел от таких чисел
    И решил почитать руководство на терминал..
    Однако, с чего Вы взяли, что вес у вас в формате с плавающей точкой?
    Захват-01.png
    Русскими буквами написано
    Текущее значение веса (4 бита, включая символы знака, высший бит спереди)
    Т.е. это формат DINT - целое со знаком
    и судя по всему - 19 регистр,
    Захват-02.png
    с фиксированной точкой

    Так, что использование SCALE из Менеджера компонентов ОЛ для перевода с сетевой переменной весов (от 3,59Е-43 до 5,7Е-41) в число от 0 до 15
    это чистый мазохизм.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков

  5. #25

    По умолчанию

    Цитата Сообщение от Bone Посмотреть сообщение
    ... а сейчас пока напишу немного по теме, по памяти.
    petera, я поставил эту галку в числе самых первых изменений в настройках в процессе своих опытов, и она стоит до сих пор.
    При настройках по умолчанию был такой эффект: постепенно нагружал датчик, смотрел в онлайн-отладке ОЛ на содержимое соответствующей сетевой переменной с весов и видел там число, плавно увеличивающееся от (примерно) 2,7Е-35 до 3,5+Е37. И по достижении определённого усилия (около условных 12 кг на дисплее в
    Весь смысл в том, что вам надо расставить байты в правильной последовательности Float, для получения веса как на терминале, без всяких +-37 степени, если не получается правильно вывести вес в ПР, может получится правильно расставить байты в Панели. Проблема в том, что каждая передача по модбасу, опять переворачивает байты. Поэтому, может получится вывести правильный вес в самой панели. Пробуйте последовательно, убирать или ставить все возможные галки по одной. Опять же в ПЛК всё можно было бы сделать без проблем. Но пробуйте.
    А вообще в вашем случае, лучше было сделать ПР мастером, что бы работали и галки в OWL.

    Ну вот petera оказывается выяснил, что у вас там не Float вовсе, а вы сами себе проблему создали)))
    Последний раз редактировалось kondor3000; 15.10.2021 в 22:31.

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

    По умолчанию

    SCALE из Менеджера компонентов ОЛ. Очень удобная штука. Позволяет конвертировать любой диапазон FLOATов в любой диапазон FLOATов же. И в онлайн-отладке я вижу, как он работает, т.е., чётко переводит данные с сетевой переменной весов (от 3,59Е-43 до 5,7Е-41) в число от 0 до 15 на своём выходе (в соответствии с его настройками и максимальным весом терминала),
    С точки зрения DINT, число 3,59Е-43 Очень похоже на ноль http://www.binaryconvert.com/result_...57069045052051
    Захват-03.png
    или близко к нулю
    здесь 4 HEX цифры 00 00 01 00, если предположить, что порядок байт другой то может быть и такой вариант прочтения 00 00 00 01
    значение 5,7Е-41 трактовать пока нет смысла, "потому что откалибрована эта весовая система сейчас пока совершенно от балды, на условные 15 кг максимального веса"
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков

  7. #27

    По умолчанию

    petera, получается надо просто считать вес не флоатом, а целочисленной переменной и перевести её в DINT и выкинуть все скалеры. Целочисленная считается без переворота байт. А из 19 регистра считать смещение точки. Так?
    Я плохо знаю как в Лоджике считываются целочисленные из 2 регистров. Вроде по описанию целочисленные это DWORD.
    Последний раз редактировалось kondor3000; 15.10.2021 в 23:13.

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

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    petera, получается надо просто считать вес не флоатом, а целочисленной переменной и перевести её в DINT и выкинуть все скалеры. Целочисленная считается без переворота байт. А из 19 регистра считать смещение точки. Так?
    Я плохо знаю как в Лоджике считываются целочисленные из 2 регистров. Вроде по описанию целочисленные это DWORD.
    Мастер может читать 32битные переменные, просто выбирать 2 регистра в настройках
    Скрытый текст:


    Вот только прядок байт / регистров будет влиять
    Последний раз редактировалось petera; 15.10.2021 в 23:22.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков

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

    По умолчанию

    Я вот это
    Более того - я могу в онлайн-отладке записать в эту сетевую переменную любое значение.
    Пишу 0 - на "цифровом дисплее" панели тоже 0. Пишу 1 - на "цифровом дисплее" что-то типа 758439057 или 3,9Е+19 (при соответствующих настройках формата отображения DEC или FLOAT), например. Пишу 2 - на "цифровом дисплее" что-то типа 3584947822 или , например, 2,4Е-12...
    Хоть убей, воспроизвести не могу...

    Скрытый текст:


    Еще раз адреса и в ПР и в панели должны быть четными и одинаковыми, без смещения, например, в ПР - 522, в панели 4х522 DWord
    Ваш пример - В студию!
    Последний раз редактировалось petera; 16.10.2021 в 00:48.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков

  10. #30

    По умолчанию

    Чьорд побьери!(С)
    Каналья!!(С)
    Тысяча чертей!!!(С)
    Всё заработало...

    Теперь по порядку.

    petera, я сразу оговорился, что воспроизвожу процесс по памяти
    Цитата Сообщение от Bone Посмотреть сообщение
    ... а сейчас пока напишу немного по теме, по памяти.

    ...от (примерно) 2,7Е-35 до 3,5+Е37.

    Пишу 0 - на "цифровом дисплее" панели тоже 0. Пишу 1 - на "цифровом дисплее" что-то типа 758439057 или 3,9Е+19 (при соответствующих настройках формата отображения DEC или FLOAT), например. Пишу 2 - на "цифровом дисплее" что-то типа 3584947822 или , например, 2,4Е-12...
    поэтому, наверно, не стоило Вам воспринимать эти числа буквально. Смысл упоминания мной этих чисел был лишь в том, чтобы показать, что индикация на дисплее сильно не соответствует содержимому переменной и при его изменении индикация изменяется совершенно хаотично. Что, теперь вижу, при кривых настройках, конечно же, неудивительно. И аналогичную ситуацию с десятичным форматом отображения в виде многозначного числа можно наблюдать на Вашем видео на левом верхнем дисплее.
    А вот что касается отображения чисел в формате чисел с плавающей запятой, то тут, похоже, память меня совсем подвела.
    Мне тоже не удалось воспроизвести описанную мной же ситуацию. К своему стыду, даже не знаю, откуда я это взял. Скорее всего, когда пробовал различные варианты, то наблюдал на цифровом дисплее такие числа, но при воздействии на тензодатчик, а не при принудительной записи значения в переменную. И что-то такое отложилось в памяти в виде каши. И перед написанием своего сообщения я ещё раз проверил проблему с отображением чисел в DECe, но не проверил в FLOATe, ибо уже не осталось моральных сил поменять настройку. Моя ошибка. И, вообще, моя ошибка в том, что нужно было пробовать все настройки по порядку, записывая, что сделал, а не так, как это делал я...

    petera, приношу свои извинения за то, что ввёл Вас в заблуждение.

    В итоге, сегодня с утра выяснилось (утро вечера мудренее), что я остановился всего лишь в шаге от победы, т.к., нужно было поменять в настройках отображения цифрового дисплея DEC на FLOAT, и всё стало отображаться корректно. Ума не приложу, как так получилось, что я это пропустил. Я был в полнейшей уверенности, что перепробовал все настройки и в панели, и в ПР-ке...

    Дальше...
    Цитата Сообщение от petera Посмотреть сообщение
    Однако, с чего Вы взяли, что вес у вас в формате с плавающей точкой?
    До сегодняшнего дня был уверен, что данные, занимающие 2 ячейки подряд, являются FLOATами, и никак иначе...

    Цитата Сообщение от petera Посмотреть сообщение
    Русскими буквами написано
    Текущее значение веса (4 бита, включая символы знака, высший бит спереди)
    Для меня, при данном моём уровне познаний в сетях, протоколах и интерфейсах эта информация не совсем понятна. А вернее, совсем не понятна... Как запихать "текущее значение веса", да ещё "включая символы знака", всего в 4 бита (может, байта? опечатка?).

    Цитата Сообщение от petera Посмотреть сообщение
    Т.е. это формат DINT - целое со знаком
    А о существовании на свете этого формата я впервые узнал только пару дней назад:

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Тогда уж до DINT, ему отрицательные нужны.
    Поискал в мануале и справке от ОЛ, не нашёл. Только вскользь упоминается о том, что целочисленная переменная может занимать 2 регистра. Но мне от этой информации раньше было ни холодно, ни жарко, и как она может пригодиться мне на практике, я не знал. Теперь узнал..

    Цитата Сообщение от petera Посмотреть сообщение
    С точки зрения DINT, число 3,59Е-43 Очень похоже на ноль
    или близко к нулю
    Так и есть. Оно появляется сразу же, как только я начинаю воздействовать на датчик. Если он просто лежит на столе, то дисплей терминала показывает "-OFL" (недогрузка)

    Цитата Сообщение от petera Посмотреть сообщение
    Мастер может читать 32битные переменные, просто выбирать 2 регистра в настройках
    Вот только прядок байт / регистров будет влиять
    Вот эта информация всё расставила на свои места. Сделал в настройках этой переменной количество регистров 2, поменял на целочисленную, и вот оно - счастье. Теперь и данные с весов стали адекватные. При установленных обеих галках в настройках в ПР-ке "старшим регистром вперёд" и "старшим байтом вперёд" (как самые оптимальные) данные в переменной стали изменяться от 0 до (примерно) 40000 перед сигналом перегруза.

    Цитата Сообщение от petera Посмотреть сообщение
    Так, что использование SCALE из Менеджера компонентов ОЛ для перевода с сетевой переменной весов (от 3,59Е-43 до 5,7Е-41) в число от 0 до 15
    это чистый мазохизм.
    Догадываюсь, но всё равно спрошу: это из-за низкой точности при обработке такой маленькой величины?
    А вообще, была надежда, что у меня просто не хватает здоровья создать голыми руками достаточное воздействие на датчик, который рассчитан на 1 тонну. И в реальных условиях, когда на весы поместили бы груз в несколько сотен кг, то эта величина стала бы побольше. И обработка такого диапазона уже была бы точнее...

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Опять же в ПЛК всё можно было бы сделать без проблем. Но пробуйте.
    kondor3000, мне бы дай бог, с этим разобраться))
    До ПЛК пока не дорос, да и до кодесиса тоже. Хотя, не исключаю, что когда-нибудь и замахнусь.
    Тогда ждите новых вопросов.

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    А вообще в вашем случае, лучше было сделать ПР мастером, что бы работали и галки в OWL.
    Так она и так мастер по отношению к терминалу (слейв к панели). И галки работают...

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    ...вы сами себе проблему создали)))
    +100500...

    petera, kondor3000, спасибо вам огромнейшее за помощь и поддержку!!! Не знаю, что бы я без вас делал...

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Похожие темы

  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

Ваши права

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