Страница 343 из 396 ПерваяПервая ... 243293333341342343344345353393 ... ПоследняяПоследняя
Показано с 3,421 по 3,430 из 4436

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от Rask Посмотреть сообщение
    И по возможности добавить в меню прибора название загруженного проекта.
    то, есть которое дал ему программист - к примеру v1_2901_itog/
    Чтобы при возможном обновление, залез и увидел, базу которую загрузил.
    Кстати да, тоже не хватает этой информации, выгрузить же ничего нельзя, так хоть знать что там загружено!

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

    По умолчанию

    Цитата Сообщение от Rask Посмотреть сообщение
    И по возможности добавить в меню прибора название загруженного проекта.
    то, есть которое дал ему программист - к примеру v1_2901_itog/
    Чтобы при возможном обновление, залез и увидел, базу которую загрузил.
    В ПР200 вы сможете посмотреть в системном меню то, что забили на вкладке алгоритм.
    В ПР100 и 102 - куда вы залезете чтобы посмотреть название?
    В ПР103 и ПР205 скорее всего, сможете через конфигуратор глянуть что вы на вкладке Алгоритм забили

  3. #3

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    В ПР200 вы сможете посмотреть в системном меню то, что забили на вкладке алгоритм.
    Ну хоть что то, но все равно хотелось бы что бы было поле куда можно забить более подробную информацию
    В ПР100 и 102 - куда вы залезете чтобы посмотреть название?
    Ну вот это плохо, не знаю может для кого то и хорошо, что в реле можно только залить, а прочитать уже ничего нельзя, какая то инфа все равно должна считываться...

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

    По умолчанию

    Цитата Сообщение от Traveller Посмотреть сообщение
    Ну хоть что то, но все равно хотелось бы что бы было поле куда можно забить более подробную информацию
    Ну вот это плохо, не знаю может для кого то и хорошо, что в реле можно только залить, а прочитать уже ничего нельзя, какая то инфа все равно должна считываться...
    В общем, кое-какую информацию по ПР200 и ПР102 можно в Лоджике посмотреть
    Безымянный.png
    По ПР103 и ПР205, как я уже говорил, скорее всего, в конфигураторе надо смотреть
    ПР100 пролетает.

    Почему так сделано - программистов из Овен умом не понять, они на какой-то другой планете живут

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

    По умолчанию

    ага, в каком-нибудь Цинь-Дзяне

  6. #6

    По умолчанию

    ПР200, кажется не очень давно, "подружили" с OwenConfigurator. Там можно подключиться к ПР200 в любой момент и посмотреть эти данные.
    Не очень уверен, но при включении питания или в системном меню была возможность увидеть на экране сведения об алгоритме.

    Если будет поле "Комментарии", доступные только в среде разработки - будет неплохо, я бы нашёл им применение.
    Хотя, для ведения реестра изменений, лучше пользоваться чем-то независимым от среды разработки и более распространённым, чтобы представитель эксплуатации после прочтения выдал на руки самую свежую версию.

  7. #7

    По умолчанию

    Добрый день,
    Писал в поддержку, решил продублировать сюда.
    Использую битовые маски. Для комфортной работы с битами состояния извлекаю их из целочисленной маски и присваиваю ячейкам булевого массива.
    Чтобы не делать жесткое присвоение (arrayB[0]:= udintVar.0) решил прогнать целочисленное значение циклом FOR смещая бит в право и записывая его в каждую ячейку массива.
    Выглядит следующим образом:
    var_input
    udintVar: udint;// битовая маска
    end_var

    var
    udintArray: array [0..15] of bool; // булевый массив для записи каждого из битов состояния
    selectIn: udint; // итератор цикла
    end_var


    for selectIn := 0 to 15 do
    udintVar:= shr(udintVar,selectIn);
    udintArray[selectIn]:= udintVar.0;

    end_for

    В итоге провожу тест:
    целочисленное 1 = bit0 true
    целочисленное 2 = bit1 true
    целочисленное 3 = bit0 true и bit1 true
    целочисленное 4 = все биты 0, вместо того, чтобы bit2 был true.

    Соответственно все, что больше 4 в десятичном виде, уже откровенно не совпадает с действительность.
    Сделал подобное при помощи FBD SHR и EXTRACT и все работает корректно, а в рамках ST не работает.
    Либо я делаю что-то неверно, либо это баг.

  8. #8

    По умолчанию

    Цитата Сообщение от Vadik39 Посмотреть сообщение

    Соответственно все, что больше 4 в десятичном виде, уже откровенно не совпадает с действительность.
    Сделал подобное при помощи FBD SHR и EXTRACT и все работает корректно, а в рамках ST не работает.
    Либо я делаю что-то неверно, либо это баг.
    А где переменные выхода? Или вы функцию сделали?
    Последний раз редактировалось kondor3000; 03.02.2025 в 16:17.

  9. #9

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    А где переменные выхода? Или вы функцию сделали?
    Здесь не указывал, так как тестировал алгоритм.
    Тестировал с 16 булевыми переменными выхода.

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

    По умолчанию

    Цитата Сообщение от Vadik39 Посмотреть сообщение
    Добрый день,
    Писал в поддержку, решил продублировать сюда.
    Использую битовые маски. Для комфортной работы с битами состояния извлекаю их из целочисленной маски и присваиваю ячейкам булевого массива.
    Чтобы не делать жесткое присвоение (arrayB[0]:= udintVar.0) решил прогнать целочисленное значение циклом FOR смещая бит в право и записывая его в каждую ячейку массива.
    Выглядит следующим образом:
    var_input
    udintVar: udint;// битовая маска
    end_var

    var
    udintArray: array [0..15] of bool; // булевый массив для записи каждого из битов состояния
    selectIn: udint; // итератор цикла
    end_var


    for selectIn := 0 to 15 do
    udintVar:= shr(udintVar,selectIn);
    udintArray[selectIn]:= udintVar.0;

    end_for

    В итоге провожу тест:
    целочисленное 1 = bit0 true
    целочисленное 2 = bit1 true
    целочисленное 3 = bit0 true и bit1 true
    целочисленное 4 = все биты 0, вместо того, чтобы bit2 был true.

    Соответственно все, что больше 4 в десятичном виде, уже откровенно не совпадает с действительность.
    Сделал подобное при помощи FBD SHR и EXTRACT и все работает корректно, а в рамках ST не работает.
    Либо я делаю что-то неверно, либо это баг.
    У вас проблема здесь: udintVar:= shr(udintVar,selectIn);
    Вы сдвигаете на бит и запоминаете число, потом в этом новом числе вы сдвигаете на два бита и т.д.

    В общем,
    Код:
    var //объявление локальных переменных
            bitArray : array [0..15] of bool; 
            flag : udint;
            i : udint;
        end_var
        
        for i := 0 to 15 do
            flag := shr(bitMask, i);
            bitArray[i] := flag.0;
        end_for
    Последний раз редактировалось Dimensy; 03.02.2025 в 16:41.

Страница 343 из 396 ПерваяПервая ... 243293333341342343344345353393 ... ПоследняяПоследняя

Похожие темы

  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

Ваши права

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