Страница 868 из 873 ПерваяПервая ... 368768818858866867868869870 ... ПоследняяПоследняя
Показано с 8,671 по 8,680 из 8730

Тема: CODESYS V3.5. Вопросы и ответы

  1. #8671
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,784

    По умолчанию

    DATA уже включает в себя всё, что после точки, метод возможно присваивает нулевые значения при входе
    Это верное суждение.

    Метод возвращает структуру ST_MAP_DATA. В коде метода полям ST_MAP_DATA.RUN и ST_MAP_DATA.STOP не присваивается никаких значений.
    Соответственно, они остаются в значениях по умолчанию - в FALSE.

    При вызове метода эта структура попадает в GVL.MAP[i].DATA, и в этот момент GVL.MAP[i].DATA.RUN и GVL.MAP[i].DATA.STOP получают значение FALSE.
    Поэтому их проверка в IF, расположенная в следующих строках кода, является бессмысленной - условие никогда не выполнится.

  2. #8672

    По умолчанию

    Здравствуйте.

    Вопрос касается CODESYS, СПК110 и МВ110-*.8АС, и он сам по себе короткий: "как средствами СПК изменить настройки Ain.L и Ain.H в МВ110-*.8АС?". И документация на модуль, и настройки устройства MV110-8AS в Codesys мне явным образом говорят "никак", но в то же время я вижу 2 факта: (1) конфигуратор М110 умеет менять эти параметры посредством отправки какой-то инструкции по RS-485, (2) СПК110 также умеет отправлять любые инструкции по любым адресам по RS-485, значит, видимо, принципиально это возможно.

    Длинная часть -- описание, зачем мне это нужно:
    У заказчика стоит мой стенд гидроиспытаний, среди прочего имеющий датчик давления 4..20мА (далее "мой датчик") и модуль МВ110-*.8АС. Также имеется контрольный датчик 4..20мА, подключенный к системе заказчика, данные с которого я получаю в свою систему по Ethernet. Оба датчика поверены, трогать их нельзя, они должны показывать одинаковые значения, но в силу разных причин могут показывать разные значения, причём корректность поверки -- не моя зона ответственности. Данные контрольного датчика считаются истиной. Мне нужно чтобы оператор стенда, без необходимости повышения квалификации, в рамках периодического обслуживания стенда или при обнаружении существенных расхождений, нажал кнопку "калибровать датчик", после чего стенд воспроизводит 10 давлений во всём диапазоне датчика, находит по ним уклон/смещение, проверяет линейность и корректирует Ain.L и Ain.H.

    Вариант корректировать показания в программе контроллера мне критически не нравится в силу ряда причин. Я хочу использовать одну величину, а вместо этого для обеспечения полной надёжности у меня образуется куча мусора: переменная с неверным сигналом, переменная с верным сигналом, две переменные с уклоном и смещением, ещё две переменные с уклоном и смещением в энергонезависимой памяти, строки кода для пересчёта давления на каждом цикле, файл в flash-памяти контроллера с уклоном и смещением чтобы не вводить их заново каждый раз когда загружаю обновление, а значит переменная с дескриптором файла, переменная для результатов записи/чтения, переменная с количеством байт записи, строки кода в первом цикле контроллера с открытием, записью, чтением, преобразованием типов, закрытием, проверкой удалился ли дескриптор, и бог знает что ещё. Иначе я каждый раз с загрузкой обновления выписываю данные на листочек, и заношу из листочка обратно в настройки, это неудобно, а иногда и вовсе забывается и надо калибровать заново. Также мне не нравится что я не купирую враньё на подступе, то есть пропускаю его через МВ110, и уже в ПО прямым текстом с первых строк программы пишу "датчик мне врёт, поэтому вот я 100 раз в секунду вру на столько же в обратную сторону". Вместо этого после процесса калибровки я хочу записать в журнал событий, что, оказывается, мой датчик не от 0 до 2500 бар, а от -47 до 2484, и вносить эти изменения непосредственно в МВ110, не пропуская враньё в зону своей ответственности вообще.

    Вариант подключаться к модулю конфигуратором тоже неприемлем: оператор, в чьи обязанности не входит вооще никакая настройка, вместо инструкции "нажмите кнопку Тарировать и не трогайте стенд 10 минут" получает инструкцию "откройте шкаф, отсоедините от контактов RS-485 контроллер, подсоедините модуль АС-4, подключите к ноутбуку, найдите программу конфигуратор М110" и пр.

    Как я понимаю "широкими мазками", я должен в дереве проекта в тот же ком-порт где у меня висит преднастроенный слейв MV110_8AS, добавить ещё один слейв с тем же адресом, и на период перезаписи значений каким-то образом отключить MV110_8AS, включить второй слейв, отправить по какому-то секретному адресу команду записи новых Ain.L и Ain.H, проверить что они записались, выключить второй слейв и снова включить MV110_8AS. Но детали и возможные подводные камни мне не известны..

    На всякий случай, предвижу вопрос, почему бы мне не пользоваться в ПО данными контрольного датчика, раз они у меня есть: у системы на контрольном датчике очень большой период опроса, а, например, в циклических испытаниях исключительно важна практически мгновенная реакция, иначе работа всей программы очень сильно замедлится. Плюс я не хочу чтобы моя программа опиралась на данные устройства, к приобретению и установке которого я не имею никакого отношения.

  3. #8673

    По умолчанию

    МВ110 конфигурируются по протоколу OWEN, так что через конфигуратор СПК менять настройки модуля не получится.

  4. #8674

    По умолчанию

    [QUOTE=Dmnd;479996]Здравствуйте.

    Вопрос касается CODESYS, СПК110 и МВ110-*.8АС, и он сам по себе короткий: "как средствами СПК изменить настройки Ain.L и Ain.H в МВ110-*.8АС?". И документация на модуль, и настройки устройства MV110-8AS в Codesys мне явным образом говорят "никак"...

    Не знаю, что за документация у вас, но в руководстве на модуль написано, что адреса с 0x58 по 0x77 отведены именно под эти значения.

  5. #8675

    По умолчанию

    Цитата Сообщение от Николай Суриков Посмотреть сообщение
    МВ110 конфигурируются по протоколу OWEN, так что через конфигуратор СПК менять настройки модуля не получится.
    По моему, очевидно, некомпетентному разумению, в модуле есть какой-то конкретный регистр, с каким-то конкретным адресом, содержащий нужные для корректировки величины, и он принципиально доступен для чтения-записи. Точно ли мне для того, чтобы до этого регистра добраться, нужен именно протокол OWEN? И если это бесспорно так, точно ли у меня никак не получится настроить обмен контроллера с модулем по этому протоколу, любыми мыслимыми окольными путями, пусть с посредником в виде АС-4 и ПК, главное чтобы без участия оператора?

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

    Upd. Нашёл руководство по протоколу OWEN в Codesys. Похоже, это путь к решению. Действительно, в документации на модуль я упёрся в фразу "Значения <конфигурационных> параметров следует задавать с помощью программы
    «Конфигуратор М110»" и решил что это принципиальное ограничение разработчика..
    Последний раз редактировалось Dmnd; 18.02.2026 в 17:08.

  6. #8676
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,784

    По умолчанию

    и на период перезаписи значений каким-то образом отключить MV110_8AS
    Это не обязательно.

    отправить по какому-то секретному адресу команду записи новых Ain.L и Ain.H
    Они не секретные и, как написали выше, указаны в РЭ.
    См. стр. 38:
    https://owen.ru/downloads/re_mv110-8as.pdf

    После их записи нужно сделать запись регистра INIT для применения настроек и сохранения их в энергонезависимой памяти модуля.
    См. стр. 39 в том же документе.

  7. #8677

    По умолчанию

    Цитата Сообщение от Dmnd Посмотреть сообщение
    По моему, очевидно, некомпетентному разумению, в модуле есть какой-то конкретный регистр, с каким-то конкретным адресом, содержащий нужные для корректировки величины, и он принципиально доступен для чтения-записи. Точно ли мне для того, чтобы до этого регистра добраться, нужен именно протокол OWEN? И если это бесспорно так, точно ли у меня никак не получится настроить обмен контроллера с модулем по этому протоколу, любыми мыслимыми окольными путями, пусть с посредником в виде АС-4 и ПК, главное чтобы без участия оператора?

    Просто если допустить, что путь автоматизации может быть сколь угодно уродлив, то задача принципиально решаемая, но хотелось бы чтобы причастные при виде решения не хватались за голову..
    Реализация настроек на протоколе owen займет больше времени и ресурсов чем если вы весь свой алгоритм "калибровки" реализуете в программе.
    Последний раз редактировалось Николай Суриков; 18.02.2026 в 17:09.

  8. #8678
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,784

    По умолчанию

    Цитата Сообщение от Николай Суриков Посмотреть сообщение
    Простите за неточность.
    А модуль с какой версией прошивки? H/W 2.0? Тогда там Modbus.
    Если нет, то реализация настроек на протоколе owen займет больше времени и ресурсов чем если вы весь свой алгоритм "калибровки" реализуете в программе.
    У модулей МВ110-8АС и МВ110-2АС не было обновления на аппаратную ревизию H/W 2.0.
    Поддержка изменения конф. параметров по Modbus была в них всегда.

  9. #8679

    По умолчанию

    Всем спасибо! Домыслил себе ограничения сам, потратил кучу времени на описание задачи, а всё сравнительно просто >_<
    p.s. не считаю открытие доступа к редактированию конфигурационных параметров модулей зря потраченными ресурсами, тем более что этот участок кода будет срабатывать условно раз в пол-года, в то время как пересчёт показаний датчика в программе будет производиться либо 100 раз в секунду, либо по обновлению циклического времени. Тем более что в обозримой перспективе датчиков будет 3 на разные диапазоны, и все лишние переменные превратятся в лишние массивы, с теми же проблемами хранения. Есть какое-то ощущение неправильности от такого пересчёта.

  10. #8680

    По умолчанию

    Цитата Сообщение от Dmnd Посмотреть сообщение
    Всем спасибо! Домыслил себе ограничения сам, потратил кучу времени на описание задачи, а всё сравнительно просто >_<
    p.s. не считаю открытие доступа к редактированию конфигурационных параметров модулей зря потраченными ресурсами, тем более что этот участок кода будет срабатывать условно раз в пол-года, в то время как пересчёт показаний датчика в программе будет производиться либо 100 раз в секунду, либо по обновлению циклического времени. Тем более что в обозримой перспективе датчиков будет 3 на разные диапазоны, и все лишние переменные превратятся в лишние массивы, с теми же проблемами хранения. Есть какое-то ощущение неправильности от такого пересчёта.
    Вам конечно виднее, но если вопрос правильности показаний стоит так остро, что используются контрольный датчик, то использование коэффициентов наклона и смещения выглядит несколько странно. Ну ладно смещение, но наклон?
    Я бы оставил сигнал с модуля в диапазоне 4..20 и пересчитывал его в ФЕ в программе, добавив только корректировку смещения значения.
    А если в 10 значениях внутри диапазона погрешность получается разная и нелинейная - тогда что делать?

Страница 868 из 873 ПерваяПервая ... 368768818858866867868869870 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 4156
    Последнее сообщение: Сегодня, 15:39
  2. Панели оператора ИП320. Вопросы и ответы
    от automat в разделе Панели оператора (HMI)
    Ответов: 863
    Последнее сообщение: 02.03.2026, 17:13
  3. ИПП120. Вопросы и ответы
    от Р.Александр в разделе Программируемые реле
    Ответов: 273
    Последнее сообщение: 08.09.2025, 13:21
  4. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  5. Панели оператора СП270. Вопросы и ответы
    от Давидюк в разделе Панели оператора (HMI)
    Ответов: 930
    Последнее сообщение: 15.05.2017, 17:12

Ваши права

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