Страница 106 из 149 ПерваяПервая ... 65696104105106107108116 ... ПоследняяПоследняя
Показано с 1,051 по 1,060 из 1642

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

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

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

  2. #2

    По умолчанию

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

  3. #3

    По умолчанию

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

  4. #4

    По умолчанию

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

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

  5. #5

    По умолчанию

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

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

  6. #6

    По умолчанию

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

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

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

  7. #7

    По умолчанию

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

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

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

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

  8. #8

    По умолчанию

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

  9. #9

    По умолчанию

    Ну и вот ещё скрины с плавающей точкой.
    Как вариант попробовать сейчас удалить iBus с дискретными входами/выходами и поглядеть что выйдет. У меня подозрения что 2 слейв устройства как-то конфликтуют...возможно..
    Изображения Изображения
    • Тип файла: jpg REAL.jpg (387.9 Кб, Просмотров: 23)
    • Тип файла: jpg 777.89.jpg (397.3 Кб, Просмотров: 12)

  10. #10

    По умолчанию

    Похоже для 18 кодесиса union уже не требуется. К сожалению у меня его нет. А когда овен на него перейдёт не известно

Страница 106 из 149 ПерваяПервая ... 65696104105106107108116 ... ПоследняяПоследняя

Похожие темы

  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, 13:38

Ваши права

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