Форум программистов, компьютерный форум, киберфорум
Контроллеры PLC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 25.01.2021
Сообщений: 13

[CoDeSys 2.3] Реализовать управление формированием выходной команды Х, зависящей от входных сигналов А, В и С

22.11.2023, 15:36. Показов 6501. Ответов 2

Студворк — интернет-сервис помощи студентам
Реализовать управление формированием выходной команды Х, зависящей от входных сигналов А, В и С.
В автоматическом режиме при комбинации А=1 и В=1 выходной сигнал принимает значение 1. После исчезновения сигнала А или В выходной сигнал Х принимает значение 0. При последующих появлениях комбинации А=1 и В=1 сигнал Х не должен принимать значение 1 до тех пор, пока хотя бы кратковременно не появится сигнал С. То есть сигнал С возвращает схему в исходное состояние.
При ручном управлении любая комбинация А=1 и В=1 вызывает появление команды Х.

Я попробовал написать код, но в автоматическом режиме выходной сигнал X всё равно принимает значение 1 независимо от последующих появлений комбинации А=1 и В=1. В ручном режиме всё работает нормально. Проблема только в автоматическом режиме.

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
PROGRAM PLC_PRG
VAR
    A, B, C, X: BOOL; (*Объявление сигналов*)
    AUTOMODE: BOOL := TRUE; (*Флаг автоматического режима*)
    LastA, LastB, LastC: BOOL; (*Запоминаем последние значения A, B, C *)
END_VAR
 
IF AUTOMODE THEN 
    IF A AND B AND NOT LastA AND NOT LastB THEN
    X := 1;
  ELSIF NOT A AND NOT B THEN
    X := 0;
  END_IF
 
    IF C THEN
    X := 0;
  END_IF
ELSE
 
    IF A AND B THEN
    X := 1;
  END_IF
END_IF
 
LastA := A;
LastB := B;
LastC := C;
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.11.2023, 15:36
Ответы с готовыми решениями:

Построить временные диаграммы выходных сигналов триггеров для заданных входных сигналов
1 задание. Построить временную диаграмму выходных сигналов T-триггера при заданных входных сигналах, если записана 1 2 задание. Построить...

Построить временные диаграммы выходных сигналов триггеров для заданных входных сигналов
1 задание. Построить временную диаграмму выходных сигналов T-триггера при заданных входных сигналах, если записана 1 2 задание. Построить...

Построить временные диаграммы выходных сигналов триггеров для заданных входных сигналов
1 задание. Построить временную диаграмму выходных сигналов T-триггера при заданных входных сигналах, если записана 1 2 задание. Построить...

2
0 / 0 / 0
Регистрация: 25.01.2021
Сообщений: 13
23.11.2023, 10:56  [ТС]
В автоматическом режиме, когда комбинация А=1 и В=1, выходной сигнал X принимает значение 1. Когда сигнал А или В исчезает, сигнал X принимает значение 0, Сигнал Х не должен принимать значение 1 ни при каких последующих появлениях комбинации А=1 и В=1, пока не появится сигнал С, хотя бы на короткое время. Таким образом, сигнал С возвращает схему в ее первоначальное состояние.
При ручном управлении команда Х появляется при любой комбинации А=1 и В=1.

Напишите программу на языке программирования ST (МЭК 61131-3) в программе Codesys 2.3
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8665 / 4502 / 1670
Регистрация: 01.02.2015
Сообщений: 13,930
Записей в блоге: 13
23.11.2023, 11:27
Лучший ответ Сообщение было отмечено Go0gl как решение

Решение

Введите переменную ResetRequest - которая ожидает приход C и сбрасывается при установке C=true - т.е. как бы триггер.

Ведь в автоматическом режиме значение выхода зависит от трёх переменных: A, B и "состояние ожидания сброса".

Состояние ResetRequest сбрасывается при приходе C.
Устанавливается ResetRequest при переходе X с TRUE в FALSE. Это можно реализовать при помощи дополнительной переменной с предыдущим значением X
Code
1
2
3
4
5
if (not X and PreviousX) then
  ResetRequest := true;
end_if;
 
PreviousX:=X;
Или эквивалентной заменой X на not(A and B)
Code
1
2
3
  if (not(A and B) and X) then
    ResetRequest := true;
  end_if;
И всё вместе
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if AUTOMODE then
 
  //установка и сброс состояния необходимости ожидания C (сброса)
  if (not(A and B) and X) then
    ResetRequest := true;
  end_if;
  if C then
    ResetRequest := false;
  end_if;
  //вычисление выходной функции
  X := A and B and (not ResetRequest)
 
  if (A and B and (not ResetRequest)) then
    X:= true;
  end_if;
else
  X:= A or B; //ручной режим
end_if
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.11.2023, 11:27
Помогаю со студенческими работами здесь

Построить временную диаграмму выходных сигналов триггера для заданных входных сигналов
Помогите!!! Задана функциональная схема триггера и временная диаграмма сигналов на его входах. Построить соответствующую временную...

[CoDeSys] Управление светофором
Задание: Сделать блок управления светофором на CoDeSys, нужно чтобы светофор работал так: горит зеленый, когда начинает переключаться на...

Последовательное представление входных сигналов для network
Имеется нейронная сеть net = network (2, 3, , , , ) Необходимо промоделировать созданную сеть, используя групповое и последовательное...

Управление звонком и пускателем (ST, Codesys, ПЛК110)
Добрый день, товарищи. Понемногу осваиваю ST, столкнулся со следующим вопросом : Имеется ПЛК110, кнопка, пускатель и звонок. Обыденная...

Выполнить кодирование входных и выходных сигналов и внутренних состояний ЦА
Туда ли я пишу... подскажите пожалуйста как выполнить кодирование входных и выходных сигналов и внутренних состояний ЦА? прикладываю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru