Стартовая страница › Форумы › Разработка и интеграция › Создание каналов КП в Администарторе
- В этой теме 63 ответа, 4 участника, последнее обновление 4 года, 10 месяцев назад сделано Mikhail.
-
АвторСообщения
-
22.05.2019 в 13:01 #11813manjey73Участник
Михаил, есть вопросы по данному поводу.
Простой вариант для драйвера работает.
Прототипы каналов для Администратора1. Как для конкретного экземпляра КП получить имя файла конфигурации (какой именно xml) был использован в определенном КП на определенной линии связи ?
Если администратор на другом компьютере, то как читаются разные xml шаблоны, привязанные к разным КП и линиям связи ?????? Ведь шаблон мы указываем непосредственно уже в Коммуникаторе на линии связи, создавая опрос конкретного экземпляра прибора ? Например я могу разнести опрос прибора на 2 этапа, один для текущих данных в цикле, и один для конфигурационных раз в сутки например. И приборов может быть более одного ?
2. Есть ли аналог ExecWriteToLog(string text) для KpView ?
А то вот не совсем пойму как в KpView обрабатывать ошибки. Использованная мной функция чтения файла не предполагает оператора out string, и все равно как строку исключения записать в журнал сервера или администратора ?22.05.2019 в 17:12 #11814manjey73УчастникНовая напасть. По кнопке «Свойство КП» перестала открываться Форма. Уже и перегружался, и сносил форму и по новой создавал — хрен, ничего не помогает вообще…
Несколько раз уже перепроверил, как отрезало…И при этом никаких ошибок при сборке 🙁
- Этот ответ был изменен 4 года, 11 месяцев назад от manjey73.
22.05.2019 в 18:06 #11816manjey73Участникusing Scada.Comm.Devices.KpPulsarT;
Ругается на KpPulsarT в KpXXXView
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка CS0234 Тип или имя пространства имен «KpPulsarT» не существует в пространстве имен «Scada.Comm.Devices» (возможно, отсутствует ссылка на сборку). KpPulsarT E:\Work_Work\Programm\KpPulsarT\KpPulsarT\KpPulsarTView.cs 36 АктивныйВот с какого спрашивается ?????? долбанная Визуал Студия… Что ей не так ????
22.05.2019 в 19:53 #11817RomirosУчастникПо кнопке «Свойство КП» перестала открываться Форма.
Проверьте привязано ли к событию OnClick кнопки процедура вызова формы.
Ругается на KpPulsarT в KpXXXView
Что-то не так с пространство имен. Посмотрите внимательно, проверьте пути файлов.
22.05.2019 в 21:36 #11818manjey73УчастникПро OnClick можно подробнее ? вроде же там в KpXXXView просто указано разрешение, что можно окно настройки открывать, а остальное должен делать Коммуникатор ?
Та пути каких файлов ? Ссылок ? так вроде они копируются при сборке или речь о чем-то другом ?
И как оно могло работать а потом бац и перестать ????
22.05.2019 в 22:14 #11819RomirosУчастникДа должен делать комуникатор. Я просто не понял.
В конструкторе KpView должно быть
CanShowProps = true;
Или например так
CanShowProps = number > 0;
И должен быть определен методpublic override void ShowProps()
{
new FrmConfig(AppDirs, Number).ShowDialog();
}
Соответственно у FrmConfig должен быть реализован метод ShowDialog().
Вроде бы и все.22.05.2019 в 22:24 #11820RomirosУчастникПроверьте пространства имён вашей KpPulsarT.
У файлов KpPulsarTLogic и KpPulsarTView
namespace должен быть Scada.Comm.DevicesУ Вас может и форма поэтому не работает.
- Этот ответ был изменен 4 года, 11 месяцев назад от Romiros.
22.05.2019 в 22:54 #11822manjey73Участниктак блин работала, потом что-то ковырял и перестала. Снес все нафик, сделал на новом, скопировал код, Все вроде проверил чтобы было и нивкакую…
Старые файлы открываются и там нормально во View using Scada.Comm.Devaces.XXXXXА тут вроде все тоже самое и ругается…
Завтра буду еще раз все перепроверять, что я там мог наколдовать даже не пойму..
Больше всего интересует вывод в лог Администратора, нифига непонятно почему кагалы не создаются. Ошибка и все тут и НИКАКОЙ инфы почему???
Как узнать, считался файл из KpXXView или нет, и вообще выполняется код или нет ???
- Этот ответ был изменен 4 года, 11 месяцев назад от manjey73.
22.05.2019 в 23:35 #11824RomirosУчастникЯ Вам не про using scada говорю
Проверьте namespace. Иначе коммуникатор с Вашей Kp работать не будет.23.05.2019 в 08:58 #11828MikhailМодераторЕсть ли аналог ExecWriteToLog(string text) для KpView ?
KpView не ведёт лога. Но у вас есть ссылка на объект AppDirs, в котором Вы можете получить директорию логов и считать из неё то, что нужно, или записать.
23.05.2019 в 09:00 #11829MikhailМодераторКак узнать, считался файл из KpXXView или нет, и вообще выполняется код или нет ???
Используйте отладчик VS. Для этого нужно собрать DLL в конфигурации Debug, положить её Коммуникатору, а затем подклюиться к выполняемому процессу Debug -> Attach to Process. Этот процесс будет для KpView: ScadaCommCtrl или ScadaAdmin.
23.05.2019 в 09:06 #11831manjey73УчастникУ View.cs namespace Scada.Comm.Devices все как положено.
Но в старом драйвере Меркурия во View.cs — using Scada.Comm.Devices.KpMercury23x в активном состоянии
А вот на Пульсаре using Scada.Comm.Devices.KpPulsarT не активен, типа директива using не нужна. а почему не нужна непонятно ???? во View то я ничего такого не менял вообщеЭто к тому, что существенных отличий между драйверами в данной части нет, только на Меркурии окно открывается, а на Пульсаре шишь…
- Этот ответ был изменен 4 года, 11 месяцев назад от manjey73.
23.05.2019 в 09:08 #11832manjey73УчастникПонятно, придется еще изучать как отлаживать все это хозяйство….
Тут бы разобраться что я такого натворил, что вызов окна перестал работать 🙁 уже глаза сломал чего не хватает, вроде все на месте…УРРРА! нашел… 🙂
// Отобразить свойства КП
public override void ShowProps()
{
FormSetting.ShowDialog(Number, KPProps, AppDirs); // отображение фармы параметров
}
Все таки я это зацепил 🙂- Этот ответ был изменен 4 года, 11 месяцев назад от manjey73.
23.05.2019 в 09:23 #11835manjey73УчастникВообще пожелания к Михаилу.
Создать некий Kp, только не KpTest, он слишком примитивен и подходит для пожалуй датчиков температуры/влажности или небольших приборов с полностью фиксированным набором данных. KpModbus вообще идеальный вариант конечно.
И полностью его по полочкам разложить на комментарии. Для чего тот или иной класс, как он работает (что выполняет в рамках драйвера), в том числе и комментирование графического интерфейса работы драйвера.
Потому что когда читаешь в Дорожной карте
Любые новые драйверы Приветствуется помощь сообщества
Хочется плакать… Потому что Михаил, вы кажется не понимаете, что сообщество Scada (при чем любой) состоит в большинстве своем их АСУТП-шников, где на сотню дай бог будет один профессиональный программист (замечу, который должен выбрать именно RapidScada). И чтобы таким как я надо полгода потратить только на понимание какой-то одной функции в вашем коде, к которому вы отсылаете.
По этому давно предлагал, сделайте качественные примеры с описанием от и до хотя бы для драйверов. Не говорю уже про модули сервера и плагины…Интересует именно взаимодействие кода драйвера именно со Scada ядром. Потому что в этом взаимодействии и так куча ограничений и чтобы их либо использовать либо обойти надо понимать принципы их работы.
23.05.2019 в 09:41 #11836RomirosУчастникЯ же Вам писал про ShowProps().
Ошибки, которые Вы описываете, обычно возникают, когда вы переносите старые наработки в новый проект. Здесь важна ВНИМАТЕЛЬНОСТЬ! Сам не раз крыл матом VisualStudio, но проблема была в моей невнимательности :).Для отладки используйте подключение к процессу, как написал Михаил, так можно пошагово контролировать работу кода драйвера.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.