Група - Блоки виведення на екран

Група "Блоки виведення на екран"

Ця група блоків призначена для організації інтерфейсу між контролером та оператором. Блоки дозволяють виводити інформацію на екран та вводити значення з клавіатури у вільному вигляді. Крім блоків виведення на екран існує спеціальний інструмент: SMArt. Він дозволяє створювати меню та екранні форми за лічені хвилини, не відволікаючи програміста на розміщення FBD-блоків.

Сумісний (символьний) режим виведення Залежно від моделі, екран контролера можна подати у двох режимах роботи. Символьному та графічному. Символьний режим дозволяє виводити літери, цифри та спеціальні символи у жорстко відведені області. Окрема така область називається "знайоме місце". У всіх контролерів, крім власних режимів виведення тексту та графіки, є єдиний сумісний режим виведення виключно алфавітно-цифрової інформації: У сумісному режимі екран дозволяє вивести всю інформацію в чотири рядки по 20 символів кожна . Блоки, що використовують сумісний режим, звуться SCREEN() і INPUT number . Проекти, зроблені з їх використанням, будуть абсолютно однаково незалежно від моделі контролера.

Особливості застосування блоків виведення на екран Блоки виведення на екран працюють не за принципом "показую на екрані" / "не показую на екрані". Насправді вони записують свій вміст на екран, або не записують. Сам екран при цьому пам'ятає все, що з ним відбувалося з моменту включення контролера. Таким чином, щоб змусити напис "блимати", потрібно поперемінно виводити на екран або потрібний текст, або кількість пробілів, що дорівнює розміру тексту. Розберемо з прикладу: є блок SCREEN(str). Блок містить напис "Привіт я SMH!". Довжина напису 14символів. Щоб змусити цей напис блимати, потрібно з постійним інтервалом виводити поперемінно або напис, або 14 пробілів. Що й досягається поперемінним виведенням нульової або першого рядка зі списку всередині блоку:

виведення
Крім необхідності стирання непотрібної інформації з екрана, також існує необхідність стеження за перекриттям один одного зображень, що виводяться на екран. Якщо, звісно, ​​це зроблено не спеціально. Розберемо на прикладі: два блоки SCREEN(str) виводять текст в один і той же рядок екрану. Перший блок виводить напис "Привіт, я SMH!" з нульового символу, другий блок виводить напис "Так, привіт!" з десятої. У написі "Так, привіт!" десять знаків, тобто. виходить, що напис виводиться наприкінці рядка. Висновок кінцевого зображення можна поетапно зобразити так:
блоки
Жовтим кольором виділена область, де написи наклалися один на одного. Блок, що має більший порядковий номер (правий), "затре" те, що виводив блок з меншим порядковим номером (лівий). Це відбувається тому, що всі блоки виконуються один за одним за порядком прямування номерів. Спочатку напис на екран вивів перший блок, потім другий. Області накладання особливо яскраво проявляють себе на контролерах моделі SMH2010. У цій моделі немає проміжного буфера екрану, тому обидві написи перемигуватиметься або навіть "миготіти" з високою частотою, яка залежить від швидкості виконання програми контролером. Описані вище особливості дозволяють заощаджувати ресурси контролера. Економія досягається так: для того, щоб вивести напис зовсім необов'язково тримати блок виведення включеним безперервно. Деякі блоки (наприклад, виведення на екран графічного зображення або виведення числа формату real) витрачають при роботі досить-такі істотні ресурси. Наведені нижче дві схеми тотожні. Тобто. зовні працюють абсолютно однаково: при включенні контролера з його екрані з'являється число " 123.4567 " . Але різниця у споживаних ресурсах істотна!
група
Ліва схема безперервно споживає близько 1.5 мсек процесорного часу контролера Pixel-25. Права схема практично нічого не споживає, т.к. витратила ті ж 1.5 мсек один раз і тільки при включенні контролера. Далі блок виводу відключається і бере участь у роботі програми. Екран "пам'ятає" виведену інформацію.

Опис Виводить один рядок символів на екран.

enable – включення блоку. 1 - запис на екран дозволено, 0 - запис заборонено

sel – у властивостях блоку можна задати набір рядків для виведення. На екран виводиться рядок зі списку рядків блоку з порядковим номером, який відповідає числу на цьому вході. Нумерація починається з 0. При виставленні на вхід числа більшого, ніж номер останнього рядка у списку, відбувається зациклювання рядків. Наприклад, якщо у списку 3 рядки (№0, 1, 2), а на вході sel виставлено 4, то на дисплеї виведеться рядок №1, якщо sel = 5, то відобразиться рядок №2

X - координата по горизонталі, з якої починається виведення рядка, діапазон від 0 до 19

Y - координата по вертикалі, з якої починається виведення рядка, діапазон від 0 до 3

При заданні enable = 0 затирання області екрана не відбувається! Блок перестає працювати, але рядок залишається на екрані до тих пір, поки в це місце не буде виведено інше зображення. Якщо потрібно видалити напис з екрана, потрібно на місце вивести рівну кількість пробілів

SCREEN (int), SCREEN (long), SCREEN (real)

Опис Виведення на екран одного числа відповідного типу блоку.

enable -увімкнення блоку. 1 - запис на екран дозволено, 0 - запис заборонено

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

X - координата по горизонталі, з якої починається виведення числа, діапазон від 0 до 19

Y - координата по вертикалі, з якої починається виведення числа, діапазон від 0 до 3

