Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя
Показано с 11 по 20 из 48

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

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

    По умолчанию

    Dword в два Word и обратно (обратно можно и Add использовать вместо OR)
    Изображения Изображения

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Dword в два Word и обратно (обратно можно и Add использовать вместо OR)
    Уважаемый, я, наверное, отстал от жизни, но с каких пор функция OR оперирует не булевыми, а целочисленными значениями?

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

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Не должны (не знаю, будет ли исправлять ПР значение float, если будет неправильный формат). Но надо проверять, что байты-слова не меняются при получении/отправке.
    Если не получится, то можно попробовать читать UDINT(DWORD) в ПР двумя последовательными регистрами, и в слейв копировать также двумя регистрами, ну а читать по адресу первого из регистров, как float
    Обязательно проверю и отпишусь.

  4. #14

    По умолчанию

    Цитата Сообщение от Borserg Посмотреть сообщение
    Уважаемый, я, наверное, отстал от жизни, но с каких пор функция OR оперирует не булевыми, а целочисленными значениями?
    Есть многое на свете, друг Горацио...

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

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Есть многое на свете, друг Горацио...
    Смешно ...

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

    По умолчанию

    Borserg Если подать целочисленные на OR то сравниваются ВСЕ биты. вот и все.
    То же самое и для AND в ОЛ и не только в ОЛ...

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

    По умолчанию

    melky, каюсь, не знал о такой возможности.

    Коллеги, а ведь никто не сказал, что целочисленные переменные в OL теперь могут быть 32-разрядными.
    Выдержка из справки: "Переменная целочисленного типа может принимать значение целого числа в диапазоне от 0 до 4294967295".
    При создании целочисленной сетевой переменной для слота Master есть возможность выбрать количество регистров - 1 или 2.
    Вот только непонятно, почему такой возможности нет при создании целочисленной сетевой переменной для слота Slave?

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

    По умолчанию

    Borserg просто мастер надо было притянуть к стандарту, а slave это возможности процессора и ПО, могли бы сразу сделать и +- типы и 32 бит типы а не только "Целочисленное"
    то есть все эти преобразования можно было сделать на уровне firmware и поддержать для тех ПР, в которых процессор позволяет.

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

    По умолчанию

    Коллеги, попробовал варианты:

    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.

  10. #20
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,242

    По умолчанию

    Цитата Сообщение от 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 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя

Похожие темы

  1. Ответов: 21
    Последнее сообщение: 01.07.2022, 06:36
  2. Вод данных в СПК
    от alexx12 в разделе СПК1хх
    Ответов: 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, 08:41

Ваши права

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