Используйте AND
Вид для печати
Используйте AND
Вспомнил что когда то давно, в самом первом моем проекте в CS2 ,были тоже проблемы c move, я там как раз AND применил.
Но сейчас в CS3 этот способ не прокатил.
Вложение 31522 Вложение 31523
В принципе решение уже нашел, создал ФБ-аналог на ST:
FUNCTION_BLOCK swith
VAR_INPUT
en:BOOL;
in:BOOL;
END_VAR
VAR_OUTPUT
out:BOOL;
END_VAR
VAR
out_:BOOL:=FALSE;
END_VAR
IF en = TRUE THEN
out:=in;
ELSE
out:=out_;
END_IF
Все больше убеждаюсь что нужно весь проект на ST переводить, почти все на него постепенно перевел.
dr_alf
Для вашей задачи вполне достаточно стандартного элемента AND. Вам уже это говорили выше.
В вашем ФБ можно сделать проще, убрать одну переменную.
IF en THEN out:=in ELSE out :=FALSE; END_IF;
dr_alf
Не любите кошек? Вы просто не умеете их готовить :)
Вам предлагают использовать блок AND без входа EN.
А MOVE с EN - это способ описать в FBD (CFC) оператор IF, где EN - условие, а собственно MOVE - присвоение, т.е. присвоение выходной переменной значения выхода блока MOVE происходит только при активном условии EN, а если условие не выполняется, то и присвоение не выполняется.
Для блока AND без EN присвоение выходной переменной результата логической операции происходит всегда.
Здравствуйте, подскажите, пожалуйста, есть ли в библиотеке AlarmManager'a переменная, по которой можно узнать, что пришла какая-либо тревога?
Все сделал вроде по инструкции выше, но дату все равно выводит 1970
Вложение 31708
Евгений, спасибо.
Будем изучать.
Добрый день!
Возможность есть, но потребуется немного доработать Вашу программу.
В приложении Вы найдете пример подсчета количества активных аварий (AlarmsCount.project).
Перенесите в Ваш проект директорию Alarms counter.
Добавьте вызов программы AlarmsCounter_PRG.
Все. Получить количество активных аварий Вы можете из выходной переменной AlarmsCounter_PRG.iAlarmsCount
Вложение 31715
Прочитав СПК. Системное время так и не нашел как запустить время при отладке на компьютере.
Реального контроллера под рукой нет. Изучения и просмотр делаю на обычном компьютере.
При эммуляции следующее
Вложение 31735
Вы, вероятно, запускаете проект в эмуляции. Так не получится.
Используйте виртуальный контроллер - см. СПК.FAQ, п. 9.8.
Все получилось. Спасибо.
как побороть сообщение "визуализация <такая-то> не представлена в вашем приложении" (не имеет экземпляров, т.д.)? Всё время была представлена и имела, а тут вдруг типа перестала.
Добрый день!
Подскажите, пожалуйста!
Как мне передать LREAL на ОРС сервер стандартными средствами конфигурации в Codesys 3.5?
Передать LREAL c помощью 4-х WORD'ов почему-то не получается.
Добрый день!
Подскажите, пожалуйста!
Такой эффект. При опросе ПЛК304 (на одном порту) двух модулей сначала 8АС затем 16Р все работает замечательно. Но как только вводится таймаут 5-15ms (таймером программно)(см.скринВложение 32045, изменения красным) между опросом первого модуля 8АС и вторым (16Р), управление выходами с 9-го по 16 не представляется возможным. Остальные выхода с 1-го по 8 управляются. На модуль 8АС тайминг ни как не сказывается.
С чем может связана описанное "чудо" и как с ним можно бороться?
Вопрос к Евгению Кислову:
Вы в своем примере с RTC использовали следующее объявление переменных:
attribute 'hide' понятно, := '' в данном контексте не понятно.Цитата:
{attribute 'hide' := ''}
fbGetDateAndTime: DTU.GetDateAndTime;
capzap, благодарю за ответ.
"Связано можно быть с тем, что не умеете работать с таймером." - Не, не умеем, ни кто не научил, да и мы сами тут плюшками балуемся :)
".. использовать другой таймер.." Какой посоветуете?
"..проверить ещё раз свои выводы, что потеря одно байта принимаемого слова связана с задержкой опросе" - Неоднократно проверено!
capzap, считаю, что тип таймера не является определяющим, т.к. используемый тип таймера TON в данной связке выполняет свои функции и обмен происходит. Ключевое - где можно потерять полслова, если других изменений не вноситься? Спасибо.
К сожалению, номера элементов CodeSys выставляет автоматически
Евгений, cazap большая Вам благодарность за поддержку. Упорядочил "в соответствии с потоком данных" и заработало. СПАСИБО!
Здравствуйте уважаемые форумчане. Нужна ваша помощь. Третий день бьюсь над задачей, никак не могу победить. Нужно подружить ПМ01 с СПК207 в системе CODESYS V3.5 SP5. А конкретнее посылать с СПК207 через ПМ01 смски об авариях в цехе.
В HyperTerminal модем реагирует на AT команды, смс посылает без особых проблем.
В CODESYS же послать какую либо команду даже из библиотеки OwenModemLib не получается. СМСки не отправляет.
В функциональном блоке FB_SMS_CSD выходная переменная Busy всегда равна TRUE. Проверял функцией FB_SMS_CSD.GetModemStatus состояние модема. Выход modemstatus всегда висит в нуле, сообщая о готовности модема.
Порт по всей моей дилетантской видимости открыт. Slave устройство если я правильно понял добавлять к ком порту не нужно. Для того чтобы СПК увидел модем достаточно добавить в проект ком порт и мастер?
Скажите пожалуйста что я делаю не так? Скриншот проекта ниже.
Вложение 32087
Выкладываю файл проекта, если у кого нибудь найдется немножко времени =)
Вероятно с тем, что Вы используете не то, что надо.Цитата:
Сообщение от Drive74С
Для ознакомления.
Использую несколько модулей МУ110-16К, и никогда проблем с ними не испытывал.
Библиотеку Alarm Manager Interfaces подключили к проекту?
Да, действительно)) Чувствую же, что чего то не хватает..
Первый проект в Кодесисе, не все освоено еще
П.С. Леонид, будем знакомы. Олег RL6LP
Подскажите как избавится от этих предупрежденийВложение 32175
Использовать UINT_TO_ INT в тревогах.
Но там нет не INT, UINTВложение 32176
Здрасти от новичка.
Гуру, просветите по многозадачности в среде кдс.
Такая ситуация:
В рамках одного приложения есть глобальные данные и несколько таск, которые неким образом беспечно модифицируют эти данные.
По разумному, доступ к данным надо синхронизировать (например средствами SysSemProcess)?
Или (**наивно**) кдс сам настолько умный, что обеспечиваем межтасковую синхронизацию глобальных данных?
Евгений, я не спрашивал какую либу смотреть.
Я спросил о возможной скрытой заботе кдс о межтасковой синхронизации глобальных данных, коли уж подразумеваются таски и глобальные данные в рамках одного приложения.
Повторю вопрос: кодесис обеспечивает какую либо СКРЫТУЮ (на подобии скрытого создания и запуска тасков) синхронизацию данных? или все ручками делать?
Никакой "скрытой межтасковой синхронизации" на уровне CODESYS нет.