Введение
Программа OPC_Client.exe предназначена для подключения серверов OPC к серверу “ОИК Диспетчер NT” далее ОИК. Программа OPC_Client.exe функционирует совместно с библиотеками WTclient.dll, tmconn.dll, cfshare.dll, opcproxy.dll, opccomn_ps.dll, opc_aeps.dll, выполняя функции OPC клиента.
Установка на компьютер с установленным сервером ОИК
- Скопировать библиотеки из архива http://www.iface.ru/pub/tools/OPC_proxy_stub.zip в подкаталог System32 каталога, значение которого содержится в системных переменных “SystemRoot” или “windir” и его можно узнать с помощью команды “set”, например: “C:\WINNT\System32” или “C:\WINDOWS\System32”
- Последовательно исполнить в каталоге “%SystemRoot%\System32”:
RegSvr32 opcproxy.dll
RegSvr32 opccomn_ps.dll
RegSvr32 opc_aeps.dll - Скопировать файлы OPC_Client.exe и WTclient.dll из архива OPC_Client.zip в каталог, куда установлен сервер.
- В приложении “Настройка серверов” к сетевому серверу добавить внешнюю задачу и в качестве исполняемого файла задать OPC_Client.exe с указанием полного пути к файлу
- В основном меню выбрать “Компонент -> Настройка” или в контекстном меню выбрать “Настройка” или на панели пиктограмм нажать кнопку “Настройка”, что приведет к созданию конфигурационного файла с корректным размещением.
- Настроить DCOM, если этого требует конфигурация (OPC клиент и OPC сервер установлены на разных компьютерах или политика безопасности DCOM не позволяет подключиться к серверу ОИК)
- Запуск OPC_Client.exe будет произведен при запуске сервера ОИК, если не выбрана отмена запуска OPC_Client.exe.
Установка на компьютер без установленного сервера ОИК
- Установить OPC_Client.exe на компьютер, к которому будет произведено подключение (где установлен сервер ОИК) как рекомендовано выше, но в параметрах запуска OPC_Client.exe выбрать отмену запуска и параметрах безопасности сервера ОИК добавить учетную запись, от имени которой будет подключаться OPC_Client.exe с другого компьютера с выставлением необходимых прав доступа.
- Скопировать библиотеки из архива http://www.iface.ru/pub/tools/OPC_proxy_stub.zip в подкаталог System32 каталога, значение которого содержится в системных переменных “SystemRoot” или “windir” и его можно узнать с помощью команды “set”, например: “C:\WINNT\System32” или “C:\WINDOWS\System32”
- Последовательно исполнить в каталоге “%SystemRoot%\System32”:
RegSvr32 opcproxy.dll
RegSvr32 opccomn_ps.dll
RegSvr32 opc_aeps.dll - Скопировать файлы OPC_Client.exe и WTclient.dll из архива OPC_Client.zip в каталог, куда будет установлен шлюз, туда же скопировать tmconn.dll, cfshare.dll из поставки сервера ОИК
- Файл конфигурации будет считан с сервера ОИК через Named Pipe при подключении.
- Настроить DCOM, если этого требует конфигурация (OPC клиент и OPC сервер установлены на разных компьютерах или сообщения о невозможности работы с локальным сервером)
- Запуск производить из командной строки или с помощью механизмов автозапуска следующей командой:
OPC_Client.exe <имя ТМ сервера> \\<Windows имя компьютера>
Пример: C:\ Program Files\InterfaceSSH\Server\OPC_Client.exe tm \\TMSYS001
Размещение
Файл исполняемого модуля OPC_Client.exe должен располагаться в одном каталоге с библиотеками tmconn.dll и cfshare.dll, которые поставляются в составе комплекса ОИК, что обуславливает предпочтительное размещение в том же каталоге, куда установлен сервер ОИК.
Файл конфигурации _OPC_Client.cfg представляет собой текстовый файл и должен располагаться в каталоге, куда установлен сервер ОИК в поддиректории “CfShare\TM_SERVER\”<имя ТМ сервера>, например:
“C:\Program Files\InterfaceSSH\Server\CfShare\TM_SERVER\tm\_OPC_Client.cfg”.
Описание файла конфигурации шлюза OPC <-> ОИК
Файл конфигурации состоит из разделов, название которых заключено в квадратные скобки “[]” и параметров, отделенных от значений знаком равенства “=”.
Раздел [OPC_Connection] определяет параметры подключения к серверу OPC.
Параметр | Назначение | Пример |
---|---|---|
MachineName | Необязательный параметр, задающий Windows имя компьютера, на котором запущен OPC сервер | MachineName=\\MY_PC |
ServerName | Обязательный параметр, определяющий имя OPC сервера для подключения | ServerName= Fastwel.UniOpc |
ScanRate | Частота обновления значений тегов (OPC – параметр), мс | ScanRate=1000 |
Раздел [AnalogPoints] задает соответствие аналоговых сигналов ОИК и тегов OPC и состоит из записей вида:
<Канал:КП:объект>”=”<полное имя тега OPC>
- для трехадресного пространства
или:
“Group”<Size>”=”<полное имя тега OPC в четырехадресном пространстве>
- в случае представления имени тега 4-мя адресными полями в структурированном адресном пространстве OPC - сервера, где из имени объекта OPC возможно выделить номер,
где значение <Size> задает количество параметров в группе, а имя тега OPC должно быть представлено как: “CHANNEL_*.RTU_*.GR1_*.OBJ_*.item_name”, где * - символ, замещаемый номером объекта в структуре OPC, выделенного из имени объекта, что можно представить как (N1.N2.N3.N4.tag_name), где N1 задает номер канала, N2 задает номер КП, а N3 и N4 формируют номер объекта согласно следующей формуле:
номер_объекта_ОИК = (N3 - 1) * <Size> + N4,
Значения N1, N2, N3, N4 получаются посредством подстановки числовых значений из имен объектов OPC сервера.
В качестве значения объекта ОИК будет ТИТ, представленный одним из следующих типов данных OPC: VT_I2 (знаковое целое длиной 2 байта), VT_R4 (действительное длиной 4 байта), VT_R8 (действительное длиной 8 байт).
Примеры раздела [AnalogPoints]
Пример 1: 0:104:1=Device1.unit1.analog_1
В этом примере объект 1 в КП 104 на канале 0 принимает значения тега analog_1 группы unit1 устройства Device1 (Device1.unit1.analog_1) в трехадресном пространстве.
Пример 2: Group32=Канал_*.КП_*.Сб_ТИ_*.ТИ_*.Значение_текущее
Часть структурированного адресного пространства сервера OPC для этого примера
В этом примере 32 значения тега Значение_текущее будут записаны в объекты (ТИТ) с номерами от 1 до (N3 -1)*32 + N4, принадлежащих КП с номерами 2 и 4, подключенных к каналу 1.
Раздел [StatusPoints] задает соответствие дискретных сигналов ОИК и тегов OPC и имеет синтаксис аналогичный разделу [AnalogPoints] за тем исключением, что в качестве значения объекта будет ТС, переданный одним из следующих типов данных: VT_UI1 (беззнаковое целое длиной 1 байт), VT_BOOL (логический тип данных).
Пример раздела [StatusPoints]
Пример 1: 0:1:1=Device1.unit1.bit_1
В этом примере объект 1 в КП 1 на канале 0 принимает значения тега bit_1 группы unit1 устройства Device1 (Device1.unit1.bit_1)
Пример 2: Group32= Канал_*.КП*.Сб_ТС_*.ТС_*.Значение_текущее
Аналогично предыдущему разделу
Пример файла конфигурации:
[OPC_Connection]
MachineName=\\TMSYS001
ServerName=IFACE.OPC.GW
ScanRate=1000
[AnalogPoints]
0:105:6=Device1.unit1.analog_1
0:1:12=Device1.unit1.analog_2
Group48=Канал_*.КП_*.Сб_ТИТ2_*.ТИТ_*.Значение_текущее
Group24=Канал_*.КП_*.Сб_ТИТ_*.ТИТ_*.Значение_текущее
Group64=Канал_*.КП_*.Сб_ТИ_*.ТИ_*.Значение_текущее
[StatusPoints]
0:1:1=Device1.unit1.bit_1
0:2:1=Device1.unit1.bit_2
Group64=Канал_*.КП*.Сб_ТС_*.ТС_*.Значение_текущее