Страница 116 из 131 ПерваяПервая ... 1666106114115116117118126 ... ПоследняяПоследняя
Показано с 1,151 по 1,160 из 1308

Тема: CODESYS V3.5. Настройка обмена с другими устройствами (Modbus, ОВЕН, OPC и др.)

  1. #1151

    По умолчанию

    Real не проходит по modbus, надо делать структуру или как там:
    DataR: real;
    DataM: array (0.. 1) of word; поищите на форуме, есть ссылка на документ по работе с вордами в modbus

    Modbus это 1 или 2 word. Так как вы сделали, не делается.

  2. #1152

    По умолчанию

    Цитата Сообщение от Yakut Посмотреть сообщение
    А вот в этом вся фишка и происходила.
    REAL спокойно проходил по МОДБАС в CODESYS! переведу с русского, я не дробил его на массив в WORD.

    По первому вопросу (QW7 в утиль) мне тогда непонятно, как можно симулировать сигнал из программы в панельку. Можете подсказать?
    Если вы соотнесли переменные, то вы в программе должны из и использовать и забыть про qw...

  3. #1153

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    Real не проходит по modbus, надо делать структуру или как там:
    DataR: real;
    DataM: array (0.. 1) of word; поищите на форуме, есть ссылка на документ по работе с вордами в modbus

    Modbus это 1 или 2 word. Так как вы сделали, не делается.
    Конечно, не делается. Это можно оставить, оно сейчас никакой рояли не играет, даже если я сделаю как вы предлагаете разбиванием при помощи ARRAY на 2 WORD - будет так же песня.
    Вопрос мой так и не получил ответа: как мне в программе сделать симуляцию REAL значения, что бы я на панельке увидел её. Я использую глобальные переменные вот их и хочу туда/сюда пересылать.

  4. #1154

    По умолчанию

    Расскажу как делал я.
    Имеется контроллер, сенсорная панель с modbus tcp master, кнопочная панель с modbus rtu master.
    Составил таблицу регистров в экселе, и определил их количество. Для реалов соответственно зарезервировал 2 регистра. В контроллере сделал массив на данное количество регистров и соотнес каждый элемент массива своему регистру. А реал выжимал структурой, или как там она называется, нет под рукой кодекса, только телефон.
    Ну и ещё галочку в кодесисе поставил, чтение и запись!

  5. #1155

    По умолчанию

    TYPE DUT_MODBUS_Real_Word:
    UNION
    U_RealInModbus: ARRAY [0..1] OF WORD;
    U_RealInProgramm: REAL;
    END_UNION
    END_TYPE

    Использовать объединение.
    В программе задаете реал, а ворды соотносите с регистрами. Панель сама поймёт где что, если правильно настроить.

  6. #1156

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    Расскажу как делал я.
    Имеется контроллер, сенсорная панель с modbus tcp master, кнопочная панель с modbus rtu master.
    Составил таблицу регистров в экселе, и определил их количество. Для реалов соответственно зарезервировал 2 регистра. В контроллере сделал массив на данное количество регистров и соотнес каждый элемент массива своему регистру. А реал выжимал структурой, или как там она называется, нет под рукой кодекса, только телефон.
    Ну и ещё галочку в кодесисе поставил, чтение и запись!
    Вот примерно этим же и занимаюсь.
    Только хочу понять с какого регистра ползти, как биты и регистры проименовать, а для этого делаю эдакий полевой стенд, что бы понять чего куда крутить. Но раньше работало, а сейчас почему-то отказалось. Причём даже сегодня с 1 регистром удалось побаловаться, с другими уже нет, а потом и 1 отвалился.
    Изображения Изображения

  7. #1157

    По умолчанию

    https://owen.ru/product/codesys_v3/documentation

    Там есть документ, называется протокол модбас.
    Изучайте. А то вы другой контроллер программируете и пытаетесь получить ответы, которые тут уже описаны.
    Последний раз редактировалось МихаилГл; 06.11.2023 в 21:01.

  8. #1158

    По умолчанию

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

    Я не делал как вы, а просто соотносил регистры, типа reg[1] и т.д. что бы в программе использовать циклы.

    Иначе вам каждый этот бит регистра в программе присваивать какой-то переменной, если у вас 40 механизмов и на каждый 50 аварий и состояний, то вам описывать 2000 строк, вы на этом неделю потеряете и запутаетесь в коде.

  9. #1159

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    И ещё, соотносить можно что-то одно, либо целиком регистры, либо их биты по отдельности. Вместе и то и то нельзя, выдаст такую же ошибку.

    Я не делал как вы, а просто соотносил регистры, типа reg[1] и т.д. что бы в программе использовать циклы.

    Иначе вам каждый этот бит регистра в программе присваивать какой-то переменной, если у вас 40 механизмов и на каждый 50 аварий и состояний, то вам описывать 2000 строк, вы на этом неделю потеряете и запутаетесь в коде.
    Ексель сам пишет по скрипту эти строки, я только их заполняю. В этом вся соль. Поэтому ошибки быть не может.

    У меня имеется контроллер на борту которого MODBUS TCP/IP, в котором уже есть входы и выходы, которые автоматические создаются производителем в своём ПО. Я эти входы присваиваю к глобальным переменным, что бы их же и отсылать в HMI. А для этого я создаю ещё устройство HMI делаю его мастером и ему пытаюсь всё это конвертировать. Ну и конечно же добавлять свои переменные, как вы уже и упомянули аварии, состояния и т.д. В ручке делать это всё = безумие, поэтому и пытаюсь этот процесс автоматизировать, что бы уйти от ошибок.

  10. #1160

    По умолчанию

    Вот, достал старую версию программы от 1.11.23 и там как видно на скринах привязанное значение A:=real; успешно прицепилось к адресу регистра RW10 со сдвигом 10 009 в CDS без всяких ошибок.
    Но уже B:=REAL во второй канал с адресом RW4 и сдвигом 10 003 выползает в ошибку. Где-то есть перехлёст по адресам. Конечно счас полетят помиодры мол там нет плавающей запятой и это верно, мне главное узнать именно адреса глобальных переменных регистров и их даже привязывать не нужно будет, я просто напишу глобальная переменная a AT %QW 8 и т.д. По факту (в полях на оборудовании) у меня эти значения передавались с плавающей запятой. На скринах уже есть эмулятор панельки справа.
    Изображения Изображения

Страница 116 из 131 ПерваяПервая ... 1666106114115116117118126 ... ПоследняяПоследняя

Похожие темы

  1. Настройка ПР200, управление 3-мя устройствами через RS-485
    от Orbes в разделе Среда программирования OWEN Logic
    Ответов: 20
    Последнее сообщение: 15.05.2017, 16:45
  2. СП3ХХ Пример настройка обмена с ПЛК на CODESYS 2.3
    от Denis_Kay в разделе Панели оператора (HMI)
    Ответов: 6
    Последнее сообщение: 02.03.2017, 15:12
  3. Ответов: 43
    Последнее сообщение: 13.04.2015, 14:05
  4. Универсальная функция для обмена с устройствами OwenIO и всеми любимый LabView.
    от Алексей Крагель в разделе Помощь Разработчикам
    Ответов: 0
    Последнее сообщение: 30.05.2014, 14:38

Ваши права

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