Подскажите я правильно вот это:Вложение 35545 изобразил в ST: Вложение 35546
Подскажите я правильно вот это:Вложение 35545 изобразил в ST: Вложение 35546
Приветствую.
Не совсем понял, как пользоваться режимом работы modbus мастера Work mode - by command.
Для записи или считывания регистров слейва мне достаточно записать 0xFF в регистр %QB8.2.0? Как будет это работать, если я каждый цикл ПЛК буду писать это значение?
Спасибо.
Вложение 35552
Здравствуйте.
Можно ли на ПЛК160 поднять одновременно Modbus TCP мастер и слейв.
Стоит задача: по модбас вычитывать данные с нескольких устройств (до восьми), производить над этими данными ряд арифметических действий, а потом отправлять результат на другое устройство (одно), тоже по модбас.
Все эти устройства в одной сети. Всюду Modbus TCP.
Всем привет.
Делаю первые шаги ПЛК100-24-P-L.
Хочу сделать так:
При срабатывании входа DI0 (контролируется Триггером по переднему фронту TrDI0) должен вызываться таймер TOF - включать выход yellow1 и спустя 5 сек. - выключать его.
Если просто в тело PLC_PRG написать:
TOF_Yellow1(IN:=TrDI0, PT:=T#5s , Q=> , ET=> );
yellow1:=TOF_Yellow1.Q;
то работает;
а если написать
IF TrDI0=TRUE THEN
TOF_Yellow1(IN:=TRUE, PT:=T#5s , Q=> , ET=> ); ВЗВОЖУ ТАЙМЕР должен появиться Q=TRUE;
TOF_Yellow1.IN:=FALSE; ЗАПУСКАЮ ОТСЧЁТ должен начаться отсчёт
yellow1:=TOF_Yellow1.Q; Выход yellow1 = TRUE с момента взвода таймера и до конца отсчёта.
уходим на проверку IF
END_IF
не работает.
Что я делаю не так?
Спасибо.
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Capzap, спасибо.
Я никак не пойму - как выполняется программа на ST?
Контроллер каждую строчку друг за дружкой читает и выполняет?
Если в строке - таймер - контроллер ждёт пока не не кончится время этого таймера, а потом читает и выполняет дальше или сразу после запуска таймера бежит дальше по программе, а таймер сам по себе работает? Т.е. можно запустить много параллельных таймеров и других задач?
Что такое этот пресловутый цикл? - Пробежка от начала программы до конца?
Почему даже 1 раз не запускается у меня таймер в IF ?
Один же раз в каком-нибудь цикле TrDI0 становится TRUE - я же жму кнопку и Триггер видит это.
Я изменил TrDI0 на просто сигнал входа DI0.
IF DI0=TRUE THEN
TOF_Yellow1(IN:=TRUE, PT:=T#5s , Q=> , ET=> ); ВЗВОЖУ ТАЙМЕР должен появиться Q=TRUE;
TOF_Yellow1.IN:=FALSE; ЗАПУСКАЮ ОТСЧЁТ должен начаться отсчёт
yellow1:=TOF_Yellow1.Q; Выход yellow1 = TRUE с момента взвода таймера и до конца отсчёта.
уходим на проверку IF
END_IF
В этом случае при нажатии кнопки - DI0 - включается выход yellow1 и продолжает быть true. Таймер не срабатывает на начало отсчёта даже после отпускания кнопки.
Почему IF даже один раз не выполняется? Не могу понять.
смысл таймера в контроллерах это зафиксировать по фронту входного сигнала текущее время и далее выполняя каждый прогон программы сравнивать текущее время с запомненным, если разница стала превышать, установленное значение в РТ, то таймер завершает свою работы и выдает на выход соответствующее состояние. Поэтому ни кто ни кого не ждет.
Постройте сперва самую простую комбинацию, например TOF_Yellow1(IN:=NOT TOF_Yellow1.Q, PT:=T#5s) без всяких условий и посмотрите как это работает, раскройте в онлайне его внутренности в окне объявлений и понаблюдайте
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Capzap, я посмотрел - всё ясно, как устроен TOF TON и т.д. Мягко говоря - непривычно.
Как запустить ОТДЕЛЬНЫЙ таймер, отдельно от программы? Который сам считает свою задержку и независимо от цикла делает то, что ему сказано?
Здесь что, и инструкции в FOR DO будут исполняться не пока FOR сравняется с заданным, а один раз, затем, когда программа прокрутится по кругу - ещё раз?
Непонятно... где объясняется, как выполняется программа и что такое цикл?
Хочу сделать простейшее - по нажатию на кнопку лампа должна включится и погаснуть 10 раз. 2 сек. горит, 3 не горит.
И это должно быть в IF.
Вы хотя бы с одним из этих документов ознакомились? http://www.owen.ru/catalog/codesys_v2/51162335
Бессмысленно объяснять если основ не знаете
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран