Созданные ответы форума
-
АвторСообщения
-
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() ему имя уже подменили! (
-
Этот ответ был изменен 2 года, 2 месяца назад от
JurasskPark.
JurasskPark
УчастникНе помогло! ???
JurasskPark
УчастникСейчас обнаружил (^__^) что у меня переменные публичные и сам проект. И список клиентов тоже. Перевёл их в private. Сейчас закончится часовня, заменяю библиотеку и смотрю что будет.
JurasskPark
УчастникУдалил конфигурацию. Снова добавил.
Такая же проблема.
Только Перезапустить линию помогает корректно считать конфигурацию.JurasskPark
УчастникЕщё раз… После перезапуска (Перезапустить Линию) — он читает правильный конфиг, а когда стартует коммуникатор чужой…
JurasskPark
УчастникКороче…
Я в шоке…
В логах добавил все все параметры.
Имя драйвер генерирует правильно, я его отправляю в Project.Load, а вот эта уже сволочь (прошу прощения) возвращается настройки из другого конфигурации…
Ищу чего там нахимичил.JurasskPark
УчастникНужно изучать подробности.
https://www.youtube.com/watch?v=7EI5r-bVltU
Дома тоже самое.
Я сначала создаю клиенты и добавляю в list, а потом через for их читаю.
Хотел, чтобы несколько OPC серверов можно было добавлять.Пока думаю, что упростить драйвер до 1 устройства и точка. 🙂
Убрать все деревья и посмотреть что будет.JurasskPark
УчастникДействительно…
Система правильно показывает и указывает, что за файл считала и с какими настройками, а вот при создании клиента получает чужие и продолжает с ними работать… ?
Понятно, что типо защиту поставить… Но первый раз такой вижу 🙂JurasskPark
УчастникПоставил версию 6. Сделал всё аналогично, но уже предположил, что с первого раза не запустится, так и получилось. В настройках IIS уже 2 сайта. Один по умолчанию :80, второй это скада с :10008. Локально всё работает, а вот из вне ну никак, хотя правило уже было Внеш_IP:XXXXX — >>> ВнутрIP:10008.
В итоге, зашёл в настройки -> безопасность windows -> браундмаур и безопасность сети -> Дополнительные параметры. Далее создается правило для входящих подключений, порт TCP, номер порта 10008, профиль для Всех (частный доменный и т.д.), Имя RapidScada. Сохраняется и Вуаля. Есть доступ из вне.
Ну все правильно. При создании нужно было изменить в инсталяторе порт веба с 10008 на 80. Вы этого не сделали.
Чем вы недовольны?JurasskPark
УчастникКороче… Мы строили, строили… И устали.)
Долго бился пока смог понять что и как…
Из текущих проблем.
При перезапуске коммуникатора, канал через dll во время создания клиента, умудряется увидеть свойства другого канала…
Пока думаю, что еще из 100500 условий channelhandle OPC DA нужно делать.
Пока думаю ему давать номер девайса…JurasskPark
УчастникЕсли честно… Я в шоке…
Давайте разделять тогда подходы.
1. Автоматизация промышленного уровня
2. Домашняя автоматизацияа. SCADA работает на ПК
б. SCADA работает на контроллере.В случае 1а — речи об отключении логов вообще не ведём.
В случае 1б — в драйвере! возможна опция уровня логирования сообщений: Критичные Ошибки, Отладка, Информация. Тогда нужно понимать, а в каком драйвере это так необходимо.
В случае 2а — неужели так жалко жесткий диск или проблема с его покупки?
В случае 2б — тут возможно отключение логирования в ПЗУ, чтобы не убивать контроллер. Осталось договориться с разработчиками драйверов. 🙂JurasskPark
УчастникДрайвер интерфейса XYE 6.0.0.0
——————————
Создать в таблице ‘Вспомошательные таблицы’ — ‘Форматы’
перечисления для каналов с индексами2 (Oper Mode) — Off; Auto; Cool; Dry; Heat; Fan
3 (Fan) — Auto; High; Medium; Low
14 (Mode Flags) — Normal; ECO; Turbo; Swing; Vent -
Этот ответ был изменен 2 года, 2 месяца назад от
-
АвторСообщения