Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 26

Тема: функция ABS. что не так я делаю??

  1. #1
    Пользователь Аватар для DIPHENHYDRAMINE
    Регистрация
    14.01.2018
    Адрес
    Воскресенск
    Сообщений
    38

    По умолчанию функция ABS. что не так я делаю??

    ребята что яделаю не так?
    Вложение 40212
    в эмуляторе.....

    Вложение 40213
    в ПЛК....

    Вложение 40214

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

    По умолчанию

    Цитата Сообщение от DIPHENHYDRAMINE Посмотреть сообщение
    ребята что яделаю не так?
    Вложение 40212
    в эмуляторе.....

    Вложение 40213
    в ПЛК....

    Вложение 40214
    Справа Вы вычисляете разность двух целых без знаковых чисел(формат WORD), а слева хотите получить значение целое знаковое (INT)

    T_v-T_z = 65526, а не (-10), т.к. T_v и T_z Вы объявили как WORD, для WORD нету знака "-"

    Соответственно ABS (65526) = 65526

    А вот дальше, когда выполняется
    T_d := 65526
    получается -10, что совершенно правильно, ведь для INT значение 65526 - это -10 в дополнительном коде

    T_v и T_z нужно объявить как INT
    Последний раз редактировалось petera; 04.12.2018 в 19:18.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #3
    Пользователь Аватар для DIPHENHYDRAMINE
    Регистрация
    14.01.2018
    Адрес
    Воскресенск
    Сообщений
    38

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Потому, что
    T_v-T_z = 65526, а не (-10), т.к. T_v и T_z Вы объявили как WORD, для WORD нету знака "-"

    Соответственно ABS (65526) = 65526

    А вот дальше, когда выполняется
    T_d := ABS...
    что-то случается с автоматическим приведением типов
    Ведь справа Вы вычисляете разность двух целых без знаковых чисел(формат WORD), а слева хотите получить значение целое знаковое (INT)

    T_v и T_z нужно объявить как INT
    так по логике я делаю WORD-WORD= INT……. почему в эмуляторе все нормально?

  4. #4
    Пользователь Аватар для DIPHENHYDRAMINE
    Регистрация
    14.01.2018
    Адрес
    Воскресенск
    Сообщений
    38

    По умолчанию

    и в справке...…
    Вложение 40216

  5. #5

    По умолчанию

    Цитата Сообщение от DIPHENHYDRAMINE Посмотреть сообщение
    ребята что яделаю не так?
    Вложение 40212
    в эмуляторе.....

    Вложение 40213
    в ПЛК....

    Вложение 40214
    Косяк в прошивке ПЛК160.

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

    По умолчанию

    так по логике я делаю WORD-WORD= INT
    никакой логики
    WORD имеет диапазон значений от 0 до 65535
    INT имеет диапазон значений от -32768 до 32767
    и 65526 есть число отрицательное -10 в дополнительном коде
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #7
    Пользователь Аватар для DIPHENHYDRAMINE
    Регистрация
    14.01.2018
    Адрес
    Воскресенск
    Сообщений
    38

    По умолчанию

    да.... с INT все норм работает..... Спасибо!!
    будем знать....

    но логика на мой взгляд все же есть..... 5(WORD) - 10(WORD) = -5(INT)
    Последний раз редактировалось DIPHENHYDRAMINE; 04.12.2018 в 19:29.

  8. #8

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    никакой логики
    WORD имеет диапазон значений от 0 до 65535
    INT имеет диапазон значений от -32768 до 32767
    и 65526 есть число отрицательное -10 в дополнительном коде
    В эмуляторе почему другой результат получается ?

  9. #9
    Пользователь Аватар для DIPHENHYDRAMINE
    Регистрация
    14.01.2018
    Адрес
    Воскресенск
    Сообщений
    38

    По умолчанию

    Цитата Сообщение от IVM Посмотреть сообщение
    В эмуляторе почему другой результат получается ?
    в эмуляторе все правильно…. а в ПЛК не понятно....в справке ведь написано
    параметр результат
    WORD INT, REAL, WORD, DWORD, DINT

  10. #10
    Пользователь Аватар для DIPHENHYDRAMINE
    Регистрация
    14.01.2018
    Адрес
    Воскресенск
    Сообщений
    38

    По умолчанию

    ну petera у нас авторитет..... поправлю в проекте.....
    просто на объекте сегодня не въехал сразу

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

Похожие темы

  1. Посоветуйте, бывалые. Делаю на CFC
    от Dimooon в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 19.04.2018, 05:20
  2. Что-то делаю не так
    от masterkey в разделе СПК1хх
    Ответов: 8
    Последнее сообщение: 28.09.2016, 10:20
  3. Ответов: 5
    Последнее сообщение: 19.09.2014, 10:10
  4. СИ-30. что я делаю не так
    от podoly в разделе Эксплуатация
    Ответов: 5
    Последнее сообщение: 06.12.2013, 20:13
  5. ТРМ 151-04 - прибор неисправный или чтото не так делаю ?
    от незарегистрированный в разделе Эксплуатация
    Ответов: 5
    Последнее сообщение: 22.04.2008, 23:06

Ваши права

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