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

Тема: Real c ИП320

  1. #1
    Пользователь
    Регистрация
    11.07.2012
    Адрес
    г. МИНСК
    Сообщений
    522

    По умолчанию Real c ИП320

    Создам тему,ибо никто не помог.Панель мастер задаю значение 750,в атрибутах регистра число регистров 2, в ПЛК отражается 1.050974е-042.Возможно ли преобразовать в 750.Ставил галку в окне
    расш word в параметрах проекта,не помогает.Можно сделать в конфигураторе вместо Real Dword наверное все получится,но мне нужны и дробные значения.

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

    По умолчанию

    Цитата Сообщение от zendo057 Посмотреть сообщение
    Создам тему,ибо никто не помог.Панель мастер задаю значение 750,в атрибутах регистра число регистров 2, в ПЛК отражается 1.050974е-042.Возможно ли преобразовать в 750.Ставил галку в окне
    расш word в параметрах проекта,не помогает.Можно сделать в конфигураторе вместо Real Dword наверное все получится,но мне нужны и дробные значения.
    Так дробные нужны или REAL?
    Потому как дробные можно получать и с фиксированной точкой, а не только с плавающей(REAL/Float).
    Зависит от диапазона используемых чисел.
    Если использовать Word, то можно получать числа с фиксированной точкой в таких диапазонах. Положение точки как бы храним в уме
    Для чисел без знака
    Захват-1.png
    0-65535 чего нибудь
    0-6553,5 чего нибудь -один знак после запятой
    0-655,35 чего нибудь -два знака после запятой
    0-655,35 чего нибудь -три знака после запятой
    Для чисел со знаком
    Захват-2.png
    от-32768 до 32767 чего нибудь
    от-3276,8 до 3276,7 чего нибудь -один знак после запятой
    от-327,68 до 327,67 чего нибудь -два знака после запятой
    от-32,768 до 327,67 чего нибудь -три знака после запятой

    Если использовать DWord
    Для чисел без знака
    Захват-3.png
    0- 4 294 967 295 чего нибудь
    0-4 294 967 29,5 чего нибудь -один знак после запятой
    0-4 294 967 2,95 чего нибудь -два знака после запятой
    0-4 294 967,295 чего нибудь -три знака после запятой
    Для чисел со знаком
    Захват-4.png
    от-2 147 483 648 до 2 147 483 647 чего нибудь
    от-2 147 483 64,8 до 2 147 483 64,7 чего нибудь -один знак после запятой
    от-2 147 483 6,48 до 2 147 483 6,47 чего нибудь -два знака после запятой
    от-2 147 483,648 до 2 147 483,647 чего нибудь -три знака после запятой

    С точки зрения ПЛК, обмен с панелью выполняется целыми числами, а чтобы учесть это в программе, например для работы с числами Real(с плавающей точкой) в программе необходимо выполнять преобразования

    Вариант для переменных Word (в конфигурации - 2byte module)

    Для переменных из программы контроллера в панель я использую такую функцию
    Код:
    FUNCTION PV_to_Panel : WORD
    VAR_INPUT
        PV_Real: REAL;        (*Значение на входе *)
        Nz_ai: WORD;        (*положение точки*)
    END_VAR
    VAR
    END_VAR
    
    PV_to_Panel:=REAL_TO_WORD(PV_Real*EXPT(10,Nz_ai));
    В программе есть фрагмент
    Код:
    Panel_PV_Razr:=PV_to_Panel(PV_Razr, Nz_ai1);
    Panel_PV_Par:=PV_to_Panel(PV_Par,Nz_ai2);
    Panel_PV_Urov:=PV_to_Panel(PV_Urov,Nz_ai3);
    Panel_PV_Topl:=PV_to_Panel(PV_Topl,Nz_ai4);
    Для переменных из панели в контроллер я использую такую функцию
    Код:
    FUNCTION Panel_to_Real : REAL
    VAR_INPUT
        wVal: WORD;
        Nz: WORD;        (*Число знаков после запятой*)
    END_VAR
    VAR
    END_VAR
    
    Panel_to_Real:=INT_TO_REAL(WORD_TO_INT(wVal))/EXPT(10,Nz);
    В программе есть фрагмент
    Код:
    sp_razr:=Panel_to_Real(SET_POINT1, Nz_ai1);
    kp_razr:=Panel_to_Real(KP1, 2);
    dz_razr:=Panel_to_Real(D_ZONE1, Nz_ai1);
    Tn_razr:=Panel_to_Real(TN1, 1);
    Tv_razr:=Panel_to_Real(TV1, 1);
    Аналогичные функции можно сделать и для для переменных DWord (в конфигурации - 4byte module) всего лишь изменить размерность с Word на DWord в приведенных функциях.
    Последний раз редактировалось petera; 06.10.2015 в 12:39.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #3
    Пользователь
    Регистрация
    11.07.2012
    Адрес
    г. МИНСК
    Сообщений
    522

    По умолчанию

    Я кажется начинаю понимать.Переделал проект вот так. Т1Т2Т3Т4 отвечают как надо, а U1 регистр4-5 при задании с панели 750 выдает в плк 49152000.Подскажите что не так,где косяк.
    Вложения Вложения
    Последний раз редактировалось zendo057; 06.10.2015 в 13:57.

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

    По умолчанию

    Цитата Сообщение от zendo057 Посмотреть сообщение
    Я кажется начинаю понимать.Переделал проект вот так. Т1Т2Т3Т4 отвечают как надо, а U1 регистр4-5 при задании с панели 750 выдает в плк 49152000.Подскажите что не так,где косяк.
    Все очень просто получается
    750 это (0000 02EE) в шестнадцатеричной системе для DWord
    Из-за несогласованном порядке передачи старшего и младшего Word они в слейве ПЛК поменялись местами 49152000 = (02EE 0000) в шестнадцатеричной системе.
    Для СП270 здесь помогает "Поменять Word" для ИП320 если выше упомянутая галка в свойствах проекта не работает, то нужно программно переставлять местами первое и второе слово в Dword U1.

    ЗЫ. Для начала попробуйте эту галку(Расш. Word) в свойствах проекта снять.
    Последний раз редактировалось petera; 06.10.2015 в 15:13.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

    По умолчанию

    Если упомянутая галка не работает, то предлагаю функцию по перестановке слов в DWord
    Код:
    FUNCTION SWAP_DWORD : DWORD
    VAR_INPUT
        in: DWORD;
    END_VAR
    SWAP_DWORD :=SHR(in,16) OR SHL(in,16);
    Использовать ее так
    U1_swap:=SWAP_DWORD(U1);
    Захват-1.png
    Последний раз редактировалось petera; 06.10.2015 в 15:51.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  6. #6
    Пользователь
    Регистрация
    11.07.2012
    Адрес
    г. МИНСК
    Сообщений
    522

    По умолчанию

    После перезаписи переменных в формат word все заработало.Сделал вывод что real и dword c ИП320 не работает.Или я не прав?Если не так то
    дайте разъяснение по предыдущим постам,пожалуйста.

Похожие темы

  1. Ответов: 7
    Последнее сообщение: 05.03.2014, 11:00
  2. REAL в СП270
    от xaccat в разделе Эксплуатация
    Ответов: 18
    Последнее сообщение: 17.01.2013, 11:49
  3. REAL в СП270
    от xaccat в разделе Трёп (Курилка)
    Ответов: 17
    Последнее сообщение: 16.01.2013, 19:52
  4. REAL 2 DWORD СП270
    от kenny_sk8 в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 08.10.2012, 14:40

Ваши права

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