Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

Как считать блок регистров (слов)?

SCADA, серверы, АРМ верхнего уровня, диспетчерские

Автор темы
kukovich
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 29 июл 2014, 08:01
Ф.И.О.: Шапошников Владимир Владимирович

Как считать блок регистров (слов)?

Сообщение kukovich » 21 авг 2014, 08:44

Здравствуйте. Использую OPC сервер Modbus RTU производства фирмы ИнСат. Опрашиваю БРЗиА Sepam 40. Необходимо считать таблицу состояний. Из мануала к блоку:

Структура первой таблицы событий:
- слово обмена 0040
- событие номер 1 0041...0048
- событие номер 2 0049...0050
- событие номер 3 0051...0058
- событие номер 4 0059...0060

Структура второй таблицы событий:
- слово обмена 0070
- событие номер 1 0071...0078
- событие номер 2 0079...0080
- событие номер 3 0081...0088
- событие номер 4 0089...0090

Ведущий должен обязательно считать блок из 33 слов, начиная с адреса 0040/0070 ИЛИ 1 слово с адреса 0040/0070.

Как я понимаю, мне необходимо использовать тип данных - string и указать "Количество байт для строкового типа".
Получается адрес я ввожу первого регистра 0040 и считаю кол-во байт = кол-во слов * 16 ???
И как понимать такое сообщение: "1 слово с адреса 0040/0070" ???
:ges_slap: :amazement: :affliction:


alex_ugrumov
почётный участник форума
почётный участник форума
Сообщения: 556
Зарегистрирован: 29 сен 2008, 16:05
Ф.И.О.: Алексей Угрюмов
Благодарил (а): 5 раз
Поблагодарили: 15 раз

Re: Как считать блок регистров (слов)?

Сообщение alex_ugrumov » 21 авг 2014, 16:18

напишите на support@insat.ru. Ответят в течении дня
Alex.


Автор темы
kukovich
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 29 июл 2014, 08:01
Ф.И.О.: Шапошников Владимир Владимирович

Re: Как считать блок регистров (слов)?

Сообщение kukovich » 21 авг 2014, 18:06

Спасибо. Попробую. Ответ выложу здесь.


Автор темы
kukovich
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 29 июл 2014, 08:01
Ф.И.О.: Шапошников Владимир Владимирович

Re: Как считать блок регистров (слов)?

Сообщение kukovich » 21 авг 2014, 19:42

Добрый день!
Можно так. Тип строки можно указать hex. И не 40, а 41. Судя по описанию регистр 40 для записи, и предназначен для управления журналом событий.
Вы хотите считать сразу все 4 события одним тегом? Возможно в вашем случае удобнее сделать 4 отдельных тега для каждого события - так будет легче разбирать на верхнем уровне.

Но судя по описанию необходимо еще вести управление журналом событий - квитировать считывание, и сбрасывать "Количество событий". Это можно реализовать при помощи встроенных в ОРС сервер скриптов.

С уважением,
Компания ИнСАТ
www.insat.ru
www.masterscada.ru
(495) 989-22-49


Автор темы
kukovich
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 29 июл 2014, 08:01
Ф.И.О.: Шапошников Владимир Владимирович

Re: Как считать блок регистров (слов)?

Сообщение kukovich » 21 авг 2014, 19:44

Поддержка не подкачала. Как всегда отозвались в минимальные сроки.
Осталось непонятным одно, почему решили, что необходимо квитировать считывание, и сбрасывать "Количество событий" ?


Автор темы
kukovich
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 29 июл 2014, 08:01
Ф.И.О.: Шапошников Владимир Владимирович

Re: Как считать блок регистров (слов)?

Сообщение kukovich » 22 авг 2014, 07:10

Квитирование таблицы событий
Для оповещения Sepam 1000+ o правильном приеме считанного им блока
ведущий должен записать в поле «Номер обмена» номер последнего
произведенного им обмена и должен установить на 0 поле «Количество
событий» слова обмена. После такого квитирования 4 события из таблицы
событий инициализируются на 0, а старые квитированные события в Sepam
1000+ стираются.
Пока слово обмена, записанное ведущим, не равняется «Х,0» (где Х = номер
предыдущего обмена, который ведущий хочет квитировать) слово обмена в
таблице остается на «Х, количество предыдущих событий».
Sepam 1000+ осуществляет приращение номера обмена только в случае
появления новых событий (Х+1, количество новых событий).
Если таблица событий пуста, Sepam 1000+ не осуществляет никаких
операций по считыванию ведущим таблицы событий или слова обмена.
Информация кодируется в двоичном разряде.

Кто-нибудь может подсказать как реализовать выше перечисленную задачу в редакторе скриптов?


Автор темы
kukovich
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 29 июл 2014, 08:01
Ф.И.О.: Шапошников Владимир Владимирович

Re: Как считать блок регистров (слов)?

Сообщение kukovich » 22 авг 2014, 17:41

Редактор скриптов использует язык lua. Кто сталкивался с данной средой помогите. посоветуйте хотя бы с чего начать.


Автор темы
kukovich
здесь недавно
здесь недавно
Сообщения: 34
Зарегистрирован: 29 июл 2014, 08:01
Ф.И.О.: Шапошников Владимир Владимирович

Re: Как считать блок регистров (слов)?

Сообщение kukovich » 02 сен 2014, 19:07

Спасибо. Будем разбираться. С Си не знаком, вообще далек от программирования, по роду работы, "пишу" только в FBD, LD если так можно выразиться.


Вернуться в «Верхний уровень автоматизации»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей