Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 30 из 31

Тема: Упрощение функции...

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,084

    По умолчанию

    Имхо, все предложенные решения не очень:
    -Нет минимизации кол-ва щелчков контакторами при переходе с одной нагрузки на другую
    -Не учитывается наработка каждого контактора (по щелчкам)
    -Нет возможности исключения из набора конкретных выходов/контакторов (поломка например)
    ..

  2. #2

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Имхо, все предложенные решения не очень:
    -Нет минимизации кол-ва щелчков контакторами при переходе с одной нагрузки на другую
    -Не учитывается наработка каждого контактора (по щелчкам)
    -Нет возможности исключения из набора конкретных выходов/контакторов (поломка например)
    ..
    Всё это хорошо бы, но...

    petera, спасибо огромное за помощь... был один косяк, пока из варов pw1: REAL; не убрал не хотело работать, у меня эта переменная из меню редактируется...

  3. #3
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Вот так нехорошо делать:
    Код:
    IF plcoutbits.0 THEN
    out1:=1.0;
    ELSE
    out1:=0.0;
    END_IF
    Есть SEL: out1 := SEL(plcoutbits.0, 0.0, 1.0).
    нужно включить выход out5 при PWlo от 1 до 9 а при нуле выключить с задержкой через TOF
    Код:
    VAR
    	timer: TOF := (PT := T#1s);
    END_VAR
    
    timer(IN := PWlo > 0, Q => out5);

  4. #4

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Вот так нехорошо делать:
    Код:
    IF plcoutbits.0 THEN
    out1:=1.0;
    ELSE
    out1:=0.0;
    END_IF
    Есть SEL: out1 := SEL(plcoutbits.0, 0.0, 1.0).
    Код:
    VAR
    	timer: TOF := (PT := T#1s);
    END_VAR
    
    timer(IN := PWlo > 0, Q => out5);
    Почему не хорошо???
    Цитата Сообщение от petera Посмотреть сообщение
    В любом варианте хоть с бубном, хоть без для "out1-out4 - 4 "шага" по 100 кВт... Суммарная мощность 500 кВт!"
    нужно добавить такой фрагмент
    Код:
    out1:=(TRUNC(pw1)/100)>=1;
    out2:=(TRUNC(pw1)/100)>=2;
    out3:=(TRUNC(pw1)/100)>=3;
    out4:=(TRUNC(pw1)/100)>=4;
    ou1, out2, out3 и out4 должны быть объявлены как BOOL, ведь я полагался на "out1-out4 - 4 "шага" по 100 кВт... Суммарная мощность 500 кВт!", т.е. это дискретные выходы.
    А Вы судя по ошибке "невозможно преобразовать BOOL в REAL" пытаетесь ou1, out2, out3 и out4 объявить как REAL.
    Извините, выдержка из РП:
    7.3.2 Outputs (модуль выходных устройств)
    Модуль выходных устройств (Outputs) отображает значения выходов ПЛК. Мо-
    дуль имеет шесть каналов типа Real. В каждый канал из пользовательской программы
    записывается состояние выхода, в диапазоне от 0,0 до 1,0.
    В зависимости от исполнения ПЛК может быть оснащен следующими выходны-
    ми устройствами: э/м реле (Р) или транзисторными ключами (К), симисторными ключа-
    ми (С), выходами для управления твердотельными реле (Т), ЦАП «параметр-
    напряжение 0..10В» (У), ЦАП «параметр-ток 4…20мА» (И).
    Цитата Сообщение от Валенок Посмотреть сообщение
    Вариант не гуд по простой причине - при переходе с 99 на 100 зачем-то выключается вся мелочевка и включает 100. А ведь достаточно просто добавить 1кВт.

    PS
    Нагрузочник ?
    Вы хотите сказать будет работать только 100 кВт... Или я вас не понял?
    Обогреватель
    Цитата Сообщение от petera Посмотреть сообщение
    ЗЫ. Не заметил, что исходные данные были

    Т.е. ПЛК 73/63?
    Тогда так нужно обойти ошибку
    Захват-1.png
    Уже что-то внятнее...
    З.Ы. Да ПЛК-73. там 8 выходов (4 реле, 4 транзистора), транзисторные подключены к реле, и тоже стали релейными))
    Последний раз редактировалось feLoNy; 23.04.2015 в 15:27. Причина: дополнение

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

    По умолчанию

    Цитата Сообщение от feLoNy Посмотреть сообщение
    Уже что-то внятнее...
    З.Ы. Да ПЛК-73. там 8 выходов (4 реле, 4 транзистора), транзисторные подключены к реле, и тоже стали релейными))
    Так и надо было сразу сказать, а то поди догадайся, что за ПЛК у Вас, ведь есть же в программе и дискретные выходные сигналы
    mrout1:=TRUE; #1 кВт
    mrout2:=TRUE; #2 кВт
    mrout3:=TRUE; #2 кВт
    mrout4:=TRUE; #5 кВт
    mrout5:=TRUE; #10 кВт
    mrout6:=TRUE; #10 кВт
    mrout7:=TRUE; #20 кВт
    mrout8:=TRUE; #50 кВт
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  6. #6
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,626

    По умолчанию

    не всегда сокращение кода удачное решение, на первой картинке две функции выполняющие одну и ту же задачу разными способами, на второй картинке показано время затраченное на выполнение обеих функций
    Изображения Изображения
    • Тип файла: png owen1.png (29.1 Кб, Просмотров: 18)
    • Тип файла: png owen.png (15.2 Кб, Просмотров: 14)
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

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

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    out2:=(TRUNC(pw1)/100)>=2;
    out3:=(TRUNC(pw1)/100)>=3;
    out4:=(TRUNC(pw1)/100)>=4;
    Вариант не гуд по простой причине - при переходе с 99 на 100 зачем-то выключается вся мелочевка и включает 100. А ведь достаточно просто добавить 1кВт.

    PS
    Нагрузочник ?

  8. #8
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Почему не хорошо???
    Потому что это индусский код. Пять строк вместо одной. Ветвление там, где можно обойтись селектором.

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

    По умолчанию

    Народ страдает фигней выясняя платформы и способы преобразования булей в реалы. Это самая последняя часть которую скучно и неинтересно писать и сделать это можно после отладки. А лучше, при возможности, отдать индусам, а самому попить пивка перед решением нижеследующего.

    Суть задачи - при получении новой уставки пройти к ней по самому короткому пути, т.к. изменение буля в коде - просто смена цвета, а на контакторе 100кВт - чуть больше чем просто щелчок.
    Вообщем задача кассира со сдачей, но с небольшим усложением - монетки должны равномерно изнашиваться, и любая монетка может сама в любой момент уехать отдыхать на монетный двор. Вот тут и можно мозги потренировать.

Страница 3 из 3 ПерваяПервая 123

Похожие темы

  1. Пользовательские функции modbus
    от dnsss в разделе ПЛК3xx (архив)
    Ответов: 0
    Последнее сообщение: 29.01.2015, 19:57
  2. Функции.
    от Jonikk в разделе Программируемые реле
    Ответов: 11
    Последнее сообщение: 13.09.2011, 17:57
  3. Функции
    от mettled в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 13.02.2008, 10:16

Ваши права

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