Регистрация | Последние сообщения | Персональный список | Поиск | Настройка конференции | Личные данные | Правила конференции | Список участников | Top 64 | Статистика раздела | faq | Что нового v.2.3 | Чат
Skunk Forum - Техника, Наука, Общество » АСУТП »
Вопросы по приборам фирмы Логика (страница 25)

Версия для печати (настроить)
Тема закрыта  Тема закрыта (Valera). Страницы: 1 2 3 4 5 6 7 8 9 10 13 16 19 20 21 22 23 24 25 26 27 28 29 30 31 34 37 40 43 44 45 46 47 48 49 50

Новая тема | Тема закрыта

Подписаться

Автор Тема:   Вопросы по приборам фирмы Логика
Hexen
Junior Member

Сообщений: 1
Откуда: Волгоград
Регистрация: Апрель 2010

написано 05 Апреля 2010 09:18ИнфоIP

Всем доброго времени суток!
Ребят, подскажите, что я неправильно делаю? При работе в СПСети ЧИТАЮТСЯ данные нормально, а при ЗАПИСИ в окне с массивами сообщение, что элемент успешно записан, а в маленьком окошке с конкретными элементами пишет НЕ ВВОДИТСЯ. Реально данные в прибор не пишутся.
Заранее, все спасибо.

Damin
Junior Member

Сообщений: 5
Откуда: Tashkent, Uzbekistan
Регистрация: Январь 2010

написано 05 Апреля 2010 14:57ИнфоIP

Доброго времени суток! Поделитесь исходниками на Дельфи для работы с СПТ-961 плизз, могу отблогадарит через webmoney если поможете решит проблему. bahodir-d.b@mail.ru

Добавление от 05 Апреля 2010 14:59:

Доброго времени суток! Поделитесь исходниками на Дельфи для работы с СПТ-961 плизз, могу отблагодарит через webmoney если поможете решит проблему. bahodir-d.b@mail.ru

Добавление от 05 Апреля 2010 15:29:

Доброго времени суток! Поделитесь исходниками на Дельфи для работы с СПТ-961 плизз, могу отблагодарит через webmoney если поможете решит проблему. bahodir-d.b@mail.ru

Volody
Junior Member

Сообщений: 1
Откуда: Уфа, Россия
Регистрация: Апрель 2010

написано 07 Апреля 2010 11:39ИнфоIP

Вопрос тем, кто пытался работать с приборами Логики по протоколу с маркерами под Windows через преобразователь RS232-RS485. Какие неразрешимые проблемы кроме быстрого переключения бита четности встали перед вами?

Volody
Junior Member

Сообщений: 2
Откуда: Уфа, Россия
Регистрация: Апрель 2010

написано 09 Апреля 2010 07:32ИнфоIP

Для тех кто бъется над получением данных с приборов фирмы ЛОГИКА через магистральный 9-битовый протокол с маркерами есть хорошая новость. Получен результат на Delphi под Windows с использованием переходника RS232-RS485. Если кого нибудь интересует могу поделиться кодом.

Valera
Member

Сообщений: 1542
Откуда: novosibirsk
Регистрация: Май 2004

написано 09 Апреля 2010 08:14ИнфоIP

Volody
+1, написал в личку

kastello777
Junior Member

Сообщений: 1
Откуда: Сосногорск, Россия
Регистрация: Апрель 2010

написано 09 Апреля 2010 14:02ИнфоIP

Volody вышли пожалуйста исходники на kastello777@rambler.ru

Volody
Junior Member

Сообщений: 3
Откуда: Уфа, Россия
Регистрация: Апрель 2010

написано 09 Апреля 2010 22:02ИнфоIP

Отвечаю здесь, ибо каждому потом рассылать тяжело будет:
Для работы с COM-портом использую компоненты Async Professional 4.05 от TurboPower Software Company.

