Ответы в темах
-
АвторЗаписи
-
sakhalin_Cat
УчастникХотя больше подходит таймер Tp но вот как его вписать в формулу до меня пока не доходит, мало форум курил пока еще.
sakhalin_Cat
УчастникА как можно мигнуть битом? Типа как звонковая кнопка 🙂
Например включить на 0,1сек
И как сменить состояние на 0,1сек?
Я так понимаю надо использовать таймер Tol но куда его привязать не совсем понимаю.-
Ответ изменён 5 лет, 2 месяца назад пользователем
sakhalin_Cat.
-
Ответ изменён 5 лет, 2 месяца назад пользователем
sakhalin_Cat.
-
Ответ изменён 5 лет, 2 месяца назад пользователем
sakhalin_Cat.
sakhalin_Cat
УчастникОгромное спасибо. Всё заработало.
sakhalin_Cat
Участникспасибо
sakhalin_Cat
УчастникВроде добился чтобы менялся бит.
Только в режиме выключателя не работает.
Как сделать чтобы вкл\выкл было?
формула
SetBit(Val(103), 0, 1) — включает
SetBit(Val(103), 0, 0) — выключает
SetBit(Val(103), 0, Cmd) — выключаетsakhalin_Cat
УчастникДавайте упростим задачу.
Пусть будет канал управления №10499 он привязан к модбасу «двухбайтовое слово». Нужно изменить 1бит.
Что мне нужно вписать в формулы и как заполнить параметры канала управления?
Например менять состояние бита-3 с нуля на единицу. можно в режиме вкл-выкл, можно в режиме кнопки. Дальше я уже костылей PLC насую.-
Ответ изменён 5 лет, 2 месяца назад пользователем
sakhalin_Cat.
-
Ответ изменён 5 лет, 2 месяца назад пользователем
sakhalin_Cat.
sakhalin_Cat
УчастникНарод ну помогите ктонить, чего сделать то? Три варианта формул и все не пашут.
sakhalin_Cat
УчастникНаписал как вы сказали, скада валит ошибку —
.

/
Да скорее всего не верно использую. Я на предыдущей странице внизу подробно расписывал что нужно получить в результате.
.
Скрины как и просили
.



sakhalin_Cat
УчастникИ куда писать какой из 16ти нужных битов менять?
sakhalin_Cat
УчастникТак-же вопрос в какой канал управления её прописывать? Тот который на запись модбас идет или в отдельную команду вкл\выкл?
Какой тип команды использовать «Стандартная» или «Бинарная»
Какое значение команды «вкл\выкл» «вкл» «Выполнить»???sakhalin_Cat
УчастникТо есть я создал формулу — SetBit2 с содержимым
————————- Begin —————-
public double SetBit(double n, int index, double value)
{
long nn = Convert.ToInt64(n);
return value > 0 ? nn | (1 << index) : nn & ~(1 << index);
}
———————— End ———————Куда подставлять значения где единичка стоит?
Так-же
SetBit2(Val(????), 1, Cmd)
И что писать вместо вопросительных знаков?sakhalin_Cat
УчастникОтветьте чайнику куда сохранить этот код? В формулы? Как его обозвать и куда подставлять значения?
Обьясните на пальцах, как ребенку который никогда этого не делал.sakhalin_Cat
УчастникКакой-то разговор на Китайском. Я еще раз говорю я не пргорамист и мне эти слова которые вы пишете ни о чем не говорят.
Я же по Русски сказал, что не могу написать формулу так как не знаю языка на котором она пишется.
Какой мне смысл задавать вопросы и просить помощи если бы я знал как сделать?.
.
Если кто может реально помочь то помогите пожалуйста, а метод перебора букв и слов в формуле человеком который не понимает за что отвечают какие слова результата не принесут.
.
Еще раз опишу задачу:
Есть адрес 16387 по которому находится 2х байтовое слово. Этот адрес и пишется и читается.
На чтение этот адрес привязан к каналу — 103 — см фото —
.

.
На канале висит 15 дорасчетных формул которые включают и выключают лампочки на панели в веб-морде — см фото —
.

.
На запись этот адрес привязан к каналу управления- 10499 — см фото —
.

.
И отображается в списке каналов как — см фото—
.

.
Писать мы можем в канал 10499 только полностью «двухбайтовое слово» и читать из канала 103 мы тоже можем только двухбайтовое слово полностью.
.
Требуется по нажатии кнопки на вебморде поменять один бит. Для этого нужно считать «два байта» из канала 103, поменять бит и записать эти «два байта» в канал 10499.
.
Вот такая вот задача. Прошу помощи в решении.
.-
Ответ изменён 5 лет, 2 месяца назад пользователем
sakhalin_Cat.
sakhalin_Cat
УчастникИ еще один вопрос который меня смущает:
Основной канал «103» имеет тип WORD состоящий из 2х BYTE соответственно из 16bit, если мы меняем один бит, то по идее нужно прочитать полностью WORD изменить в нем нужный бит и отправит полностью WORD с изменениями обратно иначе все остальные биты слетят в FALSE. Мы же не можем изменить один бит не затронув состояния всех остальных.
Тогда почему мы берем для изменения дорасчетный канал с выделенным по формуле битом?
.
Я просто не программист и плаваю в этих вопросах. Потому вопросы могут быть глупыми.sakhalin_Cat
УчастникДа, если отключить формулу в канале то все работает. В справочнике я её не трогаю
-
Ответ изменён 5 лет, 2 месяца назад пользователем
-
АвторЗаписи