Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
22
Добавлен:
23.02.2016
Размер:
64 Кб
Скачать

ПЗ АСУ ТП

Тема 4.2. Мови програмування в промислових системах.

Лекція 13.

Мови програмування в промислових системах.

  1. Мова програмування Tehno ST.

  2. Мова програмування Tehno SFC.

  1. Мова програмування Tehno ST.

Мова ST (cтруктурований текст) є текстовою мовою високого рівня і дуже сильно нагадує Паскаль.

Лістинг. Приклад програми на мові ST

IF Voltage>220 THEN

Current:=Current - 10; (*Якщо V>220B, то зменшити струм на 10*) ELSE

Current:=50; Speed:=ON;(Встановити струм 50A і включити мотор*) END_IF;

Мова ST має багато відмінностей від мови Паскаль і розроблена спеціально для програмування ПЛК. Вона містить безліч конструкцій для при­своєння значень змінним, для виклику функцій і функціональних бло­ков, для написання виразів умовних переходів, вибору операторів, для побудови ітераційних процесів. Ця мова призначена в основному для виконання складних математичних обчислень, опису складних функ­цій, функціональних блоків і програм.

У алфавіт мови входять:

1. прописні і рядкові букви латинського алфавіту;

2. цифри;

3. спеціальні знаки: + - * / < = > ! : & | ^ ∼ % ( )[ ], ; #.

Ідентифікатори можуть складатися з прописних і рядкових букв латинського алфавіту, знаку підкреслення "_", цифр. Ідентифікатори не чутливі до регістра.

В якості роздільників використовуються лексеми: + - * ** / < <= <> << > >= >> ! != = == : := & | ^ ∼ % ( ) [ ] . ., ;.

Рядковий коментар починається з «//» і триває до кінця рядка. Блоковий коментар починається з «/*» і триває до «*/».

У цій мові вводяться поняття вираження і пропозиції. Вираження— послідовність операндів, роздільників і символьних операторів, задаюча обчислення без привласнення результату.

Речення— послідовність лексем, що визначає виконання логічно закінченої проміжної дії. Реченнями є привласнення змінної результату яких-небудь обчислень, виклик функцій, операторів.

В кінці речення обов'язково повинен стояти символ «;». Виключенням є визначення змінної. Програма на мові Texno ST можна представити у вигляді структури:

PROGRAM

{опис аргументів}

{список речень}

END_PROGRAM

Змінні можна задати, заповнюючи таблицю аргументів, локальних і глобальних змінних. Змінні визначаються в розділі опису аргументів автоматично відповідно до заповнених таблиць аргументів і змінних.

Мова Texno ST дозволяє створювати константи. Розглянемо їх представлення. Можна створити числові і строкові константи. Цілочисельна десяткова константа починається з цифри, відмінної від нуля, після якої розташовуються будь-які цифри. Можна навести наступні приклади цілочисельних десяткових констант : 123, 350, 498.

Двійкова цілочисельна константа починається з префікса «2#», після якого приводиться двійкове представлення цілого числа. Приклади:

2#1011, 2#0111, 2#1001. Вісімкові цілочисельні константи починаються з префікса «8#», після якого записується вісімкове представлення числа. Приклади:

8#145, 8#0277, 8#756.

Шістнадцятиричні цілочисельні константи починаються з префікса «16#», після якого приводяться шістнадцятиричні представлення чисел.

При записі шістнадцятиричного представлення числа можна використовувати як рядкові символи a.f, так і прописні A. F. Приклади: 16#149, 16#A145E, 16#a145e.

Речова константа складається з цілої і дробової частини. Допустима наявність тільки цілочисельній або дробовій частині. Приклади: .123, 0.456, 489. . Можливе представлення у форматі з плаваючою точкою (використовується префікс е або E з вказівкою порядку). Приклади: 1.23E-6, 6.7504E4, 6.798e-5.

Частковим випадком числової константи є часовий інтервал, дата, час дня. Часовий інтервал записується у вигляді:

t#<дні>d<годинник>h<хвилини>m<секунди>s<мілісекунди>ms

Можливий також запис у вигляді:

time#<дні>d<годинник>h<хвилини>m<секунди>s<мілісекунди>ms

Будь-яка складова в приведених представленнях тимчасового інтервалу може бути опущена. Часовий інтервал рівний 2 годинам, 31 хвилинам, 25 секундам і 10 мілісекундам може бути записаний як t#2h31m25s10ms або у вигляді time#2h31m25s10ms.

Дата записується у вигляді d#<рік>-<місяць>-<день>, можливий також запис у вигляді date#<рік>-<місяць>-<день>. 25 вересня 2001 року може бути записано у вигляді d#2001-9-2001 або date#2001-9-2001.

