Наши рекомендации

АзбукаКИП

Форма входа
Поиск по сайту

Опрос
Нравиться ли Вам ваша работа?

Всего ответов: 569


Яндекс.Метрика
Здравствуйте, Гость | Регистрация | Вход

Новая статья на сайте
от 06.12.2016

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Новые темы на форуме
Популярные темы форума
Страница 1 из 11
Форум по КИП и А » Неформальное общение » Помощь студентам и учащимся » Программирование STL
Программирование STL
shargonДата: Понедельник, 18.03.2013, 17:20 | Сообщение # 1
Слесарь КИП
Группа: Пользователи
Сообщений: 6
Репутация: 0
Статус: Offline
Город: Tallinn
Сейчас прохожу практику, изучаю Step 7, а в нём stl. Получил задание написать программу автоматической работы окон в машине. Сама программа не представляет сложностей.

Как известно, окна два: левое и правое. Работают они одинаково, по одному и тому же алгоритму. Проблема в том, чтобы найти метод написания программы без тупо повторения, заменяя только адреса входов , выходов и меркеров. Самостоятельно не смог найти способов решения. В голову лезет только например создать алгоритм без адресации, и присваивать адреса и выполнять программу после нажатия кнопок пуск. То есть, нажата кнопка 1, значит это левое окно и значит надо управлять выходами для левого окна и наоборот.

Не знаю, возможно ли вообще такое.

Суть вопроса состоит в том, есть множество одинаковых механизмов, например окна, которые работают совершенно одинаково. Их программный код в STL одинаков, разные только адреса входов и выходов. Как сделать так, чтобы не прописывать вручную то же самое, меняю только индексы у I , Q и M.

Спасибо за ваше время, буду рад любой подсказке и помощи.
 
reliableДата: Понедельник, 18.03.2013, 17:52 | Сообщение # 2
Инженер КИП
Группа: Друзья
Сообщений: 26
Репутация: 1
Статус: Offline
Думаю можно попробовать создать свою функцию с входами и выходами. Потом использовать ее многократно в коде с разными адресами на входах и выходах.

 
shargonДата: Понедельник, 18.03.2013, 18:13 | Сообщение # 3
Слесарь КИП
Группа: Пользователи
Сообщений: 6
Репутация: 0
Статус: Offline
Город: Tallinn
А как это сделать ? Ну вот например есть:
I 0.0 // открыть окно
I 0.1 //закрыть окно
I 0.2 //стоп
Q4.0 //окно вверх
Q4.1//окно вниз

и сама программа:

A I0.0
S Q4.0
A I0.1
S Q4.1
A I0.2
R Q4.0
R Q4.1

То есть вы имеете ввиду сделать просто шаблон без индексов ? а потом присваивать индексы по мере работы ?


Сообщение отредактировал shargon - Понедельник, 18.03.2013, 18:18
 
Владимир_куДата: Понедельник, 18.03.2013, 18:19 | Сообщение # 4
Бригадир КИП
Группа: Пользователи
Сообщений: 13
Репутация: 0
Статус: Offline
Город: Каменск-Уральский
В принципе у Вас все верно, три ранга программы. Только на окне стоит обычно конечники верхнего и нижнего положения, так же в Вашей программе получается что нажал на кнопку и происходит движение до упора, то есть в промежуточном положении его не остановить. Так же у Вас реализована возможность подать команду как на подъем так и на опускание что так же при работе оборудования не допустимо
 
shargonДата: Понедельник, 18.03.2013, 18:46 | Сообщение # 5
Слесарь КИП
Группа: Пользователи
Сообщений: 6
Репутация: 0
Статус: Offline
Город: Tallinn
Владимир_ку,
Я не пытался описать точную логику, хотел всего лишь узнать, как написать программу для нескольких одинаковых механизмов. Которые имеют одинаковые кнопки и моторы. Просто индексация разная, и чтобы избавить себя от ручной прописки. Думал, может есть такая возможность программно это реализовать. Например написать программу без индексов и присваивать их уже после поступления сигнала с входов. Была нажата кнопка вверх или вниз, определяется что это за вход и присваиваются индексы выходам.

А с окном всё просто, есть датчик полного открытия и закрытия. Знаем что окно открывается 5 сек.
 
Владимир_куДата: Понедельник, 18.03.2013, 19:00 | Сообщение # 6
Бригадир КИП
Группа: Пользователи
Сообщений: 13
Репутация: 0
Статус: Offline
Город: Каменск-Уральский
Цитата (shargon)
Владимир_ку, Я не пытался описать точную логику, хотел всего лишь узнать, как написать программу для нескольких одинаковых механизмов. Которые имеют одинаковые кнопки и моторы. Просто индексация разная, и чтобы избавить себя от ручной прописки. Думал, может есть такая возможность программно это реализовать. Например написать программу без индексов и присваивать их уже после поступления сигнала с входов. Была нажата кнопка вверх или вниз, определяется что это за вход и присваиваются индексы выходам.

К сожалению в step7 такое не реализовать. За все 5 лет что работаю с этим оборудованием постоянно приходиться копировать алгоритм и в каждом отдельном случае прописывать входа и выхода
 
shargonДата: Вторник, 19.03.2013, 02:13 | Сообщение # 7
Слесарь КИП
Группа: Пользователи
Сообщений: 6
Репутация: 0
Статус: Offline
Город: Tallinn
Владимир_ку,

