Ответы в темах
-
АвторЗаписи
-
sakhalin_Cat
УчастникФормула эта, как написано выше-
public double SetBit(double n, int index, bool value)
{
long nn = Convert.ToInt64(n);
return value ? nn | (1 << index) : nn & ~(1 << index);
}Сохранена в справочнике как SetBit
sakhalin_Cat
УчастникДа вроде есть такое.
Чего сделать нужно?

sakhalin_Cat
УчастникМодбас работает нормально, я его и читаю и пишу туда спокойно из скады. Проблема именно с выделением бита и перезаписи выделенного бита в слове.




sakhalin_Cat
УчастникДоброго дня.
Просидел сегодня всю ночь и толку не добился. Где-то что-то не так делаю.
Если не сложно обьясните где именно.
Если включаю формулу то ядро и вебсервер не перезапускаются ну или тупят не знаю.
Без включеной формулы все работает, только команда в никуда улетает.



-
Ответ изменён 5 лет, 2 месяца назад пользователем
sakhalin_Cat.
-
Ответ изменён 5 лет, 2 месяца назад пользователем
sakhalin_Cat.
sakhalin_Cat
УчастникИ за что отвечает поле «порядок байт» в «редактор шаблонов»
sakhalin_Cat
УчастникА куда в этой формуле чего подставлять?
sakhalin_Cat
УчастникУ modpool нет лога это утилита командной строки. В контроллере — первое двухбайтовое слово «WORD»= %MW0 находится по смещению 16385 и содержит байты %MB0 и %MB1 в которых есть биты %MX0.0 — %/MX0.7 и %MX1.0 — %/MX1.7 соответственно.
-
Ответ изменён 5 лет, 2 месяца назад пользователем
sakhalin_Cat.
-
Ответ изменён 5 лет, 2 месяца назад пользователем
sakhalin_Cat.
sakhalin_Cat
УчастникЧтобы изменить состояние слова мне нужно послать двуххбайтовую комманду
например
отправка modpoll -m tcp -r 16385 192.168.5.109 255 == DEC=255 == «2Byte» (0000 0000 1111 1111) переводит BOOL регистры %MX0.0 — %/MX0.7 TRUE
.
отправка modpoll -m tcp -r 16385 192.168.5.109 -256 == DEC= -256 == «2Byte» (1111 1111 0000 0000) переводит BOOL регистры %MX1.0 — %/MX1.7 TRUE
.
отправка modpoll -m tcp -r 16385 192.168.5.109 -1 == DEC= -1 == «2Byte» (1111 1111 1111 1111) переводит BOOL регистры %MX0.0 — %/MX0.7 и %MX1.0 — %/MX1.7 TRUEВопрос — Как мне написать команлу в «Каналах» чтобы изменить один нужный мне Бит не затронув все остальные?
Какой тип выбрать в настройках «Шаблона устройств» short? ubshort итд итп?-
Ответ изменён 5 лет, 2 месяца назад пользователем
sakhalin_Cat.
sakhalin_Cat
УчастникПомогите пожалуйста.
Я уже всю голову сломал.
Что-то лыжи не едут. Я спокойно пишу в регистры контроллера программой modpull
но я не могу понять как с рапидскады отправить запись в регистр.
Уже несколько дней сижу и нифига не выходит. На анализаторе всякая фигня присылается. Понимаю, что что-то не так делаю.
Подскажите куда пнуть?
.
Надо записать регистр по адресу 16385 значение — «1» это слово %MW0 состоящее из двух байт %MB0 и %MB1 соответственно содержащие биты %M0.0 — %M0.7
Вопрос как записать единицу в нужный бит?modpoll -m tcp -r 16385 192.168.5.109 1
sakhalin_Cat
УчастникЭтот , файл который я назвал конфиг менеджкром этот Mercury230mgn.xml
sakhalin_Cat
УчастникЭто конфиг 230менеджмент из дистрибутива который на сайте.
Там нет никаких комманд. Дайте пожалуйста ссылку на файл.
Если я вставляю строчки из 236-го конфига в 230 то драйвер перестает работать.sakhalin_Cat
УчастникВот у меня конец файла
.
——————————
<SndRequest Name=»Тариф 4 А+» Active=»false» Bit=»17″>
<value name=»(L1), (кВт*ч)» signal=»59″ active=»true» range=»100″ />
<value name=»(L2), (кВт*ч)» signal=»60″ active=»true» range=»100″ />
<value name=»(L3), (кВт*ч)» signal=»61″ active=»true» range=»100″ />
</SndRequest>
</SndGroups>
</DevTemplate>
——————————-
Напишите как он должен выглядеть с новыми строками.sakhalin_Cat
УчастникВ конфиге236-го в дистрибутиве нет закрывающих тегов </CmdGroup>
есть только один
</CmdGroups>sakhalin_Cat
УчастникОблом. У меня в счетчике реле нет. Новые придут проверю.
sakhalin_Cat
УчастникДобавил. Драйвер пишет ошибка.
Вставлял по подобию конфига от 236-го.
Вот так —
<CmdGroups>
<CmdGroup Name=»Relay_Off» Active=»true» Signal=»105″ Cmd=»03″ Par=»31″ Data=»01″ inCnt=»4″ />
<CmdGroup Name=»Relay_On» Active=»true» Signal=»106″ Cmd=»03″ Par=»31″ Data=»00″ inCnt=»4″ />
</CmdGroup>
</CmdGroups>А так и нужно чтобы тэги не закрытые были?
————
<CmdGroups>
<CmdGroup Name=»WriteTime» Active=»true» Signal=»101″ Mode=»2″ Cmd=»03″ Par=»0C» Data=»0030120421052000″ inCnt=»4″>
<!—1.3.9 Установка времени, команда 101
Уровень доступа 2,3
Поле данных 8 байт BCD формата в последовательности
сек, мин, часы, день нед., число, месяц, год, признак зима/лето
(зима = 1, лето = 0)
0030120421052000 — 21 мая 2020г 12:30:00 четверг, лето—>
</CmdGroup>
<CmdGroup Name=»ReadTime» Active=»true» Signal=»102″ Cmd=»04″ Par=»00″ Data=»» inCnt=»11″ />
<CmdGroup Name=»ReadLastTime» Active=»true» Signal=»103″ Cmd=»04″ Par=»02″ Data=»FF» inCnt=»16″ />
<CmdGroup Name=»ReadWordStatus» Active=»true» Signal=»104″ Cmd=»04″ Par=»14″ Data=»FF» inCnt=»16″ />
</CmdGroups>
———————
Обратил внимание на незакрытые теги. -
Ответ изменён 5 лет, 2 месяца назад пользователем
-
АвторЗаписи