leigehong
Subscription group-
Content Count
168 -
Joined
Content Type
Profiles
Forums
PLC programming technology and HMI interface design Simplified Chinese database
- PLC AND HMI SIMPLIFIED CHINESE ARTICLES
- PLC AND HMI SIMPLIFIED CHINESE ARTICLE Comments
- PLC AND HMI SIMPLIFIED CHINESE ARTICLE Reviews
PLC and HMI Brand Database
- PLC AND HMI BRANDS INTRODUCTIONS
- PLC AND HMI BRAND INTRODUCTION Comments
- PLC AND HMI BRAND INTRODUCTION Reviews
PLC programming technology and HMI interface design English database
- PLC AND HMI ENGLISH ARTICLES
- PLC AND HMI ENGLISH ARTICLE Comments
- PLC AND HMI ENGLISH ARTICLE Reviews
PLC programming technology and HMI interface design Russian database
- PLC AND HMI RUSSIAN ARTICLES
- PLC AND HMI RUSSIAN ARTICLE Comments
- PLC AND HMI RUSSIAN ARTICLE Reviews
Spanish database on PLC programming techniques and HMI interface design
- PLC AND HMI SPANISH ARTICLES
- PLC AND HMI SPANISH ARTICLE Comments
- PLC AND HMI SPANISH ARTICLE Reviews
German database on PLC programming technology and HMI interface design
- PLC AND HMI ARTICLES IN GERMAN
- PLC AND HMI ARTICLE IN GERMAN Comments
- PLC AND HMI ARTICLE IN GERMAN Reviews
Downloads
Store
Gallery
Blogs
Calendar
Videos
Everything posted by leigehong
-
PLC logic program controls water level
leigehong posted A plc and hmi english article in PLC programming learning
Design a PLC program to control the level of a water storage tank by turning a discharge pump ON and OFF based on Low and High levels. PLC Program for Water Level Control Logic Description Auto : if Auto Mode selected in Local Control Panel, then pump will be logically controlled based on Low Level Switch and High Level Switch Manual : if Manual Mode Selected in Local Control Panel, then irrespective of Low Level Switch & High Level Switch Status, Pump will be controlled manually using ON/OFF button in Local Control Panel. When the water level reaches low level then pump will be stopped. if the level of the water reaches high point, the pump will started so that the water can be drained and thus lowering the level. Indication Panel : This panel contains LED’s to show the status of the water level control. It has Pump Running, Low Level & High Level Signals If pump is running then the Pump Running status lamp will be ON. then, if Low Level Switch activated then Low Level Status lamp will be ON. if High Level Switch activated then High Level Status lamp will be ON. PLC Ladder Logic Manual Mode Selected, OFF Position and Water at Low Level Manual Mode Selected & Water between Low & High Levels Auto Mode Selected & High-Level Switch Activated -
PLC Program for Continuous Filling Operation
leigehong posted A plc and hmi english article in PLC programming learning
PLC Program : A Continuous Filling Operation requires boxes moving on a conveyor to be automatically positioned and filled. PLC Program for Continuous Filling Operation Purpose Solenoid : To control the product filling from the hooper. Solenoid will be activated after the box positioned (proximity switch activation) and again de-activates after the level switch activated (level full). Level Switch : To detect the product level in the filling box. Proximity Switch : To position the box exactly below the hooper. Motor : To run the conveyor such that the box will move accordingly. Local Control Panel : it has START & STOP buttons used to control the sequence. Indication Panel : It displays the plant/batch status. Status signals are Run/Stand By/Full. PLC Logic The below are the default positions : STOP Switch : Normally Close (NC) START Switch : Normally Open (NO) Proximity Switch : Normally Open (NO) Level Switch : Normally Open (NO) Note : In ladder logic we can use either NO or NC contacts as default of proximity & level switch as required. if we use NO then it becomes NC after switch activated. if we use NC then it becomes NO after switch activated. Explanation Here we have 5 rungs / complete lines in the above ladder logic. First Rung: It has STOP, START & RUN Indication. STOP default NC, START is NO, when we press START command then both STOP & START are NC so the output RUN will be activated. RUN Indication will be displayed in indication panel. As START is a push button which generates a momentary command only. So we use a logical NO contact from RUN output. when RUN is activated, the NO becomes NC and Holds/latches the START command and RUN will be continuously activated even though START signal is lost as it is momentary type. Second Rung: it is used to indicate STAND BY signal status in the indicator panel. RUN indication NC contact is connected to STANDBY. so when RUN signal activated or process started then NC becomes NO and STAND BY indication will be disabled. if it is not running then stand by will be activated. Third Rung: it is used to indicate FULL signal status in the indicator panel. when level switch & proximity switch are activated then NO contacts will become NC and FULL signal status will be enabled. Fourth Rung: It is used to control the Motor either START/STOP. Proximity switch NC contact is used & RUN signal NO contact is used here to control the Motor. so when we press START button, the RUN will be activated ( as discussed in First Rung ) so RUN signal NO contact will becomes NC. Both proximity & RUN signals are enabled/healthy then Motor will be started and conveyor will start running and box/package will start move. once the box reached before Hooper then proximity switch will be activated. So proximity switch NC contact becomes NO, so Motor will be stopped immediately. After filling, the box has to move again and to reach other side. so here we use level switch NO contact across proximity switch. When Filling completed, Level switch contact changes from NO to NC, so again the motor starts and moves the box to other end. Fifth Rung: It is used to control the solenoid valve operation. If solenoid activated then it starts filling the box and if solenoid valve de-activates then the filling will be stopped. Here we mainly use RUN signal NO contact, Level Switch NC contact, Proximity NO contact to control the solenoid valve. Solenoid valve will be activated when START command is given ( RUN signal NO contact becomes NC), when level is Zero (Level switch NC contact used as default here ), when Box is placed under the hooper ( proximity switch NO contact used. so when box arrives under hooper, NO contact becomes NC ) , after all the logics are healthy then solenoid valve will be activated and starts filling. if level reaches 100% then level switch will become NO and thus stopping the filling by de-activating the solenoid valve. We used proximity switch here because the filling has to be started when the box placed in correct position. After filling the box move out and filling again will start when next box comes under Hooper. -
PLC Conveyor Motor Ladder Logic
leigehong posted A plc and hmi english article in PLC programming learning
PLC Programming Tutorials for PLC Conveyor Motor Ladder Logic or Conveyor Belt Control using a programmable logic controller (PLC). PLC Conveyor Motor Ladder Logic Objective: The sequential tasks as follows When START button pressed Motor will be started RUN (Green Lamp) indication lamp will be activated Motor Running, so Box will start Move Proximity Sensor will detect when the box arrives at other end Motor will be stopped RUN (Green Lamp) indication lamp will be de-activated STOP (Red Lamp) indication lamp will be activated An Emergency Stop push button will be used to stop the motor at any time. Relay Schematic R : STOP Indication lamp, G : RUN Indication lamp, M : Motor, OL : Overload Relay (Motor Protection Relay), LS1 : Proximity Switch, PB1 : Start push button, PB2 : Emergency Stop Pushbutton, CR : Contractor Relay Operational Sequence Start button is actuated. CR1-1 closes to seal in CR1 or to latch the start command CR1-2 opens, switching the red stop pilot light off CR1-3 closes, switching the green run pilot light on CR1-4 closes to energize the motor starter and motor The box/package moves, and proximity switch (LS1) detects the box when it reached and de-energize coil CR1 CR1-1 opens to open the seal-in contact ( unlatched start command) CR1-2 closes, switching the red pilot light on CR1-3 opens, switching the green pilot light off CR1-4 opens to de-energize the starter coil, stop the motor, and end the sequence PLC Ladder Logic -
DELTA-RU Связь Modbus между ПЛК Дельта с ЧРП
leigehong posted A plc and hmi russian article in PLC programming learning
Связь Modbus между ПЛК «дельта» (DVP 14SS2) и преобразователем частоты «треугольник» (серия VFD-L). Двигатель должен управляться непосредственно с ЧМИ (DOP-107CV) с использованием связи Modbus. Связь Modbus с ПЛК Delta и ЧРП Асинхронный двигатель должен управляться непосредственно с ЧМИ вместе с контролем скорости. Управление скоростью таково, что в HMI должно быть две кнопки, которые увеличивают и уменьшают скорость двигателя с шагом в один герц (предположим). Существует преобразователь переменного тока типа «треугольник» серии VFD-L, который запускает двигатель на основе команд, полученных от ПЛК. Во-первых, в приводе необходимо настроить параметры связи и другие параметры, соответствующие всем его конфигурациям с ПЛК, такие как скорость передачи данных, четность, режим связи и т. д.; за исключением идентификатора подчиненного устройства (адреса станции), который должен отличаться от адреса станции ПЛК. По умолчанию адрес станции ПЛК равен единице (1). Это означает, что адрес станции привода должен быть любым в определенном диапазоне, кроме единицы (1). Подробные параметры, которые необходимо установить для режима связи, следующие: 2-00 = 4 2-01 = 4 Параметры связи Нам необходимо установить параметры связи согласно приведенной выше таблице. (взято из мануала). 9-00 = 2 (можно установить любое значение, кроме 1) 9-01 = 1 9-04 = 7 (режим RTU, стоповые биты равны 1 и четность — четность) DVP 14SS2 имеет два порта связи, а именно RS232 и RS485 отдельно. Теперь необходимо выполнить настройки порта связи 2 в соответствии с установленными параметрами VFD, которые заключаются в следующем. Откройте программу WPL. (Программное обеспечение ПЛК Delta) Нажмите на значок «Коммуникационная программа» на странице программирования. Выберите COM2 и нажмите «Далее». Установите параметры в соответствии с параметрами связи привода VFD и нажмите «Далее». Здесь они подаются согласно параметрам, заданным в погружении VFD-L. Адрес станции ПЛК равен 1 (см. левый нижний угол). Проверьте выделенное и нажмите «Далее». Вы можете поставить галочки ниже и написать условия. Здесь мы пропускаем это окно и вместо этого напишем логику непосредственно в режиме релейной диаграммы. Нажмите «Готово». Теперь в результате указанных выше условий генерируется следующая релейная логика. Лестничная схема в ступени 2 выполняется каждый раз при получении отправленного запроса. Лестничная схема в ступени 3 выполняется каждый раз после чтения или записи любых данных на диск. Теперь, прежде чем двигаться дальше, написать логику запуска и остановки двигателя и управления его скоростью, нам необходимо узнать Modbus-адреса привода, через который будет выполняться сказанное. Для серии VFD-L 2000H — это адрес Modbus для запуска и остановки привода, а 2001H — для изменения частоты. Здесь H означает шестнадцатеричное число. В этой теме мы здесь, чтобы использовать десятичный формат для конкретного адреса. Поэтому шестнадцатеричный формат необходимо изменить на десятичный. С помощью кода 8421 мы преобразуем следующим образом: 2000 (шестнадцатеричный) = 8192 (декабрь) 2001(шестнадцатеричный) = 8193 (декабрь) Таким образом, вместо 200H и 2001H будут использоваться 8192K и 8193K. Убедитесь, что 8192 и 8193 — это только адреса Modbus. Если 8192K имеет значение, равное 10, двигатель запустится. Если 8192K имеет значение, равное 1, двигатель остановится. Если 8193K имеет значение, равное 5000, то двигатель будет работать на частоте 50 Гц. Это означает, что если скорость двигателя необходимо увеличить на 1 Гц, к существующему значению необходимо добавить 100 и наоборот. Объяснение программы ПЛК Теперь перейдем к деталям программы ПЛК. Бит запроса на отправку M1122 устанавливается каждый раз, когда VFD подается какая-либо команда в цепочке 5. MODRW K2 K6 K8192 D70 K1 MODRW представляет собой чтение и запись модов. K2 представляет адрес станции VFD. K6/K3 представляет код функции для записи или чтения. Здесь k6 представляет собой запись. K8192 представляет адрес Modbus, на который записываются данные. Данные в D70 записываются в k8192 K1 — длина данных 10 (десятичный) и 1 (десятичный) перемещаются в D70, когда в цепочках 6 и 7 подаются команды запуска и остановки. В то же время происходит передача данных, т.е. данные в D70 записываются по адресу 8192k VFD в ступенька 8 для запуска и остановки двигателя. 100 (десять) добавляется к значению D100 в цепочке 10, чтобы увеличить скорость на 1 Гц при получении импульса увеличения скорости (M4). 100 (дес.) вычитается из значения D100 в цепочке 9, чтобы уменьшить скорость на 1 Гц при получении импульса уменьшения скорости (M5). В то же время происходит передача данных, т.е. данные в D100 записываются по адресу 8193k ЧРП в цепочке 11 для запуска и остановки двигателя. ЧМИ Теперь перейдем к настройке HMI. После выбора модели HMI установите приведенную ниже конфигурацию, поскольку здесь конфигурация ПЛК-HMI осуществляется по RS232. (Вам необходимо настроить его в соответствии с моделью HMI) Возьмите четыре кнопки мгновенного действия, назначьте адреса и спроектируйте экран HMI следующим образом: Начало = М0 Стоп = М1 Увеличение скорости = M4 Уменьшить скорость = M5 Проверьте процесс Проектирование HMI не рассматривается в этой статье. -
Программа ПЛК для системы мониторинга уровня воды в искусственном пруду
leigehong posted A plc and hmi russian article in PLC programming learning
Программа ПЛК для системы мониторинга уровня воды в искусственном пруду, объясненная с помощью концепции лестничной логики для начинающих. Система мониторинга уровня воды описание проблемы Внедрить программу ПЛК для системы мониторинга уровня воды в искусственном пруду. Подавайте или сливайте воду из искусственного пруда, когда уровень воды ниже нормального уровня, и активируйте сигнализацию, когда уровень воды выше или ниже нормального уровня. Диаграмма проблемы Решение проблемы Эту проблему можно решить, используя простую автоматизацию. Здесь мы рассмотрели один искусственный пруд с рыбой, четыре датчика уровня и три насоса для мониторинга и управления системой. Здесь мы напишем программу, которая будет управлять всей системой. Система будет поддерживать нормальный уровень и не позволит уровню воды повышаться или понижаться для поддержания нормального уровня. Если уровень воды упадет по сравнению с нормальным уровнем, система будет подавать воду в пруд для разведения рыбы, а если уровень воды повысится от нормального уровня, система будет сливать воду из пруда для разведения рыбы. Список входов/выходов Список входов Датчик уровня, L0: I0.0 (L0=1, когда уровень воды превышает уровень сигнализации). Датчик уровня, L1: I0.1 (L1=1, когда уровень воды выше нормального уровня) Датчик уровня, L2: I0.2 (L2=1, когда вода выше нормального уровня) Датчик уровня, L3: I0.3 (L3=1, когда уровень воды выше аварийного уровня) Список выходов Подающий насос:- Q0.0 Дренажный насос 1:- Q0.1 Дренажный насос 2:- Q0.2 Сигнальная лампа:- Q0.3 ПЛК Ladder Logic для мониторинга уровня воды в искусственном пруду с рыбой Логика объяснена В этой задаче мы рассмотрим ПЛК S7-300 и портальное программное обеспечение TIA для программирования. Сеть 1: В этой сети мы написали логику для дренажного насоса 1 (Q0.1). Когда уровень воды превышает самый высокий уровень сигнализации (L3 = I0.3), в это время включается дренажный насос 1 (Q0.1). Сеть 2: Если уровень воды ниже аварийного уровня, следует запустить питательный насос (Q0.0). Итак, здесь мы взяли нормально замкнутый контакт L1 (I0.1), когда уровень ниже нормального, тогда питательный насос (Q0.0) ВКЛЮЧИТСЯ и наполнит воду в пруду. Сеть 3: Если уровень воды выше нормального уровня, то дренажный насос 2 (Q0.2) будет включен. Здесь уровень воды выше нормального уровня, а не уровня тревоги, поэтому будет работать только дренажный насос 2 (Q0.1). Сеть 4: Здесь мы использовали два условия в логическом элементе ИЛИ: либо уровень ниже нормального уровня (L1 = I0.1), либо выше нормального уровня (L1 = I0.1), тогда мигающая схема будет активирована и сигнальная лампа (Q0.3) загорится. НА. Сеть 5: Таймер 2 для мигающей цепи. Сеть 6: Здесь мы использовали два условия в логическом элементе ИЛИ: либо уровень ниже нормального уровня (L1=01), либо выше нормального уровня, тогда сигнальная лампа (Q0.3) будет автоматически мигать с 5-секундным интервалом. Уровень выше уровня тревоги (L0=1, L1=1, L2=1, L3=1) или ниже уровня тревоги (L0=0, L1=0, L2=0, L3=0). ЗАТЕМ автоматически загорится индикатор тревоги. Интервал 5 секунд. Уровень выше уровня тревоги (L0=0, L1=0, L2=0, L3=0), тогда запустится дренажный насос 1 и 2, а если уровень воды выше нормы, запустится только дренажный насос 2. Примечание. Приведенный выше пример предназначен только для пояснения, учитываются не все параметры или блокировки. Для этой простой логики нет необходимости использовать ПЛК S7-300, мы использовали этот ПЛК для целей обсуждения. Результат -
Программа ПЛК для контроля температуры с помощью термостата
leigehong posted A plc and hmi russian article in PLC programming learning
Контроль температуры ПЛК: В сосуде есть три нагревателя, которые используются для контроля температуры сосуда. Программирование контроля температуры ПЛК Мы используем три термостата для измерения температуры на каждом обогревателе. также еще один термостат для безопасного отключения в случае неисправности или чрезвычайной ситуации или во избежание перегрева. Все эти нагреватели имеют разные уставки или разные температурные диапазоны, в которых нагреватели могут быть включены соответствующим образом (в таблице ниже показаны температурные диапазоны). Система контроля температуры состоит из четырех термостатов. В системе работают три тепловых агрегата. Термостаты (TS1/TS2/TS3/TS4 настроены на 55°C, 60°C, 65°C и 70°C. При температуре ниже 55°C три нагревателя (H1,H2,H3) должны находиться во включенном состоянии. При температуре 55°C – 60°C два нагревателя (H2,H3) должны находиться во включенном состоянии. При температуре 60–65 °C один нагреватель (H3) должен находиться во включенном состоянии. При температуре выше 70°C все нагреватели должны быть выключены. Имеется предохранительное отключение (реле CR1) на случай, если какой-либо нагреватель сработает по ошибке. Главный выключатель включает и выключает систему. Решение ПЛК Есть четыре термостата; предположим, что они находятся в состоянии NC, когда заданное значение не достигнуто. Пусть имеется управляющее реле (CR1), работающее в качестве защитного отключения. Главный переключатель: Пусковой выключатель имеет нормально разомкнутый тип, а стоповый выключатель — нормально замкнутый. В таблице ниже показаны диапазоны температур, в которых состояние термостатов (TS1, TS2, TS3, TS4) будет отображаться в соответствии со значением температуры. Также статус нагревателей (H1,H2,H3), при котором эти нагреватели будут включены или выключены в зависимости от значения температуры. Релейная логика ПЛК Лестничная логическая операция Первая ступень: Он имеет кнопку ПУСК (контакт по умолчанию НО) и кнопку СТОП (контакт НЗ по умолчанию). Реле CR1 используется для управления нагревателями в зависимости от состояния термостатов. Термостат TS4 подключается между СТОПом и реле. Если TS4 активирован (означает, что контакт TS4 меняется с нормально замкнутого на нормально разомкнутый), то все нагреватели будут ВЫКЛЮЧЕНЫ. НО контакт реле CR1 используется рядом с кнопкой ПУСК для фиксации или удержания команды ПУСК. Вторая ступень: НО контакт реле CR1 используется для управления нагревателями (H1,H2,H3) при состоянии термостатов (TS1,TS2,TS3). После подачи команды ПУСК этот НО контакт становится НЗ контактом. если температура ниже 55 градусов C, TS1, TS2 и TS3 будут в закрытом состоянии, поэтому все нагреватели будут включены. если температура находится в диапазоне от 55 до 60 градусов Цельсия, то TS1 будет открыт, поэтому нагреватель H1 будет ВЫКЛЮЧЕН. затем, если температура находится в пределах от 60 до 65 градусов Цельсия, то TS2 также будет открыт, поэтому нагреватель H2 будет ВЫКЛЮЧЕН. если температура находится в диапазоне от 65 до 70 градусов Цельсия, то TS3 также будет открыт, поэтому нагреватель H3 будет ВЫКЛЮЧЕН. Имеется защитное отключение, которое используется во избежание неисправностей термостатов или перегрева. если температура превысит 70 градусов Цельсия, то TS4 активируется и обесточивает реле, таким образом, все нагреватели будут ВЫКЛЮЧЕНЫ. Примечание. Здесь нагреватели H1, H2, H3 представляют собой либо реле, либо контакторы, на которые мы подаем питание. поэтому замыкающий контакт этих реле подключен к фидерным цепям электронагревателя (MCC). Эти цепи электропитателя будут управляться в соответствии с этими сигналами, и, соответственно, нагреватели будут либо ВКЛЮЧЕНЫ, либо ВЫКЛЮЧЕНЫ. -
Пример программирования ПЛК для управления светодиодами
leigehong posted A plc and hmi russian article in PLC programming learning
Изучите пример программирования ПЛК по управлению светодиодами с использованием лестничной логической схемы и изучите описание программы. Этот пример ПЛК предназначен для студентов-инженеров, которые заинтересованы в изучении и практике упражнений с ПЛК. Программы промышленного ПЛК реального времени будут оснащены дополнительными функциями безопасности. Программирование ПЛК Управление светодиодами Разработайте релейную логику ПЛК для следующего приложения. Мы используем три тумблера для управления тремя светодиодами. Если тумблер 1 и тумблер 2 включены, то светодиод 1 и светодиод 2 будут гореть. Если тумблер 2 и тумблер 3 включены, то светодиод 2 будет выключен, а светодиод 3 будет гореть. Цифровые входы Необходимые входные данные перечислены ниже. Тумблер 1: I0.0 Тумблер 2: I0.1 Тумблер 2: I0.1 В наших следующих обсуждениях мы будем называть эти тумблеры просто «Переключатель». Но помните, что это тумблеры. Цифровые входы Необходимые результаты перечислены ниже. Светодиод 1: Q0.0 Светодиод 2: Q0.1 Светодиод 3: Q0.2 Лестничная диаграмма для управления светодиодами Описание программы ПЛК Для этого приложения мы использовали программное обеспечение EcoStruxure Machine Expert Basic v1.2 для программирования. В приведенной выше программе мы использовали нормально разомкнутые контакты для переключателя 1 (I0.0), переключателя 2 (I0.1) и переключателя 3 (I0.2). Мы также использовали нормально закрытый контакт для переключателя 3 (I0.2). Переключатель 1 и переключатель 2, присутствующие в цепочке 0, соединены последовательно для светодиода 1 и светодиода 2, таким образом реализуя логический вентиль И. При использовании переключателя 1 и переключателя 2 переключатель 3 подключен к светодиоду 3 как нормально замкнутый контакт. Для светодиода 3 переключатель 2 и переключатель 3, присутствующие в цепочке 1, соединены последовательно, реализуя таким образом логический элемент И. Чтобы светодиод 1 был включен, переключатель 1 и переключатель 2 должны быть включены. Когда переключатель 1 и переключатель 2 включены, а переключатель 3 выключен, светодиод 2 будет гореть. Когда переключатель 2 и переключатель 3 включены, светодиод 3 будет гореть. Включение переключателя 3 приведет к выключению светодиода 2. Когда переключатель 1 и переключатель 2 включены В цепочке 0 сигнал через переключатель 1 и переключатель 2 при включении. В результате светодиод 1 и светодиод 3 загорятся. Переключатель 3 используется в качестве нормально замкнутого контакта для переключателя 3, когда он находится в ложном состоянии, что позволяет подать сигнал на включение светодиода 2. Когда переключатель 2 и переключатель 3 включены Сигнал через переключатель 2 и переключатель 3 в цепочке 1 включает светодиод 3. В Rung0 переключатель 3 рассматривается как нормально закрытый контакт, в истинном состоянии он не пропускает через себя сигнал. В результате светодиод 2 погаснет. Переключатель 3 подключен к светодиоду 1 и, следовательно, он будет оставаться включенным. -
Серийный контроль уровня в резервуарах с использованием лестничного программирования ПЛК
leigehong posted A plc and hmi russian article in PLC programming learning
Нам нужно контролировать уровень баков, которые соединены последовательно. Внедрить программу для последовательного контроля уровня в резервуарах с использованием лестничного программирования ПЛК. Серия резервуаров контроля уровня Два бака соединены последовательно. Нам необходимо управлять обоими танками, которые соединены последовательно. Реализуйте программу ПЛК для этого приложения. Диаграмма проблемы Решение проблемы На химических предприятиях имеется множество материалов, которые используются в технологических процессах, а также хранятся в резервуарах для хранения различных процессов. Здесь мы рассматриваем два резервуара: 1. Резервуар для хранения и 2. Резервуар подачи. Резервуар для хранения имеет большую емкость, чем резервуар для подачи. Резервуар для хранения предназначен для хранения материала, а резервуар для подачи — для подачи материала для других процессов. Два реле уровня используются для определения уровня и один впускной клапан для контроля подачи материала. Рассмотрим один ручной выпускной клапан, и он может управляться по требованию оператора. Для этого приложения мы можем использовать ПЛК, мы напишем программу ПЛК для этого приложения. Список входов и выходов Цифровые входы Цикл СТАРТ:- I0.0 Цикл СТОП:- I0.1 Резервуар низкого уровня (LL1):- I0.3 Питающий бак низкого уровня (LL2):- I0.4 Резервуар высокого уровня (LH1):- I0,5 Емкость подачи высокого уровня (LH2): - I0.6 Цифровой выход Впускной клапан:- Q0.0 М-память Бит включения цикла: - M0.0 Состояние закрытия впускного клапана:- M0.1 Лестничная диаграмма ПЛК для контроля уровня в серийных резервуарах Описание программы Для этого приложения мы использовали ПЛК S7-300 и портальное программное обеспечение TIA для программирования. Мы также можем реализовать эту логику, используя другой ПЛК. Сеть 1: Сеть 1 предназначена для схемы фиксации. Каждый раз при нажатии кнопки СТАРТ (I0.0) бит включения цикла (M0.0) будет включен. Цикл можно остановить, нажав STOP PB (I0.1). Сеть 2: Если обнаружен низкий уровень в накопительном резервуаре (I0.3) или низкий уровень в питательном резервуаре (I0.4), впускной клапан (Q0.0) будет включен. (Состояние закрытия впускного клапана не должно присутствовать). Сеть 3: Обнаружены высокие уровни (I0.5 и I0.6) в обоих резервуарах, будет активировано условие закрытия впускного клапана, и впускной клапан (Q0.0) закроется. Здесь выпускной клапан представляет собой ручной клапан, им может управлять оператор в соответствии с требованиями. Примечание. Вышеуказанное приложение может отличаться от фактического. Этот пример предназначен только для пояснения. Мы можем реализовать эту логику и в других ПЛК. Результат -
Как преобразовать электрическую схему в программу ПЛК?
leigehong posted A plc and hmi russian article in PLC programming learning
Программирование ПЛК основывалось на истории и ссылках на электрические чертежи. Со временем стало трудно устранять неисправности в электрических системах, связанных с автоматизацией, возникла необходимость в каком-то контроллере, который мог бы выполнять логику и делать все необходимое. Это привело к появлению систем ПЛК. Как вы знаете, для программирования ПЛК существует множество типов языков, и исходным языком является лестничный язык. Следует знать, что электрические схемы также помогают преобразовать ее в лестничную логику. В этом посте мы увидим, как преобразовать электрическую схему в программу ПЛК. Понимать электрическую схему Прежде всего, необходимо разобраться с электрической схемой. См. изображение ниже. Любая цепь имеет два конца – положительный и отрицательный. Ток начинается с положительного конца и течет через отрицательный конец. Между ними появляются электрические компоненты и устройства. Если вы обратитесь к изображению ниже, то увидите четыре компонента: кнопку запуска, кнопку остановки, вспомогательный контакт лампы и лампу. Питание начинается с положительного конца и поступает на вход кнопки пуска (НО контакт). Выход кнопки пуска поступает на вход кнопки остановки (размыкающий контакт). Выход кнопки остановки поступает на вход лампы. Выход лампы подключен к отрицательному концу питания. Параллельно кнопке запуска от входа кнопки к вспомогательному контакту лампы идет еще один провод. Выход этого контакта обратно соединен с выходом кнопки. При подаче питания и нажатии кнопки запуска лампа включится, поскольку она получит путь для тока. Теперь если кнопку отпустить, то лампа погаснет так как ей не попадает путь. Итак, чтобы зафиксировать его, мы размещаем контакт лампы параллельно, который будет удерживать путь подачи питания. При нажатии кнопки «стоп» путь электропитания прерывается и лампа гаснет. Преобразование схемы подключения в программу ПЛК Теперь, когда вы поняли схему подключения, начните интерпретировать ее таким же образом для программирования ПЛК. См. изображение ниже. Лестничная логика будет иметь два силовых конца – левый и правый. Левый эквивалент соответствует положительному концу мощности, а правый соответствует отрицательному концу мощности. Вам потребуются четыре компонента программирования ПЛК: кнопка запуска -> НО контакт, кнопка остановки -> НЗ контакт, лампа -> выходная катушка и НО контакт лампы. Сначала установите разомкнутый контакт кнопки запуска. Параллельно ему поставьте лампу на Н.О. контакт. После этого установите размыкающий контакт кнопки остановки. В конце поставьте лампу на Н.О. контакт. Работа будет такой же, как описано для схемы подключения. Вы видели, что один и тот же электрический рисунок был интерпретирован и преобразован в лестничную логику. Общие советы, которым следует следовать: 1. Поймите схему подключения входной и выходной мощности. Между ними посмотрите, какие компоненты где расположены и как они подключены. 2. В проводке определите входные и выходные части и отметьте их разными цветами. 3.Начните программирование, следуя схеме и разместив компоненты так же, как было выполнено подключение. 4.Запустите программу и посмотрите, как она работает. -
Управление несколькими насосами с помощью ПЛК
leigehong posted A plc and hmi russian article in PLC programming learning
Напишите программу ПЛК для управления несколькими насосами с помощью программируемых логических контроллеров. У нас есть два входных насоса, используемых для наполнения резервуара. Убедитесь, что насосы работают одинаковое время в течение всего срока службы. Управление несколькими насосами с помощью ПЛК Логика программы: Разработайте программу лестничной логики в соответствии с логикой, приведенной ниже: Кнопка пуска/останова предназначена для управления двумя входными двигателями насосов P1 и P2. Кнопочная станция «Пуск/Стоп» используется для управления насосом P1. Когда бак заполнен, двигатель сливного насоса P3 запускается автоматически и работает до тех пор, пока не сработает датчик низкого уровня. После 3-х наполнений бака насосом Р1 управление автоматически переключается на насос Р2. Работа кнопки пуска/останова теперь управляет насосом P2. После 3-х наполнений бака насосом Р2 последовательность действий повторяется. Программа ПЛК: Описание программы: Ранг 0000: Пуск/Стоп PB фиксируется с помощью памяти B3:0/0. Ранг 0001: B3:0/0 включен для включения B3:0/1, который включает ВКЛЮЧЕНИЕ НАСОСА P1 (O:0/0), когда датчик низкого уровня (I:0/3) включается, а датчик высокого уровня (I: 0/2) находится в выключенном состоянии. B3:0/1 фиксируется датчиком низкого уровня, поскольку насос p1 не должен выключаться, как только вода начала подниматься. Ранг 0002: Контакты памяти используются для включения PUMP P1 (O:0/0) со счетчиком (C5:0). Поскольку мы собираемся переключить работу насоса с P1 на P2, для переключения между Pl и P2 используются два счетчика. Счетчик C5:1 используется для включения НАСОСА P2(O:0/2). Ранг 0003 и 0004: B3:0/0 включен для включения B3:0/2, который включает НАСОС P3(O:0/1), когда датчик высокого уровня (I:0/2) включается, а датчик низкого уровня (I: 0/3) находится в выключенном состоянии. B3:0/2 фиксируется датчиком высокого уровня, поскольку насос p3 не должен выключаться, как только вода начала уменьшаться. Ранг 0005: Когда насос 3 (O: 0/1) работает, включается датчик низкого уровня, который выключает насос p3 и включает насос P1 (O:0/0). Ранг 0006: Сброс обоих счетчиков выполняется после включения бита завершения второго счетчика (C5:1). Заключение: Мы можем использовать этот пример, чтобы понять логику программирования в ПЛК AB. -
Формула преобразования аналогового входа ПЛК
leigehong posted A plc and hmi russian article in PLC programming learning
Для любого преобразования единиц измерения в любом ПЛК вы можете использовать четыре математические функции со следующей формулой преобразования аналогового входа ПЛК, которая предполагает целочисленные математические операции: Формула преобразования ПЛК Формулы: EU = ((EUSpan x (DATA – DataOffset))/DataSpan) + EUOffset ProcessValue = ЕС/ФАКТОР DataOffset = данные во входном регистре при токе 4 мА (или нулевой аналоговый сигнал любого диапазона – например, 0 В постоянного тока на передатчике 0–10 В постоянного тока) DataSPan = Данные при 20 мА – Данные при 4 мА ФАКТОР = произвольный коэффициент (кратный 10), необходимый для получения надлежащего разрешения и точности. ЕС = Инженерные единицы x ФАКТОР EUOffset = Технические единицы @ 4 мА x ФАКТОР EUSpan = (Инженерные единицы при 20 мА – Технические единицы при 4 мА) x ФАКТОР ДАННЫЕ = фактическое чтение данных во входном регистре. Например, Датчик давления с диапазоном от 0 до 60 фунтов на квадратный дюйм, ман., подключен к плате аналогового входа ПЛК. Необработанный счетчик карты аналогового входа ПЛК начинается с 6240 для 4 мА и 31 208 для 20 мА. ПЛК считывает 18975 необработанных данных и рассчитывает эквивалентные показания датчика давления. Примечание. Необработанные значения ПЛК могут различаться в зависимости от системы. 0–60 фунтов на квадратный дюйм в диапазоне 4–20 мА с разрешением 0,1 фунтов на квадратный дюйм: ман. ФАКТОР = 10 Данные при 4 мА = 6240 Данные при 20 мА = 31208 Смещение Данных = 6240 DataSpan = 31208 – 6240 = 24968 EUOffset = 0 x 10 = 0 EUSpan = (60 – 0) x 10 = 600 ДАННЫЕ = 18975 EU = ((EUSpan x (DATA – DataOffset))/DataSpan) + EUOffset ЕС = ((600 х (18975 – 6240)) / 24968) + 0 = 306 ProcessValue = ЕС/ФАКТОР Значение процесса = 306/10 = 30,6 фунтов на квадратный дюйм, ман. -
Методы подключения аналоговых сигналов ПЛК
leigehong posted A plc and hmi russian article in PLC programming learning
В отличие от дискретно-цифровой схемы (вкл./выкл.), аналоговые сигналы изменяются в диапазоне напряжения или тока. Если взять тот же сосуд, описанный ранее в примере с цифровой проводкой, как изменится проводка, если мы заменим переключатель датчиком уровня? Методы подключения аналоговых сигналов ПЛК На рисунке ниже показана та же панель автоматического выключателя, но теперь она питается от источника постоянного тока. Источник питания может находиться в отдельном шкафу или в распределительной панели. В любом случае мощность постоянного тока распределяется на распределительном щите. Один предохранитель может питать несколько цепей, или каждая цепь может быть защищена предохранителями. На положительную клемму передатчика подается +24 В постоянного тока. Токовый сигнал 4–20 мА поступает с клеммы (-) передатчика на ПЛК. Кабель представляет собой витую пару и экранирован. Сигнальный кабель пронумерован по номеру передатчика, а провода внутри пронумерованы для предоставления информации об источнике питания. Экран подключается к распределительной панели, где все экраны собираются и подключаются к заземляющему наконечнику, изолированному от шкафа. Примечание. Необходимо следить за тем, чтобы экран был заземлен только в одной точке. Экраны, заземленные более чем в одной точке, могут создавать в сигнале большие шумовые всплески. Это состояние называется контуром заземления, и его может быть очень сложно изолировать, поскольку проблема носит периодический характер. «Тихое» заземление следует использовать для заземления всех экранов в одной точке. «Тихое» заземление — это заземление, которое либо подключено к специальной триаде заземления, либо подключено к центральному отводу изолирующего трансформатора. Шумным заземлением будет то, которое физически расположено далеко от трансформатора, а также то, которое обслуживает двигатели, фонари или другие шумные объекты. Это базовая двухпроводная схема аналогового входа. Ниже приводится некоторая конкретная информация о различных аналоговых возможностях: а. Защита цепи (предохранители) Аналоговые цепи всегда имеют низкое напряжение, обычно 24 В постоянного тока. В результате для безопасности персонала не требуется соединение отдельных аналоговых цепей. Кроме того, большинство аналоговых модулей ввода-вывода имеют встроенные схемы ограничения тока. Таким образом, для защиты модулей обычно не требуется плавкий предохранитель. Если эти два условия верны (и разработчик должен подтвердить это у производителя), то при желании можно избежать поточечного плавления. Если проектировщик желает сэкономить деньги, не объединяя каждую точку, следует рассмотреть возможность группировки цепей в зоны контроля повреждений. Например, если есть пара насосов, основной и резервный, приборы для них должны быть в отдельных группах предохранителей, чтобы один перегоревший предохранитель не вывел их обоих из строя. Дополнительные сведения см. в разделе Разделение ввода-вывода в указателе. б. Шумоустойчивость Аналоговые схемы чувствительны к электронному шуму. Если, например, аналоговый кабель пролегает рядом с высоковольтным кабелем двигателя, то кабель аналогового сигнала будет действовать как антенна, улавливая магнитно-связанный шум, создаваемый двигателем. Существуют и другие источники шума, такие как радиочастотное (РЧ) излучение рации. Шум в кабеле аналогового сигнала может вызвать ошибки в считывании значения сигнала, что, в свою очередь, может вызвать множество проблем в системе управления. Некоторые способы снижения шума включают в себя: • Кабели «витая пара»: Электронный шум можно значительно снизить за счет использования кабеля витой пары. Большинство приборов используют два провода для передачи сигналов. Ток течет к устройству по одному проводу и обратно от устройства по другому. Если эти провода скручены, то наведенный шум будет почти одинаковым в каждом проводе. Величина индуцированного тока одинакова в каждом проводнике, но он течет в противоположных направлениях, тем самым подавляя большую часть шума. • Экранирование: Еще одним усовершенствованием подавления помех является экранирование, т. е. использование заземленной оплетки или экрана из фольги вокруг проводников. Как упоминалось ранее, экран никогда не следует заземлять более чем в одном месте, чтобы избежать контуров заземления. Большинство производителей приборов рекомендуют заземлять экран полевого прибора. Однако лучше всего это сделать на распределительной панели. Проще проверять и управлять основаниями, если они находятся в одном месте. Кроме того, в этот момент можно обеспечить хорошее заземление. • Кабелепровод: Последним усовершенствованием в области подавления шума является заземленный металлический кабелепровод. Это требуется редко, за исключением кабелей передачи данных и особо ответственных цепей. в. Температурный детектор сопротивления (RTD) RTD состоит из специального куска провода, электрическое сопротивление которого изменяется предсказуемым образом, когда провод подвергается воздействию различных температур. Сегодня предпочтительным материалом является платина сопротивлением 100 Ом, хотя иногда используются и другие типы, например медь сопротивлением 10 Ом. Для платинового термометра сопротивления номинал составляет 100 Ом при 0°C. Изменения сопротивления в зависимости от температуры очень малы, вызывая изменения напряжения в диапазоне милливольт. ТПС подключаются к мостовой схеме Уитстона, которая настроена на РДТ. Но эта настройка происходит на стенде. А как насчет полевой среды? Мы уже обсуждали трудности с затуханием линии, присущие милливольтовым сигналам (глава 4). Эта проблема решается в схеме RTD за счет использования одного или двух сенсорных входов. Эти входы помогают свести на нет влияние потерь в меди из-за длинных линий и изменений температуры вдоль них и представляют собой дополнительные провода, которые должны быть включены в кабель RTD, отсюда и термины «трехпроводные» и «четырехпроводные RTD». д. Термопара Как мы уже говорили, термопара использует электродвижущую силу (ЭДС), возникающую в результате изменений температуры, воздействующих на два разнородных металла, ламинированных вместе. Эта ЭДС проявляется как сигнал милливольт (постоянный ток). Когда соединяются определенные комбинации этих разнородных металлов, получается предсказуемая кривая зависимости температуры от напряжения при изменении температуры на соединении. Сигнал измеряется на открытом конце двух проводов, а для преобразования напряжения в инженерные единицы используется шкала милливольт на градус. Таким образом, термопара представляет собой двухпроводное устройство. Он чувствителен к излучаемому и наведенному шуму, поэтому его обычно размещают в экранированном кабеле, если его протянуть на очень большое расстояние. Сигнал термопары также подвержен ухудшению из-за потерь в линии, поэтому желательно минимизировать длину кабеля. Кроме того, важно использовать правильный удлинитель. Термопара обычно поставляется с коротким кабелем, к которому необходимо подсоединить удлинительный провод. Если для передачи сигнала на ПЛК используется провод из другого материала, например медь, создается ложный «холодный спай», вызывающий обратную ЭДС, которая частично нейтрализует сигнал. Поэтому следует использовать соответствующий удлинительный провод или установить между медной проводкой и проводкой термопары устройство, называемое компенсатором холодного спая или эталоном точки замерзания. Модули ввода/вывода термопар уже имеют встроенную компенсацию холодного спая, поэтому необходимо использовать соответствующий удлинительный провод для термопары. Конкретные типы термопар имеют разные температурные характеристики. Термопара типа J образуется путем соединения железной проволоки с константановой проволокой. Эта конфигурация обеспечивает относительно линейную кривую в диапазоне от 0 до 750°C.8 Термопара типа K имеет никель-хромовую проволоку, соединенную с никель-алюминиевой проволокой, иногда называемой хромель/алюмель. Термопара типа K охватывает полезный диапазон температур от -200 до 1250°C. Другие комбинации дают разные кривые отклика. е. 0–10 милливольт (мВ) аналоговый Аналоговые сигналы сначала генерировались путем модуляции напряжения. Раньше передатчик генерировал слабый сигнал, который нужно было уловить, а затем отфильтровать и усилить, чтобы его можно было использовать для перемещения ручки на самописце или иглы на манометре. Ахиллесова пята милливольтового сигнала — его восприимчивость к электрическим шумам. Проблема соотношения сигнал/шум возрастает в зависимости от длины кабеля. Поэтому передатчик должен был находиться в непосредственной близости от индикатора или самописца. Сегодня милливольтовые сигналы, как правило, подаются на преобразователи, которые преобразуют слабый сигнал в ток или в другие среды (например, значения цифровых данных), менее чувствительные к шуму и потерям в децибелах (дБ), прежде чем покинуть пределы чувствительного элемента. Однако некоторые регистраторы и системы сбора данных по-прежнему работают на милливольтовом сигнале. ф. 4–20 миллиампер (мА) аналоговый Стремление преодолеть недостатки линейного затухания милливольтового сигнала привело к разработке токовой петли 4–20 мА. Благодаря значительному увеличению производительности этот метод передачи аналоговых сигналов быстро стал отраслевым стандартом. Большинство полевых приборов, представленных на рынке, имеют чувствительный элемент (датчик) и передающий элемент. Передатчик настроен на датчик, который может выдавать любой тип сигнала: от частотно-модулированного аналога до милливольт постоянного тока. Какой бы ни была форма сигнала, передатчик интерпретирует его и преобразует в выходной ток от 4 до 20 мА, который в этом диапазоне пропорционален по величине входному току. Процесс настройки выхода на вход называется масштабированием. Таким образом, передатчик становится так называемым источником переменного тока. Точно так же, как аккумулятор, как источник напряжения, пытается поддерживать постоянное напряжение независимо от величины приложенной к нему нагрузки, источник тока пытается поддерживать постоянный ток (для данного входного сигнала) независимо от нагрузки. Поскольку ток является общим во всех точках последовательной цепи, проблема длины кабеля, отмеченная как проблема с милливольтовым сигналом, сводится на нет. Конечно, способность устройства пропускать постоянный ток через цепь можно преодолеть, если приложить достаточную нагрузку. Поэтому проектировщик должен знать, сколько энергии способен произвести источник тока. Как правило, современные приборы способны поддерживать ток 20 мА при сопротивлении цепи 1000 Ом. Поскольку типовой прибор имеет входное сопротивление не более 250 Ом, можно питать несколько приборов от одного источника тока без необходимости использования изолятора. Например, один передатчик должен иметь возможность передавать свой сигнал на ПЛК, самописец и сумматор при стоимости 750 Ом плюс сопротивление линии. Это все равно должно находиться в зоне комфорта типичного передатчика. Примечание. На рынке все еще существуют приборы с номиналом 600 Ом, поэтому проектировщику следует всегда проверять его, когда рассматривается сложная схема. Чтобы определить энергию, доступную для схемы, разработчик должен иметь возможность идентифицировать поставщика этой энергии. Эта задача иногда не так проста, как может показаться, и ответ на вопрос сильно повлияет на схему подключения схемы. Существует два основных типа аналоговых схем, описанных с точки зрения передатчика. Двухпроводные передатчики считаются пассивными устройствами, поглощающими ток, а четырехпроводные передатчики — активными устройствами, генерирующими ток. На рисунке ниже изображены три датчика температуры, каждый из которых подключен к разным точкам ввода-вывода одного и того же модуля ПЛК. Один передатчик имеет прямое питание (т. е. четырехпроводное), а остальные - косвенное (т. е. двухпроводное). Каждый передатчик подключен к устройству управления — в данном случае к входу ПЛК. С точки зрения ПЛК, все токовые входы 4–20 мА на самом деле являются входами напряжения. Резисторы, предоставленные пользователем внешние, как показано здесь, или внутренние, используются для преобразования тока в напряжение. Сами компьютерные точки фактически представляют собой вольтметры с высоким сопротивлением, что обеспечивает им превосходную изоляцию от полевых устройств и минимизирует дополнительную нагрузку на входную цепь. Точки ввода-вывода на ПЛК показаны с внутренним питанием, доступным для каждой точки, поэтому модуль может быть источником напряжения для контура. Ниже приводится подробный комментарий к различиям между двухпроводными и четырехпроводными устройствами: 1. Четырехпроводная схема Как показано ниже, четырехпроводный передатчик — это тот, который обеспечивает энергию для питания контура и генерации модулированного по току сигнала. Например, большинство датчиков уровня являются четырехпроводными устройствами. Четырехпроводные устройства помимо сигнальных соединений всегда имеют силовые соединения. Однако не все такие передатчики с питанием являются четырехпроводными. Если выход питаемого передатчика отмечен как пассивный, то с точки зрения сигнальной цепи устройство можно рассматривать как двухпроводное устройство. Большинство записывающих устройств имеют внешнее питание, но являются пассивными в схеме. В этих случаях внешнее питание предназначено только для внутренней электроники устройства. Сигнальная цепь изолирована от этого источника питания. Обратите внимание, что рекордер, показанный на нижней схеме, представляет собой пассивное устройство с питанием. 2. Двухпроводная схема. Говорят, что двухпроводное устройство имеет питание по контуру. Это означает, что устройство функционирует, поглощая энергию, необходимую для генерации сигнала из токовой петли. Это также называется «токовым опусканием». Эта номенклатура может немного сбивать с толку, поскольку передатчик, потребляющий ток, по-прежнему остается источником сигнала для схемы. Питание для токового контура подается в другом месте. Передатчик, классифицированный как двухпроводной, обычно должен быть первым устройством в цепи по протеканию тока. Другими словами, положительная клемма передатчика должна быть напрямую подключена к положительной клемме источника напряжения. Источником напряжения обычно является источник питания 24 В постоянного тока. (а) Двухпроводные схемы с автономным источником питания На рисунке выше точка ввода-вывода ПЛК 2 изображает двухпроводную цепь с внешним источником питания постоянного тока. Обратите внимание, что провода должны быть свернуты (в соответствии с полярностью) в ПЛК, чтобы обеспечить правильную полярность в точке ввода-вывода. Это связано с тем, что поток тока теперь обратный по сравнению с предыдущим примером, поскольку передатчик должен стать первой нагрузкой в контуре, а не быть источником энергии для контура. (б) Двухпроводные схемы с внутренним источником питания ПЛК Большинство современных систем ПЛК способны сами генерировать контурный ток, просто подключив положительный вывод передатчика к другому выводу ПЛК. Отрицательный вывод передатчика затем подсоединяется к положительному выводу точки ввода-вывода, а отрицательный вывод точки ввода-вывода подключается к общему проводу постоянного тока системы ПЛК. Это показано на примере точки ввода-вывода 3. В этом примере в цикл добавлен рекордер. -
Методы подключения цифровых сигналов ПЛК
leigehong posted A plc and hmi russian article in PLC programming learning
На технологическом предприятии управление включением/выключением осуществляется через ПЛК или РСУ. На рисунке ниже представлен обзор одной дискретной/цифровой (вкл./выкл.) схемы, показывающий весь процесс от источника питания через датчик до ПЛК. Методы подключения цифровых сигналов ПЛК На рисунке выше реле уровня установлено на резервуаре. Переключатель контролируется модулем цифрового ввода ПЛК. Питание цепи осуществляется через автоматический выключатель (CB2) на панели питания прибора. Основное питание подается на распределительную панель, где питание разделяется на несколько цепей с предохранителями. Предохранитель 03FU является главным размыкающим предохранителем, а остальные предохранители являются распределительными. Предохранитель 06FU питает нашу цепь. Горячий (электрически находящийся) провод 06A подается в распределительную коробку (FJB) как один провод в многожильном кабеле. Этот кабель, иногда называемый хоумраном или основным кабелем, разводится в полевой распределительной коробке (FJB), где, в этом примере, два неэкранированных кабеля витой пары подводятся к конечному устройству LSH-47. В результате остается один запасной проводник. Горячий провод 06A попадает на клемму + контакта формы A и перемыкается на клемму H для подачи питания на электронику реле уровня. Номер провода на контакте реле изменится на 06B. Этот провод передает сигнал обратно на FJB, откуда сигнал передается обратно в оконечный шкаф через многожильный кабель. Там сигнал и нейтраль соединяются и передаются в модуль ПЛК. Обратите внимание, что обратный нейтральный провод, обозначенный 02N (поскольку это обратный провод для CB2), подведен к ПЛК и реле уровня. ПРИМЕЧАНИЕ. При подключении к системе ПЛК всегда рекомендуется использовать витую пару. Кабели витой пары обладают превосходной помехозащищенностью, что особенно полезно при подключении к нагрузкам с высоким импедансом, например, в модулях ввода-вывода ПЛК/РСУ. Нагрузка с высоким импедансом может быть особенно чувствительна к шуму, поскольку сопутствующий ток очень мал, а объем фактической работы минимален. Вот и все, в двух словах. Ниже приводится комментарий по вопросам подключения, связанным с проводкой сигналов ПЛК/РСУ. а. Поглощение и поиск Термины сток и источник используются для описания того, как конкретный компонент схемы связан с потоком мощности. Эти термины на самом деле пришли из времен транзисторной логики. В этом обсуждении транзистор можно рассматривать как простой переключатель (рисунок ниже). DC (+) — положительная клемма постоянного тока, DCC — общая клемма постоянного тока. Транзистору этого типа требуется небольшое сопротивление на коллекторе (верхняя сторона) для ограничения тока. В примере случая 1: резистор на месте, нагрузка включена последовательно с эмиттером транзистора. Когда транзистор проводит ток, ток течет через резистор, транзистор, а затем через нагрузку. Эта схема не использовалась очень часто, поскольку ток распределяется по внутренней схеме, в результате чего остается меньше мощности для управления нагрузкой и повышения температуры в модуле ввода-вывода. Случай 2 Это обеспечивает более типичную схему источника, в которой выход ПЛК при отключении переключает ток полной нагрузки для управления нагрузкой. Когда выход включается, транзистор проводит ток, вызывая шунтирование большей части тока через него, вызывая голодание нагрузки и тем самым обесточивая ее. Недостатком этой конфигурации является то, что небольшой ток утечки будет продолжать присутствовать в нагрузке, поскольку определенная величина тока будет продолжать направляться через нагрузку, хотя обычно этого недостаточно, чтобы заставить нагрузку оставаться под напряжением. Однако при поиске неисправностей на обесточенной нагрузке будет обнаружено небольшое напряжение. В примере случая 3: Нагрузка — коллекторный резистор. Когда транзистор проводит ток, на нагрузку подается напряжение. С точки зрения электроники платы это лучшая конфигурация, поскольку большая часть тепла рассеивается нагрузкой. Недостатком этой конфигурации является то, что «переключение нейтрали» противоречит здравому смыслу и может быть небезопасным, поскольку полное напряжение присутствует как на положительной, так и на отрицательной клемме нагрузки, когда она обесточена. По этим причинам вариант 2 превратился в наиболее распространенную конфигурацию вывода. Эту концепцию стока/источника можно распространить на любую схему. б. Защита цепи (предохранители) Большинство модулей ввода/вывода имеют внутренние предохранители. Однако для пользователя это не так уж много значит. Хотя внутренний предохранитель ограничивает повреждение самого модуля, в большинстве случаев модуль все равно необходимо отправить на завод для ремонта. Таким образом, конечный результат для пользователя один и тот же — сломанный модуль. В результате рекомендуется добавлять к каждой точке ввода-вывода внешние предохранители с номиналом чуть ниже номинала предохранителя на печатной плате модуля. Хотя это ограничивает размер нагрузки, которая может управляться непосредственно модулем, внутренний предохранитель и модуль защищены. Внимание: Если дискретные выходы с внутренними предохранителями встроены в цепи блокировки или если они находятся в цепях, которые зависят от нормально замкнутых контактов для инициирования мер безопасности, то следует использовать другой тип модуля без предохранителей. Или можно использовать промежуточные реле. Точка ввода-вывода может работать нормально (например, замыкать ее контакты и сообщать программе, что она их закрыла), но при этом не передавать питание из-за перегоревшего внутреннего предохранителя. в. Цепи цифрового входа (DI) Модули цифрового ввода (DI) постоянно сканируют свои входные точки на наличие или отсутствие напряжения. Если напряжение присутствует, в ячейку памяти записывается 1. Если напряжение отсутствует, там пишется 0. Требуемый тип и величина напряжения — два фактора, которые отличают один модуль DI от другого. Большинство точек цифрового входа имеют высокий импеданс, что сводит к минимуму величину потребляемого тока и поэтому оказывает относительно незначительное влияние на систему распределения электроэнергии. Каждую точку цифрового входа можно рассматривать как лампочку, которая либо включена, либо выключена. Модули DI могут быть электрически изолированы между точками или сгруппированы посредством внутренней шины ввода-вывода. Большинство модулей сегодня сгруппированы, поскольку группировка обеспечивает более высокую плотность. Как мы видели, плотность точек до 32 точек на модуль является обычным явлением в сгруппированной конфигурации. На рисунке ниже показаны два разных модуля DI. Первый модуль обеспечивает внутреннюю шину цепи постоянного тока (+). Затем точка ввода-вывода передает питание на полевое устройство. Этот тип модуля называется модулем поиска. Эта конфигурация необычна. Переключение общей стороны в поле обычно не производится. Если модуль подключает внутреннюю шину к общей стороне цепи постоянного тока, то модуль считается принимающим модулем. Точка ввода-вывода завершает путь к общему разъему постоянного тока. Эта конфигурация используется в подавляющем большинстве случаев, поскольку она позволяет индивидуально защитить каждую точку ввода-вывода рядом с источником питания перед подачей питания на полевое устройство. В любом случае ток течет в одном и том же направлении через переключатель, монтируемый на месте эксплуатации. д. Цепи цифрового выхода (DO) Контакты реле считаются устройствами вывода, поскольку они заставляют другие устройства реагировать при изменении своего состояния. Цифровые выходы ПЛК можно рассматривать как контакты реле. Во многих случаях это именно то, что они есть. В других случаях переключающий элемент может быть каким-либо полупроводниковым устройством. Даже в этом случае аналогия с реле работает до тех пор, пока проектировщик не забывает учитывать ток утечки. Модули DO включают и выключают напряжение, чтобы заставить внешнее устройство изменить состояние. Эти модули бывают «изолированными» или «неизолированными». Если модуль неизолирован, то он либо потребляет, либо потребляет. 1. Изолированные цепи дискретного выхода. Изолированная схема DO — это схема, в которой источник питания может быть изолирован между точками ввода-вывода. Источник не подключен к внутренней шине. Стоимость — два терминала на точку, поэтому это дорого. Существует три источника влажной энергии: точки 1, 2, 4, 5 и 6 изолированы от точки 3 и точек 7 и 8. В этом примере переменный ток подается в точку 3, а сигналы постоянного тока подаются в остальные точки. Это демонстрирует возможности. На практике рекомендуется разделять сигналы переменного и постоянного тока, если это вообще возможно. 2. Неизолированные цифровые цепи. Как и в случае с модулем DI PLC, плотность точек является важной особенностью модулей DO. Как видно из изолированного модуля на рисунке, за изоляцию приходится платить. Модуль с 16 клеммами имеет плотность точек всего восемь, поскольку на каждую точку требуется две клеммы. За счет внутренней шины можно значительно улучшить плотность точек. Однако в результате получается неизолированный модуль, налагающий ограничения на разработчика. Источниками питания необходимо управлять. В большинстве случаев это не является проблемой, поскольку возможно расширение мощности ввода-вывода ПЛК на полевое устройство. Однако если полевое устройство должно подавать собственный сигнал, то в цепь необходимо добавить промежуточное реле для обеспечения изоляции. На рисунке выше показаны два разных модуля цифрового вывода. Первый обеспечивает внутреннюю шину стороны постоянного тока (+) схемы. Затем точка ввода-вывода обеспечивает путь к питанию, превращая ее в модуль источника. Если модуль подключается к общей стороне цепи постоянного тока, как показано на рисунке выше, пример 1, то модуль считается принимающим модулем. Точка ввода-вывода завершает путь к общему. Этот тип модуля сегодня используется редко из-за переключения на общей стороне. Пример 2 гораздо более распространен, поскольку в нем коммутационное действие опережает нагрузку с точки зрения протекания тока. -
Отображение памяти ПЛК и адресация ввода-вывода
leigehong posted A plc and hmi russian article in PLC programming learning
Один мудрый программист ПЛК однажды сказал мне, что первое, что любой начинающий программист должен узнать о ПЛК, который он собирается запрограммировать, — это то, как организована цифровая память этого ПЛК. Это мудрый совет для любого программиста, особенно в системах, где память ограничена и/или где ввод-вывод имеет фиксированную связь с определенными местами в памяти системы. Практически каждая система управления на базе микропроцессора поставляется с опубликованной картой памяти, показывающей организацию ее ограниченной памяти: сколько доступно для определенных функций, какие адреса связаны с какими точками ввода-вывода, на какие разные места в памяти должны ссылаться программист. Каналы дискретного ввода и вывода ПЛК соответствуют отдельным битам в массиве памяти ПЛК. Аналогично, каналы аналогового ввода и вывода в ПЛК соответствуют многобитовым словам (непрерывным блокам битов) в памяти ПЛК. Связь между точками ввода-вывода и ячейками памяти ни в коем случае не стандартизирована между разными производителями ПЛК или даже между разными моделями ПЛК, разработанными одним и тем же производителем. Это затрудняет написание общего руководства по адресации ПЛК, поэтому мой главный совет — обратиться к инженерным справочникам по системе ПЛК, которую вы собираетесь программировать. Наиболее распространенной маркой ПЛК является Allen-Bradley (Rockwell), в которой используется уникальная форма адресации ввода-вывода (примечание 1), что обычно сбивает студентов с толку. По этим двум причинам (популярность и путаница) большую часть этого раздела я сосредоточусь на правилах обращения Аллена-Брэдли. Примечание 1. В большинстве современных ПЛК Allen-Bradley практически отказались от адресации ввода-вывода с фиксированным местоположением, вместо этого выбрав адресацию ввода-вывода на основе имени тега. Однако в промышленности все еще существует достаточно устаревших систем ПЛК Allen-Bradley, чтобы гарантировать соблюдение этих соглашений об адресации. Карта памяти ПЛК В следующей таблице показана частичная карта памяти для ПЛК Allen-Bradley SLC 500. Карта памяти также называется таблицей данных. Эта карта показывает адресацию областей памяти, зарезервированных для программ, введенных пользователем. В процессоре SLC 500 существуют и другие области памяти, но эти области недоступны техническим специалистам, пишущим программы ПЛК. Обратите внимание, что использование Алленом-Брэдли слова «файл» отличается от языка персональных компьютеров. В контроллере SLC 500 «файл» — это блок оперативной памяти, используемый для хранения данных определенного типа. Напротив, «файл» на персональном компьютере представляет собой непрерывный набор битов данных, имеющих коллективное значение (например, файл текстового редактора или файл электронной таблицы), обычно хранящийся на жестком диске компьютера. В каждом из «файлов» ПЛК Allen-Bradley имеется несколько «элементов», каждый элемент состоит из набора битов (8, 16, 24 или 32), представляющих данные. Элементы адресуются по номеру, следующему через двоеточие после обозначения файла, а отдельные биты внутри каждого элемента адресуются по номеру, следующему за косой чертой. Например, первый бит (бит 0) второго элемента в файле 3 (двоичный) будет адресоваться как B3:2/0. В ПЛК Allen-Bradley, таких как модели SLC 500 и PLC-5, файлы 0, 1 и 2 зарезервированы исключительно для дискретных выходов, дискретных входов и битов состояния соответственно. Таким образом, буквенные обозначения O, I и S (типы файлов) избыточны по сравнению с числами 0, 1 и 2 (номера файлов). Другие типы файлов, такие как B (двоичные), T (таймеры), C (счетчики) и другие, имеют свои собственные номера файлов по умолчанию (3, 4 и 5 соответственно), но также могут использоваться в некоторых пользовательских файлах. определенные номера файлов (10 и выше). Например, файл 7 в контроллере Allen-Bradley зарезервирован для данных «целочисленного» типа (N), но целочисленные данные также могут храниться в любом файле с номером 10 или выше по усмотрению пользователя. Таким образом, номера файлов и буквы типов файлов для типов данных, отличных от выходного (O), входного (I) и статуса (S), всегда отображаются вместе. Обычно вы не увидите целочисленное слово, адресованное, например, как N:30 (целочисленное слово 30 в памяти ПЛК), а скорее как N7:30 (целочисленное слово 30 в файле 7 памяти ПЛК), чтобы отличить его от другого целочисленного слова. 30, которые могут существовать в других файлах памяти ПЛК. Эта файловая нотация адресации требует дальнейшего пояснения. Когда адрес появляется в программе ПЛК, для отделения (или «ограничения») различных полей друг от друга используются специальные символы. Общая схема ПЛК Allen-Bradley SLC 500 показана здесь: Не для всех типов файлов требуется различать отдельные слова и биты. Например, целочисленные файлы (N) состоят из одного 16-битного слова для каждого элемента. Например, N7:5 будет 16-битным целым словом номер пять, хранящимся в седьмом файле. Однако тип дискретного входного файла (I) должен рассматриваться как отдельные биты, поскольку каждая отдельная точка ввода-вывода относится к одному биту. Таким образом, I:3/7 будет битом номер семь, находящимся во входном элементе три. Символ косой черты необходим при адресации дискретных битов ввода-вывода, поскольку мы не хотим ссылаться на все шестнадцать битов в слове, когда имеем в виду только одну точку входа или выхода ПЛК. Целые числа, напротив, представляют собой наборы по 16 бит каждый в карте памяти SLC 500, поэтому обычно к ним обращаются как к целым словам, а не побитно. Некоторые типы файлов, такие как таймеры, более сложны. Каждый «элемент» таймера состоит из двух разных 16-битных слов (одно для накопленного значения таймера, другое для целевого значения таймера) в дополнение не менее чем к трем битам, объявляющим состояние таймера (бит «Включен», бит «Время» и бит «Готово»). Таким образом, мы должны использовать как десятичную точку, так и косую черту при обращении к данным внутри таймера. Предположим, мы объявили в нашей программе ПЛК таймер с адресом T4:2, который будет таймером номер два, содержащимся в четвертом файле таймеров. Если бы мы хотели обратиться к текущему значению этого таймера, мы бы сделали это как T4:2.ACC (слово «Аккумулятор» таймера номер два в четвертом файле). Бит «Готово» того же таймера будет иметь адрес T4:2/DN (бит «Готово» второго таймера в четвертом файле). Отличительной чертой схемы адресации SLC 500, общей для многих устаревших систем ПЛК, является то, что метки адреса для входных и выходных битов явно ссылаются на физическое расположение каналов ввода-вывода. Например, если 8-канальная плата дискретного ввода вставлена в слот 4 ПЛК Allen Bradley SLC 500, и вы хотите указать второй бит (бит 1 из диапазона от 0 до 7), вы должны адресовать его с помощью следующая этикетка: I:4/1. Для обращения к седьмому биту (бит номер 6) на карте дискретного вывода, подключенной к слоту 3, потребуется метка O:3/6. В любом случае числовая структура этой метки точно указывает, где реальный входной сигнал подключается к ПЛК. Пример отображения памяти ПЛК Чтобы проиллюстрировать взаимосвязь между физическим вводом-выводом и битами в памяти ПЛК, рассмотрим этот пример ПЛК Allen-Bradley SLC 500, показывающий, что один из его дискретных входных каналов находится под напряжением (переключатель используется в качестве «пускового» переключателя для электрического мотор): Если карта ввода или вывода имеет более 16 бит – как в случае с 32-битной платой дискретного вывода, показанной в слоте 3 примера стойки SLC 500 – схема адресации далее подразделяет каждый элемент на слова и биты (каждое «слово» »имеет длину 16 бит). Таким образом, адрес бита номер 27 32-битного модуля ввода, подключенного к слоту 3, будет I:3.1/11 (поскольку бит 27 эквивалентен биту 11 слова 1 – слово 0 адресует биты с 0 по 15 и слово 1 адресует биты с 16 по 31): На фотографии крупным планом 32-битной платы ввода постоянного тока для системы ПЛК Allen-Bradley SLC 500 показана такая многословная адресация: Первые шестнадцать входных точек на этой плате (левая группа светодиодов с номерами от 0 до 15) имеют адреса от I:X.0/0 до I:X.0/15, где «X» относится к номеру слота, в котором находится карта. подключен в. Следующие шестнадцать входных точек (правая группа светодиодов с номерами от 16 до 31) имеют адреса от I:X.1/0 до I:X.1/15. Устаревшие системы ПЛК обычно обозначают каждый из каналов ввода-вывода такими метками, как «I:1/3» (или эквивалентными), указывающими фактическое расположение клеммы входного канала на блоке ПЛК. Стандарт программирования IEC 61131-3 называет эту канальную адресацию точек данных ввода-вывода прямой адресацией. Синонимом прямой адресации является абсолютная адресация. Адресация битов ввода-вывода непосредственно по меткам их карт, слотов и/или клемм может показаться простой и элегантной, но становится очень обременительной для больших систем ПЛК и сложных программ. Каждый раз, когда техник или программист просматривает программу, он должен «перевести» каждую из этих меток ввода-вывода на какое-либо реальное устройство (например, «Вход I:1/3 на самом деле является кнопкой запуска двигателя смесителя средней емкости). »), чтобы понять функцию этого бита. Более поздней попыткой повысить ясность программирования ПЛК стала концепция адресации переменных в памяти ПЛК с помощью произвольных имен, а не фиксированных кодов. Стандарт программирования IEC 61131-3 называет это символической адресацией в отличие от «прямой» (на основе канала) адресации, что позволяет программистам произвольно называть каналы ввода-вывода способами, которые имеют смысл для системы в целом. Если использовать наш простой пример переключателя «Пуск» двигателя, то теперь программист может назначить вход I:1/3 (пример прямого адреса) как «Выключатель запуска двигателя» (пример символического адреса) внутри программы, что значительно повышает читаемость программы ПЛК. Первоначальные реализации этой концепции поддерживали прямые адреса для точек ввода-вывода, при этом символические имена появлялись как дополнения к абсолютным адресам. Современная тенденция в адресации ПЛК заключается в том, чтобы вообще избегать использования прямых адресов, таких как I:1/3, чтобы они не появлялись нигде в программном коде. Серия программируемых логических контроллеров Allen-Bradley «Logix» является наиболее ярким примером этой новой конвенции на момент написания этой статьи. Каждой точке ввода-вывода, независимо от типа или физического местоположения, присваивается имя тега, имеющее смысл в реальном мире, и эти имена тегов (или символы, как их альтернативно называют) привязаны к абсолютным местоположениям каналов ввода-вывода. по файлу базы данных. Важным требованием к именам тегов является отсутствие пробелов между словами (например, вместо «Выключатель запуска двигателя» в имени тега должны использоваться дефисы или знаки подчеркивания в качестве пробелов: «Выключатель запуска двигателя»), поскольку обычно предполагаются пробелы. языками программирования в качестве разделителей (разделителей между разными переменными). Введя нотацию адресации Аллена-Брэдли для ПЛК модели SLC 500, я теперь откажусь от нее в пользу современного соглашения о символической адресации в остальных статьях, чтобы избежать привязки примеров программирования к конкретной марке или модели. Каждая точка данных в моих программах ПЛК будет иметь собственное имя тега, а не метку прямого (на основе канала) адреса. -
Соглашения об именах тегов ПЛК
leigehong posted A plc and hmi russian article in PLC programming learning
При разработке логики ПЛК вам необходимо позаботиться об именах, которые вы присваиваете тегам. Он должен быть легко понятен и интерпретирован любым программистом. Оно не должно быть ни слишком длинным, ни слишком коротким. Соглашение об именах важно, поскольку неправильное присвоение тегов может вызвать у программистов проблемы при устранении неполадок. Кроме того, присвоение длинных имен приведет к использованию памяти ПЛК. Таким образом, каждый программист должен следовать правилам именования перед написанием программы ПЛК. В этом посте мы рассмотрим концепцию соглашений об именах тегов ПЛК. Соглашения об именах тегов ПЛК Прежде всего, давайте поймем, какую важную роль в программировании ПЛК играет соглашение об именовании тегов. У вас есть двигатель с командой запуска и обратной связью по запуску в качестве ввода-вывода ПЛК. Двигатель расположен в воздуходувной камере и используется в качестве воздушного компрессора. Имя тега двигателя в P&ID — M-101. Теперь для программиста ПЛК важно определить местоположение тега. Итак, существует два типа мышления, которые обычно определяют программиста ПЛК. Первый попытается дать как можно больше информации в имени тега; поэтому он может назвать команду запуска двигателя M101_Compressor_Run_Command. Второй попытается дать имя Q_M101_Comp. Второй вариант мышления выглядит очень ясным, поскольку он дает короткие имена и сохраняет их длину как можно меньше. Именно по этой причине присвоение имени тегу ПЛК важно, поскольку оно освобождает программиста от чтения таких длинных тегов в ситуациях, когда требуется срочное устранение неполадок. (Следует отметить, что в именах тегов ПЛК не допускается никаких специальных символов, кроме подчеркивания (_)). Имя тега ПЛК должно содержать информацию, которая может помочь программисту понять его значение. Обычно это подразумевает следующую информацию: тип данных (например, логический, целочисленный), поток данных (например, ввод, вывод), область действия (например, локальная, глобальная), тип прибора или устройства (например, двигатель, клапан, датчик), параметр процесса (например, давление, расход, температура) и расположение устройства. Стили имен тегов В соответствии со стандартами IEC существуют различные стили, которым необходимо следовать для правильного наименования. Давайте посмотрим на некоторые из наиболее часто используемых: Верблюжий стиль, Паскаль Стиль, Змеиный стиль, Префикс со стилем типа данных Верблюжий стиль В этом стиле между ними нет подчеркивания. Полное имя дается всему слову, но каждое слово в нем начинается с заглавной буквы. Например, возьмем рассмотренный выше пример. M101_Compressor_Run_Command будет записан как m101CompressorRunCommand. Каждое слово можно определить по заглавной букве. Первая буква будет обязательной строчной. Этот стиль хорошо смотрится, если слово маленькое. Это предотвращает использование подчеркивания и снижает потребление памяти. Паскаль Стиль Это похоже на верблюжий стиль; с той лишь разницей, что первая буква будет обязательно заглавной. Например, наш тег будет записан как M101CompressorRunCommand. Змеиный стиль Пример, который мы обсуждали ранее, — это стиль змеи. Здесь каждое слово будет отделено подчеркиванием. Префикс со стилем типа данных Здесь тег будет иметь префикс типа данных имени тега. В нашем случае тип тега был логическим. Согласно стандартам IEC, логическому тегу обычно присваивается префикс «x». Итак, наш стиль будет записан как xM101CompressorRunCommand. Это помогает программисту определить, какой тип данных используется для этого конкретного тега. Советы по присвоению имен тегам при программировании ПЛК Первое и главное правило: длина тега должна быть небольшой, но не настолько, чтобы ее никто не мог понять. Как обсуждалось, длина должна содержать соответствующую информацию правильной длины. Следует строго избегать длинных названий. Следуйте общим стилям именования тегов, которые обсуждались. Они соответствуют стандартам IEC и делают логику аккуратной и понятной. Чтобы уменьшить количество ошибок при создании тегов, используйте файлы Excel. Excel значительно снижает рабочую нагрузку, поскольку дублирование и копирование становится очень простым. В файлах Excel практически не возникают ошибки. Не всегда необходимо использовать для слова полное имя. Например, клапан можно записать как vlv, а температуру — как temp. Не делайте тег полностью заглавными. Это выглядит громоздко и неуместно для чтения. -
Управление светофором с использованием лестничной логики ПЛК
leigehong posted A plc and hmi russian article in PLC programming learning
Чаще всего в нашем городе мы сталкиваемся с трехсторонней пробкой. Эта программа ПЛК позволяет контролировать сильные пробки с помощью программируемого логического управления. Управление светофором с помощью ПЛК Решение проблемы Существует множество способов написать программу для управления светофором, например: метод вывода секвенсора, но при этом обычном вводе используются выходные данные и таймеры. Таймеры используются для задержки времени включения и выключения выхода. Катушка сброса используется в конце для непрерывного запуска программы. Блоки компараторов используются для уменьшения количества используемых таймеров. Программа выполнена в программном обеспечении AB RSLogix 500. Список входов и выходов для системы управления дорожным движением Программа ПЛК для системы управления трехсторонним движением В столбце ниже приведены шаги или последовательность выходов для включения. Логическое описание ПЛК для трехсторонней системы управления движением РУНГ000 : Это фиксирующая ступень для управления системой посредством главного запуска и остановки PB. RUNG001 и RUNG0002: Запускаем таймер для включения первого выхода West Green, поэтому восток и запад должны быть красными. Компараторы в параллельной цепочке используются для выключения восточного красного цвета через 15 секунд. Бит синхронизации таймера T4:2 в параллельном контакте используется для повторного включения восточного красного цвета на 5-м и 6-м шагах. (Пояснения см. в столбце таблицы выше) РУГ 0003 : Включение North Red до 3-го шага с использованием бита синхронизации таймера T4:0 и T4:1 и блоков компаратора. Ранг 0004: Включите Восток-желтый на 5 секунд, используя блоки компаратора. (Шаг 2-й) Звонок 0005-0006-0007-0008-0009-0010: Те же самые процедуры были выполнены для включения дальнейших выходов. (Последовательность операций см. в столбце таблицы) ЗУЧОК 0011: Катушка сброса включается с использованием бита готовности T4:2, чтобы перезапустить цикл с начала. Программа работает непрерывно до тех пор, пока не будет нажата кнопка STOP PB. Заключение: Вышеописанное трехстороннее управление светофором с использованием ПЛК приведено только в качестве примера. Оно может отличаться от реального времени. Мы можем использовать этот пример программы, чтобы понять работу таймеров и функции блока компаратора в ПЛК AB. -
Логика двуручного управления с использованием ПЛК
leigehong posted A plc and hmi russian article in PLC programming learning
Эта статья о программировании двуручного управления, используемого в печатной отрасли. Целью этой программы является обеспечение безопасности для предотвращения несчастных случаев со смертельным исходом. Ниже показано, как выглядит пресс-машина и почему мы заботимся о безопасности. Как видите, для управления прессом используются кнопки. Центральная пластина прижимается к поверхности заготовки, когда мы нажимаем кнопки. Для управления прессом необходимо одновременно нажать две кнопки, как показано на анимации ниже. Когда оператор одной рукой нажимает кнопку, а второй рукой прижимает пластину к поверхности, он может пораниться. Мощная сила толкания пластины может легко сжать руки, если оператор попытается маневрировать в спешке. Ниже я объяснил программу, используемую для предотвращения подобных инцидентов с помощью портала Siemens TIA. На рисунке ниже показан пресс-машина, имеющая два входа и один выход. Входы подключены к модулю цифровых входов (DI) ПЛК, а один выход подключен к модулю цифровых выходов (DO). Ниже приведен список входов и выходов, используемых для программы. Входы: Кнопка (PB_1): I0.0 Кнопка (PB_2): I0.2 Выходы: Выход пресс-машины: Q0.0 Логика двуручного управления Логическое описание Сеть 1: Здесь две кнопки PB_1 и PB_2 соединены последовательно. Когда обе кнопки нажаты одновременно, сигнал пройдет через размыкающий контакт таймера Т0 и активирует выход. Сеть 2: Теперь, если нажата любая отдельная кнопка PB_1 или PB_2, то включается таймер задержки включения таймера T0 (S_ODT), в нашем случае через 5 секунд. Здесь также используется нормально замкнутый контакт выхода пресса после нажатия кнопки, потому что, если выход включен, он не позволит таймеру включиться. Таким образом, на выходе машины будет подаваться питание только тогда, когда обе кнопки будут нажаты вместе. -
Пять типов языков программирования ПЛК
leigehong posted A plc and hmi russian article in PLC programming learning
Хотя кажется, что каждая модель ПЛК имеет свой собственный стандарт программирования, существует международный стандарт программирования контроллеров, которому большинство производителей ПЛК, по крайней мере, пытаются соответствовать. Это стандарт IEC 61131-3, который станет стандартом Следует утешаться тем, что, несмотря на различия в деталях программирования ПЛК от одного производителя к другому и от одной модели к другой, основные принципы во многом одинаковы. Между различными языками программирования общего назначения (например, C/C++, BASIC, FORTRAN, Pascal, Java, Ada и т. д.) существуют гораздо большие различия, чем между языками программирования, поддерживаемыми разными ПЛК, и этот факт не мешает программистам быть «многоязычным». Я лично написал и/или проанализировал программы для более чем полдюжины различных производителей ПЛК (Allen-Bradley, Siemens, Square D, Koyo, Fanuc, Moore Products APACS и QUADLOG и Modicon), с несколькими моделями ПЛК в большинстве этих брендов, и я могу вам сказать, что различия в соглашениях по программированию в основном незначительны. Научившись программировать одну модель ПЛК, довольно легко адаптироваться к программированию других марок и моделей ПЛК. Языки программирования ПЛК Стандарт IEC 61131-3 определяет пять различных форм языка программирования для промышленных контроллеров: Лестничная диаграмма (LD) Структурированный текст (СТ) Список инструкций (IL) Функциональная блок-схема (FBD) Последовательная функциональная схема (SFC) Не все программируемые логические контроллеры поддерживают все пять языковых типов, но почти все они поддерживают лестничные диаграммы (LD), которым и будет посвящена данная книга. Языки программирования для многих промышленных устройств ограничены дизайном. Одной из причин этого является простота: любой язык программирования, достаточно простой по структуре для понимания человеком, не имеющим формальных знаний в области компьютерного программирования, будет ограничен в своих возможностях. Другой причиной ограничений программирования является безопасность: чем более гибким и неограниченным является язык программирования, тем больше вероятность непреднамеренного создания сложных ошибок «время выполнения» при программировании. Стандарт безопасности ISA номер 84 классифицирует промышленные языки программирования как языки фиксированного программирования (FPL), языки ограниченной вариативности (LVL) или языки полной вариативности (FVL). Программирование лестничных диаграмм и функциональных блок-схем считается языками «ограниченной вариативности», тогда как список инструкций (и традиционные языки компьютерного программирования, такие как C/C++, FORTRAN, BASIC и т. д.) считаются языками «полной вариативности» со всеми сопутствующий потенциал для сложных ошибок. -
Заблуждения о лестничной логике ПЛК
leigehong posted A plc and hmi russian article in PLC programming learning
Возможно, самая важная, но неуловимая концепция, которую нужно усвоить при обучении программированию ПЛК, — это взаимосвязь между электрическим состоянием точек ввода-вывода ПЛК и состоянием переменных и других «элементов» в его программировании. Это особенно актуально для программирования лестничных диаграмм (LD), где сама программа напоминает электрическую схему. Установление мысленной связи между «реальным» миром переключателей, контакторов и других электрических устройств, подключенных к ПЛК, и «воображаемым» миром программы ПЛК, состоящей из виртуальных контактов и «обмоток» реле, является наиболее фундаментальным. Первое фундаментальное правило, которое следует иметь в виду при изучении программы ПЛК с релейной диаграммой, заключается в том, что каждый виртуальный контакт, показанный в программе, срабатывает всякий раз, когда он считывает состояние «1» в соответствующем бите, и находится в состоянии покоя всякий раз, когда он считывает «0». состояние в соответствующем бите (в памяти ПЛК). Если контакт относится к нормально открытому (НО) типу, он размыкается, когда его бит равен 0, и закрывается, когда его бит равен 1. Если контакт относится к нормально закрытому типу (НЗ), он закрывается, когда его бит равен 0. и открывается, когда его бит равен 1. Состояние 0 бит приводит к тому, что контакт находится в «нормальном» (покойном) состоянии, тогда как состояние 1 бит активирует контакт, переводя его в ненормальное (сработанное) состояние. Еще одно правило, которое следует помнить при изучении программы ПЛК с релейной диаграммой, заключается в том, что программное обеспечение для программирования предлагает цветовое выделение (Примечание 1) для отображения виртуального состояния каждого элемента программы: цветной контакт закрыт, а неокрашенный контакт открыт. Хотя наличие или отсутствие символа косой черты указывает на нормальное состояние контакта, его цветовая подсветка, отображаемая программным обеспечением ПЛК, показывает «проводящее» состояние элементов в реальном времени. Примечание 1: Следует отметить, что в некоторых ситуациях программное обеспечение для программирования не сможет правильно раскрасить контакты, особенно если их состояние меняется слишком быстро, чтобы канал связи программного обеспечения мог успевать за ним, и/или если бит(ы) меняют состояние несколько раз. раз за одно сканирование программы. Однако для простых программ и ситуаций это правило справедливо и является большим подспорьем для начинающих программистов, когда они изучают взаимосвязь между условиями реального мира и условиями в «виртуальном» мире ПЛК. Заблуждения о лестничной логике ПЛК В следующей таблице показано, как два типа контактов в программе лестничной диаграммы ПЛК реагируют на состояния битов, используя красный цвет для обозначения виртуальной проводимости каждого контакта: Точно так же, как контакты реле давления срабатывают в условиях высокого давления, контакты реле уровня срабатывают в условиях высокого уровня, а контакты температурного реле срабатывают в условиях высокой температуры, так и виртуальный контакт ПЛК срабатывает в условиях высокого давления. битовое состояние (1). В контексте любого переключателя активированное состояние является противоположностью его нормального состояния (покоя). На следующей упрощенной иллюстрации (электрическая проводка, показанная на этой схеме, неполная, для простоты «Общая» клемма показана неподключенной) показан небольшой ПЛК, два дискретных входных канала которого находятся под электрическим напряжением, в результате чего эти два бита имеют «1». » статусы. Выделенные цветом контакты на дисплее программного редактора программирования показывают набор контактов, адресованных этим входным битам в различных состояниях (цветной = замкнутый; неокрашенный = разомкнутый). Как видите, каждый контакт, адресованный «установленному» биту (1), находится в активированном состоянии, тогда как каждый контакт, адресованный «сброшенному» биту (0), находится в нормальном состоянии: Помните, что цветной контакт — это закрытый контакт. Контакты, выделенные цветом, являются либо нормально замкнутыми контактами с состоянием бита «0», либо нормально разомкнутыми контактами с состоянием бита «1». Именно комбинация состояния бита и типа контакта (НО или НЗ) определяет, будет ли виртуальный контакт разомкнутым (нецветным) или закрытым (цветным) в любой момент времени. Соответственно, это комбинация цветного выделения и типа виртуального контакта, которая указывает реальное состояние подачи питания на конкретный вход ПЛК в любой момент времени. Основная проблема студентов/инженеров при понимании программ релейных диаграмм ПЛК заключается в том, что они чрезмерно упрощают и пытаются напрямую связать реальные переключатели, подключенные к ПЛК, с соответствующими контактными инструкциями внутри программы ПЛК. Студенты/инженеры ошибочно полагают, что реальный переключатель, подключаемый к ПЛК, и соответствующий контакт виртуального переключателя внутри программы ПЛК — это одно и то же, хотя это совсем не так. Скорее, реальный переключатель подает питание на вход ПЛК, который, в свою очередь, контролирует состояние виртуальных контактов, запрограммированных в ПЛК. В частности, я вижу, что студенты/инженеры регулярно впадают в следующие заблуждения: Ошибочно полагать, что тип инструкции контакта (НО или НЗ) должен совпадать с типом связанного с ним реального переключателя. Ошибочно думать, что цветовая подсветка команды контакта эквивалентна электрическому состоянию соответствующего реального входа ПЛК. Ошибочно полагать, что замыкание реального переключателя должно приводить к команде замыкания контакта в работающей программе ПЛК. Чтобы внести ясность, вот основные правила, которые следует учитывать при интерпретации контактных инструкций в программах ПЛК релейных диаграмм: Каждый входной бит в памяти ПЛК будет равен «1», когда на его входной канал подается питание, и будет равен «0», когда его входной канал обесточен. Каждый виртуальный контакт, показанный в программе, срабатывает всякий раз, когда он считывает состояние «1» в соответствующем бите, и находится в состоянии покоя, когда он считывает состояние «0» в соответствующем бите. Цветной контакт закрыт (передает виртуальное питание в программе ПЛК), а неокрашенный контакт открыт (блокирует виртуальное питание в программе ПЛК). При попытке понять программы лестничных диаграмм ПЛК важность этих правил невозможно переоценить. На самом деле между реальным переключателем и статусом контактной инструкции существует причинно-следственная цепочка, а не прямая эквивалентность. Реальный переключатель контролирует, достигает ли электрическая мощность входного канала ПЛК, что, в свою очередь, определяет, будет ли бит входного регистра равным «1» или «0», что, в свою очередь, определяет, будет ли активирована команда контакта или нет. отдых. Таким образом, виртуальные контакты внутри программы ПЛК контролируются соответствующими реальными переключателями, а не просто идентичны своим реальным аналогам, как склонны предполагать новички. Следуя этим правилам, мы видим, что инструкции нормально разомкнутых (НО) контактов будут имитировать то, что делают их реальные переключатели, тогда как инструкции нормально замкнутых (НЗ) контактов будут действовать противоположно своим реальным аналогам. Цветовое выделение инструкций катушки в программе ПЛК лестничной схемы подчиняется аналогичным правилам. Катушка будет включена (цветная), когда все команды контактов перед ней замкнуты (цветные). Цветная катушка записывает «1» в соответствующий бит памяти, а инструкция неокрашенной катушки записывает «0» в соответствующий бит памяти. Если эти биты связаны с реальными дискретными выходными каналами ПЛК, их состояния будут управлять реальной подачей питания на устройства, электрически подключенные к этим каналам. Чтобы дополнительно прояснить эти фундаментальные концепции, мы рассмотрим работу простой системы ПЛК, предназначенной для подачи питания на сигнальную лампу в случае, если в технологическом сосуде возникает высокое давление жидкости. Задача ПЛК состоит в том, чтобы включить сигнальную лампу, если давление в технологическом резервуаре когда-либо превысит 270 фунтов на квадратный дюйм, и поддерживать эту сигнальную лампу включенной, даже если давление упадет ниже точки срабатывания 270 фунтов на квадратный дюйм. Таким образом, операторы будут получать оповещения как о прошлых, так и о текущих событиях, связанных с избыточным давлением в технологическом резервуаре. «Линейное» питание 120 В переменного тока (L1 и L2) обеспечивает электроэнергию для работы ПЛК, а также потенциал сигнала для входных переключателей и питание контрольной лампы. К входу этого ПЛК подключаются два переключателя: один нормально разомкнутый кнопочный переключатель, действующий как сброс аварийного сигнала (нажатие этого переключателя «разблокирует» сигнальную лампу), и один нормально разомкнутый переключатель давления, действующий как чувствительный элемент высокого давления в технологическом резервуаре: Кнопка сброса подключается к дискретному входу X1 ПЛК, а переключатель давления подключается к дискретному входу X4. Контрольная лампа подключается к дискретному выходу Y5. Красные светодиодные индикаторы рядом с каждой клеммой ввода-вывода визуально указывают электрическое состояние точек ввода-вывода, а выделение красным цветом показывает состояние виртуального питания (Примечание 2) «контактов» и «обмоток» в программе ПЛК. отображается на экране персонального компьютера, подключенного к ПЛК через кабель программирования. Если никто не нажимает кнопку сброса, этот переключатель будет в своем нормальном состоянии, которое для «нормально разомкнутого» переключателя разомкнуто. Аналогично с реле давления: при технологическом давлении ниже точки срабатывания 270 фунтов на квадратный дюйм реле давления также будет находиться в нормальном состоянии, которое для «нормально разомкнутого» переключателя разомкнуто. Поскольку ни один из переключателей в данный момент не проводит электричество, ни дискретный вход X1, ни X4 не будут под напряжением. Это означает, что «виртуальные» контакты внутри программы ПЛК также будут находиться в своих нормальных состояниях. Таким образом, любой виртуальный контакт, изображенный как нормально разомкнутый, будет разомкнут (не передавая виртуальную энергию), а любой виртуальный контакт, изображенный как нормально закрытый (диагональная косая черта через символ контакта), будет закрыт. Вот почему два нормально открытых виртуальных контакта X4 и Y5 не имеют подсветки, а нормально закрытый виртуальный контакт X1 имеет цветную подсветку, обозначающую способность передавать виртуальную мощность. Примечание 2. Для контакта программы ПЛК затенение представляет виртуальную «проводимость». Для программной катушки ПЛК затенение представляет собой установленный (1) бит. Если в технологическом сосуде оказывается высокое давление (> 270 фунтов на квадратный дюйм), сработает реле давления, закрывая его нормально разомкнутый контакт. Это подаст напряжение на вход X4 ПЛК, что «замкнет» виртуальный контакт X4 в лестничной программе. При этом виртуальная мощность передается на виртуальную «катушку» Y5, которая, в свою очередь, замыкается через виртуальный контакт Y5 (примечание 3), а также подает питание на реальный дискретный выход Y5 для включения контрольной лампы: Примечание 3: Стоит отметить правомерность ссылки виртуальных контактов на выходные биты (например, контакт Y5), а не только на входные биты. «Виртуальный контакт» внутри программы ПЛК — это не что иное, как команда процессору ПЛК прочитать состояние бита в памяти. Не имеет значения, связан ли этот бит с физическим входным каналом, физическим выходным каналом или каким-то абстрактным битом в памяти ПЛК. Однако было бы неправильно связывать виртуальную катушку с входным битом, поскольку инструкции катушки записывают значения битов в память, а входные биты должны управляться исключительно состояниями включения их физических входных каналов. Если теперь технологическое давление упадет ниже 270 фунтов на квадратный дюйм, реле давления вернется в свое нормальное состояние (разомкнуто), тем самым обесточивая дискретный вход X4 на ПЛК. Однако из-за фиксирующего контакта Y5 в программе ПЛК выход Y5 остается включенным, чтобы сигнальная лампа оставалась включенной: Таким образом, контакт Y5 выполняет функцию уплотнения, сохраняя бит Y5 установленным (1) даже после устранения состояния высокого давления. Это в точности та же концепция, что и «запечатываемый» вспомогательный контакт в проводной цепи пускателя двигателя, где электромеханический контактор сохраняет напряжение после отпускания кнопки «Пуск». Единственный способ для человека-оператора переустановить контрольную лампу — это нажать кнопку. Это приведет к подаче питания на вход X1 ПЛК, тем самым размыкая виртуальный контакт X1 (нормально закрытый) в программе, тем самым прерывая виртуальное питание виртуальной катушки Y5, тем самым выключая сигнальную лампу и разблокируя виртуальное питание в программа: -
Счетчик — это инструкция ПЛК, которая либо увеличивает (считает вверх), либо уменьшает (считает вниз) значение целого числа при появлении запроса на переход бита от 0 к 1 («ложь» на «истина»). Инструкции счетчика бывают трех основных типов: счетчики вверх, счетчики вниз и счетчики вверх/вниз. Команды счетчиков «вверх» и «вниз» имеют одиночные входы для запуска счетчиков, тогда как счетчики «вверх/вниз» имеют два триггерных входа: один для увеличения счетчика, а другой для уменьшения счетчика. Инструкции счетчика ПЛК Чтобы проиллюстрировать использование команды счетчика, мы проанализируем систему на базе ПЛК, предназначенную для подсчета объектов, проходящих по конвейерной ленте: В этой системе непрерывный (непрерывный) световой луч заставляет датчик освещенности замыкать выходной контакт, подавая питание на дискретный канал IN4. Когда объект на конвейерной ленте прерывает световой луч от источника к датчику, контакт датчика размыкается, прерывая подачу питания на вход IN4. Кнопочный переключатель, подключенный для активации дискретного входа IN5, при нажатии будет служить ручным «обнулением» значения счета. Индикаторная лампа, подключенная к одному из каналов дискретного вывода, будет служить индикатором превышения значения счетчика объектов некоторого заданного предела. Теперь мы проанализируем простую программу лестничной диаграммы, предназначенную для увеличения команды счетчика каждый раз, когда световой луч прерывается: Эта конкретная команда счетчика (CTU) является инкрементным счетчиком, что означает, что она ведет счет «вверх» при каждом переходе из выключенного состояния во включенное на свой вход «CU». Нормально закрытый виртуальный контакт (объект датчика IN) обычно удерживается в «разомкнутом» состоянии, когда световой луч непрерывен, поскольку датчик удерживает этот дискретный входной канал под напряжением, пока луч непрерывен. Когда луч прерывается проходящим по конвейерной ленте объектом, входной канал обесточивается, в результате чего объект датчика виртуального контакта IN «замыкается» и отправляет виртуальную мощность на вход «CU» инструкции счетчика. Это увеличивает счетчик так же, как передний край объекта разрывает луч. Второй вход блока инструкций счетчика («R») является входом сброса, на который поступает виртуальная энергия от контакта IN, переключателя сброса при каждом нажатии кнопки сброса. Если этот вход активирован, счетчик немедленно сбрасывает свое текущее значение (CV) на ноль. Индикация состояния отображается в этой программе лестничной диаграммы, при этом заданное значение счетчика (PV) 25 и текущее значение счетчика (CV) 0 показаны синим цветом. Заданное значение — это то, что запрограммировано в инструкции счетчика перед вводом системы в эксплуатацию, и оно служит порогом для активации выхода счетчика (Q), который в этом случае включает индикаторную лампу счета (катушка OUT отсчетов достигла). Согласно стандарту программирования IEC 61131-3, этот выход счетчика должен активироваться всякий раз, когда текущее значение равно или превышает заданное значение (Q активен, если CV ≥ PV). Это состояние той же программы после прохождения тридцати объектов мимо датчика на конвейере. Как видите, текущее значение счетчика увеличилось до 30, превысив заданное значение и активировав дискретный выход: В конце концов, мы не заботились о поддержании точного общего количества объектов после 25, а просто хотели, чтобы программа указывала, когда мимо прошло 25 объектов. мы также могли бы использовать команду обратного счетчика, предварительно установленную на значение 25, которая включает выходную катушку, когда счетчик достигает нуля: Здесь вход «нагрузка» приводит к тому, что текущее значение счетчика становится равным заданному значению (25) при активации. С каждым полученным импульсом датчика инструкция счетчика уменьшается. Когда он достигает нуля, активируется выход Q. Потенциальная проблема в любой версии этой системы подсчета объектов заключается в том, что ПЛК не может различать движение вперед и назад на конвейерной ленте. Если, например, конвейерная лента когда-либо поменяет направление, датчик продолжит считать объекты, которые уже прошли мимо (в прямом направлении), когда эти объекты отступят на ленту. Это будет проблемой, поскольку система будет «думать», что по ленте прошло больше объектов (что указывает на большую производительность), чем на самом деле. Одним из решений этой проблемы является использование реверсивного счетчика, способного как увеличивать (подсчитывать в сторону увеличения), так и уменьшать (отсчитывать в обратном направлении), и оснастить этот счетчик двумя датчиками светового луча, способными определять направление движения. Если два световых луча ориентированы параллельно друг другу, ближе ширины самого узкого объекта, проходящего по конвейерной ленте, у нас будет достаточно информации, чтобы определить направление движения объекта: Это называется синхронизацией квадратурного сигнала, поскольку два импульсных сигнала находятся на расстоянии примерно 90 градусов (одна четверть периода) друг от друга по фазе. Мы можем использовать эти два сдвинутых по фазе сигнала для увеличения или уменьшения команды реверсивного счетчика, в зависимости от того, какой импульс опережает, а какой отстает. Здесь показана программа ПЛК Ladder Diagram, предназначенная для интерпретации квадратурных импульсных сигналов, в которой используются контакты с отрицательным переходом, а также стандартные контакты: Счетчик будет увеличиваться (отсчитывать вверх), когда датчик B обесточивается, только если датчик A уже находится в обесточенном состоянии (т. е. световой луч A прерывается раньше B). Счетчик будет уменьшаться (обратный отсчет) при обесточивании датчика A только в том случае, если датчик B уже находится в обесточенном состоянии (т. е. световой луч B прерывается раньше A). Обратите внимание, что реверсивный счетчик имеет как вход «сброс» (R), так и вход «загрузка» («LD») для форсирования текущего значения. Активация входа сброса приводит к обнулению текущего значения счетчика (CV), как мы видели в случае с инструкцией счетчика «вверх». Затем активация входа нагрузки переводит текущее значение счетчика в заданное значение (PV), как мы видели в случае с инструкцией счетчика «вниз». В случае реверсивного счетчика имеется два выхода Q: QU (выход вверх), чтобы указать, когда текущее значение равно или больше заданного значения, и QD (выход вниз), чтобы указать, когда текущее значение значение равно или меньше нуля. Обратите внимание, как текущее значение (CV) каждого отображаемого счетчика связано с собственным именем тега, в данном случае подсчитываются части. Целое число текущего значения счетчика (CV) является переменной в памяти ПЛК, точно так же, как логические значения, такие как входной датчик A и сброс переключателя IN, и может быть точно так же связано с именем тега или символическим адресом. Это позволяет другим инструкциям в программе ПЛК считывать (а иногда и записывать!) значения из этой ячейки памяти и в нее.
-
Инструкции по сравнению данных ПЛК
leigehong posted A plc and hmi russian article in PLC programming learning
Как мы видели на примере счетчиков и таймеров, некоторые инструкции ПЛК генерируют цифровые значения, отличные от простых логических сигналов (вкл/выкл). Счетчики имеют регистры текущего значения (CV), а таймеры — регистры прошедшего времени (ET), оба из которых обычно представляют собой целочисленные значения. Многие другие инструкции ПЛК предназначены для получения и обработки небулевых значений, подобных этим, для выполнения полезных функций управления. Стандарт IEC 61131-3 определяет множество инструкций сравнения данных для сравнения двух нелогических значений и генерации логических выходных данных. Инструкции по сравнению данных ПЛК Основные операции сравнения «меньше» (<), «больше» (>), «меньше или равно» (≤), «больше или равно» (≥), «равно» (=) , а «не равно» (6=) можно найти в стандарте IEC как серию «коробочных» инструкций: Выход Q для каждого «блока» команд активируется, когда оцениваемая функция сравнения имеет значение «истина» и вход разрешения (EN) активен. Если вход разрешения остается активным, но функция сравнения ложна, выход Q деактивируется. Если вход разрешения деактивируется, выход Q сохраняет свое последнее состояние. Практическое применение функции сравнения — это так называемое попеременное управление двигателем, при котором отслеживается время работы двух резервных электродвигателей, при этом ПЛК определяет, какой двигатель включить следующим, исходя из того, какой двигатель работал меньше всего: В этой программе два сохраняемых таймера задержки включения отслеживают общее время работы каждого электродвигателя, сохраняя значения времени работы в двух регистрах в памяти ПЛК: Время работы двигателя A и время работы двигателя B. Эти два целочисленных значения вводятся в поле инструкции «больше чем» для сравнения. Если двигатель A проработал дольше, чем двигатель B, двигатель B сможет запуститься при следующем нажатии кнопки «пуск». Если двигатель A проработал меньше времени или столько же времени, что и двигатель B (сценарий, показанный индикаторами состояния, выделенными синим цветом), двигатель A сможет запуститься. Два последовательно соединенных виртуальных контакта OUT Motor A и OUT Motor B гарантируют, что сравнение времени работы двигателя не будет производиться до тех пор, пока оба двигателя не будут остановлены. Если бы сравнение производилось постоянно, могла бы возникнуть ситуация, когда оба двигателя запустятся, если кто-то случайно нажмет кнопку «Пуск», когда один из двигателей уже работает. -
Математические инструкции ПЛК
leigehong posted A plc and hmi russian article in PLC programming learning
Стандарт IEC 61131-3 определяет несколько специальных лестничных инструкций для выполнения арифметических вычислений. Некоторые из них показаны здесь: Математические инструкции ПЛК Как и в случае с инструкциями сравнения данных, каждая из этих математических инструкций должна быть активирована подачей сигнала на вход разрешения (EN). Входные и выходные значения связаны с каждой математической инструкцией по имени тега. Здесь показан пример использования таких инструкций, преобразующий измерение температуры в градусах Фаренгейта в градусы Цельсия. В этом конкретном случае программа вводит измеренное значение температуры 138 градусов по Фаренгейту и вычисляет эквивалентную температуру 58,89 градусов по Цельсию: а также специальную переменную (X), используемую для хранения промежуточных вычислений между «коробками» вычитания и деления. Хотя это не указано в стандарте IEC 61131-3, многие программируемые логические контроллеры поддерживают математические инструкции лестничных диаграмм, позволяющие прямой ввод произвольных уравнений. Например, программирование Rockwell (Allen-Bradley) Logix5000 имеет функцию «Вычисление» (CPT), которая позволяет вычислить любое типизированное выражение с помощью одной инструкции, а не использовать несколько специальных математических инструкций, таких как «Сложение», «Вычитание». ," и т. д. Математические инструкции общего назначения значительно сокращают длину лестничной программы по сравнению с использованием специальных математических инструкций для любых приложений, требующих нетривиальных вычислений. Например, та же программа преобразования температур по Фаренгейту в Цельсия, реализованная в программировании Logix5000, требует только одной математической инструкции и не требует объявления промежуточных переменных: -
Таймер — это инструкция ПЛК, измеряющая время, прошедшее после события. Инструкции таймера бывают двух основных типов: таймеры задержки включения и таймеры задержки выключения. Команды таймера «задержка включения» и «задержка выключения» имеют одиночные входы, запускающие таймерную функцию. Таймер задержки включения активирует выход только тогда, когда вход был активен в течение минимального периода времени. Инструкции таймера ПЛК Возьмем, к примеру, эту программу ПЛК, предназначенную для подачи звукового сигнала сирены перед запуском конвейерной ленты. Чтобы запустить двигатель конвейерной ленты, оператор должен нажать и удерживать кнопку «Пуск» в течение 10 секунд, в течение этого времени звучит сирена, предупреждающая людей о необходимости покинуть конвейерную ленту, которая вот-вот запустится. Только после этой 10-секундной задержки двигатель фактически запускается (и фиксируется во включенном состоянии): Подобно счетчику «вверх», значение истекшего времени (ET) таймера задержки включения увеличивается один раз в секунду до тех пор, пока не будет достигнуто заданное время (PT), после чего активируется его выход (Q). В этой программе заданное значение времени составляет 10 секунд, что означает, что выход Q не активируется, пока переключатель «Пуск» не будет нажат в течение 10 секунд. Выход тревожной сирены, который не активируется таймером, включается сразу же при нажатии кнопки «Старт». Важная деталь, касающаяся работы этого конкретного таймера, заключается в том, что он не сохраняет данные. Это означает, что инструкция таймера не должна сохранять значение прошедшего времени, когда вход деактивирован. Вместо этого значение прошедшего времени должно сбрасываться обратно в ноль каждый раз, когда вход деактивируется. Это гарантирует автоматический сброс таймера, когда оператор отпускает кнопку «Старт». Напротив, таймер задержки включения с сохранением сохраняет значение истекшего времени, даже когда вход деактивирован. Это делает его полезным для хранения «общего» времени для какого-либо события. Большинство ПЛК предоставляют сохраняемые и несохраняемые версии инструкций таймера задержки включения, так что программист может выбрать подходящую форму таймера задержки включения для любого конкретного приложения. Однако стандарт программирования IEC 61131-3 решает проблему таймеров с сохранением и таймеров без сохранения немного по-другому. В соответствии со стандартом IEC 61131-3 команда таймера может быть указана с дополнительным входом разрешения (EN), который заставляет команду таймера вести себя без сохранения при активации и с сохранением при деактивации. Общая концепция входа разрешения (EN) заключается в том, что команда ведет себя «нормально», пока вход разрешения активен (в этом случае действие по времени без сохранения считается «нормальным» в соответствии со стандартом IEC 61131-3). , но инструкция «приостанавливает» все выполнение всякий раз, когда вход разрешения деактивируется. Такое «замораживание» работы приводит к сохранению значения текущего времени (CT), даже если входной сигнал деактивируется. Например, если бы мы хотели добавить в нашу систему управления конвейером таймер с сохранением данных для регистрации общего времени работы двигателя конвейера, мы могли бы сделать это, используя «включенную» инструкцию таймера IEC 61131-3, например: Когда бит контактора двигателя (контактор OUT) активен, таймер включается и ему разрешено отсчитывать время. Однако, когда этот бит деактивируется (становится «ложным»), инструкция таймера в целом отключается, что приводит к ее «зависанию» и сохранению текущего значения времени (CT) (Примечание 1). Это позволяет запускать и останавливать двигатель, при этом таймер ведет подсчет общего времени работы двигателя. Примечание 1: Сигнал «выход разрешения» (ENO) в команде таймера служит для указания статуса команды: он активируется, когда активируется вход разрешения (EN), и деактивируется, когда либо вход разрешения деактивируется, либо команда генерирует сигнал разрешения. состояние ошибки (как определено внутренним программированием производителя ПЛК). Выходной сигнал ENO не служит никакой полезной цели в этой конкретной программе, но он доступен, если есть необходимость, чтобы другие звенья программы были «осведомлены» о состоянии таймера времени выполнения. Если бы мы хотели дать оператору возможность вручную сбросить значение общего времени работы до нуля, мы могли бы подключить дополнительный переключатель к карте дискретного входа ПЛК и добавить в программу контакты «сброса» следующим образом: Всякий раз, когда нажимается переключатель «Сброс», таймер включается (EN), но вход синхронизации (IN) отключается, что заставляет таймер (без сохранения) сбросить свое текущее значение времени (CT) на ноль. Другим основным типом инструкций таймера ПЛК является таймер задержки выключения. Эта инструкция таймера отличается от команды с задержкой включения тем, что функция отсчета времени начинается сразу после деактивации инструкции, а не при ее активации. Таймер задержки выключения применяется для управления двигателем охлаждающего вентилятора большого промышленного двигателя. В этой системе ПЛК запускает электрический вентилятор охлаждения, как только обнаруживается, что двигатель вращается, и поддерживает работу этого вентилятора в течение двух минут после выключения двигателя для рассеивания остаточного тепла: Когда вход (IN) этой инструкции таймера активируется, выход (Q) немедленно активируется (без задержки вообще), чтобы включить контактор двигателя охлаждающего вентилятора. Это обеспечивает охлаждение двигателя, как только он начинает вращаться (что определяется переключателем скорости, подключенным к дискретному входу ПЛК). Когда двигатель перестает вращаться, переключатель скоростей возвращается в нормально разомкнутое положение, деактивируя входной сигнал таймера, который запускает отсчет времени. Выход Q остается активным, пока таймер отсчитывает от 0 до 120 секунд. Как только оно достигает 120 секунд, выход деактивируется (отключается двигатель охлаждающего вентилятора), а значение прошедшего времени остается на уровне 120 секунд до тех пор, пока вход снова не активируется, после чего он сбрасывается обратно на ноль. На следующих временных диаграммах сравниваются таймеры задержки включения и таймеры задержки выключения: Хотя инструкции ПЛК с задержкой включения, предлагаемые как в сохраняемой, так и в несохраняемой форме, являются обычным явлением в наборах команд почти каждого производителя и модели ПЛК, найти инструкции таймера выключения с сохраняемой задержкой практически невозможно. Обычно таймеры задержки выключения не сохраняют свою работоспособность (Примечание 2). Примечание 2: Входные сигналы разрешения (EN), указанные в стандарте программирования IEC 61131-3, делают возможным использование таймеров задержки отключения с сохранением (путем деактивации входа разрешения, сохраняя при этом вход «IN» в неактивном состоянии), но учитываются при этом. Имейте в виду, что большинство реализаций таймеров ПЛК не имеют отдельных входов EN и IN. Это означает, что (для большинства инструкций таймера ПЛК) единственным входом, доступным для активации таймера, является вход «IN», и в этом случае невозможно создать сохраняемый таймер с задержкой выключения (поскольку значение истекшего времени такого таймера будет немедленно восстановлено). -устанавливается на ноль каждый раз при повторной активации входа).
-
西门子 西门子 Tia Portal – 调用功能块的不同实例
leigehong posted A PLC and HMI Simplified Chinese article in PLC programming learning
在上一篇文章中,我们讨论了什么是功能块 FB、它在 PLC 程序中如何工作以及如何创建和使用功能块 FB。在本文中,我们将讨论西门子 Tia Portal 中不同功能块类型的数据块实例以及何时使用每种类型。 内容: 什么是功能块 FB? 数据实例的不同选项。 单实例。 参数实例。 多实例。 什么是功能块? 功能块或 FB 只是包含代码逻辑的块。您可以使用该 FB 通过编写在其中的代码片段来实现特定的功能。 当在代码中调用功能块时,系统会要求您分配一个数据块(也称为数据实例)与该 FB 关联,以保存 FB 参数的值。并非 FB 内的所有参数都保存在数据实例中,但我们稍后会讨论这一点。 调用功能块时,您有 3 个不同的选项用于将数据块实例与此函数调用相关联。这些不同的选项将取决于您调用 FB 的位置。 所以,简而言之。功能块FB基本上是具有专用数据块 DB 的功能 FC,该数据块用于存储功能块参数的值。 数据实例的不同选项 对于功能块的数据实例,我们有 3 个不同的选项,这些选项是: 单实例。 参数实例。 多实例。 三个不同的调用数据实例来自 3 种不同的调用方法: 您可以在主 OB1 内调用功能块 FB,这将为您提供以下选项: 单实例。 您可以在功能 FC 内调用功能块 FB,这将为您提供两种选择 单实例 参数实例 您可以在另一个功能块内调用该功能块,这将为您提供创建数据实例的三个可用选项 单实例 参数实例 多个实例 单个数据实例 首先,让我们从创建一个功能块 FB 开始,正如我们之前提到的,我们通过单击 “添加新块” 并选择我们想要的块类型来创建一个功能块。见图1。 图 1 – 创建功能块 FB 现在,我们将在主 OB1 中创建的 ReusableFB 称为 ReusableFB。见图2。 图 2 – 调用主 OB1 内的 FB 正如您从上图中看到的,在主 OB1 内调用 FB 时,系统会要求您分配一个与该 FB 调用关联的数据实例。在这种情况下,只有一个选项,那就是单一实例。 选择单实例选项后,将创建一个数据块并与 FB 调用关联。见图3。 图 3 – 创建的单个实例 创建的单个实例将用于存储一些 FB 参数的值。如输入、输出、In Out 和静态参数。 FB 的其他参数将不会被存储,例如温度和常量。见图4和图5。 图 4 – 数据保存在数据实例内部 图 5 – 从 FB 保存到数据实例的数据。 现在,让我们在 FB 中创建一个简单的逻辑,以帮助我们更好地理解数据实例。该逻辑会将常量值 15 添加到静态变量,然后将结果移至输出。见图6。 图 6 – 创建一个简单的逻辑 现在,返回主 OB1 并注意 FB 调用现在的情况。见图7。 图 7 – 每次更改后更新 FB 调用 您对 FB 内部逻辑所做的任何更改都将导致需要更新功能块调用,以便可以应用您所做的更改。 您可以通过右键单击 FB 调用并按更新块调用选项或重新编译 PLC 代码来更新块调用。见图8。 图 8 – 更新 FB 调用 更新块调用后,您在 FB 代码中所做的更改将在块调用中应用和使用。如图 9 所示。 FB 现在期望提供 bool 类型的输入信号,并且 FB 将给出 int 类型的输出。 图 9 – 输入和输出现在与 FB 调用关联 让我们模拟我们的代码,看看 PLC 将如何运行。请参阅下一个动画,该动画显示了迄今为止 PLC 逻辑的简单模拟。 从动画中可以看出,每当启动信号为 TRUE 时,该函数就会被执行,并且输出不断变化。一旦启动信号不再可用,输出将保持在最后记录的值。 这里数据实例的用途是静态变量和输出变量的值保存在单个实例内,因此当启动信号再次返回时,函数将从最后记录的值继续。 非常重要的注意事项 切勿对 FB 的两次不同调用使用相同的单个实例。请看下一个动画。 正如您从动画中看到的,我们有两个不同的 FB 调用,但两个调用都与同一个实例关联,这就是为什么即使 start2 信号为 FALSE,Output2 值也会随 Output1 变化。 正如您所期望的,第一次调用的数据实例的更改也会在第二次调用中受到影响,因为它们具有相同的内存块。见图10。 图 10 – 切勿在不同的 FB 调用中使用相同的数据实例 如果您对不同的 FB 调用使用相同的数据实例,则您的功能块将不再可重用。即使每个不同的 FB 调用的输入/输出参数都不同。正如您从上一个视频(动画)中看到的那样,即使第二个调用甚至没有启用输入信号,两个调用也具有相同的结果。 另一个非常重要的注意事项 我们之前说过,如果您从更高级别的 FC 调用您的 FB,则关联的数据实例将有两个选项;这些选项是单个实例和参数实例。见图11。 图 11 – 使用带有从 FC 调用的 FB 的单个实例 如果发生这种情况,并且您将在 FC 内调用 FB,则您永远不应该为 FB 使用单个实例。要知道这是为什么。见图12 图 12 – 多次呼叫上级 FC 从图 12 中可以看出,当您在逻辑中多次调用更高级别的 FC 时,不会要求您分配数据块,因为 FC 不需要数据块。 但是你知道 FC 内部有一个叫做 FB 的,这个FB有一个与之关联的单个实例。因此,现在 3 个 FC 调用对于 FB 调用具有相同的数据实例。因此,您的函数 FC 不再可重用。 该怎么办?当您需要在 FC 内调用 FB 时,最佳选择是使用参数实例。 参数实例 正如我们之前所说,如果您在 FC 内调用 FB,则不应选择单个实例,而参数实例更适合您的可重用性目的。 参数实例将保存调用到 FC 块接口的 In Out 区域的 FB 的数据实例。允许您为每个 FC 调用输入新的数据实例。见图 13 和 14。 图 13 – 在 FC 内调用 FB 时分配参数实例 图 14 – 每个 FC 调用都需要一个新的数据实例 从上图中可以看出,每当您在程序中调用 FC 时,它都会为 FC 内的可重用 FB 请求数据实例。 但是,使用这种方式您将必须自己创建数据实例。见图15。 图 15 – 创建一个新的数据实例 要创建新的数据实例,您可以执行与创建 FC 或 FB 相同的操作,但这次您选择 DB 选项。并确保选择的 DB 类型与调用的 FB 相同。 现在,您的 FC 可以根据您的需要多次重复使用,您只需为每次调用创建一个实例即可。见图16。 图 16 – 将 DB 分配给 FC 调用 多实例数据库 多实例 DB 简单来说就是被调用 FB 的 DB 将存储在更高级别调用 FB 的 DB 中。仅当您从另一个 FB 调用一个 FB 时,此选项才可用。 让我们创建另一个 FB 将其用作更高级别的 FB。 创建此 HigherLevelFB 后,从主 OB1 调用它,当然唯一的调用选项将是单个实例,如前所示。见图17。 图 17 – 从主 OB1 调用 UpperLevelFB 现在,从 HigherLevelFB 调用 ReusableFB。并选择多实例选项。见图18。 图 18 – 分配多实例 DB 当您选择多实例选项时,创建的 DB 将存储在调用 FB 的静态参数内。见图19。 图 19 – 实例保存在静态参数内 您可以多次调用 ReusableFB,每次调用它时,多实例都会存储在静态参数中。见图20。 图 20 – 多次调用 ReusableFB 正如您所看到的,下级 FB 的数据实例将保存在上级 FB 的数据实例内。最好有更好的程序结构和易于阅读的逻辑。 结论 在代码中创建功能块需要将数据块与您在逻辑中进行的每个 FB 调用相关联。该数据块或也称为数据实例具有不同的选项,具体取决于调用 FB 的块的类型。 选择数据实例类型时要小心,因为某些选项可能不适合您的情况,如我们之前所示。有时这可能会导致您的逻辑出现问题,并且您的函数无法再重用。 使用多实例可以帮助更好地组织程序结构,因为所有被调用的 FB 都会将其 DB 存储在主调用 FB 中。 -
什么是数据块?PLC 中的全局数据块
leigehong posted A PLC and HMI Simplified Chinese article in PLC programming learning
在对 PLC 进行编程时,可以使用不同的块结构,这些块包括功能 FC、功能块 FB 和数据块 DB。这些块是非常方便的工具,您可以使用它们更好地设计 PLC 逻辑,并使您的代码更具可读性并且易于遵循和调试 在之前的文章中,我们讨论了 FC 和 FB。在本文中,我们将讨论数据块 DB,更具体地说是全局数据块。 内容: 什么是数据块 DB? 数据块的类型。 什么是全局数据块? 创建全局数据块? 使用全局数据块。 示例模拟。 什么是数据块? 数据块 DB 是用于保存 PLC 程序执行期间写入的参数值的存储区域。 与代码块相反,数据块 DB 仅包含变量声明。它没有像 FC 或 FB 那样的任何网络或指令。DB 的结构由您在数据块内声明的变量数量定义。 PLC 中数据块的类型 数据块有两种类型: 全局数据块 实例数据块 ARRAY 数据块 全局数据块 顾名思义,全局数据块是为整个 PLC 逻辑进行全局声明的。它没有分配给特定的代码块。您可以从 PLC 逻辑中任何位置的任何代码块访问全局数据块的值。全局数据块仅包含静态标签。 全局数据块的结构可以自由定义。在数据块的声明表中,声明要包含在全局数据块中的数据元素。 实例数据块 背景数据块直接分配给功能块 FB,无论该功能块是在 PLC 中内部定义的(如定时器和计数器)还是用户定义的功能块 FB。 背景数据块的结构不能自由定义,而是由功能块的接口确定。背景数据块恰好包含在功能块接口中声明的那些块参数和标记。 但是,您可以在实例数据块中定义特定于实例的值;例如,声明的标签的起始值。 数组数据块 ARRAY 数据块仅适用于 S7-1500 CPU,是由 ARRAY 组成的全局数据块。该数组可以基于任何数据类型。 例如,PLC 数据类型 (UDT) 的 ARRAY 是可能的。除了 ARRAY 之外,DB 不包含其他元素。由于其扁平结构,ARRAY 数据块便于访问 ARRAY 元素并将其传输到被调用的块。 “指令”任务卡的“移动操作”部分提供了用于寻址 ARRAY DB 的选项。 在本文中,我们将讨论全局数据块,我们将在单独的文章中讨论其他两种类型。 什么是全局数据块? 数据块用于存储 PLC 程序数据。这意味着它们包含用户程序使用的变量数据。全局数据块存储可供所有其他块使用的数据。 数据块的最大大小根据 CPU 的不同而变化。您可以用任何您喜欢的方式定义全局数据块的结构。 您还可以选择使用 PLC 数据类型 (UDT) 作为创建全局数据块的模板。 每个功能块 FB、功能 FC 或组织块 OB 都可以从全局数据块读取数据,或者本身可以将数据写入全局数据块。即使退出数据块后,该数据仍保留在数据块中。见图1。 图 1 – 访问全局数据块 从上图可以看出,全局数据块可以从 PLC 程序内的任何代码块访问,而背景数据块只能由关联的功能块访问。 创建全局数据块 创建全局数据块的方式与创建功能 FC 或功能块 FB 的方式相同。从将新块添加到项目树中。见图2。 图 2 – 创建全局数据块 让我们在全局数据块中声明一些变量。 您可以通过单击名称下的“添加新”部分,写入所需的变量名称,然后选择变量数据类型来完成此操作。见图3。 图 3 – 全局数据块中的变量声明 使用全局数据块 声明一个标签。 我们已经在图 3 中展示了如何声明标签/变量。 定义起始值 标记的起始值是您定义的值,标记在 CPU 启动后采用该值。该值必须与标签的数据类型匹配,并且不应超出数据类型的范围。见图4。 标签在启动时采用定义的值,前提是它没有声明为保持性。 图 4 – 定义标签的起始值 因此,如果我将 Tank1Level 起始值设置为零以外的任何值,则下次重新启动 PLC 时将应用该值。见图5。 图 5 – 定义变量的起始值 保留全局数据块中的变量 为了防止断电时数据丢失,您可以将数据标记为保持性。该数据存储在保持性存储区域中。 设置保留的选项取决于数据块的类型和设置的块访问的类型。见图6。 图 6 -. 全局数据块中保留选项 如图 6 所示,Tank2Level 变量设置为保留值,这意味着即使 PLC 停止或断电,当 PLC 再次启动时,Tank2Level 也会存储相同的数据。它不会重置为起始值。 与 HMI 的可访问性 在全局数据块中,您可以定义变量在 HMI 变量表中是否可见。您还可以定义是否可以从 HMI 读取或写入该变量。见图7。 图 7 – HMI 的可访问性 全局数据块中任何声明的变量的默认设置是可以从 HMI 访问、读取和写入。如果您想对某个变量禁用此功能,则必须取消选中该变量的辅助功能选项。 模拟示例 到目前为止我们创建了一个全局数据块并在里面声明了一些变量。 现在我们将尝试运行该程序的模拟,看看我们是否可以更好地理解全局数据块是什么。 下面提供了两个 PLC 仿真。 测试变量的起始值 检查以下动画,解释全局数据块内变量的起始值。 动画1 动画1说明: 储罐液位参数的起始值为零,您可以在视频中看到它们正在通过模拟屏幕进行更改。 当 PLC 重新启动、断电然后再次上电时,您会看到这些值将重置为起始值为零。 之后,起始值分别更改为500、32654和-356,并且当PLC重新启动时,这些值更改为新的起始值。 请注意,当我们更改起始值时,我们必须再次将逻辑下载到 PLC;每次更改逻辑时都需要这样做。 测试全局 DB 中变量的保留选项 检查以下动画,解释全局数据块内变量的保留选项。 动画2 动画2说明: 首先,您会注意到 Tank2Level 的 Retain 属性现在处于活动状态。 您在视频中看到 3 个水箱的值正在改变。 当 PLC 停止然后再次启动时,Tank1Level 和 Tank3Level 重置回起始值 0,但 Tank2Level 保留其值 -22938 结论 全局数据块可以由 PLC 程序中存在的任何块从任何地方访问。您可以在全局数据库中声明任意数量的变量。 最佳实践技术是为逻辑的不同部分创建单独的数据块,以便非常容易地遵循您的逻辑。例如,需要由 HMI 读取或写入的所有变量的单独数据块。