Вкратце опишу алгоритм для моего случая (В моем случае один прибор с адресом 00, адрес компьютера 01).
1. Ждем маркера освобождении линии. Маркер $FF $40
2. Кидаем маркер в линию. Маркер $FF $20 (в обоих байтах бит четности включен.)
Comport.Parity:=pMark;
BufferOut[0]:=$FF;
BufferOut[1]:=32 + DAD;//Захват магистрали, для передачи сообщения для адресата DAD;
ComPort.PutBlock(BufferOut,2);

3. Ждем ответа от прибора, что он готов принять посылку. Маркер $FF $60
4. Посылаем пакет с запросом
procedure TForm1.AskValue(TubeNum, ParamNum: integer);
var
crcz:smallint;
Str_:String;
i:integer;
procedure AB(ByteValue:Byte);//AddToBufferOut;
begin
BufferOut[BOPos]:=ByteValue;
INC(BOPos);
end;
begin
//заголовок
AB($10);//DLE
AB($01);//SOH = 01h - начало заголовка
if CB_Magistral.Checked then
begin
AB($00);//DAD = 00 - байт адреса приемника
AB($01);//SAD = 01 - байт адреса источника
end;
AB($10);//DLE
AB($1F);//IS1 = 1Fh - указатель кода функции FNC
AB($1D);//FNC - байт кода функции //3.5 Чтение параметров

AB($10);//DLE
AB($02);//STX = 02h - начало тела сообщения
AB($09);//HT

Str_:=IntToStr(TubeNum);
AB(ORD(Str_[1]));//Потребитель
AB($09);//HT
Str_:='';
if paramNum<1000 then
Str_:='';
if paramNum <100 then
Str_:='0';
if paramNum <10 then
Str_:='00';
Str_:=Str_+IntToStr(paramNum);
AB(ORD(Str_[1]));
AB(ORD(Str_[2]));
AB(ORD(Str_[3]));
//BufferOut[12]:=ORD(Str_[3]);
AB($0C);//FF

AB($10);//DLE
AB($03);//ETX = 03h - конец тела сообщения

crcz:=crc(BufferOut,BOPos);
AB(hi(crcz));// CRC1 - циклические контрольные коды
AB(lo(crcz));// CRC2 - циклические контрольные коды
ComPort.Open:=True;

//Перед сообщение выводим флагбайт;
Comport.Parity:=pMark;
BufferOut2[0]:=255 ;
ComPort.PutBlock(BufferOut2,1);
Memo2.Lines.Add('Послали флагбайт');
Comport.Parity:=pSpace;
ComPort.PutBlock(BufferOut,BOPos);
Memo2.Lines.Add('Запросили параметр '+IntToStr(ParamNum)+' с узла учета '+IntToStr(TubeNum));
FreeMagistral(01);

5. После этого обычно счетчик думает некоторое время, даже иногда посылает в линию маркер освобождения линии $FF $40.
6. Получаем маркер захвата линии, для передачи сообщения от прибора к нам. $FF $21.
7. Выводим в линию маркер подтверждения. $FF $61. Здесь одна закавыка, в первом байте маркера должен быть включен бит четности, во втором отключен. Как это добиться? А вот как: включаем режим четности pEven. Тогда в первом байте бит четности будет включен. А для того, что бы во втором байте бит четности был выключен, надо сделать так, что бы четность была нечетной по байту, точнее, это накладывает ограничение на адрес прибора (т.е. битовое представление адреса прибора должно содержать нечетное кол-во единичек).
Comport.Parity:=pEven;
BufferOut[0]:=$FF;
BufferOut[1]:=$60+1;//маркер подтверждения, 1'- это наш адрес
ComPort.PutBlock(BufferOut,2);

Вот еще расчет контрольной суммы:
function crc(PB:array of byte ; len:integer):smallint;
var
i,j:integer;
crcz:smallint;
begin
crcz:=0;
for i:=2 to len-1 do
begin
crcz := crcz xor (PB[i]shl 8);
for j:=1 to 8 do
if (crcz and $8000)<>0 then
crcz := (crcz shl 1) xor $1021
else
crcz := crcz shl 1;
end;
crc:=crcz;
end;