Час дня можна записати у форматі tod#<годину>:<хвилина>:<секунда> чи time_of_day#<година>:<хвилина>:<секунда>. Час 19 годин 15 хвилин 42 секунди може бути записано якtod#19:15:42, так іtime_of_day#19:15:42.

Константа «дата і час» може бути записана як dt#<рік>-<місяць>-<день>-<година>:<хвилина>:<секунда>, так і date_and_time#<рік>-<місяць>-<день>-<година>:<хвилина>:<секунда>. Приміром, 12 лютого 1995 року 13 годин 47 хвилин і 13 секунд можна записати у вигляді dt#1995-2-12-13:47:13 або date_and_time#1995-2-12-13:47:13.

Окрім числових констант часто використовуються строкові константи, які є набором символів виокремлені в одинарні або подвійні лапки. Приклад: "Перший рядок символів", 'Другий рядок символів'. У рядках не можуть бути присутніми символи, що управляють, лапки і символ $. Для розміщення в рядку довільного символу, включаючи вказівники, використовується механізм ескейп-послідовностей.

Цей механізм дозволяє розмістити в рядку наступні послідовності:

$r — повернення каретки;

$n — переклад рядка;

$t — табуляція;

$uХХХХ — UNICODE символ, де ХХХХ— шістнадцятиричний символ;

$х— символ х («х» — будь-який символ).

Для розгалуження алгоритму використовується оператор if. Цей оператор завжди починається з ключового слова if і закінчується ключовим словом end_if

Мова Texno ST містить оператор вибору case. Оператор починається з ключового слова case і закінчується ключовим словом end_case. Перший варіант оператора сase можна представити таким чином:

case {вираження} of

{список значень}:{послідовність пропозицій};

{список значень}:{послідовність пропозицій};

end_case;

В даному випадку обчислюється вираження, здійснюється пошук результату обчислення в списках значень. Виконується та послідовність речень, в списках значень якої знайдений результат обчислень.

Мова Texno ST дозволяє створювати цикли використовуючи оператори while, repeat, for. Синтаксис оператора while має вигляд:

while {вираження} do {послідовність пропозицій};

end_while;

Цикл for можна представити у вигляді:

for {ім'я змінної} := {вираження 1} to {вираження 2} by

{вираження 3} do {послідовність пропозицій};

end_for;

Даний оператор спершу привласнює змінній циклу з вказаним ім'ям результат обчислення вираження 1, виконує послідовність речень, якщо обчислена змінна циклу не перевищить значення вираження 2. Потім до змінної циклу додається вираження 3, виконується послідовність речень, якщо вичислене значення не перевищує вираження 2. Виконання послідовності пропозицій і збільшення значення змінної на вираження 3 повторюється до тих пір, доки значення змінної циклу не перевищує вираження 2. Для циклу for характерне те, що він не дозволяє створювати цикл з негативним кроком.

Оператори break і exit дозволяють вийти з поточного циклу.

Оператор continue служить для переходу в кінець циклу. При його виклику усі пропозиції, що йдуть за ним до кінця циклу, не виконуються.

  1. Мова програмування Tehno SFC.

SFC (Sequential Function Chart) мова дозволяє створювати програму, оперуючи кроками і переходами. Під кроком слід розуміти підпрограму, написану на одній з мов, доступних в середовищі Trace Mode, і що виконує ту або іншу дію. Перехід- умова, при виконанні якого виконується певний крок. На рис. 1. зображені умовні графічні зображення кроку і переходу.

Рис. 1. Умовні графічні зображення кроку і переходу

Приклад SFC програми наведений на рис. 2. Напрям переходу від одного кроку до іншого вказується лінією і стрілкою. Наступний крок виконується у разі, якщо виконується умова переходу. Лінія із стрілкою, що сполучає перехід з лінією, що відображає напрям переходу, вказує на крок, який виконується, якщо умова переходу виконується.

Рис. 2. SFC програма

Кожен крок і перехід можна виділити. Виділений крок (перехід) відображається синім кольором. При виділенні переходу виділяється додатково лінія переходу, на яку поширюється умова переходу. Можна виділити лінію переходу. Виділена лінія зображається червоним кольором. Лінія переходу виділяється разом з переходом, діючим на цій лінії переходу і розташованою вище за інші переходи на виділеній лінії переходу. Крок (перехід) можна перейменувати, виділивши його і двічі клацнувши лівою клавішею миші по ньому, після чого можна ввести нове ім'я кроку (переходу).

Соседние файлы в папке ПЗ АСУ ТП_Гузнин