При заданні enable = 0 затирання області екрана не відбувається! Блок перестає працювати, але число залишається на екрані до тих пір, поки в це місце не буде виведено інше зображення. Якщо потрібно видалити число з екрана, потрібно на його місце вивести рівну кількість пробілів

Опис Введення числа з клавіатури.

Застосовується разом із одним із блоків опитування клавіатури (приклад введення тризначного числа):

група

При натисканні на Enter або Ok блок починає процедуру введення числа і виводить на екран миготливий курсор. Вихід ready набуває нульового значення, показуючи що розпочато введення числа. При введенні чисел або символів блок відображає їх на екрані, переміщуючи курсор на нову позицію праворуч від останнього введеного символу. При завершенні введення (повторне натискання на Enter або Ok) вихід ready набуває одиничного значення, показуючи що введення числа закінчено. Введені символи видаляються з екрана. Далі слідує дешифрування введеного числа. У разі нормального розпізнавання числа вихід sync набуває одиничного значення і введене значення можна побачити на виходах Int, Long та Real. Якщо число не розпізнане, sync залишиться в нульовому стані, на виходах Int, Long і Real будуть нулі. Введення порожнього рядка вважається за введення нуля.

ASCII - вхід до прийняття ASCII-коду

len -максимальна довжина числа, що вводиться

X - координата по горизонталі, з якої починається введення числа, діапазон від 0 до 19

Y - координата по вертикалі, з якої починається введення числа, діапазон від 0 до 3

int, long, real - виведення числа у відповідному форматі

ready - дорівнює 0 на початку введення. дорівнює 1 після закінчення будь-якого введення, в тому числі і якщо введення було скасовано ESC

sync - Видає 0 на початку введення. Видає 1 після закінчення успішного введення та отримання нового числа

Опис Виведення одного рядка символів на екран зі зміною шрифтів та ефектами виведення.

enable – включення блоку. 1 - запис на екран дозволено, 0 - запис заборонено

sel – у властивостях блоку можна задати набір рядків для виведення. На екран виводиться рядок зі списку рядків блоку з порядковим номером, який відповідає числу на цьому вході. Нумерація починається з 0. При виставленні на вхід числа більшого, ніж номер останнього рядка у списку, відбувається зациклювання рядків. Наприклад, якщо у списку 3 рядки (№0, 1, 2), а на вході sel виставлено 4, то на дисплеї виведеться рядок №1, якщо sel = 5, то відобразиться рядок №2

X - координата по горизонталі, з якої починається виведення рядка, діапазон залежить від моделі контролера

Y - координата по вертикалі, з якої починається виведення рядка, діапазон залежить від моделі контролера

Можливі значення координат для різних контролерів визначаються роздільною здатністю екрана:

Pixel 25xx: X від 0 до 121, Y від 0 до 31
SMH 2G, 2Gi: X від 0 до 191, Y від 0 до 63

font - вибір шрифту для виведення тексту: 0 і 2 - стандартний шрифт 7х6, 1 - нічого не виводить, 3 - шрифт 12х9

type - ефект при виведенні тексту: 0 - звичайний висновок ззатиранням фону, 1 - прозорість, 2 - інверсія, 3 - прозорість та інверсія

При заданні enable = 0 затирання області екрана не відбувається! Блок перестає працювати, але рядок залишається на екрані до тих пір, поки в це місце не буде виведено інше зображення. Якщо потрібно видалити напис з екрана, потрібно на місце вивести рівну кількість пробілів

SCREEN2G (int), SCREEN2G (long), SCREEN2G (real)

група

Опис Виведення на екран одного числа відповідного типу блоку. Висновок проводиться зі зміною шрифтів та ефектами.

enable – включення блоку. 1 - запис на екран дозволено, 0 - запис заборонено

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

X - координата по горизонталі, з якої починається виведення числа, діапазон залежить від моделі контролера

Y - координата по вертикалі, з якої починається виведення числа, діапазон залежить від моделі контролера

Можливі значення координат для різних контролерів визначаються роздільною здатністю екрана:

Pixel 25xx: X від 0 до 121, Y від 0 до 31
SMH 2G, 2Gi: X від 0 до 191, Y від 0 до 63

font - вибір шрифту для виведення числа: 0 і 2 - стандартний шрифт 7х6, 1 - шрифт 5x4, 3 - шрифт 12х9

type – ефект при виведенні тексту: 0 – звичайний висновок із затиранням фону, 1 – прозорість, 2 – інверсія, 3 – прозорість та інверсія.

При заданні enable = 0 затирання області екрана не відбувається! Блок перестає працювати, але число залишається на екрані до тих пір, поки в це місце не буде виведено інше зображення. Якщо потрібно видалитичисло з екрана, потрібно на його місце вивести рівну кількість прогалин

блоки

Опис Виведення одного рядка символів на екран зі зміною шрифтів та ефектами виведення. Підтримується лише контролером Trim

enable – включення блоку. 1 - запис на екран дозволено, 0 - запис заборонено

sel – у властивостях блоку можна задати набір рядків для виведення. На екран виводиться рядок зі списку рядків блоку з порядковим номером, який відповідає числу на цьому вході. Нумерація починається з 0. При виставленні на вхід числа більшого, ніж номер останнього рядка у списку, відбувається зациклювання рядків. Наприклад, якщо у списку 3 рядки (№0, 1, 2), а на вході sel виставлено 4, то на дисплеї виведеться рядок №1, якщо sel = 5, то відобразиться рядок №2

X - координата по горизонталі, з якої починається виведення рядка, діапазон від 0 до 799

Y - координата по вертикалі, з якої починається виведення рядка, діапазон від 0 до 479