Category Archives: ПЛК-системы

Открытие порта и настройка модема для ОВЕН ПЛК

Вначале необходимо добавить в конфигурацию ПЛК модуль Universal Network Module, указать к какому интерфейсу будет подключен модем.  Затем произвести настройку порта (указать скорость, число стоп-битов и т.д.), рис.1. Режим можно указывать любой, как ASCII так и RTU.

Рис.1. Настройка модуля Universal Network Module.

Программа:

Рис.2. Алгоритм работы программы.

Список переменных проекта:

PROGRAM PLC_PRG

VAR

Com                      : OpenPort;

cfg                         :FB_SMS_CFG;

cfg_ok                  :BOOL;

DevNum             :WORD :=0;

END_VAR

В данном примере порт будет открыт всегда, при необходимости освободить его достаточно подать на вход «Enable» ФБ «com» значение False.

ФБ «cfg» по окончанию конфигурации модема установит на выходе «Done» значение True в не зависимости от того, были ли ошибки или нет, поэтому необходимо проверять значение на выходе «ErrCode». В данном примере в случае возникновения ошибки блок будет перезапущен и конфигурация модема будет произведена повторно.

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

Если модем уже настроен и его параметры не будут меняться, то можно не использовать данный ФБ в программе или вызывать его только один раз при подключении нового модема.

 

Мой блог находят по следующим фразам

Состав библиотеки SmsOwenLib.

Данная библиотека предназначена для работы на контроллерах ОВЕН с внешним модемом: для отправки и получения СМС сообщений, фиксации входящего вызова и первоначальной конфигурации самого модема.

Блок «OpenPort» захвата/освобождения интерфейса

Рисунок 1 – Структурная схема

Таблица 1

Имя программного компонента OpenPort
Тип программного компонента

Функциональный блок  

Функция 

Программа

Особенности работы Для работы требуется установка в проекте библиотеки UNM
Применение на контроллерах ПЛК100, ПЛК150, ПЛК154, ПЛК110, ПЛК160.

 

Входная переменная:

Тип данных

Пояснения

Enable

BOOL

разрешение на работу
DeviceNumber

WORD

номер модуля UNM – нумерация идет с 0 по порядку сверху вниз как расположены модули UNM в конфигурации, первый сверху модуль UNM имеет номер 0, следующий номер UNM – 1, и так далее
Выходная переменная:

Тип данных

Пояснения

Out

BOOL

состояние открытия порта, после окончания включен постоянно

 

Описание

До начала передачи/приема в интерфейс данных из программы CoDeSys нужно «захватить» интерфейс и приостановить работу с этим интерфейсом модулей протоколов, подключенных в PLC Configuration. Для использования нужно создать в конфигурации контроллера один (или несколько)  модулей Universal Network Module. Внутри каждого модуля нужно настроить параметры порта передачи данных (для последовательных портов это скорость, четность, биты данных, биты стопа, время задержки).

Блок «FB_SMS_CFG» конфигурирования модема

Рисунок 2 – Структурная схема

Таблица 2

Имя программного компонента FB_SMS_CFG
Тип программного компонента

Функциональный блок  

Функция 

Программа

Особенности работы Для работы требуется установка в проекте библиотеки UNM
Применение на контроллерах ПЛК100, ПЛК150, ПЛК154, ПЛК110, ПЛК160.

 

Входная переменная:

Тип данных

Пояснения

Enable

BOOL

разрешение на работу
Handle

WORD

номер модуля UNM, порт открывается с помощью ФБ «OpenPort»
PortCfg

BOOL

разрешение на настройку порта модема, по умолчанию False (выкл.)
SaveCfg

BOOL

сохранение параметров в модеме после конфигурирования, по умолчанию False (не сохранять)
ModemART

BOOL

включение/отключение автоподъема трубки, по умолчанию False (выкл.),
PortBaudrate

STRING(6)

параметр настройки порта — скорость, по умолчанию ‘0’
PortParity

BYTE

параметр настройки порта — четность, 0- нет 1-нечет 2-чет, по умолчанию 0-нет
PortStopBits

BYTE

параметр настройки порта – число стоп-бит, 1-1бит, 3-2бита, по умолчанию1-1бит
PortByteSize

BYTE

параметр настройки порта — Биты данных, по умолчанию 8-8 бит
PortFlowCtrl

BYTE

параметр настройки порта — управление потоком, 0 – отключено, 1-XON/XOFF, 2-аппаратный, по умолчанию 0-отключено
Выходная переменная:

Тип данных

Пояснения

Done

BOOL

флаг окончания настройки, после окончания включен постоянно
ErrCode

BYTE

код ошибки

Описание работы

Необходим для конфигурирования модема. Должен вызываться до блока FB_SMS_SR. Если модем уже был настроен ранее (вручную или с помощью данного ФБ с SaveCfg:=TRUE) и в ходе работы настройки модема меняться не будут, то разрешается не использовать данный ФБ в программе.

Блок «FB_SMS_SR» отправки/ получения СМС

Рисунок 3 – Структурная схема

Таблица 3

Имя программного компонента FB_SMS_SR
Тип программного компонента

Функциональный блок  

Функция 

Программа

Особенности работы Для работы требуется установка в проекте библиотеки UNM
Применение на контроллерах ПЛК100, ПЛК150, ПЛК154, ПЛК110, ПЛК160.

 

Входная переменная:

Тип данных

Пояснения

Enable

BOOL

разрешение на работу
Handle

WORD

номер модуля UNM, порт открывается с помощью ФБ «OpenPort»
CsdClose

BOOL

запрет входящих вызовов: определяет поведение при входящем звонке, если True(вкл.), то всегда вешает трубку, если False(выкл.), то выставляет флаг NewInRing, по умолчанию True (вкл.)
SendSms

BOOL

команда на отправку SMS сообщения, срабатывает по фронту
SendSmsText

STRING

текст отправляемого сообщения (на русском макс 70 символов, на латинице макс 140 символов)
SendSmsNum

STRING

номер абонента, кому отправить СМС, пишется целиком с кодом страны без скобок и «+», например «79012345678»
CheckNum

BOOL

включить/отключить проверку номера отправителя СМС (для входящих сообщений), по умолчанию False (выкл)
CheckNumList

STRING

список разрешенных номеров, фомат: «ххххххххххх;ххххххххххх;» номер пишется целиком без скобок и «+», через точку с запятой, если функция выключена то не используется, по умолчанию ‘’
Выходная переменная:

Тип данных

Пояснения

Busy

BOOL

флаг указывающий, что блок выполняет в данный момент какие либо операции
ErrCode

BYTE

код ошибки
SmsSend

BOOL

флаг успешной отправки СМС сообщения, включается на 1н цикл
NewInSms

BOOL

флаг наличия нового входящего СМС сообщения, включается на 1н цикл
NewInRing

BOOL

флаг наличия входящего вызова
NewInSmsText

STRING

текст последнего принятого СМС сообщения
NewInSmsTime

STRING

время отправки последнего входящего СМС сообщения
NewInSmsNum

STRING

номер отправителя последнего входящего СМС сообщения, 10 цифр

 

Описание работы

Необходим для отправки/получения СМС сообщений и индикации входящих вызовов

Блок «FB_SMS_SL» вспомогательный для отправки сообщения группе абонентов

Рисунок 4 – Структурная схема

Таблица 4

Имя программного компонента FB_SMS_SL
Тип программного компонента

Функциональный блок  

Функция 

Программа

Особенности работы Для работы не требуется установка в проекте дополнительных библиотек
Применение на контроллерах ПЛК63, ПЛК73, ПЛК410

 

Входная переменная:

Тип данных

Пояснения

SendGroup

BOOL

команда на отправку группе
NumCount

BYTE

количество адресатов
SmsTextIn

STRING

текст отправляемого сообщения
SmsSend

BOOL

контроль за отправкой сообщений
Выходная переменная:

Тип данных

Пояснения

SendSms

BOOL

команда на отправку сообщения
NumCur

BYTE

текущий номер адресата
SmsTextOut

STRING

текст отправляемого сообщения
Done

BOOL

флаг завершения работы, включается на 1н цикл

 

Описание работы

По фронту сигнала на входе «SendGroup» БФ запоминает текст отправляемого сообщения, который подается на вход «SmsTextIn», и выдает его на выход «SmsTextOut» (после этого значение на входе «SmsTextIn» может меняться – на работу блока это никак не повлияет). Вход «SmsSend» и выход «SendSms» необходимо соединить с одноименными входами и выходами ФБ «FB_SMS_SR» — с их помощью будет осуществляться управление отправкой сообщений. Выход «NumCur» определяет порядковый номер текущего адресата, нумерация начинается с нуля. Когда сообщение будет разослано, на выход «Done» будет подан единичный импульс.

 

Мой блог находят по следующим фразам

Структуры в Step7

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

 

Структура может иметь до 8 вложенных уровней (например, структура,состоящая из структур, содержащих массивы).

Создание структуры

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

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

 

Присваивание структуре начальных значений

Если Вы хотите присвоить начальное значение каждому элементу структуры, то указывайте значение, допустимое для типа данных и имени элемента. Например, Вы можете присвоить следующие начальные значения (структуре, объявленной на рисунке выше):

Amount [количество] = 100

Original_data [исходные_данные] = B#(0)

Control_code [управляющий_код] = ‘C’

Temperature [температура] = 120

End [конец] = False

Хранение и доступ к данным в структурах

У Вас есть доступ к отдельным элементам структуры. Вы можете использовать символьные адреса (например, Stack_1.Temperature). Однако Вы можете указывать абсолютный адрес, по которому расположен элемент (пример: если Stack_1 расположен в DB20, начиная с байта 0, то абсолютный адрес для amount – это DB20.DBW0 и адрес для temperature – это DB20.DBD6).

Использование структур в качестве параметров

Вы можете передавать структуры в качестве параметров. Если параметр описывается как STRUCT в разделе описания переменных, то Вы должны передавать структуру с теми же самыми компонентами. Однако параметру может присваиваться также элемент структуры, когда Вы вызываете блок, если элемент структуры соответствует типу данных параметра.

Если Вы используете структуры в качестве параметров, то обе структуры (для формальных параметров и для фактических параметров) должны иметь одинаковые компоненты, другими словами, одинаковые типы данных должны располагаться в одинаковой последовательности.

Мой блог находят по следующим фразам

Массивы в Step 7

Массив объединяет группу данных одного типа (элементарного или составного), образуя одно целое. Вы можете создавать массив, состоящий из массивов. Определяя массив, Вы должны сделать следующее:

  • Присвоить массиву имя.
  • Описать массив с помощью ключевого слова ARRAY.
  • Определить размер массива, используя индекс. Вы определяете номер первого и последнего элемента по отдельным измерениям массива (максимум 6 измерений). Индекс вводят в квадратных скобках, разделяя измерения посредством запятой, а номера первого и последнего элемента измерения – двумя точками. Например, следующий индекс определяет, трехмерный массив: [1..5,–2..3,30..32]
  • Вы указываете тип данных, которые должны содержаться в массиве.

Пример 1

Следующий рисунок показывает массив с тремя целыми числами. Вы обращаетесь к данным, хранимым в массиве, используя индекс. Индекс – это номер в квадратных скобках. Например, вторым целым числом является Op_temp[2]».

Индекс может быть любым целым числом (от -32768 до 32767), включая отрицательные значения. Массив на следующем рисунке можно было бы определить также как ARRAY [-1 .. 1]. Тогда первым целым числом было бы Op_temp[-1], вторым целым числом – Op_temp[0] и третьим целым числом – Op_temp[1].

 

