\section*{Введение}

Реализованы следующие функции ТУ (запрос \href{http://scm-serv:8080/browse/BUC-5694?jql=text%20~%20%22%D0%A2%D0%B5%D0%BB%D0%B5%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20Modbus%22%20AND%20assignee%20in%20(e.soloukhin)}{BUC-5694}):
\begin{itemize}
	\item 05 (0x05) -- запись значения одного флага (Force Single Coil). Команда состоит из адреса элемента (2 байта) и устанавливаемого значения (2 байта).
	Для регистра хранения значение является просто 16-битным словом.
	Для флагов значение 0xFF00 означает включённое состояние, 0x0000 — выключенное, другие значения недопустимы.
	Если команда выполнена успешно, ведомое устройство возвращает копию запроса.
	\item 15 (0x0F) -- запись значений в несколько регистров флагов (Force Multiple Coils).Команда состоит из адреса элемента, количества изменяемых элементов, количества передаваемых байт устанавливаемых значений и самих устанавливаемых значений. Данные упаковываются так же, как в командах чтения данных.
	Ответ состоит из начального адреса и количества изменённых элементов. 
\end{itemize}

\section{Проверка лицензии на максимально допустимое число модулей и каналов учета}

Количество каналов учета в ARIS может быть ограничено. Для простмотра этих ограничений необходимо перейти в меню <<Система>> и выбрать пункт меню <<Информация>>. Далее следует выбрать вкладку <<Лицензия>> (Рисунок \ref{fig:aris_license_maxuspd}).

\begin{figure}[H]
\centering
\includegraphics[width=0.7\linewidth]{images/aris_license_maxuspd}
\caption{Страница лицензии ARIS}
\label{fig:aris_license_maxuspd}
\end{figure}

\begin{itemize}
	\item <<uspdMaxChan>> -- максимально возможное число каналов учета (в данном случае 20).
	\item <<uspdMaxMod>> -- максимально возможное число модулей учета (в данном случае 5).
\end{itemize}

\section{Конфигурирование ARIS}

Создать клиент врутренних сигналов (виртуальный, Virtual). В клиент добавить следующие каналы для услоивия ТУ включить и ТУ отключить. Для каналов следует установить подстановку (Рисунок \ref{fig:config_virtual}).

\begin{figure}[H]
\centering
\includegraphics[width=0.7\linewidth]{images/config_virtual}
\caption{Конфигурация виртуальных каналов ТУ включить и ТУ отключить}
\label{fig:config_virtual}
\end{figure}

В клиенте виртуальных каналов создать команду ТУ. В настройках команды указать модули дискретного вывода, номер реле и условия включения и отключения (Рисунок \ref{fig:config_command}).

\begin{figure}[H]
\centering
\includegraphics[width=0.7\linewidth]{images/config_command}
\caption{Настройка команды ТУ в ARIS}
\label{fig:config_command}
\end{figure}


Необходимо перейти в меню <<Учет>>, где выбрать пункт <<Конфигуратор учета>>.
<<Адрес>> -- Адрес устройства Modbus.

\begin{figure}[H]
\centering
\includegraphics[width=0.3\linewidth]{images/config_ACcount}
\caption{Конфигурация учета}
\label{fig:config_ACcount}
\end{figure}


Перейти в пункт <<COM-порты>>
Нажать кнопку <<Добавить>> -- отобразится выпадающее меню <<COM-порт>>, следует выбрать <<Виртуальный порт>> (Рисунок \ref{fig:aris_web_uspd_addvirtualport}).

\begin{figure}[H]
\centering
\includegraphics[width=0.7\linewidth]{images/aris_web_uspd_addvirtualport}
\caption{Меню учет. Создание виртуального порта}
\label{fig:aris_web_uspd_addvirtualport}
\end{figure}


При выборе порта отображаются его настройки
в настройках следует указать:
\begin{itemize}
	\item <<Тип порта>> -- Modbus TCP.
	\item <<Порт IP>> -- TCP-порт (по стандарту 502).
\end{itemize}

Выбрать пункт дерева настроек <<Модули>>. Нажмите кнопку <<Добавить>>, отобразится выпадающее меню <<Выберите модуль>>. Необходимо выбрать модуль <<TM-Base>>. В ветке дерева настроек <<Модули>> появится модуль <<TM-Base>> (Рисунок \ref{fig:airs_add_module}).

\begin{figure}[H]
\centering
\includegraphics[width=0.7\linewidth]{images/airs_add_module}
\caption{Добавление модуля учета}
\label{fig:airs_add_module}
\end{figure}

Нажать на кнопку <<Добавить все каналы модуля>>. Будут добавлены все каналы модуля, лишние каналы лучше удалить, чтобы не превышать число максимально разрешенных.

Каналы ТУ будут отображаться в дереве <<Дискретные выходы УСО>> и будут иметь вид типа <<L<порядковый номер><наименование канала в трансляции> >> (Рисунок \ref{fig:config_ACcount}).

Для определения адреса регистра канала в Modbus необходимо использовать файл <<Расчет адресов Modbus.xls>>.

\section{Проверка выдачи ТУ}

В данном примере для выдачи команд ТУ используется программа <<Modbus Poll>> (Рисунок \ref{fig:modbus_poll}).

\begin{figure}[H]
\centering
\includegraphics[width=0.7\linewidth]{images/modbus_poll}
\caption{Общий вид окна программы}
\label{fig:modbus_poll}
\end{figure}


В меню <<Connection>> выбрать пункт <<Connection>> (Рисунок \ref{fig:modbus_poll_connect}) и нажать <<ОК>>. Начнется опрос устройства (ARIS), счетчик <<Tx>> будет инкрементироваться. При корректном соединении не должны выдаваться ошибки. Но скорее всего соединение не установится.

\begin{figure}[H]
\centering
\includegraphics[width=0.4\linewidth]{images/modbus_poll_connect}
\caption{Modbus Poll. Настройки соединения}
\label{fig:modbus_poll_connect}
\end{figure}

Перейти в меню <<Setup>> и снять галку с <<Read/Write Enabled>> -- это остановит опрос устройства (при этом счетчик <<Tx>> перестанет инкрементироваться).

Для выдачи команды ТУ необходимо перейти в меню <<Functions>> и выбрать пункт <<05: Write Single Coil...>>. 

\begin{figure}[H]
\centering
\includegraphics[width=0.4\linewidth]{images/modbus_poll_writesinglecoil}
\caption{Выдача команды ТУ}
\label{fig:modbus_poll_writesinglecoil}
\end{figure}

\begin{itemize}
	\item <<Slave ID:>> -- адрес устройства.
	\item <<Address>> -- адрес регистра для ТУ.
	\item <<Value>> -- значению <<On>> соответствует 0xFF00, значению <<Off>> соответствует 0x0000.
\end{itemize}

По умолчанию выбрана функция <<05: Write single coil>>
Для выдачи команды необходимо нажать кнопку <<Send>>.

Для просмотра трассировки обмена необходимо перейти в меню <<Display>> и выбрать пункт <<Communication>>. Пример трассировки обмена показан на рисунке \ref{fig:modbus_poll_command05_trace}.

\begin{figure}[H]
\centering
\includegraphics[width=0.5\linewidth]{images/modbus_poll_command05_trace}
\caption{Трассировка обемна в Modbus Poll}
\label{fig:modbus_poll_command05_trace}
\end{figure}

Успешное выполнение команды ТУ в журнале событий ARIS показано на рисунке \ref{fig:aris_journal_command_success}.

\begin{figure}[H]
\centering
\includegraphics[width=0.7\linewidth]{images/aris_journal_command_success}
\caption{Журнал событий ARIS}
\label{fig:aris_journal_command_success}
\end{figure}









