это относится как раз к битовому модбасу, поэтому и спрашиваю, зачем Вы употребляете это слово и это тожеЦитата:
не пишет в COIL
регистр и флаг это разные вещиЦитата:
регистр (флаг)
Вид для печати
это относится как раз к битовому модбасу, поэтому и спрашиваю, зачем Вы употребляете это слово и это тожеЦитата:
не пишет в COIL
регистр и флаг это разные вещиЦитата:
регистр (флаг)
кхм... я учусь =) если это битовый значит нужно что? подскажите
в ихней вики я прочитал следующее: у них есть карта регистров, в ней в нулевом регистре располагаются адреса входов и выходов, с нулевого по Х-1, где Х это количество выходов , так же с нулевого по У-1, где У это количество входов. Если судить что следующий используемый регистр 5, то максимум можно разместить до 80 входов/выходов. Далее в колонке тип указано какой функцией работать, для выходов это будет 1 и 5 функции, для входов это только 2 функция (об этом у них есть ссылка вот сюда)
Бинго! =) регистр 0, управляется битами =) большое спасибо!!! заработало
Добрый день.
Подскажите как сделать сброс таймера TP? Требуется по нажатию клавиши обнулить ТР, при нажатии другой начать отсчет сначала.
Поиск по теме дает записи от 12 года, в которых удалены вложения.
Пробовал реализовать через sel, но сброс получается всегда, т.е. счетчик работает 1 цикл, потом сбрасывается. Столкнулся с непониманием как записывать значения в ТР только если соблюдено условие. По умолчанию сел всегда шлет или 1 или 0.
Вложение 36970
Судя по описаниям, наверно так вы хотели:
Вложение 36971
Описание с картинкой несколько расходятся! Диаграммы состояний, как я понимаю, для Вас неразрешимая проблема?
Я например больше склоняюсь к такому варианту:
Вложение 36973
Так в этом и проблема, записать время таймера только при нажатии кнопки. При использовании сел, лоджик шлет всегда всегда данные, нет условного выбора.
Спасибо за примеры.
Суть задачи. Есть 2 выключателя В1 и В2 и лампочка. В1 включает лампочку на 5с. Последующее нажимание на В1 приводит к старту таймера заново. (Т.е если лампа горит, то она должна продолжать гореть 5с после последнего нажатия В1). Выключатель В2 выключает лампу и сбрасывает таймер (для случая, если нажали В2 а потом сразу В1, выключили и сразу включили. В моем примере надо ждать отсчета таймера окончание отсчета таймера, только после этго можно будет включить свет)
По моему вы хотели вот такой результат.
Вложение 36980
Тогда наверно как-то так:
Вложение 36981
А так не проще ? Вложение 36984
Тут хорошо бы выяснить, что хочет товарищ, пока молчит, как рыба об лёд!
Это только начинает проясняться, если Вам всё понятно, скажите нужен для В2 детектор переднего фронта или нет:
Вложение 36985
Если это освещение,например в коридоре ,то во второй кнопке вообще нет смысла .Нужно сделать "умную" кнопку ,таких вариантов было куча - если кратко нажал то горит заданное время ,а если долго нажал(больше 1сек.) ,то горит постоянно ,пока еще раз не нажмешь (выключится) ...
Вот хотел вариант намалевать, что капзап предложил, и заодно программу сломал:
Вложение 36988
Я конечно специально программу сломал второй раз, чтобы показать, первый раз случайно вышло, но мне кажется, программа не должна такого допускать!
Да, действительно ТОФ
Всем спасибо за помощь.
Как оказалось проблема в том, что Лоджик надо понимать нутром. При попытке подключить сел к фб, лоджик затребовал преобразование в инт. Ктож знал, что сначала надо задать отношение фб к ТР , а только потом соединять его с сел.
Спасибо, то что надо.
Спасибо, именно то, что и хотел изобразить. Помешало преобразование в инт. Его убрал и все заработало.
Открою сокральный смысл сей задумки. В1 это датчик движения, В2 это выключатель света. Т.е. человек заходит и включается 1 лампочка Л1 , она горит минуту, потом гаснет. Соответственно, если человек больше минуты раздражает датчик света, то минута отсчитывается от последнего его движения (пока сам не придумал как правильнее отсчет времени организовать). Если же человек захотел включить общий свет, то он нажал В2 и включается Л1+Л2+Л3 (Л1 уже не зависит от датчика движения). Выходя из комнаты, он опять нажимает В2 и все лампы гаснут. Так же у этого блока должен быть общий сброс (т.е. отключение всех ламп), отсюда управление выхода через DTRIG. Это нужно, чтобы с пульта можно было погасить лампочки. Датчик света и управление с пульта управляют релюшками на 220, В2 это кнопка. Пока делаю поступенчато, поэтому первая ступень, это было обнуление времени. Вообще, сам проект, это управление светом в квартире. Самые замороченные модули это ванная, там датчик движения, RGB подсветка, радиовыключение\включение света и гостиная, там надо с 2-х кнопок управлять 4-мя группами света. Позже буду решать вопрос по управлению 4-мя группами света.
И да, фронт пригодится, в случае если я захочу повесить дополнительные функции на эту кнопку, например отключение всего света в квартире, кроме ванной.
з.ы. делал такое с датчиком. Дело в том, что TOF начнет работать только тогда, когда закончится раздражение от датчика и не надо ничего придумывать. А клавишей вы просто можете взвести RS триггер (или SR) и раздражитель не будет действовать в принципе, так как вы таймеру всегда врубите 1.
Там схема будет гораздо проще, чем предлагают. Другой смысл и сложность схемы будет, когда вы захотите сделать дополнительную функциональность, например отключение работы датчика из схемы путем удержания кнопки или по времени и т.д.
не доводите до сильных сложностей, мало кому нравится включать лампы даже двойным нажатием (или удержанием). Двойное нажатие допускается в принципе, если при повседневном режиме вам хватает половины люстры например (одно нажатие), если надо сразу включить всю, то удержание например.
Делать работу по принципу цикла нажатий - 1 - одна точка света, 2 - вторая точка света, 3 - выключить начнет раздражать через месяц два так как это не эргономично.
Здравствуйте.
"Досталась" мне задача скрестить панель от шнайдера HMIGXU3500 и ПР200-220-4 по Modbus через RS485. И в итоге они не вяжутся друг с другом.
Подключение со стороны ПР через блок ПР-ИП485, сидит на 1м слоте(перемычки на нем в режиме Slave) , настройки ниже на фото
Вложение 37113
Со стороны панели - COM порт, SDA(3) ->A, SDB(7) -> B, настройки ниже
Вложение 37114 Вложение 37116
Вложение 37117 - адрес переменной в панели 40201, в ПР 512
может у кого был подобный опыт или это вообще не возможно?
в итоге на экране сообщение: No reply from PLC within Timeout period.
куча видео на ютубе, как скрестить шнайдер со шнайдером, а что то иное - нету (либо так смотрел))
А адрес ПР200 соответствует 1-му ?
Да, адрес №1
Ну а почему адреса регистров разные ? и панель опрашивает как ? количество регистров на размер буфера 120 байт ?
Прослушку порта не пробовали использовать и посмотреть какие запросы шлет панель ? ведь проще понять будет что она хочет...
я так понял в ПР регистры записываются в формате DEC - 512, а в HEX - 200, т.е 40201, единицу программа шнайдера сама добавляет, все верно - 120 байт
панель вообще не видит ПРку
ПРку подключал к скаде на этих настройка - она все видит, А панель запрашивает вот что...
Вложение 37120
единственное ну могу понять что она хочет, наверно запрашивает ПРук
у вас панель долбится в адрес 2, с чего бы ?
Part of Data Package Description Value
02 Slave address 0x02 (2)
03 Function code 0x03 (3) - Read Holding Registers
00 C8 Starting address 0x00C9 (201)
00 01 Quantity 0x0001 (1)
05 C7 CRC 0x05C7 (1479)
и регистр у вас 201 в десятичном, а должен быть 513, если адрес +1
вот мой пример опроса по 1-му адресу
Part of Data Package Description Value
01 Slave address 0x01 (1)
03 Function code 0x03 (3) - Read Holding Registers
02 00 Starting address 0x0201 (513)
00 09 Quantity 0x0009 (9)
84 74 CRC 0x8474 (33908)
Вам надо наверное указывать 40513 регистр вероятно... или 40512
все норм, я поменял и в панели и в ПРке, так задумано в проекте...
ставил 15, 20mSec, не заработало
пишет - No reply from PLC within Timeout period.
на что влияет конфигурация в MB Parity Bit (none-even-odd)?
Адрес регистра проверьте, а то кроме адреса, о смене которого вы забыли упомянуть вы похоже и про адрес регистра умолчали :)
Извиняюсь, тогда не понял о каком регистре Вы говорите, там по другому ни как, см. фото...
Вложение 37121,Вложение 37122
так вот offset установите 512
Ну и вам это не очень поможет если вы будете пытаться читать штатные регистры ПР200 там адреса будут несколько иными, ну или если у вас можно настраивать в панели разную адресацию на разные запросы...
Я вам выше написал свой пример рабочего запроса 9-ти регистров начиная с 512 побайтно...
все, увидел, спасибо...
но не помогло, он контроллер не видит(