Стартовая страница › Форумы › Разработка и интеграция › Драйвер ECL Comfort 300/200
- В этой теме 46 ответов, 3 участника, последнее обновление 1 год, 4 месяца назад сделано Mikhail.
-
АвторСообщения
-
27.04.2022 в 11:19 #23302manjey73Участник
Чтобы драйвер был доступен, надо прописать его в scada в дополнительных таблицах, типы устройств кажется.
У меня сейчас отпуск и сад/огород 😀
Если будет время, накидаю свой вариант.
Если делать через шаблон, то нет проблем в нём сделать переменную для типа переменных, float, int16 и так далее и на основе этого делать преобразования как для чтения, так и для команд.27.04.2022 в 11:24 #23303manjey73УчастникВ NET6 можно для шаблонов использовать сериализацию DataContract но мне этот вариант не очень понравился, так как требует обязательного наличия записей в xml.
Мне больше понравился вариант, который нашёл ранее, так как можно пустые и не требуемые переменные просто игнорировать при записи, и при чтении их отсутствие не вызывает ошибок.
Оба варианта требуют создание класса с описанием переменных.
Работает как в 5-й так и в 6-й версии. Только в 6-й надо Nullable перевести в disable.
Ну либо читать xml построчно, но мне лениво 😀27.04.2022 в 14:45 #2330728.04.2022 в 14:49 #233227inУчастникНе могу разобраться как посмотреть описание объекта «Connection». В других проектах в VS2022 можно было от вызова метода перейти к его описанию, но видимо когда я открываю DevTesterLogic.cs у меня в VS не подключены используемые классы и он не позволяет посмотреть их описание.
Приношу извинения, понимаю что вопрос скорее всего очень глупый, но все же: как посмотреть каким образом работает «Connection», что ему нужно передавать, в каком формате и т.д. ?28.04.2022 в 17:31 #23323manjey73УчастникНу а потом по F12. Возможно из-за того, что не собраны требуемые библиотеки и не дает посмотреть.
- Этот ответ был изменен 1 год, 11 месяцев назад от manjey73.
29.04.2022 в 13:19 #23329MikhailМодераторКласс Connection.
Недавно добавлена краткая инструкция по сборке.01.05.2022 в 09:17 #23342manjey73Участник// Write EEPROM lowbyte = A0 // Write EEPROM highbyte = B0 // Read RAM = Cx // Write RAM (16 bit) = DX // Write RAM lowbyte = EX // Write RAM highbyte = FX
Вот реально одной командой чтение или запись старшего и младшего байтов ? Непонятно, зачем это ????
01.05.2022 в 21:00 #233437inУчастникНе совсем понял в чем вопрос. EEPROM можно только отдельно high и low byte записывать. RAM в принципе одной командой сразу два байта можно записать (Dx), либо так же отдельно верхний и нижний.
Запись нужна чтобы менять настройки контроллера. Писать нужно и RAM и EEPROM.
В целом запись значений сейчас не так важна, мне бы с чтением разобраться…01.05.2022 в 21:06 #233447inУчастникВозьмем простой пример: регулятор используется чтобы поддерживать постоянную температуру горячей воды. Значение температуры задано на самом контроллере, допустим это 60 градусов. Это значение контроллер хранит у себя и в RAM и в EEPROM. Если мы хотим изменить удаленно температуру например на 65 градусов — нам нужно сначала записать новое значение в RAM, а затем в EEPROM. Думаю понятно что если не записать в EEPROM — то после перезагрузки значение сбросится на 60 градусов. Если записать наоборот только EEPROM — то тогда новое значение применится только после перезагрузки.
01.05.2022 в 22:17 #23345manjey73Участник@7in я так понимаю. что записав в RAM мы меняем до перезапуска, а в EEPROM это что-то в роде retain переменной или по умолчанию. Это мелочи на самом деле.
Вы можете дать код всех преобразований переменных и какие переменные существуют?
И почему у вас для получения float надо делить на 128 ? связано с чем ?
з.ы. я начал делать «рыбу» драйвера по принципу своих, но мне надо чуть больше информации по переменным, их типам и требуемым привидениям к нужным значениям.
Кстати тут подумал, что в 6-й версии можно сделать настраиваемый драйвер без файла шаблона, но пока буду делать по своим старым наработкам.
01.05.2022 в 22:20 #23346manjey73УчастникМне немного непонятен смысл разделения команд на старший и младший байты.
Надо писать и в старший и в младший байт одновременно в идеале или можно ограничиться отдельными командами, то есть когда оператор самостоятельно пишет старший а потом младший байт ? Или все-таки сделать вариант когда мы посылаем число и драйвер сам запишет и старший и младший байты значения ?
02.05.2022 в 11:38 #233477inУчастникКод для всех преобразований предоставить не представляется возможным, т.к. как я уже говорил у контроллера есть различные «приложения», у каждого приложения свои параметры со своей адресацией в памяти. Частично это описано в конце протокола обмена, там есть таблицы с адресами хранения параметров в памяти.
Есть параметры, одинаковые для всех приложений (как например показания датчиков температуры), для них адрес в памяти соответственно всегда один будет.Писать одновременно два байта (старший и младший) практически никогда не придется, так как почти все параметры занимают один байт, соответственно и писать придется один байт. Просто некоторые параметры хранятся в верхнем байте, а некоторые в нижнем. При этом адрес в памяти у них одинаковый будет. Поэтому нужны разные команды.
Немного сумбурно объяснил, если что-то непонятно — напишите 🙂02.05.2022 в 11:50 #233487inУчастникВот например адреса RAM и EEPROM для значений уставки горячей воды
https://disk.yandex.ru/i/Y242o-PyH02SRw
Как можно видеть в EEPROM у них одинаковый адрес, отличается только low/high byte- Этот ответ был изменен 1 год, 11 месяцев назад от 7in.
02.05.2022 в 11:59 #233507inУчастникЗабыл ответить насчет деления на 128: не знаю точно с чем эта необходимость связана (возможно разрядность АЦП), но в протоколе обмена на стр. 7 есть формула как получить значение температуры, и там нужно делить на 128.
Как правило все остальные параметры не нужно преобразовывать, только из hex в dec перевести и все. Тоесть это только с датчиками температуры такие заморочки с делением.
02.05.2022 в 20:45 #23351manjey73Участник// Read RAM = Cx // Write RAM (16 bit) = DX // Write RAM lowbyte = EX // Write RAM highbyte = FX
я правильно понимаю, что вместо X здесь какой-то HEX символ в зависимости что мы читаем ?
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.