Модераторы: ama_kid
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IL. Программа для ПЛК по управлению насосами на яз, написать програму на CoDeSys  
V
    Опции темы
82Andrey
Дата 30.10.2012, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 29.10.2012

Репутация: нет
Всего: нет



В исходном состоянии жидкость в баке отсутствующая, сигнализирует 
уровень сухого хода насосу, включен Насос 1. При достижении жидкостью верхнего 
уровня выключается Насос 1 и включается Насос 2. Если уровень жидкости в баке выше 
верхнего уровня, то контролер об этом сигнализирует 

На основе задания разработать : 
a) таблицу сигналов; 
b) прикладную программу для ПЛК; 
c) дать описание работы прикладной программы. 
К таблице сигналов вносятся: 
· порядковый номер переменной; 
· имя переменной (не должно содержать пропусков и кириллицы); 
· тип переменной (дискретный, аналоговый); 
· класс переменной (локальная, глобальная); 
· адрес (для внутренних переменных не заполняется).

У нас есть код програми 
Код

VAR
    startbtn: BOOL; (* кнопка запуска *)
    starting: BOOL; (* процесс запущен *)
    stop_btn: BOOL; (* кнопка останова *)
    dry_lvl: BOOL; (* датчик сухого уровня *)
    hi_lvl: BOOL; (* датчик верхнего уровня *)
    ns1_start: BOOL; (* насос №1 запушен *)
    ns2_start: BOOL; (* насос №2 запушен *)
    avar_lamp: BOOL; (* лампа аварийного уровня *)
    start_btn: BOOL; (* кнопка запуска *)
    overflov_lvl: BOOL; (* датчик переполнения *)
    dry_lamp: BOOL; (* лампа "сухой бак" *)
    lo_lvl: BOOL; (* датчик нижнего уровня *)
    lo_lvl_lamp: BOOL; (* лампа "нижний уровень" *)
END_VAR
 
 
 (*кнопка запуска, останова, самоблокировка*)
LD      start_btn
OR(     starting
ANDN        stop_btn
    )
ST      starting
 
(*признак запуска, и если не верхнийи или не аварийный датчик - включен насос №1*)
LD      starting
ANDN        hi_lvl
ANDN        overflov_lvl
ST      ns1_start
 
(*признак запуска и если  верхнийи или аварийный датчик и не сухой уровень - включен насос №2 *)
LD      starting
AND(        hi_lvl
OR      overflov_lvl
)
AND     dry_lvl
ST      ns2_start
 
(*если переполнение - включаем аварийную лампу*)
LD      overflov_lvl
ST      avar_lamp
 
(*если сухой бак - включена лампа сухой бак*)
LDN     dry_lvl
ST      dry_lamp
 
(*если сработал датчик нижнего уровня - включаем лампу нижнего уровня*)
LD      lo_lvl
ST      lo_lvl_lamp



Чтобы запустить насос ему нужно присвоить значение TRUE! И хорошо бы использовать действительно Глобальные (то есть те которые на контроллере), а те, что у коде - они локальные

Как присвоит насосу значение TRUE, и использовать Глобальние.


Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  6.pdf 48,86 Kb
PM MAIL   Вверх
ama_kid
Дата 30.10.2012, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 1
Всего: 95



Цитата(82Andrey @  30.10.2012,  20:55 Найти цитируемый пост)
Как присвоит насосу значение TRUE
Зачем ему TRUE присваивать? У тебя в 29-й строке вроде признак формируется на включение, этого достаточно. Теперь просто на выход контроллера надо подать это значение.
Цитата(82Andrey @  30.10.2012,  20:55 Найти цитируемый пост)
и использовать Глобальние
Глобальные - это те переменные, декларация которых находится в Global Variable List. Открывай его и создавай там переменные, какие тебе надо (например, выхода на насосы).



--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
82Andrey
Дата 30.10.2012, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 29.10.2012

Репутация: нет
Всего: нет



как подать на выход контролера это значение?
PM MAIL   Вверх
ama_kid
Дата 31.10.2012, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 1
Всего: 95



Цитата(82Andrey @  31.10.2012,  00:50 Найти цитируемый пост)
как подать на выход контролера это значение? 
у тебя сейчас переменные     ns1_start: BOOL; (* насос №1 запушен *)
ns2_start: BOOL; (* насос №2 запушен *)
объявлены локально, насколько я понял. Ну, как минимум, они являются нелокализованными
Перетащи их в GVL и объяви с выходным адресом в соответствии с таблицей сигналов. Как-то так:
ns1_start   AT %QX0.0: BOOL; (* насос №1 запушен *)
ns2_start   AT %QX0.1: BOOL; (* насос №2 запушен *)





--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
82Andrey
Дата 31.10.2012, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 29.10.2012

Репутация: нет
Всего: нет



ясно спасибо)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | SCADA-системы и контроллеры стандарта IEC (МЭК) | Следующая тема »


 




[ Время генерации скрипта: 0.1282 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.