Имя: Пароль:
1C
1С v8
Объявление типизированных переменных в 1с
,
0 дымовская_
колбаска
 
02.03.23
11:59
Стоит задача собирать данные с OPC DA сервера.
Подключение по COM. Далее объявление каталогов и параметров откуда необходимо считать данные.
Считывание данных производится методом SyncRead(Source As Integer, NumItems As Long, ServerHandles() As Long, ByRef Values() As Variant, ByRef Errors() As Long, Optional ByRef Qualities As Variant, Optional ByRef, TimeStamps As Variant)
Появились затруднения в объявлении переменных типа Long и массивов ComSafeArray c типами Variant и Long.
Можно ли вообще в 1с задать такие типы переменным? Если да, подскажите, пожалуйста.
1 unenu
 
02.03.23
12:04
ну наконец-то, дождались правильного программиста. а то эти жадные и тупые пишут черти шо.
2 unenu
 
02.03.23
12:16
может поможет

https://infostart.ru/public/184119/
3 дымовская_
колбаска
 
02.03.23
12:25
(2) ну вот один из вопросов, есть ли возможность реализовать без написания ВК?
4 H A D G E H O G s
 
02.03.23
12:26
(3) А что за приблуда то?
5 дымовская_
колбаска
 
02.03.23
12:31
(4) не понял вопроса
6 H A D G E H O G s
 
02.03.23
12:33
(5) Ну что за штуку ты хочешь подружить с 1С? Есть документация, образец, чтобы потестить?
7 rphosts
 
02.03.23
12:41
(6) сервер собирающий всякую инфу с датчиков и станков, в первом приближении.
8 дымовская_
колбаска
 
02.03.23
12:41
(6) подружить хочу OPC DA сервер с 1с, который собирает данные с оборудования и считывать с него данные напрямую.
Пример взят отсюда: Откуда правильнее читать данные OPC DA или Master-Scada?
Проблема в объявлении ComSafeArray

ОРСServer = ПолучитьОРССоединение("OPC.Automation",СтрокаПодключения,Комп, мОшибка);
        
OPCGroups=ОРСServer.OPCGroups;
OPCGroup =OPCGroups.Add("OPCUA1");
OPCItems =OPCGroup.OPCItems;
OPCGroup.IsActive = True;
Item = OPCItems.AddItem("OPCUA2.LASKA500_1.TEMP_SCADA_2",1);

OPC_DS_CACHE = 1;
NumItems = 1;
ServerHandles = Item.ServerHandle;  
Values = Новый ComSafeArray(, "VT_VARIANT");
Errors = Новый ComSafeArray(, "VT_I4");      
Qualities = "";
TimeStamps = "";
    
OPCGroup.SyncRead(OPC_DS_CACHE, NumItems, ServerHandles, Values, Errors, Qualities, TimeStamps);
9 rphosts
 
02.03.23
12:42
(3) 90% что это твоя планида. Вот кста в ветке есть один спец по ВК (и это не я).
10 дымовская_
колбаска
 
02.03.23
12:45
(9) ссылка примера кстати ваша тема, вы решили как то этот вопрос? там человек привел код, но я не могу до конца его реализовать
11 H A D G E H O G s
 
02.03.23
14:06
(10) Скинь хоть бибилиотеку на через облако. Как тебе помочь то, если не на чем смотреть.
12 rphosts
 
02.03.23
14:12
(10) сначала меня отогнали на другую работу (мы там отгрузку поломали а ты всякой фигнёй занимаешься) потом ещё что-то, потом ещё что-то... потом сменил работу.
13 Garykom
 
гуру
02.03.23
14:26
(0) я бы начал с https://github.com/konimarti/opc
14 Garykom
 
гуру
02.03.23
14:30
(13)+ только сначала уточнил именно OPC DA или уже OPC UA
https://medium.com/vacatronics/how-to-connect-with-opc-ua-using-go-5d7fdcac6217
15 rphosts
 
02.03.23
14:36
(10) кста, в процессе поиска находил пару pdf книжек к примерами кода (не 1с, но разве это кого-то остановит?)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс