Автор Тема: Вопросы по SDK  (Прочитано 16714 раз)

Akarus

  • Пользователь
  • *****
  • Сообщений: 9
Вопросы по SDK
« : 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;
                }

gsa

  • Пользователь
  • *****
  • Сообщений: 265
Re: Вопросы по SDK
« Ответ #1 : 30 Января 2019, 15:50 »
У меня есть вопрос по оборудованию Z-5R Web с конфигурацией.
Помогите, пожалуйста, подключиться к устройству программно.
Мой код ниже выполняется с ошибкой:
Добрый день. Какой код ошибки? И ещё пришлите, пожалуйста, файл конфигурации контроллера.

Akarus

  • Пользователь
  • *****
  • Сообщений: 9
Re: Вопросы по SDK
« Ответ #2 : 30 Января 2019, 16:22 »
Добрый день. Какой код ошибки? И ещё пришлите, пожалуйста, файл конфигурации контроллера.

Ошибка такая:
Ошибка 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"

gsa

  • Пользователь
  • *****
  • Сообщений: 265
Re: Вопросы по SDK
« Ответ #3 : 30 Января 2019, 16:40 »
-2147220979 =ZP_E_NOCONNECT это ошибка подключения по TCP. Возможно файрвол блокирует. А GuardCommander (или GuardLight) подключается?

Akarus

  • Пользователь
  • *****
  • Сообщений: 9
Re: Вопросы по SDK
« Ответ #4 : 30 Января 2019, 16:58 »
-2147220979 =ZP_E_NOCONNECT это ошибка подключения по TCP. Возможно файрвол блокирует. А GuardCommander (или GuardLight) подключается?
GuardLight подключается и через браузер тоже.
Я пробую пока подключить тестовую версию на C# CtrClock из sdk. Вот она не хочет.

gsa

  • Пользователь
  • *****
  • Сообщений: 265
Re: Вопросы по SDK
« Ответ #5 : 30 Января 2019, 17:06 »
Какие версии прошивок у Z-5R Web (модуль связи, модуль контроллера)?

Akarus

  • Пользователь
  • *****
  • Сообщений: 9
Re: Вопросы по SDK
« Ответ #6 : 31 Января 2019, 10:08 »
Какие версии прошивок у Z-5R Web (модуль связи, модуль контроллера)?
модуль связи 1.0.130
модуль контроллера 3.26

Akarus

  • Пользователь
  • *****
  • Сообщений: 9
Re: Вопросы по SDK
« Ответ #7 : 31 Января 2019, 14:16 »
Может есть у кого-нибудь работающий вариант примера подключения к Z5R Web на C#?

gsa

  • Пользователь
  • *****
  • Сообщений: 265
Re: Вопросы по SDK
« Ответ #8 : 31 Января 2019, 17:03 »
Попробую воспроизвести ошибку и затем отвечу.
Если пришлёте лог файл SDK, то это поможет разобраться. Чтобы записать лог файл нужно:
  • Использовать библиотеку ZGuard.dll из папки Log;
  • При первом вызове ZG_Initialize передать флаги ZPIntf.ZP_IF_LOG + ZGIntf.ZG_IF_LOG;
  • Вызвать ZP_SetLog("", "c:\ZGuard.log", 0xffffffff);

gsa

  • Пользователь
  • *****
  • Сообщений: 265
Re: Вопросы по SDK
« Ответ #9 : 01 Февраля 2019, 12:27 »
модуль связи 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, т.е. в 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. Если желаете, можете использовать протокол на прямую, без посредника Sdk Guard.

Akarus

  • Пользователь
  • *****
  • Сообщений: 9
Re: Вопросы по SDK
« Ответ #10 : 01 Февраля 2019, 14:02 »
Потестировал 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, т.е. в 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. Если желаете, можете использовать протокол на прямую, без посредника 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)
« Последнее редактирование: 01 Февраля 2019, 14:08 от Akarus »

gsa

  • Пользователь
  • *****
  • Сообщений: 265
Re: Вопросы по SDK
« Ответ #11 : 01 Февраля 2019, 14:49 »
        public const Byte CtrAddr = 3;
Ошибка ZG_Ctr_Open (-2147220721)
-2147220721 =ZG_E_NOCONTROLLER Неправильный адрес контроллера. Должно быть CtrAddr = 2.

Akarus

  • Пользователь
  • *****
  • Сообщений: 9
Re: Вопросы по SDK
« Ответ #12 : 01 Февраля 2019, 15:15 »
-2147220721 =ZG_E_NOCONTROLLER Неправильный адрес контроллера. Должно быть CtrAddr = 2.
Спасибо. Подключился.
А почему именно 2, а не, например 4?

gsa

  • Пользователь
  • *****
  • Сообщений: 265
Re: Вопросы по SDK
« Ответ #13 : 01 Февраля 2019, 15:33 »
А почему именно 2, а не, например 4?
В Advanced режиме адреса начинаются с 2, и кстати, адреса назначаются автоматически (их не нужно изменять, всё равно переназначатся).

Для контроллеров без модуля связи (нужен конвертер) на заводе назначается адрес =1. При подключении к конвертеру контроллеру назначается адрес, отличный от 1, чтобы при подключении следующего нового контроллера адреса не конфликтовали. Это актуально для режима конвертера Normal, в режиме Advanced конфликтов адресов в любом случае быть не должно.
« Последнее редактирование: 01 Февраля 2019, 15:48 от gsa »