Показано с 1 по 10 из 48

Тема: О неподдериваемых типах данных

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    9,438

    По умолчанию

    Цитата Сообщение от Borserg Посмотреть сообщение
    Коллеги, попробовал варианты:

    1. Мастер - целочисленная 32 бит, слейв - целочисленная с резервом следующего регистра. Мастер копируем в слейв напрямую.
    В СП3хх - DWord, Unsigned, 10 знаков.
    Получили 5132 вместо реального 3092.

    2. Мастер - целочисленная 32 бит, слейв - с плавающей запятой. Мастер копируем в слейв через x->F.
    В СП3хх - DWord, Unsigned, 10 знаков.
    Получили 1168138240 вместо реального 3092.

    3. Мастер - целочисленная 32 бит, слейв - с плавающей запятой. Мастер копируем в слейв через x->F.
    В СП3хх - DWord, Float, 10 знаков.
    Получили 5132 вместо реального 3092.

    4. Мастер - с плавающей запятой, слейв - с плавающей запятой. Мастер копируем в слейв напрямую.
    В СП3хх - DWord, Float, 10 знаков.
    Получили 0 вместо реального 3092.

    5. Мастер - с плавающей запятой, слейв - с плавающей запятой. Мастер копируем в слейв напрямую.
    В СП3хх - DWord, Unsigned, 10 знаков.
    Получили 5132 вместо реального 3092.

    Положительный вариант:

    - в мастере две целочисленных переменных 16 бит - старший и младший регистры 32-битного значения
    - копирование этих регистров в две целочисленных 16 бит переменных слейва
    - копирование двух регистров слейва в два внутренних регистра PSW СП3хх
    - отображение на дисплее СП3хх переменной типа DWord Unsigned с младшего адреса PSW

    Личное мнение:
    Возможность создания целочисленных локальных и сетевых мастер переменных 32 бит и невозможность создания таких слейв переменных - очень большая недоработка OL.
    Мне вот кажется 4-й вариант самый простой, а в панели указать, что это мол 32 битная целочисленная переменная и всё! Только порядок чередования байт придётся подобрать! Это если у Вас изначально такая переменная, а модбасу без разницы, что это, он два регистра передал, всё, дальше не его проблемы!
    Вот зачем Вы панели говорите, что это переменная с плавающей запятой(в этом 4-ом варианте), если утверждаете что изначально это 32 битная целочисленная переменная, это загадка тысячелетия, я тут всё, опускаю руки! Разве так бывает, самому себе противоречить! Здесь разумные объяснения неуместны!
    Вот 5-ый вариант более правильный, в смысле, насколько понял у вас изначально целочисленный беззнаковый тип данных, если Вам верить, какой на самом деле не известно!
    Последний раз редактировалось Сергей0308; 08.12.2022 в 00:51.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  2. #2
    Пользователь Аватар для Borserg
    Регистрация
    06.05.2015
    Адрес
    Санкт-Петербург
    Сообщений
    150

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    Мне вот кажется 4-й вариант самый простой, а в панели указать, что это мол 32 битная целочисленная переменная и всё! Только порядок чередования байт придётся подобрать! Это если у Вас изначально такая переменная, а модбасу без разницы, что это, он два регистра передал, всё, дальше не его проблемы!
    Вот зачем Вы панели говорите, что это переменная с плавающей запятой(в этом 4-ом варианте), если утверждаете что изначально это 32 битная целочисленная переменная, это загадка тысячелетия, я тут всё, опускаю руки! Разве так бывает, самому себе противоречить! Здесь разумные объяснения неуместны!
    Вот 5-ый вариант более правильный, в смысле, насколько понял у вас изначально целочисленный беззнаковый тип данных, если Вам верить, какой на самом деле не известно!
    Так 5-й вариант и есть то, что Вы советуете.
    Я просто перебирал все возможные варианты и себе не противоречу.
    Тип данных действительно беззнаковый целый 32 бит (UDINT).
    Если эту переменную из устройства читать прямо в ПР3хх, указав в свойствах дисплея DWord, Unsigned, значение отображается корректно.

    Что касается порядка чередования байт, то его нельзя указать для отдельной переменной.
    А там есть еще переменные INT и UINT, которые передаются корректно.
    Кстати, переменные INT (целочисленное со знаком) отображаются в ПР3хх (и положительные и отрицательные) корректно без всяких преобразований на стороне ПР200.
    Достаточно в свойствах дисплея выбрать Word, Dec.

Похожие темы

  1. Ответов: 21
    Последнее сообщение: 01.07.2022, 06:36
  2. Вод данных в СПК
    от alexx12 в разделе СПК1xx (архив)
    Ответов: 3
    Последнее сообщение: 17.12.2018, 09:19
  3. Передача данных СПК107 на СМИ-1. Тип данных REAL.
    от ByuT в разделе Панели оператора (HMI)
    Ответов: 1
    Последнее сообщение: 23.01.2016, 23:35
  4. Выгрузка данных 110-60м
    от STARIY в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 12.11.2015, 20:22
  5. Ответов: 19
    Последнее сообщение: 21.03.2013, 07:41

Ваши права

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