|
Подключение к OPC-серверу из 1С | ☑ | ||
---|---|---|---|---|
0
trialex3
19.01.22
✎
12:25
|
Добрый день. Есть у кого опыт работы с ОРС из 1С? Поставили задачу подключиться к станку на котором поднята эта штука, дали айпишник, а дальше в интернете мануалов минимум.
Нашел только вот это https://www.aggsoft.ru/opc-http-gate/opc-ua-da-1c.htm, но с именем тега забрать данные не получается. Пишет: Нам вернули код: 404 Тело результата: <h1>Not Found</h1>The requested URL /read.json?server=opcserversim.Instance.1&tag=NS4%7Cstring%7C%7Cvar%7CPLC210%20OPC-UA.Application.GVL.auto_mode was not found on this server. Может кто скинуть мануал как это все заставить работать или поделиться собственным опытом? |
|||
1
Garykom
гуру
19.01.22
✎
12:28
|
(0) там дохрена стандартов https://ipc2u.ru/articles/prostye-resheniya/prosto-o-standartakh-opc-da-i-opc-ua/
от своего сервера мануал ищи на любом ЯП и по аналогии |
|||
2
acht
19.01.22
✎
12:30
|
(0) В глаза бросается разница урлов:
/read.json?server=opcserversim.Instance.1&tag=Channel1.Device1.Tag1 И /read.json?server=opcserversim.Instance.1&tag=NS Что это за дивное "x26;", это ты туда еще один ампенсенд, что-ли запихиваешь? |
|||
3
acht
19.01.22
✎
12:31
|
Амперсанд, извиняюсь
|
|||
4
trialex3
19.01.22
✎
12:32
|
(2) Это уже на выходе. В коде
"Запрос = Новый HTTPЗапрос("/read.json?server=opcserversim.Instance.1&tag=NS4|string||var|PLC210 OPC-UA.Application.GVL.auto_mode");" |
|||
5
trialex3
19.01.22
✎
12:34
|
Господа. Еще один глупый вопрос. На компьютере с 1С-кой должно ли стоять какое - нибудь доп по? Или если поднять на станке ОРС то 1С сможет по хттп напрямую туда подключаться?
|
|||
6
trialex3
19.01.22
✎
12:36
|
(4) При этом этот тег точно существует - https://disk.yandex.ru/i/8xm-qVTY4nq_jg
|
|||
7
fisher
19.01.22
✎
12:36
|
(4) ведущий слэш убери для начала
|
|||
8
trialex3
19.01.22
✎
12:40
|
(7) Ничего не изменилось.
Еще вопрос - Instance.1 - это предопределенное значение или я должен подставить что-то вместо "1"? |
|||
9
fisher
19.01.22
✎
12:42
|
(8) Понятия не имею. Первый раз слышу про OPC. Ты вообще уверен что там развернут http-gateway? Из твоего скриншота можно быть уверенным только в наличии tcp-сервера.
|
|||
10
trialex3
19.01.22
✎
12:45
|
(9) Не уверен - я его и в глаза то не видел, но программа через которую получаю данные тега называется "OPC UA-HTTP Gateway"
|
|||
11
fisher
19.01.22
✎
12:46
|
Хотя раз 404 вернуло, то какой-то http-сервер там работает...
|
|||
12
fisher
19.01.22
✎
12:51
|
Я бы первым делом загуглил how to get data from <модель станка> via OPC UA-HTTP
Если выдача плохая, тогда не по модели а по производителю |
|||
13
trialex3
19.01.22
✎
12:59
|
(12) Все самодельное. Даже станок(ну это даже не станок а тестовый аппарат)
|
|||
14
fisher
19.01.22
✎
13:03
|
(10) Что еще можно попробовать. Если прога таки шлет http-запрос, то можно попробовать перехватить корректный запрос через fiddler (умеет снифить http-трафик), если прога юзает системные настройки прокси. Но судя по скриншоту она его скорее шлет все-таки по tcp. Но может ее и по http заставить можно.
|
|||
15
Kassern
19.01.22
✎
13:07
|
(4) кодируйте вашу портянку в урл, возможно в этом проблема.
|
|||
16
arsik
гуру
19.01.22
✎
13:08
|
(13) Ну модель мозгов то на нем можно просмотреть. и уже искать правильный мануал. Его же кто то вам собирал, дергайте их.
|
|||
17
Kassern
19.01.22
✎
13:08
|
Вот вам в помощь https://infostart.ru/public/1444067/
|
|||
18
Kassern
19.01.22
✎
13:10
|
Ресурс = КодироватьСтроку("/read.json?server=opcserversim.Instance.1&tag=NS4|string||var|PLC210 OPC-UA.Application.GVL.auto_mode", СпособКодированияСтроки.URLВКодировкеURL);
Запрос = Новый HTTPЗапрос(Ресурс,Заголовки); |
|||
19
Kassern
19.01.22
✎
13:11
|
(4) А там реально пробелы в адресе запроса? (PLC210 OPC)
|
|||
20
arsik
гуру
19.01.22
✎
13:12
|
OPC-HTTP GATEWAY - можете через него работать из 1с, он как раз для этого предназначен.
|
|||
21
fisher
19.01.22
✎
13:15
|
(20) Так он и без вашего разрешения уже пытается. Только пока плохо получается.
|
|||
22
trialex3
19.01.22
✎
13:15
|
(19) Это имя тега, которое выдает прога
|
|||
23
arsik
гуру
19.01.22
✎
13:17
|
(21) Понятно. Я думал он напрямую к станку запросы шлет.
|
|||
24
trialex3
19.01.22
✎
13:17
|
(19)
Нам вернули код: 404 Тело результата: <h1>Not Found</h1>The requested URL /read.json?server=opcserversim.Instance.1&tag=NS0%7Cnumeric%7C2256 was not found on this server. вот вариант другого тега |
|||
25
Kassern
19.01.22
✎
13:19
|
(24) вы, перед тем как послать запрос, строку запроса закодировали в урл?
|
|||
26
trialex3
19.01.22
✎
13:25
|
Ресурс = КодироватьСтроку("/read.json?server=opcserversim.Instance.1&tag=NS0|numeric|2256", СпособКодированияСтроки.URLВКодировкеURL);
Запрос = Новый HTTPЗапрос(Ресурс); Результат = Соединение.Получить(Запрос); |
|||
27
fisher
19.01.22
✎
13:35
|
А если просто в строке браузера набрать <имясервера>/read.json
Чего пишет? |
|||
28
trialex3
19.01.22
✎
13:36
|
(27) Not Found
The requested URL /read.json was not found on this server. |
|||
29
fisher
19.01.22
✎
13:37
|
А если просто
|
|||
30
fisher
19.01.22
✎
13:37
|
<имясервера>
|
|||
31
trialex3
19.01.22
✎
13:38
|
(29) аутентификация некоего ОВЕНа
|
|||
32
fisher
19.01.22
✎
13:40
|
Что еще за ОВЕН? Если он не имеет отношения к ОРС, то ты сейчас пытаешься тыкаться в левый ресурс со своими OPC-запросами.
|
|||
33
trialex3
19.01.22
✎
13:43
|
(32) хз. Но на айпишнике именно он - Powered by LuCI (Owen) / 2018.07
Собственно у меня информация по поводу серверов следующая: На контроллерах подняты ОРС сервера по адресам: opc.tcp://192.и далее opc.tcp://192.и далее |
|||
34
fisher
19.01.22
✎
13:45
|
(33) Но при этом легко может оказаться, что rest-интерфейс OPC либо вообще не поднят, либо поднят на другом порту. Пока что очевидно только, что ОРС сервера доступны по tcp
|
|||
35
fisher
19.01.22
✎
13:52
|
По-ходу, таки прав был (20). Вам его либо настраивать надо, либо на той машине где он настроен у вас http-шлюз и поднят и надо на нее стучатся, а не непосредственно на opc-сервера. Короче гуглите "Настройка OPC UA-HTTP Gateway"
|
|||
36
vbus
19.01.22
✎
14:04
|
Проверь доступность сначала ping,
В PowerShell проверить порт Test-NetConnection -ComputerName 192.168.1.1 -port 80 -InformationLevel Detailed У меня ответ такой ComputerName : 192.168.1.1 RemoteAddress : 192.168.1.1 RemotePort : 80 NameResolutionResults : 192.168.1.1 test.local MatchingIPsecRules : NetworkIsolationContext : Private Network IsAdmin : False InterfaceAlias : Ethernet SourceAddress : 192.168.1.158 NetRoute (NextHop) : 0.0.0.0 TcpTestSucceeded : True На время тестов отключить fireWall чтобы ответы приходили. |
|||
37
trialex3
19.01.22
✎
14:20
|
(36) ПРЕДУПРЕЖДЕНИЕ: TCP connect to (192.168.1.1 : 80) failed ПРЕДУПРЕЖДЕНИЕ: Ping to 192.168.1.1 failed with status: DestinationHostUnreachable
ComputerName : 192.168.1.1 RemoteAddress : 192.168.1.1 RemotePort : 80 NameResolutionResults : 192.168.1.1 MatchingIPsecRules : NetworkIsolationContext : Internet InterfaceAlias : Ethernet SourceAddress : 192... NetRoute (NextHop) : 192... PingSucceeded : False PingReplyDetails (RTT) : 0 ms TcpTestSucceeded : False |
|||
38
arsik
гуру
19.01.22
✎
14:24
|
(37) Херня какая то. Это запрос к ПК на котором OPC-HTTP GATEWAY развернуто? Может фаерволл? То тогда это ресурс бы не отвечал ошибкой 404.
|
|||
39
arsik
гуру
19.01.22
✎
14:27
|
(37) Ты напрямую к станку стучишся из 1с или через OPC-HTTP GATEWAY?
|
|||
40
trialex3
19.01.22
✎
14:28
|
(38) Нет это я идиот забыл айпишник сервера поставить
ComputerName : 192 RemoteAddress : 192 RemotePort : 80 NameResolutionResults : 192 MatchingIPsecRules : NetworkIsolationContext : Private Network InterfaceAlias : Ethernet SourceAddress : 192 NetRoute (NextHop) : 0.0.0.0 TcpTestSucceeded : True |
|||
41
arsik
гуру
19.01.22
✎
14:29
|
Ну судя по этому https://owen.ru/uploads/181/1/tn-ug-owrt-luci-r2.pdf - ты напрямую к контролеру пытаешься подключится. Тебе через OPC-HTTP GATEWAY нужно подключатся. Напрямую контроллер твои запросы не вкурит.
|
|||
42
fisher
19.01.22
✎
14:31
|
Как я подозреваю, он стучится непосредственно на станки. На каждом из которых работает tcp-сервер OPC и какая-то вебка станка (не имеющая отношения к OPC)
|
|||
43
fisher
19.01.22
✎
14:36
|
(41) Более того. Судя по (6)(10), шлюз у него уже настроен :)
|
|||
44
trialex3
19.01.22
✎
14:37
|
(42) Да на каждом станке свой айпи с веб визуализацией
|
|||
45
fisher
19.01.22
✎
14:39
|
(44) Тебе из 1С нужно стучаться не на адреса станков, а на адрес того компа, где OPC UA-HTTP Gateway работает.
|
|||
46
fisher
19.01.22
✎
14:41
|
Только сначала через браузер проверить что он хоть что-то отдает.
|
|||
47
arsik
гуру
19.01.22
✎
14:42
|
(45) Да не слышит он. Я ему уже писал. Нужно громче.
ТЕБЕ ИЗ 1С НУЖНО СТУЧАТЬСЯ НЕ НА АДРЕСА СТАНКОВ, А НА АДРЕС ТОГО КОМПА, ГДЕ OPC UA-HTTP GATEWAY РАБОТАЕТ. 😱 |
|||
48
fisher
19.01.22
✎
14:42
|
Громче-громче! СНЕ-ГУ-РОЧ-КА!
|
|||
49
vbus
19.01.22
✎
14:51
|
GEtWay бумажка же есть https://www.aggsoft.ru/opc-http-gate/opchttpgate.pdf
|
|||
50
trialex3
19.01.22
✎
14:54
|
(47) Слышу слышу я пошел узнавать айпи того компа)
|
|||
51
trialex3
19.01.22
✎
15:01
|
Ага. Мне ответили что это мне надо на своем компе запустить эту программу.
|
|||
52
Garykom
гуру
19.01.22
✎
15:21
|
(24) вот "read.json" мне сильно не нравится
найди уже рабочие примеры из postman или curl |
|||
53
trialex3
19.01.22
✎
15:27
|
(52) Это пример из мануала эти ребят https://www.aggsoft.ru/opc-http-gate/opchttpgate.pdf
|
|||
54
Garykom
гуру
19.01.22
✎
15:30
|
(53) 1. opchttpgate.log
2. get-servers.json |
|||
55
trialex3
19.01.22
✎
15:34
|
Я понял, что запустив прогу у себя я запущу сервак, на который смогу отправлять хттп запросы, а тот в свою очередь транслировать их в ОРС. Соответственно нужно понять как не в веб интерфейсе указать корректный айпи ОРС сервера и на какой айпи отправлять хттп запросы (моего компа?)
|
|||
56
fisher
19.01.22
✎
15:40
|
(55) Мануалы раскури сначала. Первым делом его надо его правильно сконфигурировать. Сомневаюсь, что достаточно "запустить прогу".
|
|||
57
fisher
19.01.22
✎
15:56
|
(55) Через хттп ты будешь к станкам уже по логическим адресам обращаться, а не по айпи. И скорее всего тот же "opcserversim.Instance.1" - пример такого имени.
|
|||
58
trialex3
19.01.22
✎
16:13
|
(57) Судя по мануалу там настраивать ничего не надо. Или мануал слишком маленький
|
|||
59
Garykom
гуру
19.01.22
✎
16:27
|
"server=opcserversim.Instance.1" - вряд ли
по аналогии попробуй: http://127.0.0.1/get-servers.json?host=192.168.1.180 |
|||
60
trialex3
19.01.22
✎
16:56
|
(59) ничего не доступно. Да и смысл - надо сначала понять как поднять сервер через который обращаться к ОРС
|
|||
61
trialex3
19.01.22
✎
17:46
|
Разобрался с настройками подключения - неправильный порт был. Первый успех
Нам вернули код: 200 Тело результата: {"command":"","success":true,"processed":0,"data": []} |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |