From ActiveX to tag

Вопросы, не попадающие в другие разделы.

From ActiveX to tag

Сообщение werg » Ср фев 17, 2016 10:00 pm

Доброго времени суток!
Прошу помощи в вопросе использования AcniveX компоненты для управления прибором.
Разобрался в первой части вопроса.
Скрипт ниже работает.
Код: Выделить всё
#Agt3494A8.FindInstrumentAddresses( "COM2::BAUD=9600,PARITY=NONE,SIZE=8,HANDSHAKE=DTR_DSR");
#Agt3494A8.Connect( "COM2::BAUD=9600,PARITY=NONE,SIZE=8,HANDSHAKE=DTR_DSR");
#Agt3494A8.Output("system:remote");
#Agt3494A8.Output("Configure:FRESistance Min,Min");
#Agt3494A8.Output("MEASure:FRESistance?");


После выполнения скрипта прибор конфигурируется, производит однократное измерение и посылает результат в свой буфер вывода.

Задача - получать эти данные и писать в REAL тег.

Не могу разобраться как использовать метод из доки

Enter Method
Syntax
Agt3494A.Enter result As Variant, Format As String
Enter can read data from the instrument as a string or as a number. For most applications, no Format specifier is needed. The following are common usages.

Return a string like this:

Dim reply As String

Agt3494A1.Enter reply

Return a number like this:

Dim reading As Double

Agt3494A1.Enter reading


The parameters for the Enter method are described below.

Result
This parameter returns the data from the instrument. The declaration of the variable and the Format specifier determine how the data is returned.

Format
This argument determines the format of the returned data. The Format argument is optional in Visual Basic. If you do not specify a Format string, the result is the same as specifying a Format string of "K".


Смущает result As Variant

Залил доку на файлообменник http://my-files.ru/35urg8
werg
 
Сообщения: 124
Зарегистрирован: Пт апр 01, 2011 2:29 pm

Re: From ActiveX to tag

Сообщение Генератор зла » Ср фев 17, 2016 10:51 pm

https://msdn.microsoft.com/ru-ru/librar ... 51448.aspx
Тип данных Variant является типом данных для всех переменных, для которых в явной форме не объявлен другой тип (с использованием таких операторов, как Dim, Private, Public или Static). Типы данных Variant не имеют символа объявления типа .
Variant — это специальный тип данных, который может содержать любой вид данных, кроме данных с фиксированной длиной String.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: From ActiveX to tag

Сообщение werg » Ср фев 17, 2016 11:44 pm

Смутило, что в доках (Рук-во пользователя) на стр. 152 следующее
InTouch не поддерживает следующие типы ActiveX:
ï Объекты, не имеющие окна.
ï Простые фреймовые объекты (групповые боксы).
ï Контейнеры.
ï Средства манипулирования данными.
ï Обработчики сообщений.
ï Массивы, BLOB-объекты, Variant-типы.


Кроме того, не получается считать эти данные
Помогите, пожалуйста, со второй частью скрипта.
Как будет выглядеть эта строка в скрипте? Agt3494A.Enter result As Variant, Format As String
werg
 
Сообщения: 124
Зарегистрирован: Пт апр 01, 2011 2:29 pm

Re: From ActiveX to tag

Сообщение Генератор зла » Чт фев 18, 2016 1:12 pm

werg писал(а):Кроме того, не получается считать эти данные

InTouch совместим далеко не со всеми ActiveX (или они с ним?)
Надо пробовать:
1. Agt3494A.Enter(IntTag,"")
2. Agt3494A.Enter(IntTag,"K")
3. IntTag = Agt3494A.Enter
Можно попробовать увязать переменные InTouch с переменными ActiveX через окно настройки этого ActiveX.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: From ActiveX to tag

Сообщение werg » Чт фев 18, 2016 10:43 pm

В принципе данные удалось считывать, но когда настроил циклическое выполнение скрипта (2000ms) InTouch начинает, мягко говоря, заметно тормозить.
Код: Выделить всё
пересылаю 1 строку
читаю 1 строку

Какая может быть причина? Как бороться?
werg
 
Сообщения: 124
Зарегистрирован: Пт апр 01, 2011 2:29 pm

Re: From ActiveX to tag

Сообщение Генератор зла » Чт фев 18, 2016 10:52 pm

werg писал(а):Какая может быть причина?

- тормозит сом ActiveX (цикл чтения = 2 с) - увеличить период опроса
- тормозит сеть
- тормозит сам прибор
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: From ActiveX to tag

Сообщение werg » Пт фев 19, 2016 7:13 pm

Полагаю зависание связано с тем, что прибору требуется время на обработку команды и выдачи результата в буфер.
Если мы посылаем в скрипте строку за строкой
Код: Выделить всё
1) команда
2) чтение

то чтение проходит быстрее чем появляются данные в выходном буфере прибора и InTouch тормозит.
Каким образом в InTouch можно разнести время выполнения двух строк в скрипте на 100ms?
Прибор обрабатывает команду записи ~ 30 ms? прежде чем выдать в буфер.
Мне нужно отправлять команду на измерение и через 100ms команду на чтение.
Это в принципе реализуемо?
werg
 
Сообщения: 124
Зарегистрирован: Пт апр 01, 2011 2:29 pm

Re: From ActiveX to tag

Сообщение Генератор зла » Пт фев 19, 2016 7:25 pm

werg писал(а):Это в принципе реализуемо?

По команде взвести флаг и запомнить секунды-миллисекунды
Скрипт по флагу, если секунды*1000+миллисекунды > запомненных, то чтение из прибора и обнуление флага.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: From ActiveX to tag

Сообщение werg » Пт фев 19, 2016 8:53 pm

По команде взвести флаг и запомнить секунды-миллисекунды

не совсем понятно, можно пример скрипта?
Скрипт по флагу, если секунды*1000+миллисекунды > запомненных, то чтение из прибора и обнуление флага.

скрипт по флагу как использовать? в скриптах приложения? там же цикл 1000 ms
werg
 
Сообщения: 124
Зарегистрирован: Пт апр 01, 2011 2:29 pm

Re: From ActiveX to tag

Сообщение Генератор зла » Пт фев 19, 2016 9:35 pm

werg писал(а):можно пример скрипта?

Вы предлагаете мне решить задачу за Вас? :(
werg писал(а):не совсем понятно

По отправке команды в прибор взвести флаг (мемори тег) и запомнить в ещё 2 мемори тегах значения $Second, $MSecond
Кондитион-скрипт со срабатыванием на присутствие флага, в котором сравнивается $Second*1000+$MSecond с запомненными значениями + 100 мс, и если текущие больше - читать из прибора и сбросить флаг.
Всё это полёт мысли (но не бред), пробовать нет ни возможности, ни времени.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: From ActiveX to tag

Сообщение werg » Пт фев 19, 2016 10:44 pm

:(

Вот уж не думал, что это Вас так расстроит.
Спасибо за помощь, попробую отпишусь. :)
werg
 
Сообщения: 124
Зарегистрирован: Пт апр 01, 2011 2:29 pm


Вернуться в Другое

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43