"народ не в состоянии разобраться в собственном коде, куда уж ему в конфигураторы смотреть."
это " из грязи в князи " попали, и теперь народ у вас ни в чем разобраться не может...
а не боитесь так рынок растерять?
Вид для печати
"народ не в состоянии разобраться в собственном коде, куда уж ему в конфигураторы смотреть."
это " из грязи в князи " попали, и теперь народ у вас ни в чем разобраться не может...
а не боитесь так рынок растерять?
просто я честен со своим народом. исходные тексты конфигураторов не помогут в решении ваших проблем.
тогда, раз взялись, то отвечайте на все вопросы, задаваемые на форуме.
или вы не берете во внимание, что работу с вашей аппаратурой начинают люди, порой далекие от ее использования? но с чего-то начинать надо...
а вы, я смотрю, "фильтруете" вопросы. на элементарные отвечать не будем, "чайникам" не отвечаем, неудобный вопрос "футболим" в другой раздел форума...
я отвечаю на вопросы, если вижу в этом какой-нибудь смысл. а в остальном вы меня с кем-то путаете.
скажите пожалуйста, господин философ!!!
конечно, для вас лично бессмысленно общаться с человеком, который планирует заказать пять комплектов ас4 + си-30 + мв110 8ас + мв110 8дф.
не тот масштаб!!!
конечно, я же не сотрудник компании овен.
????????????????
интересно девки пляшут!!!
что вас удивляет? мои бескорыстные ответы на вопросы?
да.
я тут в запарке принял вас за модератора и собрался катком наехать с разбегу. уж извините, если можно...
dimass18@gmail.com
Сбросьте мне, пожалуйста, примеры программирования приборов ТРМ138 на DELPHI
Кто-нибудь, подскажите, как диагностировать состояние COM-порта при работе с owen_io.dll в Delphi 7 ?
При первичном открытии никаких проблем: либо открылся, либо - нет. Но во время работы (круглосуточно, в течение длительного времени без участия человека) порт может исчезнуть из системы и вновь появиться, поскольку используется адаптер RS-232 -> RS-485 USB. Как бы в цикле опроса приборов организовать проверку того, что COM-порт доступен и, главное - открыт ?
Спасибо.
Доброе время суток. Поставлена задача реализовать передачу данных между прибором ТРМ 202 и ПК через RS-485 по протоколу ОВЕН. Реализация прокола взята http://owen.ru/forum/showpost.php?p=28717&postcount=33. Прибор изменяет настройки в соответствии с посылаемыми инструкциями, но при запросе на чтение параметров прибор не отвечает(индикатор "RS" загорается). Подскажите, пожалуйста, в чем может быть проблема.
Какой размер данных надо указывать при запросе на чтение параметра? Размер данных должен быть равен 0 или тому, какое количество байт должно прийти при ответе?
Пожалуйста напишите команду в НЕХ для опроса регистра 0003 (CEU) счётчика СИ30 .
Как это будет выглядеть в протоколе ОВЕН, ModbusRTU.
Спасибо!
Вношу свой вклад. Выкладываю простенький исходник для опроса устройств по MODBUS. Среда: Visual Studio 2010.
Всё прдельно просто. Хватит мучиться друзья. Надо только MScomm.ocx
А то все ищут, мучаются.
http://zalil.ru/30528513
Выложил: 18 февраля 2011
Сотрётся через 10 дней с последнего скачивания.
у кого есть примеры на делфи трм 138 ПК и ЧП ПК желательно для линукс
Добрый день!
Сбросьте мне, пожалуйста, примеры программирования приборов МВА8, и МДВВ для delphi.
Моя почта: mr.rail@mail.ru зарание благодарен.
Добрый день!
Со счётчиком СИ30 (по интерфейсу USB) в Delphi никто не работал? Если да, сбросьте пожалуйста примеры программ на мыло jarodbase@yandex.ru.
Заранее спасибо.
Люди добрые, если у кого-то есть пример работы с модулями МДВВ, и МВА8 с использованием протокола ОВЕН и библиотеки owen_io.dll написанный на delphi, поделитесь, пожалуйста. Мой e-mail: mr.rail@mail.ru
И со мной поделитесь примерами работы с модулями МДВВ, и МВА8 с использованием протокола ОВЕН и библиотеки owen_io.dll написанный на delphi, пожалуйста.
epe@udm.ru
Имеется несколько модулей ввода/вывода МК110, МУ110, МВ110. Модули объеденены в сеть RS-485 и сконфигурированы, нормально опрашиваются конфигуратором М110, через преобразователь АС4.
Обязательно ли использование библиотеки owen_io.dll для работы с модулями через AC4???
Ранее я писал программу на VB .NET для работы с контроллерами ADAM по протоколу DCON. Посмотрел руководства на модули, поменял соответственно передаваемые команды. Но с ОВЕН прога не работает, пробовал DCON, MODBUS, ОВЕН протоколы, смотрел снифером передаваемые команды конфигуратора М110 при опросе входов. От модулей ответа нет.
Вообще после установки драйвера AC4, я могу работать с появившимся COM3, как с обычным COM RS-232 или нет?
помогите пожалуйста решить проблему :confused:Код:1109 0.00000502 Mx110.exe IOCTL_SERIAL_GET_HANDFLOW Silabser2 SUCCESS
1110 0.00375355 Mx110.exe IOCTL_SERIAL_SET_BAUD_RATE Silabser2 SUCCESS Rate: 9600
1111 0.00001017 Mx110.exe IOCTL_SERIAL_SET_RTS Silabser2 INVALID PARAMETER
1112 0.00294542 Mx110.exe IOCTL_SERIAL_CLR_DTR Silabser2 SUCCESS
1113 0.00108344 Mx110.exe IOCTL_SERIAL_SET_LINE_CONTROL Silabser2 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
1114 0.00386592 Mx110.exe IOCTL_SERIAL_SET_CHAR Silabser2 SUCCESS EOF:1a ERR:0 BRK:0 EVT:d XON:11 XOFF:13
1115 0.00398516 Mx110.exe IOCTL_SERIAL_SET_HANDFLOW Silabser2 SUCCESS Shake:0 Replace:80000040 XonLimit:128 XoffLimit:128
1116 0.00297524 Mx110.exe IOCTL_SERIAL_CLR_RTS Silabser2 SUCCESS
1117 0.00001109 Mx110.exe IOCTL_SERIAL_SET_TIMEOUTS Silabser2 SUCCESS RI:2 RM:4 RC:100 WM:10 WC:500
1118 0.00294100 Mx110.exe IOCTL_SERIAL_PURGE Silabser2 SUCCESS Purge: TXCLEAR RXCLEAR
1119 0.00195705 Mx110.exe IOCTL_SERIAL_PURGE Silabser2 SUCCESS Purge: TXABORT TXCLEAR RXCLEAR
1120 0.00001246 Mx110.exe IOCTL_SERIAL_SET_WAIT_MASK Silabser2 SUCCESS Mask: RXFLAG BRK ERR
1121 0.00091432 Mx110.exe IRP_MJ_WRITE Silabser2 SUCCESS Length 14: #HPHGTMOHVIJH.
1122 0.04798078 Mx110.exe IOCTL_SERIAL_WAIT_ON_MASK Silabser2 SUCCESS
1123 0.00001404 Mx110.exe IOCTL_SERIAL_GET_COMMSTATUS Silabser2 SUCCESS
1124 0.00000144 Mx110.exe IRP_MJ_READ Silabser2 SUCCESS Length 30: #HPGOTMOHJKJOITJGJHJHKRKTNOVO.
Нащет ас4 после установки дров появившийся виртуальный com порт для програмиста ничем не отличаетса от реального а нащет работы с модульми на форуме вроде видел пример на си
Имеется прибор ТРМ251 с прошивкой версии V1.10 (базовый адрес 16)
для чтения с первого входа синтаксис команды снизу правильный?
ReadFloat24(16,0,'rEAD',val,-1);
Господа, очень нужна помощь. Никогда не приходилось работать с оборудованием компании ОВЕН (впрочем, как и с аналогичными приборами других компаний). Передо мной пославлена задача: необходимо передачу данных с прибора ТРМ202 в Excel. Нет ли у кого-нибудь похожего примера?
P.S. Я так понимаю, что надо настроить OPC-сервер, который выложен на сайте, выставить в нем и в ТРМ202 одинаковые параметры, а затем сохраненную конфигурацию как-то прикрутить к Excel (но как это реализовать я не знаю) Верно ли я думаю?
Заранее благодарен за любую помощь и советы.
Excel понимает файлы с расширением .csv, в котором поля разделяются точкой с запятой ";". Вам необходимо найти программу для ПК, которая по модбас будет брать данные из трм и складывать в такого типа файл.
прибор: трм251 (прошивка V1.10).
базовый адрес:16
скорость: 9600
биты данных: 8
стоп бит: 1
длинна адреса: 8
четность: нет
com-порт: №1
через АС3-М
пытаюсь в прибор послать команду "rEAd" и собственно получить результат.
Пишу в delphi 2010
у приборов ТРМ2хх с прошивкой 1.10 я так понял команда rEAd не требует индексации, надо послать -1..
первый вход имеет индекс "0", второй - индекс "1". Чтобы считать данные с первого входа, надо послать команду по адресу "адрес - 0".. Значит шлем по адресу 16.
имеем: ReadIEEE32(16,0,'rEAd',val,tm,-1);
Снизу привел свой код полностью... результат замера должен придти в компонент Edit1.
Получаю ошибку -104. И не понимаю что не так..
воспользоваться функцией LastErrToStr не могу.. Приходит какими-то квадратиками и иероглифами - не читаемо.Код:unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
// Определения четности (Без)
prty_NONE:integer=0;
// Определения количества Бит данных
databits_8:integer=1;
// Определения количества стоп Бит
stopbit_1:integer=0;
// Вид конвертора RS485 (Автоматический конвертор)
RS485CONV_AUTO:integer=1;
type
TProcOpenPort=function (n,speed,part,bits,stop,vid:DWORD):integer;stdcall;
TProcSetupPort=function (n,speed,part,bits,stop,vid:DWORD):integer;stdcall;
TProcClosePort=function :integer;stdcall;
TProcSetApiMode=function (n:DWORD):integer;stdcall;
TProcReadIEEE32=function (adr,adr_type:DWORD;command:pchar;var value:single;var time:integer;index:integer):integer;stdcall;
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
hLibInst:cardinal;
func_avail:boolean;
OpenPort:TProcOpenPort;
SetupPort:TProcSetupPort;
ClosePort:TProcClosePort;
ReadIEEE32:TProcReadIEEE32;
SetApiMode:TProcSetApiMode;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
hLibInst:=LoadLibrary('owen_io.dll');
if(hLibInst<>0)
then
begin
func_avail:=true;
OpenPort:=GetProcAddress(hLibInst,'OpenPort');
if(not Assigned(OpenPort)) then
begin
func_avail:=false;
exit;
end;
ClosePort:=GetProcAddress(hLibInst,'ClosePort');
if(not Assigned(ClosePort)) then
begin
func_avail:=false;
exit;
end;
SetupPort:=GetProcAddress(hLibInst,'SetupPort');
if(not Assigned(SetupPort)) then
begin
func_avail:=false;
exit;
end;
ReadIEEE32:=GetProcAddress(hLibInst,'ReadIEEE32');
if(not Assigned(ReadIEEE32)) then
begin
func_avail:=false;
exit;
end;
SetApiMode:=GetProcAddress(hLibInst,'SetApiMode');
if(not Assigned(SetApiMode)) then
begin
func_avail:=false;
exit;
end;
end
else
func_avail:=false;
end;
// ОТКРЫВАЕМ COM-ПОРТ #1
procedure TForm1.Button1Click(Sender: TObject);
var
op_succ:integer;
begin
if func_avail then
begin
SetApiMode(1);
op_succ:=OpenPort(0,2,0,databits_8,stopbit_1,RS485CONV_AUTO);
if (op_succ<>0) then
Application.MessageBox('Не удалось открыть порт', 'Ошибка!', MB_OK)
else
begin
SetupPort(0,2,0,databits_8,stopbit_1,RS485CONV_AUTO);
end;
end
else
Application.MessageBox('Не удалось открыть порт (функция!)', 'Ошибка!', MB_OK);
end;
// ЗАКРЫВАЕМ COM-ПОРТ #1
procedure TForm1.Button2Click(Sender: TObject);
var
cp_succ:integer;
begin
if func_avail then
begin
cp_succ:=ClosePort();
if (cp_succ<>0) then
Application.MessageBox('Не удалось закрыть порт', 'Ошибка!', MB_OK);
end
else
Application.MessageBox('Не удалось закрыть порт (функция!)', 'Ошибка!', MB_OK);
end;
// ПО ИДЕЕ ЧИАТЕМ С ПЕРВОГО ВХОДА ТРМ251
procedure TForm1.Button3Click(Sender: TObject);
var
iee:integer;
val:single;
tm:integer;
begin
iee:=ReadIEEE32(16,0,'rEAd',val,tm,-1);
Edit1.Text:=FloatToStr(val);
Edit2.Text:=IntToStr(iee);
end;
end.
если кто-то поможет новичку - буду рад.
Дамы и господа!!!
ОТВЕЧУ СЕБЕ САМ!!!
код, написанный мною для ТРМ 251 выше, работает!!!
При компиляции в Делфи 6, всё заработало!!! И даже LastErrToStr теперь не иероглифами, а русскими буквами!!!!!
я компилировал в Делфи 2010, ОС Виндовс севен 64 бита.
думайте дальше сами...
я слышал что в Делфи 2010 уникод... Из-за этого?
Моментальная помощь. Исходники. Настройка приборов. Написание программ. ICQ=5504929. mmmj83@mail.ru
если я хочу включить три прибора ТРМ151 с компьютера через команду из библиотеки овен, какая разница по времени включения будет между первым и третьим прибором? скорость порта 9600
В принципе протокол овен поддерживает широковещательные команды (адрес 0) т.е. теоретически одно моментно. Если для данной команды не поддерживется то разницу можно посчитать так - 2*(2+длина команды)/скорость.
Всем привет. Пришлите пожалуйста примеры программирования трм101 на делфях. Спасибо
k.a.solomatin@gmail.com
Кто-то кидал пример программирования на делфи для приборов фирмы Овен с использованием протокола owen. Я даже не знаю для какого прибора эта программка была написана)) Я разобрался более-менее и теперь опрашиваю ТРМ251 и ТРМ 151...
спасибо тому человеку.. Жаль ни имени, ничего не знаю..
+ необходимо скачать "описание библиотеки OWEN_IO"
а нельзя стремиться к поиску универсальности, например реализации модбас протокола? Чтоб не только овен, но и другими устройствами управлять
Можно всё, если оно тебе надо.
Лично я вообще инженер-технолог на заводе, который на уроке информатики в ВУЗе изучал написание калькулятора в делфи)))
Помню поставили цель считать данный с АЦП i7018p.. там протокол DCON. Я месяц провозился т.к. вообще с нуля начинал... Это порт открой в 8 строчек кода, команду пошли, ответ в цикле получи.. Данные с АЦП не идут, это еще пойми в чем дело... Программа в какую-то исключительную ситуацию попала, комп завис )) И т.д. и т.п.
После i7018p опрашивать ТРМы по протоколу ОВЕН одно удовольствие.. Всё в библиотеке есть.. Одной строкой порт открыл, одной командой измеренное значение считал... Если что-то не так, код ошибки получил.. Узнал в чем дело. Если стоит узкая задача и если работа с приборами не является твоей основной специальностью, "а тебя попросили" так скажем.. зачем изобретать велосипед и что-то усложнять
по визуальным наблюдениям разница по времени включения примерно 1 секунда, чуть больше.. Причем повышение скорости порта не сыграло особой роли..
Мне не удается реализовать вкл и выкл регулирования на 101трм'е.
Вроде как WriteWord за это отвечает, но что-то у меня не выходит.
Подскажите как это сделать?
Вы решили проблему?
Обновите ссылку на литературу, пож.