Просмотр полной версии : Простенькая программа (нужна помощь)
vooodooo22
16.03.2012, 15:34
Доброго всем времени суток.
Добрые люди, помогите пожалуйста написать простенькую программку по таким данным и условию, желательно FBD или ST для наглядности:
•Дано:
вход 1 (START)
выходов 4 (Q1,Q2,Q3,Q4)
•Условие:
Если START:=TRUE тогда
1-ая секунда:
Q1:=TRUE
Q2:=FALSE
Q3:=FALSE
Q4:=FALSE
2-ая секунда:
Q1:=FALSE
Q2:=FALSE
Q3:=FALSE
Q4:=FALSE
3-ая секунда:
Q1:=TRUE
Q2:=TRUE
Q3:=FALSE
Q4:=FALSE
4-ая секунда:
Q1:=FALSE
Q2:=FALSE
Q3:=FALSE
Q4:=FALSE
и т.д. (условие представленно на вложенном изображении)
Заранее всем откликнувшимся большое спасибо.
PS. Изучать CoDeSys взялся недавно, пытаюсь вникнуть в суть работы FBD и ST
Два вопроса:
1. Что должно быть на 13, 14 секунде и т.п.?
2. Если в момент 5 секунды пропал сигнал Start, то после его появления всё должно начаться сначало или продолжиться для 6 секунды?
vooodooo22
16.03.2012, 17:12
Два вопроса:
1. Что должно быть на 13, 14 секунде и т.п.?
2. Если в момент 5 секунды пропал сигнал Start, то после его появления всё должно начаться сначало или продолжиться для 6 секунды?
1. На 13 секунде цикл начинается заново, т.е.
13-ая секунда:
Q1:=TRUE
Q2:=FALSE
Q3:=FALSE
Q4:=FALSE
14-ая секунда:
Q1:=FALSE
Q2:=FALSE
Q3:=FALSE
Q4:=FALSE
и т.д.
2. START присутствует только для запуска программы, свое рода включатель без фиксации (активатор). Отсюда ответ: вне зависимости от пропажи сигнала START цикл продолжает работать до конца.
а аварийный останов + просто кнопка стоп ГДЕ?
С таким техзаданием смею предположить, что останов автоматическим выключателем или рубильником. При этом, если а5 включат например через две минуты, то скакого места начнется работа?
P. S. что-то с техзаданием не так:confused:
vooodooo22
16.03.2012, 17:32
а аварийный останов + просто кнопка стоп ГДЕ?
С таким техзаданием смею предположить, что останов автоматическим выключателем или рубильником. При этом, если а5 включат например через две минуты, то скакого места начнется работа?
P. S. что-то с техзаданием не так:confused:
Об этом я еще не думал, пока рассуждал как же задать логику при таком условии, а об аварийной остановке и кнопке СТОП уже после. :o
Это не полное техзадание так скажем, а кусочек для общего понятия/представления в каком направлении двигаться
А вот как на ПР это выглядит:) с макросом массива (ППЗУ) на FBD;) старт рисовать не стал ,не в нем счастье :D
vooodooo22
19.03.2012, 08:07
:) мой вариант
чем открыть файл расширения .exp? :confused:
Здравствуйте vooodooo22
чем открыть файл расширения .exp? :confused:
Выбираем "Импорт" из меню "Проект" :-)
Далее стандартное виндузовское окно выбора файла
vooodooo22
19.03.2012, 09:03
Выбираем "Импорт" из меню "Проект" :-)
Далее стандартное виндузовское окно выбора файла
Спасибо :)
var
набор : array[0..12]of byte := 0,1,0,3,0,7,0,15,0,15,0,15,0;
i : byte;
t:ton;
start:bool;
*********
t(in:=start and not t.q, pt:=T#1s);
i:=min(i+bool_to_word(t.q),12)*bool_to_word(start) ;
Q1:=набор[i].0;
Q2:=набор[i].1;
Q3:=набор[i].2;
Q4:=набор[i].3;
Выдает ошибку:( :
Выдает ошибку:( :
Объявите
i : byte;
как
i : Word;
Должно помочь :-)
vooodooo22
19.03.2012, 09:34
Объявите
i : byte;
как
i : Word;
Должно помочь :-)
все четко, спасибо
vooodooo22
21.03.2012, 11:08
На счет техзадания в данной программе:
Как я уже говорил в теме ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков) (http://www.owen.ru/forum/showthread.php?t=10555&page=62) пост #613, ПЛК будет заменять РКС (конкретно РКС14) в добавок ПЛК должен будет регулировать величину подаваемого тока на контакты для сварки прутков диаметром 36 мм. Изменение величины тока в данном случае требуется в связи с появлением, после каждого приваренного прутка, шунтированного (паразитного) тока. Так в примерном случае представленном на рисунке величина тока будет такая:
• пруток 1 - 100% ток
• пруток 2 - 120%
• пруток 3 - 130%
• пруток 4 - 140%
Если рассмотреть последующие прутки (5,6,7 и т.д.). то в них требуется ток величиной 140% в связи с тем, что шунтированный (паразитный) ток на 5-6 прутках почти незаметны, т.е.:
• пруток 5 - 140%
• пруток 6 - 140%
• пруток n - 140%
• пауза (в мс, для среза сетки нужного габарита)
• пруток m - 140%
• стоп (либо остановка программы в случае возникновения какой-либо ошибки)
Про аварийные ситуации в программе:пока не изучил эту область на столько, чтобы понять из чего она будет состоять, как ее можно реализовать и как она будет работать вообще.
В результате всего выше перечисленного возникла потребность разобраться с системой ЦАП.
Отсюда вопрос:) :
Возможно ли создать в Codesys ЦАП (цифро-аналоговый преобразователь), если да, то как примерно он может выглядеть в рамках данной (в этой теме) программы, если он (ЦАП) получает данные от входов Q1,Q2,Q3,Q4?
Если есть на много проще вариант, буду рад увидеть =)
Вот такое техзадание:)
vooodooo22
23.03.2012, 15:49
var
набор : array[0..12]of byte := 0,1,0,3,0,7,0,15,0,15,0,15,0;
i : byte;
t:ton;
start:bool;
*********
t(in:=start and not t.q, pt:=T#1s);
i:=min(i+bool_to_word(t.q),12)*bool_to_word(start) ;
Q1:=набор[i].0;
Q2:=набор[i].1;
Q3:=набор[i].2;
Q4:=набор[i].3;
подскажите пожалуйста какую роль играет ".0" в строке "Q1:=набор[i].0;" и как в крации она работает в сочетании с "набор[i]"?:confused:
vooodooo22
26.03.2012, 15:12
Ребят, всем спасибо большое за приведенные примеры решения по данной теме, есть от чего отталкиваться. На мой взгляд самой наглядной (для новичка) оказался пример от capzap MIG.exp, за что ему отдельное огромное спасибо!
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot