![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 19.11.2012
Сообщений: 4
|
![]()
Здесь клиент SCADA Tracemode посылает запрос на сервер "RX from SCADA port" и получает ответ от сервера "TX from SCADA port"
Реальный запрос и ответ выглядят так На сервер приходит запрос от SCADA по протоколу modbus Rx from Scada port 64006 1A 00 00 00 00 06 02 04 00 04 00 01 Cервер высылает ответ TX from Scada port 64006 1A 00 00 00 00 05 02 04 04 00 E2 где E2 это к примеру значение с датчика. Код:
|
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Во-первых: Неужели у тебя нет ОРС сервера для твоего девайса? Или хоть маломальского провайдера, драйвера т.д.? Не может такого быть, чтоб девайс был без ПО вообще. Мануалы что пишут?
Во-вторых: Тот дамп что ты представил - это ведь поток байт, уже переведенный в 16-тиричку заботливым сниффером, или девайсина вот прямо так и передает в виде текста?
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 19.11.2012
Сообщений: 4
|
![]()
OPC сервера нету,По писалось от руки вообще))и сдавалось заказчику ,некакой документации нету.До сих пор даже при эксплуатации сервера вылетает ошибка acess violation. Суть примерно такова . Имеется данный сервер . Имеются терминалы(клиенты)к который подключены датчики давления.Посылки от терминалов передаются по каналу GSM /GPRS на сервер.Каждая посылка имеет свой Код.Код 22 означает ,что данные пришедшие на сервер записывались бы в Базу данных.А посылка имеющая код 25 -это мгновенные значения с терминалом-Она бы отправлялась в SCADA на визуализацию. Посылка от терминала имеет такой вид
На сервер от терминала приходит посылка вида 08:31:35 812 from Terminal:45 00 50 13 00 22 31 07 DC 0B 16 08 1F 04 00 00 00 00 E2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.....Где (22) код посылки,07-04 время, E2 значение с датчика |
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Т.е. по факту тебе приходит не массив байт а именно строка, которую и нужно разбирать, верно?
I'm learning to live...
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 19.11.2012
Сообщений: 4
|
![]()
да,вот код сервера на принятие данных от терминала(клиента.)Мне нужно сделать чтобы посылка с code 25 , уходила в SCADA а с code 22 писалась бы в базу данных.
Код:
|
![]() |
![]() |
![]() |
#6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Я могу предложить тебе только одно:
Сделай переменку типа TStringList. и приходящую строку засовывай в ее свойство DelimidetText. Тогда ты получишь массив слов, которые в строке разделены были пробелом. Соответственно [9] элемент даст строку 22. Это 16-ричная версия числа, которое в нормальное число (байт если хочешь) можно перевести функцией StrToInt('$'+этот самый элемент); Код:
Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 19.11.2012
Сообщений: 4
|
![]()
Спасибо)будем разбираться
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
...и что, в скаде нет поддержки Modbus?
![]()
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Инъекция своего кода в чужое приложение. | Denutrror | Общие вопросы Delphi | 2 | 05.11.2012 15:03 |
Пишем VBS-приложение для преображения кода VB [статья] | dab00 | JavaScript, Ajax | 10 | 06.10.2012 17:14 |
Delphi приложение | Homadrom | Фриланс | 3 | 12.05.2012 13:46 |
статья - Пишем VBS-приложение для преображения кода VB | Pblog | Обсуждение статей | 0 | 23.12.2011 17:00 |
Приложение Delphi | RuVarez | Общие вопросы Delphi | 6 | 03.09.2010 13:23 |