8 Език за стълбови диаграми ld
Езикът LD (Ladder Diagram) е графичен език, базиран на принципите на релейно-контактните схеми (елементите на релейно-контактната логика са: контакти, релейни намотки, вертикални и хоризонтални джъмпери и др.) с възможност за използване на голям брой различни функционални блокове. Езикът на релейните схеми съществува от времето на Т. Едисон и е адаптиран към PLC в началото на 70-те години на миналия век. Символиката на този език е заимствана от дизайна в областта на електротехниката.
Предимствата на езика LD са: представянето на програмата под формата на електрически поток (близо до специалистите по електротехника), наличието на прости правила, използването само на булеви изрази. Има широк кръг от потребители, рационален е за ръчна оптимизация на специфични критични кодови точки.
Структурата на секцията LD съответства на стъпките за действие на релейните превключватели.
Обектите на езика за програмиране LD осигуряват средство за структуриране на организационна единица (секция) на PLC в определен брой контакти, бобини и FFB. Тези обекти са свързани помежду си чрез действителни параметри или връзки.
Редът, в който отделните обекти се обработват в LD секция, се определя от потока от данни в секцията. Стъпалата, свързани към лявата захранваща шина, се обработват отгоре надолу (връзка към лявата захранваща шина). Стъпалата в рамките на секция, които са независими една от друга, се обработват по ред на разположение.
Теоретично всеки раздел може да съдържа произволен брой обекти, което означава произволен брой входове и изходи. Въпреки това е желателно цялата програма да се раздели на няколко логически модула, т.е. на различни секции.
LD секциите могат да бъдат преобразувани в FBD секции с помощта на командата от менюто File → Export… → Program: IEC-Text за експортиране в ST или IL езици, след което теможе да се импортира с командата от менюто File → Import… → Program: IEC-Text. Преобразуването на FBD секции в LD секции не е възможно.

Фигура 8.1 - Изображение на LD секцията
За нормално отворени контакти (фигура 8.2), състоянието на лявата връзка се прехвърля към дясната връзка, ако състоянието на свързания логически действителен параметър е ВКЛЮЧЕНО. В противен случай състоянието на дясната връзка е ИЗКЛЮЧЕНО.
Фигура 8.2 - Нормално отворен контакт
За нормално затворени контакти (фигура 8.3), състоянието на лявата връзка се прехвърля към дясната връзка, ако състоянието на свързания логически действителен параметър е ИЗКЛЮЧЕНО. В противен случай състоянието на дясната връзка е ВКЛЮЧЕНО.
Фигура 8.3 - Нормално затворен контакт
В контактите за откриване на положителни преходи (фигура 8.4), дясната връзка е настроена на състояние ON, ако преходът на свързания действителен параметър е от OFF към ON, и в същото време състоянието на лявата връзка е ON. В противен случай състоянието на дясната връзка е ИЗКЛЮЧЕНО.
Фигура 8.4 - Контакт за определяне на положителни преходи
В контактите за откриване на отрицателни преходи (фигура 8.5), дясната връзка е настроена на състояние ON, ако преходът на свързания действителен параметър е от ON към OFF, а състоянието на лявата връзка е ON в същото време. В противен случай състоянието на дясната връзка е ИЗКЛЮЧЕНО.
Фигура 8.5 - Контакт за определяне на отрицателни преходи
В намотките (фигура 8.6) състоянието на лявата връзка се предава на свързания логически действителен параметър и на дясната връзка.
Намотките обикновено следват контакти или EFB, но те също могат да бъдат последвани от контакти.
Фигура 8.6 - Намотка
В инвертираща намотка (Фигура 8.7) състоянието на лявата връзка се копира в дясната връзка. Обърнатото състояние на лявата връзка се копира към връзкатабулев действителен параметър. Ако връзката е в ИЗКЛЮЧЕНО състояние, тогава дясната връзка също ще бъде в ИЗКЛЮЧЕНО състояние и свързаният логически действителен параметър ще бъде в ВКЛЮЧЕНО състояние.
Фигура 8.7 - Инвертираща намотка
В бобината за настройка (Фигура 8.8) състоянието на лявата връзка се копира в дясната връзка. Свързаният булев действителен параметър е зададен на ON, ако лявата връзка е ON, в противен случай не се променя. Свързаният логически действителен параметър може да бъде нулиран само от бобината за нулиране.
Фигура 8.8 - Инсталационна намотка
В бобината за нулиране (Фигура 8.9) състоянието на лявата връзка се копира в дясната връзка. Свързаният логически действителен параметър е зададен на OFF, ако лявата връзка е ON, в противен случай не се променя. Свързаният логически действителен параметър може да бъде зададен само от бобината за настройка.
Фигура 8.9 - Намотка за нулиране
В намотката за откриване на положителни преходи (Фигура 8.10), състоянието на лявата връзка се копира в дясната връзка. Свързаният действителен параметър от тип данни BOOL ще бъде зададен на ON за програмния цикъл, ако лявата връзка премине от OFF към ON.
Фигура 7810 - Бобина за откриване на водещ ръб
В отрицателната преходна намотка (Фигура 8.11) състоянието на лявата връзка се копира в дясната връзка. Свързаният действителен параметър от тип данни BOOL ще бъде зададен на ON за програмния цикъл, ако лявата връзка премине от ON към OFF.
Фигура 8.11 - Бобина за откриване на задния ръб
FFB ще бъдат редактирани само ако поне един булев вход е свързан към лявата захранваща шина. Ако FFB няма булев вход, трябва да се използва входът EN на FFB. Ако FFBтрябва да се изпълни условно, булевият вход може да бъде предварително свързан чрез контакти или други FFB.
Всеки FFB без булева връзка към лявата захранваща шина ще предизвика съобщение за грешка при зареждане в PLC. Фигура 8.12 показва пример за използване на FFB в LD.

Ако стойността на EN е ”0”, когато се извика FFB, алгоритмите, дефинирани от FFB, няма да бъдат изпълнени. В този случай стойността на ENO автоматично се настройва на ”0”.
Ако стойността на EN е ”1” при извикване на FFB, алгоритмите, дефинирани от FFB, ще бъдат изпълнени. След като тези алгоритми работят без грешка, стойността на ENO автоматично се настройва на „1“. Ако възникне грешка по време на изпълнението на тези алгоритми, ENO ще бъде настроен на ”0”.
Поведението на изхода на FFB е независимо от FFB, извикан без EN/ENO или с EN=1.
EFB AND_BOOL, NOT_BOOL, OR_BOOL, R_TRIG и F_TRIG не са налични в LD. Тяхната функционалност се реализира с помощта на контакти. EFB MOVE не може да се използва с типа данни BOOL.
За контакти и бобини типът данни на действителния параметър трябва да бъде тип данни BOOL. При FFB I/O типовете данни на действителните параметри трябва да съвпадат с I/O типа данни. Единственото изключение е генеричният FFB I/O, където типът данни се определя от формален параметър.
Връзка.Връзките са връзки между контакти, намотки и FFB. Множество връзки могат да бъдат свързани към контакт, намотка или FFB изход. Точките на всяка такава връзка са маркирани с удебелена точка.
Типовете данни на свързаните I/O трябва да съвпадат.
Връзките могат да се редактират в режим Избор. Допуска се застъпване от други обекти.
При поставяне на контакти и бобинихоризонталновръзкитесе свързват автоматично със съседни, несвързани контакти или намотки, ако контактите или намотките и FFB I/Os са на една и съща вертикала. Комуникацията със захранващата шина ще бъде установена само ако наблизо има контакт. Ако намотка или намотка се постави върху вече съществуваща хоризонтална връзка, тя ще бъде автоматично прекъсната и контактът или намотката ще бъдат вмъкнати (това не се отнася за командата Преместване). При поставяне на действителните параметри те могат да се припокриват с друг обект, но не нарушават обхвата на рамката на сечението. Ако чрез една връзка се установи връзка с друг обект, тази връзка ще бъде проверена. Ако връзката не е разрешена, се появява съобщение и връзката няма да бъде генерирана.
Когато премахвате контакти или намотки, всички свързани контакти или намотки също ще бъдат изтрити. Тук се използват същите условия при поставянето им.
Връзките не могат да се използват за конфигуриране на контури, тъй като не е възможно недвусмислено да се определи редът на обработка в дадена секция. Контурите трябва да бъдат създадени с помощта на действителните параметри.
Хоризонталните връзки се установяват автоматично след поставянето.
вертикалната връзка е специален случай на връзка.Вертикалната връзка се използва като логическо ИЛИ. Тази форма на свързване ИЛИ позволява да бъдат свързани 32 входа (контакти) и 64 изхода (бобини, връзки).
Интерактивни функции.LD редакторът предлага два режима на анимация:
анимация на бинарни променливи и връзки;
анимация на избрани обекти.
Тези режими са налични и при показване на DFB блок.
Ако лявата захранваща шина, щифт, намотка, връзка е червена, тогава лявата захранваща шина, щифт, намотка, връзка (двоичен) съответно има стойност 0.
Ако лявата гумазахранване, щифт, намотка, връзка зелено, тогава лявата захранваща релса, щифт, намотка, връзка (двоичен) съответно имат стойност 1.
Връзка в жълт цвят прехвърля многоелементна променлива (стойностите се показват чрез двойно щракване на мишката върху връзката).
Променлива с жълт фон е многоелементна променлива (показва стойности с двойно щракване върху променливата).
Числова стойност на входа/изхода на FFB (жълт фон) - текущата стойност на променливите.
Числовата стойност на връзката (жълт фон) е стойността, която в момента се изпраща от връзката.
Избраните обекти остават избрани дори след подаване на друга избрана команда на Animate, за да се поддържат тези обекти за бъдещо четене или за проста модификация на разпечатката на обекта.
Състоянията на сигнала на двоичната връзка могат също да бъдат показани с помощта на командата Online → Animate booleans.