Страница 5 из 10 ПерваяПервая ... 34567 ... ПоследняяПоследняя
Показано с 41 по 50 из 95

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

  1. #41

    По умолчанию

    Написал совсем маленькую программу. Один маленький стринг из 4-х байт на опросе. Считываю из 4-го регистра, чтобы не смущать нулевым.
    И все равно нули в каждом байте стринга.
    Если сделаю стринг из двух байт, то значение зачитывается верное и в программе записывается в первый элемент массива.
    Получается контроллер может оперировать только стрингом двухбайтным, остальные стринги не переваривает.
    Может какие нужно библиотеки подключить для стрингов?
    Изображения Изображения

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

    По умолчанию

    Да это потому-что в книге автор ересь написал, функция Pointer_to_array:=Adr(чего-то там) возвращает адрес первого элемента массива, а следующий будет Pointer_to_array:=Pointer_to_array+1; Вот у вас один ворд и заходит, а автор индус.
    Хотя может быть с этим Pointer_to_array и не так, а индус я? И странно, что в строке в конфигураторе ничего нет, или что-то есть?
    Последний раз редактировалось Sergey666; 30.06.2021 в 16:44.

  3. #43

    По умолчанию

    Цитата Сообщение от Sergey666 Посмотреть сообщение
    Да это потому-что в книге автор ересь написал, функция Pointer_to_array:=Adr(чего-то там) возвращает адрес первого элемента массива, а следующий будет Pointer_to_array:=Pointer_to_array+1; Вот у вас один ворд и заходит, а автор индус.
    не совсем понимаю в чем ошибка автора. Есть массив данных А у него есть адрес. Объявляем переменную pA типа указатель на массив и присваиваем ей значение адреса массива А. Далее с помощью оператора ^ можем обращаться к элементам массива по индексу pA^[1], pA^[2]......
    Разве это не работает?

  4. #44

    По умолчанию

    Ian, не занимайтесь, как бы это помягче.... ерундой. Вам уже русским по белому написали, что задержка ответа на 30-50 сек- это полная хрень, даже при работе через конфигуратор. Да, он несовершенный, да, есть способы лучше, изящнее, быстрее получать данные. но сейчас это не для вас, с вашим уровнем подготовки. Сейчас вы раскрываете народу тайну о том, что из трех сконфигурированных блоков у вас подключен только один. А что, раньше нельзя было об этом сказать?
    Начните осваивать профессию с ПРОСТЫХ задач, не прескакивая через ступеньки. Сделайте ПУСТОЙ проект, сконфигурируйте в нем оди модуль, подключите его, и данные будут летать. потом сконфигурируйте и подключите еще один, и если всё настроено верно, то данные тоже будут летать. Ваши тормоза скорее всего связаны с тем, что вы 4 модуля сконфигурировали, а подключили всего один. остальные три опрашиваются, но не откликаются. И не стесняйтесь сюда выкладывать свои произведения, чтобы народ не гадал на кофейной гуще.

  5. #45

    По умолчанию

    Цитата Сообщение от YuriBel Посмотреть сообщение
    Ian, не занимайтесь, как бы это помягче.... ерундой. Вам уже русским по белому написали, что задержка ответа на 30-50 сек- это полная хрень, даже при работе через конфигуратор. Да, он несовершенный, да, есть способы лучше, изящнее, быстрее получать данные. но сейчас это не для вас, с вашим уровнем подготовки. Сейчас вы раскрываете народу тайну о том, что из трех сконфигурированных блоков у вас подключен только один. А что, раньше нельзя было об этом сказать?
    Начните осваивать профессию с ПРОСТЫХ задач, не прескакивая через ступеньки. Сделайте ПУСТОЙ проект, сконфигурируйте в нем оди модуль, подключите его, и данные будут летать. потом сконфигурируйте и подключите еще один, и если всё настроено верно, то данные тоже будут летать. Ваши тормоза скорее всего связаны с тем, что вы 4 модуля сконфигурировали, а подключили всего один. остальные три опрашиваются, но не откликаются. И не стесняйтесь сюда выкладывать свои произведения, чтобы народ не гадал на кофейной гуще.
    Сделал новый проект с одним модулем, где куча input register module, real input module опрашивает не прям мгновенно, но быстро.
    Хочу уже перейти на одну ступеньку выше, потому что этап как добавлять в конфигураторе опросные модули, как мне кажется я уже прошел.
    Оптимизирую код с помощью стринговых модулей, не получается. Сделал простейшую программу(выложил ее постом выше) по изученным советам, не работает.
    Что делать дальше, тренироваться добавлять в конфигураторе пока мышка не сломается или поможете разобраться со стрингом?

  6. #46

    По умолчанию

    Посмотрел много постов выше, увидел каие-то обрываочные картинки, на которых половины не видно. Это называется "выложил ее постом выше"?. Мне кажется, что с таким подходом вы можете до посинения ковыряться с указателями, структурами, перестановкой байтов, но у вас входные данные, которые конфигуратор получает от модуля, пустые, поэтому ничего вы не увидите. разбирайтесь с ОПРОСОМ модуля, смотрите, что он вам ОТВЕЧАЕТ

  7. #47

    По умолчанию

    Цитата Сообщение от YuriBel Посмотреть сообщение
    Посмотрел много постов выше, увидел каие-то обрываочные картинки, на которых половины не видно. Это называется "выложил ее постом выше"?. Мне кажется, что с таким подходом вы можете до посинения ковыряться с указателями, структурами, перестановкой байтов, но у вас входные данные, которые конфигуратор получает от модуля, пустые, поэтому ничего вы не увидите. разбирайтесь с ОПРОСОМ модуля, смотрите, что он вам ОТВЕЧАЕТ

    Прикладываю программу. Там три строчки.

    МВ110-220.8.AC настроен, соединен корректно, если опрашивать Register Input Module то выдает правильное значение, то есть вариант что МВ110-220.8.AC не выдает данные отметается. Он не выдает данные только если опрашивать его STRING INPUT MODULE и установить количество байт больше чем два.
    Изображения Изображения
    Вложения Вложения
    Последний раз редактировалось Ian; 30.06.2021 в 17:50.

  8. #48

    По умолчанию

    Ну тогда открывайте инструкцию на 8АС, и читайте, по каким адресам регистров нужно обращаться за теми или иными данными. Что вы там читаете из регистра с адресом 4? У меня нет уверенности, что конфигурационные параметры могут читаться групповыми запросами. Если вас интересуют измеренные значения, то они хранятся с адреса 0х100, то есть по-рабоче-крестьянски с адреса 256. Я у себя делал по-другому, не пользуясь указателями. Сначала объявил структуру примерно так:
    struct.jpg
    Потом объявил переменную с типом этой структуры, настроив ее абсолютный адрес вот так:Prg.jpg
    При этом в конфигурации опрос настроил вот такcfg1.jpg и вот такcfg2.jpg
    И эта конструкция за одно обращение считывает 8 значений IRD (по восьми каналам), а дальше я уже я делаю с ними то, что посчитаю нужным.
    Вот как-то так

  9. #49

    По умолчанию

    Цитата Сообщение от YuriBel Посмотреть сообщение
    Ну тогда открывайте инструкцию на 8АС, и читайте, по каким адресам регистров нужно обращаться за теми или иными данными. Что вы там читаете из регистра с адресом 4? У меня нет уверенности, что конфигурационные параметры могут читаться групповыми запросами. Если вас интересуют измеренные значения, то они хранятся с адреса 0х100, то есть по-рабоче-крестьянски с адреса 256. Я у себя делал по-другому, не пользуясь указателями. Сначала объявил структуру примерно так:
    struct.jpg
    Потом объявил переменную с типом этой структуры, настроив ее абсолютный адрес вот так:Prg.jpg
    При этом в конфигурации опрос настроил вот такcfg1.jpg и вот такcfg2.jpg
    И эта конструкция за одно обращение считывает 8 значений IRD (по восьми каналам), а дальше я уже я делаю с ними то, что посчитаю нужным.
    Вот как-то так
    По адресу 4 хранится тип датчика 5 входа МВ110.
    Инструкцию прочитал, ограничений на групповое считывание конфигурационных параметров не увидел.
    Изображения Изображения

  10. #50

    По умолчанию

    Учитывая. что иногда всплывают сюрпризы типа описанных в сообщениях 27 и 31, не удивлюсь, если групповой опрос конфигурационных параметров не поддерживается. Какие-то ограничения все-таки есть, ибо в инструкции написано "Для функций 03, 04 и 16 допускается запись или чтение регистров, относящихся только к одной команде. При попытке записать или прочитать регистры нескольких команд возвращается ошибка 4 («Failure in associated device»). Исключение составляют регистры оперативных параметров, которые могут быть все считаны одной командой, при этом начальный адрес регистра может быть любым в пределах адресов оперативных параметров."
    В любом случае, тот пример, который я привел, позволяет читать одной строкой все восемь каналов. попробуйте прочитать область оперативных параметров, потом будете делать выводы.

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

Похожие темы

  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

Ваши права

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