Wlancards.ru

ПК техника, WI FI Адаптеры
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Входные и выходные данные программы

1.1. Сетевой мониторинг осуществляется работниками Департамента информационных технологий с целью:

  • контроля использования средств защиты информации;
  • обеспечения доверенной загрузки операционной системы;
  • обеспечения анализа безопасности и обнаружения уязвимостей сетевых сервисов;
  • выполнения анализа стойкости парольной подсистемы;
  • удаленной идентификация операционных систем;
  • обеспечения оценки эффективности механизмов гарантированной очистки памяти и поиска остаточной информации на носителях информации;
  • проведения низкоуровневого анализа сетевого трафика.

1.2. Проверка безопасности сети осуществляется посредством сканирования хостов для определения уязвимостей, в том числе открытых портов. Используются следующие методы сканирования: UDP, TCP connect (), TCP SYN (полуоткрытое), FTP proxy (прорыв через ftp), Reverse-ident, ICMP (ping), FIN, ACK, Xmas tree, SYN и NULL-сканирование.

1.3. Для поиска уязвимостей в сетевых сервисах, предлагаемых операционными системами, межсетевыми экранами, маршрутизаторами и другими сетевыми компонентами используются средства тестирования и сбора информации о конфигурации и функционировании сети, и специальные средства, эмулирующие действия злоумышленника по проникновению в систему. Осуществляется проверка на уязвимости, с использованием базы плагинов, которые запускаются последовательно и эмулируют действия злоумышленника. После такой проверки плагин возвращает результат, который можно интерпретировать как отдельный отчет сканирования.

1.4. Локальный аудит паролей предназначен для поиска и выявления паролей, содержащих легко подбираемые символьные комбинации, непосредственно на рабочей станции. Сетевой аудит паролей предназначен для удаленного поиска и выявления паролей, содержащих легко подбираемые символьные комбинации. Аудит паролей имеет два вида взлома: словарём и полным перебором.

1.5. Системный аудит осуществляется с целью сканирования рабочей станции на предмет определения параметров установленных операционных систем, системных, коммуникационных и периферийных устройств, в том числе USB-устройств.

Сканирование осуществляется по следующим шагам:

а) Если среди параметров сканирования есть ОС:

— производится поиск командой «find» на наличие файлов определяющих операционные системы (Windows, GNU/Linux);

— если такие файлы найдены, то пути до этих файлов сохраняются в специальных переменных (wPaths, lPaths);

— если значение переменной lPaths не пустое, то считывается название ОС

GNU/Linux из файлов в lPaths;

— если значение переменной wPaths не пустое сканируем реестры ОС Windows.

Результатом этого этапа являются xml-документы linuxOS.xml и systemauditor.xml соответственно.

б) Если среди параметров сканирования есть usb-flash накопители, то считывается информацию о usb-flash накопителях.

в) Если среди параметров сканирования есть usb-устройства, то считывается информация о usb-устройствах.

г) Если среди параметров сканирования есть пользователи и пароли, сканируем SAM файл.

Результатом этого этапа является xml документ loginPaswd.xml;

д) Если среди параметров сканирования есть статистика посещения сайтов, производится поиск командой «find» на наличие файлов истории веб-браузера. Результатом этого этапа является xml-документ sites.xml.

е) Построение технической документации об аппаратной части машины. Это осуществляется с помощью команды «lshw». Команда «lshw» выводит полный структурированный список всего оборудования вместе с информацией об устройствах в формате xml. Результатом этого этапа является xml-документ lshw.xml.

ж) Сложение всех xml-документов, полученных за время текущего сканирования один systemauditor.xml.

1.6. Сетевой анализ используется для проверки и детальном анализе правильности конфигурации сетевого программного обеспечения.

«Сниффинг» — метод воровства данных в сети (паролей, имен пользователей, ключей и т.д.) посредством специального программного обеспечения (так называемых «снифферов»).

«Спуффинг» — подделывание исходного IP адреса.

«ARP poisoning based sniffing», применяется для «сниффинга» в сетях, а также для применения атак класса «mitm». В данном случае используется атака «arpoison», которая модифицирует ARP-таблицы заражаемых узлов таким образом, что все кадры данных с выбранного источника идут на наш узел, а затем уже на требуемый.

С помощью метода «сниффинга» можно видеть любой трафик сегмента, также можно проводить любые «mitm-атаки». На основе этого метода реализует перехват паролей протоколов ssh1 и https. Можно «сниффить» пароли в ssh версии 2, если подключить соответствующий фильтр, который будет «спуфить» версию ssh-сервера, поддерживающую только лишь первую версию протокола ssh.

1.7. Поиск по диску предназначен для поиска информации, по ключевым словам, на носителях данных (жестких дисках, дискетах, оптических дисках). Поиск по диску осуществляется следующим образом: программа последовательно анализирует кластеры сканируемого диска и проверяет их на наличие указанных сигнатур файлов. Если такая сигнатура найдена, то соответствующий результат заносится в таблицу и поиск продолжается дальше.

Читайте так же:
Можно ли установить вайбер на планшет

Текстовые файлы в паскале: процедуры работы

Текстовый файл в Паскале — это совокупность строк произвольной длины, которые разделены между собой метками конца строки, а весь файл заканчивается меткой конца файла.

Возможные расширения файлов:
*.txt, *.log,
*.htm, *.html

Метод работы с текстовым файлом в Паскале предусматривает лишь последовательный доступ к каждой строке файла. Это означает, что начинать всегда возможно только с первой строки, затем проходя по каждой строке, дойти постепенно до необходимой. Т.е. можно сказать, что чтение (или запись) из файла (в файл) ведутся байт за байтом от начала к концу.

Предусмотрены два режима работы: режим для записи в файл информации и для чтения ее из файла. Одновременная запись и чтение запрещены.

Открытие файла (классический Pascal)

Допустим, мы в программе описали переменную для работы с текстовым файлом:

Рассмотрим дальнейшую последовательность работы с ним, и рассмотрим процедуры, необходимые для работы с текстовым файлом в Паскале:

процедура открытия существующего файла для чтения при последовательном доступе:

процедура открытия создаваемого файла для записи в него информации; если файл с таким именем уже существует, то информация в нем стирается:

процедура добавления в конец:

  • При открытии курсор устанавливается в начало файла.

открытие файла

Чтение из файла (классический Pascal)

Read (f, список переменных); ReadLn (f, список переменных);

Отличие ReadLn от Read в том, что при использовании readln после прочтения данных пропускаются все оставшиеся символы в данной строке, включая метку конца строки.

  • чтение осуществляется с той позиции, где в данный момент стоит курсор;
  • после чтения курсор сдвигается к первому непрочитанному символу.

Чтение до конца строки

close ( f ); reset ( f );

Запись в текстовый файл (классический Pascal)

Write (f, список переменных); WriteLn (f, список переменных);

где f — файловая переменная, а второй параметр – выводимые из программы и вводимые в файл данные (в виде значений переменных или просто данные)

Процедуры работы с файлом и закрытие файла

Нахождение конца файла:

Логическая функция, возвращающая True, если достигнут конец файла.

Нахождение конца строки:

Логическая функция, возвращающая True, если достигнут конец строки.

Удалить файл в Паскале

Переименование файла в Паскале

rename(переменная_файла,’новое имя файла’);

Закрытие:

  1. Процедура assign.
  2. Процедура reset или rewrite.
  3. Процедура close.

Рассмотрим пример работы с файлами в паскале:

var filetext: text; a,b,c:string; begin assign(filetext,’c:text.txt’); reset(filetext); readln(filetext,a); readln(filetext,b); readln(filetext,c); close(filetext); writeln(a); writeln(c); end.

begin Assign(input, ‘1.txt’); var a := ReadString; var b := ReadString; var c := ReadString; print(a, c) end.

* Из задачника М. Э. Абрамян (Text4)

var F: Text; N,K:integer; Name:String; C:Char; begin Assign(F,’c:text.txt’); Reset(F); N:=0; K:=0; While not eof(F) do begin inc(N); While not eoln(f) do begin inc(K); Read(F,C); end; Readln(F); end; Close(F); Writeln(N,’ ‘,K); end.

