Добрый день!
Сейчас занимаюсь тестированием ОРС-сервера стороннего разработчика с помощью следующих клиентов:
1. Круг 2000 v4.0
2. MasterSCADA v3.5
3. TraceMode v6.0
В системе Круг 2000 ОРС-клиент был успешно настроен и работоспособен. Данные на мнемосхеме отображались корректно, за исключением дискретных сигналов, преобразованных из аналоговых в системе КРУГОЛ. После изменения привязок атрибутов тегов в генераторе базы данных (ГБД) приложение "Станция оператора с ОРС" перестала запускать ОРС-сервер. После возврата к предыдущим настройкам ОРС-клиента сервер все равно не загружается при запуске "Станции оператора с ОРС".
В других ОРС-клиентах проблем не было замечено.
В журнале часто встречается запись: "Библиотека KrugOPC.dll не загружена. Код ошибки - 1114".
Скажите пожалуйста, в чем может быть дело?
1. noble-minded - 23 Мая, 2013 - 11:22:33 - перейти к сообщению
2. LopukhinVA - 24 Мая, 2013 - 10:40:05 - перейти к сообщению
Добрый день,
Происходит ошибка инициализации OPCToolkita, это может быть связано с тем, что запускается демосервер (приложение krservebddemo.exe) или коммерческий сервер запускается в демонстрационном режиме. Режим запуска сервера можно посмотреть в протоколе событий после запуска сервера БД.
Происходит ошибка инициализации OPCToolkita, это может быть связано с тем, что запускается демосервер (приложение krservebddemo.exe) или коммерческий сервер запускается в демонстрационном режиме. Режим запуска сервера можно посмотреть в протоколе событий после запуска сервера БД.
3. noble-minded - 24 Мая, 2013 - 15:21:27 - перейти к сообщению
Shutin D.V. пишет:
Добрый день,
Происходит ошибка инициализации OPCToolkita, это может быть связано с тем, что запускается демосервер (приложение krservebddemo.exe) или коммерческий сервер запускается в демонстрационном режиме. Режим запуска сервера можно посмотреть в протоколе событий после запуска сервера БД.
Происходит ошибка инициализации OPCToolkita, это может быть связано с тем, что запускается демосервер (приложение krservebddemo.exe) или коммерческий сервер запускается в демонстрационном режиме. Режим запуска сервера можно посмотреть в протоколе событий после запуска сервера БД.
В протоколе событий за сегодняшний день следующие сообщения:
24.05.2013 14:45:02.215 ???????? Простой сервера БД с 12:13:07 23.05.2013
24.05.2013 14:45:02.247 ???????? Старт демонстрационного сервера (DEMO-RT)
24.05.2013 14:45:02.356 ???????? Время работы демо-режима реального времени закончилось
24.05.2013 14:53:33.559 ???????? Останов демонстрационного сервера
24.05.2013 15:08:00.825 ???????? Простой сервера БД с 14:53:33 24.05.2013
24.05.2013 15:08:00.825 ???????? Запуск демонстрационного сервера
Значит ли это, что для дальнейшей работы нужно покупать лицензию?
4. LopukhinVA - 27 Мая, 2013 - 10:56:17 - перейти к сообщению
Демо-сервер реального времени krserverbddemort.exe имеет ряд ограничений:
1) количество запусков приложения ограничено (100 запусков).
2) в базе данных должен быть определен только один канал.
3) количество канальных переменных не должно превышать 120.
4) в данном режиме сервер работает 1 час, затем переходит в демо-режим (канал не опрашивается)
Из-за ограничений на количество запусков рекомендуется запускать данное приложение только когда канал уже настроен и необходимо проверить, связь и работу по каналу, В остальных случаях использовать демо-сервер (krserverbddemo.exe).
При нарушении хотя бы одного определенного выше ограничений, в протокол событий выдается событие "Время работы демо-режима реального времени закончилось" и сервер переходит просто в демонстрационный режим.
При нарушении по количеству запусков - приложении не запускается с выдачей соответствующего сообщения.
По всей видимости, у Вас есть нарушения по количеству переменных и (или) по количеству каналов.
1) количество запусков приложения ограничено (100 запусков).
2) в базе данных должен быть определен только один канал.
3) количество канальных переменных не должно превышать 120.
4) в данном режиме сервер работает 1 час, затем переходит в демо-режим (канал не опрашивается)
Из-за ограничений на количество запусков рекомендуется запускать данное приложение только когда канал уже настроен и необходимо проверить, связь и работу по каналу, В остальных случаях использовать демо-сервер (krserverbddemo.exe).
При нарушении хотя бы одного определенного выше ограничений, в протокол событий выдается событие "Время работы демо-режима реального времени закончилось" и сервер переходит просто в демонстрационный режим.
При нарушении по количеству запусков - приложении не запускается с выдачей соответствующего сообщения.
По всей видимости, у Вас есть нарушения по количеству переменных и (или) по количеству каналов.
5. noble-minded - 28 Мая, 2013 - 10:34:41 - перейти к сообщению
Спасибо, разобрался. Уменьшил количество переменных до 112, ОРС-сервер запустился.
Возникла другая проблема.
Опрашиваю 2 устройства через ОРС-сервер. Для каждого создал по 10 входных аналоговых переменных (ВА), первые четыре из которых заведены на мнемосхему, а остальные шесть преобразуются в 48 дискретных (ВД), 36 из которых заведены на мнемосхему. Преобразование происходит в системе КРУГОЛ.
Проблема в том, что на мнемосхеме первого устройства все сигналы отображаются корректно, а на мнемосхеме второго устройства отображаются только первые четыре ВА, которые не используются в системе КРУГОЛ. Значения остальных шести ВА равны 0, а соответственно и значения всех 48 ВД, хотя среди них есть ненулевые значения, видимые в других ОРС-клиентах.
Подскажите, пожалуйста, где искать ошибку?
(Добавление)
Вот формулы преобразования ВА в ВД:
(* Начало БСУ №1 *)
:GAS_FLAG5
(ПЛ1, ПЛ1, ПЛ1, ПЛ1, ВД3.а45, ПЛ1, ВД2.а45, ВД1.а45) = CodB8( r32i16(ВА5.а65) )
:GAS_FLAG6
(ВД11.а45, ВД10.а45, ВД9.а45, ВД8.а45, ВД7.а45, ВД6.а45, ВД5.а45, ВД4.а45) = CodB8( r32i16(ВА6.а65) )
:GAS_FLAG7
(ПЛ1, ПЛ1, ВД13.а45, ПЛ1, ВД12.а45, ПЛ1, ПЛ1, ПЛ1) = CodB8( r32i16(ВА7.а65) )
:GAS_FLAG15
(ВД21.а45, ВД20.а45, ВД19.а45, ВД18.а45, ВД17.а45, ВД16.а45, ВД15.а45, ВД14.а45) = CodB8( r32i16(ВА8.а65) )
:GAS_FLAG16
(ВД29.а45, ВД28.а45, ВД27.а45, ВД26.а45, ВД25.а45, ВД24.а45, ВД23.а45, ВД22.а45) = CodB8( r32i16(ВА9.а65) )
:Wire&Fire
(ПЛ1, ВД36.а45, ВД35.а45, ВД34.а45, ВД33.а45, ВД32.а45, ВД31.а45, ВД30.а45) = CodB8( r32i16(ВА10.а65) )
(* Конец БСУ №1 *)
(* Начало БСУ №2 *)
:GAS_FLAG5
(ПЛ1, ПЛ1, ПЛ1, ПЛ1, ВД39.а45, ПЛ1, ВД38.а45, ВД37.а45) = CodB8( r32i16(ВА15.а65) )
:GAS_FLAG6
(ВД47.а45, ВД46.а45, ВД45.а45, ВД44.а45, ВД43.а45, ВД42.а45, ВД41.а45, ВД40.а45) = CodB8( r32i16(ВА16.а65) )
:GAS_FLAG7
(ПЛ1, ПЛ1, ВД49.а45, ПЛ1, ВД48.а45, ПЛ1, ПЛ1, ПЛ1) = CodB8( r32i16(ВА17.а65) )
:GAS_FLAG15
(ВД57.а45, ВД56.а45, ВД55.а45, ВД54.а45, ВД53.а45, ВД52.а45, ВД51.а45, ВД50.а45) = CodB8( r32i16(ВА18.а65) )
:GAS_FLAG16
(ВД65.а45, ВД64.а45, ВД63.а45, ВД62.а45, ВД61.а45, ВД60.а45, ВД59.а45, ВД58.а45) = CodB8( r32i16(ВА19.а65) )
:Wire&Fire
(ПЛ1, ВД72.а45, ВД71.а45, ВД70.а45, ВД69.а45, ВД68.а45, ВД67.а45, ВД66.а45) = CodB8( r32i16(ВА20.а65) )
(* Конец БСУ №2 *)
Возникла другая проблема.
Опрашиваю 2 устройства через ОРС-сервер. Для каждого создал по 10 входных аналоговых переменных (ВА), первые четыре из которых заведены на мнемосхему, а остальные шесть преобразуются в 48 дискретных (ВД), 36 из которых заведены на мнемосхему. Преобразование происходит в системе КРУГОЛ.
Проблема в том, что на мнемосхеме первого устройства все сигналы отображаются корректно, а на мнемосхеме второго устройства отображаются только первые четыре ВА, которые не используются в системе КРУГОЛ. Значения остальных шести ВА равны 0, а соответственно и значения всех 48 ВД, хотя среди них есть ненулевые значения, видимые в других ОРС-клиентах.
Подскажите, пожалуйста, где искать ошибку?
(Добавление)
Вот формулы преобразования ВА в ВД:
(* Начало БСУ №1 *)
:GAS_FLAG5
(ПЛ1, ПЛ1, ПЛ1, ПЛ1, ВД3.а45, ПЛ1, ВД2.а45, ВД1.а45) = CodB8( r32i16(ВА5.а65) )
:GAS_FLAG6
(ВД11.а45, ВД10.а45, ВД9.а45, ВД8.а45, ВД7.а45, ВД6.а45, ВД5.а45, ВД4.а45) = CodB8( r32i16(ВА6.а65) )
:GAS_FLAG7
(ПЛ1, ПЛ1, ВД13.а45, ПЛ1, ВД12.а45, ПЛ1, ПЛ1, ПЛ1) = CodB8( r32i16(ВА7.а65) )
:GAS_FLAG15
(ВД21.а45, ВД20.а45, ВД19.а45, ВД18.а45, ВД17.а45, ВД16.а45, ВД15.а45, ВД14.а45) = CodB8( r32i16(ВА8.а65) )
:GAS_FLAG16
(ВД29.а45, ВД28.а45, ВД27.а45, ВД26.а45, ВД25.а45, ВД24.а45, ВД23.а45, ВД22.а45) = CodB8( r32i16(ВА9.а65) )
:Wire&Fire
(ПЛ1, ВД36.а45, ВД35.а45, ВД34.а45, ВД33.а45, ВД32.а45, ВД31.а45, ВД30.а45) = CodB8( r32i16(ВА10.а65) )
(* Конец БСУ №1 *)
(* Начало БСУ №2 *)
:GAS_FLAG5
(ПЛ1, ПЛ1, ПЛ1, ПЛ1, ВД39.а45, ПЛ1, ВД38.а45, ВД37.а45) = CodB8( r32i16(ВА15.а65) )
:GAS_FLAG6
(ВД47.а45, ВД46.а45, ВД45.а45, ВД44.а45, ВД43.а45, ВД42.а45, ВД41.а45, ВД40.а45) = CodB8( r32i16(ВА16.а65) )
:GAS_FLAG7
(ПЛ1, ПЛ1, ВД49.а45, ПЛ1, ВД48.а45, ПЛ1, ПЛ1, ПЛ1) = CodB8( r32i16(ВА17.а65) )
:GAS_FLAG15
(ВД57.а45, ВД56.а45, ВД55.а45, ВД54.а45, ВД53.а45, ВД52.а45, ВД51.а45, ВД50.а45) = CodB8( r32i16(ВА18.а65) )
:GAS_FLAG16
(ВД65.а45, ВД64.а45, ВД63.а45, ВД62.а45, ВД61.а45, ВД60.а45, ВД59.а45, ВД58.а45) = CodB8( r32i16(ВА19.а65) )
:Wire&Fire
(ПЛ1, ВД72.а45, ВД71.а45, ВД70.а45, ВД69.а45, ВД68.а45, ВД67.а45, ВД66.а45) = CodB8( r32i16(ВА20.а65) )
(* Конец БСУ №2 *)
6. LopukhinVA - 28 Мая, 2013 - 14:37:15 - перейти к сообщению
Здравтсвуйте!
С точки зрения синтаксиса КРУГОЛа проблем не замечено. Возможно проблема заключается в некорректных начальных значениях.
Если в преобразовании участвует атрибут 65 Входной аналоговой переменной, то необходимо проверить к какому атрибуту переменной КРУГ-2000 привязан тег OPC-сервера.
Возможны, например, два варианта:
1) Тег OPC-сервера привязан к атрибуту №28 переменной ВА. В данном случаем необходимо включить алгоритм Нестандартных обработок №1. В результате этих обработок, текущее значение будет присваиваться в атрибут 65.
2) Если нестандартные обработки не используются, то OPC-тег необходимо привязать, непосредственно к атрибуту №65 переменной.
3) Если используется нестандартная обработка и OPC-тегов привязан к атрибуту 65, то значение данного атрибута будет перетираться обработкой из атрибута 28. Соответственно, если а.28 = 0, то и а.65 = а.28 = 0.
Итого, при использовании нестандартной обработки, OPC-тег должен быть привязан к атрибут №28 ВА.
Если нестандартные обработки не используются, то в КРУГОЛе необходимо использовать тот же атрибут переменной, к которой осуществлена OPC-привязка.
С точки зрения синтаксиса КРУГОЛа проблем не замечено. Возможно проблема заключается в некорректных начальных значениях.
Если в преобразовании участвует атрибут 65 Входной аналоговой переменной, то необходимо проверить к какому атрибуту переменной КРУГ-2000 привязан тег OPC-сервера.
Возможны, например, два варианта:
1) Тег OPC-сервера привязан к атрибуту №28 переменной ВА. В данном случаем необходимо включить алгоритм Нестандартных обработок №1. В результате этих обработок, текущее значение будет присваиваться в атрибут 65.
2) Если нестандартные обработки не используются, то OPC-тег необходимо привязать, непосредственно к атрибуту №65 переменной.
3) Если используется нестандартная обработка и OPC-тегов привязан к атрибуту 65, то значение данного атрибута будет перетираться обработкой из атрибута 28. Соответственно, если а.28 = 0, то и а.65 = а.28 = 0.
Итого, при использовании нестандартной обработки, OPC-тег должен быть привязан к атрибут №28 ВА.
Если нестандартные обработки не используются, то в КРУГОЛе необходимо использовать тот же атрибут переменной, к которой осуществлена OPC-привязка.
7. noble-minded - 28 Мая, 2013 - 15:13:34 - перейти к сообщению
Здравствуйте!
Перед тем как писать предыдущее письмо я проверил все привязки - в базе данных использовались только атрибуты 65. И соответственно в генераторе динамики.
Ранее я пытался привязывать ВА к целочисленным атрибутам для последующего преобразования к переменным ВД, но понял, что это не обязательно для КРУГОЛ и вернул атрибуты 65.
Сейчас в генераторе базы данных заново привязал переменные к атрибуту 65, т.е. изменил атрибут 65 на 65, и сохранил базу данных. Сигналы появились. До этого также сохранял базу данных. Странные вещи творятся на моем компьютере. Но главное, что проект заработал. Спасибо за оперативные ответы.
Перед тем как писать предыдущее письмо я проверил все привязки - в базе данных использовались только атрибуты 65. И соответственно в генераторе динамики.
Ранее я пытался привязывать ВА к целочисленным атрибутам для последующего преобразования к переменным ВД, но понял, что это не обязательно для КРУГОЛ и вернул атрибуты 65.
Сейчас в генераторе базы данных заново привязал переменные к атрибуту 65, т.е. изменил атрибут 65 на 65, и сохранил базу данных. Сигналы появились. До этого также сохранял базу данных. Странные вещи творятся на моем компьютере. Но главное, что проект заработал. Спасибо за оперативные ответы.