Форум TRACE MODE: техническая поддержка   
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 5 » TRACE MODE 5 бесплатная версия / TRACE MODE 5 Free version » t13 драйвер

   
Автор / Author Тема / Topic: t13 драйвер
dark
Junior Member / Новичок
Участник № / Member № 1430


Icon 1 отправлено / posted      Профиль для / Profile for dark           Редактировать/удалить сообщение / Edit/Delete Post 
Здравствуйте.
У меня есть драйвер t13(тип:фиксированное подключение).Можно ли в функции fread производить запись и чтение,например, с внешнего порта. Ещё посылать какое-нибудь число в эту функцию.
Спасибо.

Сообщения / Posts 14 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
В функции t13_fread можно выполнять любые операции. Только надо учитывать, что этот вызов реализуется в режиме online. Значит, любые операции, которые будут занимать продолжительное время, будут задерживать цикл обработки базы каналов.
Сообщения / Posts 17083 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706


Icon 1 отправлено / posted      Профиль для / Profile for nizinkinD           Редактировать/удалить сообщение / Edit/Delete Post 
Добрый день.
Существует небходимость отправлять в драйвер сразу 3 числа(управление манипулятором по 3 координатам).Но функции в драйвере имеют 1 параметр для переменной,да и каналы перают 1 значение.
Можно это как-то сделать?
Например описать функцию 3 переменных и 3 канала,чтоб каждый передал в свою переменную.
Спасибо.

Сообщения / Posts 32 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Только через отдельные каналы (с указанием типа координаты в настройке удаленного адреса каждого из них).
Сообщения / Posts 17083 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706


Icon 1 отправлено / posted      Профиль для / Profile for nizinkinD           Редактировать/удалить сообщение / Edit/Delete Post 
Я не понял,можно на примере?
Есть 3 канала,
функция выглядит примерно так:
MyFunction(int x,int y , int z);

f_write(???здесь что??)
{
MyFunction(значение_канала_1,значение_канала_2, значение_канала_3);
}

Сообщения / Posts 32 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Для каждой координаты (X, Y и Z) нужно будет создать отдельный канал. А один из параметров структуры IA выделить под указание, какой именно параметр по этому каналу передается, чтобы драйвер из всех трех значений этих каналов мог составить координаты для функции.
В одном канале передать это нельзя.

Сообщения / Posts 17083 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706


Icon 1 отправлено / posted      Профиль для / Profile for nizinkinD           Редактировать/удалить сообщение / Edit/Delete Post 
Спасибо.
Сообщения / Posts 32 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706


Icon 1 отправлено / posted      Профиль для / Profile for nizinkinD           Редактировать/удалить сообщение / Edit/Delete Post 
Добрый день!

1)
quote:

typedef union
{
unsigned char c[6];
unsigned short int i[3];
}IA;
\ia – шестибайтовое число, составленное из настроек канала I0 (слово), I1(слово), C2 (байт) и C3 (байт);

Интересно то, что эти настройки принимают только числа,символы не сохраняются.Зачем же тогда в объединении есть массив символов?
unsigned char c[6];

2) Так как даполнение к подтипу in_null наверное можно I0 , I1, C2 и C3 назначить произвольные для идентификации каналов?
Причем одновременно можно использовать только 3 настройки так как у нас есть всего 6 байт(если это максимум возможной длины).
Спасибо.

Сообщения / Posts 32 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706


Icon 1 отправлено / posted      Профиль для / Profile for nizinkinD           Редактировать/удалить сообщение / Edit/Delete Post 
Извините , с количеством настроек я переборщил [Улыбка / Smile]
Там все верно.

Сообщения / Posts 32 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
1) unsigned char - обозначает тип данных BYTE (1 байт), он не был никогда "буквенным символом".
Сообщения / Posts 17083 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706


Icon 1 отправлено / posted      Профиль для / Profile for nizinkinD           Редактировать/удалить сообщение / Edit/Delete Post 
Добрый день
code:
 

switch(ia.i[0])
{
case 1:
{
ChangeXYZ((int)v,0,0);
break;
}
case 2:
{
ChangeXYZ(0,(int)v,0);
break;
}
case 3:
{
ChangeXYZ(0,0,(int)v);
break;
}

}

Создал 3 канала .настройку I0 определил для каждого канала разную(1,2,3) срабатывает. перемещение только по оси Х(case 1)даже когда я посылаю значения в другие каналы.Тоже самое если заменить ia.i[0] на ia.i .Функция ChangeXYZ верна на 100%.
Как мне определять адреса наналов по настройкам и сравнивать их!!
Можно на моем примере.
спасибо.

Сообщения / Posts 32 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706


Icon 1 отправлено / posted      Профиль для / Profile for nizinkinD           Редактировать/удалить сообщение / Edit/Delete Post 
Добрый день.
Почему нельзя "различать" каналы по его имени??
Что нибудь вроде этого:
if(name=="name1")
{work1();}
if(name=="name2")
{work2();}

Сообщения / Posts 32 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
1) В какой функции производится проверка по switch()?
2) У нескольких каналов может быть одно и тоже имя.

Сообщения / Posts 17083 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706


Icon 1 отправлено / posted      Профиль для / Profile for nizinkinD           Редактировать/удалить сообщение / Edit/Delete Post 
1)f_write(char* name,IA ia,float v)
2)понял,но имена каналов разные,канал разве не передает имя параметру функции.
3)как "составляется адрес канала" из настроек i0,i1,c0,c1?
например i0=1,i1=0,co=0,c1=0 ia=??
или i0=1,i1=1,co=0,c1=0 ia=?
а так i1=1,i1=1,co=1,c1=0 ia=?

Хотя бы принцип поясните.

Сообщения / Posts 32 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
1) Нужен Ваш проект в ТМ, DLL и исходник. На E-mail техподдержки.
2) А если что-либо в проекте менять будете, то каждый раз перекомпилировать драйвер?
3) Обратите внимание, что структура IA - это UNION, поэтому за принципом его формирования рекомендую обратиться к литературе по программированию, там есть определение типу union.

Сообщения / Posts 17083 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706


Icon 1 отправлено / posted      Профиль для / Profile for nizinkinD           Редактировать/удалить сообщение / Edit/Delete Post 
1)шлю
2)вопросов нет
3)нет уж формирует адрес канала ТМ.Мне только нужно "выудить" его.Я уже перепробовал кучу вариантов.К примеру Я брал и ia.i ,и ia.c суммировал по всем значениям и эту сумму сверял с 1,2,3 ,в результате полылки значений разными каналами-срабатывает только канал с настройкой(i0=1).Непонятно.Может он там маски какие накладывает и т.п.
Вы можете ответить мне,как разработчики,на конкретный вопрос(тип-пустой,подтип-fast r/w):i0=1,i1=0,co=0,c1=0 ia=??
или i0=2,i1=0,co=0,c1=0 ia=??

спасибо.

Сообщения / Posts 32 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706


Icon 1 отправлено / posted      Профиль для / Profile for nizinkinD           Редактировать/удалить сообщение / Edit/Delete Post 
Проблема решилась [Улыбка / Smile]
Дело в том,что я кнопки привязывал в каналам(РПД)в настройках кнопки (Об,Кан,Атр),но реально канал указывается в кнопке "+" внизу. Конечно я виноват из-за своей невнимательности, но честно говоря это и ваш промах.Ненужные настройки путают.Топик закрыт.
Спасибо за помощь.

Сообщения / Posts 32 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

   Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2