begin Assign(input, ‘1.txt’); var n, k: integer; while not eof(input) do begin inc(n); while not eoln(input) do begin inc(k); var a := ReadChar; end; var b := ReadString; end; print(
строк , символов ‘) end.

var p, x: integer; f: text; begin assign(f, ‘input.txt’); reset(f); p := 1; while not eof(f) do begin readln(f, x); p := p * x; end; close(f); assign(f, ‘output.txt’); rewrite(f); writeln(f, ‘Произведение чисел ‘, p); close(f); end.

begin Assign(input, ‘input.txt’); Assign(output, ‘output.txt’); var p := 1; while not eof(input) do begin var x := readInteger; p := p * x; end; print([/H1toH2]
произведение

‘); end.

var filetext: text; a:string; i:integer; begin assign(filetext,’c:text.txt’); rewrite(filetext); for i:=1 to 10 do . reset(filetext); for i:=1 to 10 do begin . . end; close(filetext); end.

* Из задачника М. Э. Абрамян (Text1)

* Из задачника М. Э. Абрамян (Text5)

* Из задачника М. Э. Абрамян (Text7)

var F_in,F_out: Text; Name,S: String; begin Write(‘S: ‘); Readln(S); Assign(F_in,’c:text.txt’); Reset(F_in); Assign(F_out,’c:text1.txt’); Rewrite(F_out); Writeln(F_out,S); While not eof(F_in) do begin Readln(F_in,S); Writeln(F_out,S); end; Close(F_in); Close(F_out); Erase(F_in); Rename(F_out,’c:text.txt’); end.

begin var s := readstring(‘s: ‘); Assign(input, ‘input.txt’); Assign(output, ‘output.txt’); println(S); while not eof(input) do begin s := ReadString; println(s); end; close(input); // обязательно! close(output); // обязательно! Erase(input); Rename(output, ‘input.txt’); end.

Читайте так же:
Запись видео на айпад

* Из задачника М. Э. Абрамян (Text9)

Примерный результат:
до:

* Из задачника М. Э. Абрамян (Text15)

var F_in,F_out: Text; Name,line: string; K,i:integer; begin Write(‘K: ‘); Readln(K); Assign(F_in,’c:text.txt’); Assign(F_out,’c:text1.txt’); Reset(F_in); Rewrite(F_out); i:=0; While not eof(F_in) do begin Readln(F_in,line); inc(i); if i<>K then Writeln(F_out,line); end; Close(F_in); Close(F_out); Erase(F_in); Rename(F_out,’c:text.txt’); end.

begin var k := readinteger(‘k: ‘); Assign(input, ‘input.txt’); Assign(output, ‘output.txt’); var i:=0; while not eof(input) do begin var s := ReadString; inc(i); if i<>k then println(s); end; close(input); // обязательно! close(output); // обязательно! Erase(input); Rename(output, ‘input.txt’); end.

var f1,f2: text; pole:string; pz:integer; begin assign(f1,’1.txt’); assign(f2,’2.txt’); reset(f1); rewrite(f2); while not eof(f1) do begin readln(f1, pole); while pos(‘101’,pole)<>0 do begin pz:=pos(‘101’,pole); delete(pole,pz,3); insert(‘000’,pole,pz); end; writeln(f2,pole) end; close(f1); close(f2); end.

begin Assign(input, ‘input.txt’); Assign(output, ‘output.txt’); var s:=readString; var s1:=»; var ind := s.IndexOf(‘101′); while ind<>-1 do begin s1+=s[:ind+1]; s1+=’000’; delete(s,1,ind+3); // удаляем всё вместе с 101 ind := s.IndexOf(‘101’); end; s1+=s; Println(s1); end.

Работа с данными из файла как с массивом

  • для сортировки необходим массив, для того чтобы одновременно работать со всеми числами;
  • неизвестно общее количество чисел.
  • объявляем массив для 100 элементов;
  • открываем файл на чтение, просчитываем количество чисел, заполняя массив, сохраняем количество в N;
  • сортируем N элементов массива;
  • записываем результат в файл.

