IronLogic СКУД
Сетевые контроллеры => Z5R Web от Open Service => Тема начата: Akarus от 30 Января 2019, 14:47
-
Добрый день!
У меня есть вопрос по оборудованию Z-5R Web с конфигурацией.
Помогите, пожалуйста, подключиться к устройству программно.
Мой код ниже выполняется с ошибкой:
ZG_CVT_OPEN_PARAMS rOp = new ZG_CVT_OPEN_PARAMS();
rOp.nPortType = CvtPortType; //ZP_PORT_TYPE.ZP_PORT_IP
rOp.pszName = CvtPortName; //@"192.168.1.20:1000"
rOp.nCvtType = CvtType; //ZG_CVT_TYPE.ZG_CVT_Z5R_WEB;
//rOp.nSpeed = ZG_CVT_SPEED.ZG_SPEED_57600;
ZG_CVT_INFO rInfo = new ZG_CVT_INFO();
rInfo.nType = ZG_CVT_TYPE.ZG_CVT_Z5R_WEB;
rInfo.nMode = ZG_GUARD_MODE.ZG_GUARD_ADVANCED;
hr = ZGIntf.ZG_Cvt_Open(ref hCvt, ref rOp, rInfo);
if (hr < 0)
{
Console.WriteLine("Ошибка ZG_Cvt_Open ({0}).", hr);
Console.ReadLine();
return;
}
-
У меня есть вопрос по оборудованию Z-5R Web с конфигурацией.
Помогите, пожалуйста, подключиться к устройству программно.
Мой код ниже выполняется с ошибкой:
Добрый день. Какой код ошибки? И ещё пришлите, пожалуйста, файл конфигурации контроллера.
-
Добрый день. Какой код ошибки? И ещё пришлите, пожалуйста, файл конфигурации контроллера.
Ошибка такая:
Ошибка ZG_Cvt_Open (-2147220979)
Прикладываю файл config.cfg, если правильно понял...
[INFO]
SERIAL_NUMBER=35837
FW_VERSION=
[COMMON]
MODE=SERVER
AUTH_KEY=1EA2D438
INTERFACE=ETH
LANGUAGE=2
[WEB]
USE_PROXY=0
PROXY_ADDR=192.168.1.1
PROXY_PORT=3128
HTTP_SERVER=hw.guardsaas.com
HTTP_PORT=80
HTTP_FILE=/data.php
CONNECT_PERIOD=10
PASSWORD=ab974088d09d4dc3
MAX_EVENTS=1
[TCP_SERVER]
LOCAL_PORT=1000
ALLOWED_IP=255.255.255.255
[TCP_CLIENT]
REMOTE_ADDR=1.1.1.2
REMOTE_PORT=0
[ONLINE]
SERVER_ADDR=192.168.1.100/online.php
SERVER_PORT=80
AUTH_STR=
CAM_PATH_IN=NONE
CAM_PATH_OUT=NONE
[WEBJSON]
JSON_SERVER_ADDR=https://10.2.0.88
JSON_USE_CERT=
JSON_PERIOD=10
JSON_LOGIN=
JSON_PASSWORD=
[NTP]
USE_NTP=1
NTP_SERVER=pool.ntp.org
TZ=UTC-3
[GSM]
GSM_TS=10
GSM_NUMBER=
SMS_NUMBER=
SMS_ALARM1="Machine#10 breaking ALARM"
SMS_ALARM2="Machine#10 inclined WARNING"
SMS_ALARM3="Machine#10 power"
SMS_ALARM4="Machine#10 moving ALARM"
SMS_ALARM5="Machine#10 door ALARM"
-
-2147220979 =ZP_E_NOCONNECT это ошибка подключения по TCP. Возможно файрвол блокирует. А GuardCommander (или GuardLight) подключается?
-
-2147220979 =ZP_E_NOCONNECT это ошибка подключения по TCP. Возможно файрвол блокирует. А GuardCommander (или GuardLight) подключается?
GuardLight подключается и через браузер тоже.
Я пробую пока подключить тестовую версию на C# CtrClock из sdk (https://ironlogic.ru/il.nsf/htm/ru_sdk-guard). Вот она не хочет.
-
Какие версии прошивок у Z-5R Web (модуль связи, модуль контроллера)?
-
Какие версии прошивок у Z-5R Web (модуль связи, модуль контроллера)?
модуль связи 1.0.130
модуль контроллера 3.26
-
Может есть у кого-нибудь работающий вариант примера подключения к Z5R Web на C#?
-
Попробую воспроизвести ошибку и затем отвечу.
Если пришлёте лог файл SDK, то это поможет разобраться. Чтобы записать лог файл нужно:
- Использовать библиотеку ZGuard.dll из папки Log;
- При первом вызове ZG_Initialize передать флаги ZPIntf.ZP_IF_LOG + ZGIntf.ZG_IF_LOG;
- Вызвать ZP_SetLog("", "c:\ZGuard.log", 0xffffffff);
-
модуль связи 1.0.130
модуль контроллера 3.26
Потестировал Sdk Guard (версия 3.35.2 с сайта ironlogic.ru) с Z-5R Web (1.0.130, 3.26), подключение в режиме Сервер на примере C# "CtrClock" - работает нормально во всех конфигурациях x86/x64, Debug/Release.
Попробуйте подключиться через ПО "Com2ip" https://ironlogic.ru/il_new.nsf/htm/ru_z397web (https://ironlogic.ru/il_new.nsf/htm/ru_z397web), т.е. в Com2ip нужно выбрать номер нового виртуального Com-порта (например, "COM7"), выбрать режим "Клиент", установить флаг "Использовать NVT", выбрать "Прямое соединение", ввести IP Адрес и TCP Порт контроллера и затем установить флаг "Включен", после этого появится надпись "TCP: Converter Connected". Если эта надпись не появится (будет надпись "TCP: Connecting..."), то проблема не в Sdk, а в TCP связи. Если появится "TCP: Converter Connected", то попробуйте отключить файрвол, пришлите лог файл Sdk.
P.S. Sdk работает по протоколу Advanced http://posix.ironlogic.ru (http://posix.ironlogic.ru). Если желаете, можете использовать протокол на прямую, без посредника Sdk Guard.
-
Потестировал Sdk Guard (версия 3.35.2 с сайта ironlogic.ru) с Z-5R Web (1.0.130, 3.26), подключение в режиме Сервер на примере C# "CtrClock" - работает нормально во всех конфигурациях x86/x64, Debug/Release.
Попробуйте подключиться через ПО "Com2ip" https://ironlogic.ru/il_new.nsf/htm/ru_z397web (https://ironlogic.ru/il_new.nsf/htm/ru_z397web), т.е. в Com2ip нужно выбрать номер нового виртуального Com-порта (например, "COM7"), выбрать режим "Клиент", установить флаг "Использовать NVT", выбрать "Прямое соединение", ввести IP Адрес и TCP Порт контроллера и затем установить флаг "Включен", после этого появится надпись "TCP: Converter Connected". Если эта надпись не появится (будет надпись "TCP: Connecting..."), то проблема не в Sdk, а в TCP связи. Если появится "TCP: Converter Connected", то попробуйте отключить файрвол, пришлите лог файл Sdk.
P.S. Sdk работает по протоколу Advanced http://posix.ironlogic.ru (http://posix.ironlogic.ru). Если желаете, можете использовать протокол на прямую, без посредника Sdk Guard.
Спасибо. Ошибка ушла. Вероятно висел в процессах не закрывшееся обращение к контроллеру... А с двух клиентов одновременно не пускает....
Но теперь появилась другая:
public const string CvtPortName = "COM3";
public const Byte CtrAddr = 3;
.
.
.
ZG_CTR_INFO rCtrInfo = new ZG_CTR_INFO();
//string s2 = new string('\0', 1000);
//rCtrInfo.pszLinesBuf = s2;
//rCtrInfo.nLinesBufMax = 1000;
rCtrInfo.nType = ZG_CTR_TYPE.ZG_CTR_Z5RWEB;
hr = ZGIntf.ZG_Ctr_Open(ref m_hCtr, hCvt, CtrAddr, 0, ref rCtrInfo);
if (hr < 0)
{
Console.WriteLine("Ошибка ZG_Ctr_Open ({0}).", hr);
Console.ReadLine();
return;
}
Ошибка ZG_Ctr_Open (-2147220721)
-
public const Byte CtrAddr = 3;
Ошибка ZG_Ctr_Open (-2147220721)
-2147220721 =ZG_E_NOCONTROLLER Неправильный адрес контроллера. Должно быть CtrAddr = 2.
-
-2147220721 =ZG_E_NOCONTROLLER Неправильный адрес контроллера. Должно быть CtrAddr = 2.
Спасибо. Подключился.
А почему именно 2, а не, например 4?
-
А почему именно 2, а не, например 4?
В Advanced режиме адреса начинаются с 2, и кстати, адреса назначаются автоматически (их не нужно изменять, всё равно переназначатся).
Для контроллеров без модуля связи (нужен конвертер) на заводе назначается адрес =1. При подключении к конвертеру контроллеру назначается адрес, отличный от 1, чтобы при подключении следующего нового контроллера адреса не конфликтовали. Это актуально для режима конвертера Normal, в режиме Advanced конфликтов адресов в любом случае быть не должно.