="justify"> Порядок моделювання.
Вивчити роботу Concept DFB.
Створити функціональний блок.
Запустити Concept і перевірити працездатність створеного функціонального блоку.
Вивчити принцип роботи розподільника елементів коду і розподільника каналів.
Створити в Concept DFB функціональні блоки розподільників.
Змоделювати в Concept на мові функціональних блоків розподільник елементів коду і розподільник каналів
Перевірити спільну роботу розподільника елементів коду і розподільника каналів проектованого пристрою.
Додаток 3
МОДЕЛЮВАННЯ ФУНКЦІОНАЛЬНИХ БЛОКІВ АЦП - ППЗУ З ВИКОРИСТАННЯМ промислових контролерів ФІРМИ SCHNEIDER ELECTRIC.
Завданням роботи є моделювання роботи аналого-цифрового перетворювача (АЦП) із застосуванням перепрограмувальний запам'ятовує (ППЗУ).
Нехай на входи АЦП подаватимуться сигнали з усіх датчиків і всі виходи розподільника каналів. Передбачимо також вхід скидання. Тоді АЦП буде мати (2k +1) входів, де k - число каналів. У розподільника каналів в конкретний момент часу тільки на одному виході буде логічна одиниця. Вона буде потактно пересуватися від одного виходу до іншого, підключаючи тим самим на перетворення в АЦП по черзі сигнали з усіх датчиків.
Розрядність АЦП визначається в процесі інформаційного розрахунку.
Перш ніж приступити до програмування АЦП, необхідно з початкових умов розрахувати крок квантування по рівню.
Розглянемо приклад програмування АЦП чотирирозрядний по двох каналах. У цьому випадку АЦП має 16 рівнів (2 4) і крок квантування повинен бути таким, щоб 16 кроків становили всю величину сигналу від датчика.
Використовуємо в програмі наступні змінні:
k1 - перший вхід від розподільника каналів (підключає перший датчик);
k2 - другий вхід від розподільника каналів (підключає другий датчик);
in1 - сигнал від першого датчика;
in2 - сигнал від другого датчика;
in - внутрішня змінна;
c - константа, рівна кроку квантування;
o1 - перший розряд виходу;
o2 - другий розряд виходу;
o3 - третій розряд виходу;
o4 - четвертий розряд виходу;
r - вхід скидання.
k1 THEN in:=in1; END_IF; k2 THEN in:=in2; END_IF; (in>=0.0) AND (in =c) AND (in <2.0 * c) THEN o1:=FALSE; o2:=FALSE; o3:=FALSE; o4:=FALSE; END_IF; (in>=2.0 * c) AND (in <3.0 * c) THEN o1:=FALSE; o2:=FALSE; o3:=FALSE; o4:=FALSE; END_IF; (in>=3.0 * c) AND (in <4.0 * c) THEN o1:=FALSE; o2:=FALSE; o3:=FALSE; o4:=FALSE; END_IF; (in>=4.0 * c) AND (in <5.0 * c) THEN o1:=FALSE; o2:=FALSE; o3:=FALSE; o4:=TRUE; END_IF; (in>=5.0 * c) AND (in <6.0 * c) THEN o1:=FALSE; o2:=FALSE; o3:=FALSE; o4:=TRUE; END_IF; (in>=6.0 * c) AND (in <7.0 * c) THEN o1:=FALSE; o2:=FALSE; o3:=FALSE; o4:=TRUE; END_IF; (in>=7.0 * c) AND (in <8.0 * c) THEN o1:=FALSE; o2:=FALSE; o3:=FALSE; o4:=TRUE; END_IF; (in>=8.0 * c) AND (in <9.0 * c) THEN o1:=FALSE; o2:=FALSE; o3:=TRUE; o4...