Страница 442 из 444 ПерваяПервая ... 342392432440441442443444 ПоследняяПоследняя
Показано с 4,411 по 4,420 из 4432

Тема: Фичи и баги OWEN Logic

  1. #4411
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,989

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    А какая размерность у этой величины - [s*s] = [s^2] ?
    Это же некорректненько
    результатом UDINT_TO_TIME(nDelay_s) будет nDelay_s в миллисекундах
    умножаем nDelay_s мс на 1000 мс получаем nDelay_s в секундах

    Переставляя скобки смог преобразовать и получить код, сейчас пойду дальше по выполнению работы, но всё же это - БАГ компилятора.

    Думаю, что и так было бы корректно tDelay := nDelay_s * T#1000ms;, но и это компилятор не пропускает.
    здесь получаем выражение udint * time, вот компилятор и ругается

  2. #4412

    По умолчанию

    Наверное, всё же не соглашусь...
    [ms]*[ms]=[ms^2], т.е. размерность не соблюдается

    Попытаюсь показать ошибку в Ваших рассуждениях.
    А как быть, если на первую задачу отводится T1 := t#1s, а на вторую задачу в k := 7 раз больше.
    Как вычислить интервал времени T2?

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

    По умолчанию

    Спасибо. Странная конечно реализация. Думал что полноценная симуляция.

  4. #4414

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    Наверное, всё же не соглашусь...
    [ms]*[ms]=[ms^2], т.е. размерность не соблюдается

    Попытаюсь показать ошибку в Ваших рассуждениях.
    TIME в миллисекундах должен быть, для конвертации целое число секунд надо привести к ms, умножив на 1000 и только после этого конвертировать.
    Никаких секунд в квадрате тут нет, только ms.
    Можете сделать обратную конвертацию, например t#5s, при конвертации получите целое 5000 ms, а разделив на целое 1000, получите целое 5 секунд.
    Компилятор же ругался, когда конвертированное время пытались умножить на целую 1000, то есть не соблюдали типы переменных, что и подтвердил 2 ваш скрин.
    Удивительно, как простейшие вещи надо ещё доказывать, вроде и люди неглупые. Даже в моих примерах, которые вы вроде смотрели, в каждом ФБ есть приведение к ms.
    Последний раз редактировалось kondor3000; 03.02.2026 в 19:05.

  5. #4415

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    TIME в миллисекундах должен быть, для конвертации целое число секунд надо привести к ms, умножив на 1000 и только после этого конвертировать.
    Никаких секунд в квадрате тут нет, только ms.
    Можете сделать обратную конвертацию, например t#5s, при конвертации получите целое 5000 ms, а разделив на целое 1000, получите целое 5 секунд.
    Компилятор же ругался, когда конвертированное время пытались умножить на целую 1000, то есть не соблюдали типы переменных, что и подтвердил 2 ваш скрин.
    Удивительно, как простейшие вещи надо ещё доказывать, вроде и люди неглупые. Даже в моих примерах, которые вы вроде смотрели, в каждом ФБ есть приведение к ms.
    Делаю последнюю попытку показать, что операция над типами корректна
    [TIME] * [ANY_INT] = [TIME]

    Чуть выше уже приводил краткую справку на реализацию в CODESYS 3.5
    https://owen.ru/forum/showthread.php...l=1#post479204

    А сейчас сошлюсь на ГОСТ Р МЭК 61131-3—2016, который (цитирую из предисловия к этому документу):
    4 Настоящий стандарт идентичен международному стандарту МЭК 61131-3:2013 «Контроллеры программируемые. Часть 3. Языки программирования (IEC 61131-3:2013, «Programmable controllers — Part 3: Programming languages», IDT).
    https://files.stroyinf.ru/Data2/1/42...4293755016.pdf

    Открываю "6.6.2.5.11 Функции даты и продолжительности времен" (с. 83)
    Т.к. интересует заголовок и строки внизу таблицы, то на скрине "вырежу" среднюю часть таблицы.
    Видно, что в строке 10a описана функция умножения MUL и её представление в выражениях в виде одного символа "*"
    Функция (операция) умножения выполняется над двумя аргументами типов [TIME] и [ANY_INT] результатом которого является значение типа [TIME].
    таблица.png
    Т.е. реализация в Owen Logic неправильная 100%. Это - баг.

    Вполне приму объяснение, что с момента внедрения в Owen Logic языка ST прошло несколько лет и пользователями написано много программ, часть из которых передана заказчикам в виде исходников - поэтому, чтобы не ломать совместимость с наработками, найденный баг исправляться не будет.

  6. #4416

    По умолчанию

    В ПР205, в отличии от ПР200, при изменении значения поля ввода и нажатии SEL, переход на следующее поле ввода происходит без сохранения значения. Есть планы исправить?

  7. #4417

    По умолчанию

    Не факт что так правильнее. Я бы как есть оставил.

  8. #4418

    По умолчанию

    Цитата Сообщение от RV9WFJ Посмотреть сообщение
    Не факт что так правильнее. Я бы как есть оставил.
    Я не говорю о правильности. Я говорю об единообразии.

  9. #4419

    По умолчанию

    Об этом баге известно? Исправления ждать?

    https://disk.yandex.com/i/FRGZzU0DLWjsTw


    Вложения Вложения
    Последний раз редактировалось Aviator_VZh; Вчера в 08:48.

  10. #4420

    По умолчанию

    Цитата Сообщение от RV9WFJ Посмотреть сообщение
    Не факт что так правильнее. Я бы как есть оставил.
    По поводу правильно.

    Считаю абсолютно правильной логику, реализованную в ПР200.

    Нажатие SEL подтверждает ввод с переходом к редактированию следующего поля.
    Нажатие ОК подтверждает ввод с выходом из режима редактирования.
    Нажатие ESC отменяет ввод с выходом из режима редактирования.

    Режим редактирования одной переменной без перехода к редактированию другой нужен ОБЯЗАТЕЛЬНО!

Страница 442 из 444 ПерваяПервая ... 342392432440441442443444 ПоследняяПоследняя

Похожие темы

  1. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Среда программирования OWEN Logic
    Ответов: 404
    Последнее сообщение: 25.08.2020, 15:17
  2. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Программируемые реле
    Ответов: 401
    Последнее сообщение: 28.07.2016, 19:46
  3. OWEN Logic 1.2.0.14b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 40
    Последнее сообщение: 21.02.2011, 14:16
  4. OWEN Logic 1.1.0.11b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 58
    Последнее сообщение: 12.10.2010, 20:55

Ваши права

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