Страница 974 из 1058 ПерваяПервая ... 4748749249649729739749759769841024 ... ПоследняяПоследняя
Показано с 9,731 по 9,740 из 10572

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #9731

    По умолчанию

    У меня есть переменная типа REAL. Я вывожу эту переменную на панель оператора. В панели оператора нет формата типа 7.5e+002 (нет такого формата вывода), а мне нужно именно в таком формате показывать эту переменную на панели. Вот подумал, что можно преобразовать в строку с форматированием типа 7.5e+002.

    Если переменной REAL задать значение 0,01 и потом преобразовать в строку, то получиться '1.e-002' и передать на панель эту строку и все норм. Но если значение будет равно 750, то строка тоже будет '750', а мне надо чтобы было 7.5e+002

  2. #9732

    По умолчанию

    Цитата Сообщение от Ильнур Посмотреть сообщение
    У меня есть переменная типа REAL. Я вывожу эту переменную на панель оператора. В панели оператора нет формата типа 7.5e+002 (нет такого формата вывода), а мне нужно именно в таком формате показывать эту переменную на панели. Вот подумал, что можно преобразовать в строку с форматированием типа 7.5e+002.

    Если переменной REAL задать значение 0,01 и потом преобразовать в строку, то получиться '1.e-002' и передать на панель эту строку и все норм. Но если значение будет равно 750, то строка тоже будет '750', а мне надо чтобы было 7.5e+002
    Без специальных ухищрений не получится, строка в таком формате будет только в 7-8 степени и выше.
    Придётся писать программу, которая отслеживает сколько знаков и выводит строку.
    Обычно вопрос стоит наоборот, как убрать степень)))
    Последний раз редактировалось kondor3000; 13.07.2023 в 16:29.

  3. #9733

    По умолчанию

    Цитата Сообщение от Ильнур Посмотреть сообщение
    У меня есть переменная типа REAL. Я вывожу эту переменную на панель оператора. В панели оператора нет формата типа 7.5e+002 (нет такого формата вывода), а мне нужно именно в таком формате показывать эту переменную на панели. Вот подумал, что можно преобразовать в строку с форматированием типа 7.5e+002.

    Если переменной REAL задать значение 0,01 и потом преобразовать в строку, то получиться '1.e-002' и передать на панель эту строку и все норм. Но если значение будет равно 750, то строка тоже будет '750', а мне надо чтобы было 7.5e+002
    Значит ли это, что:
    Код:
    strVal := REAL_TO_STRING(750/1000);            // strVal := '7.5e-001'?
    exp := STRING_TO_INT(RIGHT(strVal, 4)) + 3;  // exp := 2
    
    IF exp < 0 THEN
      sign := '-'
      exp := -exp;
    ELSE
      sign := '+'                                                 // sign := '+'
    END-IF
    
    strVal := LEFT(strVal, LEN(strVal) - 4) + sign + RIGHT('00' + INT_TO_STRING(exp), 3); // strVal := '7.5e+002'

  4. #9734
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,271

    По умолчанию

    Цитата Сообщение от Ильнур Посмотреть сообщение
    ... на панель оператора..
    Подробней, говорили же

  5. #9735

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Подробней, говорили же
    Панели одинаковые, ПЛК разные...два разных проекта.

    Здесь тоже преобразование реализовано на ПЛК.

  6. #9736

    По умолчанию

    Доброго дня!
    Есть ПЛК160 (Codesys 2.3). По модбас опрашивает другие модули (овен и не овен). Пришел момент "свалить все в одну кучу". Условно, есть у нас где-то там модуль 16Р, у которого на 1 выходе сидит привод, коий можно ворочать в положении вкл/выкл. На отладке управление было простое: WS20_21.Ai[1] присваиваем то, либо иное значение. Дошло дело до написания управления и хотелось бы сделать некий общий список устройств по всей системе с более интуитивным кодом, например MV201.close (название крана на схеме, который и сидит на первом выходе 16P и необходимое действие). Вопрос (после смеси паскаля с си, немножко луа и пайтона уже поплыл в синтаксисе): в какой форме правильно объявить все сетевые переменные (устройства на входах) и добавить к ним действия? Думал, что через универсальную функцию, да что-то по документации не срастается. Вроде как нельзя просто взять и написать FUNCTION (*название устройства с последующем указанием в коде где оно есть*, *че делать с ним*) ввиду проблем с глобальными переменными. Спасибо!
    Последний раз редактировалось Easy_Enemy; 15.07.2023 в 14:10.

  7. #9737

    По умолчанию

    А к модулю то как подключаетесь? Через конфигурацию или библиотеки?

  8. #9738

    По умолчанию

    Easy_Enemy Так не принято. Но если очень хочется - то можно оформить какие-то управляторы и элементы в виде фунциональных блоков. А к ним добавить Действия. Тогда можно вызывать действия в виде "MyFB.Close".
    Но где-то потом всё равно надо будет забрать из FB обычные данные и обычным способом передать их на модули IO.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  9. #9739

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    А к модулю то как подключаетесь? Через конфигурацию или библиотеки?
    Библиотеками, реализовал через Универсальный диспетчер modbus

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Easy_Enemy Так не принято. Но если очень хочется - то можно оформить какие-то управляторы и элементы в виде фунциональных блоков. А к ним добавить Действия. Тогда можно вызывать действия в виде "MyFB.Close".
    Но где-то потом всё равно надо будет забрать из FB обычные данные и обычным способом передать их на модули IO.
    Двойной кошмар.. И кодесис чуднОй сам по себе, а тут еще и эти блоки.. Нас такому не учили, чистый код всегда роднее) Штош, тогда пойдем длинным путем. Спасибо!

  10. #9740

    По умолчанию

    Цитата Сообщение от Easy_Enemy Посмотреть сообщение
    Двойной кошмар.. И кодесис чуднОй сам по себе, а тут еще и эти блоки.. Нас такому не учили, чистый код всегда роднее) Штош, тогда пойдем длинным путем. Спасибо!
    Фигушки =) В терминах CodeSys как раз FB - это чистый код и есть. А попытки из него сделать ООП - это дичь =)
    Ну, образно, если хочется - то ты можешь считать что FB - это классы, которые имеют несколько экземпляров и действия (методы без аргументов).
    ПЛК - это ни фига не СИ, и не похож на виндовские языки программирования.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

Страница 974 из 1058 ПерваяПервая ... 4748749249649729739749759769841024 ... ПоследняяПоследняя

Метки этой темы

Ваши права

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