Показано с 1 по 3 из 3

Тема: Передача REAL из СПК107 в lectus через ADAM-4520

  1. #1

    По умолчанию Передача REAL из СПК107 в lectus через ADAM-4520

    Приветствую всех!

    Коротко суть:
    имею на руках контроллер СПК107, ПО для него написано в украине. Использовался структурированный текст (ST).

    Через разъем COM1 СПК подключен к первичному устройству и считывает с него данные посредством протокола MODBUS RTU. Поставлена задача подключить СПК через COM2 с помощью преобразователя ADAM-4520 к COM порту компьютера для передачи переменных в Lectus OPC.

    Переменные INT передать понял как настроить, а вот с REAL не пойму как справиться. На форуме есть похожие темы, и там этот вопрос разбирали, в частности предлагается импортировать в проект конвертер, но он в мою версию CDS 3.5 SP4 Patch 4 не импортируется. Почитав несколько тем на форуме я понял, что не хватает опыта понять суть предлагаемых альтернативных решений (просто нет понятной разжеванной инструкции или работающего примера) и поэтому решился поднять этот вопрос еще раз.

    Значит, собственно, вопрос, как поделить REAL на два ворда и в Lectus собрать обратно? Нужен конкретный пример или внятное описание. Буду премного благодарен!!!

    P.S. Варианты умножать на 100, 1000 не подходят, ибо количество знаков после запятой варьируется на некоторых переменных, также не годится вариант резать до INT, ибо просто не хватает байт чтоб уместить число в 6-7 знаков до запятой.
    Последний раз редактировалось Jimmo; 31.03.2015 в 15:09.

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

    По умолчанию

    Цитата Сообщение от Jimmo Посмотреть сообщение
    Значит, собственно, вопрос, как поделить REAL на два ворда и в Lectus собрать обратно? Нужен конкретный пример или внятное описание. Буду премного благодарен!!!

    P.S. Варианты умножать на 100, 1000 не подходят, ибо количество знаков после запятой варьируется на некоторых переменных, также не годится вариант резать до INT, ибо просто не хватает байт чтоб уместить число в 6-7 знаков до запятой.
    поделить REAL на два ворда:
    Код:
    VAR
    	pt: POINTER TO WORD;
    	a:REAL;
    	W1: WORD;
    	W2: WORD;
    END_VAR
    pt:=ADR(a);
    W1:=pt^;
    pt:=pt+2;
    W2:=pt^;
    Порядок WORD по вкусу
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #3

    По умолчанию

    Адаптировал алгоритм в украинский проект, все скомпилировалось и трансляция данных на COM порт идет, НО! Lectus ни с какими настройками не читает их. Провозившись с настройками полдня плюнул и сымитировал все то же самое в чистом проекте и, О ЧУДО!, побежали данные в OPC. Огромное спасибо petеra за подсказку.

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

    Знающие люди, подскажите, что может мешать передаче данных?

    Кстати, меня удивило то обстоятельство, что Lectus читает данные функцией 04, ведь в инструкции ModBus_VS_CODESYS_V35.pdf написано, что с входными регистрами работает ф-я 03 для чтения и 16 для записи, кстати писать пока не пробовал, тут ведь тоже наверняка будут ньюансы...

Похожие темы

  1. Ответов: 26
    Последнее сообщение: 06.02.2015, 12:29
  2. ТРМ202 +ADAM-4520 +ОРМ
    от Анисим в разделе OWEN Proces Manager
    Ответов: 20
    Последнее сообщение: 14.09.2012, 16:17
  3. ТРМ33 и ADAM-4520
    от OPER в разделе Сетевые технологии
    Ответов: 5
    Последнее сообщение: 19.04.2009, 18:20
  4. проблема связать ТРМ151 с ADAM-4520
    от Arthur в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 25.03.2008, 15:58

Ваши права

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