На выходе CureT формируется время, прошедшее от момента смены состояния выхода.
Сигнал Reset (сброс) прерывает последовательность импульсов, устанавливая оба выхода алгоблока в состояние логического 0.
Сигнал Reset приоритетен над сигналом Enable.
Если сигнал Reset снимается в момент, когда присутствует сигнал Enable, такая ситуация воспринимается как команда пуска.
Стандартные алгоблоки: ODV
Алгоблок применяется в тех случаях, когда необходимо сформировать одиночный импульс заданной длительности.
Одновибратор запускается по переднему фронту сигнала на входе Enable (пуск),т. е. когда на входе Enable дискретный сигнал переходит из состояния логического 0 в состояние логической 1.
Перед пуском выходной дискретный сигнал Cure отсутствует.
После пуска появляется сигнал на выходе Cure, причем этот сигнал находится в состоянии логической 1 в течение времени t = InТ, где InТ-параметр настройки. По истечении времени InТ сигнал на выходе вновь переходит в нулевое состояние, после чего одновибратор можно
вновь пустить.
На выходе CureT формируется текущее время, отсчитываемое от момента пуска. После отработки импульса CureT=0.
Сигнал на входе Reset (сброс) в любой момент времени обнуляет оба выхода алгоблока и счетчик времени. При наличии команды "сброс" алгоритм не может быть запущен. Алгоритм также не может быть повторно запущен командой "пуск" до тех пор, пока не закончится формирование выходного импульса.
Если в момент снятия команды сброс на входе Enable сигнал равен логической 1, такая ситуация рассматривается как команда пуск.
При InТ <= 0 выходной импульс не формируется.
Стандартные алгоблоки: LAG
Алгоблок предназначен для задержки аналоговых сигналов по времени.
Текущее значение входного параметра In появится на выходе через Count интервалов. При этом выходной сигнал Cure будет запаздывать относительно сигнала In на время Count*Per, где Per - длительность интервала в сек. Если Count=0, то всегда Cure = In;
Стандартные алгоблоки: VLA
Программные блоки применяется в качестве переменных, посредством которых могут передаваться значения между входами и выходами программных блоков . Они могут быть проинициализированы начальными значениями
Стандартные алгоблоки: ABS
Алгоблок применяется для получения модуля сигнала.
Стандартные алгоблоки: DZZ
Алгоблок применяется в том случае, когда требуется зафиксировать достижение числовой переменной заданного значения.
Если текущий входной сигнал меньше заданного значения, дискретный сигнал на выходе равен 0, иначе дискретный сигнал равен 1;
Стандартные алгоблоки: MAJ
Алгоблок работает по правилу "два из трех" и используется для повышения достоверности дискретных сигналов, поступающих, например, от модулей дискретного ввода контроллера.
Алгоблок содержит узел мажорирования, а также логику, определяющую номер сигнала, состояние которого не совпадает с состоянием двух других сигналов.
Стандартные алгоблоки: MIN
Алгоблок используется для выделения минимального из нескольких (до 5) сигналов.
Стандартные алгоблоки: MAX
Алгоблок используется для выделения максимального из нескольких (до 5) сигналов.
Стандартные алгоблоки: MAP
Алгоблок представляет собой многополюсный переключатель аналоговых сигналов, положение которого определяется дискретными сигналами, поступающими на вход алгоблока. Алгоблок используется для выбора одного из нескольких (до 5) сигналов.
Если на всех дискретных входах С, управляющих положением переключателя, сигнал отсутствует (логический 0), выходной сигнал Cure=0.
Если на какой-либо из дискретных входов подается дискретный сигнал Сi=1, выход алгоритма Cure подключается к одноименному (по номеру индекса) аналоговому входу Ini.
Если дискретные сигналы подаются одновременно на несколько входов, приоритетен вход с младшим номером.
Сигнал на выходе Cure равен сигналу на выбранном входе. Число на выходе N указывает номер выбранного входа.
Стандартные алгоблоки: MSH
Алгоблок применяется для масштабирования аналогового сигнала.
Стандартные алгоблоки: SIT
Алгоблок из трех аналоговых сигналов, поступающих на его вход, выбирает средний сигнал. Алгоритм применяется, например, при необходимости повысить надежность цепей аналогового входа.
Алгоритм содержит узел выделения среднего из трех сигналов и логику, фиксирующую недопустимое отклонение одного из сигналов от среднего сигнала.
Выходной сигнал Cure равен одному из сигналов In1, In2 или In3, а именно тому из них, который меньше большего, но больше меньшего из этих сигналов.
Например, если In1 = 40%, In2 = -10%, In3 = 5%, то Cure=5%.
Номер входного сигнала (1, 2 или 3), прошедшего на выход, формируется на выходе N (в предыдущем примере N=3).
Логика алгоритма (выходы Mark и N_) позволяет зафиксировать, отклонилось ли значение одного из крайних сигналов от значения среднего сигнала на величину, большую заданной зоны
нечувствительности Zone.
Если два или все три входных сигнала равны, то N равно старшему номеру равных сигналов.
Если оба крайних сигнала отличаются от среднего на величину, большую Zone, то N_ равно младшему номеру этих сигналов.
Значение Zone < 0 воспринимается алгоритмом как Zone = 0.
Стандартные алгоблоки: PEN
Алгоблок используется для переключения нескольких (до 5) сигналов. Положение переключателя определяется значением числа, поступающего на специальный вход алгоблока.
На вход N подается число, определяющее номер подключенного входа.
Если на вход N подается 0 - к выходу подключается вход номер 1.
Стандартные алгоблоки: REF
Алгоблок используется для запоминания дискретного сигнала. Информация фиксируется в регистре в момент перехода переднего фронта управляющего сигнала.
Алгоблок имеет один информационный вход, на который подается входной сигнал In, и один управляющий вход записи InRec.
По переднему фронту дискретного сигнала Enable (т. е. в момент перехода сигнала Enable из состояния логического 0 в состояние логической 1) информация на входе In записывается в регистр, после
чего алгоритм не реагирует на изменение сигнала на входе In.
Записанная в регистре информация передается на соответствующий выход алгоблока Cure. В момент записи на один цикл работы контроллера формируется логическая 1 на выходе CuRec.
В остальных случаях CuRec = 0.
Стандартные алгоблоки: REU
Алгоблок используется для запоминания дискретного сигнала.
Информация записывается в регистр, пока имеется команда записи.
Если управляющий вход Enable = 1, информация записывается в регистр и его выход Cure = In. Если Enable = 0, сигнал Cure запоминается и не изменяется (т. е. не зависит от информационного входа In).
Сигнал CuRec = Enable, т. е. повторяет входной управляющий сигнал.
Стандартные алгоблоки: TRI
Алгоблок содержит независимый RS-триггер и применяется для запоминания дискретных сигналов.
Вход In является установочным:
если при Reset = 0 сигнал In = 1, то выходной сигнал Cure = 1.
Этот сигнал запоминается, т. е. остается равным единице независимо от последующего значения сигнала на входе In.
Если Reset = 1, триггер сбрасывается, при этом Cure = 0.
Стандартные алгоблоки: VCH
Алгоблок выделяет из натурального ряда чисел (номеров) заданную группу следующих подряд чисел.
Переменная, поступающая на вход In, сравнивается с двумя пороговыми значениями: нижним Low и верхним High.
Если Low <= In <= High, то выходной дискретный сигнал Cure = 1, в противном случае Cure = 0.
Стандартные алгоблоки: VIF
Алгоблок применяется для выделения переднего или заднего фронта дискретного сигнала.
Если на входе алгоблока дискретный сигнал In изменяет свое состояние с логического 0 на логическую 1 (передний фронт), то на выходе Cure алгоблока формируется сигнал Cure = 1 на время,
равное времени одного цикла работы контроллера. Остальное время Cure = 0.
Для выделения заднего фронта аналогично формируется сигнал на выходе Cure_.
Стандартные алгоблоки: ZAZ
Алгоблок применяется для запрета перехода сигнала в область положительных или отрицательных значений
Алгоблок содержит узел запрета, управляемый входными дискретными сигналами InPos и InNeg. При действии команды InPos запрещается переход выходного сигнала Cure в область положительных
значений, команда InNeg - запрещает изменение Cure в область отрицательных значений
Стандартные алгоблоки: SLZ
Алгоблок используется для слежения и запоминания аналогового сигнала.
На вход In алгоблока подается аналоговый сигнал, который нужно запомнить. На вход Rem подается команда слежения.
До тех пор, пока Rem=1, входной сигнал In передается на выход Cure, т. е. выход "следит" за входом.
При Rem = 0 слежение блокируется, текущее значение Cure запоминается и перестает зависеть от входного сигнала.
Выходной сигнал Cure_R = Rem, т. е. повторяет входной управляющий сигнал.
Стандартные алгоблоки: TMZ
Алгоблок используется для задания выдержек времени и содержит звено таймера и нуль-орган.
Алгоблок имеет два дискретных входа "стоп" и "сброс". В состоянии "стоп" отсчет времени прекращается, в состоянии "сброс" звено таймера обнуляется и время "останавливается", как и в состоянии "стоп".
Если в нуль-органе значение текущего времени сравняется со значением настроечного параметра Т на входе In, выходной сигнал Cure_ переходит в состояние логической 1.
На выходе Cure алгоблока формируется сигнал текущего времени, отсчитываемого от начала пуска. В состоянии "стоп" сигнал на выходе Cure замораживается, в состоянии "сброс" - обнуляется.
Стандартные алгоблоки: PCH
Алгоблок предназначен для включения одного из 5 дискретных выходов.
Номером выхода управляет сигнал на входе N, причем номер включенного выхода равен числу N.
Если вход N <= 0 – все выходы равны 0.
Если вход N >5 – все выходы равны 0.
На выход Cure подается номер текущего включенного выхода.
Если вход Enable = 0, блок не обрабатывается.
Если вход Reset =1 , все выходы и поле Cure обнуляются.
Стандартные алгоблоки: EXT
Алгоблок применяется для поиска и фиксации максимального и минимального значения меняющегося во времени сигнала.
На выходах алгоблока Cure_Max, Cure_Min фиксируется последнее соответственно максимальное и минимальное значение сигнала In.
До тех пор, пока имеется команда сброса (Reset=1), поиск экстремума не ведется и выходные сигналы Cure_Max=Cure_Min=0.
Когда сигнал сброса снимается (Reset=0), начинается поиск экстремума.
Как только найден максимум, выходной сигнал Cure_Max становится равным максимальному значению In.
Когда алгоблок фиксирует минимум, выходной сигнал Cure_Min принимает значение, равное минимальному значению In.
Выходы Cure_Max и Cure_Min остаются неизменными вплоть до обнаружения очередного экстремума - соответственно максимума и минимума.
В момент обнаружения максимума или минимума на время, равное времени цикла работы контроллера, на дискретных выходах соответственно Max или Min формируются дискретные сигналы Max=1 или Min=1.
Стандартные алгоблоки: KUS
Алгоблок применяется для линеаризации нелинейной зависимости (например, датчика или регулирующего органа), а также для искусственного введения нелинейности (например, зоны нечувствительности, релейной характеристики и т. п.).
Выходной сигнал Cure связан со значением сигнала на входе In_X.
Число отрезков может задаваться в пределах 1<=m<=50.
Координата конца отрезка определяется парой сигналов Хi, Yi(абсцисса и ордината конца отрезка).
На выходе N формируется число, равное номеру текущего участка кусочно-линейной зависимости.
Стандартные алгоблоки: NOR
Нуль-орган используется для контроля за выходом сигнала или разности двух сигналов из ограниченной слева и справа области допустимых значений.
Алгоблок содержит звено сумматора и звено нуль-органа.
Звено сумматора выделяет разность двух сигналов z = In1 - In2.
Разностный сигнал подается на звено нуль-органа, имеющее два порога срабатывания More и Less.
Если z >= More+Gist Cure1 = 1
Если z <= More-Gist Cure1 = 0
Если z <= Less-Gist Cure2 = 1
Если z >= Less+Gist Cure2 = 0
Оба пороговых элемента имеют одинаковый гистерезис.
Стандартные алгоблоки: OGS
Алгоблок используется в тех случаях, когда необходимо ограничить скорость изменения сигнала.
В любой момент времени выходной сигнал Cure стремится сравняться с входным сигналом In.
Если Cure=In и скорость изменения входного сигнала Vх меньше заданного ограничения скорости Ogr (т. е. Vх <= Ogr),то выходной сигнал Cure изменяется со скоростью Vy = Vx, оставаясь в каждый момент времени равным сигналу In.
Если Vх > V огр, сигнал Cure начинает изменяться со скоростью Ogr до тех пор, пока не сравняется с сигналом In.
Алгоблок имеет два дискретных выхода Cure_Mo и Cure_Le.
Если скорость Vy меньше заданного ограничения Ogr, сигналы на обоих выходах равны нулю.
В противном случае появляется сигнал на выходе Cure_Mo или Cure_Le в зависимости от того, увеличивается(изменяется в направлении "больше")или уменьшается (изменяется в направлении "меньше") выходной сигнал Cure
Стандартные алгоблоки: PRZ
Программный задатчик формирует кусочно-линейную функцию времени, состоящую из нескольких точек.
Для каждой точки задается абсцисса и ордината.
После запуска сигнал Y меняется в соответствии с заданной программой.
Программа может выполняться заданное число раз.
Стандартные алгоблоки: EUS
Алгоблок применяется для вычисления среднего в течение определенного промежутка времени
Стандартные алгоблоки: ESU
Алгоблок применяется для суммирования входного сигнала в течение определенного промежутка времени
Стандартные алгоблоки: DPR
Алгоблок работает по принципу двухпозиционного регулятора.
Исполнительный механизм регулятора может занимать лишь два положения и скачкообразно переключается из одного положения в другое в момент, когда регулируемая величина проходит через заданное значение.
Закон регулирования двухпозиционного регулятора имеет вид:
Cure = Xmax при In >= Zad;
Cure = Xmin при In < Zad.
Стандартные алгоблоки: TPR
Алгоблок работает по принципу трехпозиционного регулятора.
У трехпозиционных регуляторов регулирующий орган может занимать три положения: открытое, закрытое и среднее.
В реальных трехпозиционных регуляторах имеются зоны неоднозначности.
На рисунке представлен пример трехпозиционного релейного элемента
¦
Yмакс ¦- - г<====T===
¦ ¦ _
¦ |<_Xн>| _ ¦
Yср ¦- - г<====T=========¦====>-
¦ ¦ _ | |
¦ ¦ ¦ |<_Xв>|
¦ _ ¦ |
Yмин L====o====>-----o---
Xн Xв
При входной величине X = Xв выход алгоблока Y = Yмакс.
При уменьшении входной величины X на величину зоны неоднозначности _Xв выход Y = Yср.
При дальнейшем уменьшении X, когда X станет равным Xн, Y = Yмин.
При увеличении X на величину зоны неоднозначности _Xн выход Y снова равен Yср.
Стандартные алгоблоки: COU
Алгоблок используется как программируемый счетчик.
Когда на дискретный вход In_Up приходит 1, происходит перемещение текущего значения счетчика Cure к конечному значению на величину значения приращения.
Если начальное значение меньше чем конечное, приращение добавляется к текущему значению, иначе - вычитается из текущего значения.
Когда на вход In_Down приходит 1, текущее значение счетчика перемещается обратно к начальному значению на величину значения приращения.
При достижении счетчиком конечного значения дискретный выход Index = 1, дискретный инверсный выход Index_ = 0. После этого, если в поле алгоблока AutoClear занесена 1, текущее значение приравнивается к начальному и подсчет повторяется, если же AutoClear = 0, на выходе Cure сохраняется конечное значение.
Стандартные алгоблоки: PID
Замкнутый контур регулирования PID поддерживает переменную процесса на заданном уровне.
Уравнение PID управляет процессом, посылая выходные сигналы на систему управления. Чем больше сигнал рассогласования между заданным значением и переменной процесса, тем
больше выходной управляющий сигнал, и наоборот.. Цель вычислений инструкции PID-поддерживать заданное значение переменной процесса.
Стандартное уравнение PID управления:
E = SP - PV
U = Кp * Е + Ki * 8 (Е*dt) + Kd *d(Е) / dt
SP - заданный уровень, который должна поддерживать система.
Kd - коэф. передачи рассогласования
Ki - коэф. передачи интеграла рассогласования
Kd - коэф. передачи дифференциала рассогласования
Все параметры PID контура вводятся в физических единицах. Переход к
кодам осуществляется в блоках АЦП и ЦАП
Стандартные алгоблоки: TIM
Блок предназначен для вывода системного времени.
На вывод Cure время выдается, как число
ХХХХХХ
|||||| секунды
|||| минуты
|| часы
На выходы Hour, Min, Sec выдаются соответсвенно часы, минуты и секунды.
Стандартные алгоблоки: SUB
Блок предназначен для перехода к выполнению подпрограммы, расположенной не на текущей вкладке. Переход выполняется всегда, если блок оказывается в фокусе выполнения.
Стандартные алгоблоки: RET
Блок предназначен для возврата из подпрограммы, расположенной на текущей вкладке. Выход выполняется всегда, если блок оказывается в фокусе выполнения. Этот блок всегда возвращает значение 0.0.
Сброс блоков означает, что все блоки в подпрограмме приводятся в состояние, соответствующее подаче еденичного значения на вход Reset.
Сброс всех блоков означает, что все блоки в программе приводятся в состояние, соответствующее подаче единичного значения на вход Reset.
Стандартные алгоблоки: GOT Блок предназначен для перевода фокуса выполнения на блок, расположенный на текущей вкладке. Переход выполняется, если значение, переданное на вход Cure отлично от 0.
Стандартные алгоблоки: SUI
Блок предназначен для перехода к выполнению подпрограммы, расположенной не на текущей вкладке. Переход выполняется, если значение, переданное на вход In отлично от 0. Блок имеет выходное значение, возвращаемое оператором RET или REI.
Стандартные алгоблоки: REI
Блок предназначен для возврата из подпрограммы, расположенной на текущей вкладке. Выход выполняется, если значение, переданное на вход In отлично от 0. Блок возвращает значение равное входному параметру In.
Сброс блоков означает, что все блоки в подпрограмме приводятся в состояние, соответствующее подаче единичного значения на вход Reset.
Сброс всех блоков означает, что все блоки в программе приводятся в состояние, соответствующее подаче еденичного значения на вход Reset.
Стандартные алгоблоки: GOA Блок предназначен для перевода фокуса выполнения на блок, расположенный на текущей вкладке. Переход выполняется всегда, если блок оказывается в фокусе выполнения..
Стандартные алгоблоки: LBL Выполняет функции структурирования программы. Сам никаких действий не выполняет, но на него можно передавать управление блоками GOT и GOA.
Стандартные алгоблоки: ALB Выполняет функции структурирования программы. Как только фокус управления попадает на этот блок, то следующее исполнение подпрограммы начинается с этого блока. Таких блоков в подпрограмме может быть несколько. Активным считается последний выполненный блок. Сброс активных меток производится блоком return с установленным флагом сброс блоков.
Стандартные алгоблоки: BTM
Выход этого блока может быть привязан к функциональным кнопкам терминала. Нажатие кнопки передается один раз с выхода блока после его обработки системой, затем необходимо новое нажатие на кнопку.
Стандартные алгоблоки: FNC
Программист может написать собственный алгоритм на языке “C” и подключить его к системе. Для этой цели служит блок “функция С” в разделе обработка данных. На вход блока передается массив из 5 входных аналоговых параметров. из 5 выходных аналоговых параметров, массив из 10 аналоговых параметров для запоминания промежуточных вычислений, вход Init (установлен в 1 при старте системы), вход Reset (если в 1-необходимо сбросить), вход Enable, адрес структуры Gtime (из C),
Адрес массива возврата Ret.
Если программа желает выдать сообщение на терминал, она должна занести в Ret[0] номер сообщения из журнала, иначе она должна занести туда 0.
Ограничения: программа компилируется только в tiny модели памяти,
Запись в сегмент данных(в глобальные переменные)запрещен.
Примеры и BAT файлы находятся в подкаталоге edchart/fnc.
После того, как программа скомпилирована и отконвертирована, она должна быть переписана в каталог edchart/disk7188.
Стандартные алгоблоки: STP
Шаговая программа предназначена для выполнения циклических действий с внутренними или глобальными переменными или с полями алгоблоков.
Входные поля:
Enable - разрешение работы блока
Reset - сброс блока в начальное состояние
Выходные поля
Step - номер текущего шага
Time - время до окончания выполнения текущего часа
Alarm - признак аварийного завершения программы
Stop - признак перехода программы в останов
Поля настройки
Поле блока / локальная переменная - в нем указывается или поле блока или номер локальной переменной от 1 до 8
Данные / время - в нем указывается или поле блока, в котором находятся данные или число (время должно быть выражено в миллисекундах)
Переход номер шага для перехода(число, равное номеру строки.
Комментарий - необязательный текстовой комментарий
Операторы программы
IF - оператор ожидания единицы в указанном поле блока или в локальной переменной в течении времени, указанном в поле данные/время
Если условие выполнено, происходит переход к шагу, указанному в поле переход. Если условие не выполнено, выполняется следующий шаг.
Если в поле блока указано число 0, то выполняется ожидание в течении времени, указанном в поле данные/время, затем выполняется переход к следующему шагу.
SET - оператор установки значения, указанном в поле данные/время в поле блока или в локальную переменную и переход к следующему шагу
SET - оператор установки значения, указанном в поле данные/время в поле блока или в локальную переменную и переход к следующему шагу
GOTO - оператор перехода на строку, указанную в поле переход.
SET - оператор установки значения, указанном в поле данные/время в поле блока или в локальную переменную и переход к следующему шагу
STOP - оператор перехода в конец программы. Выполнение программы прекращается, выход Stop устанавливается в единицу. Для возобновления выполнения необходимо подать единицу на вход Reset.
ALARM - оператор перехода в конец программы. Выполнение программы прекращается, выход Alarm устанавливается в единицу. Для возобновления выполнения необходимо подать единицу на вход Reset.
INC - оператор увеличения значения, указанного в поле блока или в локальной переменной на значение, указанное в поле данные/время. Если результат меньше или равен 0, выполняется переход к шагу, указанному в поле переход. Если указан шаг 0,выполняется следующий шаг.
DEC - оператор уменьшения значения, указанного в поле блока или в локальной переменной на значение, указанное в поле данные/время. Если результат меньше или равен 0, выполняется переход к шагу, указанному в поле переход. Если указан шаг 0, выполняется следующий шаг.
GT - оператор сравнения на больше значения, указанного в поле блока или в локальной переменной со значением, указанным в поле данные/время. Если результат истинен, выполняется переход к шагу, указанному в поле переход. Если указан шаг 0,выполняется следующий шаг.
GE - оператор сравнения на больше или равно значения, указанного в поле блока или в локальной переменной со значением, указанным в поле данные/время. Если результат истинен, выполняется переход к шагу, указанному в поле переход. Если указан шаг 0,выполняется следующий шаг.
EQ - оператор сравнения на равно значения, указанного в поле блока или в локальной переменной со значением, указанным в поле данные/время.
Если результат истинен, выполняется переход к шагу, указанному в поле переход. Если указан шаг 0, выполняется следующий шаг.
LE - оператор сравнения на меньше или равно значения, указанного в поле блока или в локальной переменной со значением, указанным в поле данные/время. Если результат истинен, выполняется переход к шагу, указанному в поле переход. Если указан шаг 0,выполняется следующий шаг.
LT - оператор сравнения на меньше значения, указанного в поле блока или в локальной переменной со значением, указанным в поле данные/время.
Если результат истинен, выполняется переход к шагу, указанному в поле переход. Если указан шаг 0, выполняется следующий шаг.
Если во время исполнения программы встречаются ошибки, выполнение блока прекращается, вход Enable устанавливается в ноль и сбрасывается бит разрешения выполнения блока.
Редактирование программы.
После двойного нажатия на блоке левой кнопкой мыши появляется форма

Для выбора оператора необходимо нажать на кнопку добавить,
Появляется следующая форма

Выбираем оператор, нажав на соответствующую кнопку.
Устанавливаем тип переменной - локальная от 1до 8 или поле блока.
Для локальной переменной вводим число, для поля вводим идентификатор поля, например VLA1.Cure.
Выбираем тип данных - число или поле блока. Для типа число вводим число, для типа поле блока вводим идентификатор поля блока.
Если нужен переход - вводим номер строки для перехода.
Вводим необязательный комментарий и нажимаем кнопку ДА.
Для редактирования строки делаем двойное нажатие левой кнопкой мыши на выделенной строке.
Для вставки строки нажимаем клвишу INSERT.
Для выделения строки нажимаем на ней левой кнопкой мыши.
Для копирования выделенной строки в буфер обмена используем комбинацию клавиш CTRL-INS.
Для вставки строки из буфера обмена - используем комбинацию клавиш SHIFT-INS.
Для удаления выделенной строки используем комбинацию клавиш CTRL-DEL.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 |