Спасибо за информацию. Сам только недавно начал учиться. Дали задания реализовать автоматическое окно. Чтобы были входы, выходы и управление. Управление тоже придуманное, просто чтобы было, уметь записать в память, потом достать от туда, сравнить с чем нибудь и если нужно вывести результат. Руководитель предложил поиграться со временем, знаем, что окно из самого нижнего положения открывается в самое верхнее за 5 сек, ежели времени прошло больше чем 5 сек и датчик не подтвердил открытие, то выводится тревога ну и стоп моторов заодно.

А на счёт копирования, думаю может какой скрипт в Excel поможет.

Добавлено (19.03.2013, 02:13)
---------------------------------------------

Нуждаюсь в помощи, подсказке.

Есть очень нехитрый код:

A I 0.3
A I 0.0
= Q 4.0

FR T 0
L S5T#10S
T MW 21

SE T 0

A I 0.0
A T 0
= Q 4.0

A I 0.2
A I 0.1
= Q 4.1

FR T 1
L S5T#10S
T MW 22

SE T 1

A I 0.1
A T 1
= Q 4.1

A M 1.7
= Q 4.5

Есть 2 моторчика Q 4.0 и Q 4.1, которые работают при наборе сигналов с I 0.3, I 0.0 и I 0.2 ,I 0.1. И работают эти моторчики в течении 10 секунд таймера. Всё условно. Хочу сделать проверку на ошибку. 10 секунд это стандарт работы моторчика, если больше, то нужно быть тревогу в виде моргания Q4,5 . В блоке данных указал переменную " меркер" со значением INT = 10. В Symbol Editor указал тот же " меркер" с адресом MW 20 c Data type INT. Буду менять значение таймера на большее, чем 10 секунд, якобы произошел сбой. И хотелось бы сравнить с постоянной " меркер" со значением INT = 10. Откуда последует вывод ALARM и будет моргает Q4,5.

По хелпарю увидел, что нужно загрузить Значение MW 20 и значение с таймера 1 - MW 21 или таймера 2 - MW 22, так как они одинаковы. и сравнить их, если значение с таймера- MW 21 or MW 22 будет больше, чем MW 20, то моргает Q4,5.

Подскажите пожалуйста, как правильно это написать ?

Написал сравнение меркеров и результат должен выводиться в Q 4.2, но почему-то при равных значениях, лампочка всё равно светит.

A I 0.3
A I 0.0
= Q 4.0

FR T 0
L S5T#10S
T MW 21

SE T 0

A I 0.0
A T 0
= Q 4.0

A I 0.2
A I 0.1
= Q 4.1

FR T 1
L S5T#10S
T MW 22

SE T 1

A I 0.1
A T 1
= Q 4.1

L MW 21
L MW 20
>I
= Q 4.2

с криншотами DB1 и Symbols можно тут ознакомиться

http://iadt.siemens.ru/forum/viewtopic.php?p=123574#123574


Сообщение отредактировал shargon - Вторник, 19.03.2013, 04:45
 
Владимир_куДата: Вторник, 19.03.2013, 10:51 | Сообщение # 8
Бригадир КИП
Группа: Пользователи
Сообщений: 13
Репутация: 0
Статус: Offline
Город: Каменск-Уральский
Для начала Ваша программа не совсем работоспособная, у Вас создан блок данных, а вот записи в этот блок я не увидел. Зачем записывать кнопки в блок данных? Что означают сигналы I 0.3, I 0.0 и I 0.2 ,I 0.1? И еще вопрос есть ли у Вас стенд для программирования?
 
shargonДата: Вторник, 19.03.2013, 16:37 | Сообщение # 9
Слесарь КИП
Группа: Пользователи
Сообщений: 6
Репутация: 0
Статус: Offline
Город: Tallinn
Здравствуйте, кнопки занёс в блок данных так как видел это в примере, который лежит тут http://www.step7-pro.ru/example/ex1.html. Как понимаю переменные I and Q не нужны там? Хотя в примерах в самом Step 7 входы и выходы тоже занесены в блоки данных.
http://s43.radikal.ru/i099/1303/ca/2d982008808e.jpg

I0,0 пуск вверх
I0.1 пуск вниз
I0,2 сенсор показывает, что окно полностью открыто
I0,3 сенсор показывает, что окно полностью заккрыто
Q4,0 мотор вверх
Q4,1 мотор вниз
T0 таймер
Т1 таймер
MW20 меркер
MW21меркер1
MW22меркер2

Стенда как такового нет. В конторе есть контроллеры, но я их пока только внешне посмотрел, работаю только с симулятором.

Добавлено (19.03.2013, 16:37)
---------------------------------------------

Цитата (shargon)
Для начала Ваша программа не совсем работоспособная

Можете сказать почему?


Сообщение отредактировал shargon - Вторник, 19.03.2013, 16:32
 
Владимир_куДата: Вторник, 19.03.2013, 17:35 | Сообщение # 10
Бригадир КИП
Группа: Пользователи
Сообщений: 13
Репутация: 0
Статус: Offline
Город: Каменск-Уральский
У Вас нет записи в дбшку, нет чтения из нее.Смысл создавать тогда ее. Так же почему для сравнения использовать допустим слово в DBшке.?
 
Форум по КИП и А » Неформальное общение » Помощь студентам и учащимся » Программирование STL
Страница 1 из 11
Поиск:


КИПиА от А до Я
© 2010-2017