Страница 353 из 361 ПерваяПервая ... 253303343351352353354355 ... ПоследняяПоследняя
Показано с 3,521 по 3,530 из 3601

Тема: разные вопросы новичка

  1. #3521

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    Проблема в том, что вы все переменные сделали энергонезависимыми. А зачем вы это сделали? Если не менять логику, то у вас включится второй выход и через 5 секунд добавится первый. Так и должно быть?
    Да. В данном случае именно это.
    Про л.з. попробую уже завтра.
    Спасибо!

  2. #3522
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,242

    По умолчанию

    На форуме была подобная тема(если правильно понял вашу проблему), в смысле, если включаются одновременно более одного насоса(компрессора), точнее, подаются сигналы на запуск, то первый запускался сразу, а остальные по очереди, с определённым приоритетом и задержкой, чтобы снизить суммарный пусковой ток, Вы такой алгоритм хотите?
    Короче, я много разных вариантов предлагал, вот один из них:

    Разруливание одновременного запуска_9.owle
    Последний раз редактировалось Сергей0308; 13.03.2024 в 23:04.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  3. #3523

    По умолчанию

    Цитата Сообщение от Nsft Посмотреть сообщение
    Здравствуйте. Возник вопрос касательно чтения значения мощности с счетчика WB-MAP3e на ПР205. Видел на форуме, что возникала такая проблема, но она была решалась в Codesys, а не в owen logic. Связь ПР с счетчиком есть, значения напряжения считываются исправно, а вот значения суммарной активной мощности нет. Если кто-нибудь сталкивался, то не могли бы подсказать, как справиться с данной проблемой?
    Не могу понять, зачем суммарная активная мощность имеет тип "целое со знаком", оно реально может быть отрицательным?

    Если в ПР требуется только вывести на экран, то можно сделать так полученное число умножить на 512 и полученный результат вывести в формате "с фиксированной запятой".

    А перестановку байт при необходимости - сделайте самостоятельно. Один из 16 вариантов будет показывать правильно.

    Для вывода числа (Reg0x1300 * 0.00512) удобно представить число форматом с "фиксированной запятой" - т.е. в виде двух переменных (целая и дробная части).

    Преобразование числа в формат для вывода:

    Код:
    function_block TotalP_To_Display_ //имя функционального блока.
    
    // предельные значения результатов для вычисления
    // суммарной активной мощности с учётом масштабирования 
    // (умножения принятого числа на 0,00512)
    
    // (2^32)-1 = 4 294 967 295
    // (( (2^32)-1 ) * 512) = 2 199 023 255 040
    // (( (2^32)-1 ) * 512) / (10^5) = 21 990 232,55040
    
    // т.е. нужно выделить фиксированную дробную часть,
    // а оставшаяся целая часть 
    // 21 990 232 (10) = 1 01001111 10001011 01011000 (2)
    // занимает 25 бит и может уместиться в целой 32 разрядной
    // переменной
    
        var_input //объявление входных переменных
            Reg0x1300: udint;
        end_var
    
        var_output //объявление выходных переменных
            Int_8, Frac_5: udint;
        end_var
    
        var //объявление локальных переменных
            A0, A1, A2: udint;  //внутренний формат хранения регистра для вычислений
            max_value: udint := 65535;
            divizor: udint := 10000;
            temp: udint;
        end_var
    
        // преобразование входного значения во внутренний формат с учётом умножения на (2^9) = 512
        A2 := shr(Reg0x1300, 32-9);
        A1 := shr(Reg0x1300, 7) mod (max_value + 1);
        A0 := shl(Reg0x1300, 9) mod (max_value + 1);
    
        // получение дробной части путём получения остатка от деления на (10^5)
        // при делении на (10^5) возможно переполнение при "A1 := shl(temp, 16) + A1"
        // поэтому сначала делится на 10, а затем на (10^4)
        temp := A2 mod 10;
        A2 := A2 / 10;
        A1 := shl(temp, 16) + A1;
        temp := A1 mod 10;
        A1 := A1 / 10;
        A0 := shl(temp, 16) + A0;
        temp := A0 mod 10;
        A0 := A0 / 10;
        Frac_5 := temp;
    
        temp := A2 mod divizor;
        A2 := A2 / divizor;
        A1 := shl(temp, 16) + A1;
        temp := A1 mod divizor;
        A1 := A1 / divizor;
        A0 := shl(temp, 16) + A0;
        temp := A0 mod divizor;
        A0 := A0 / divizor;
        Frac_5 := temp*10 + Frac_5;
    
        // из A0 и A1 собирается целая часть числа
        Int_8 := A0 + shl(A1, 16);
    
     end_function_block


    Думаю, что нужно переставлять байты полученного 32 разрядного числа. Это удобно делать и проверять сразу. Поэтому у меня этого нет.
    Вложения Вложения

  4. #3524

    По умолчанию

    Цитата Сообщение от Sergej_ Посмотреть сообщение
    Блин, ну как зачем? Вы хотите чтоб одновременно не включались вообще или запуск разрешен, но с задержкой 5 сек., хотите чтоб приоритет был, у какого? Либо при каждом следующем включении попеременно включались? Вкл-выкл в течении менее5 сек. вариантов масса. То что у Вас , и не меняя логики , как Вы хотели, включится второй выход, через 5 сек 1-й. и при каждом включении так же будет . Я уж не спрашиваю про условия пуска. Поставьте л.з. Но этот вариант не будет отличаться от того что раньше рисовал Вам. Только сложнее.
    Вложение 74327

    Вероятно Вы хотели что то типа счетчика сделать? N_start? Но это не так делается. Гадать сложно.
    Всем спасибо! С л.з. всё работает как надо.

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    На форуме была подобная тема(если правильно понял вашу проблему), в смысле, если включаются одновременно более одного насоса(компрессора), точнее, подаются сигналы на запуск, то первый запускался сразу, а остальные по очереди, с определённым приоритетом и задержкой, чтобы снизить суммарный пусковой ток, Вы такой алгоритм хотите?
    Короче, я много разных вариантов предлагал, вот один из них:

    Разруливание одновременного запуска_9.owle
    Спасибо! Возьму на заметку

  5. #3525
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,242

    По умолчанию

    Цитата Сообщение от p-nik Посмотреть сообщение
    Всем спасибо! С л.з. всё работает как надо.



    Спасибо! Возьму на заметку
    Если потребуется, настройки периода(задержки) в свойствах макроса и можно легко расширить до 32 входов-выходов!
    Последний раз редактировалось Сергей0308; 15.03.2024 в 18:00.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  6. #3526

    По умолчанию

    Добрый день! Уважаемые комрады. Нужна помощь в программировании ПР100. Подскажите пожалуйста каким образом настроить переменную на аналоговый вход в дискретный режим, при котором напряжение логической единицы 4.5в, а логического нуля поставить 2В.

  7. #3527

    По умолчанию

    Цитата Сообщение от maintenancekbk24@gmail.com Посмотреть сообщение
    Добрый день! Уважаемые комрады. Нужна помощь в программировании ПР100. Подскажите пожалуйста каким образом настроить переменную на аналоговый вход в дискретный режим, при котором напряжение логической единицы 4.5в, а логического нуля поставить 2В.
    Уровни в ПР можно настроить или использовать аналоговый вход в режиме входа по напряжению. Тогда вы сможете выловить любой нужный уровень.
    Сделайте сравнение входа <2 и >4.4 и получите логическую единицу или 0.
    А по факту достаточно только сравнить >4.4 и будет логическая 1, остальное 0.
    Последний раз редактировалось kondor3000; 18.03.2024 в 16:06.

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

    По умолчанию

    Цитата Сообщение от maintenancekbk24@gmail.com Посмотреть сообщение
    Добрый день! Уважаемые комрады. Нужна помощь в программировании ПР100. Подскажите пожалуйста каким образом настроить переменную на аналоговый вход в дискретный режим, при котором напряжение логической единицы 4.5в, а логического нуля поставить 2В.
    А так не прокатывает?
    Безымянный.png

  9. #3529

    По умолчанию

    Простите за глупый вопрос, попытался запустить симуляцию ФБ, и ничего не получил. Вроде все сделал как на видео с ОФ канала на Ютуб. Версия 2.6.346.0
    Безымянный.png

  10. #3530

    По умолчанию

    Цитата Сообщение от shev1975 Посмотреть сообщение
    Простите за глупый вопрос, попытался запустить симуляцию ФБ, и ничего не получил. Вроде все сделал как на видео с ОФ канала на Ютуб. Версия 2.6.346.0
    Безымянный.png
    Прицепите переменную "результат" к какому нибудь выходу, или сделайте энергонезависимой.

Страница 353 из 361 ПерваяПервая ... 253303343351352353354355 ... ПоследняяПоследняя

Похожие темы

  1. Вопросы новичка!!!
    от sau в разделе ПЛК1хх
    Ответов: 42
    Последнее сообщение: 02.05.2022, 19:57
  2. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 15:39
  3. ПЛК 110 - Вопросы новичка?
    от di-s в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 06.09.2011, 15:12
  4. Вопросы полного новичка
    от Korion в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 09.02.2010, 10:08
  5. Вопросы новичка по ПЛК
    от Ollegator в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 07.07.2009, 10:29

Ваши права

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