Помогите разобраться с задачей. Требуется считать отчеты за 2 часа и сутки.
Алгоритм считывания архивов и протоколов через регистры Modbus.
Порядок формирования запроса:
- установка в соответствующие регистры даты запроса (день(1-31), месяц(1-12), год(2000-
2100), час(0-23));
- номера запрашиваемого архива(2=Линия 1, 3=Линия 2, 4=Линия 3, 5=Линия 4, 6=Линия 5, 7=Линия 6, 8=Линия 7, 9=Линия 8, 10=Линия 9, 11=Линия 10, 12=Линия 11, 13=Линия 12, 14=Среда 1, 15=Среда 2, 16=Среда 3, 17=Среда 4, 18=Среда 5, 19=Среда 6, 20=Среда 7, 21=Среда 8, 22=Среда 9, 23=Среда 10, 24=Среда 11, 25=Среда 12, 26=Плотномер 1, 27=Плотномер 2, 28=Плотномер 3, 29=Плотномер 4, 30=Плотномер 5, 31=Плотномер 6,
32=Гигрометр 1, 33=Гигрометр 2);
- типа архива (1=2хЧасовой,
2=Суточный);
- установка регистра команды чтения в «1» для формирования запроса;
- периодическое считывание регистра команды чтения и ожидание его сброса в «0»;
- после сброса команды чтения считать данные из группы регистров результата с анализом
флага результата. Если значение регистра флага результата не равно нулю, то считанные
данные верны.
К примеру для формирования 2-х часового отчета надо опросить по порядку все линии, параметры среды, параметры плотномера.
Уже неделю мучаюсь не получается написать алгоритм для считывания. Загвоздка заключается вот в этом:(- периодическое считывание регистра команды чтения и ожидание его сброса в «0»;
- после сброса команды чтения считать данные из группы регистров результата с анализом
флага результата. Если значение регистра флага результата не равно нулю, то считанные
данные верны.).