Стартовая страница › Форумы › Разработка и интеграция › Драйвер для приборов Пульсар V6
- В этой теме 26 ответов, 4 участника, последнее обновление 1 год, 10 месяцев назад сделано
manjey73.
-
АвторСообщения
-
06.06.2023 в 12:10 #28798
manjey73УчастникШаблоны поменялись, есть еще масса кода, где делать оптимизацию, но не важно со временем, да и при оптимизации сильно сломается все 🙂
В составе архива есть новые шаблоны для понимания и сравнения.
Вот бы еще кто объяснил из программистов, почему 5-я строка Format не хочет менять значение по выпадающему списку ?
Отладчиком смотрел, все в норме, но в 5-й строке в упор отказывается вызывать выпадающий список в столбце «Format».06.06.2023 в 12:11 #28799
manjey73УчастникИсходники загружаю потихоньку… Пока не все загружено
06.06.2023 в 12:24 #28800
manjey73УчастникЗагрузил исходники на GIT.
Портировал почти малой кровью, немного оптимизировал код и добавил настройку из Администратора. Но все так же больше руками с документацией на приборы.
06.06.2023 в 19:37 #28801
JurasskParkУчастникВот бы еще кто объяснил из программистов, почему 5-я строка Format не хочет менять значение по выпадающему списку ?
Отладчиком смотрел, все в норме, но в 5-й строке в упор отказывается вызывать выпадающий список в столбце «Format».Вы про это?
https://i.ibb.co/7gZ199L/image.png06.06.2023 в 20:56 #28802
manjey73УчастникДа, про это, в шаблоне Регистратора Pulsar_Reg_2-16Mv6.xml есть по 16-ть параметров, на 5-й строке не меняется значение выпадающего списка.
При чем не просто не меняется, даже не активируется выпадающий список.
-
Ответ изменён 3 года назад пользователем
manjey73.
06.06.2023 в 21:03 #28804
manjey73УчастникЕще интересный момент. Если переместить строку ниже, то в ней выпадающий список будет активироваться, а в строке, которая станет на место пятой активация пропадет.
27.09.2023 в 00:53 #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 так себя ведёт. 😀
19.06.2024 в 10:44 #33098cond33
УчастникКак правильно настроить драйвер? Пытаюсь настроить, как 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()19.06.2024 в 10:51 #33099
manjey73УчастникTimeOut в настройках опроса должен быть больше 0
Параметры Линии — Опрос Устройств = Выбранное устройство — Таймаут
Чтобы сторонние драйвера стали видны в настройках, их надо добавить в Вспомогательную таблицу Базы Конфигурации = Типы устройств
1004 | Pulsar | DrvPulsar | Драйвер приборов Пульсар
по аналогии с другими драйверами из комплекта поставки. Тут важно правильно прописать имя библиотеки без «.dll»
Это для всех драйверов требуется. Номер для сторонних начиная с 1000 и выше. Имя, описание на ваше усмотрение. Имя и будет отображаться при выборе типа устройства при настройках.19.06.2024 в 11:03 #33100cond33
УчастникСпасибо, после исправления TimeOut всё заработало.
15.07.2024 в 10:22 #33420dequick
УчастникПоделитесь пожалуйста конфигой, у меня почему конфиги от пятой версии пустыми загружает.
15.07.2024 в 10:30 #33421
manjey73УчастникВозможно были изменения в названиях атрибутов, сравните с примерами из 6-й версии.
Это скорее всего.16.07.2024 в 11:54 #33429dequick
УчастникПодскажите пожалуйста как отправлять команды
https://ibb.org.ru/1/Vp1sit
Галочка не сохраняется.16.07.2024 в 13:40 #33431
manjey73УчастникУ меня не реализован механизм проверки изменения переменных, надо самостоятельно нажимать клавишу Save.
И второе — userData у вас очень странное, там надо по документации на протокол прибора смотреть в каком виде делать отправку, и возможно выходной формулой формировать правильный байтовый массив.
Команды по большей части экспериментальная штука.
16.07.2024 в 14:52 #33432dequick
УчастникА в каком формате байтовый массив должен быть? Вы выкладывали исходники? Из мануала 0C0717081332 тоже не воспринимает. Просто выходной формат времени DateTime у меня выглядит:
| 4 | sysTime | Системное время | 45 489,703 | |
Команда выполняется в цикле опроса? или нужно кнопочкой команда отправить байтовый массив? там просто параметры — номер команды код команды непонятно что это.
Я в принципе считал настройки через TestAll утилиту. Из спортивного интереса хочется записать время. -
Ответ изменён 3 года назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.