This is topic RWH TM7 Linux Red Os in forum TRACE MODE 7 бесплатная базовая версия / TRACE MODE 7 free basic version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/60/t/000065.html

Posted by Nikituny (Участник № / Member № 9588) on :
 
Здравствуйте, такой вопрос, необходимо создать внешний драйвер в системе Linux, в справке для разработки и подключения драйвера к МРВ используется создаваемая библиотека rwh.dll, как должна называться и как будет подключаться библиотека в линуксе? (и нужно ли вместе с этой библиотекой файлы с кодом помещать в папку с проектом МРВ). Драйвер самый обычный, просто прямо в коде привязать допустим v = 5, и вывести 5 в МРВ.
 
Posted by Nico (Участник № / Member № 5342) on :
 
- должна лежать где исполняемые файлы
- имя файла librwh_64.so
- данный вид драйвера должен использоваться
для быстрого обмена с устройством (без задержек );
- не желательно использовать внешние библиотеки
- он вызывается из основного потока TM и блокирует
его до возврата управления
- для написания драйверов обмена с устройством по
сети или последовательному интерфейсы необходимо
пользоваться t41/t12
 
Posted by Nikituny (Участник № / Member № 9588) on :
 
Спасибо
 
Posted by Nikituny (Участник № / Member № 9588) on :
 
#define RWHIS

#include "rwh_64.h"

#include <memory.h>


unsigned do_val[256];
float ao_val[256];
unsigned opt_val[256];

/*
Вызывается на старте
0 - ok
> 0 error
*/
int rwh_start()
{
memset(do_val, 0, sizeof(int) * 256);
memset(ao_val, 0, sizeof(float) * 256);
memset(opt_val, 0, sizeof(int) * 256);

return(-1);
}

/*
Вызывается на стопе
*/
void rwh_stop()
{
}

/*
Вызывается на старте
после вызова rwh_start()
для
типов
1.15 IN, 1.31 OUT
2.15 IN 2,31 OUT если канал FLOAT
*/
void rwh_aio_init(IA &ia)
{
}

/*
Вызывается на старте
после вызова rwh_start()
2.15 IN 2,31 OUT если канал HEX32
*/
void rwh_dio_init(IA &ia)
{
}
/*
далее для всех фукций код возврата =
0 - успешно недостоверность сбрасывается
> 0 - ошибка недостоверность устанавливается

<type>v - значение из 9 атрибута для записи
<type>v - считанное значение для передачи во вход канала
*/

/*
тип 2.15, 2.31
получается в IDE из AI_RWH
*/
int rwh_aio_write_i32(IA &ia,int v)
{
v = 5;
ao_val[ia.c[2]] = v;
return(0);
}

/*
тип 2.15
получается в IDE из DI_RWH залинкованного на FLOAT INPUT
*/
int rwh_aio_read_i32(IA &ia,int &v)
{
v= 6;

return(0);
}

/*
тип 2.31
получается в IDE из DO_RWH залинкованного на FLOAT INPUT
*/
int rwh_aio_read_i32_readback(IA& ia, int& v)
{
v = 7;
return(0);
}

Еще один вопрос, может я делаю что то не так, мне просто в МРВ нужно вывести значения привязанный к V, чтобы разобраться как это работает, в МРВ выводятся нули и все, скопировал библиотеку в папку с проектом, выводит нули  -
 -
 -
 
Posted by Nikituny (Участник № / Member № 9588) on :
 
 -  -  -
 
Posted by Nikituny (Участник № / Member № 9588) on :
 
https://disk.yandex.ru/d/zzJXPIEETG0b4A
https://disk.yandex.ru/i/OieKtPI1NHXYFQ
https://disk.yandex.ru/d/xuaGouXosA6O8A
 
Posted by Nico (Участник № / Member № 5342) on :
 
ответ на заданный вами вопрос был таким
- должна лежать где исполняемые файлы
- имя файла librwh_64.so
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
quote:
Отправитель / Originally posted by Nikituny:

Еще один вопрос, может я делаю что то не так, мне просто в МРВ нужно вывести значения привязанный к V, чтобы разобраться как это работает, в МРВ выводятся нули и все, скопировал библиотеку в папку с проектом, выводит нули

Здравствуйте.
Пользователь Nico дал ответы.
Библиотеки поместите в папку Среды Разработки (Монитора Реального Времени).
Проверьте название файлов библиотек.
 
Posted by Nikituny (Участник № / Member № 9588) on :
 
Меня интересовало, может есть какие то особенности при написании драйвера, или при его вызове в ТМ, может тип переменной указать надо и тд, или ai указать, или же базовый адрес поменять, может сам код драйвера не рабочий? вот что меня интересовало. На предыдущий вопрос да, я получил ответ
 
Posted by Nico (Участник № / Member № 5342) on :
 
- код рабочий( поскольку кода пара строк )
- если правильно скомпилировано и загрузился
то функции будут дергаться
 
Posted by Nikituny (Участник № / Member № 9588) on :
 
Извините конечно меня за мою глупость, но может есть какие то особенности в настройке каналов, ну вот я создал AI_RWH_1, ничего в нем не менял, перенес его в канал где находится экран, привязал к аргументу для вывода на экран, но ничего не выводится, может куда то надо подавать значение при работе с МРВ, что бы AI_RWH_1 активировался, или же нужно изменить тип аргумента, или настроить создание базового адреса, компилирую в QT creator
 
Posted by Nikituny (Участник № / Member № 9588) on :
 
Так, я понял в чем был мой косяк, теперь более точный вопрос, я в QT creator создал свой проект и загрузил туда код драйвера из примера, запустил его, у меня скомпилировалась библиотека, ее я загрузил в папку МРВ, но при запуске МРВ вылетает
QT -= gui

TEMPLATE = lib
DEFINES += RWH_64_LIBRARY

CONFIG += c++17

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
rwh_64.cpp

HEADERS += \
rwh_64.h

# Default rules for deployment.
unix {
target.path = /usr/lib
}
!isEmpty(target.path): INSTALLS += target
Вот код .pro у меня подозрения что в правилах для развертывания ошибка, что исправить нужно, подскажите пожалуйста, последний вопрос( проект создал в виндовс, чтобы легче ориентироваться, и загружаю тут же)
 
Posted by Nikituny (Участник № / Member № 9588) on :
 
Не правильно задал вопрос, если разбираетесь в Qt подскажите как правильно создать библиотеку, пожет пути какие то указать надо в .pro или в принципе надо как то по особенному настроить Creator, может есть руководство, или что-то еще на эту тему
 
Posted by Nico (Участник № / Member № 5342) on :
 
- (повторно)не желательно использовать внешние
библиотеки
- Qt creator это оболочка вокруг gcc
- конфигурирование оболочек, каких много
не относиться к вопросам о TM
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2