Страница 3 из 10 ПерваяПервая 12345 ... ПоследняяПоследняя
Показано с 21 по 30 из 95

Тема: невероятно медленный опрос модулей МВ110-220.8АС

  1. #21

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    2. Сам протокол Modbus имеет команду "прочитать столько-то регистров подряд", и ОВЕНонвские модули её поддерживают.
    Не все. Как минимум 4ТД не поддерживает. Возвращает ошибку 03 при попытке прочитать сразу более двух слов. Из-за этого приходится читать каждый вес отдельным запросом, несмотря на то, что регистры идут подряд.

  2. #22

    По умолчанию

    Sergey666 Во-первых, нечего пенять на техноблогосферу, коли не читал мой блог. Пишу я там только тогда, когда разберусь. Потому и написал, что ближе к осени. К примеру пост про модули IO от ОВЕНа вынашивался полгода. А статья про Modbus в двух частях (с анализом сигналов осциллографом и логическим анализатором и тем, как работают CodeSys v2 и CodeSys v3) вынашивается уже второй год. Так-то.
    Что касается самого "бложока" - дык ему 12ый год идёт. С 2009 года-то. Известный ресурс в узких кругах, между прочим.

    Во-вторых, после того как я увидел этот пример на говнокоде (так это называлось во все времена) - без именований переменных, без комментариев и пояснений в логике, меня стошнило.
    Так как я прогал на разных языках (QB, VB, VC++, PHP, 1C 7.7, MCS-51, AVR, Pascal/Delphi), то судить право имею: во всех языках (а кое-где даже в командах разработки) есть правила оформления кода, именования переменных (причём с разными нотациями), оформления комментариев и отступов, работы с константами и магическими числами. Вкус к понятному коду у меня привит с 1997 года, ибо нефиг.
    И по форуму я вижу, что большинство разрабов под ПЛК делают такую хрень. Открываешь проект, который тебе с пафосом прислали как супер-важный-пример, а там понаписано всякого типа "pr3", "i", "j = pr8 / 10 + i-5", и ты сидишь и офигеваешь.
    Или, что ещё хуже нет никаких проверок границ массивов, валидности указателей, длины буферов, логической валидности принятых данных. Это же, чёрт побери, АЗЫ грамотного программирования: сначала проверил все параметры функции (или FB в нашем случае), потом начал действовать или вывалил код ошибки!
    И вот эти люди (включая Sergey666) будут мне указывать на бложик и на статьи?... Пха!
    Я против этого, и я буду от этого воротить свой нос. И тут меня не перешибёшь ничем: есть понятный код, а есть говнокод.
    При том, что есть обратные примеры, и в разделе ПРок чел с аватаром волка ("ты заходи если чё") быстро рисует отличные понятные FBD на OWL.

    В-третьих, по поводу "разберусь - напишу статью". А вот тут я и скажу следующее: Валенок вон в третий (или пятый) раз объясняет одно и то же с этими STRING.
    Все (как и я сам) спрашивают пример. И где он? Кто-то, включая Валенка самого, подготовил картинки скриншоты, пояснения (то, почему мы так делаем и на каких принципах это построено)? Валенок давал код в теме, которую жахнули... и - всё.
    У меня многие проекты делаются с посыла "если никто, то это сделаю я" и "задолбало". Вот и задолбало. Сделаю пост!

    В-четвёртых, в DWORD меня тянет, так как в VC++ на 32-битной платформе это 4 байта. И осталась привычка с приведением типов указателей к чему угодно. Что например можно склеить DWORD, а потом взять memcpy какой-нить и хажнуть (void*)&dwVariable в REAL. Про то и спрашивал, как тут в CodeSys делают.

    kondor3000 А ты отрицательную температуру потести так. Косяк вылазит на отрицательных.
    Вон, если дома разрабатываешь, возьми чего-нить из морозилки и на датчик положи - и зацени что будет.

    SBeaR Во, про это и надо будет написать в посте. Что, мол, работает не во всех случаях, и надо смотреть на докуму и на практику.
    Хм... про 4ТД интересно. Я нашёл докуму - https://docs.owen.ru/product/moduli_...14#topic-40914 - а там пишут, что якобы он поддерживает команду 0x03 и может отдавать несколько регистров.
    А в реале, значит, ни фига. Значит баг =)

  3. #23
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,670

    По умолчанию

    Ну, в добрый путь, так сказать...Особенно позабавило РНР, 1С 7.7 способствует привитию вкуса к понятному коду. Понятия у нас разные.

  4. #24
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,642

    По умолчанию

    Cs-Cs Word-у и DWord-у на биты плевать всегда было.
    На счет склеивания, так есть же всякие /256 или %256 но так как я немного далек от паскалеподобного CodeSys не знаю как у них там точно.
    Ну или можно SHR, SHL использовать с ИЛИ
    Не суть как вы это сделаете, главное регистры переставить местами.

  5. #25
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,134

    По умолчанию

    Хм... про 4ТД интересно. Я нашёл докуму - https://docs.owen.ru/product/moduli_...14#topic-40914 - а там пишут, что якобы он поддерживает команду 0x03 и может отдавать несколько регистров.
    А в реале, значит, ни фига. Значит баг =)
    По ссылке:

    2021-06-30_9-24-10.png

    Это откровенно неудачная реализация, но она документирована.

  6. #26

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Хм... про 4ТД интересно. Я нашёл докуму - https://docs.owen.ru/product/moduli_...14#topic-40914 - а там пишут, что якобы он поддерживает команду 0x03 и может отдавать несколько регистров.
    А в реале, значит, ни фига. Значит баг =)
    Формально мануал не врет, так как он отдает два регистра (например 62 и 63 для первого датчика), а два это уже несколько . А вот уже три и более отдавать не хочет.

  7. #27

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Это откровенно неудачная реализация, но она документирована.
    Возникает вопрос, почему за столько лет выпуска этого прибора реализацию так и не поправили, особенно если о проблеме всегда было известно? Вы за это время даже умудрились формфактор модуля поменять, что мешало поправить прошивку?

  8. #28
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,642

    По умолчанию

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

  9. #29

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение

    kondor3000 А ты отрицательную температуру потести так. Косяк вылазит на отрицательных.
    Вон, если дома разрабатываешь, возьми чего-нить из морозилки и на датчик положи - и зацени что будет.
    Даже с морозилкой связываться не надо, у меня в моей библиотеке есть блоки разложения REAL на BYTE и WORD и сборки обратно и перестановка местами WORD.
    Взял отрицательный REAL, разложил, так там и байты и ворды положительные и целочисленные, так что пофигу. Скрин из программы выложил. WORD_ы.jpg
    А принцип разложения и сборки байтов и вордов, всё равно сводится к ADR() и указателям, как писал Sergey666. Пример кода выкладывал выше.

    Проблемы могут быть только с целочисленными значениями без смещения точки, по этому поводу уже писал выше. Достаточно объявить переменные как INT и присвоить им значения считанных WORD.
    Последний раз редактировалось kondor3000; 30.06.2021 в 12:39.

  10. #30

    По умолчанию

    Сделал все 4-мя строками, но другим способом.
    Объявил указатели на эти строки.
    Присвоил указателям адреса строк.
    Но все значения равны 0.
    В приложении скрины.
    Делал все по книге.
    Не могу понять что не так, почему в строках все байты равны 0.
    Изображения Изображения

Страница 3 из 10 ПерваяПервая 12345 ... ПоследняяПоследняя

Похожие темы

  1. Опрос модулей МВ110-хх
    от Antonio-oz в разделе Мх110
    Ответов: 2
    Последнее сообщение: 14.12.2019, 14:49
  2. Ответов: 2
    Последнее сообщение: 13.03.2015, 01:00
  3. Ответов: 5
    Последнее сообщение: 20.02.2013, 02:44
  4. Опрос несколько модулей МВ110 через лектус
    от llx89 в разделе Эксплуатация
    Ответов: 5
    Последнее сообщение: 20.02.2013, 02:44
  5. Ответов: 9
    Последнее сообщение: 17.03.2011, 05:48

Ваши права

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