Автор | Сообщение |
|
Отправлено: 06.04.20 15:38. Заголовок: Разъём I/O как реле
Не хватает реле для выполнения задачи. Можно ли использовать I/O как реле?
|
|
|
Ответов - 10
[только новые]
|
|
|
Отправлено: 06.04.20 17:14. Заголовок: Если только найти пе..
Если только найти перекидное промежуточное реле с катушкой на 5VDC. Versiport будет управлять промежуточным реле, которое будет коммутировать оконечную нагрузку.
|
|
|
|
| постоянный участник
|
|
|
Отправлено: 06.04.20 17:28. Заголовок: Не нужно на выход I/..
Не нужно на выход I/o вешать обмотку реле, даже самого миниатюрного. Используйте классические решения, маломощные транзисторы, например КТ315 В качестве усилителей тока, что найдёте.
|
|
|
|
Отправлено: 14.04.20 17:29. Заголовок: Решили отдельный мод..
Решили отдельный модуль с реле сделать. Еще такая беда - на I/O изначально "повесили" замкнутое устройство. Т.е. изначально сенсор должен выдавать сигнал. При размыкании выполняется степпер. Однако, при отправке программы в процессор и рестарта процессор программа начинает работать раньше, чем реагирует I/O и начинает выполняться степпер. Как можно сделать задержку выполнения программы после запуска процессора?
|
|
|
|
Отправлено: 14.04.20 17:36. Заголовок: Если на simpl+ , то ..
Если на simpl+ , то в блоке MAIN опишите типа: Function Main() { // TODO: Add code here // Initialize declared global and local variables/arrays as needed. WaitForInitializationComplete(); delay(10000); //10c InitFunction(); //Пользовательская функция обработки состояния I/O // If you are reading any Input or Output variables, uncomment // the WaitForInitializationComplete statement above and read // them afterwards. Input/Output variables will not have // their correct values set until after the logic processor // runs and propagates the values to them. }
|
|
|
|
Отправлено: 14.04.20 17:43. Заголовок: Нет, без Simpl+. Мож..
Нет, без Simpl+. Можно как-то без него?
|
|
|
|
Отправлено: 14.04.20 17:47. Заголовок: Судя по Вашему коду ..
Судя по Вашему коду обработка I/O начнётся через 10 сек., но она и так с задержкой идёт, а мне надо сразу ДО выполнения кода. Чтобы Built-in Digital I/O уже был с сигналом. Вот такая конструкция : https://gyazo.com/cb042cf63455324df63028b682b5d088 Изначально Mikrik должен быть в 1, соответственно Mikrik_Invers в 0 и Степпер не выполняется. Но IO не успевает подготовиться, код начинается раньше и Mikrik оказывается в 0 (хотя он сразу замкнут).
|
|
|
|
Отправлено: 14.04.20 19:21. Заголовок: Дак я вроде и предло..
Дак я вроде и предложил игнорировать в течении 10с любые состояния Mikrik поступающие на вход s+ модуля. А через 10с выполнить функцию, которая посмотрит на текущее состояние I/O (Mikrik) и запустит Ваш степпер или не запустит его (по выходу s+ модуля). Function InitFunction() { if(INPUT_mikrik=0){pulse(1,OUTPUT_START_STEPPER);} }
|
|
|
|
Отправлено: 14.04.20 21:54. Заголовок: Это я понял. Но, есл..
Это я понял. Но, если игнорировать состояния, то Mikrik изначально будет 0, а надо 1 ) Мне как раз надо, чтобы он сразу был 1, до выполнения остальных действий ) Или неправильно что-то понимаю? В том и дело, что хоть игнорируй, хоть не игнорируй - его состояние 0. Позже модуль в своё рабочее состояние приходит, нежели начинается программа. Надо всю программу как-то заигнорить при запуске хотя бы на секунду. Процессор DIN-AP3
|
|
|
|
Отправлено: 15.04.20 05:16. Заголовок: Можно проще. Добавит..
Можно проще. Добавить модуль One shot. На вход "1". Задержку те же 10 сек. После с выхода отправить на NOT. И потом на OR где вторым входом будет сигнал с микротика. Таким образом по выходу всей этой конструкции будет "1" только когда с микротика придет "1" и пройдет 10 секунд после старта системы. Время можно выбрать нужное вам.
|
|
|
|
Отправлено: 15.04.20 11:53. Заголовок: Courag1k, понял идею..
Courag1k, понял идею, но вот что забыл сказать. По сигналу Микрика 0 срабатывает ещё один Степпер, который должен срабатывать только после срабатывания первого, который на 1. Таким образом получается, что при перезапуске срабатывает не 1й (на 1), а 2й (на 0), потому что модуль задерживается и сразу 1 не выдаёт. Потому, какие задержки на сам модуль не ставь, смысла нет. Просто думал, что есть способ вообще задержку выполнения ВСЕЙ логики сделать. Ну, заложено так производителем, типа, сначала инициализация устройств, а только потом логика. В Вашем предложении Степпер, который работает на 0 не будет ждать и сработает сразу. В общем, ладно. Спасибо. Courag1k, идею понял, не обязательно со входа брать, можно вообще с этого сигнала. Буду "костылять"
|
|
|
|