Стартовая страница › Форумы › Разработка и интеграция › Ошибка кода Коммуникатора
- В этой теме 25 ответов, 4 участника, последнее обновление 5 месяцев, 3 недели назад сделано
Mikhail.
-
АвторСообщения
-
02.06.2025 в 16:00 #38655
manjey73УчастникКогда в прототипах указываю
format = FormatCode.DateTime;
как в Logic так и во View. то все хорошо, Коммуникатор показывает время и дату.
При создании канала Формат канала Date and TimeНо когда применяю
format = FormatCode.Date;то Коммуникатор показывает просто число, а при создании каналов формат создается D.DDПохоже ошибка и там и там, или где-то в общей части ядра.
Если создать DateTime, потом в базе выставить Date, то все работает, ну кроме того, что Коммуникатор продолжает показывать Дату и Время в таблице статуса устройства03.06.2025 в 13:07 #38664
MikhailМодераторПроверю.
03.06.2025 в 16:41 #38671
MikhailМодератор03.06.2025 в 16:43 #38672
MikhailМодераторВ драйвере с помощью отладчика нужно проверить, чему равно свойство Format тега после его создания из прототипа канала.
-
Ответ изменён 6 месяцев, 1 неделя назад пользователем
Mikhail.
03.06.2025 в 23:13 #38674
manjey73Участник


03.06.2025 в 23:16 #38675
manjey73УчастникПервые 2 скрина это выбран Date в коде
Вторые 2 это выбран DateTimeна первом видно, что Format = null, а там где выбирается DateTime, там Format — Scada.Comm.Devices.TagFormat
03.06.2025 в 23:19 #38676
manjey73УчастникСтранно. в Форматах 4 это D.DD
а вот 32 это Date, а Date and Time это 31. Хотя на скринах при FormateCode.DateTime показывает 3203.06.2025 в 23:58 #38677
a80808УчастникМожет считают от 0 или 1?
04.06.2025 в 18:33 #38716
MikhailМодераторГде в коде создаются теги устройства?
04.06.2025 в 18:51 #38717
manjey73УчастникВ Logic и во View.
Или нужно какое-то точное место и как?05.06.2025 в 09:06 #38722
manjey73УчастникСобственно тут вставлено простое
if (devTemplate.CmdGroups[c].Code.ToLower() == "verifidt") { cnlType = CnlTypeID.InputOutput; format = FormatCode.DateTime; // TEST }Ну а обработка ошибки завернута в else потом.
Просто проверяется наличие Кода тега с фиксированным именем и подставляется формат и тип канала
Так вот если там поставить FormatCode.Date то получим D.DD и вывод числа. вместо даты.05.06.2025 в 09:10 #38723
manjey73УчастникИ еще момент. Если делать через создание тегов таким образом
DeviceTag deviceTag = new DeviceTag(); deviceTag = tagGroup.AddTag(comm.Code, comm.Name); if (comm.Code.ToLower() == "verifidt") { deviceTag.Format = TagFormat.DateTime; deviceTag.Cnl.CnlTypeID = CnlTypeID.InputOutput; }то валится с ошибкой NulReference на строчке deviceTag.Cnl.CnlTypeID = CnlTypeID.InputOutput
Как в таком случае задавать тип канала в коде драйвера?05.06.2025 в 09:10 #38724
manjey73УчастникК сожалению это идет на старте линии и я не знаю, как тут отладчиком стать…
05.06.2025 в 15:53 #38742
MikhailМодератор> К сожалению это идет на старте линии и я не знаю, как тут отладчиком стать
Сначала подключиться к ScadaCommWkr отладчиком, а затем перезапустить линию связи из Коммуникатора.05.06.2025 в 15:58 #38743 -
Ответ изменён 6 месяцев, 1 неделя назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.



