СПАСИБО!!! Огромное за подсказку!!!
Вид для печати
И еще вопрос. Я ПР-200 связал с панелью Weintek. Спасибо за помощь Юрию, все работает. Прошу еще помощь в одном моменте. Как сделать чтобы на панели бежал обратный отсчет с таймера TP1??? Заранее спасибо за помощь.
Вложение 51339
Уважаемые знатоки, прошу помощи в реализации следующей задачи (см. ниже). Заранее спасибо!!!
Имеется два устройства, подключенные к цифровым выходам ПР100. Ус-во А подключено к выходу 1, ус-во В подключено к выходу 2. Выход=0: ус-во вЫключено. Выход=1: ус-во включено.
Имеется сетевая переменная Regim_MB, которая определяет режим работы. Если Regim_MB = 1, то работа ведется с ус-вом А. Если Regim_MB = 2, то работа ведется с ус-вом В.
Ус-во, с которым не ведется работа, находится в выключенном состоянии.
Имеется сетевая переменная Set_time_MB, которая устанавливает уставку времени в секундах (может принимать значение от 0 до 99999) для таймера обратного отсчета.
Имеется сетевая переменная Start_MB, которая запускает (при значении 1) или останавливает (при значении 0) работу одного из 2-х устройств.
1. Если уставка времени равна 0 (Set_time_MB = 0), то по команде Start_MB=1 (запуск) одно из ус-в (либо А, либо В) должно включиться и работать до поступления команды Start_MB=0 (останов).
2. Если уставка времени НЕ равна 0 (Set_time_MB = X сек) и Regim_MB = 1, то по команде Start_MB=1 (запуск) ус-во А должно включиться и работать в течение времени Х, по окончании которого ус-во А
должно выключится и Start_MB должно стать 0.
Если в процессе работы устройства А (т.е. таймер еще считает) поступит команда Start_MB=0 (останов), то устройства А должно выключится.
При этом ус-во В находится в выключенном состоянии.
3. Если уставка времени НЕ равна 0 (Set_time_MB = X сек) и Regim_MB = 2, то по команде Start_MB=1 (запуск) ус-во В должно включиться и работать до поступления команды Start_MB=0 (останов).
При этом ус-во 1 всегда находится в выключенном состоянии.
Вариант
Вложение 51358
Макрос Интервал
Вложение 51350
Это, что получается у второго устройства нет таймера?
Тогда программа упрощается
Вложение 51356
Можно
Вложение 51364
ЗЫ
Замечание на условия задачи
Вы не сможете в простой сетевой переменной(WORD) передать значение до 99999, только до 65535.Цитата:
Имеется сетевая переменная Set_time_MB, которая устанавливает уставку времени в секундах (может принимать значение от 0 до 99999) для таймера обратного отсчета.
Если нужно именно до 99999, то нужно использовать DWORD, т.е. два регистра Set_time_MB_HI и Set_time_MB_LO
а в программе ПР, на холсте собирать из них значение DWORD.
ЗЫ.
Добавил во вложения проект для ПР200
и проект в котором таймер использует время цикла в формате с плавающей точкой.
Подскажите или дайте ссылку как работать с аналоговыми выходами, точнее как масштабировать значения в лоджике непосредственно к выходу.