Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Групповое чтение ПЛК100 из Elemer EL-4019

  1. #1

    По умолчанию Групповое чтение ПЛК100 из Elemer EL-4019

    Есть в преобразователе 3 параметра, которые возможно прочитать только групповым запросом. В ПЛК это реализовать не получается, только начинаю их программировать. Может кто сталкивался или есть какие-нибудь идеи?

  2. #2
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    (0x04) — чтение значений из нескольких регистров ввода (Read Input Registers).
    см.:
    http://we.easyelectronics.ru/khomin/...chaynikov.html

  3. #3
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от Knive87 Посмотреть сообщение
    Есть в преобразователе 3 параметра, которые возможно прочитать только групповым запросом. В ПЛК это реализовать не получается, только начинаю их программировать. Может кто сталкивался или есть какие-нибудь идеи?
    Пример с использованием String output module смотреть здесь http://www.owen.ru/forum/showthread....l=1#post141316
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  4. #4

    По умолчанию

    Спасибо большое, помогло, разобрался. Теперь только остался вопрос как разбить REAL на 2 WORD

  5. #5
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от Knive87 Посмотреть сообщение
    Теперь только остался вопрос как разбить REAL на 2 WORD

    Мазохизмом попахивает
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

    По умолчанию

    Преобразовать в dword и разделить на 2 word, только действительно зачем ?

  7. #7

    По умолчанию

    Есть модуль сбора данных МСД-200, которое работает как Slave, а значения в него пишет ПЛК. Если писать как обычно (by Pool time), то получается лестница из значений с привязкой ко времени. Читать архив значений неудобно и неприятно. Поэтому необходима групповая запись переменных из ПЛК. Числа с плавающей точкой (Float). Массивом тип REAL, ,больше одного не передается. Получается только WORD в String array (строковый массив). Разбиваем REAL на 2 WORD и записываем в нужные регистры и получаем нужные значения с линейной привязкой ко времени.

    Появилась еще одна проблема. Необходимо настроить периодичность архивации. by pool time дает максимальную периодичность 10 сек и тройную запись переменной. Есть в настройках Universal network device выполнение по комманде (by command 0xFF-Start 0xFE-Stop), что меня бы вполне устроило, знай я как этим воспользоваться. Как послать эту команду, никак не доходит. Я новичек и возможно мазохист, но стремлюсь к совершенству. Не оставляйте, прошу, незнайкой)))

  8. #8
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от Knive87 Посмотреть сообщение
    Есть модуль сбора данных МСД-200, которое работает как Slave, а значения в него пишет ПЛК. Если писать как обычно (by Pool time), то получается лестница из значений с привязкой ко времени. Читать архив значений неудобно и неприятно. Поэтому необходима групповая запись переменных из ПЛК. Числа с плавающей точкой (Float). Массивом тип REAL, ,больше одного не передается. Получается только WORD в String array (строковый массив). Разбиваем REAL на 2 WORD и записываем в нужные регистры и получаем нужные значения с линейной привязкой ко времени
    Не верю!
    (с) Станиславский Константин Сергеевич

    Специально сделал пример и попробовал, как работает групповая запись REAL с помощью модуля String
    У меня все работает, по крайней мере на панель СП270 запись идет правильно
    Захват-1.png Захват-2.png Захват-3.png
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  9. #9

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Не верю!
    (с) Станиславский Константин Сергеевич

    Специально сделал пример и попробовал, как работает групповая запись REAL с помощью модуля String
    У меня все работает, по крайней мере на панель СП270 запись идет правильно
    Захват-1.png Захват-2.png Захват-3.png
    Делал все так же, для одной переменной получается, а больше нет. Устройство МСД-200. Будем еще пробовать.

  10. #10

    По умолчанию

    REAL напрямую в МСД-200 более одной переменной не передается. Обошел иначе, может кому пригодится. Разбиваем (повторюсь) REAL на 2 WORD и передаем в регистры устройства, соответственно REAL=0..1 регистры, WORD1=0 регистр, WORD2=1 регистр. Теперь по разбивке.

    Объявление переменных:
    x: REAL
    PrpREAL: POINTER TO ARRAY [0..1] OF WORD;
    W: ARRAY [0..1] OF WORD;

    Программа:
    PrpREAL:=ADR(x);
    W[0]:=PrpREAL^[0];
    W[1]:=PrpREAL^[1];

    Получаем 2 переменные из WORD массива, которые и передаем через String-массив.


    Вот способ по сращиванию, нашел где-то, рабочий

    Объявление переменных:
    p1: POINTER TO BYTE;
    p2: POINTER TO BYTE;
    IN_Data: POINTER TO ARRAY[0..1] OF WORD; (*Указатель на массив регистров для Float*)
    Out_data: Real;

    Программа:
    (*Регистры с типом данных Word необходимо пересобрать в обратной последовательности для получения Float*)
    p1:=ADR(Out_data);
    p2:=ADR(IN_Data^[1]);

    p1^:=p2^;
    p1:=p1+1;
    p2:=p2+1;
    p1^:=p2^;
    p1:=p1+1;
    p2:=ADR(IN_Data^[0]);
    p1^:=p2^;
    p1:=p1+1;
    p2:=p2+1;
    p1^:=p2^;

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Извлечь из Архива, чтение из памяти.
    от Пьер в разделе СПК2хх
    Ответов: 16
    Последнее сообщение: 10.05.2016, 12:41
  2. Ответов: 12
    Последнее сообщение: 08.07.2015, 13:54
  3. ПЛК323 - не работает групповое чтение регистров modbus
    от Артур Юрьевич в разделе ПЛК3хх
    Ответов: 0
    Последнее сообщение: 12.04.2015, 15:53
  4. Modbus, групповое чтение - как?
    от torby в разделе Сетевые технологии
    Ответов: 2
    Последнее сообщение: 25.02.2010, 10:02
  5. Чтение из ТРМ
    от spawlov в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 18.11.2007, 07:15

Ваши права

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