Драйвер для приборов Пульсар V6

Стартовая страница Форумы Разработка и интеграция Драйвер для приборов Пульсар V6

Просмотр 15 сообщений - с 1 по 15 (из 27 всего)
  • Автор
    Сообщения
  • #28798
    manjey73
    Участник

    DrvPulsar_v6.1.0.0.zip

    Шаблоны поменялись, есть еще масса кода, где делать оптимизацию, но не важно со временем, да и при оптимизации сильно сломается все 🙂

    В составе архива есть новые шаблоны для понимания и сравнения.

    Вот бы еще кто объяснил из программистов, почему 5-я строка Format не хочет менять значение по выпадающему списку ?
    Отладчиком смотрел, все в норме, но в 5-й строке в упор отказывается вызывать выпадающий список в столбце «Format».

    #28799
    manjey73
    Участник

    Исходники загружаю потихоньку… Пока не все загружено

    #28800
    manjey73
    Участник

    Загрузил исходники на GIT.

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

    #28801
    JurasskPark
    Участник

    Вот бы еще кто объяснил из программистов, почему 5-я строка Format не хочет менять значение по выпадающему списку ?
    Отладчиком смотрел, все в норме, но в 5-й строке в упор отказывается вызывать выпадающий список в столбце «Format».

    Вы про это?
    https://i.ibb.co/7gZ199L/image.png

    #28802
    manjey73
    Участник

    Да, про это, в шаблоне Регистратора Pulsar_Reg_2-16Mv6.xml есть по 16-ть параметров, на 5-й строке не меняется значение выпадающего списка.

    При чем не просто не меняется, даже не активируется выпадающий список.

    • Ответ изменён 3 года назад пользователем manjey73.
    #28804
    manjey73
    Участник

    Еще интересный момент. Если переместить строку ниже, то в ней выпадающий список будет активироваться, а в строке, которая станет на место пятой активация пропадет.

    #29827
    JurasskPark
    Участник
           private void dgvComm_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
            {
                if (this.dgvComm.CurrentCell.RowIndex == -1)
                    return;
                switchCellCommFormat(e);
            }
    
            private void switchCellCommFormat(DataGridViewCellMouseEventArgs e)
            {
                if (e.ColumnIndex == 4)
                {
                    DataGridViewComboBoxCell viewComboBoxCell = new DataGridViewComboBoxCell();
                    viewComboBoxCell.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
                    viewComboBoxCell.Style.BackColor = Color.White;
                    //viewComboBoxCell.DataSource = (object)this.Format;
                    this.dgvComm[e.ColumnIndex, e.RowIndex] = (DataGridViewCell)viewComboBoxCell;
                }
            }

    Поменяйте логику.
    dgvComm_CellMouseClick замените на CellClick.
    e.ColumnIndex замените на dgvComm.CurrentCell.ColumnIndex (у Row тоже).

    Если коротко, то структура и смысл остаются тот же самый, но вот так. Пример.

    private void dgvComm_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                if (dgvComm.CurrentCell.ColumnIndex == 4)
                {
                    dgvComm.Tag = dgvComm.CurrentCell.ColumnIndex.ToString();//запоминаем ячейку
    
                    DataGridViewComboBoxCell dcombo = new DataGridViewComboBoxCell();//создаём ComboBox
    
                    dcombo.Items.Add("0");//заполняем ComboBox
                    dcombo.Items.Add("1");
                    dgvComm.Rows[dgvComm.CurrentRow.Index].Cells[dgvComm.CurrentCell.ColumnIndex] = dcombo;//показываем в ячейке ComboBox
                }
            }
    

    P.S. А если честно, то я тоже поломал голову над этим. Короче, смысл в том, что если номер строки и столбца одинаковый, то CellMouseClick так себя ведёт. 😀

    #33098
    cond33
    Участник

    Как правильно настроить драйвер? Пытаюсь настроить, как modbus, через мастера добавления устройств, но в списке «Тип устройства» нет варианта для счетчика Пульсар. Драйвер установлен.
    Попробовал добавить вручную, аналогично modbus, задаю числовой адрес: адрес прибора (у меня он 11819947), настраиваю остальные параметры. При опросе постоянно появляется ошибка и связи нет:

    
    2024-06-19 10:17:00 Session with the device [27] Pulsar_1
    Send (14): 11 81 99 47 01 0E FC 01 E0 00 F5 D7 03 9F
    2024-06-19 10:17:00 Error calling the Session method of the [27] Pulsar_1 device:
    Scada.ScadaException: Error reading data: Timeout can be only be set to 'System.Threading.Timeout.Infinite' or a value > 0. (Parameter 'value')
     ---> System.ArgumentOutOfRangeException: Timeout can be only be set to 'System.Threading.Timeout.Infinite' or a value > 0. (Parameter 'value')
       at Scada.Comm.Drivers.DrvCnlBasic.Logic.TcpConnection.Read(Byte[] buffer, Int32 offset, Int32 count, Int32 timeout, ProtocolFormat format, String& logText)
       --- End of inner exception stack trace ---
       at Scada.Comm.Drivers.DrvCnlBasic.Logic.TcpConnection.Read(Byte[] buffer, Int32 offset, Int32 count, Int32 timeout, ProtocolFormat format, String& logText)
       at Scada.Comm.Drivers.DrvPulsar.Logic.DevPulsarLogic.Session()
       at Scada.Comm.Engine.DeviceWrapper.Session()
    
    #33099
    manjey73
    Участник

    TimeOut в настройках опроса должен быть больше 0

    Параметры Линии — Опрос Устройств = Выбранное устройство — Таймаут

    Чтобы сторонние драйвера стали видны в настройках, их надо добавить в Вспомогательную таблицу Базы Конфигурации = Типы устройств

    1004 | Pulsar | DrvPulsar | Драйвер приборов Пульсар

    по аналогии с другими драйверами из комплекта поставки. Тут важно правильно прописать имя библиотеки без «.dll»
    Это для всех драйверов требуется. Номер для сторонних начиная с 1000 и выше. Имя, описание на ваше усмотрение. Имя и будет отображаться при выборе типа устройства при настройках.

    #33100
    cond33
    Участник

    Спасибо, после исправления TimeOut всё заработало.

    #33420
    dequick
    Участник

    Поделитесь пожалуйста конфигой, у меня почему конфиги от пятой версии пустыми загружает.

    #33421
    manjey73
    Участник

    Возможно были изменения в названиях атрибутов, сравните с примерами из 6-й версии.
    Это скорее всего.

    #33429
    dequick
    Участник

    Подскажите пожалуйста как отправлять команды
    https://ibb.org.ru/1/Vp1sit
    Галочка не сохраняется.

    #33431
    manjey73
    Участник

    У меня не реализован механизм проверки изменения переменных, надо самостоятельно нажимать клавишу Save.

    И второе — userData у вас очень странное, там надо по документации на протокол прибора смотреть в каком виде делать отправку, и возможно выходной формулой формировать правильный байтовый массив.

    Команды по большей части экспериментальная штука.

    #33432
    dequick
    Участник

    А в каком формате байтовый массив должен быть? Вы выкладывали исходники? Из мануала 0C0717081332 тоже не воспринимает. Просто выходной формат времени DateTime у меня выглядит:
    | 4 | sysTime | Системное время | 45 489,703 | |
    Команда выполняется в цикле опроса? или нужно кнопочкой команда отправить байтовый массив? там просто параметры — номер команды код команды непонятно что это.
    Я в принципе считал настройки через TestAll утилиту. Из спортивного интереса хочется записать время.

    • Ответ изменён 1 год, 10 месяцев назад пользователем dequick.
    • Ответ изменён 1 год, 10 месяцев назад пользователем dequick.
Просмотр 15 сообщений - с 1 по 15 (из 27 всего)
  • Для ответа в этой теме необходимо авторизоваться.