Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя
Показано с 31 по 40 из 48

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

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

    По умолчанию

    За такие проекты по рукам бить надо

    Если уж передаете как "С плавающей запятой" так и принимайте как float а не UDINT шмудинт, караинт и так далее...

    А то, что вы целочисленное пытаетесь передать как все 32 бита, так ПР ложило на ваши пожелания, отправлено будет в сетевой переменной только хвост из 16 бит и то число, которое там получится, при чем для ПР оно будет на 100% положительным, так как сам ПР оперирует только положительными значениями.
    Изображения Изображения
    • Тип файла: jpg CheEto.jpg (32.7 Кб, Просмотров: 16)
    Последний раз редактировалось melky; 08.12.2022 в 10:29.

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    За такие проекты по рукам бить надо
    А то, что вы целочисленное пытаетесь передать как все 32 бита, так ПР ложило на ваши пожелания, отправлено будет в сетевой переменной только хвост из 16 бит и то число, которое там получится, при чем для ПР оно будет на 100% положительным, так как сам ПР оперирует только положительными значениями.
    Не надо ля-ля...
    ПР прекрасно оперирует с отрицательными ЦЕЛЫМИ числами, в том числе и сетевыми перемннеыми
    и хвост из 16 бит и то число, которое там получится БУДУТ ОТРИЦАТЕЛЬНЫМИ
    Все целые отрицательные числа ПР передает в дополнительном коде, а принимающая их, например, СП3хх прекрасно их отображает на экране (формат DEC)
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

    По умолчанию

    petera сама ПР без макросов кидает все как есть, то, что вы программно работает как с отрицательным числом еще не говорит об умении..

    Покажите мне в ПР ту же Константу, чтобы я ее мог ввести как -100 например, без каких либо манипуляций.

    Вот когда вон там в ПР появится выбор, тогда и можно будет рассуждать о работе с разными типами, вместо напяливания макросов.
    Изображения Изображения
    Последний раз редактировалось melky; 08.12.2022 в 11:06.

  4. #34

    По умолчанию

    Цитата Сообщение от Borserg Посмотреть сообщение
    С этим согласен.

    Вот только если в 3 092 поменять местами регистры, получится 202 637 312.

    Вложение 64401
    Вложение 64402

    А если байты, то получится 5 132.

    Вложение 64405

    А перестановка байт уже затронет INT и UINT.
    Согласен. Но непонятно почему различный порядок байт при передаче UIND и UDINT.

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    petera сама ПР без макросов кидает все как есть, то, что вы программно работает как с отрицательным числом еще не говорит об умении..

    Покажите мне в ПР ту же Константу, чтобы я ее мог ввести как -100 например, без каких либо манипуляций.

    Вот когда вон там в ПР появится выбор, тогда и можно будет рассуждать о работе с разными типами, вместо напяливания макросов.
    Константу в явном виде не введу.
    Я про это и не говорил, а говорил про то, что ПРка оперирует с целыми отрицательными числами в ДОПОЛНИТЕЛЬНОМ коде
    и напяливать макросы для этого не надо
    Пример, ПР и СП3хх
    Захват-05.png Захват-04.png

    Вот ПР в онлайн эмуляции и СП300, все в реальном времени
    1. Из панели приходит положительное целое 55
    в ПР выполняется целочисленная арифметика

    55 - 10 = 45

    целое положительное 45 отправляется в панель
    Захват-01.png

    2. Из панели приходит 0

    в ПР выполняется целочисленная арифметика

    0 - 10 = 4294967286 или FFFFFFF6 (-10 в доп.коде)

    в сетевую переменную по падет только хвост из 16 бит и ВНИМАНИЕ! это хвост отрицательное, 16 битное число -10 в дополнительном коде!

    этот "16 битный хвост" отображается на панели как -10
    Захват-02.png

    3. Из панели приходит отрицательное целое -56
    в ПР оно попадает как 65480 или FFC8 (-56 в дополнительном коде).
    выполняется целочисленная арифметика

    65480 - 10 = 65470

    в сетевую переменную попадает 16 битное целое отрицательное число -66 в дополнительном коде

    это число (65470 или FFBE) отображается на панели как -66
    Захват-03.png

    и ЭТО ВСЕ автоматом без напяливания каких-либо макросов
    Последний раз редактировалось petera; 08.12.2022 в 11:43.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

    По умолчанию

    petera вопрос в другом, то, что от 0 отняв 10 вы получите 4294967286 это понятно, каким образом потом оперировать подобным числом в самой логике программы, когда в режиме онлайн ты видишь вместо -10 очень немаленькое число ?

    При чем забавно что программа то при этом работать будет, только вынося мозг при отладке Почему при создании ПР200 и иже с ними не добавить сразу типы переменных
    И да, а теперь сделайте то же самое, но с 2-х байтовой переменной, что у нас получится ? то есть от 0 отнимите те же -10

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    petera вопрос в другом, то, что от 0 отняв 10 вы получите 4294967286 это понятно, каким образом потом оперировать подобным числом в самой логике программы, когда в режиме онлайн ты видишь вместо -10 очень немаленькое число ?

    При чем забавно что программа то при этом работать будет, только вынося мозг при отладке Почему при создании ПР200 и иже с ними не добавить сразу типы переменных
    И да, а теперь сделайте то же самое, но с 2-х байтовой переменной, что у нас получится ? то есть от 0 отнимите те же -10
    Конечно получится!
    Захват-06.png

    ЗЫ
    п.3 из предыдущего поста как раз об этом, там тоже 2-х байтовая

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

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

    По умолчанию

    Блин, да в самом ПР это число какое? 65526 а не -10 отражается, вот я о чем. Попробуйте написать программу гораздо больше объемом и потом отладить в ПР. глаза сломаете. Вы же в панели указываете как воспринимать число, ничего больше.

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Блин, да в самом ПР это число какое? 65526 а не -10 отражается, вот я о чем. Попробуйте написать программу гораздо больше объемом и потом отладить в ПР. глаза сломаете. Вы же в панели указываете как воспринимать число, ничего больше.
    Согласен...

    ЗЫ.
    Но фичу про дополнительный код использую, иногда.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    За такие проекты по рукам бить надо

    Если уж передаете как "С плавающей запятой" так и принимайте как float а не UDINT шмудинт, караинт и так далее...

    А то, что вы целочисленное пытаетесь передать как все 32 бита, так ПР ложило на ваши пожелания, отправлено будет в сетевой переменной только хвост из 16 бит и то число, которое там получится, при чем для ПР оно будет на 100% положительным, так как сам ПР оперирует только положительными значениями.
    Я в комментарии к переменной написал UDINT, чтобы показать, что в таком формате хранятся данные в управляемом устройстве.

    Итак:

    Переменные Master (регистр 9002) и Slave (регистр 513) в ПР200 - с плавающей запятой.
    Дисплей СП3хх - DWord, Float.
    Показания на дисплее - "0".
    Причем они не меняются при манипуляциях с галочками "старшим регистром вперед" и "старшим байтом вперед" в ПР (для мастера и слейва),
    а также при снятии галочки "изменить порядок регистров" в настройках проекта СП3хх. Всегда "0".

    Показания появляются при переключении дисплея СП3хх в DWord, Unsigned.
    И вот здесь выяснилось следующее:

    - манипуляции с чередованием байт и регистров в слейве ПР на показания дисплея СП3хх влияния не оказывают;
    - показания на дисплее СП3хх становятся корректными при снятии галочки "Старшим байтом вперед" в мастере ПР (галочка "Старшим регистром вперед" тоже снята).
    - манипуляции с чередованием байт и регистров не оказывают влияния на показания дисплеев Word (Dec и Unsigned) СП3хх.
    Получается, что настройки с чередованием распространяются в ПР только на переменные 32 бит.

    Всем спасибо!

Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя

Похожие темы

  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

Ваши права

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