пятница, 27 мая 2016 г.

Отправка произвольных команд счетчикам PLC II

 

Отправка произвольных команд счетчикам в PLC II системе может осуществляться через основные программы BQuark и NetMonitor



В программе Net Monitor  для передачи произвольных команд предназначена вкладка  "М-23х" ("М-20х")   попасть на которую можно кликнув по иконке интересующего счетчика и выбрав пункт контекстного меню "Управление узлом"
 


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

В программе BQuark, команду необходимо вписать в файл задания, и сделать это необходимо следующим образом. Команда пишется для конкретного счетчика (MAILBOX)  в контейнере SEGMENT   в виде значения для свойства REQ,  в hex формате. Сами команды публиковались ранее в предыдущих статьях здесь и здесь

Код файла задания, например для включения встроенного реле в однофазнике с доп командой имитации нажатия кнопок,  будет выглядеть следующим образом:

OBJECTS
       TYPE=PLC_II_CONCENTRATOR; ADDR=3001
               TYPE=MAILBOX; ADDR=00703581; PROTOCOL=M-200
                       TYPE=SEGMENT; REQ=71FF

                       TYPE=SEGMENT; RUN=715A


в приведенном коде, команды 71 FF  и   71 5A, которые указаны как значения свойства  REQ,
будут переданы по очереди счетчику  с номером 00703581.

Другой пример. Команда на чтение состояния встроенного реле - 6D

OBJECTS
       TYPE=PLC_II_CONCENTRATOR; ADDR=3001
               TYPE=MAILBOX; ADDR=00703581; PROTOCOL=M-200
                       TYPE=SEGMENT; REQ=6D

Счетчик в ответ на эту команду вернет нам два байта, первый из которых будет сама команда, второй - состояние реле, но программа BQuark не сможет отобразить ответ счетчика в своей таблице. В таблице она отображает (может интерпретировать) только те данные, которые поддерживает. Они перечислены в справке программы:


SET_TIMEDATE

Запрос установки часов/календаря счётчика по часам/календарю концентратора:
RUN=SET_TIMEDATE
GET_TIMEDATE
Запрос чтения показаний часов/календаря счётчика:
RUN=GET_TIMEDATE
GET_ENERGY
Запрос чтения потреблённой энергии:
RUN=GET_ENERGY
GET_ENERGY/D
Запрос чтения потреблённой энергии на начало текущих суток (только для однофазных счётчиков:
RUN=GET_ENERGY/D
GET_ENERGY/M
Запрос чтения потреблённой энергии на начало текущего месяца (только для однофазных счётчиков, требуется ежемесячная перезагрузка запроса):
RUN=GET_ENERGY/M
GET_ENERGY.XXX/D
GET_ENERGY.XXX/M
Запрос чтения потреблённой энергии на начало суток и месяца (только для трёхфазных счётчиков)
Вместо XXX следует подставить:
SUM, T1, T2, T3 или T4
RUN=GET_ENERGY.SUM/D
RUN=GET_ENERGY.T4/M
GET_POWER
Запрос чтения текущей мощности потребления:
RUN=GET_POWER
RELAY_OFF
Отключить нагрузку:
RUN=RELAY_OFF; SINGLE=YES
RELAY_ON
Разрешить ручное включение нагрузки:
RUN=RELAY_ON; SINGLE=YES
GET_RELAY_STATE
Прочитать текущее состояние нагрузки:
RUN=GET_RELAY_STATE

Другие данные придется интерпретировать самостоятельно. Для этого во вкладке "Задание" или в самом файле задания, предварительно открыв его в текстовом редакторе, находим параметр ANS (ответ) у интересующего счетчика и интересующей команды. Интерпретируем.ответ в соответствии  с описанием протокола. В нашем случае ответ 6D FF - означает что реле включено.

 

Комментариев нет:

Отправить комментарий