вот протокол обмена:
Receive:
[FF][40] Прибор с адресом 0 освобождает линию

Transmit:
[FF][20] Мы захватываем линию для передачи сообщения адресату 0

Receive:
[FF][60] Прибор с адресом 0 готов принять сообщение

Transmit:
[FF][10][01][00][01][10][1F][1D][10][02][09][31][09][31][35][30][0C][10][03]
[D1][11][FF][41] Это собственно сообщение

Receive:
[FF][40] Прибор с адресом 0 освободил линию
[FF][21] кто-то имеет для нас сообщение (для адресата 1)

Transmit:
[FF][61] посылаем сообщение, что мы готовы принять данные

Receive:
[FF][10][01][01][00][10][1F][03][10][02][09][31][09][31][35][30][0C][09][32]
[33][36][36][2E][35][09][AC][33][2F][E7][0C][10][03][DA][EC][FF][40] Сообщение

Вот собственно и все.

Добавление от 09 Апреля 2010 22:06:

procedure TForm1.FreeMagistral(SAD:Byte);
begin
Comport.Parity:=pMark;
BufferOut[0]:=255;
BufferOut[1]:=64+1;//Отказ от захвата магистрали; 1-это наш адрес
ComPort.PutBlock(BufferOut,2);
Memo2.Lines.Add('Освободили магистраль');
Comport.Parity:=pEven;//что бы потом сразу послать маркер подтверждения
end;

[Это сообщение изменил Volody (изменение 09 Апреля 2010 22:24).]

KateNova
Junior Member

Сообщений: 1
Откуда: RF, SPb
Регистрация: Май 2010

написано 11 Мая 2010 15:12ИнфоIP

Добрый день!
Нужна помощь, надеюсь, вопрос по адресу..
у одного из наших клиентов сломался теплосчетчик ЛОГИКА СПТ 961.
Есть новый аналогичный прибор, его нужно заменить, настроить, ввести базу данных. Наш человек, который этим занимается, сильно подвел, а у организации-клиента - неработающий тепловычислитель и решать вопрос нужно быстро. Может быть бы сможете нам помочь или порекомендовать кого-то для проведения этих работ? В идеале нужно разобраться с тепловычислителем, а также установить удаленное соединение через модем (оборудование пока не покупали).. г. Санкт-Петербург
координаты kaa-m@mail.ru
skype: katenovase
Заранее спасибо!

[Это сообщение изменил KateNova (изменение 11 Мая 2010 16:00).]

Volody
Junior Member

Сообщений: 4
Откуда: Уфа, Россия
Регистрация: Апрель 2010

написано 11 Мая 2010 17:36ИнфоIP

Увы, я нахожусь в Уфе, а вы в Питере. Думаю у Вас там должно быть полегче с этим, все таки "ЛОГИКА", это Питерская контора.

KateNova
Junior Member

Сообщений: 2
Откуда: RF, SPb
Регистрация: Май 2010

написано 12 Мая 2010 00:21ИнфоIP

увы..

gecrfntkm
Junior Member

Сообщений: 3
Откуда: Россия
Регистрация: Май 2010

написано 27 Мая 2010 17:48ИнфоIP

<a href=http://gecrfntkm.livejournal.com/?skip=1>вот сайт</a> - Таких схем я никогда не вид не видел.

Denissimo
Junior Member

Сообщений: 1
Регистрация: Май 2010

написано 30 Мая 2010 01:46ИнфоIP

VladimirK

Нуждается в реализации вынужденная по ряду причин связка 'СПГ761(6 штук)->
RS485(одна линия)->АПС79->LogikaOPC->TraceMode6<->MSSQL2005'


stored(собака)яндекс точка ру
Владимир, просьба, скиньте мне вашу почту, есть вопросы, поможете?

VladimirK
Junior Member

Сообщений: 5
Откуда: NN
Регистрация: Декабрь 2009

написано 01 Июня 2010 08:33ИнфоIP

цитата:
Denissimo писал:
VladimirK