Пример 2

Массив может также описывать многомерную группу типов данных. Следующий рисунок показывает двумерный массив целых чисел.

 

Вы обращаетесь к данным в многомерном массиве, используя индекс. В этом примере первым целым числом является Op_temp[1,1]», третьим – Op_temp[1,3]», четвертым – Op_temp[2,1]» и шестым – Op_temp [2,3]».

Вы можете определять в массиве до 6 измерений (6 индексов). Например, Вы могли бы определить переменную Op_temp как шестимерный массив следующим образом:

ARRAY [1..3,1..2,1..3,1..4,1..3,1..4]

Индексом первого элемента в этом массиве является [1,1,1,1,1,1]. Индексом последнего элемента является [3,2,3,4,3,4].

Создание массивов

Вы определяете массивы, объявляя данные в DB или в разделе описания переменных. Когда Вы объявляете массив, Вы указываете ключевое слово (ARRAY), а затем размер в квадратных скобках следующим образом:

[значение нижней границы.. значение верхней границы]

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

Следующий рисунок показывает описание для создания массива размерности 2 x 3.

 

Ввод начальных значений для массива

Создавая массивы, Вы можете каждому элементу массива присваивать начальное значение. STEP 7 предоставляет два метода ввода начальных значений:

  1. Ввод индивидуальных значений: для каждого элемента массива Вы указываете значение, допустимое для типа данных этого массива. Значения указываются в порядке следования элементов: [1,1]. Помните, что отдельные элементы должны отделяться друг от друга запятой.
  2. Задание коэффициента повторения: при наличии последовательных элементов, имеющих одинаковое начальное значение, Вы можете указать число таких элементов (коэффициент повторения) и начальное значение для этих элементов. Формат ввода коэффициента повторения имеет вид: x (y), где x – коэффициент повторения, а y – повторяемое значение.

Если Вы используете массив, описанный на рисунке, показанном выше, то Вы можете задать начальное значение для всех шести элементов следующим образом: 17, 23, -45, 556, 3342, 0. Вы могли бы также установить начальное значение всех шести элементов равным 10, указав 6(10). Вы могли бы задать определенные значения для первых двух элементов, а затем установить остальные 4 элемента в 0, указав следующее: 17, 23, 4(0).

Доступ к данным в массиве

Вы обращаетесь к данным в массиве через индекс определенного элемента в массиве. Индекс используется в сочетании с символьным именем.

Пример: Если массив, описанный на рисунке выше, начинается в первом байте DB20 (motor), Вы обращаетесь ко второму элементу этого массива по следующему адресу:

Motor.Heat_2x3[1,2].

Использование массивов в качестве параметров

Вы можете передавать массивы как параметры. Если параметр описан в разделе описания переменных как ARRAY, то Вы должны передать весь массив (а не отдельные элементы). Однако параметру может присваиваться элемент массива, когда Вы вызываете блок, если элемент массива соответствует типу данных параметра.

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

Мой блог находят по следующим фразам

Книги и справочники

1. Гайнутдинов К.Р. Простое и понятное программирование в CoDeSys

Книга простым языком рассказывает о первых шагах в освоении  CoDeSys и ОВЕН ПЛК. Автор более 5 лет сам ведет курсы по CoDeSys, поэтому не только знает саму среду программирования, но и умеет доносить свои знания до слушателей. Будет полезна новичкам.

Часть 1.

Часть 2.

Часть 3. 

2. Петров И.В. Программируемые контроллеры.2004

Замечательное справочное руководство по CoDeSys от официального дистрибьютора CoDeSys в России. Обзор возможностей СoDeSys, включая языки, операторы, структуру проекта и многое другое. Скачать

3. Справочник инженера АСУТП Федоров 2008г

Большое и правильное исследование того, как следует организовывать системы АСУТП. Настольная книга всякого уважающего себя инженера АСУ. Скачать

4. Компьютерное управление технологическим процессом, экспериментом, оборудованием В.В.Денисенко 2009-600R

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

5. Клюев А.С. Проектирование систем автоматизации технологических процессов.1990

Классика не стареет. Сам по ней учился. Скачать

6. Наладка средств автоматизации и автоматических систем регулирования. Под ред.А.С.Клюева.1989

Тоже из классики. Особенно интересно для пуско-наладчиков. Скачать

7. Усольцев А.А. Частотное управление асинхронными двигателями/Учебное пособие. СПб: СПбГУ ИТМО, 2006

Хорошее академическая книга по управлению ПЧ. Скачать

8. Гайнутдинов К.Р. ПР, вводный курс.

Подробное пошаговое описание работы с программируемым реле ОВЕН для новичков.

ПР, вводный курс. Глава 1. Скачать

ПР, вводный курс. Глава 2. Скачать

ПР, вводный курс. Глава 3. Скачать

ПР, вводный курс. Приложение А. Скачать

ПР, вводный курс. Приложение В. Скачать

Скачать

Мой блог находят по следующим фразам

Редактирование команд FBD Step7

Установка формата для FBD

Вы можете установить формат для создания программ в виде функционального плана. Выбираемый вами формат (А4 книжная ориентация/альбомная ориентация/максимальный размер) оказывает влияние на количество элементов функционального плана, которые могут быть отображены в одной цепи.

1. Выберите команду меню Options > Customize [Параметры > Настройка].

2. В появившемся диалоговом окне выберите закладку «LAD/FBD (или LAD/FBD)».

3. Выберите требуемый формат из окна списка «Layout [Размещение]».

Введите требуемый размер формата.

Настройки для печати

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

Настройки в таблице «LAD/FBD»

В таблице «LAD/FBD» куда Вы попадаете с помощью команды меню Options > Customize [Параметры > Настройка], Вы можете выполнять основные настройки, например, установить размер и ширину адресного поля.

Правила ввода элементов функционального плана

Сегмент функционального плана может состоять из ряда элементов. Все элементы должны быть соединены (IEC 1131–3).

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

Ввод и редактирование адресов и параметров

Когда вставляется элемент FBD, то в качестве маркеров для адресов и параметров используются символы ??? и … .

  • Красные символы ??? стоят вместо адресов и параметров, которые должны быть подключены.
  • Черные символы … стоят вместо адресов и параметров, которые могут быть подключены.

Если Вы поместите указатель мыши на маркерах, то отобразится ожидаемый тип данных.

Размещение блоков

Стандартные блоки (триггеры, счетчики, таймеры, математические операции и т. д.) могут быть добавлены к блокам с двоичными логическими операциями (&, >=1, XOR). Исключением из этого правила являются блоки сравнения.

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

  

На правом конце логической цепочки могут быть размещены только следующие блоки, замыкающие эту цепочку:

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

Некоторые блоки требуют булевой логической операции, а некоторые блоки не должны иметь булевой логической операции.

Блоки, требующие булевой логики:

  • выход, установка выхода, сброс выхода _/[R]
  • промежуточный выход _/[#]_/, положительный фронт _/[P]_/,отрицательный фронт _/[N]_/
  • все блоки счетчиков и таймеров
  • переход по отрицанию _/[JMPN]
  • включение главного управляющего реле _/[MCR<]
  • сохранение VKE (RLO) в бите BR _/[SAVE]
  • возврат _/[RET]

Блоки, не допускающие булевой логики:

  • активизация главного управляющего реле [MCRA]
  • деактивизация главного управляющего реле [MCRD]
  • открытие блока данных [OPN]
  • выключение главного управляющего реле [MCR>]

Все остальные блоки могут как иметь булевы логические операции, так и не иметь их.

Деблокирующий вход/Деблокирующий выход

Деблокирующий вход «EN» и деблокирующий выход «ENO» блоков может быть подключен, но это не обязательно.

Удаление и замена

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

Константы

Двойные линии не могут назначаться константам (например, TRUE или FALSE). Вместо этого, используйте адреса типа данных BOOL.

Мой блог находят по следующим фразам

Правила ввода элементов в LAD Step7

Сегмент контактного плана может состоять из ряда элементов, расположенных в нескольких ветвях. Все элементы и ветви должны быть соединены; левая шина не считается соединением(IEC 1131–3).

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

Закрытие сегмента LAD

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

  • блоки сравнения
  • катушки для промежуточных выводов _/(#)_/
  • катушки для анализа положительного _/(P)_/ или отрицательного _/(N)_/фронта.

 Размещение блоков

Начальной точкой ветви для подключения блока всегда должна быть левая шина. В ветви перед блоком могут находиться логические операции или другие блоки.

Размещение катушек (coils)

Катушки размещаются автоматически на правом конце сегмента, образуя конец ветви.

Исключения: Катушки для промежуточных выводов _/(#)_/ и для анализа положительного _/(P)_/ или отрицательного _/(N)_/ фронта не могут размещаться ни на левом, ни на правом краю ветви. Не разрешаются они и в параллельных ветвях.

Некоторые катушки требуют булевой логической операции, а некоторые катушки не должны иметь булевой логической операции.

Катушки, требующие булевой логики.

  • выход _/( ), установка выхода _/(S), сброс выхода _/(R)
  • промежуточный выход _/(#)_/, положительный фронт _/(P)_/, отрицательный фронт _/(N)_/
  • все счетчики и таймеры
  • переход по отрицанию _/(JMPN)
  • включение главного управляющего реле _/(MCR<)
  • сохранение VKE (RLO) в бите BR _/(SAVE)
  • возврат _/(RET)

Катушки, не допускающие булевой логики:

  • активизация главного управляющего реле _/(MCRA)
  • деактивизация главного управляющего реле _/(MCRD)
  • открытие блока данных _/(OPN)
  • выключение главного управляющего реле _/(MCR>)

Все остальные катушки могут как иметь булеву логику, так и не иметь ее.

Следующие катушки не должны использоваться как параллельные выходы:

  • переход по отрицанию _/(JMPN)
  • переход _/(JMP)
  • вызов из катушки _/(CALL)
  • возврат _/(RET)

Деблокирующий вход/Деблокирующий выход

Деблокирующий вход «EN» и деблокирующий выход «ENO» блоков может быть подключен, но это не обязательно.

Удаление и замена

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

Режим замены может использоваться для простой замены элементов одного и того же типа.

Параллельные ветви

  • Чертите параллельные ветви слева направо.
  • Параллельные ветви открываются вниз и закрываются вверх.
  • Параллельная ветвь всегда открывается после выделенного элемента контактного плана.
  • Параллельная ветвь всегда закрывается после выделенного элемента контактного плана.
  • Для удаления параллельной ветви удалите все элементы в этой ветви.
  • Когда в ветви удаляется последний элемент, ветвь удаляется автоматически.

Константы

Двойные линии не могут назначаться константам (например. TRUE или FALSE). Вместо этого, используйте адреса типа данных BOOL.

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

Поток энергии справа налево

Нельзя создавать ветви, которые могут вызвать поток энергии в противоположном направлении. Пример показан на следующем рисунке: при нулевом состоянии сигнала на I 1.4 поток энергии через I 6.8 был бы направлен справа налево, что недопустимо.

 

Короткое замыкание

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

 

Мой блог находят по следующим фразам

Секрет популярности корпусной мебели

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

Самым большим преимуществом корпусной мебели является её модульность и мобильность, т. е. её легко переставлять с места на место. Если вы делаете ремонт в спальне, то можно с лёгкостью перетащить все наименования из одной комнаты в другую предварительно выгрузив все вещи оттуда. Сегодня данный вид изделий производится из самых разных материалов. Самые популярные — это ДСП, МДФ, ДВП и натуральная древесина. Стоит заметить, что качественная корпусная мебель очень часто используется для офисных помещений в силу своей компактности. Если вы хотите купить несколько изделий для своей новой квартиры то есть резон рассмотреть такую альтернативу как мебель на заказ. Это позволит вам выбрать цветовую гамму, материал и даже функциональное назначение.
Также замечательным вариантом является встроенная мебель, которая отлично подходит для узких коридоров и небольших помещений. С помощью таких мебельных изделий владелец сможет не только избавиться от захламлённости квартиры, но и придать помещениям современный вид. Вместительная и элегантная мебель подобного плана украсит любой дом. Однако нужно очень внимательно выбирать фирму, которая способна поручиться за качество изготавливаемых наименований. К сожалению, сегодня появилось очень много посредников, которых заботит только уровень продаж и обычно изделия от перекупщика стоят намного дороже. Однако их можно очень просто проверить. Просто задайте им вопрос о гарантийном сроке и о скорости возврата бракованных наименований. Если они уходят от ответа или «мнутся» то перед вами посредник. Ищите именно производителя, которые сможет обеспечить качественную доставку мебели к вам домой.

Мой блог находят по следующим фразам

Языки программирования Step7

Язык программирования Ladder Logic (LAD)

Графический язык программирования Ladder Logic (LAD) основан на представлении коммутационных схем. Элементы коммутационной схемы, такие как нормально открытые контакты и нормально замкнутые контакты, группируются в сегменты. Один или несколько сегментов образуют раздел кодов логического блока.

Создание программ в нем выполняется в редакторе пошагового ввода.

 пример сегментов в LAD

 Язык программирования. Функциональный план (FBD)

Язык программирования Функциональный план (FBD) использует для представления логики графические логические символы, известные из булевой алгебры. Сложные функции, такие как математические, также могут быть представлены непосредственно в соединении с логическими блоками.

Пример сегмента в FBD

 Язык программирования. Список команд (STL)

Представление языка программирования Список команд (STL) – это текстовый язык, подобный машинному коду. Каждая команда соответствует шагу работы CPU при обработке программы. Несколько команд могут быть связаны друг с другом, образуя сегменты.

Пример сегментов в Списке команд

 Язык программирования Список команд включен в стандартный пакет программного обеспечения STEP 7. Вы можете редактировать блоки S7 в этом представлении языка с помощью редакторов пошагового ввода или создавать свою программу с помощью редактора, работающего в режиме свободного редактирования в исходном файле на STL, а затем компилировать ее в блоки.

 Язык программирования S7 SCL

Язык программирования SCL (Structured Control Language [Структурированный язык управления]), доступный как дополнительный пакет, − это текстовый язык высокого уровня, определение которого в целом соответствует стандарту Международной электротехнической комиссии IEC 1131-3. Этот паскалеобразный язык благодаря своим командам высокого уровня упрощает в сравнении с STL программирование циклов и условных переходов. Поэтому SCL пригоден для расчетов, включая формулы, сложные оптимизационные алгоритмы или управление большими объемами данных.

 Создание программ на S7 SCL производится в режиме свободного редактирования в исходном файле.

Пример:

FUNCTION_BLOCK FB20

VAR_INPUT

ENDVAL: INT;

END_VAR

VAR_IN_OUT

IQ1 : REAL;

END_VAR

VAR

INDEX: INT;

END_VAR

BEGIN

CONTROL:=FALSE;

FOR INDEX:= 1 TO ENDVALUE DO

IQ1:= IQ1 * 2;

IF IQ1 >10000 THEN

CONTROL = TRUE

END_IF

END_FOR;

END_FUNCTION_BLOCK

Язык программирования S7 Graph (последовательное управление)

Графический язык программирования S7 Graph, доступный в виде дополнительного пакета, дает возможность программирования устройств последовательного управления. Это включает в себя создание последовательности шагов, определение содержания каждого шага и определение переходов. Вы программируете содержание шагов на специальном языке программирования (похожем на список команд) и вводите переходы в редакторе цепных логических схем (модернизированная версия языка КОР).

S7 Graph очень ясно представляет сложные последовательности и делает программирование и поиск неисправностей более эффективными.

Пример последовательного управления в S7 Graph

 Создаваемые блоки

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

Исходный файл

Из функционального блока, созданного в S7 Graph, может быть сгенерирован текстовый исходный файл, который может интерпретироваться панелями оператора или текстовыми дисплеями интерфейса с оператором для отображения генератора последовательности шагов.

Язык программирования S7 HiGraph (граф состояний)

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

Вы создаете граф для каждого функционального агрегата, который описывает поведение этого агрегата. Графы для установки объединяются в группы графов. Для синхронизации функциональных агрегатов между графами может производиться обмен сообщениями. Ясное представление переходов между состояниями функционального агрегата делает возможным систематическое программирование и облегчает поиск ошибок. В отличие от S7 Graph, в S7 HiGraph в каждый момент времени активно только одно состояние (в S7 Graph: «шаг»). На следующем рисунке показано, как создавать графы для функциональных агрегатов (пример).

 

 Группа графов хранится в исходном файле HiGraph в папке «Source Files [Исходные файлы]» под программой S7. Затем исходный файл компилируется в блоки S7 для программы пользователя.

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

Язык программирования S7 CFC

Дополнительный пакет программного обеспечения CFC (Continuous Function Chart [Схема непрерывных функций]) – это язык программирования, используемый для графического связывания сложных функций.

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

Созданная программа хранится в виде схем CFC. Они находятся в папке «Charts [Схемы]» под программой S7. Эти схемы затем компилируются для формирования блоков S7 для программы пользователя. Возможно, Вы сами захотите создать подлежащие соединению блоки, в этом случае Вы программируете их для SIMATIC S7 с помощью одного из языков программирования S7, а для SIMATIC М7 – с помощью С/С++.

Мой блог находят по следующим фразам

Туры в Меденин, Тунис

Тунис — популярное туристическое направление в Африке. Это одна из самых цивилизованных стран Черного континента. Сегодня на ее курортах можно отдохнуть недорого. Путешественникам предлагаются горящие туры в Тунис в августе и до октября. Весной и в начале лета также можно приобрести путевки со скидкой. Такой вариант путешествия подойдет легким на подъем туристам, готовым за пару дней собраться в путь.

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

Меденин привлекает удобным месторасположением. От него недалеко до экскурсионных жемчужин Джербы и Магриба. Знаменит историческими памятниками и сам город. Также он радует гостей развитой инфраструктурой. Меденин нередко называют идеальным по соотношению цены и качества отдыха городом в Тунисе. В отпуск в средиземноморский туристический центр отправиться можно в любое время года. Для пляжного отдыха подойдет период с мая по октябрь. «Холодный» сезон считается в Меденине преимущественно экскурсионным.

Город интересен богатой историей. За время своего существования он многое пережил. Меденином владели карфагеняне, римляне, затем берберы. Колониальная история города также безоблачной не была. Но Меденин стойко преодолел превратности судьбы, сегодня является мирным, очень гостеприимным и комфортным для отдыха местом. В архитектуре города преобладают римские черты. Также велико колониальное наследие.

Но известность Меденину как экскурсионному центру принесли берберские памятники. Любителям истории рекомендуется осмотреть местные ксары. Древние берберские «многоэтажки» — главная достопримечательность самого города и его живописных окрестностей. Большинство ксар расположено на холмах в пустыне. Несколько строений сохранилось на берегу Средиземного моря. Наибольшее внимание туристов привлекает состоящий из отдельных жилищ-горф квадратный ксар.

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

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

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

Мой блог находят по следующим фразам

Мой блог находят по следующим фразам