Страница 67 из 361 ПерваяПервая ... 1757656667686977117167 ... ПоследняяПоследняя
Показано с 661 по 670 из 4012

Тема: Панели оператора СП3xx. Вопросы и ответы

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

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

    По умолчанию

    Цитата Сообщение от paul-th Посмотреть сообщение
    Ошибки исправлю. Спасибо.
    И в принципе макрос работоспособен?
    Ящик на объекте стоит в другом городе и управление пока в ручном режиме даже без контроля текущей температуры.
    Датчики не знают как к ТРМу подключить.
    Исправленный проект.
    Сомневаюсь, я

    Много путаницы.
    Вот зачем это?
    Захват-1.png
    Убрать категорически!!!
    Кроме того, значение температуры из ТРМ в регистре 3х0003 будет получено в виде числа с плавающей точкой(Float)
    Захват-2.png
    А у дисплея формат - целое без знаковое число(Unsigned)
    Захват-3.png

    Вопрос о том как текущая температура из ТРМ попадет в регистр PSW256 и соответственно в макрос остается не раскрытым
    Захват-4.png
    Да и формат не тот. Не может CurTemp,если ее читать из регистра 0х0003, быть DWORD, только float
    Кроме того Вы читаете из ТРМ значение температуры в формате Float, а максимальную температуру задаете в регистре PSW260 в формате UINT и соответственно в макросе сравниваете между собой не сравниваемые величины.
    Либо читайте другой регистр - 0х0001 значение в формате INT.

    Такая запись при объявлении переменных
    Код:
    DWORD CurTemp=PSW[256];  
    WORD MaxTemp=PSW[260];
    WORD SleepSec=PSW[258];
    WORD StartTemp=PSW[256];
    По моему не прокатит. Боюсь, что компилятор при загрузке проекта в панель будет ругаться.
    Уж лучше использовать директивы #define
    например
    Код:
    #define SleepSec PSW[258]
    #define MaxTemp *(float*)(PSW + 260) // При условии, что Вы все таки исправите на экране цифровой ввод для MaxTemp (тип данных DWord, формат Float)
    Захват-5.png Захват-6.png
    Последний раз редактировалось petera; 18.09.2017 в 23:57.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  2. #2

    По умолчанию

    Вот зачем это?
    Нажмите на изображение для увеличения.

    Название: Захват-1.png
    Просмотров: 1
    Размер: 37.2 Кб
    ID: 33188
    Убрать категорически!!!
    Это было в примере чтение текущей температуры с ТРМ138.

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

    По умолчанию

    Цитата Сообщение от paul-th Посмотреть сообщение
    Вот зачем это?
    Нажмите на изображение для увеличения.

    Название: Захват-1.png
    Просмотров: 1
    Размер: 37.2 Кб
    ID: 33188
    Убрать категорически!!!
    Это было в примере чтение текущей температуры с ТРМ138.
    Убрать!
    Вы не могли бы конкретно описать, что должен делать Ваш макрос?
    Что у Вас означают переменные
    StartTemp - если это начальная температура, то почему она записывается в самом конце?
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  4. #4

    По умолчанию

    Описание процесса.
    При нажатии кнопки старт, вызывается макрос для первого канала регулировки температуры. Для этого записывается стартовая температура, ниже на один градус текущей или равна текущей. В ТРМ138 нет ПИДа, нельзя построить набор температуры по времени. Меня поставили перед фактом существования уже закупленного комплекта и его запуска в работу. Далее, идет набор температуры по времени до заданной, потом выдержка заданное время набранной температуры и всё, конец макроса и сброс уставки на стартовую.
    В панели программа управления, а ТРМ контроль температуры и исполнительные клапана.
    Я решил что такое можно сделать для данной связки, и вот мучаюсь осваивая для себя новую область.
    Каналов будет восемь.
    Последний раз редактировалось paul-th; 18.09.2017 в 20:20.

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

    По умолчанию

    Цитата Сообщение от paul-th Посмотреть сообщение
    Описание процесса.
    При нажатии кнопки старт, вызывается макрос для первого канала регулировки температуры. Для этого записывается стартовая температура, ниже на один градус текущей или равна текущей. В ТРМ138 нет ПИДа, нельзя построить набор температуры по времени. Меня поставили перед фактом существования уже закупленного комплекта и его запуска в работу. Далее, идет набор температуры по времени до заданной, потом выдержка заданное время набранной температуры и всё, конец макроса и сброс уставки на стартовую.
    В панели программа управления, а ТРМ контроль температуры и исполнительные клапана.
    Я решил что такое можно сделать для данной связки, и вот мучаюсь осваивая для себя новую область.
    Каналов будет восемь.
    Уточните
    Для этого записывается стартовая температура, ниже на один градус текущей или равна текущей
    Все таки равная или меньше на 1?
    и в конце
    конец макроса и сброс уставки на стартовую
    на какую стартовую, ту что была в начале или в конце нужно уставке присвоить значение текущей температуры

    ЗЫ.
    А может все таки в начале нужно уставку записывать на 1 больше текущего значения иначе если она будет меньше текущего значения, то и нагрев не пойдет?
    Последний раз редактировалось petera; 18.09.2017 в 20:47.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

    По умолчанию

    Вариант
    Захват-1.png

    Для такого распределения регистров, макрос может быть таким
    Захват-2.png

    Код:
    #define SleepMin PSW[258]
    #define MaxTemp *(float*)(PSW + 260)
    #define StartTemp *(float*)(PSW + 256)
    float CurTemp;
    unsigned int CurMinute;
     
    Read(PLC, 16, MODBUS_RTU_REG_3X, 0x03, 0, TYPE_DWORD, &CurTemp);
    StartTemp = CurTemp;
    Write(PLC, 16, MODBUS_RTU_REG_4X, 0X11, 0, TYPE_WORD, (int)(StartTemp + 1));
    do {
        CurMinute = (PSW[34] / 16) * 10 + PSW[34] % 16; 
        
        if (CurMinute % 5 == 0) {
            Read(PLC, 16, MODBUS_RTU_REG_3X, 0x03, 0, TYPE_DWORD, &CurTemp);
            Write(PLC, 16, MODBUS_RTU_REG_4X, 0X11, 0, TYPE_WORD, (int)(CurTemp + 1));
        }
          
    Delay(10);
    
    } while ( CurTemp < MaxTemp );
    
    Delay(SleepMin * 60000U);
    Read(PLC, 16, MODBUS_RTU_REG_3X, 0x03, 0, TYPE_DWORD, &CurTemp);
    Write(PLC, 16, MODBUS_RTU_REG_4X, 0x11, 0, TYPE_WORD, (int)CurTemp);
    
    ResetPSB(256);
    ЗЫ,
    Внимание, нашел и исправил "очепятку"
    Было
    do {
    CurMinute = (PSW[34] / 16) * 10 + PSW[34] % 16;

    if (CurMinute % 5 == 0) {
    Read(PLC, 16, MODBUS_RTU_REG_3X, 0, 0х03, TYPE_DWORD, &CurTemp);
    Write(PLC, 16, MODBUS_RTU_REG_4X, 0X11, 0, TYPE_WORD, (int)(CurTemp + 1));
    }
    Должно быть
    do {
    CurMinute = (PSW[34] / 16) * 10 + PSW[34] % 16;

    if (CurMinute % 5 == 0) {
    Read(PLC, 16, MODBUS_RTU_REG_3X, 0x03, 0, TYPE_DWORD, &CurTemp);
    Write(PLC, 16, MODBUS_RTU_REG_4X, 0X11, 0, TYPE_WORD, (int)(CurTemp + 1));
    }
    Последний раз редактировалось petera; 18.09.2017 в 22:10.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #7

    По умолчанию

    Добрый день.

    Есть связка 310+ПР220-24. Связь по modbus rtu. Панель 310 - мастер.
    В связке всё работает нормально.
    Ниже кусок экрана панели.
    ПРОЕКТ.JPG
    На панели есть выключатель 4х512.
    Когда я его включаю в ПР-ку уходит время для таймера.
    ПР-ка возвращает 1 в 4х513 пока таймер работает.
    Как только время закончилось в 4х513 прилетает 0.
    Я уже всю голову себе сломал как сделать так, чтобы как только в 4х513 прилетает 0, то выключатель 4х512 так же выключался и открывалось окно с ID=2? Собственно вторая часть с окном, это не столь важна.

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

    По умолчанию

    Цитата Сообщение от Koren Посмотреть сообщение
    Добрый день.

    Есть связка 310+ПР220-24. Связь по modbus rtu. Панель 310 - мастер.
    В связке всё работает нормально.
    Ниже кусок экрана панели.
    ПРОЕКТ.JPG
    На панели есть выключатель 4х512.
    Когда я его включаю в ПР-ку уходит время для таймера.
    ПР-ка возвращает 1 в 4х513 пока таймер работает.
    Как только время закончилось в 4х513 прилетает 0.
    Я уже всю голову себе сломал как сделать так, чтобы как только в 4х513 прилетает 0, то выключатель 4х512 так же выключался и открывалось окно с ID=2? Собственно вторая часть с окном, это не столь важна.
    Значит надо как только в 4х513 прилетает 0, т.е. по спаду бита 0 в 4х513 запускать ф.область с функциями 1. Выкл бит 0 в 4х512; 2 Вызвать окно с ID=2.
    Только вот ф.область может запускаться только по фронту бита, а по спаду пока нет.

    Однако можно воспользоваться ГМ "НЕ" из моей библиотеки http://www.owen.ru/forum/showthread....l=1#post232246
    На вход(Операнд) подавать бит 0 в 4х513, а на выходе(Результат) использовать промежуточный PSB. И уже от этого PSB запускать ф.область с функциями Выкл бит 0 в 4х512; 2 Вызвать окно с ID=2.

    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  9. #9

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Однако можно воспользоваться ГМ "НЕ" из моей библиотеки http://www.owen.ru/forum/showthread....l=1#post232246
    На вход(Операнд) подавать бит 0 в 4х513, а на выходе(Результат) использовать промежуточный PSB. И уже от этого PSB запускать ф.область с функциями Выкл бит 0 в 4х512; 2 Вызвать окно с ID=2.
    Спасибо огромное. Всё получилось. И даже лучше чем хотел.... Но возникла другая проблема - при включении панели каждый раз появляется окно ID=2 т.к. при включении в регистре 4х513 0, а после функции НЕ соответственно 1. И появляется окно 2. Что можно сделать?

    И ещё вопрос по "дисплею для таймера" из ГМ можно ли его делать невидимым? Я хочу наложить два дисплея друг на друга и в зависимости от условий отображать один из двух.

  10. #10

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Нужно заменить ГМ "НЕ" на F_TRIGGER.
    F_TRIGGER и R_TRIGGER добавил в библиотеку http://www.owen.ru/forum/showthread....l=1#post258412
    Petera, спасибо огромное за ответы. У меня отпуск на 5 дней. Я во вторник обязательно попробую и отпишусь по результатам.

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

Похожие темы

  1. Экспорт CSV в панели СП3xx и порядок квитирования событий
    от theoretician в разделе Панели оператора (HMI)
    Ответов: 30
    Последнее сообщение: 24.08.2021, 16:17
  2. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  3. Сенсорные панели оператора ОВЕН СП3ХХ
    от Боднар Олег Миколайович в разделе Подбор Оборудования
    Ответов: 7
    Последнее сообщение: 17.12.2015, 09:09
  4. СПК 107 в качестве панели оператора
    от Леонид в разделе СПК1xx (архив)
    Ответов: 15
    Последнее сообщение: 20.11.2015, 08:17

Ваши права

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