Страница 54 из 94 ПерваяПервая ... 444525354555664 ... ПоследняяПоследняя
Показано с 531 по 540 из 931

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

  1. #531

    По умолчанию

    Цитата Сообщение от SokolovS Посмотреть сообщение
    В этой теме http://www.owen.ru/forum/showthread.php?t=13179 выложены системные регистры панели
    Среди них есть настройки портов
    В своём проекте я использую оба порта. PLC настроен в мастер и занимается опросом оборудования. Download настроен подчинённым и будет подключаться у заказчика. Думаю, возможность настройки параметров по этому порту без перепрошивки панели будет весьма полезной. Делал ли кто-нибудь окно таких настроек?
    В приложении мой вариант реализации такого окна настроек для порта Download
    Размещение элементов управления, правда, строго скопировал с такового у Андрея
    На панели НЕ тестировалось, корректность работы проверялась только в симуляторе по значениям в регистрах
    Изображения Изображения
    Вложения Вложения

  2. #532

    По умолчанию

    Вариашечка
    Сделал отдельным экраном, так гораздо приятнее и универсальнее
    Если кто-нибудь подскажет как конкатенацию строк сделать, попробую сделать поле, отображающее текущие настройки сети
    Изображения Изображения
    Вложения Вложения
    Последний раз редактировалось SokolovS; 06.10.2014 в 14:41.

  3. #533

    По умолчанию

    И теперь вопрос
    Вроде видел работу панелью со временем, но не знаю как искать
    Мне требуется задавать текущее время и день недели в панели, а также время и день недели нескольких событий. Ну и делать всякие дела по наступлении событий этих.
    Возможно такое? Какова реакция на потерю питания будет?

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

    По умолчанию

    Цитата Сообщение от SokolovS Посмотреть сообщение
    Если кто-нибудь подскажет как конкатенацию строк сделать, попробую сделать поле, отображающее текущие настройки сети
    А что что четыре вариационных текста разделенных запятыми Вас не устраивают?
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

    По умолчанию

    Цитата Сообщение от SokolovS Посмотреть сообщение
    Вариашечка
    Сделал отдельным экраном, так гораздо приятнее и универсальнее
    Только не знаю как спрятать поле адреса если панель мастер
    .............
    Здесь помогут регистры
    PSW74,75 для порта PLC
    Захват-2.png
    и PSW64,65 для порта Download
    Захват-1.png

    Если ограничится из всех протоколов, имеющихся в панели http://www.owen.ru/forum/showthread....l=1#post101140,только протоколом ModBus, то
    Настройки порта PSW64(74) PSW65(75)
    Порт не используется 0 0
    Modbus RTU (Панель мастер) 5 13
    Modbus ASCII (Панель мастер) 22 15
    Modbus RTU Slave (ПЛК мастер) 23 5

    В скобках регистры для порта PLC

    Таким образом показывать поле адреса панели нужно (использовать IF) если, например, PSW64 или PSW74 равно 23 для выбранного порта.
    Последний раз редактировалось petera; 06.10.2014 в 12:20.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  6. #536
    Пользователь Аватар для Эдуард_Н
    Регистрация
    22.09.2014
    Адрес
    Курган
    Сообщений
    1,612

    По умолчанию

    Подскажите как можно с помощью панели задавать время работы блока "Blink" в ПЛК 160 ?

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

    По умолчанию

    Цитата Сообщение от Эдуард_Н Посмотреть сообщение
    Подскажите как можно с помощью панели задавать время работы блока "Blink" в ПЛК 160 ?
    Смотрите пример на диске, который идет с ПЛК
    Захват-1.png
    или можно скачать отсюда http://www.owen.ru/forum/showthread.php?t=13581
    Пример http://kipshop.ru/Primeri/HMI/03_06_...ter]_timer.zip
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #538

    По умолчанию

    Проблема раз:
    СП270 сильно умная, МУ110 не понимает глубины полёта мысли.
    Использую для управления модулем скриптовую функцию Writes и регистр 50й (в него записывается состояние сразу всех выходов, это удобно), ожидая от неё запроса 0x10. Однако панелька оптимизирует запросы и, поскольку изменить требуется только один регистр, посылает запрос 0х06. К сожалению, МУ110 обрабатывать такие не умеет. Есть ли какой-либо способ уговорить панель использовать запрос 0х10? Ну, кроме работы с портом напрямую.

    Проблема два:
    Трудно выделить ключевые моменты, поэтому описываю целиком ситуацию.
    Та же СП270 и МУ110. За обмен информацией отвечает скрипт. Его задача - при наличии разрешения (PSB) отправить регистры (PSW) по заданному адресу. Разрешение сделано с прицелом на расширение, поэтому бит разрешения сразу в скрипте устанавливается сразу и не снимается.
    Теперь ситуация. Сразу после запуска панели она устанавливает нужное состояние выходов модуля. Как только действия оператора приводят к тому, что состояние выходов должно измениться, панель выполняет это (выходы переходят в нужное состояние) и тут же виснет (появляется микросхемка), перезагружается и всё по новой.
    Причём:
    1) Комментирование строчки скрипта, отвечающей за установку бита (SetPSB(...); ), делает прошивку стабильной.
    2) Перенос строчки в другое место и усиленная проверка на ошибки ничего не меняет.
    3) При закомментированной строчке скрипта тот же самый бит, установленный любым другим способом (вручную кнопкой управления битом или функциональной областью), не приводит к зависанию панели.
    К сожалению, в "поле" у меня не было особой возможности и желания проводить эксперименты. Панельку работать заставил, однако неплохо бы знать причину такого поведения. Сталкивался ли кто-нибудь с подобным?
    Последний раз редактировалось SokolovS; 22.10.2014 в 12:22.

  9. #539

    По умолчанию

    Спасибо, но хотелось бы решить это на скриптах

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

    По умолчанию

    Цитата Сообщение от SokolovS Посмотреть сообщение
    Спасибо, но хотелось бы решить это на скриптах
    Вариант №1
    Захват-2.png
    Создаем команду 0х10 прямо в функции
    Код:
    //В примере адрес устройства равен 1
    //Данные с маской выхoдов  МУ в регистре PSW300
    //*************************************************
    BYTE snd[11]={0x01,0x10,0x00,0x32,0x00,0x01,0x02};//буфер для посылки команды slave
    //[0]-адрес устройства(0x01)
    //[1]-Код функции ModbusRTU 0x10 -запись нескольких регистров
    //[2]-ст.байт адреса начального регистра(0x00)
    //[3]-мл.байт адреса начального регистра(0x32)
    //[4]-ст.байт количества регистров(0x00)
    //[5]-мл.байт количества регистров(0x01)
    //[6]-количество байтов(0x02)
    //[7]-ст.байт значения в регистре(Определим ниже)
    //[8]-мл.байт значения в регистре(Определим ниже)
    //[9]-ст.байт CRC(Определим ниже)
    //[10]-мл.байт CRC(Определим ниже)
    
    BYTE rcv[8];//буфер для приема ответа от slave
    //[0]-адрес устройства
    //[1]-Код функции ModbusRTU-запись нескольких регистров 0x10
    //[2]-ст.байт адреса начального регистра(0x00)
    //[3]-мл.байт адреса начального регистра(0x32)
    //[4]-ст.байт количества регистров(0x00)
    //[5]-мл.байт количества регистров(0x01)
    //[6]-ст.байт CRC
    //[7]-мл.байт CRC
    
    snd[7]=HIBYTE(PSW[300]);
    snd[8]=LOBYTE(PSW[300]);
    snd[9]=HIBYTE(Crc(snd,9));//дополнить команду CRC, сначала Hi
    snd[10]=LOBYTE(Crc(snd,9));//затем Lo
    //Crc() -внутренняя функция, ее писать не надо
    
    Enter(PLC);//Захватить порт PLC
    Send(PLC,snd,11);//Отправить команду
    Receive(PLC,rcv,8,1000,6);//Получить ответ (тайм-аут 1000мс)
    Leave(PLC);//Освободить порт
    Вариант №2
    Захват-3.png
    Создаем глобальную функцию для записи маски выходов в МУ110 с любым адресом
    Код:
    BYTE MY_16WRITE(BYTE Adres, WORD Mask)
    {
        BYTE rcv[8];//буфер для приема ответа от slave
    //[0]-адрес устройства
    //[1]-Код функции ModbusRTU-запись нескольких регистров 0x10
    //[2]-ст.байт адреса начального регистра(0x00)
    //[3]-мл.байт адреса начального регистра(0x32)
    //[4]-ст.байт количества регистров(0x00)
    //[5]-мл.байт количества регистров(0x01)
    //[6]-ст.байт CRC
    //[7]-мл.байт CRC
        BYTE snd[11]={0x01,0x10,0x00,0x32,0x00,0x01,0x02};//буфер для посылки команды slave
    //[0]-адрес устройства
    //[1]-Код функции ModbusRTU 0x10 -запись нескольких регистров
    //[2]-ст.байт адреса начального регистра
    //[3]-мл.байт адреса начального регистра
    //[4]-ст.байт количества регистров
    //[5]-мл.байт количества регистров
    //[6]-количество байтов
    //[7]-ст.байт значения в регистре
    //[8]-мл.байт значения в регистре
    //[9]-ст.байт CRC
    //[10]-мл.байт CRC
    snd[0]=Adres;
    snd[7]=HIBYTE(Mask);//Данные с маской выхoдов  МУ110 сначала Hi 
    snd[8]=LOBYTE(Mask);затем Lo
    snd[9]=HIBYTE(Crc(snd,9));//дополнить команду CRC, сначала Hi
    snd[10]=LOBYTE(Crc(snd,9));//затем Lo
    //Crc() -внутренняя функция, ее писать не надо
    
    Enter(PLC);//Захватить порт PLC
    Send(PLC,snd,11);//Отправить команду
    Receive(PLC,rcv,8,1000,6);//Получить ответ (тайм-аут 1000мс)
    Leave(PLC);//Освободить порт
    //Надо бы сделать проверку ошибок
    //обмена, хотя бы CRC ответа сравнить
        return TRUE;//Пока так
    }
    Теперь эту свою функцию можем использовать в любых местах любых скриптов наравне с стандартными функциями Write() или Writes()
    Например
    Код:
    //Используется глобальная функцияMY_16WRITE(BYTE Adres, WORD Mask)
    //где
    //Adres -Адрес устройства
    //Mask -маска выходов
    MY_16WRITE(1,PSW[300]);//Запись в МУ110 с адресом 1, маска в PSW300
    MY_16WRITE(16,PSW[301]);//Запись в МУ110 с адресом 16, маска в PSW301
    MY_16WRITE(32,PSW[302]);//Запись в МУ110 с адресом 32, маска в PSW302
    UPD. Обновил вложения и картинки (были ошибки)
    Вложения Вложения
    Последний раз редактировалось petera; 28.10.2014 в 15:42.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Страница 54 из 94 ПерваяПервая ... 444525354555664 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 3197
    Последнее сообщение: 23.04.2024, 13:45
  2. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  3. СПК 110 в качестве Панели оператора
    от GSM73 в разделе СПК1хх
    Ответов: 3
    Последнее сообщение: 14.03.2017, 00:42
  4. СПК 107 в качестве панели оператора
    от Леонид в разделе СПК1хх
    Ответов: 15
    Последнее сообщение: 20.11.2015, 08:17
  5. Ответов: 4
    Последнее сообщение: 27.10.2012, 23:12

Метки этой темы

Ваши права

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