Добавление поддержки чтения текущие данные ECL 300 [9513]

Сейчас вся работа с контроллером построена только через внешний модуль (и управление и просмотр текущих данных). Есть ли возможность реализовать чтение текущих данных как у ECL 210 - через обычный опрос?
Для чего нужно:

  • появится возможность поставить устройство на автоопрос и хранить архив текущих данных
  • можно будет работать с контроллером через веб интерфейс и мобильное приложение
  • будет возможно использовать температуру наружного воздуха в других точках
  • появится возможность использовать считанные значения на мнемосхемах
  • можно формировать различные отчеты/графики

Я понимаю что задача достаточно трудоёмкая т.к. нужно все переделать практически заново, но все же возможно ли такое реализовать в следующих версиях?
Готов при необходимости предоставить доступ к контроллеру через адаптер RS232 - Ethernet

Да, это возможно. Я перенесу тему в раздел “Поддержка новых устройств”. Оформите, пожалуйста, следующее сообщение по правилам оформления заявки.
Нам нужен будет доступ к прибору.

Наименование: ECL Comfort 300
Сайт производителя: https://www.danfoss.com/
Руководство: Тех описание, Протокол обмена
Заводская программа: ECL Comfort service tool v 1.3
Доступ через MOXA Nport предоставлю чуть позже в данной теме

Ожидаем данные для подключения к устройству.

на support@lers.ru отправил данные для подключения к устройству!

Нам не удалось опросить ваше устройство. Порт по предоставленному IP-адресу закрыт.

Повторно на support@lers.ru отправил данные для подключения к устройству!

Нам не удается опросить ваше устройство. Порт по предоставленному IP-адресу закрыт.

Отправил параметры для подключения на support@lers.ru

Нам не удалось опросить ваше устройство. Насколько я понял из вашего письма MOXA настроена в режиме Real COM. В какой программе вы создавали виртуальный COM-порт, NPort Administrator или NPort Windows Driver Manager?
В вашем письме указан 1 порт. При этом в программе NPort Administrator указывать порт не требуется. При создании виртуального COM-порт в программе NPort Windows Driver Manager требуется указывать два порта.

Moxa настроена именно в режиме TCP Server (не Real Com). Виртуальный COM порт создавал через USR-VCOM Virtual Serial Port Server v3.7.2.525
Прикладываю скриншот настройки виртуального ком порта и результат опроса заводской программой.
IP соответственно вам указать нужно тот, что в письме
Снимок экрана (164).jpg

Доступ к устройству проверен. Поддержка устройства предварительно запланирована на версию 3.46. Не прекращайте доступ к устройству.

Контроллер установили на реальный объект. Параметры подключения остались прежними

Укажите пожалуста с какого IP будете производить подключение, чтобы добавить в исключения файервола.
Либо давате настрою MOXA в режиме клиента на ваш IP и порт, как вам удобнее.
Так же прошу при разработке драйвера для этого устройства реализовать помимо чтения датчиков температуры S1-S6, чтение расчитанной температуры теплоносителя (Calculated flow temperature) стр. 7 протокола обмена.
Заранее благодарю :-):

Мы будем производить подключение с 95.167.224.34

Добавил ваш IP в белый список. Контроллер по прежнему установлен на реальном объекте. Параметры подключения прежние

Доступ к устройству проверен.

В ходе изучения протокола обмена наткнулся на библиотеку на GitHub, написана на Java правда, но что интересно - там присутствует считывание даты и времени из RAM контроллера (это не описано в протоколе обмена, и такой функции нет в заводском ПО).

Запрос времени
// date and time setting
		add(new Ecl300Command(Cmd.READ_TIME_MONTH_YEAR, "Month Year", new byte[] {(byte) 0xCB, (byte) 0x80, 0x00, 0x00}, ResponseFormat.DATE_TIME_MONTH_YEAR));
		add(new Ecl300Command(Cmd.READ_TIME_DAY_HOUR, "Day Hour", new byte[] {(byte) 0xCB, (byte) 0x82, 0x00, 0x00}, ResponseFormat.DATE_TIME_INT_INT));
		add(new Ecl300Command(Cmd.READ_TIME_MIN_SEC, "Min Sec", new byte[] {(byte) 0xCB, (byte) 0x84, 0x00, 0x00}, ResponseFormat.DATE_TIME_INT_INT));
Разбор ответа
private String getReponseMessageDateTime(byte weekDayMonth, byte year,
			byte day, byte hour, byte minutes, byte seconds) {
		String sWeekDay;
		int weekDay = (int)((weekDayMonth & 0xF0) >> 4);
		int iMonth = (int)(weekDayMonth & 0x0F);
		int iYear = (int)(year & 0xFF) + 1900;
		int iDay = (int)(day & 0xFF);
		int iHour = (int)(hour & 0xFF);
		int iMinutes = (int)(minutes & 0xFF);
		switch (weekDay) {
			case 1:
				sWeekDay = "Mon";
				break;
			case 2:
				sWeekDay = "Tue";
				break;
			case 3:
				sWeekDay = "Wed";
				break;
			case 4:
				sWeekDay = "Thu";
				break;
			case 5:
				sWeekDay = "Fri";
				break;
			case 6:
				sWeekDay = "Sat";
				break;
			case 7:
				sWeekDay = "Sun";
				break;
			default:
				sWeekDay = "???";
				break;
		}
		return String.format("%s %04d-%02d-%02d %02d:%02d", sWeekDay, iYear, iMonth, iDay, iHour, iMinutes);
	}

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

Мы добавим чтение даты и времени устройства.

В 3.46 будет добавлена поддержка?