И еще вопрос. Я ПР-200 связал с панелью Weintek. Спасибо за помощь Юрию, все работает. Прошу еще помощь в одном моменте. Как сделать чтобы на панели бежал обратный отсчет с таймера TP1??? Заранее спасибо за помощь.
Безымянный.jpg
Последний раз редактировалось Serg290; 13.10.2020 в 15:06.
Последний раз редактировалось Сергей0308; 13.10.2020 в 22:08.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Уважаемые знатоки, прошу помощи в реализации следующей задачи (см. ниже). Заранее спасибо!!!
Имеется два устройства, подключенные к цифровым выходам ПР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 всегда находится в выключенном состоянии.
Вариант
Захват-3.png
Макрос Интервал
Захват-2.png
Последний раз редактировалось petera; 14.10.2020 в 10:35.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Это, что получается у второго устройства нет таймера?
Тогда программа упрощается
Захват-2.png
Последний раз редактировалось petera; 14.10.2020 в 10:31.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Можно
Захват-1.png
ЗЫ
Замечание на условия задачи
Вы не сможете в простой сетевой переменной(WORD) передать значение до 99999, только до 65535.Имеется сетевая переменная Set_time_MB, которая устанавливает уставку времени в секундах (может принимать значение от 0 до 99999) для таймера обратного отсчета.
Если нужно именно до 99999, то нужно использовать DWORD, т.е. два регистра Set_time_MB_HI и Set_time_MB_LO
а в программе ПР, на холсте собирать из них значение DWORD.
ЗЫ.
Добавил во вложения проект для ПР200
и проект в котором таймер использует время цикла в формате с плавающей точкой.
Последний раз редактировалось petera; 15.10.2020 в 21:58.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Подскажите или дайте ссылку как работать с аналоговыми выходами, точнее как масштабировать значения в лоджике непосредственно к выходу.