Страница 280 из 320 ПерваяПервая ... 180230270278279280281282290 ... ПоследняяПоследняя
Показано с 2,791 по 2,800 из 3198

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

  1. #2791

    По умолчанию

    Цитата Сообщение от a86ndrew Посмотреть сообщение
    Хорошо, я вас услышал, единственное что я бы вот хотел уточнить:
    Вот у меня есть программа на C#, там я работаю со всеми регистрами, PSB, PSW, c PSB я взаимодействую через ReadCoils, а с PSW и PFW - с ReadHoldingRegisters, и, если я правильно понимаю то регистры PSW и PFW имеют одну общую область, и у меня сейчас такая проблема, что с PSB и PSW все в порядке, а вот с PFW - все грустнее, данные выводятся, но это не то вообще, и вот отсюда вопрос: можно ли каким-то образом посмотреть и понять, что в какой ячейке лежит? Можно ли это сделать через конфигуратор?
    Область одна, а адреса регистров PFW +10 000, то есть адрес PFW256 будет 10256
    Последний раз редактировалось kondor3000; 14.05.2023 в 13:07.

  2. #2792

    По умолчанию

    Здравствуйте.
    Пишу макрос для СП310
    static WORD ArrValueDW[2];
    static float RegFloat;
    WORD Temp1;

    if (GetPSBStatus(318)==1) {//1
    if (Reads(HMI_LOCAL_MCH, 0, TYPE_PFW, 300, 2, &ArrValueDW)) {//2
    RegFloat=*(float*)(ArrValueDW);//float
    *(float*)(PSW+318)=RegFloat;//PSW[318] DWord float
    RegFloat=RegFloat*10.0;
    Temp1=(WORD)RegFloat;
    PSW[320]=Temp1;//PSW[320] Word Dec
    if (Write(PLC, 82, MODBUS_RTU_REG_4X, 186, 0, TYPE_WORD, Temp1)) {//Wr adr 0x0080+58=186
    ResetPSB(318);
    } //Wr
    }//2
    }//1
    При вводе данных в PFW[300] устанавливается бит PSB[318] и панель сразу зависает ( не реагирует на нажатия)...что я делаю не так?

  3. #2793

    По умолчанию

    не понял про 318....PSB318 это бит уведомления о изменении параметра(может быть любого номера)
    а PSW[318] Dword =4 байта(т.е. регистры 318 и 319)
    Последний раз редактировалось GIGSatellite; 17.05.2023 в 11:22.

  4. #2794

    По умолчанию

    это как то совсем не научно ((( а других ошибок в коде нет?

  5. #2795

    По умолчанию

    у Вас есть пример работы с PFW?

  6. #2796

    По умолчанию

    команда Reads возвращает True если успешно прочиталось...вроде так

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

    По умолчанию

    Цитата Сообщение от GIGSatellite Посмотреть сообщение
    Здравствуйте.
    Пишу макрос для СП310
    static WORD ArrValueDW[2];
    static float RegFloat;
    WORD Temp1;

    if (GetPSBStatus(318)==1) {//1
    if (Reads(HMI_LOCAL_MCH, 0, TYPE_PFW, 300, 2, &ArrValueDW)) {//2
    RegFloat=*(float*)(ArrValueDW);//float
    *(float*)(PSW+318)=RegFloat;//PSW[318] DWord float
    RegFloat=RegFloat*10.0;
    Temp1=(WORD)RegFloat;
    PSW[320]=Temp1;//PSW[320] Word Dec
    if (Write(PLC, 82, MODBUS_RTU_REG_4X, 186, 0, TYPE_WORD, Temp1)) {//Wr adr 0x0080+58=186
    ResetPSB(318);
    } //Wr
    }//2
    }//1
    При вводе данных в PFW[300] устанавливается бит PSB[318] и панель сразу зависает ( не реагирует на нажатия)...что я делаю не так?
    Если РЕАЛЬНЫЙ ПЛК к панели не подключен,то
    виснет когда пытается записать в ПЛК здесь
    if (Write(PLC, 82, MODBUS_RTU_REG_4X, 186, 0, TYPE_WORD, Temp1)) {//Wr adr 0x0080+58=186

    Закомментируй этот Write и посмотри результат
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #2798

    По умолчанию

    if (GetPSBStatus(318)) {//1
    ResetPSB(318);
    SetPSB(400);
    Read(HMI_LOCAL_MCH, 0, TYPE_PFW, 300, 0, TYPE_DWORD, &ArrValueDW);

    /* RegFloat= *(float*)(ArrValueDW);//float
    //RegFloat=12.3;
    *(float*)(PSW+318)=RegFloat;
    RegFloat=RegFloat*10.0;
    Temp1=(WORD)RegFloat;
    PSW[320]=Temp1;*/
    // if (Write(PLC, 82, MODBUS_RTU_REG_4X, 186, 0, TYPE_WORD, Temp1)) {//Wr adr 0x0080+58=186
    // ResetPSB(318);
    // } //Wr
    }//1
    при вводе значения в PFW[300] виснет

  9. #2799

    По умолчанию

    Цитата Сообщение от GIGSatellite Посмотреть сообщение
    if (GetPSBStatus(318)) {//1
    ResetPSB(318);
    SetPSB(400);
    Read(HMI_LOCAL_MCH, 0, TYPE_PFW, 300, 0, TYPE_DWORD, &ArrValueDW);

    /* RegFloat= *(float*)(ArrValueDW);//float
    //RegFloat=12.3;
    *(float*)(PSW+318)=RegFloat;
    RegFloat=RegFloat*10.0;
    Temp1=(WORD)RegFloat;
    PSW[320]=Temp1;*/
    // if (Write(PLC, 82, MODBUS_RTU_REG_4X, 186, 0, TYPE_WORD, Temp1)) {//Wr adr 0x0080+58=186
    // ResetPSB(318);
    // } //Wr
    }//1
    при вводе значения в PFW[300] виснет
    может надо еще добавить в макрос условие читать reads только в том случае, когда в данный текущий момент времени не идет запись в PFW.......

  10. #2800

    По умолчанию

    Цитата Сообщение от GIGSatellite Посмотреть сообщение
    if (GetPSBStatus(318)) {//1
    при вводе значения в PFW[300] виснет
    Всё тоже самое можно сделать и без макросов, в дисплее ввода ставите бит уведомления, он включит нужный бит при вводе значения.
    Если бит надо сбросить, можно добавить Функц. область, по фронту бита, сбросить этот бит.

Страница 280 из 320 ПерваяПервая ... 180230270278279280281282290 ... ПоследняяПоследняя

Похожие темы

  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 в качестве панели оператора
    от Леонид в разделе СПК1хх
    Ответов: 15
    Последнее сообщение: 20.11.2015, 08:17

Ваши права

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