* Из задачника М. Э. Абрамян (Text16)

А теперь вернемся к олимпиадному заданию по Паскалю, частично решенному на одном из предыдущих заданиях:

p.inp.out
3
hello earth
khoor hduwk

* желательно создать файлы и записать данные в исходный файл «вручную»
* программа решена для k=3, выполните программу для любых k (не превышающих 20 по модулю)

var a:char; i,n,k:byte; s,s1:string; f_in,f_out:text; begin Assign(F_in,’z:p.in’); Assign(F_out,’z:p.out’); Reset(F_in); Rewrite(F_out); s1:=»; readln(f_in,k); readln(f_in,s); for i:=1 to length(s) do begin n:=ord(s[i]); if n<>32 then <32 - пробел>n:=n+3; if . then . ; if . then . ; if . then . ; a:=chr(. ); s1:=. ; end; writeln(s1); writeln(f_out,s1); close(f_in); close(f_out) end.

var a:char; i,n,k:byte; s,s1:string; f_in,f_out:text; begin Assign(F_in,’z:p.in’); Assign(F_out,’z:p.out’); Reset(F_in); Rewrite(F_out); s1:=»; readln(f_in,k); readln(f_in,s); for i:=1 to length(s) do begin n:=ord(. ); if n<>32 then <32 - пробел>n:=n+3; if n=123 then n:=97; <â ASCII 123 - x, 97 - a>if n=124 then n:=98; <â ASCII 124 - y, 98 - b>if n=125 then n:=99; <â ASCII 125 - z, 99 - c>a:=chr(n); s1:=s1+a; end; writeln(s1); writeln(f_out,s1); close(f_in); close(f_out) end.

