Стартовая страница › Форумы › Разработка и интеграция › Создание каналов КП в Администарторе
- В этой теме 63 ответа, 4 участника, последнее обновление 7 лет, 2 месяца назад сделано
Mikhail.
-
АвторЗаписи
-
24.05.2019 в 19:22 #11916
manjey73УчастникУрра!, действительно просто надо библиотеку положить в папку ScadaAdmin и все заработало… Теперь причесать все и будет гут…
Вот уж не ожидал, что Студия никак себя не проявит, если Администратор не находит библиотеку..27.05.2019 в 10:29 #11943
MikhailМодераторДа, поведение VS совсем не помогает найти причину.
В общем, если драйвер или модуль использует другие библиотеки, то Администратор их ищет в своей папке. Так устроен .NET Framework. Конечно можно ещё разместить библиотеку в GAC, но не стоит слишком заморачиваться.27.05.2019 в 10:39 #11946
manjey73УчастникДа, спасибо за определение причины. сам бы я точно не догадался. Хотя раньше немного удивлялся повтором библиотек в папках Администратора, Коммуникатора, Сервера но даже не ойкнуло нигде, что причина будет в этом…
Что-то я писал, писал драйвер под теплосчетчик, а в результате это вылилось в драйвер Пульсаровского протокола…
Уже зацепил им и свой Компактный теплосчетчик и счетчик воды и Регистратор импульсов на 10 каналов 🙂27.05.2019 в 17:48 #11963
MikhailМодераторВыложим информацию о драйвере в репозиторий, если он уже оттестирован?
27.05.2019 в 17:59 #11966
manjey73УчастникПока запись прикручиваю.
Вопрос опять родился, а как Администратор видит количество сигналов управления ?Что там надо переопределять ?
А блин, что-то было в ссылках про CtrlCnlProps
28.05.2019 в 09:55 #11983
manjey73УчастникМихаил, подскажите, как выполнить поиск индекса KPTags с нужным мне значением сигнала ?
KPTags — это вроде как раз список сквозной для сигналов с 0 индекса, когда номера сигналов сквозные то signal-1 это и есть номер индекса, но если номера не сквозные то туши свет… леплю кучу счетчиков и проверок.
например
var test = KPTags[10].Signal мне выдает мой номер сигнала (в моем случае номер сигнала 21)А вот как найти индекс (10) ну или другой зная номер сигнала у меня не получается..
В своих списках ищу, но тот же способ не прокатывает с KPTag…28.05.2019 в 17:13 #12012
MikhailМодераторкак Администратор видит количество сигналов управления ?
В KpView.DefaultCnls возвращает в том числе прототипы каналов управления.
подскажите, как выполнить поиск индекса KPTags с нужным мне значением сигнала ?
Пока нужно использовать свои вспомогательные массивы с индексами. Но в ветке develop уже добавлено свойство KPTag.Index.
29.05.2019 в 17:38 #12020
manjey73УчастникМихаил, а как внутри этой комбинации недопустить создание канала управления, если его для входного канала нет ?
foreach (KeyValuePair<int, string> signame in ActiveTagName) { inCnls.Add(new InCnlPrototype(signame.Value, BaseValues.CnlTypes.TI) { Signal = signame.Key CtrlCnlProps = ctrlCnls[0] }); }CtrlCnlProps = ctrlCnls[0]
То есть если канал управления есть, туда я найду и размещу индекс, А если нет канала управления, как в этом перечислении в цикле исключить эту команду ?
-
Ответ изменён 7 лет, 2 месяца назад пользователем
manjey73.
30.05.2019 в 10:26 #12032
manjey73УчастникФигня какая то….
ОшибкаВидно, что значение ключа = 21
и на следующем шаге
` ctrlCnls.Add(new CtrlCnlPrototype(«Установить — » + ActiveTagName[cmdnum.Key], BaseValues.CmdTypes.Standard)
{
CmdNum = ckey
});
`
Получаю ошибку — Данный ключ отсутствует в словаре ?
Это как ?… чего может не хватать ?А блин, походу его нет в ActiveTagName а не то, что я подумал….
Зараза, он там будет, но позже :)….30.05.2019 в 22:41 #12043
MikhailМодераторЦикл по ActiveCmd, а извлекаете данные из ActiveTagName
30.05.2019 в 22:43 #12044
MikhailМодераторкак внутри этой комбинации недопустить создание канала управления, если его для входного канала нет ?
Как-то так можно:
CtrlCnlProps = Ваше условие ? ctrlCnls[0] : nullЛибо разбить этот код на составные части, отделив new InCnlPrototype(…) от присвоения значения свойству CtrlCnlProps.
31.05.2019 в 00:19 #12049
manjey73УчастникУже разобрался. А Цикл правильный, в смысле по ActiveCmd, а данные берет из ActiveTagName, просто по простыне кода последний оказался ниже, а должен быть выше и уже сформированным.
На счет «Как-то так можно» проверю завтра, спасибо.31.05.2019 в 13:15 #12058
manjey73УчастникА формат числа из драйвера задается или это лишнее ?
Если задается, сразу задать Дату и Время например что нужно указать ?
31.05.2019 в 16:43 #1205931.05.2019 в 16:44 #12060
MikhailМодераторНо дату и время наверное не получится задать из драйвера.
-
Ответ изменён 7 лет, 2 месяца назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.