Нуждается в реализации вынужденная по ряду причин связка 'СПГ761(6 штук)->
RS485(одна линия)->АПС79->LogikaOPC->TraceMode6<->MSSQL2005'


stored(собака)яндекс точка ру
Владимир, просьба, скиньте мне вашу почту, есть вопросы, поможете?


Добрый день!
Всегда готов помочь.
Но поскольку не считаю себя каким-то эксклюзивным ни по ТМ, ни по Логике, предлагаю тебе задать вопросы здесь, на форуме. Подключатся другие участники, поможем всем миром.

Если проблемы в ТМ - советую обратиться, хотя бы параллельно, в их СТП. Это же их детище, собаку съели.

Denissimo
Junior Member

Сообщений: 2
Регистрация: Май 2010

написано 07 Июня 2010 15:53ИнфоIP

Ок, согласен обсуждать вопросы здесь.

Был я на их форуме, там нет должных ответов на подобные случаи, меня больше интересуют ответы людей, которые непосредственно работали с ТМ, и пытались хоть как-то общаться через ТМ с Логикой.

Никогда ранее не работал с ТМ, поэтому по началу очень тяжко.

Недавно разобрались как забирать некоторые значения параметров из ОРС-сервера Логики в ТМ (например параметр 125т1н00): источники/приёмники->канал FLOAT->атрибут текстового поля на экране с типом атрибута REAL, формат отображения текста Generic.

Разобрались как считывать значение часиков с приборов (параметр 061): источники/приёмники->канал TIME атрибут "только время в формате ОС"->атрибут текстового поля на экране типа TIME, формат отображения текста Generic.

не смог вывести на экран значение параметра 003. Его значение в виде последовательности цифр длиной 10 знаков. Например, значение параметра 003 одного из моих приборов = 1050002024. Когда пытаюсь его прогнать через канал FLOAT либо Double Float с типом атрибута текстового поля REAL и форматом отображения текста INTEGER (потомучто по другому совсем не то получается), то получаю результат 1050002048, я не просил последние две цифры умножать в два раза!!!

И ещё два момента: После того как отработаем вышеперечисленные вещи, перейдём на обсуждение и освоение чтения архивных данных из приборов с возможностью выборки по времени. Далее будем учиться откладывать все эти данные в базу данных MS SQL 2005 SP3.

Ну как вам план обсуждения? Неплохо. Времени у меня меньше чем у вас, где-то за месяца два надо поставить на ноги систему учёта газа на одной из ГРЭС. Приборы уже установлены в количестве 6 штук (17 точек учёта), посажены на одну шину и притянуты к компьютеру через АПС79.

Заранее благодарен ответившим содержательно и по теме))

Damin
Junior Member

Сообщений: 6
Откуда: Tashkent, Uzbekistan
Регистрация: Январь 2010

написано 08 Июня 2010 08:29ИнфоIP

А все таки есть тут кто у кого работает проект через драйвер

Denissimo
Junior Member

Сообщений: 3
Регистрация: Май 2010

написано 08 Июня 2010 10:54ИнфоIP

Я параллельно, помимо ОРС-сервера хочу опробовать метод обмена данными через драйверы, потом уже выбрать наилучший способ - либо драйвер, либо ОРС-сервер. Пока у меня не получилось запустить драйвер, проблема в следующем: правлю файл .cfg с учётом таймаута поднятия архивов ", 5000". копирую файлы библиотек в папку среды IDE и в папку среды RTM. запускаю демопроект в RTMе и у меня виснет на этом шаге среда выполнения. Что я делаю не так, незнаю.

Damin
Junior Member

Сообщений: 7
Откуда: Tashkent, Uzbekistan
Регистрация: Январь 2010

написано 10 Июня 2010 09:43ИнфоIP

Ура запустил демо-проект Логики и через драйвер (то есть на прямую) считал данные. Теперь бьюсь над поднятием архива.

буду рад любой подсказке.

Denissimo
Junior Member

Сообщений: 4
Регистрация: Май 2010

написано 10 Июня 2010 09:49ИнфоIP