Найти сумму всех чисел от 1 до n, имеющих ровно 5 делителей.
Единица и само число входят в число его делителей.
Входные данные
В единственной строке входного файла z3.in записано одно натуральное число n(1

[/H1toH2]

Электронное приложение к уроку

Презентация «Запись вспомогательных алгоритмов на языке Паскаль» (Open Document Format)

Ссылки на свободно распространяемое программное обеспечение:

  • PascalABC http://pascalabc.net/

liniya

Презентации, плакаты, текстовые файлыВернуться к материалам урокаРесурсы сети Интернет

liniya

Cкачать материалы урока

Вещественный тип данных

Нюанс: У вещественных чисел существует погрешность.

Например, 1 / 3 = 0.333333333(3). Дело в том, что компьютер не может записать число в периоде. Он запишет его с какой-то точностью. На самом деле с той, которую зададим ему мы. И в зависимости от того с какой точностью мы их записываем, в определенный момент результаты у нас могут поехать.

Пример

  1. Возьмем 10000 чисел (от 1 до 10000);
  2. Разделим каждое на 10000;
  3. Умножим каждое на 10000;
  4. Сравним с исходными.

Пример на уроке

Результат примера на уроке

С точки зрения математики эти два числа должны были бы быть одинаковые, но на деле оказывается, что точность теряется уже на десятитысячных.

В этом и есть подвох при работе с вещественными числами. Нам всегда необходимо помнить, что мы можем в тот или иной момент потерять точность вычислений.

Как написать простейшую программу

Рассмотрим простейшую задачу с линейным алгоритмом.

Для записи программы с линейным алгоритмом нам нужно описать входные и выходные данные, нужны процедуры для вводы и вывода данных и оператор присваивания.

Урок 1. Первая программа на языке ПаскальЗадача. Ввести с клавиатуры два числа. Вывести на экран их произведение.

Программа на Паскаль

Пояснения к программе

Имя этой программы example_1.

Из разделов описаний имеется лишь один — раздел переменных. Он начинается со служебного слова var, после которого идет последовательность объявления переменных, разделенных точкой с запятой.

В каждом объявлении перечисляются через запятую имена переменных одного типа, после чего ставится двоеточие и указывается тип переменных.

В нашем примере описаны три переменные: все они (a, b и rez) имеют целый тип (integer).

После описательной части идет раздел операторов, начинающийся со служебного слова begin.

Первый встречающийся оператор — это writeln(‘текст’); — записать (вывести) на экран текст, заключенный между апострофами, ln добавляется в конце этого оператора для того, чтобы курсор автоматически переходил на следующую строку при выводе на экран текстов или результатов выполнения программы.

Следующий оператор — это readln(a,b); — читать данные с клавиатуры.

В данном случае во время выполнения программы необходимо ввести два целых числа через пробел, тогда переменной a присваивается значение, равное первому введенному числу, а переменной b присваивается значение, равное второму введенному числу.

Например, вы ввели числа 12 и 45, тогда a = 12, а b = 45. В конце этого оператора также можно ставить ln.

После этих двух операторов стоит оператор присваивания: rez := a * b; (:= — это знак присваивания в языке Паскаль). Переменная rez получит значение, равное произведению числа a на число b .

Следующий оператор — это снова оператор writeln(‘текст’,rez) — он выведет на экран текст, заключенный между апострофами, а за ним значение переменной rez.

Затем следующий оператор writeln выведет на экран сообщение: »Нажмите <Enter>», а оператор readln будет ожидать этого нажатия в окне выполнения.

Завершает раздел операторов end с точкой.

Выполнение программы

После запуска программы на экране появляется сообщение:

Введите два целых числа через пробел

Курсор мигает в следующей строке, вводим два целых числа через пробел и нажимаем <Enter>, после этого появляется сообщение:

Руководство программиста

Если кроме использования и настройки, программное обеспечение предоставляет возможность написания, редактирования или использования программного кода. Какой документ необходим в этом случае?

Руководство программиста

Назначение руководства программиста

Руководство программиста относится к эксплуатационно-технической документации и требуется в тех случаях, когда система тем или иным образом предоставляет возможность написания, редактирования или использования программного кода.

Примерами могут служить:

– платформа или среда для разработки ПО;

– ПО с открытым кодом.

Документ должен предоставлять всю необходимую информацию для того, чтобы разработчик мог воспользоваться возможностями системы. Для решения этой задачи содержание документа может включать в себя:

– назначение, структуру входных и выходных данных программных функций;

– возможности по созданию программного кода, особенности его интерпретации и компиляции;

– синтаксические особенности используемого языка программирования;

– возможные правила и ограничения при работе с программным кодом;

– различные инструкции по работе с программой.

Список возможных тем этим не ограничивается, все зависит от особенностей конкретной системы. Надо сказать, что руководство программиста бывает очень полезно и для разработчиков системы, являясь справочником по текущей реализации логики работы ПО.

Состав типового руководства программиста

В соответствии с требованиями ГОСТ руководство программиста должно содержать следующие разделы:

Назначение и условия применения программы, где указывают область применения ПО и технические требования, необходимые для его работы.

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

Обращение к программе, где указывают способы и параметры запуска программы;

Входные и выходные данные, где описывают формат, способ организации и другие требования к входным и выходным данным;

Сообщения, где приводят тексты сообщений, выдаваемых программой в различных ситуациях и действия, которые необходимо при этом предпринять.

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

Стандарты для руководства программиста

ГОСТы регламентируют и этот документ, в данном случае это ГОСТ 19.504. В соответствии с ним определяется структура и содержание Руководства программиста.

Стоимость разработки руководства программиста

Руководство программиста на ПО

Работа по созданию руководства программиста требует высокой квалификации специалиста и знаний в области программирования, однако, для профессиональных разработчиков такая работа обычно представляется скучной и нудной, к тому же, требует умения грамотно формулировать и доступно доносить материал. Специалисты ТехРайтКонсалт обладают большим опытом в обеих областях, что позволяет нам создавать документы по доступной цене и точно в срок!

Язык непрерывных функциональных схем CFC. Часть 1

Пять основных языков программирования (ST, SFC, FBD, LD, IL), установленных стандартом МЭК 61131-3, используются при написании программ для логических контроллеров. В дополнение к ним CODESYS предлагает язык непрерывных функциональных схем (CFC). Редактор языка и сама его структура интуитивно понятна. Для написания программ не требуется специальных знаний. Именно поэтому CFC является языком выбора для начинающих программистов.

Начиная с 1993 года стандартом IEC 61131-3 (МЭК 61131-3) определено пять основных языков (ST, SFC, FBD, LD, IL) для программирования логических контроллеров. Из них наиболее простым в изучении и удобным в работе является графический язык FBD.

Некоторые компании для облегчения программирования внедряют в свои программные продукты языки, не входящие в стандарт МЭК. Например, CODESYS использует язык непрерывных функциональных схем (CFC), как вариант языка FBD. Язык удобен для прикладных специалистов, не имеющих специальной подготовки в области информатики.

Принципиальное отличие CFC от FBD заключается в том, что в редакторе CFC размещать компоненты программы (функциональные и логические блоки) и задавать порядок их выполнения можно произвольным образом. Такие возможности позволяют легко реализовывать обратные связи, что удобно при разработке схем регулирования. При создании программ на CFC необходимо вручную выстраивать связи между элементами, в то время как на FBD соединения выполняются автоматически.

Свойства редактора CFC

Существуют две разновидности редактора CFC: стандартный (рис. 1) и страничный (рис. 2). Выбрать тип редактора можно при создании нового проекта или при добавлении POU (компонент организации программы) в уже существующий проект

Рис. 1Рис. 1 Рис. 2Рис. 2

Страничный тип редактора CFC удобен при создании проектов, содержащих большое количество последовательно выполняющихся частей программы. Постраничное размещение программы позволяет быстро переключаться между ее разделами, акцентировать внимание только на необходимых элементах, снижает риск построения ошибочных связей и делает проект интуитивно понятным. При работе программы страницы выполняются последовательно, а передача информации с одной страницы на другую осуществляется с помощью меток соединения.

Стандартный тип редактора CFC более популярен среди пользователей, так как обладает рядом преимуществ: наглядность представления кода (все блоки и связи между ними расположены на единой рабочей области), не требуется переключения между страницами, что позволяет избежать лишних действий при написании кода.

Важно помнить, что стандартный и страничный типы редактора не конвертируются один в другой.

Общие свойства блоков

Программа на языке CFC начинается с добавления блоков на рабочую область редактора. Нужный блок добавляется мышкой с панели инструментов.
Блоки имеют фиксированное значение входных и выходных контактов. Можно добавить дополнительные контакты с панели инструментов Входной и Выходной контакт или из пункта: Контакты, контекстного меню, вызываемого нажатием ПКМ на рабочей области редактора.

При работе с большим числом ФБ могут остаться не задействованными входные/выходные контакты. Для компактности программы их можно удалить. При необходимости удаленные контакты всегда можно восстановить функцией сброс контактов. Операции удаления и сброса контактов выполняются аналогично добавлению входных и выходных контактов, а также при помощи соответствующих кнопок на панели инструментов. Чтобы поменять порядок входных/выходных контактов, необходимо их удалить, а потом заново добавить в нужном порядке.

После создания блока начинается этап создания входов и выходов путем перемещения их с панели инструментов. Если блок имеет два-три входных/выходных контакта, то операция занимает мало времени. Если у блока большое число контактов, то потребуется оптимизировать процесс. Необходимо выделить входной или выходной контакт блока и начать вводить имя переменной или константу. Таким образом выход будет добавляться автоматически столько раз, сколько потребуется (рис. 3).

Рис. 3

Рис. 3

Существует еще один способ добавления входа/выхода блока сразу с переменной. Для этого переменные задаются в разделе программы VAR: выделяется имя переменной и перемещается к нужному входному или выходному контакту блока.

При формировании логики программы блоки добавляются, как правило, в произвольном порядке и так же строятся связи между ними. Это приводит к тому, что нумерация блоков отличается от последовательности их расположения (порядка выполнения) (рис. 4). Чтобы соблюсти очередность выполнения (рис. 5), нужно перед запуском программы нажать ПКМ на рабочем поле редактора CFC и в меню Порядок выполнения, выбрать пункт Упорядочить в соответствии с потоком данных.

Рис. 4Рис. 4 Рис. 5Рис. 5

В версии CODESYS V3.5 SP15 появилась новая опция – автоматическая нумерация блоков в соответствии с потоком данных. Теперь элементы можно добавлять на рабочую область редактора в любом порядке и как угодно перемещать. Автоматическая нумерация элементов программы установлена по умолчанию. Вместе с тем сохранена нумерация элементов в режиме заданного порядка выполнения. Переключаться между режимами можно из свойств POU на вкладке: Порядок выполнения CFC. Посмотреть номера элементов при автоматической нумерации (рис. 6) можно из пункта контекстного меню Порядок выполнения с помощью кнопки Показать порядок выполнения или с помощью этой же кнопки, расположенной на панели инструментов.

Рис. 6

Рис. 6

Функциональные блоки и структуры

При работе с ФБ, имеющими большое количество входов/выходов, или структурами, содержащими большое количество переменных, удобно использовать компоновщик и селектор (рис. 7), которые находятся на панели инструментов.

Компоновщик упаковывает входы ФБ или структуры, а селектор распаковывает в отдельные выходы, таким образом заменяется большое количество близко расположенных линий связи на одну. Такой подход позволяет избежать ошибок и ускорить процесс компоновки и перемещения блоков, а также экономит место на рабочей области редактора и делает код программы нагляднее.

Рис. 7

Рис. 7

Линии связи

Для построения линии связи между двумя элементами нужно соединить контакты двух блоков. В редакторе CFC реализован ряд полезных функций по построению линий свиязи. Функция автосоединения линий связи по умолчанию активна, ее можно включить или отключить в меню Инструменты, пункт Опции. Для автосоединения необходимо вплотную приблизить контакты элементов. Существует поддержка параллельной связи от одного элемента к многим другим (рис. 3).

Если линия связи целиком не умещается на экране монитора, нужно выделить один из контактов линии связи (зажать клавишу <Ctrl> + нажать стрелку <Влево/Вправо>), тогда рабочая область сама сдвинется к входным или выходным контактам.

Для того чтобы избежать проблем из-за наличия большого количества линий связи, в стандартном редакторе CFC используют соединительные метки (рис. 8). Единственная задача меток – заменить длинные нечитаемые линии связи. Соединительные метки можно установить с панели инструментов. Сначала добавляется метка выхода (ей автоматически присваивается идентификационный номер), затем добавляется метка входа, и ей присваивается соответствующий номер. Заменить линию связи метками можно в пункте Метка соединения контекстного меню, вызываемого нажатием ПКМ на самой линии или на соответствующем входе/выходе. Аналогичным образом можно восстановить линию из меток.

Рис. 8

Рис. 8

В страничном редакторе CFC нельзя добавить соединительную метку на рабочую область (заменить ими линии связи), так как они выполняют другую задачу. Соединительные метки служат входами и выходами на страницах проекта – осуществляют передачу данных с одной страницы на другую (рис. 9). Метки добавляются не на рабочей области, что улучшает наглядность проекта и экономит место непосредственно на рабочей области редактора.

Рис. 9

Рис. 9

Оформление и компоновка программ

Неотъемлемой частью оформления программы являются комментарии. В редакторе CFC можно свободно размещать комментарии на рабочей области. Создать комментарий можно с помощью одноименного элемента на панели инструментов. Переход на новую строку при написании комментария осуществляется с помощью комбинации клавиш: <Ctrl>+<Enter>.

В редакторе CFC существует возможность печати проекта с двумя типами подгонки – Постер и Страница, выбрать один из них можно в меню Инструменты, в пункте Опции. По умолчанию стоит печать постером. Перед печатью проекта можно выполнить его предварительный просмотр в пункте Файл.

Во второй части статьи речь пойдет о реализации условий на языке CFC; особенностях работы с элементами, охваченными обратной связью; свойствах раздела VAR_INPUT CONSTANT в ФБ; кастомизации проектов и других важных особенностях работы с CFC.

© Автоматизация и Производство, 2021. Все права защищены. Любое использование материалов допускается только с согласия редакции. За достоверность сведений, представленных в журнале, ответственность несут авторы статей.

Издание зарегистрировано Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций. Свидетельство о регистрации средств массовой информации ПИ № ФС77-68720.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector