Ответы в темах
-
АвторСообщения
-
JurasskParkУчастникНаверное, вы в настройках драйвера modbus не выставили
Параметры шаблона — Адресация — Начиная с 0.
Вот вам и кажется что ничего не получается.
А так скрины, логи в студию. 🙂
JurasskParkУчастникВот и поговорили. Даже версию скады не сказали. ?
JurasskParkУчастникПоставил OPC Сервер Логика
Если у OPC сервера есть возможность через системные того останавливать опрос, значит линия Скады, должна отправить команду на включение опроса в OPC сервера, почитать текущие параметры, потом команду на останов опроса.
P. S. Ваша проблема что OPC сервер блокирует опрос, заняв все сессии. Вы должны его периодически включать на опрос и выключать.
JurasskParkУчастник10008 — порт web, который можно менять.
10000 — порт сервера, который не меняется.Netstat -a -что показывает?
JurasskParkУчастникОсновная проблема, что в Core поддержка ODBC работает, а точнее не работает. И нужно обращаться к 32битной версии.
Короче… Я тоже подключиться к Access не смог. Гуглю. )
JurasskParkУчастникOPC опрашивает через 4 функцию.
JurasskParkУчастникhttps://youtu.be/oxcaKavH2Vs
Если кто не знает как выглядит Михаил 🙂
JurasskParkУчастникХотя мы ввели тот же регистр как в opc
Не забывайие, что OPC функции меняют местами.
Если вы написали 400001, то запрос будет отправлен на 300001 и наоборот.
Так делают Kepware и TopServer.
Я раньше этого не понимал и часто путался.
JurasskParkУчастникВот бы еще кто объяснил из программистов, почему 5-я строка Format не хочет менять значение по выпадающему списку ?
Отладчиком смотрел, все в норме, но в 5-й строке в упор отказывается вызывать выпадающий список в столбце «Format».Вы про это?
https://i.ibb.co/7gZ199L/image.png
JurasskParkУчастникПроверил на 5-й версии, тоже валятся ошибки. Ощущение что несовместимость прибора с преобразователем. На том же куске провода на столе (0,5м) через USB-RS485 работает, а через преобразователь нет…
сейчас поищу сопротивление 120Ом и попробую с ним…
Не совсем по теме… Но мы неделю бились с Моксой в режиме TCP-cервера, потому что у преобразователя дергалась нога на приём сигнала, буфер преобразователя начинал готовить массив байт, потом понимал, что он пустой и отправлял null.
Короче, ставили драйвер виртуальный сом-порта и через него получали данные. Только как раз драйвер COM-порта не от MOXA, а от Usirot. Помогло. 🙂
JurasskParkУчастникhttps://www.youtube.com/watch?v=zkg2CCAHldo
Теперь буду приводить в божеский вид и стараться не поломать 🙂
JurasskParkУчастникКакая именно переменная подменялась?
Она не была static случайно?Путь до файла. А соответственно и всё что в нем. 🙂
Не она, а они. Их было несколько.#region Variables /// <summary> /// The application directories /// <para>Каталоги приложения</para> /// </summary> private readonly AppDirs appDirs; /// <summary> /// The driver code /// <para>Код драйвера</para> /// </summary> private readonly string driverCode; /// <summary> /// The device number /// <para>Номер устройства</para> /// </summary> private readonly int deviceNum; /// <summary> /// Name configuration file /// <para>Название файл конфигурации</para> /// </summary> public string shortFileName; /// <summary> /// Path configuration file /// <para>Путь до файла конфигурации</para> /// </summary> public string projectFileName; /// <summary> /// Project configuration /// <para>Конфигурация проекта</para> /// </summary> private static Project project; /// <summary> /// Channel /// <para>Канал</para> /// </summary> private static ProjectChannelDevice channel; /// <summary> /// Devices /// <para>Устройства</para> /// </summary> public static List<ProjectDevice> devices; /// <summary> /// Commands Group /// <para>Группа команд</para> /// </summary> private static List<ProjectDeviceGroupCommand> deviceGroupCommands; /// <summary> /// Command /// <para>Команда</para> /// </summary> private static List<ProjectDeviceCommand> deviceCommands; /// <summary> /// Tags Group /// <para>Группа тегов</para> /// </summary> private static List<ProjectDeviceGroupTag> deviceGroupTags; /// <summary> /// Tag /// <para>Тег</para> /// </summary> private static List<ProjectDeviceTag> deviceTags; /// <summary> /// Driver Tag /// <para>Тег драйвера</para> /// </summary> private static List<CnlPrototypeGroup> driverTags; /// <summary> /// Error counter /// <para>Счетчик ошибок</para> /// </summary> public ushort countError { get; private set; } /// <summary> /// List driver сlient /// <para>Список клиентов</para> /// </summary> public static List<DriverClient> lstClient = new List<DriverClient>(); /// <summary> /// Driver сlient /// <para>Клиент</para> /// </summary> public static DriverClient driverClient; #region OPC /// <summary> /// Item Value Result /// </summary> private static TsCDaItemValueResult[] resultsValue; public static TsCDaItemValueResult[] ResultsValue { get { return resultsValue; } set { resultsValue = value; } } #endregion OPC private CancellationTokenSource cancelTokenSource = new CancellationTokenSource(); public bool SessionStop = false; #endregion Variables
JurasskParkУчастникЧтение несколько OPC серверов из одного проекта тоже работает 🙂
Проверил заодно проверку на ошибки 🙂 если режим неправильный и сыпаться ошибки, то после 10 ошибок идет реинициалмзация подключения)
Я снова довольный как слон! ?
JurasskParkУчастникПеренёс чтение конфигурации в создании класса и всë заработало!
JurasskParkУчастник2023-05-18 12:15:16 Линия связи [27] BZ_DLG_ARM остановлена -------------------------------------------------------------------------------- 2023-05-18 12:16:15 [Driver Device Config Num][39] 2023-05-18 12:16:15 [Driver Device Num][39] 2023-05-18 12:16:15 [Driver Line Num][27] 2023-05-18 12:16:15 [Driver Device Driver Code][DrvOPCClassicJP] 2023-05-18 12:16:15 [Driver Device Code][DrvOPCClassicJP] 2023-05-18 12:16:15 [Driver Device Short File Name][DrvOPCClassicJP_039.xml] 2023-05-18 12:16:15 [Driver Device Config DirC:\SCADA6\ScadaComm\Config\] 2023-05-18 12:16:15 [Driver Device Project File Name][C:\SCADA6\ScadaComm\Config\DrvOPCClassicJP_039.xml] -------------------------------------------------------------------------------- 2023-05-18 12:16:15 Запуск линии связи [27] BZ_DLG_ARM 2023-05-18 12:16:15 [Driver v.0008] 2023-05-18 12:16:15 [Запуск приложения] 2023-05-18 12:16:15 [Пауза][100] 2023-05-18 12:16:15 [Таймаут][200] 2023-05-18 12:16:15 [Период][00:00:05] 2023-05-18 12:16:15 [Проект][C:\SCADA6\ScadaComm\Config\DrvOPCClassicJP_022.xml] 2023-05-18 12:16:15 [OPC серверов][1] 2023-05-18 12:16:15 [Driver Device Name][OPC сервер] 2023-05-18 12:16:15 [Группы тегов][1] 2023-05-18 12:16:15 [Driver Device Group Name][Группа тегов] 2023-05-18 12:16:15 [Теги][15]Т.е. когда идёт public DevOPCClassicJPLogic(ICommContext commContext, ILineContext lineContext, DeviceConfig deviceConfig): base(commContext, lineContext, deviceConfig), то название файл правильное, а когда public override void OnCommLineStart() ему имя уже подменили! (
-
Ответ изменён 3 года назад пользователем
JurasskPark.
-
Ответ изменён 3 года назад пользователем
-
АвторСообщения