Да, я тоже запустил драйвер наконец, как оказалось, в предыдущих неудачных попытках были ошибки то с соединением, то я вписывал таймаут на поднятие архивов в конфигурационном файле драйвера, о котором говорили здесь на форуме. Эту настройку драйвер не понимает и поэтому подвешивал RTM при запуске проекта и ничего дальше не шло. Сегодня расписал для себя настройки из демо-проекта (как настроены источники, каналы и атрибуты на экране). Буду пытаться самостоятельно экспериментировать. Отпишусь потом.

Добавление от 10 Июня 2010 09:50:

Больше никого на форуме нет кажись, мы опоздали, уже никто наверное не использует ТМ для связи с приборами НПФ Логика))

Valera
Member

Сообщений: 1617
Откуда: novosibirsk
Регистрация: Май 2004

написано 10 Июня 2010 11:14ИнфоIP

Denissimo
уже никто наверное не использует ТМ для связи с приборами НПФ Логика))
Может, здесь нужно говорить 'ещё не используют'.
Народ с этим сюда на форум заходил, бодро и быстро решал проблемы под ОПС,это да. Но итого никто не потрудился описать, и это уже пять))
Логики глюкают-с. Получают запрос и попросту его не выполняют, а то и вовсе вылетают из протокола RS485BUS на минуту-другую. И поэтому все (какие я знаю) решения, реально работающие с теми приборами, - самописные, и есть более-менее удачная разборка и разруливание этих глюков. ОПС от ТМ(она же от МастерСкада) с этим справляется никак, или кое-как. Прямые драйверы - не знаю,только проверил факт работы.
Но всяко в ТМ тех алгоритмов не поднять, - перезапросы по тайм-ауту, перезапросы по диагностическим сообщениям прибора и пр.пр.
Да и гоблинство это, требовать программистких извратов в SCADA-системе по глюкам ПО девайса)
- поэкспериментируйте с синхронизацией на системное время приборов из ТМ)
- со сбросом на MsSQL результатов, которых не получено, но нет никаких baddata))
Логика выпустила приборы нового поколения, может там проблема решена?

Denissimo
Junior Member

Сообщений: 5
Регистрация: Май 2010

написано 10 Июня 2010 16:46ИнфоIP

Мы на столе сейчас разложили приборы пятого поколения, но пока мало о глюках известно нам, пока не напоремся)) С БД пока ни разу не работали, будем пробовать, как разберёмся как правильно читать архивы и хотя бы отобразим их. С синхронизацией есть маленький вопросик - ОРС-сервер от Логики каким образом синхронизирует время - какой параметр он корректирует. Такое ощущение, что он это делает по двадцатым параметрам, что немного будоражит меня, можно ли так делать, когда прибор в режиме коммерческого учёта, и какие последствия? Ведь 020 и 021 параметры предназанчены для того, чтобы рассказать о том, когда прибор пустили в эксплуатацию.

KillJoy
Junior Member

Сообщений: 1
Регистрация: Июнь 2010

написано 11 Июня 2010 09:04ИнфоIP

Добрый день.
Пытаюсь связать СПТ961.2 и адаптер АДС97. Настроил параметры 003, 004, 038 но не вижу никаких данных с этого адаптера..
Кто-нибудь смог настроить такую связь? Если можно, скиньте пошаговую инструкцию, поскольку логиковские мануалы отличаются крайней расплывчатостью.

В руководстве сказано, что с помощью программ Технолог и Database можно записывать конфигурационные параметры в адаптер, но я не нашел такой возможности.

Страницы: 1 2 3 4 5 6 7 8 9 10 13 16 19 20 21 22 23 24 25 26 27 28 29 30 31 34 37 40 43 44 45 46 47 48 49 50

Все время MSK

Открыть | Переместить | Удалить

Новая тема | Тема закрыта
Последние сообщения         
Перейти к:

Свяжитесь с нами | skunksworks.net

Copyright © skunksworks.net, 2000-2018

Разработка и техническая поддержка: skunksworks.net


Рейтинг@Mail.ru Яндекс.Метрика